{"version":3,"file":"static/js/main.00ef6ca7.js","mappings":";oCAIU,SAAUA,EAASC,GAAS,aAEpC,SAASC,EAAQC,EAAQC,GACvB,IAAIC,EAAOC,OAAOD,KAAKF,GAEvB,GAAIG,OAAOC,sBAAuB,CAChC,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAEvCC,IACFI,EAAUA,EAAQC,QAAO,SAAUC,GACjC,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UACtD,KAGFP,EAAKQ,KAAKC,MAAMT,EAAMG,EACxB,CAEA,OAAOH,CACT,CAEA,SAASU,EAAeC,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAEhDA,EAAI,EACNf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAC9CC,EAAgBP,EAAQM,EAAKF,EAAOE,GACtC,IACShB,OAAOkB,0BAChBlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAEjElB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GACxChB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAC7E,GAEJ,CAEA,OAAON,CACT,CAEA,SAASW,EAAQC,GAaf,OATED,EADoB,oBAAXE,QAAoD,kBAApBA,OAAOC,SACtC,SAAUF,GAClB,cAAcA,CAChB,EAEU,SAAUA,GAClB,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAC3H,EAGKD,EAAQC,EACjB,CAEA,SAASL,EAAgBK,EAAKN,EAAKW,GAYjC,OAXIX,KAAOM,EACTtB,OAAOoB,eAAeE,EAAKN,EAAK,CAC9BW,MAAOA,EACPrB,YAAY,EACZsB,cAAc,EACdC,UAAU,IAGZP,EAAIN,GAAOW,EAGNL,CACT,CAEA,SAASQ,EAA8BhB,EAAQiB,GAC7C,GAAc,MAAVjB,EAAgB,MAAO,CAAC,EAC5B,IAEIE,EAAKL,EAFLD,EAAS,CAAC,EACVsB,EAAahC,OAAOD,KAAKe,GAG7B,IAAKH,EAAI,EAAGA,EAAIqB,EAAWnB,OAAQF,IACjCK,EAAMgB,EAAWrB,GACboB,EAASE,QAAQjB,IAAQ,IAC7BN,EAAOM,GAAOF,EAAOE,IAGvB,OAAON,CACT,CAEA,SAASwB,EAAyBpB,EAAQiB,GACxC,GAAc,MAAVjB,EAAgB,MAAO,CAAC,EAE5B,IAEIE,EAAKL,EAFLD,EAASoB,EAA8BhB,EAAQiB,GAInD,GAAI/B,OAAOC,sBAAuB,CAChC,IAAIkC,EAAmBnC,OAAOC,sBAAsBa,GAEpD,IAAKH,EAAI,EAAGA,EAAIwB,EAAiBtB,OAAQF,IACvCK,EAAMmB,EAAiBxB,GACnBoB,EAASE,QAAQjB,IAAQ,GACxBhB,OAAO0B,UAAUU,qBAAqBC,KAAKvB,EAAQE,KACxDN,EAAOM,GAAOF,EAAOE,GAEzB,CAEA,OAAON,CACT,CAEA,SAAS4B,EAAeC,EAAK5B,GAC3B,OAAO6B,EAAgBD,IAAQE,EAAsBF,EAAK5B,IAAM+B,EAA4BH,EAAK5B,IAAMgC,GACzG,CAEA,SAASH,EAAgBD,GACvB,GAAIK,MAAMC,QAAQN,GAAM,OAAOA,CACjC,CAEA,SAASE,EAAsBF,EAAK5B,GAClC,IAAImC,EAAKP,IAA0B,qBAAXhB,QAA0BgB,EAAIhB,OAAOC,WAAae,EAAI,eAE9E,GAAU,MAANO,EAAJ,CACA,IAIIC,EAAIC,EAJJC,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKL,EAAKA,EAAGT,KAAKE,KAAQW,GAAMH,EAAKD,EAAGM,QAAQC,QAC9CJ,EAAK1C,KAAKwC,EAAGpB,QAEThB,GAAKsC,EAAKpC,SAAWF,GAH4BuC,GAAK,GAK9D,CAAE,MAAOI,GACPH,GAAK,EACLH,EAAKM,CACP,CAAE,QACA,IACOJ,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,QAC9C,CAAE,QACA,GAAIK,EAAI,MAAMH,CAChB,CACF,CAEA,OAAOC,CAxBe,CAyBxB,CAEA,SAASP,EAA4Ba,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOE,EAAkBF,EAAGC,GACvD,IAAIE,EAAI1D,OAAO0B,UAAUiC,SAAStB,KAAKkB,GAAGK,MAAM,GAAI,GAEpD,MADU,WAANF,GAAkBH,EAAE9B,cAAaiC,EAAIH,EAAE9B,YAAYoC,MAC7C,QAANH,GAAqB,QAANA,EAAoBd,MAAMkB,KAAKP,GACxC,cAANG,GAAqB,2CAA2CK,KAAKL,GAAWD,EAAkBF,EAAGC,QAAzG,CALc,CAMhB,CAEA,SAASC,EAAkBlB,EAAKyB,IACnB,MAAPA,GAAeA,EAAMzB,EAAI1B,UAAQmD,EAAMzB,EAAI1B,QAE/C,IAAK,IAAIF,EAAI,EAAGsD,EAAO,IAAIrB,MAAMoB,GAAMrD,EAAIqD,EAAKrD,IAAKsD,EAAKtD,GAAK4B,EAAI5B,GAEnE,OAAOsD,CACT,CAEA,SAAStB,IACP,MAAM,IAAIuB,UAAU,4IACtB,CAEA,SAASC,EAAyBC,GACjC,OAAOA,GAAKA,EAAEC,YAAcrE,OAAO0B,UAAU4C,eAAejC,KAAK+B,EAAG,WAAaA,EAAW,QAAIA,CACjG,CAEA,IAQIG,EACAC,EAiBAC,EACAC,EA3BAC,EAAY,CAACjF,QAAS,CAAC,GAW3B,SAASkF,IACP,OAAIJ,EAAwCD,GAC5CC,EAAkC,EAGlCD,EAD2B,+CAG7B,CAWA,SAASM,IACP,GAAIH,EAAqC,OAAOD,EAChDC,EAAsC,EAEtC,IAAII,EAAuBF,IAE3B,SAASG,IAAiB,CAE1B,SAASC,IAA0B,CAgDnC,OA9CAA,EAAuBC,kBAAoBF,EAE3CN,EAA2B,WACzB,SAASS,EAAKC,EAAOC,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GAAIA,IAAWV,EAAf,CAKA,IAAIxB,EAAM,IAAImC,MAAM,mLAEpB,MADAnC,EAAIO,KAAO,sBACLP,CAJN,CAKF,CAGA,SAASoC,IACP,OAAOR,CACT,CAJAA,EAAKS,WAAaT,EAOlB,IAAIU,EAAiB,CACnBC,MAAOX,EACPY,KAAMZ,EACNa,KAAMb,EACNc,OAAQd,EACRrF,OAAQqF,EACRe,OAAQf,EACRgB,OAAQhB,EACRiB,IAAKjB,EACLkB,QAASV,EACTW,QAASnB,EACToB,YAAapB,EACbqB,WAAYb,EACZc,KAAMtB,EACNuB,SAAUf,EACVgB,MAAOhB,EACPiB,UAAWjB,EACXkB,MAAOlB,EACPmB,MAAOnB,EACPoB,eAAgB9B,EAChBC,kBAAmBF,GAGrB,OADAa,EAAemB,UAAYnB,EACpBA,CACT,CAGF,CAYEjB,EAAUjF,QAAUmF,MAGtB,IACIkC,EAAyB5C,EADNQ,EAAUjF,SAG7BsH,EAAiB,SAAwBX,EAASY,EAAOC,GAC3D,IAAIC,IAAcD,EACdE,EAAQzH,EAAM0H,OAAOH,GAGzBvH,EAAM2H,WAAU,WACdF,EAAMG,QAAUL,CAClB,GAAG,CAACA,IACJvH,EAAM2H,WAAU,WACd,IAAKH,IAAcd,EACjB,OAAO,WAAa,EAGtB,IAAImB,EAAc,WACZJ,EAAMG,SACRH,EAAMG,QAAQ/G,MAAM4G,EAAOxG,UAE/B,EAGA,OADAyF,EAAQoB,GAAGR,EAAOO,GACX,WACLnB,EAAQqB,IAAIT,EAAOO,EACrB,CACF,GAAG,CAACL,EAAWF,EAAOZ,EAASe,GACjC,EAEIO,EAAc,SAAqBhG,GACrC,IAAIiG,EAAMjI,EAAM0H,OAAO1F,GAIvB,OAHAhC,EAAM2H,WAAU,WACdM,EAAIL,QAAU5F,CAChB,GAAG,CAACA,IACGiG,EAAIL,OACb,EAEIM,EAAkB,SAAyBC,GAC7C,OAAe,OAARA,GAAiC,WAAjBzG,EAAQyG,EACjC,EACIC,EAAY,SAAmBD,GACjC,OAAOD,EAAgBC,IAA4B,oBAAbA,EAAIE,IAC5C,EAIIC,EAAW,SAAkBH,GAC/B,OAAOD,EAAgBC,IAAgC,oBAAjBA,EAAII,UAAsD,oBAApBJ,EAAIK,aAAiE,oBAA5BL,EAAIM,qBAAwE,oBAA3BN,EAAIO,kBAC5K,EAEIC,EAAmB,kBACnBC,EAAU,SAASA,EAAQC,EAAMC,GACnC,IAAKZ,EAAgBW,KAAUX,EAAgBY,GAC7C,OAAOD,IAASC,EAGlB,IAAIC,EAAY9F,MAAMC,QAAQ2F,GAE9B,GAAIE,IADa9F,MAAMC,QAAQ4F,GACD,OAAO,EACrC,IAAIE,EAAkB3I,OAAO0B,UAAUiC,SAAStB,KAAKmG,KAAUF,EAE/D,GAAIK,KADmB3I,OAAO0B,UAAUiC,SAAStB,KAAKoG,KAAWH,GACvB,OAAO,EAGjD,IAAKK,IAAoBD,EAAW,OAAOF,IAASC,EACpD,IAAIG,EAAW5I,OAAOD,KAAKyI,GACvBK,EAAY7I,OAAOD,KAAK0I,GAC5B,GAAIG,EAAS/H,SAAWgI,EAAUhI,OAAQ,OAAO,EAGjD,IAFA,IAAIiI,EAAS,CAAC,EAELnI,EAAI,EAAGA,EAAIiI,EAAS/H,OAAQF,GAAK,EACxCmI,EAAOF,EAASjI,KAAM,EAGxB,IAAK,IAAImC,EAAK,EAAGA,EAAK+F,EAAUhI,OAAQiC,GAAM,EAC5CgG,EAAOD,EAAU/F,KAAO,EAG1B,IAAIiG,EAAU/I,OAAOD,KAAK+I,GAE1B,GAAIC,EAAQlI,SAAW+H,EAAS/H,OAC9B,OAAO,EAGT,IAAImI,EAAIR,EACJS,EAAIR,EAEJS,EAAO,SAAclI,GACvB,OAAOuH,EAAQS,EAAEhI,GAAMiI,EAAEjI,GAC3B,EAEA,OAAO+H,EAAQI,MAAMD,EACvB,EAEIE,EAA+B,SAAsCC,EAASC,EAAaC,GAC7F,OAAK1B,EAAgBwB,GAIdrJ,OAAOD,KAAKsJ,GAASG,QAAO,SAAUC,EAAYzI,GACvD,IAAI0I,GAAa7B,EAAgByB,KAAiBf,EAAQc,EAAQrI,GAAMsI,EAAYtI,IAEpF,OAAIuI,EAAcI,SAAS3I,IACrB0I,GACFE,QAAQC,KAAK,oCAAoCC,OAAO9I,EAAK,gCAGxDyI,GAGJC,EAIEjJ,EAAeA,EAAe,CAAC,EAAGgJ,GAAc,CAAC,GAAI,CAAC,EAAGxI,EAAgB,CAAC,EAAGD,EAAKqI,EAAQrI,KAHxFyI,CAIX,GAAG,MAnBM,IAoBX,EAEIM,EAAyB,qMAIzBC,EAAiB,SAAwBC,GAC3C,IAAIC,EAAWtJ,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKmJ,EAEnF,GAAoB,OAAhBE,GAAwBhC,EAASgC,GACnC,OAAOA,EAGT,MAAM,IAAIxE,MAAMyE,EAClB,EAEIE,EAAkB,SAAyBtC,GAC7C,IAAIoC,EAAWtJ,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKmJ,EAEnF,GAAIhC,EAAUD,GACZ,MAAO,CACLuC,IAAK,QACLC,cAAeC,QAAQC,QAAQ1C,GAAKE,MAAK,SAAUyC,GACjD,OAAOT,EAAeS,EAAQP,EAChC,KAIJ,IAAIQ,EAASV,EAAelC,EAAKoC,GAEjC,OAAe,OAAXQ,EACK,CACLL,IAAK,SAIF,CACLA,IAAK,OACLK,OAAQA,EAEZ,EAEIC,EAAuB,SAA8BD,GAClDA,GAAWA,EAAOE,kBAAqBF,EAAOG,kBAInDH,EAAOE,iBAAiB,CACtB/G,KAAM,kBACNiH,QAAS,UAGXJ,EAAOG,gBAAgB,CACrBhH,KAAM,kBACNiH,QAAS,QACTC,IAAK,4CAET,EAEIC,EAA+BrL,EAAMsL,cAAc,MACvDD,EAAgBE,YAAc,kBAC9B,IAAIC,EAAuB,SAA8BC,EAAKC,GAC5D,IAAKD,EACH,MAAM,IAAI3F,MAAM,+EAA+EqE,OAAOuB,EAAS,gCAGjH,OAAOD,CACT,EAYIE,EAAW,SAAkBC,GAC/B,IAAIC,EAAgBD,EAAKb,OACrBrB,EAAUkC,EAAKlC,QACfoC,EAAWF,EAAKE,SAChBC,EAAS/L,EAAMgM,SAAQ,WACzB,OAAOvB,EAAgBoB,EACzB,GAAG,CAACA,IAQAI,EAAmBtJ,EAND3C,EAAMkM,UAAS,WACnC,MAAO,CACLnB,OAAuB,SAAfgB,EAAOrB,IAAiBqB,EAAOhB,OAAS,KAChDxC,SAAyB,SAAfwD,EAAOrB,IAAiBqB,EAAOhB,OAAOxC,SAASmB,GAAW,KAExE,IACuD,GACnD+B,EAAMQ,EAAiB,GACvBE,EAAaF,EAAiB,GAElCjM,EAAM2H,WAAU,WACd,IAAIyE,GAAY,EAEZC,EAAiB,SAAwBtB,GAC3CoB,GAAW,SAAUV,GAEnB,OAAIA,EAAIV,OAAeU,EAChB,CACLV,OAAQA,EACRxC,SAAUwC,EAAOxC,SAASmB,GAE9B,GACF,EAiBA,MAdmB,UAAfqC,EAAOrB,KAAoBe,EAAIV,OAST,SAAfgB,EAAOrB,KAAmBe,EAAIV,QAEvCsB,EAAeN,EAAOhB,QAVtBgB,EAAOpB,cAActC,MAAK,SAAU0C,GAC9BA,GAAUqB,GAIZC,EAAetB,EAEnB,IAMK,WACLqB,GAAY,CACd,CACF,GAAG,CAACL,EAAQN,EAAK/B,IAEjB,IAAI4C,EAAatE,EAAY6D,GAC7B7L,EAAM2H,WAAU,WACK,OAAf2E,GAAuBA,IAAeT,GACxC5B,QAAQC,KAAK,6FAEjB,GAAG,CAACoC,EAAYT,IAEhB,IAAIlC,EAAc3B,EAAY0B,GAgB9B,OAfA1J,EAAM2H,WAAU,WACd,GAAK8D,EAAIlD,SAAT,CAIA,IAAIgE,EAAU9C,EAA6BC,EAASC,EAAa,CAAC,eAAgB,UAE9E4C,GACFd,EAAIlD,SAASiE,OAAOD,EALtB,CAOF,GAAG,CAAC7C,EAASC,EAAa8B,EAAIlD,WAE9BvI,EAAM2H,WAAU,WACdqD,EAAqBS,EAAIV,OAC3B,GAAG,CAACU,EAAIV,SACY/K,EAAMyM,cAAcpB,EAAgBqB,SAAU,CAChE1K,MAAOyJ,GACNK,EACL,EACAH,EAAS3G,UAAY,CACnB+F,OAAQ3D,EAAUZ,IAClBkD,QAAStC,EAAUlH,QAErB,IAAIyM,EAAgC,SAAuCC,GACzE,IAAInB,EAAMzL,EAAM6M,WAAWxB,GAC3B,OAAOG,EAAqBC,EAAKmB,EACnC,EAKIE,EAAc,WAIhB,OAH4BH,EAA8B,uBACrBpE,QAGvC,EAKIwE,EAAmB,SAA0BC,GAI/C,OAAOlB,EAHQkB,EAAMlB,UACXa,EAA8B,6BAG1C,EACAI,EAAiB/H,UAAY,CAC3B8G,SAAU1E,EAAUhB,KAAKJ,YAG3B,IAAIiH,EAAY,CAAC,KAAM,WACnBC,EAAwClN,EAAMsL,cAAc,MAChE4B,EAAyB3B,YAAc,2BACvC,IAAI4B,EAAgC,SAAuC1B,EAAKC,GAC9E,IAAKD,EACH,MAAM,IAAI3F,MAAM,6FAA6FqE,OAAOuB,EAAS,8CAG/H,OAAOD,CACT,EACI2B,EAAqCpN,EAAMsL,cAAc,MAC7D8B,EAAsB7B,YAAc,wBACpC,IAAI8B,EAAoC,SAA2CC,EAAmBC,GACpG,IAAKD,EACH,OAAO,KAGTA,EAAkBxF,GACdwF,EAAkBE,QAClB,IAAIC,EAAUlL,EAAyB+K,EAAmBL,GAE9D,OAIOnM,EAAeA,EAAe,CAAC,EAAG2M,GAJpCF,GACgDD,EAAkBE,UAIzE,EACIE,EAAyB,mNACzBC,EAAyB,SAAgC/B,GAC3D,IAAIC,EAAgBD,EAAKb,OACrBrB,EAAUkC,EAAKlC,QACfoC,EAAWF,EAAKE,SAChBC,EAAS/L,EAAMgM,SAAQ,WACzB,OAAOvB,EAAgBoB,EAAe6B,EACxC,GAAG,CAAC7B,IAGAI,EAAmBtJ,EADD3C,EAAMkM,SAAS,MACkB,GACnDsB,EAAUvB,EAAiB,GAC3B2B,EAAa3B,EAAiB,GAQ9B4B,EAAmBlL,EANA3C,EAAMkM,UAAS,WACpC,MAAO,CACLnB,OAAuB,SAAfgB,EAAOrB,IAAiBqB,EAAOhB,OAAS,KAChDuC,kBAAmB,KAEvB,IACwD,GACpD7B,EAAMoC,EAAiB,GACvB1B,EAAa0B,EAAiB,GAE9BxB,EAAiB,SAAwBtB,EAAQuC,GACnDnB,GAAW,SAAUV,GACnB,OAAIA,EAAIV,QAAUU,EAAI6B,kBACb7B,EAGF,CACLV,OAAQA,EACRuC,kBAAmBA,EAEvB,GACF,EAGIQ,EAA8B9N,EAAM0H,QAAO,GAC/C1H,EAAM2H,WAAU,WACd,IAAIyE,GAAY,EA2BhB,MAzBmB,UAAfL,EAAOrB,KAAoBe,EAAIV,OAeT,SAAfgB,EAAOrB,KAAkBqB,EAAOhB,SAAW+C,EAA4BlG,UAChFkG,EAA4BlG,SAAU,EACtCmE,EAAOhB,OAAOgD,mBAAmBrE,GAASrB,MAAK,SAAUiF,GACnDA,IACFjB,EAAeN,EAAOhB,OAAQuC,GAC9BA,EAAkBxF,GAAG,SAAU8F,GAEnC,KArBA7B,EAAOpB,cAActC,MAAK,SAAU0C,GAC9BA,GAAUqB,IAAc0B,EAA4BlG,UAItDkG,EAA4BlG,SAAU,EACtCmD,EAAOgD,mBAAmBrE,GAASrB,MAAK,SAAUiF,GAC5CA,IACFjB,EAAetB,EAAQuC,GACvBA,EAAkBxF,GAAG,SAAU8F,GAEnC,IAEJ,IAWK,WACLxB,GAAY,CACd,CACF,GAAG,CAACL,EAAQN,EAAK/B,EAASkE,IAE1B,IAAItB,EAAatE,EAAY6D,GAC7B7L,EAAM2H,WAAU,WACK,OAAf2E,GAAuBA,IAAeT,GACxC5B,QAAQC,KAAK,2GAEjB,GAAG,CAACoC,EAAYT,IAEhB,IAAIlC,EAAc3B,EAAY0B,GAC9B1J,EAAM2H,WAAU,WACd,IAAIqG,EAAuBC,EAE3B,GAAKxC,EAAI6B,kBAAT,EAII5D,EAAQwE,cAAiBhG,EAAgByB,IAAiBf,EAAQc,EAAQwE,aAAcvE,EAAYuE,eACtGjE,QAAQC,KAAK,6EAGf,IAAIiE,EAAqC,OAAhBxE,QAAwC,IAAhBA,GAA4F,QAAzDqE,EAAwBrE,EAAYyE,uBAAuD,IAA1BJ,OAA3E,EAAuHA,EAAsBK,WACnNC,EAAgC,OAAZ5E,QAAgC,IAAZA,GAAoF,QAArDuE,EAAwBvE,EAAQ0E,uBAAuD,IAA1BH,OAAvE,EAAmHA,EAAsBI,WAEtMC,IAAsB1F,EAAQ0F,EAAmBH,IACnD1C,EAAI6B,kBAAkBiB,iBAAiBD,EAVzC,CAYF,GAAG,CAAC5E,EAASC,EAAa8B,EAAI6B,oBAE9BtN,EAAM2H,WAAU,WACdqD,EAAqBS,EAAIV,OAC3B,GAAG,CAACU,EAAIV,SACR,IAAIyD,EAA6BxO,EAAMgM,SAAQ,WAC7C,OAAOqB,EAAkC5B,EAAI6B,kBAAmBE,EAClE,GAAG,CAAC/B,EAAI6B,kBAAmBE,IAE3B,OAAK/B,EAAI6B,kBAIWtN,EAAMyM,cAAcS,EAAyBR,SAAU,CACzE1K,MAAOyJ,GACOzL,EAAMyM,cAAcW,EAAsBV,SAAU,CAClE1K,MAAOwM,GACN1C,IAPM,IAQX,EACA6B,EAAuB3I,UAAY,CACjC+F,OAAQ3D,EAAUZ,IAClBkD,QAAStC,EAAUH,MAAM,CACvBiH,aAAc9G,EAAUd,OAAON,WAC/BoI,gBAAiBhH,EAAUlH,SAC1B8F,YAEL,IAAIyI,EAAyC,SAAgDC,GAC3F,IAAIjD,EAAMzL,EAAM6M,WAAWK,GAC3B,OAAOC,EAA8B1B,EAAKiD,EAC5C,EACIC,EAAmD,SAA0DD,GAC/G,IAAIE,EAA2B5O,EAAM6M,WAAWK,GAC5C2B,EAAkB7O,EAAM6M,WAAWxB,GAEvC,GAAIuD,GAA4BC,EAC9B,MAAM,IAAI/I,MAAM,6CAA6CqE,OAAOuE,EAAe,gEAGrF,OAAIE,EACKzB,EAA8ByB,EAA0BF,GAG1DlD,EAAqBqD,EAAiBH,EAC/C,EACII,EAAoB,WAEtBL,EAAuC,6BACvC,IAAIhD,EAAMzL,EAAM6M,WAAWO,GAE3B,IAAK3B,EACH,MAAM,IAAI3F,MAAM,wJAGlB,OAAO2F,CACT,EAEIsD,EAAc,SAAqBC,GACrC,OAAOA,EAAIC,OAAO,GAAGC,cAAgBF,EAAI/K,MAAM,EACjD,EAEIkL,EAAyB,SAAgCC,EAAMC,GACjE,IAAI9D,EAAc,GAAGpB,OAAO4E,EAAYK,GAAO,WA0H3CE,EAAUD,EAVM,SAAuB7J,GACzCmJ,EAAiD,WAAWxE,OAAOoB,EAAa,MAChF,IAAIgE,EAAK/J,EAAM+J,GACXC,EAAYhK,EAAMgK,UACtB,OAAoBxP,EAAMyM,cAAc,MAAO,CAC7C8C,GAAIA,EACJC,UAAWA,GAEf,EAtHoB,SAAuB5D,GACzC,IA2CI6D,EA3CAF,EAAK3D,EAAK2D,GACVC,EAAY5D,EAAK4D,UACjBE,EAAe9D,EAAKlC,QACpBA,OAA2B,IAAjBgG,EAA0B,CAAC,EAAIA,EACzCC,EAAS/D,EAAK+D,OACdC,EAAUhE,EAAKgE,QACfC,EAAUjE,EAAKiE,QACfC,EAAWlE,EAAKkE,SAChBC,EAAWnE,EAAKmE,SAChBC,EAAUpE,EAAKoE,QACfC,EAAcrE,EAAKqE,YACnBC,EAAgBtE,EAAKsE,cACrBC,EAAmBvE,EAAKuE,iBACxBC,EAAYxE,EAAKwE,UACjBC,EAAWzE,EAAKyE,SAChBC,EAA0B1E,EAAK0E,wBAC/BC,EAAuB3E,EAAK2E,qBAC5B9E,EAAMkD,EAAiD,WAAWxE,OAAOoB,EAAa,MACtFhD,EAAW,aAAckD,EAAMA,EAAIlD,SAAW,KAC9C+E,EAAoB,sBAAuB7B,EAAMA,EAAI6B,kBAAoB,KAGzErB,EAAmBtJ,EADD3C,EAAMkM,SAAS,MACkB,GACnDxF,EAAUuF,EAAiB,GAC3BuE,EAAavE,EAAiB,GAE9BwE,EAAazQ,EAAM0H,OAAO,MAC1BgJ,EAAU1Q,EAAM0H,OAAO,MAI3BL,EAAeX,EAAS,OAAQiJ,GAChCtI,EAAeX,EAAS,QAASkJ,GACjCvI,EAAeX,EAAS,SAAUqJ,GAClC1I,EAAeX,EAAS,QAASsJ,GACjC3I,EAAeX,EAAS,YAAauJ,GACrC5I,EAAeX,EAAS,cAAewJ,GACvC7I,EAAeX,EAAS,iBAAkByJ,GAC1C9I,EAAeX,EAAS,UAAW0J,GACnC/I,EAAeX,EAAS,SAAU2J,GAClChJ,EAAeX,EAAS,wBAAyB4J,GACjDjJ,EAAeX,EAAS,qBAAsB6J,GAC9ClJ,EAAeX,EAAS,SAAUoJ,GAG9BD,IAGAJ,EAFW,oBAATL,EAEcS,EAGA,WACdA,EAAQnJ,EACV,GAIJW,EAAeX,EAAS,QAAS+I,GACjCzP,EAAM2Q,iBAAgB,WACpB,GAA2B,OAAvBF,EAAW7I,SAAwC,OAApB8I,EAAQ9I,UAAqBW,GAAY+E,GAAoB,CAC9F,IAAIsD,EAAa,KAEbtD,EACFsD,EAAatD,EAAkBb,cAAc2C,EAAM1F,GAC1CnB,IACTqI,EAAarI,EAASsI,OAAOzB,EAAM1F,IAIrC+G,EAAW7I,QAAUgJ,EAErBJ,EAAWI,GAEPA,GACFA,EAAWE,MAAMJ,EAAQ9I,QAE7B,CACF,GAAG,CAACW,EAAU+E,EAAmB5D,IACjC,IAAIC,EAAc3B,EAAY0B,GAuB9B,OAtBA1J,EAAM2H,WAAU,WACd,GAAK8I,EAAW7I,QAAhB,CAIA,IAAI2E,EAAU9C,EAA6BC,EAASC,EAAa,CAAC,mBAE9D4C,GACFkE,EAAW7I,QAAQ4E,OAAOD,EAL5B,CAOF,GAAG,CAAC7C,EAASC,IACb3J,EAAM2Q,iBAAgB,WACpB,OAAO,WACL,GAAIF,EAAW7I,SAAiD,oBAA/B6I,EAAW7I,QAAQmJ,QAClD,IACEN,EAAW7I,QAAQmJ,UACnBN,EAAW7I,QAAU,IACvB,CAAE,MAAOoJ,GAAQ,CAGrB,CACF,GAAG,IACiBhR,EAAMyM,cAAc,MAAO,CAC7C8C,GAAIA,EACJC,UAAWA,EACXvH,IAAKyI,GAET,EAkCA,OApBApB,EAAQtK,UAAY,CAClBuK,GAAInI,EAAUd,OACdkJ,UAAWpI,EAAUd,OACrBwJ,SAAU1I,EAAUhB,KACpBuJ,OAAQvI,EAAUhB,KAClBwJ,QAASxI,EAAUhB,KACnByJ,QAASzI,EAAUhB,KACnB2J,SAAU3I,EAAUhB,KACpB4J,QAAS5I,EAAUhB,KACnB6J,YAAa7I,EAAUhB,KACvB8J,cAAe9I,EAAUhB,KACzB+J,iBAAkB/I,EAAUhB,KAC5BgK,UAAWhJ,EAAUhB,KACrBiK,SAAUjJ,EAAUhB,KACpBkK,wBAAyBlJ,EAAUhB,KACnCmK,qBAAsBnJ,EAAUhB,KAChCsD,QAAStC,EAAUlH,QAErBoP,EAAQ/D,YAAcA,EACtB+D,EAAQ2B,cAAgB7B,EACjBE,CACT,EAEID,EAA6B,qBAAX6B,OAElBC,GAAuCnR,EAAMsL,cAAc,MAC/D6F,GAAwB5F,YAAc,kCACtC,IAAI6F,GAA6B,WAC/B,IAAI3F,EAAMzL,EAAM6M,WAAWsE,IAE3B,IAAK1F,EACH,MAAM,IAAI3F,MAAM,qEAGlB,OAAO2F,CACT,EACI4F,GAAuB,qNACvBC,GAA2B,SAAkC1F,GAC/D,IAAIC,EAAgBD,EAAKb,OACrBrB,EAAUkC,EAAKlC,QACfoC,EAAWF,EAAKE,SAChBC,EAAS/L,EAAMgM,SAAQ,WACzB,OAAOvB,EAAgBoB,EAAewF,GACxC,GAAG,CAACxF,IACA0F,EAA0BvR,EAAM0H,OAAO,MACvC8J,EAAexR,EAAM0H,OAAO,MAK5BuE,EAAmBtJ,EAHD3C,EAAMkM,SAAS,CACnCuF,iBAAkB,OAEmC,GACnDhG,EAAMQ,EAAiB,GACvBE,EAAaF,EAAiB,GAElCjM,EAAM2H,WAAU,WAEd,IAAI6J,EAAa5J,UAAW2J,EAAwB3J,QAApD,CAIA,IAAI8J,EAAmC,SAA0C3G,GAC3EyG,EAAa5J,SAAW2J,EAAwB3J,UACpD4J,EAAa5J,QAAUmD,EACvBwG,EAAwB3J,QAAU4J,EAAa5J,QAAQ+J,qBAAqBjI,GAASrB,MAAK,SAAUoJ,GAClGtF,EAAW,CACTsF,iBAAkBA,GAEtB,IACF,EAGmB,UAAf1F,EAAOrB,KAAoB8G,EAAa5J,UAAY8B,EAAQwE,eAAgBxE,EAAQkI,kBAM9D,SAAf7F,EAAOrB,KAAmB8G,EAAa5J,UAAY8B,EAAQwE,eAAgBxE,EAAQkI,mBAE5FF,EAAiC3F,EAAOhB,QAPxCgB,EAAOpB,cAActC,MAAK,SAAU0C,GAC9BA,GACF2G,EAAiC3G,EAErC,GAlBF,CAuBF,GAAG,CAACgB,EAAQrC,EAAS+B,EAAK+F,IAC1BxR,EAAM2H,WAAU,WAEd,OAAO,WAED8D,EAAIgG,kBACNF,EAAwB3J,QAAU,KAClC6D,EAAIgG,iBAAiBV,WACZQ,EAAwB3J,SAIjC2J,EAAwB3J,QAAQS,MAAK,WACnCkJ,EAAwB3J,QAAU,KAE9B6D,EAAIgG,kBACNhG,EAAIgG,iBAAiBV,SAEzB,GAEJ,CACF,GAAG,CAACtF,EAAIgG,mBAERzR,EAAM2H,WAAU,WACdqD,EAAqBwG,EACvB,GAAG,CAACA,IAIJ,IAAIlF,EAAatE,EAAY6D,GAC7B7L,EAAM2H,WAAU,WACK,OAAf2E,GAAuBA,IAAeT,GACxC5B,QAAQC,KAAK,6GAEjB,GAAG,CAACoC,EAAYT,IAEhB,IAAIlC,EAAc3B,EAAY0B,GA2B9B,OA1BA1J,EAAM2H,WAAU,WACK,MAAfgC,IAIW,MAAXD,QAKyBc,IAAzBd,EAAQwE,mBAA4D1D,IAA9Bd,EAAQkI,mBAChD3H,QAAQC,KAAK,2IAGiB,MAA5BP,EAAYuE,cAAwBxE,EAAQwE,eAAiBvE,EAAYuE,cAC3EjE,QAAQC,KAAK,qLAGsB,MAAjCP,EAAYiI,mBAA6BlI,EAAQkI,oBAAsBjI,EAAYiI,mBACrF3H,QAAQC,KAAK,qLAGe,MAA1BP,EAAYkI,YAAsBnI,EAAQmI,aAAelI,EAAYkI,YACvE5H,QAAQC,KAAK,mHAjBbD,QAAQC,KAAK,qGAmBjB,GAAG,CAACP,EAAaD,IACG1J,EAAMyM,cAAc0E,GAAwBzE,SAAU,CACxE1K,MAAOyJ,GACNK,EACL,EAEIgG,GAAgC,SAAuClG,GACzE,IAAI2D,EAAK3D,EAAK2D,GACVC,EAAY5D,EAAK4D,UAGjBiC,EADwBL,KACiBK,iBAEzCrF,EAAYpM,EAAM0H,QAAO,GACzBgJ,EAAU1Q,EAAM0H,OAAO,MAuB3B,OAtBA1H,EAAM2Q,iBAAgB,WAOpB,OANKvE,EAAUxE,SAAW6J,GAAwC,OAApBf,EAAQ9I,UACpD6J,EAAiBX,MAAMJ,EAAQ9I,SAC/BwE,EAAUxE,SAAU,GAIf,WACL,GAAIwE,EAAUxE,SAAW6J,EACvB,IACEA,EAAiBM,UACjB3F,EAAUxE,SAAU,CACtB,CAAE,MAAOoK,GAKP,CAGN,CACF,GAAG,CAACP,IACgBzR,EAAMyM,cAAc,MAAO,CAC7CxE,IAAKyI,EACLnB,GAAIA,EACJC,UAAWA,GAEf,EAGIyC,GAAgC,SAAuCjF,GACzE,IAAIuC,EAAKvC,EAAMuC,GACXC,EAAYxC,EAAMwC,UAGtB,OADA4B,KACoBpR,EAAMyM,cAAc,MAAO,CAC7C8C,GAAIA,EACJC,UAAWA,GAEf,EAEI0C,GAAmB7C,EAAW4C,GAAgCH,GAM9DK,GAAY,WAId,OAH4BxD,EAAiD,qBAC1C5D,MAGrC,EASIqH,GAAuBjD,EAAuB,gBAAiBE,GAK/DgD,GAAclD,EAAuB,OAAQE,GAK7CiD,GAAoBnD,EAAuB,aAAcE,GAKzDkD,GAAoBpD,EAAuB,aAAcE,GAKzDmD,GAAiBrD,EAAuB,UAAWE,GAKnDoD,GAAiBtD,EAAuB,UAAWE,GAKnDqD,GAAcvD,EAAuB,OAAQE,GAK7CsD,GAAmBxD,EAAuB,YAAaE,GAKvDuD,GAAiBzD,EAAuB,UAAWE,GAKnDwD,GAAiB1D,EAAuB,UAAWE,GACnDyD,GAAiB3D,EAAuB,UAAWE,GAKnD0D,GAAyB5D,EAAuB,kBAAmBE,GAKnE2D,GAA8B7D,EAAuB,uBAAwBE,GAK7E4D,GAA4B9D,EAAuB,qBAAsBE,GAKzE6D,GAAiB/D,EAAuB,UAAWE,GAQnD8D,GAAyBhE,EAAuB,kBAAmBE,GAKnE+D,GAAgCjE,EAAuB,yBAA0BE,GAKjFgE,GAAuBlE,EAAuB,gBAAiBE,GAK/DiE,GAAiCnE,EAAuB,0BAA2BE,GAEvFtP,EAAQmT,eAAiBA,GACzBnT,EAAQsT,qBAAuBA,GAC/BtT,EAAQuT,+BAAiCA,GACzCvT,EAAQqS,qBAAuBA,GAC/BrS,EAAQyS,eAAiBA,GACzBzS,EAAQsS,YAAcA,GACtBtS,EAAQwS,kBAAoBA,GAC5BxS,EAAQuS,kBAAoBA,GAC5BvS,EAAQ4N,uBAAyBA,EACjC5N,EAAQ4L,SAAWA,EACnB5L,EAAQgN,iBAAmBA,EAC3BhN,EAAQmS,iBAAmBA,GAC3BnS,EAAQuR,yBAA2BA,GACnCvR,EAAQ8S,eAAiBA,GACzB9S,EAAQgT,uBAAyBA,GACjChT,EAAQ0S,eAAiBA,GACzB1S,EAAQ2S,YAAcA,GACtB3S,EAAQ4S,iBAAmBA,GAC3B5S,EAAQkT,0BAA4BA,GACpClT,EAAQ6S,eAAiBA,GACzB7S,EAAQ+S,eAAiBA,GACzB/S,EAAQqT,8BAAgCA,GACxCrT,EAAQiT,4BAA8BA,GACtCjT,EAAQoT,uBAAyBA,GACjCpT,EAAQ+O,kBAAoBA,EAC5B/O,EAAQ+M,YAAcA,EACtB/M,EAAQoS,UAAYA,EAEtB,CA1sCiEoB,CAAQxT,EAASyT,EAAQ,yBCD1FA,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAII,IAAMH,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAII,qBClBrBL,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIW,IAAMV,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIW,qBClBrBZ,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIY,WAAaX,EAAQI,cAAc,aAAc,CAAC,eACtDN,EAAQ,MACRnT,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIY,4BClBrBb,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAiC,uBAAI,CAAC,EAChDH,EAAIa,uBAAyBZ,EAAQI,cAAc,yBAA0B,CAAC,eAC9EzT,OAAOoB,eAAekS,EAAUC,SAAiC,uBAAG,aAAc,CAChFG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIa,wCCjBrBd,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAiB,OAAI,CAAC,EAChCH,EAAIc,OAASb,EAAQI,cAAc,SAAU,CAAC,eAC9CzT,OAAOoB,eAAekS,EAAUC,SAAiB,OAAG,aAAc,CAChEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIc,wBCjBrBf,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAsB,YAAI,CAAC,EACrCH,EAAIe,YAAcd,EAAQI,cAAc,cAAe,CAAC,eACxDzT,OAAOoB,eAAekS,EAAUC,SAAsB,YAAG,aAAc,CACrEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIe,6BCjBrBhB,EAAQ,OACRW,EAAOpU,QAAU,CACf8T,IAAKL,EAAQ,OACba,WAAYb,EAAQ,OACpBc,uBAAwBd,EAAQ,OAChCgB,YAAahB,EAAQ,OACrBiB,eAAgBjB,EAAQ,OACxBkB,WAAYlB,EAAQ,OACpBmB,SAAUnB,EAAQ,OAClBoB,WAAYpB,EAAQ,OACpBqB,WAAYrB,EAAQ,OACpBsB,iBAAkBtB,EAAQ,OAC1BuB,eAAgBvB,EAAQ,OACxBwB,UAAWxB,EAAQ,OACnByB,WAAYzB,EAAQ,KACpB0B,WAAY1B,EAAQ,OACpB2B,aAAc3B,EAAQ,OACtB4B,gBAAiB5B,EAAQ,OACzB6B,+BAAgC7B,EAAQ,OACxC8B,YAAa9B,EAAQ,OACrB+B,cAAe/B,EAAQ,OACvBgC,IAAKhC,EAAQ,OACbiC,WAAYjC,EAAQ,MACpBkC,cAAelC,EAAQ,OACvBmC,SAAUnC,EAAQ,OAClBoC,gBAAiBpC,EAAQ,MACzBqC,IAAKrC,EAAQ,OACbsC,IAAKtC,EAAQ,OACbuC,IAAKvC,EAAQ,OACbwC,IAAKxC,EAAQ,MACbyC,YAAazC,EAAQ,OACrB0C,iBAAkB1C,EAAQ,OAC1B2C,IAAK3C,EAAQ,OACb4C,MAAO5C,EAAQ,OACf6C,IAAK7C,EAAQ,OACb8C,kBAAmB9C,EAAQ,OAC3B+C,SAAU/C,EAAQ,OAClBgD,SAAUhD,EAAQ,OAClBiD,IAAKjD,EAAQ,OACbkD,UAAWlD,EAAQ,MACnBmD,IAAKnD,EAAQ,OACboD,QAASpD,EAAQ,MACjBqD,QAASrD,EAAQ,OACjBsD,IAAKtD,EAAQ,OACbuD,OAAQvD,EAAQ,OAChBwD,WAAYxD,EAAQ,OACpByD,gBAAiBzD,EAAQ,OACzB0D,6BAA8B1D,EAAQ,OACtC2D,MAAO3D,EAAQ,OACf4D,gBAAiB5D,EAAQ,OACzB6D,SAAU7D,EAAQ,OAClB8D,MAAO9D,EAAQ,OACf+D,IAAK/D,EAAQ,OACbgE,SAAUhE,EAAQ,OAClBiE,YAAajE,EAAQ,OACrBkE,QAASlE,EAAQ,OACjBmE,eAAgBnE,EAAQ,OACxBoE,GAAIpE,EAAQ,OACZqE,eAAgBrE,EAAQ,OACxBsE,IAAKtE,EAAQ,OACbuE,IAAKvE,EAAQ,OACbwE,IAAKxE,EAAQ,OACbyE,IAAKzE,EAAQ,OACb0E,eAAgB1E,EAAQ,OACxB2E,IAAK3E,EAAQ,OACb4E,KAAM5E,EAAQ,OACd6E,IAAK7E,EAAQ,OACb8E,SAAU9E,EAAQ,MAClB+E,wBAAyB/E,EAAQ,OACjCe,OAAQf,EAAQ,OAChBgF,WAAYhF,EAAQ,MACpBiF,QAASjF,EAAQ,OACjBkF,aAAclF,EAAQ,MACtBmF,eAAgBnF,EAAQ,OACxBoF,WAAYpF,EAAQ,OACpBqF,0BAA2BrF,EAAQ,OACnCsF,kBAAmBtF,EAAQ,OAC3BuF,aAAcvF,EAAQ,OACtBwF,UAAWxF,EAAQ,OACnByF,eAAgBzF,EAAQ,OACxB0F,QAAS1F,EAAQ,OACjB2F,eAAgB3F,EAAQ,OACxB4F,aAAc5F,EAAQ,OACtB6F,kBAAmB7F,EAAQ,OAC3B8F,YAAa9F,EAAQ,OACrB+F,kBAAmB/F,EAAQ,MAC3BgG,mBAAoBhG,EAAQ,OAC5BiG,gBAAiBjG,EAAQ,OACzBkG,qBAAsBlG,EAAQ,MAC9BmG,mBAAoBnG,EAAQ,MAC5BoG,8BAA+BpG,EAAQ,MACvCY,IAAKZ,EAAQ,OACbqG,SAAUrG,EAAQ,OAClBsG,aAActG,EAAQ,yBC7FxBA,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAIgB,eAAiBf,EAAQI,cAAc,iBAAkB,CAAC,eAC9DzT,OAAOoB,eAAekS,EAAUC,SAAyB,eAAG,aAAc,CACxEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIgB,gCClBrBjB,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIiB,WAAahB,EAAQI,cAAc,aAAc,CAAC,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,aAAc,cAAe,aAAc,cAAe,aAAc,cAAe,aAAc,cAAe,aAAc,cAAe,aAAc,cAAe,eACtbN,EAAQ,OACRnT,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIiB,4BC/ErBlB,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAIkB,SAAWjB,EAAQI,cAAc,WAAY,CAAC,eAClDzT,OAAOoB,eAAekS,EAAUC,SAAmB,SAAG,aAAc,CAClEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIkB,yBCjBrBnB,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAI+E,WAAa9E,EAAQI,cAAc,aAAc,CAAC,eACtDzT,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,KAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI+E,4BCjBrBhF,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAImB,WAAalB,EAAQI,cAAc,aAAc,CAAC,eACtDzT,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAImB,4BCjBrBpB,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIoB,WAAanB,EAAQI,cAAc,aAAc,CAAC,eACtDzT,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIoB,4BClBrBrB,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA2B,iBAAI,CAAC,EAC1CH,EAAIqB,iBAAmBpB,EAAQI,cAAc,mBAAoB,CAAC,cAAe,eACjFzT,OAAOoB,eAAekS,EAAUC,SAA2B,iBAAG,aAAc,CAC1EG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIqB,kCCjBrBtB,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAIsB,eAAiBrB,EAAQI,cAAc,iBAAkB,CAAC,eAC9DzT,OAAOoB,eAAekS,EAAUC,SAAyB,eAAG,aAAc,CACxEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIsB,gCCjBrBvB,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAoB,UAAI,CAAC,EACnCH,EAAIuB,UAAYtB,EAAQI,cAAc,YAAa,CAAC,eACpDzT,OAAOoB,eAAekS,EAAUC,SAAoB,UAAG,aAAc,CACnEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIuB,yBCjBrBxB,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIwB,WAAavB,EAAQI,cAAc,aAAc,CAAC,eACtDzT,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIwB,4BCjBrBzB,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIyB,WAAaxB,EAAQI,cAAc,aAAc,CAAC,eACtDzT,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIyB,4BClBrB1B,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuB,aAAI,CAAC,EACtCH,EAAI0B,aAAezB,EAAQI,cAAc,eAAgB,CAAC,eAC1DzT,OAAOoB,eAAekS,EAAUC,SAAuB,aAAG,aAAc,CACtEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI0B,8BCjBrB3B,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA0B,gBAAI,CAAC,EACzCH,EAAI2B,gBAAkB1B,EAAQI,cAAc,kBAAmB,CAAC,eAChEzT,OAAOoB,eAAekS,EAAUC,SAA0B,gBAAG,aAAc,CACzEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI2B,iCCjBrB5B,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyC,+BAAI,CAAC,EACxDH,EAAI4B,+BAAiC3B,EAAQI,cAAc,iCAAkC,CAAC,eAC9FzT,OAAOoB,eAAekS,EAAUC,SAAyC,+BAAG,aAAc,CACxFG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI4B,gDCjBrB7B,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAsB,YAAI,CAAC,EACrCH,EAAI6B,YAAc5B,EAAQI,cAAc,cAAe,CAAC,eACxDzT,OAAOoB,eAAekS,EAAUC,SAAsB,YAAG,aAAc,CACrEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI6B,6BCjBrB9B,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAImF,WAAalF,EAAQI,cAAc,aAAc,CAAC,eACtDzT,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAEpB,OADAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAImF,4BCjBrBpF,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA4B,kBAAI,CAAC,EAC3CH,EAAI4F,kBAAoB3F,EAAQI,cAAc,oBAAqB,CAAC,eACpEzT,OAAOoB,eAAekS,EAAUC,SAA4B,kBAAG,aAAc,CAC3EG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI4F,mCCjBrB7F,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAwB,cAAI,CAAC,EACvCH,EAAI8B,cAAgB7B,EAAQI,cAAc,gBAAiB,CAAC,eAC5DzT,OAAOoB,eAAekS,EAAUC,SAAwB,cAAG,aAAc,CACvEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI8B,+BCjBrB/B,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkB,QAAI,CAAC,EACjCH,EAAIyF,QAAUxF,EAAQI,cAAc,UAAW,CAAC,eAChDzT,OAAOoB,eAAekS,EAAUC,SAAkB,QAAG,aAAc,CACjEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIyF,wBCjBrB1F,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuB,aAAI,CAAC,EACtCH,EAAIiF,aAAehF,EAAQI,cAAc,eAAgB,CAAC,eAC1DzT,OAAOoB,eAAekS,EAAUC,SAAuB,aAAG,aAAc,CACtEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIiF,8BCjBrBlF,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAI+B,IAAM9B,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI+B,oBCjBrBhC,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIgC,WAAa/B,EAAQI,cAAc,aAAc,CAAC,eACtDzT,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIgC,4BCjBrBjC,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAwB,cAAI,CAAC,EACvCH,EAAIiC,cAAgBhC,EAAQI,cAAc,gBAAiB,CAAC,eAC5DzT,OAAOoB,eAAekS,EAAUC,SAAwB,cAAG,aAAc,CACvEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIiC,+BCjBrBlC,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAIkC,SAAWjC,EAAQI,cAAc,WAAY,CAAC,aAAc,eAChEN,EAAQ,MACRnT,OAAOoB,eAAekS,EAAUC,SAAmB,SAAG,aAAc,CAClEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAmB,SAAG,aAAc,CAClEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIkC,yBC7BrBnC,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA0B,gBAAI,CAAC,EACzCH,EAAImC,gBAAkBlC,EAAQI,cAAc,kBAAmB,CAAC,eAChEzT,OAAOoB,eAAekS,EAAUC,SAA0B,gBAAG,aAAc,CACzEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAImC,iCCjBrBpC,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIoC,IAAMnC,EAAQI,cAAc,MAAO,CAAC,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,eAC5NN,EAAQ,OACRnT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,MAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIoC,qBCnBrBrC,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIqC,IAAMpC,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIqC,qBClBrBtC,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIsC,IAAMrC,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIsC,oBClBrBvC,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIuC,IAAMtC,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIuC,qBCjBrBxC,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAsB,YAAI,CAAC,EACrCH,EAAIwC,YAAcvC,EAAQI,cAAc,cAAe,CAAC,cAAe,cAAe,cAAe,cAAe,eACpHzT,OAAOoB,eAAekS,EAAUC,SAAsB,YAAG,aAAc,CACrEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIwC,6BClBrBzC,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA2B,iBAAI,CAAC,EAC1CH,EAAIyC,iBAAmBxC,EAAQI,cAAc,mBAAoB,CAAC,eAClEzT,OAAOoB,eAAekS,EAAUC,SAA2B,iBAAG,aAAc,CAC1EG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIyC,kCClBrB1C,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA4B,kBAAI,CAAC,EAC3CH,EAAI6C,kBAAoB5C,EAAQI,cAAc,oBAAqB,CAAC,eACpEzT,OAAOoB,eAAekS,EAAUC,SAA4B,kBAAG,aAAc,CAC3EG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI6C,mCClBrB9C,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAI0C,IAAMzC,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI0C,qBClBrB3C,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAgB,MAAI,CAAC,EAC/BH,EAAI2C,MAAQ1C,EAAQI,cAAc,QAAS,CAAC,eAC5CzT,OAAOoB,eAAekS,EAAUC,SAAgB,MAAG,aAAc,CAC/DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI2C,uBClBrB5C,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAI4C,IAAM3C,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI4C,qBClBrB7C,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAI8C,SAAW7C,EAAQI,cAAc,WAAY,CAAC,eAClDzT,OAAOoB,eAAekS,EAAUC,SAAmB,SAAG,aAAc,CAClEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI8C,yBCjBrB/C,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA+B,qBAAI,CAAC,EAC9CH,EAAIiG,qBAAuBhG,EAAQI,cAAc,uBAAwB,CAAC,eAC1EzT,OAAOoB,eAAekS,EAAUC,SAA+B,qBAAG,aAAc,CAC9EG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIiG,sCCjBrBlG,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA0B,gBAAI,CAAC,EACzCH,EAAIgG,gBAAkB/F,EAAQI,cAAc,kBAAmB,CAAC,eAChEzT,OAAOoB,eAAekS,EAAUC,SAA0B,gBAAG,aAAc,CACzEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIgG,iCCjBrBjG,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAI+C,SAAW9C,EAAQI,cAAc,WAAY,CAAC,eAClDzT,OAAOoB,eAAekS,EAAUC,SAAmB,SAAG,aAAc,CAClEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI+C,0BCjBrBhD,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIgD,IAAM/C,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIgD,oBClBrBjD,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAoB,UAAI,CAAC,EACnCH,EAAIiD,UAAYhD,EAAQI,cAAc,YAAa,CAAC,cAAe,eACnEzT,OAAOoB,eAAekS,EAAUC,SAAoB,UAAG,aAAc,CACnEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIiD,2BCjBrBlD,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIkD,IAAMjD,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIkD,qBCjBrBnD,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuB,aAAI,CAAC,EACtCH,EAAI2F,aAAe1F,EAAQI,cAAc,eAAgB,CAAC,eAC1DzT,OAAOoB,eAAekS,EAAUC,SAAuB,aAAG,aAAc,CACtEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI2F,6BCjBrB5F,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkB,QAAI,CAAC,EACjCH,EAAImD,QAAUlD,EAAQI,cAAc,UAAW,CAAC,eAChDN,EAAQ,OACRnT,OAAOoB,eAAekS,EAAUC,SAAkB,QAAG,aAAc,CACjEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAImD,yBClBrBpD,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkB,QAAI,CAAC,EACjCH,EAAIoD,QAAUnD,EAAQI,cAAc,UAAW,CAAC,eAChDzT,OAAOoB,eAAekS,EAAUC,SAAkB,QAAG,aAAc,CACjEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,MAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIoD,yBClBrBrD,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuB,aAAI,CAAC,EACtCH,EAAIsF,aAAerF,EAAQI,cAAc,eAAgB,CAAC,eAC1DzT,OAAOoB,eAAekS,EAAUC,SAAuB,aAAG,aAAc,CACtEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIsF,8BCjBrBvF,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAoC,0BAAI,CAAC,EACnDH,EAAIoF,0BAA4BnF,EAAQI,cAAc,4BAA6B,CAAC,eACpFzT,OAAOoB,eAAekS,EAAUC,SAAoC,0BAAG,aAAc,CACnFG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIoF,2CCjBrBrF,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA4B,kBAAI,CAAC,EAC3CH,EAAIqF,kBAAoBpF,EAAQI,cAAc,oBAAqB,CAAC,eACpEzT,OAAOoB,eAAekS,EAAUC,SAA4B,kBAAG,aAAc,CAC3EG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIqF,kCCjBrBtF,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAwC,8BAAI,CAAC,EACvDH,EAAImG,8BAAgClG,EAAQI,cAAc,gCAAiC,CAAC,eAC5FzT,OAAOoB,eAAekS,EAAUC,SAAwC,8BAAG,aAAc,CACvFG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAImG,+CCjBrBpG,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIqD,IAAMpD,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIqD,qBCjBrBtD,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAiB,OAAI,CAAC,EAChCH,EAAIsD,OAASrD,EAAQI,cAAc,SAAU,CAAC,aAAc,eAC5DN,EAAQ,MACRnT,OAAOoB,eAAekS,EAAUC,SAAiB,OAAG,aAAc,CAChEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAiB,OAAG,aAAc,CAChEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIsD,wBC5BrBvD,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkC,wBAAI,CAAC,EACjDH,EAAI8E,wBAA0B7E,EAAQI,cAAc,0BAA2B,CAAC,eAChFzT,OAAOoB,eAAekS,EAAUC,SAAkC,wBAAG,aAAc,CACjFG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI8E,yCCjBrB/E,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIuD,WAAatD,EAAQI,cAAc,aAAc,CAAC,eACtDzT,OAAOoB,eAAekS,EAAUC,SAAqB,WAAG,aAAc,CACpEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIuD,4BCjBrBxD,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuB,aAAI,CAAC,EACtCH,EAAIqG,aAAepG,EAAQI,cAAc,eAAgB,CAAC,eAC1DzT,OAAOoB,eAAekS,EAAUC,SAAuB,aAAG,aAAc,CACtEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAEpB,OADAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIqG,8BCjBrBtG,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAIoG,SAAWnG,EAAQI,cAAc,WAAY,CAAC,eAClDzT,OAAOoB,eAAekS,EAAUC,SAAmB,SAAG,aAAc,CAClEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIoG,0BCjBrBrG,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA0B,gBAAI,CAAC,EACzCH,EAAIwD,gBAAkBvD,EAAQI,cAAc,kBAAmB,CAAC,eAChEN,EAAQ,OACRnT,OAAOoB,eAAekS,EAAUC,SAA0B,gBAAG,aAAc,CACzEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIwD,gCCnBrBzD,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA6B,mBAAI,CAAC,EAC5CH,EAAIkG,mBAAqBjG,EAAQI,cAAc,qBAAsB,CAAC,eACtEzT,OAAOoB,eAAekS,EAAUC,SAA6B,mBAAG,aAAc,CAC5EG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIkG,oCCjBrBnG,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuC,6BAAI,CAAC,EACtDH,EAAIyD,6BAA+BxD,EAAQI,cAAc,+BAAgC,CAAC,eAC1FzT,OAAOoB,eAAekS,EAAUC,SAAuC,6BAAG,aAAc,CACtFG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIyD,8CCjBrB1D,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAIkF,eAAiBjF,EAAQI,cAAc,iBAAkB,CAAC,eAC9DzT,OAAOoB,eAAekS,EAAUC,SAAyB,eAAG,aAAc,CACxEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIkF,gCCjBrBnF,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA0B,gBAAI,CAAC,EACzCH,EAAI2D,gBAAkB1D,EAAQI,cAAc,kBAAmB,CAAC,eAChEzT,OAAOoB,eAAekS,EAAUC,SAA0B,gBAAG,aAAc,CACzEG,IAAK,WAEH,OADYP,EAAQ,MAEtB,EACA7S,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI2D,iCChBrB5D,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAgB,MAAI,CAAC,EAC/BH,EAAI0D,MAAQzD,EAAQI,cAAc,QAAS,CAAC,eAC5CzT,OAAOoB,eAAekS,EAAUC,SAAgB,MAAG,aAAc,CAC/DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI0D,uBCjBrB3D,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAI4D,SAAW3D,EAAQI,cAAc,WAAY,CAAC,eAClDzT,OAAOoB,eAAekS,EAAUC,SAAmB,SAAG,aAAc,CAClEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,MAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI4D,0BClBrB7D,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAsB,YAAI,CAAC,EACrCH,EAAI6F,YAAc5F,EAAQI,cAAc,cAAe,CAAC,eACxDzT,OAAOoB,eAAekS,EAAUC,SAAsB,YAAG,aAAc,CACrEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI6F,4BCjBrB9F,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA4B,kBAAI,CAAC,EAC3CH,EAAI8F,kBAAoB7F,EAAQI,cAAc,oBAAqB,CAAC,eACpEzT,OAAOoB,eAAekS,EAAUC,SAA4B,kBAAG,aAAc,CAC3EG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI8F,mCCjBrB/F,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA6B,mBAAI,CAAC,EAC5CH,EAAI+F,mBAAqB9F,EAAQI,cAAc,qBAAsB,CAAC,eACtEzT,OAAOoB,eAAekS,EAAUC,SAA6B,mBAAG,aAAc,CAC5EG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI+F,oCCjBrBhG,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAgB,MAAI,CAAC,EAC/BH,EAAI6D,MAAQ5D,EAAQI,cAAc,QAAS,CAAC,eAC5CN,EAAQ,MACRnT,OAAOoB,eAAekS,EAAUC,SAAgB,MAAG,aAAc,CAC/DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI6D,uBClBrB9D,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkB,QAAI,CAAC,EACjCH,EAAIgF,QAAU/E,EAAQI,cAAc,UAAW,CAAC,eAChDzT,OAAOoB,eAAekS,EAAUC,SAAkB,QAAG,aAAc,CACjEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIgF,yBClBrBjF,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAI8D,IAAM7D,EAAQI,cAAc,MAAO,CAAC,aAAc,aAAc,aAAc,aAAc,cAAe,eAC/GN,EAAQ,OACRnT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAEhB5B,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,KAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI8D,qBCxDrB/D,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAI+D,SAAW9D,EAAQI,cAAc,WAAY,CAAC,eAClDzT,OAAOoB,eAAekS,EAAUC,SAAmB,SAAG,aAAc,CAClEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI+D,0BClBrBhE,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAsB,YAAI,CAAC,EACrCH,EAAIgE,YAAc/D,EAAQI,cAAc,cAAe,CAAC,eACxDzT,OAAOoB,eAAekS,EAAUC,SAAsB,YAAG,aAAc,CACrEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIgE,6BClBrBjE,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAIwF,eAAiBvF,EAAQI,cAAc,iBAAkB,CAAC,eAC9DzT,OAAOoB,eAAekS,EAAUC,SAAyB,eAAG,aAAc,CACxEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIwF,gCCjBrBzF,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkB,QAAI,CAAC,EACjCH,EAAIiE,QAAUhE,EAAQI,cAAc,UAAW,CAAC,eAChDN,EAAQ,MACRnT,OAAOoB,eAAekS,EAAUC,SAAkB,QAAG,aAAc,CACjEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,MAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIiE,yBCnBrBlE,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAIkE,eAAiBjE,EAAQI,cAAc,iBAAkB,CAAC,eAC9DzT,OAAOoB,eAAekS,EAAUC,SAAyB,eAAG,aAAc,CACxEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIkE,gCCjBrBnE,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAa,GAAI,CAAC,EAC5BH,EAAImE,GAAKlE,EAAQI,cAAc,KAAM,CAAC,eACtCN,EAAQ,OACRnT,OAAOoB,eAAekS,EAAUC,SAAa,GAAG,aAAc,CAC5DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAImE,oBCnBrBpE,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAI0F,eAAiBzF,EAAQI,cAAc,iBAAkB,CAAC,eAC9DzT,OAAOoB,eAAekS,EAAUC,SAAyB,eAAG,aAAc,CACxEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI0F,gCCjBrB3F,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAIoE,eAAiBnE,EAAQI,cAAc,iBAAkB,CAAC,eAC9DzT,OAAOoB,eAAekS,EAAUC,SAAyB,eAAG,aAAc,CACxEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIoE,gCCjBrBrE,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIqE,IAAMpE,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIqE,qBClBrBtE,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIsE,IAAMrE,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIsE,qBCjBrBvE,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIuE,IAAMtE,EAAQI,cAAc,MAAO,CAAC,eACxCN,EAAQ,OACRnT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIuE,qBClBrBxE,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIwE,IAAMvE,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAGpB,OAFAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACnBQ,EAAME,QAAUV,EAAAA,OAAAA,EACTQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIwE,qBClBrBzE,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAIyE,eAAiBxE,EAAQI,cAAc,iBAAkB,CAAC,eAC9DzT,OAAOoB,eAAekS,EAAUC,SAAyB,eAAG,aAAc,CACxEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIyE,gCCjBrB1E,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAI0E,IAAMzE,EAAQI,cAAc,MAAO,CAAC,eACxCN,EAAQ,OACRnT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,MAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI0E,qBClBrB3E,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAoB,UAAI,CAAC,EACnCH,EAAIuF,UAAYtF,EAAQI,cAAc,YAAa,CAAC,eACpDzT,OAAOoB,eAAekS,EAAUC,SAAoB,UAAG,aAAc,CACnEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAIuF,2BCjBrBxF,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAI4E,IAAM3E,EAAQI,cAAc,MAAO,CAAC,eACxCzT,OAAOoB,eAAekS,EAAUC,SAAc,IAAG,aAAc,CAC7DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI4E,oBCjBrB7E,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAI6E,SAAW5E,EAAQI,cAAc,WAAY,CAAC,eAClDzT,OAAOoB,eAAekS,EAAUC,SAAmB,SAAG,aAAc,CAClEG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI6E,0BCjBrB9E,EAAQ,OACR,IAAIC,EAAMD,EAAQ,OACdE,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAe,KAAI,CAAC,EAC9BH,EAAI2E,KAAO1E,EAAQI,cAAc,OAAQ,CAAC,eAC1CzT,OAAOoB,eAAekS,EAAUC,SAAe,KAAG,aAAc,CAC9DG,IAAK,WACH,IAAIC,EAAQR,EAAQ,OAEpB,OADAQ,EAAMC,WAAaT,EAAAA,OAAAA,EACZQ,CACT,EACArT,YAAY,EACZsB,cAAc,IAGhBkS,EAAOpU,QAAU0T,EAAI2E,gBCjBrB,SAASzE,EAAUoG,EAAK5O,GACtB,IAAKwI,EAAUC,SAASjP,eAAeoV,GACrC,MAAM,IAAIjU,MAAM,0CAA4CiU,GAE9D,OAAOpG,EAAUC,SAASmG,GAAK5O,EACjC,CAQAwI,EAAUC,SAAW,CAAC,EAKtBO,EAAOpU,QAAU4T,mBClBjBH,EAAQ,OAER,IAAIC,EAAMD,EAAQ,OAEI,qBAAXtC,SAAwBA,OAAOuC,IAAMA,GAK5CU,EAAOpU,QAAU0T,EAED,qBAATuG,OAAsBA,KAAKvG,IAAMA,GAO5CD,EAAQ,wBClBR,IAAIyG,EAAOzG,EAAQ,OACf0G,EAAM1G,EAAQ,OACd2G,EAAO3G,EAAQ,OACf4G,EAAS5G,EAAQ,OAKrBW,EAAOpU,QAAoB,CACvBsa,WAAY,SAAoBC,GAE9B,GAAY,SADZA,EAAMA,EAAIC,eAER,OAAO,IAAIL,EACN,GAAY,WAARI,EACT,OAAO,IAAIF,EACN,GAAY,SAARE,EACT,OAAO,IAAIH,EAGb,MAAM,IAAIrU,MAAM,kBAAoBwU,EAAM,uCAC5C,EACAE,WAAY,SAAoBF,EAAKjZ,GAEnC,GAAY,SADZiZ,EAAMA,EAAIC,eAER,OAAO,IAAIN,EAAKC,EAAK7Y,GAChB,GAAY,WAARiZ,EACT,OAAO,IAAIL,EAAKG,EAAQ/Y,GACnB,GAAY,SAARiZ,EACT,OAAO,IAAIL,EAAKE,EAAM9Y,GAGxB,MAAM,IAAIyE,MAAM,kBAAoBwU,EAAM,uCAC5C,EACAG,WAAY,WACV,MAAM,IAAI3U,MAAM,+CAClB,oBCnCJ,IAAI4U,EAASlH,EAAAA,OAAAA,GASc,qBAAhBmH,aACuB,qBAAvBA,YAAYC,SAEnBD,YAAYC,OAAS,SAASC,GAC1B,OAAOC,EAAYxY,QAAQjC,OAAO0B,UAAUiC,SAAStB,KAAKmY,KAAS,CACvE,GAMJ,IAAIC,EAAc,CACd,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,wBACA,qBA+BJ3G,EAAOpU,QAAoB,CACvBgb,YA1BJ,SAAqBC,GACjB,MAAoB,kBAATA,EACgB,IAAhBA,EAAK9Z,OAEW,IAApB8Z,EAAKC,UAChB,EAsBIC,gBAjBJ,SAAyBF,GAKrB,MAJoB,kBAATA,IACPA,EAAO,IAAIN,EAAOM,EAAM,SAGxBL,YAAYC,OAAOI,GACZ,IAAIG,WAAWH,EAAKI,OAAQJ,EAAKK,WAAYL,EAAKC,WAAaE,WAAWG,mBAG9E,IAAIH,WAAWH,EAC1B,oBCxDA,IAAIO,EAAY/H,EAAQ,OAKxB,SAASyG,EAAKuB,EAAU3V,GACpB4V,KAAKC,KAAO,IAAIF,EAChBC,KAAKE,MAAQ,IAAIH,EAEjB,IAAII,EA6CR,SAA0BJ,EAAU3V,GAChC,IAAIgW,EAAQN,EAAUL,gBAAgBrV,GACtC,GAAIgW,EAAMZ,WAAaO,EAASM,WAAY,CACxC,IAAIC,EAAa,IAAIP,EACrBO,EAAWvP,OAAOqP,GAClBA,EAAQE,EAAWC,QACvB,CACA,IAAIZ,EAAS,IAAID,WAAWK,EAASM,YAErC,OADAV,EAAOa,IAAIJ,GACJT,CACX,CAvDgBc,CAAiBV,EAAU3V,GACnC8V,EAAQ,IAAIR,WAAWK,EAASM,YACpCH,EAAMM,IAAIL,GAEV,IAAK,IAAI5a,EAAI,EAAGA,EAAIwa,EAASM,WAAY9a,IACrC4a,EAAM5a,IAAM,GACZ2a,EAAM3a,IAAM,GAGhBya,KAAKC,KAAKlP,OAAOoP,GACjBH,KAAKE,MAAMnP,OAAOmP,GAGlB,IAAS3a,EAAI,EAAGA,EAAI4a,EAAMX,WAAYja,IAClC4a,EAAM5a,GAAK,CAEnB,CAKAmT,EAAOpU,QAAoBka,EAE3BA,EAAKlY,UAAUyK,OAAS,SAAU2P,GAC9B,GAAIZ,EAAUR,YAAYoB,IAAWV,KAAKzK,MACtC,OAAOyK,KAGX,IACIA,KAAKC,KAAKlP,OAAO+O,EAAUL,gBAAgBiB,GAC/C,CAAE,MAAOnK,GACLyJ,KAAKzK,MAAQgB,CACjB,CAEA,OAAOyJ,IACX,EAEAxB,EAAKlY,UAAUia,OAAS,SAAUI,GAK9B,OAJKX,KAAKE,MAAMU,UACZZ,KAAKE,MAAMnP,OAAOiP,KAAKC,KAAKM,UAGzBP,KAAKE,MAAMK,OAAOI,EAC7B,mBCpDA,IAAIb,EAAY/H,EAAQ,OACpBkH,EAASlH,EAAAA,OAAAA,GAETsI,EAAa,GAcjB,SAAS5B,IACLuB,KAAKa,MAAQ,CACT,WACA,WACA,WACA,WAEJb,KAAKL,OAAS,IAAImB,SAAS,IAAI5B,YAAYmB,IAC3CL,KAAKe,aAAe,EACpBf,KAAKgB,YAAc,EACnBhB,KAAKY,UAAW,CACpB,CAsIA,SAASK,EAAIC,EAAGC,EAAGC,EAAGpY,EAAGqY,EAAGC,GAExB,QADAH,GAAOA,EAAID,EAAK,aAAgBlY,EAAIsY,EAAK,YAAe,aACzCD,EAAMF,IAAO,GAAKE,GAAOD,EAAK,UACjD,CAEA,SAASG,EAAGJ,EAAGC,EAAGI,EAAGC,EAAGzY,EAAGqY,EAAGC,GAC1B,OAAOL,EAAKG,EAAII,GAAQJ,EAAKK,EAAIN,EAAGC,EAAGpY,EAAGqY,EAAGC,EACjD,CAEA,SAASI,EAAGP,EAAGC,EAAGI,EAAGC,EAAGzY,EAAGqY,EAAGC,GAC1B,OAAOL,EAAKG,EAAIK,EAAMD,GAAMC,EAAKN,EAAGC,EAAGpY,EAAGqY,EAAGC,EACjD,CAEA,SAASK,EAAGR,EAAGC,EAAGI,EAAGC,EAAGzY,EAAGqY,EAAGC,GAC1B,OAAOL,EAAIG,EAAII,EAAIC,EAAGN,EAAGC,EAAGpY,EAAGqY,EAAGC,EACtC,CAEA,SAASM,EAAGT,EAAGC,EAAGI,EAAGC,EAAGzY,EAAGqY,EAAGC,GAC1B,OAAOL,EAAIO,GAAKJ,GAAMK,GAAKN,EAAGC,EAAGpY,EAAGqY,EAAGC,EAC3C,CApJA5I,EAAOpU,QAAoBma,EAE3BA,EAAI4B,WAAaA,EAEjB5B,EAAInY,UAAUyK,OAAS,SAAU8Q,GAC7B,GAAI/B,EAAUR,YAAYuC,GACtB,OAAO7B,KACJ,GAAIA,KAAKY,SACZ,MAAM,IAAIvW,MAAM,iDAGpB,IAAIkV,EAAOO,EAAUL,gBAAgBoC,GACjCC,EAAW,EACXtC,EAAaD,EAAKC,WAEtB,IADAQ,KAAKgB,aAAexB,EACbA,EAAa,GAChBQ,KAAKL,OAAOoC,SAAS/B,KAAKe,eAAgBxB,EAAKuC,MAC/CtC,IACIQ,KAAKe,eAAiBV,IACtBL,KAAKgC,aACLhC,KAAKe,aAAe,GAI5B,OAAOf,IACX,EAEAvB,EAAInY,UAAUia,OAAS,SAAUI,GAC7B,IAAKX,KAAKY,SAAU,CAChB,IAAIqB,EAAKjC,KAAML,EAASsC,EAAGtC,OAAQuC,EAAoBD,EAAGlB,aACtDoB,EAA2B,EADuDF,EAAGjB,YAIzF,GAFArB,EAAOoC,SAAS/B,KAAKe,eAAgB,KAEjCmB,EAAoB7B,GAAcA,GAAgB,CAClD,IAAK,IAAI9a,EAAIya,KAAKe,aAAcxb,EAAI8a,EAAY9a,IAC5Coa,EAAOoC,SAASxc,EAAG,GAEvBya,KAAKgC,aACLhC,KAAKe,aAAe,CACxB,CACA,IAASxb,EAAIya,KAAKe,aAAcxb,EAAI8a,GAAgB9a,IAChDoa,EAAOoC,SAASxc,EAAG,GAEvBoa,EAAOyC,UAAU/B,GAAgB8B,IAAe,GAAG,GACnDxC,EAAOyC,UAAU/B,GAAgBgC,KAAKC,MAAMH,EAAa,aAAc,GACvEnC,KAAKgC,aACLhC,KAAKY,UAAW,CACpB,CACA,IAAI2B,EAAM,IAAIzB,SAAS,IAAI5B,YA5EX,KA6EhB,IAAS3Z,EAAI,EAAGA,EAAI,EAAGA,IACnBgd,EAAIH,UAAc,EAAJ7c,EAAOya,KAAKa,MAAMtb,IAAI,GAExC,IAAIid,EAAO,IAAIvD,EAAOsD,EAAI5C,OAAQ4C,EAAI3C,WAAY2C,EAAI/C,YACtD,OAAOmB,EAAW6B,EAAKja,SAASoY,GAAY6B,CAChD,EAEA/D,EAAInY,UAAU0b,WAAa,WACvB,IAAerC,EAANK,KAAkBL,OAAQkB,EAA1Bb,KAAqCa,MAC1CM,EAAIN,EAAM,GAAIO,EAAIP,EAAM,GAAIW,EAAIX,EAAM,GAAIY,EAAIZ,EAAM,GACxDM,EAAII,EAAGJ,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,GAAG,GAAO,EAAG,YACjDhB,EAAIF,EAAGE,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,GAAG,GAAO,GAAI,YAClDjB,EAAID,EAAGC,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,GAAG,GAAO,GAAI,WAClDrB,EAAIG,EAAGH,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDtB,EAAII,EAAGJ,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDhB,EAAIF,EAAGE,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDjB,EAAID,EAAGC,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDrB,EAAIG,EAAGH,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDtB,EAAII,EAAGJ,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDhB,EAAIF,EAAGE,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDjB,EAAID,EAAGC,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDrB,EAAIG,EAAGH,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDtB,EAAII,EAAGJ,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDhB,EAAIF,EAAGE,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDjB,EAAID,EAAGC,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YAEnDtB,EAAIO,EAAGP,EADPC,EAAIG,EAAGH,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACtCjB,EAAGC,EAAG9B,EAAO8C,UAAU,GAAG,GAAO,EAAG,YACjDhB,EAAIC,EAAGD,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDjB,EAAIE,EAAGF,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,WACnDrB,EAAIM,EAAGN,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,GAAG,GAAO,GAAI,YAClDtB,EAAIO,EAAGP,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDhB,EAAIC,EAAGD,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,EAAG,UAClDjB,EAAIE,EAAGF,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDrB,EAAIM,EAAGN,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDtB,EAAIO,EAAGP,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,WAClDhB,EAAIC,EAAGD,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDjB,EAAIE,EAAGF,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDrB,EAAIM,EAAGN,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDtB,EAAIO,EAAGP,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDhB,EAAIC,EAAGD,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,GAAG,GAAO,EAAG,YACjDjB,EAAIE,EAAGF,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YAEnDtB,EAAIQ,EAAGR,EADPC,EAAIM,EAAGN,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACtCjB,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDhB,EAAIE,EAAGF,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDjB,EAAIG,EAAGH,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDrB,EAAIO,EAAGP,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDtB,EAAIQ,EAAGR,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,GAAG,GAAO,EAAG,YACjDhB,EAAIE,EAAGF,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDjB,EAAIG,EAAGH,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDrB,EAAIO,EAAGP,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDtB,EAAIQ,EAAGR,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,WAClDhB,EAAIE,EAAGF,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,GAAG,GAAO,GAAI,YAClDjB,EAAIG,EAAGH,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDrB,EAAIO,EAAGP,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,UACnDtB,EAAIQ,EAAGR,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDhB,EAAIE,EAAGF,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDjB,EAAIG,EAAGH,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,WAEnDtB,EAAIS,EAAGT,EADPC,EAAIO,EAAGP,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,GAAG,GAAO,GAAI,YACrCjB,EAAGC,EAAG9B,EAAO8C,UAAU,GAAG,GAAO,EAAG,YACjDhB,EAAIG,EAAGH,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDjB,EAAII,EAAGJ,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDrB,EAAIQ,EAAGR,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDtB,EAAIS,EAAGT,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDhB,EAAIG,EAAGH,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDjB,EAAII,EAAGJ,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDrB,EAAIQ,EAAGR,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,GAAG,GAAO,GAAI,YAClDtB,EAAIS,EAAGT,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDhB,EAAIG,EAAGH,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDjB,EAAII,EAAGJ,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDrB,EAAIQ,EAAGR,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDtB,EAAIS,EAAGT,EAAGC,EAAGI,EAAGC,EAAG9B,EAAO8C,UAAU,IAAI,GAAO,EAAG,YAClDhB,EAAIG,EAAGH,EAAGN,EAAGC,EAAGI,EAAG7B,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnDjB,EAAII,EAAGJ,EAAGC,EAAGN,EAAGC,EAAGzB,EAAO8C,UAAU,GAAG,GAAO,GAAI,WAClDrB,EAAIQ,EAAGR,EAAGI,EAAGC,EAAGN,EAAGxB,EAAO8C,UAAU,IAAI,GAAO,GAAI,YACnD5B,EAAM,GAAMM,EAAIN,EAAM,GAAM,WAC5BA,EAAM,GAAMO,EAAIP,EAAM,GAAM,WAC5BA,EAAM,GAAMW,EAAIX,EAAM,GAAM,WAC5BA,EAAM,GAAMY,EAAIZ,EAAM,GAAM,UAChC,mBChKA,IAAI5B,EAASlH,EAAAA,OAAAA,GACT+H,EAAY/H,EAAQ,OAMd,IAAI2K,YAAY,CACtB,WACA,YACA,YACA,YAcsBL,KAAKM,IAAI,EAAG,IAKtC,SAASjE,IACLsB,KAAK4C,GAAK,WACV5C,KAAK6C,GAAK,WACV7C,KAAK8C,GAAK,WACV9C,KAAK+C,GAAK,UACV/C,KAAKgD,GAAK,WAEVhD,KAAKiD,MAAQ,IAAIP,YAAY,IAC7B1C,KAAKkD,OAAS,EACdlD,KAAKmD,MAAQ,GACbnD,KAAKoD,YAAc,CACvB,CAKA1K,EAAOpU,QAAoBoa,EAE3BA,EAAK2B,WA7CY,GA+CjB3B,EAAKpY,UAAUyK,OAAS,SAAUwO,GAC9B,GAAIS,KAAKY,SACL,MAAM,IAAIvW,MAAM,iDAGpB,GAAIyV,EAAUR,YAAYC,GACtB,OAAOS,KAKX,IAAIva,GAFJ8Z,EAAOO,EAAUL,gBAAgBF,IAEf9Z,OAClBua,KAAKoD,aAAwB,EAAT3d,EACpB,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAQF,IACxBya,KAAKqD,MAAM9D,EAAKha,IAGpB,OAAOya,IACX,EAEAtB,EAAKpY,UAAU+c,MAAQ,SAAeC,GAClCtD,KAAKiD,MAAMjD,KAAKkD,UAAmB,IAAPI,IAAgBtD,KAAKmD,MAC7CnD,KAAKmD,MACLnD,KAAKmD,OAAS,GAEdnD,KAAKkD,SACLlD,KAAKmD,MAAQ,IAGG,KAAhBnD,KAAKkD,QAAelD,KAAKuD,cACjC,EAEA7E,EAAKpY,UAAUia,OAAS,SAAUI,GAE9BX,KAAKqD,MAAM,MACPrD,KAAKkD,OAAS,IAAuB,KAAhBlD,KAAKkD,QAAiBlD,KAAKmD,MAAQ,KAC1DnD,KAAKuD,eAEPvD,KAAKkD,OAAS,GACdlD,KAAKmD,MAAQ,GAGbnD,KAAKqD,MAAM,GACXrD,KAAKqD,MAAM,GACXrD,KAAKqD,MAAMrD,KAAKoD,YAAc,aAAepD,KAAKoD,YAAc,cAAgB,GAChFpD,KAAKqD,MAAMrD,KAAKoD,YAAc,WAAapD,KAAKoD,YAAc,WAAc,GAC5E,IAAK,IAAI/B,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC1BrB,KAAKqD,MAAMrD,KAAKoD,aAAe/B,GAInC,IAAIkB,EAAM,IAAItD,EAhGE,IAiGZuE,EAAU,IAAI1C,SAASyB,EAAI5C,QAO/B,OANA6D,EAAQpB,UAAU,EAAGpC,KAAK4C,IAAI,GAC9BY,EAAQpB,UAAU,EAAGpC,KAAK6C,IAAI,GAC9BW,EAAQpB,UAAU,EAAGpC,KAAK8C,IAAI,GAC9BU,EAAQpB,UAAU,GAAIpC,KAAK+C,IAAI,GAC/BS,EAAQpB,UAAU,GAAIpC,KAAKgD,IAAI,GAExBrC,EAAW4B,EAAIha,SAASoY,GAAY4B,CAC/C,EAEA7D,EAAKpY,UAAUid,aAAe,WAE1B,IAAK,IAAIhe,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAC5B,IAAIke,EAAIzD,KAAKiD,MAAM1d,EAAI,GAAKya,KAAKiD,MAAM1d,EAAI,GAAKya,KAAKiD,MAAM1d,EAAI,IAAMya,KAAKiD,MAAM1d,EAAI,IACpFya,KAAKiD,MAAM1d,GAAMke,GAAK,EAAMA,IAAM,EACpC,CAGA,IAKIC,EAAGC,EALHxC,EAAInB,KAAK4C,GACTxB,EAAIpB,KAAK6C,GACTrB,EAAIxB,KAAK8C,GACTrB,EAAIzB,KAAK+C,GACTxM,EAAIyJ,KAAKgD,GAIb,IAAKzd,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACnBA,EAAI,IACNme,EAAIjC,EAAKL,GAAKI,EAAIC,GAClBkC,EAAI,YAEGpe,EAAI,IACXme,EAAItC,EAAII,EAAIC,EACZkC,EAAI,YAEGpe,EAAI,IACXme,EAAKtC,EAAII,EAAMC,GAAKL,EAAII,GACxBmC,EAAI,aAGJD,EAAItC,EAAII,EAAIC,EACZkC,EAAI,YAEN,IAAIC,GAAQzC,GAAK,EAAIA,IAAM,IAAMuC,EAAInN,EAAIoN,GAAmB,EAAd3D,KAAKiD,MAAM1d,IACzDgR,EAAIkL,EACJA,EAAID,EACJA,EAAKJ,GAAK,GAAKA,IAAM,EACrBA,EAAID,EACJA,EAAIyC,CACN,CAWA,IARA5D,KAAK4C,GAAM5C,KAAK4C,GAAKzB,EAAK,EAC1BnB,KAAK6C,GAAM7C,KAAK6C,GAAKzB,EAAK,EAC1BpB,KAAK8C,GAAM9C,KAAK8C,GAAKtB,EAAK,EAC1BxB,KAAK+C,GAAM/C,KAAK+C,GAAKtB,EAAK,EAC1BzB,KAAKgD,GAAMhD,KAAKgD,GAAKzM,EAAK,EAG1ByJ,KAAKkD,OAAS,EACT3d,EAAI,EAAGA,EAAI,GAAIA,IAChBya,KAAKiD,MAAM1d,GAAK,CAExB,mBCrKA,IAAI0Z,EAASlH,EAAAA,OAAAA,GACT+H,EAAY/H,EAAQ,OAEpBsI,EAAa,GAIbwD,EAAM,IAAInB,YAAY,CACtB,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,aAcAoB,EAAsBzB,KAAKM,IAAI,EAAG,IAAM,EAK5C,SAAShE,IACLqB,KAAKa,MAAQ,CACT,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YAEJb,KAAK4D,KAAO,IAAIG,WAAW,IAC3B/D,KAAKL,OAAS,IAAID,WAAW,IAC7BM,KAAKe,aAAe,EACpBf,KAAKgB,YAAc,EAInBhB,KAAKY,UAAW,CACpB,CAKAlI,EAAOpU,QAAoBqa,EAE3BA,EAAO0B,WAAaA,EAEpB1B,EAAOrY,UAAUyK,OAAS,SAAUwO,GAChC,GAAIS,KAAKY,SACL,MAAM,IAAIvW,MAAM,iDAGpB,GAAIyV,EAAUR,YAAYC,GACtB,OAAOS,KAKX,IAAI8B,EAAW,EACXtC,GAHJD,EAAOO,EAAUL,gBAAgBF,IAGXC,WAEtB,GADAQ,KAAKgB,aAAexB,EACG,EAAnBQ,KAAKgB,YAAkB8C,EACvB,MAAM,IAAIzZ,MAAM,uCAGpB,KAAOmV,EAAa,GAChBQ,KAAKL,OAAOK,KAAKe,gBAAkBxB,EAAKuC,KACxCtC,IACIQ,KAAKe,eAAiBV,IACtBL,KAAKgC,aACLhC,KAAKe,aAAe,GAI5B,OAAOf,IACX,EAEArB,EAAOrY,UAAUia,OAAS,SAAUI,GAChC,IAAKX,KAAKY,SAAU,CAChB,IAAIuB,EAAgC,EAAnBnC,KAAKgB,YAClBgD,EAAa,IAAIlD,SAASd,KAAKL,OAAOA,OAAQK,KAAKL,OAAOC,WAAYI,KAAKL,OAAOH,YAClF0C,EAAoBlC,KAAKe,aAG7B,GAFAiD,EAAWjC,SAAS/B,KAAKe,eAAgB,KAErCmB,EAAoB7B,GAAcA,GAAgB,CAClD,IAAK,IAAI9a,EAAIya,KAAKe,aAAcxb,EAAI8a,EAAY9a,IAC5Cye,EAAWjC,SAASxc,EAAG,GAE3Bya,KAAKgC,aACLhC,KAAKe,aAAe,CACxB,CACA,IAASxb,EAAIya,KAAKe,aAAcxb,EAAI8a,GAAgB9a,IAChDye,EAAWjC,SAASxc,EAAG,GAE3Bye,EAAW5B,UAAU/B,GAAgBgC,KAAKC,MAAMH,EAAa,aAAc,GAC3E6B,EAAW5B,UAAU/B,GAAgB8B,GACrCnC,KAAKgC,aACLhC,KAAKY,UAAW,CACpB,CAGA,IAAI2B,EAAM,IAAItD,EAvKE,IAwKhB,IAAS1Z,EAAI,EAAGA,EAAI,EAAGA,IACnBgd,EAAQ,EAAJhd,GAAUya,KAAKa,MAAMtb,KAAO,GAAM,IACtCgd,EAAQ,EAAJhd,EAAQ,GAAMya,KAAKa,MAAMtb,KAAO,GAAM,IAC1Cgd,EAAQ,EAAJhd,EAAQ,GAAMya,KAAKa,MAAMtb,KAAO,EAAK,IACzCgd,EAAQ,EAAJhd,EAAQ,GAAMya,KAAKa,MAAMtb,KAAO,EAAK,IAE7C,OAAOob,EAAW4B,EAAIha,SAASoY,GAAY4B,CAC/C,EAEA5D,EAAOrY,UAAU0b,WAAa,WAY1B,IAXA,IACIrC,EADKK,KACOL,OACZkB,EAFKb,KAEMa,MACXoD,EAASpD,EAAM,GACfqD,EAASrD,EAAM,GACfsD,EAAStD,EAAM,GACfuD,EAASvD,EAAM,GACfwD,EAASxD,EAAM,GACfyD,EAASzD,EAAM,GACf0D,EAAS1D,EAAM,GACf2D,EAAS3D,EAAM,GACVtb,EAAI,EAAGA,EAAI8a,EAAY9a,IAAK,CACjC,GAAIA,EAAI,GACJya,KAAK4D,KAAKre,IAAwB,IAAhBoa,EAAW,EAAJpa,KAAkB,IACf,IAAtBoa,EAAY,EAAJpa,EAAS,KAAc,IACT,IAAtBoa,EAAY,EAAJpa,EAAS,KAAc,EACV,IAAtBoa,EAAY,EAAJpa,EAAS,OAErB,CACD,IAAIkf,EAAIzE,KAAK4D,KAAKre,EAAI,GAClBmf,GAAQD,IAAM,GAAKA,GAAK,KACvBA,IAAM,GAAKA,GAAK,IAChBA,IAAM,GAEPE,IADJF,EAAIzE,KAAK4D,KAAKre,EAAI,OACA,EAAIkf,GAAK,KACtBA,IAAM,GAAKA,GAAK,IAChBA,IAAM,EACXzE,KAAK4D,KAAKre,IAAMmf,EAAO1E,KAAK4D,KAAKre,EAAI,GAAK,IACrCof,EAAO3E,KAAK4D,KAAKre,EAAI,IAAM,EACpC,CACA,IAAIqf,KAAUP,IAAW,EAAIA,GAAU,KAClCA,IAAW,GAAKA,GAAU,KAC1BA,IAAW,GAAKA,GAAU,KACvBA,EAASC,GAAYD,EAASE,GAAY,IAC1CC,GAAWX,EAAIte,GAAKya,KAAK4D,KAAKre,GAAM,GAAM,GAAM,EACpDsf,IAAQZ,IAAW,EAAIA,GAAU,KAChCA,IAAW,GAAKA,GAAU,KAC1BA,IAAW,GAAKA,GAAU,MAASA,EAASC,EAAWD,EAASE,EAAWD,EAASC,GAAY,EACrGK,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUD,EAASQ,EAAM,EACzBR,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUW,EAAKC,EAAM,CACzB,CACAhE,EAAM,IAAMoD,EACZpD,EAAM,IAAMqD,EACZrD,EAAM,IAAMsD,EACZtD,EAAM,IAAMuD,EACZvD,EAAM,IAAMwD,EACZxD,EAAM,IAAMyD,EACZzD,EAAM,IAAM0D,EACZ1D,EAAM,IAAM2D,CAChB,mBC9OA,IAAIM,EAAO/M,EAAQ,OAGnB+M,EAAKC,OAAOC,IAAMjN,EAAQ,OAC1B+M,EAAK7F,OAASlH,EAAAA,OAAAA,GACd+M,EAAKnV,IAAMoI,EAAQ,OACnB+M,EAAKG,YAAclN,EAAQ,OAC3B+M,EAAKI,UAAYnN,EAAQ,OACzB+M,EAAKK,YAAc,KACnBL,EAAKM,kBAAoBrN,EAAAA,MAAAA,kBACzB+M,EAAKO,UAAY,WAAa,OAAO,CAAM,EAC3CP,EAAKQ,OAAS,WAAa,OAAO,CAAO,EAEzC,IAAItN,EAAMD,EAAQ,OAqBlB,GAhBAW,EAAOpU,QAAU0T,EAEjBD,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OAGRC,EAAIuN,IAAIC,OAASzN,EAAQ,OAGzBA,EAAQ,OAEe,qBAAZ0N,EACT,IAAIA,EAAU,CACZC,SAAS,oBCpCb,IAAI1N,EAAMD,EAAQ,OACdpI,EAAMqI,EAAI8M,KAAKnV,IACfoV,EAAS/M,EAAI8M,KAAKC,OAAOC,IACzBW,EAAe3N,EAAI8M,KAAKc,OAAOC,OAC/BC,EAAU9N,EAAI8M,KAAKgB,QAEnBC,EAAc,SAAUlb,GACxB,IAAImb,EAAe,CACf,IAAK,IACL,IAAK,IACL,IAAK,KAET,OAAOnb,EAAOob,QAAQ,YAAY,SAAUC,GACxC,OAAOF,EAAaE,EACxB,GACJ,EAEIC,EAAa,SAAUC,EAAQC,GAC/B,IAAIC,EAAOvB,EAAO/F,WAAW,YAE7B,OADAsH,EAAKjD,MAAM+C,GACJL,EAAYO,EAAKA,KAAKD,EAAY,UAC7C,EAEIE,EAAuB,SAAU5W,EAAK6W,EAASC,EAAWJ,GAC1D,IAAID,EAASM,KAAKC,UAAU,CACxBC,UAAW,CACP,CACIC,SAAUlX,EACVmX,UAAW,CAAEC,aAAc,CAAE,gBAAiBP,QAK1D,MAAO,CACHQ,QAASR,EACT,cAAeC,EACfQ,UAAWd,EAAWC,EAAO7d,WAAY8d,GAEjD,EAEIa,EAAuB,SAAUd,EAAQK,EAAWJ,GAGpD,OAFAD,EAASA,EAAOH,QAAQ,OAAQ,IAEzB,CACHkB,OAAQpB,EAAYJ,EAAaS,IACjC,cAAeK,EACfQ,UAAWd,EAAWC,EAAQC,GAEtC,EAEIe,EAAkB,SAAUzX,GAC5B,IAAI0X,EAAQ1X,EAAI2X,MAAM,OACtB,GAAID,EAAM5hB,OAAS,EACf,MAAM,IAAI4E,MAAM,gBAGpB,OAAOgd,EAAM,GAAGpB,QAAQ,IAAK,GACjC,EAEIsB,EAAa,SAAUC,GACvB,IAAIlX,EAASX,EAAI8X,MAAMD,GACvB,OAAOlX,EAAOoX,KAAKzB,QAAQ,MAAO,KAAO3V,EAAO2P,MAAQ,GAC5D,EAeI0H,EAAc,SAAUzf,EAAK0f,GAC7B,IAAKA,GAAgC,oBAAbA,EACpB,MAAM1f,EAGV0f,EAAS1f,EACb,EAEI2f,EAAgB,SAAUxY,EAAQuY,GAClC,IAAKA,GAAgC,oBAAbA,EACpB,OAAOvY,EAGXuY,EAAS,KAAMvY,EACnB,EAEA2I,EAAIiB,WAAW6O,OAAShC,EAAQ,CAW5Bzf,YAAa,SAAgBogB,EAAWJ,GACpC,QAAkB,IAAdI,QAAuC,IAAfJ,EACxB,MAAM,IAAIhc,MAAM,8CAGpB2V,KAAKyG,UAAYA,EACjBzG,KAAKqG,WAAaA,CACtB,EAuBA0B,gBAAiB,SAAU9Z,EAASnC,GAChC,IAAIkc,EAAgB,WAAY/Z,EAC1BiZ,EAAqBjZ,EAAQmY,OAAQpG,KAAKyG,UAAWzG,KAAKqG,YAC1DE,EAAqBtY,EAAQ0B,IAAK1B,EAAQuY,QAASxG,KAAKyG,UAAWzG,KAAKqG,YAE1E4B,EAAa,CAAC,EAClB,IAAK,IAAIriB,KAAOoiB,EACRpjB,OAAO0B,UAAU4C,eAAejC,KAAK+gB,EAAepiB,KACpDqiB,EAAW,cAAgBriB,GAAOoiB,EAAcpiB,IAIxD,OAAOiiB,EAAcI,EAAYnc,EACrC,EA4BAoc,aAAc,SAAUja,EAASnC,GAC7B,IACI,IAAIqc,EAjHE,SAAUxY,GACxB,OAAQyX,EAAgBzX,IACpB,IAAK,OACL,IAAK,QACD,OAAOA,EACX,IAAK,OACD,OAAO4X,EAAW5X,GACtB,QACI,MAAM,IAAItF,MAAM,kEAG5B,CAsG2B+d,CAAYna,EAAQ0B,IACvC,CAAE,MAAOzH,GACL,OAAOyf,EAAYzf,EAAK4D,EAC5B,CAEA,IAAIuc,EAAY1Y,EAAI8X,MAAMxZ,EAAQ0B,KAAK,GACnCqY,EAAgBpjB,OAAO0B,UAAU4C,eAAejC,KAAKgH,EAAS,UACxDiZ,EAAqBjZ,EAAQmY,OAAQpG,KAAKyG,UAAWzG,KAAKqG,YAC1DE,EAAqB4B,EAAUla,EAAQuY,QAASxG,KAAKyG,UAAWzG,KAAKqG,YAG/E,IAAK,IAAIzgB,KADTyiB,EAAUC,OAAS,KACHN,EACRpjB,OAAO0B,UAAU4C,eAAejC,KAAK+gB,EAAepiB,KACpDyiB,EAAUE,MAAM3iB,GAAOoiB,EAAcpiB,IAI7C,IACI,IAAI4iB,EAA6C,SAAjCpB,EAAgBnZ,EAAQ0B,KAC9B4X,EAAW5X,EAAI8Y,OAAOJ,IACtB1Y,EAAI8Y,OAAOJ,EACzB,CAAE,MAAOngB,GACL,OAAOyf,EAAYzf,EAAK4D,EAC5B,CAEA,OAAO+b,EAAcW,EAAW1c,EACpC,IAMJ4M,EAAOpU,QAAU0T,EAAIiB,WAAW6O,wBCjNhC,IAGIY,EAHA1Q,EAAMD,EAAQ,OAClBA,EAAQ,OACRA,EAAQ,OAiMRC,EAAI2Q,OAAS3Q,EAAI8M,KAAKgB,QAAQ,CA8J5Bzf,YAAa,SAAgB4H,QACXc,IAAZd,IAAuBA,EAAU,CAAC,GACtCA,EAAU+R,KAAK4I,mBAAmB3a,GAElC+J,EAAI8M,KAAK+D,KAAK5hB,KAAK+Y,KAAMA,KAAKrb,MAAM,SAAUiB,EAAKW,GACjDyZ,KAAKQ,IAAI5a,EAAKqI,EAAQrI,GAAMW,EAC9B,GACF,EA+BAuiB,eAAgB,SAAwBlB,GACtC,IAAIrJ,EAAOyB,KAEX,SAAS+I,EAAO7gB,GACd0f,EAAS1f,EAAKA,EAAM,KAAOqW,EAAKyK,YAClC,CAEA,SAASC,EAAUC,EAAKhhB,GACtB,OAAO,IAAI8P,EAAI8M,KAAKvP,MAAMrN,GAAO,IAAImC,MAAS,CAC5C8e,KAAM,mBACNC,QAASF,EACTzgB,KAAM,oBAEV,CAqBI8V,EAAKyK,YAC6B,oBAAzBzK,EAAKyK,YAAY1Q,IAnB5BiG,EAAKyK,YAAY1Q,KAAI,SAASpQ,GACxBA,IAGFA,EAAM+gB,EAFI,mCACR1K,EAAKyK,YAAY3iB,YAAYoC,KACVP,IAEvB6gB,EAAO7gB,EACT,IAGF,WACE,IAAIA,EAAM,KACLqW,EAAKyK,YAAYK,aAAgB9K,EAAKyK,YAAYM,kBACrDphB,EAAM+gB,EAAU,wBAElBF,EAAO7gB,EACT,CAMIqhB,GAEOhL,EAAKiL,mBACdjL,EAAKiL,mBAAmBpa,SAAQ,SAASlH,EAAKuhB,GACxCvhB,IACFA,EAAM+gB,EAAU,gDAAiD/gB,IAEnEqW,EAAKyK,YAAcS,EACnBV,EAAO7gB,EACT,IAEA6gB,EAAOE,EAAU,0BAErB,EAyBAS,SAAU,SAAkB9B,GAC1B,IAAIrJ,EAAOyB,KAEX,SAAS+I,EAAO7gB,GACd0f,EAAS1f,EAAKA,EAAM,KAAOqW,EAAKoL,MAClC,CAEA,SAASC,EAAWV,EAAKhhB,GACvB,OAAO,IAAI8P,EAAI8M,KAAKvP,MAAMrN,GAAO,IAAImC,MAAS,CAC5C8e,KAAM,aACNC,QAASF,EACTzgB,KAAM,cAEV,CAqBI8V,EAAKoL,MACuB,oBAAnBpL,EAAKoL,MAAMrR,IAnBtBiG,EAAKoL,MAAMrR,KAAI,SAASpQ,GAClBA,IAGFA,EAAM0hB,EAFI,6BACRrL,EAAKoL,MAAMtjB,YAAYoC,KACHP,IAExB6gB,EAAO7gB,EACT,IAGF,WACE,IAAIA,EAAM,KACLqW,EAAKoL,MAAMA,QACdzhB,EAAM0hB,EAAW,kBAEnBb,EAAO7gB,EACT,CAMI2hB,GAEOtL,EAAKuL,cACdvL,EAAKuL,cAAc1a,SAAQ,SAASlH,EAAKyhB,GACnCzhB,IACFA,EAAM0hB,EAAW,0CAA2C1hB,IAE9DqW,EAAKoL,MAAQA,EACbZ,EAAO7gB,EACT,IAEA6gB,EAAOa,EAAW,oBAEtB,EAiBA7Y,OAAQ,SAAgB9C,EAAS8b,GAC/BA,EAAmBA,IAAoB,EACvC9b,EAAU+R,KAAK4I,mBAAmB3a,GAClC+J,EAAI8M,KAAK+D,KAAK5hB,KAAK+Y,KAAM/R,GAAS,SAAUrI,EAAKW,IAC3CwjB,GAAoBnlB,OAAO0B,UAAU4C,eAAejC,KAAK+Y,KAAKrb,KAAMiB,IACpEoS,EAAIC,QAAQ+R,WAAWpkB,KACzBoa,KAAKQ,IAAI5a,EAAKW,EAElB,GACF,EAWA0jB,aAAc,SAAsBvC,GAClC1H,KAAKkK,QAEL,IAAIjc,EAAUyY,KAAKe,MAAMzP,EAAI8M,KAAKqF,aAAazC,IAC3C0C,EAAkB,IAAIpS,EAAIqS,sBAAsB3C,GAChD4C,EAAQ,IAAItS,EAAIuS,wBASpB,OARAD,EAAME,UAAUC,QAAQL,GACxBE,EAAMlb,SAAQ,SAAUlH,EAAKuhB,GAC3B,GAAIvhB,EAAK,MAAMA,EACV+F,EAAQ+a,YAAcS,CAC7B,IAEAzJ,KAAK3Z,YAAY4H,GAEV+R,IACT,EAOAkK,MAAO,WAELlS,EAAI8M,KAAK+D,KAAK5hB,KAAK+Y,KAAMA,KAAKrb,MAAM,SAAUiB,UACrCoa,KAAKpa,EACd,IAGAoa,KAAKQ,IAAI,mBAAezR,GACxBiR,KAAKQ,IAAI,0BAAsBzR,EACjC,EAOAyR,IAAK,SAAakK,EAAUnkB,EAAOokB,QACnB5b,IAAVxI,QACmBwI,IAAjB4b,IACFA,EAAe3K,KAAKrb,KAAK+lB,IAGzB1K,KAAK0K,GADqB,oBAAjBC,EACQA,EAAa1jB,KAAK+Y,MAElB2K,GAEG,gBAAbD,GAA8B1K,KAAK0K,GAE5C1K,KAAK0K,GAAY1S,EAAI8M,KAAK8F,MAAM5K,KAAK0K,GAAWnkB,GAEhDyZ,KAAK0K,GAAYnkB,CAErB,EAQA5B,KAAM,CACJqkB,YAAa,KACbQ,mBAAoB,KACpBqB,OAAQ,KACRC,OAAQ,KACRC,YAAa,CAAC,EACdC,WAAY,KACZC,cAAUlc,EACVmc,YAAa,CACXC,QAAS,MAEXC,gBAAYrc,EACZsc,aAAc,GACdC,iBAAiB,EACjBC,YAAY,EACZC,kBAAkB,EAClBC,kBAAkB,EAClBC,sBAAsB,EACtBC,0BAA2B,SAC3BC,oBAAgB7c,EAChB8c,kBAAkB,EAClBC,sBAAsB,EACtBC,kBAAkB,EAClBC,gBAAiB,KACjBC,eAAe,EACfC,kBAAmB,EACnBC,iBAAkB,KAClBC,gBAAgB,EAChBC,kBAAmB,CAAC,EACpBC,uBAAuB,EACvBC,sBAAsB,EACtBC,8BAA0Bzd,EAC1B0d,kBAAmB,IACnBC,mBAAmB,EACnBC,qBAAsB,SACtBC,iBAAiB,EACjBC,sBAAsB,EACtBlD,MAAO,MASTf,mBAAoB,SAA4B3a,GAK9C,OAJIA,EAAQob,aAAepb,EAAQqb,mBACjCrb,EAAU+J,EAAI8M,KAAKgI,KAAK7e,IAChB+a,YAAc,IAAIhR,EAAI+U,YAAY9e,IAErCA,CACT,EAQA+e,sBAAuB,SAA+BC,GACpDvE,EAAqBuE,EAET,OAARA,GAAmC,oBAAZ9d,UACzBuZ,EAAqBvZ,SAEvB,IAAI+d,EAAe,CAAClV,EAAImV,QAASnV,EAAI+U,YAAa/U,EAAIuS,yBAClDvS,EAAImE,KACN+Q,EAAa/nB,KAAK6S,EAAImE,IAClBnE,EAAImE,GAAGiR,eACTF,EAAa/nB,KAAK6S,EAAImE,GAAGiR,gBAG7BpV,EAAI8M,KAAKuI,YAAYH,EAAcxE,EACrC,EAKA4E,sBAAuB,WACrB,OAAO5E,CACT,IAQF1Q,EAAIuV,OAAS,IAAIvV,EAAI2Q,wBClsBrB,IAAI3Q,EAAMD,EAAQ,OAIlB,SAASyV,EAAmCC,EAAaC,GACvD,GAA2B,kBAAhBD,EAAX,CACK,GAAI,CAAC,SAAU,YAAY5mB,QAAQ4mB,EAAY3O,gBAAkB,EACpE,OAAO2O,EAAY3O,cAEnB,MAAM9G,EAAI8M,KAAKvP,MAAM,IAAIlL,MAASqjB,EACpC,CACF,CAuDAhV,EAAOpU,QAzCP,SAAsCqpB,EAAgB1f,GAGpD,IAAI2f,EACJ,IAHAD,EAAiBA,GAAkB,CAAC,GAGjB1f,EAAQ4f,gBACzBD,EAAWJ,EAAmCG,EAAe1f,EAAQ4f,cAAe,CAClF1E,KAAM,uBACNC,QAAS,YAAcnb,EAAQ4f,aAAtB,yDACiBF,EAAe1f,EAAQ4f,cAAgB,QAErD,OAAOD,EAEvB,IAAK5V,EAAI8M,KAAKQ,SAAU,OAAOsI,EAE/B,GAAIhpB,OAAO0B,UAAU4C,eAAejC,KAAKwe,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAaxX,EAAQ6f,OAE5DF,EAAWJ,EADG/H,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYxX,EAAQ6f,KACqB,CACrD3E,KAAM,+BACNC,QAAS,WAAanb,EAAQ6f,IAArB,iEACiBrI,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYxX,EAAQ6f,KAAO,QAEzC,OAAOF,EAGvB,IAAIG,EAAU,CAAC,EACf,IAEEA,EADe/V,EAAI8M,KAAKkJ,4BAA4BhW,EAAI8M,KAAKmJ,WAC1CxI,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYyI,aAAelW,EAAI8M,KAAKqJ,eACzD,CAAE,MAAO5X,GAAI,CACb,OAAIwX,GAAWnpB,OAAO0B,UAAU4C,eAAejC,KAAK8mB,EAAS9f,EAAQmgB,gBAEnER,EAAWJ,EADIO,EAAQ9f,EAAQmgB,cACyB,CACtDjF,KAAM,uBACNC,QAAS,WAAanb,EAAQmgB,aAArB,yDACiBL,EAAQ9f,EAAQmgB,cAAgB,QAEvCR,CAGzB,mBC7DA,IAAI5V,EAAM,CAAE8M,KAAM/M,EAAQ,SAOZ,CAAC,GAAWxP,WAK1BmQ,EAAOpU,QAAU0T,EAEjBA,EAAI8M,KAAK/T,OAAOiH,EAAK,CAKnBqW,QAAS,WAKTC,QAAS,CAAC,EAKVC,SAAU,CACRC,KAAMzW,EAAQ,MACd0W,MAAO1W,EAAQ,OACf2W,KAAM3W,EAAQ,OACd4W,SAAU5W,EAAQ,OAClB6W,QAAS7W,EAAQ,QAMnBwN,IAAK,CACHsJ,QAAS9W,EAAQ,OACjByN,OAAQ,MAMVkB,KAAM,CACJmI,QAAS9W,EAAQ,OACjByN,OAAQzN,EAAQ,QAMlB+W,MAAO,CACLC,IAAKhX,EAAQ,OACbiX,UAAWjX,EAAQ,OACnBkX,MAAOlX,EAAQ,OACfmX,UAAWnX,EAAQ,OACnBoX,eAAgBpX,EAAQ,QAM1BG,UAAWH,EAAQ,OAKnBqX,cAAerX,EAAAA,OAAAA,IAEjBA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MAiBRC,EAAIqX,OAAS,IAAIrX,EAAIsX,mBAGrBtX,EAAI8M,KAAKyK,iBAAiBvX,EAAK,iBAAiB,WAC9C,OAAO,IAAIA,EAAIoX,cAAcpX,EAAIuV,OAAOd,kBAC1C,IAAG,oBC7GH,IAAIzU,EAAMD,EAAQ,OAwClBC,EAAI+U,YAAc/U,EAAI8M,KAAKgB,QAAQ,CAwBjCzf,YAAa,WAOX,GALA2R,EAAI8M,KAAK0K,eAAexP,KAAM,CAAC,oBAE/BA,KAAKyP,SAAU,EACfzP,KAAK0P,WAAa,KAClB1P,KAAK2P,iBAAmB,GACC,IAArBnqB,UAAUC,QAAwC,kBAAjBD,UAAU,GAAiB,CAC9D,IAAIikB,EAAQjkB,UAAU,GAAGwjB,aAAexjB,UAAU,GAClDwa,KAAKqJ,YAAcI,EAAMJ,YACzBrJ,KAAKsJ,gBAAkBG,EAAMH,gBAC7BtJ,KAAK4P,aAAenG,EAAMmG,YAC5B,MACE5P,KAAKqJ,YAAc7jB,UAAU,GAC7Bwa,KAAKsJ,gBAAkB9jB,UAAU,GACjCwa,KAAK4P,aAAepqB,UAAU,EAElC,EAMAqqB,aAAc,GAOdC,aAAc,WACZ,IAAIC,EAAc/X,EAAI8M,KAAKkL,KAAKC,UAAUC,UACtCC,EAAe,IAAIC,KAAKL,EAAkC,IAApB/P,KAAK6P,cAE/C,SAAI7P,KAAK0P,YAAcS,EAAenQ,KAAK0P,cAGlC1P,KAAKyP,UAAYzP,KAAKqJ,cAAgBrJ,KAAKsJ,gBAEtD,EAeAhR,IAAK,SAAasP,GAChB,IAAIrJ,EAAOyB,KACPA,KAAK8P,eACP9P,KAAKqQ,SAAQ,SAASnoB,GACfA,IAAKqW,EAAKkR,SAAU,GACrB7H,GAAUA,EAAS1f,EACzB,IACS0f,GACTA,GAEJ,EAgEAyI,QAAS,SAAiBzI,GACxB5H,KAAKyP,SAAU,EACf7H,GACF,EAMA0I,gBAAiB,SAAyB1I,EAAU2I,GAClD,IAAIhS,EAAOyB,KACkC,IAAzCzB,EAAKoR,iBAAiBxqB,KAAKyiB,IAC7BrJ,EAAKiS,MAAK,SAAgBtoB,GACxB8P,EAAI8M,KAAK2L,UAAUlS,EAAKoR,kBAAkB,SAAS/H,GAC7C2I,EACF3I,EAAS1f,GAGT8P,EAAI8M,KAAK4L,OAAM,WACb9I,EAAS1f,EACX,GAEJ,IACAqW,EAAKoR,iBAAiBlqB,OAAS,CACjC,GAEJ,EAMA+qB,KAAM,SAAc5I,GAClBA,GACF,IAMF5P,EAAI+U,YAAY4D,mBAAqB,SAA4BC,GAC/D5Q,KAAK1Z,UAAUuqB,WAAa7Y,EAAI8M,KAAKgM,gBAAgB,MAAOF,GAC5D5Q,KAAK1Z,UAAUyqB,eAAiB/Y,EAAI8M,KAAKgM,gBAAgB,UAAWF,EACtE,EAKA5Y,EAAI+U,YAAYiE,wBAA0B,kBACjChR,KAAK1Z,UAAUuqB,kBACf7Q,KAAK1Z,UAAUyqB,cACxB,EAEA/Y,EAAI8M,KAAKuI,YAAYrV,EAAI+U,8BCrPzB,IAAI/U,EAAMD,EAAQ,OACd2E,EAAM3E,EAAQ,OAsElBC,EAAIiZ,8BAAgCjZ,EAAI8M,KAAKgB,QAAQ9N,EAAI+U,YAAa,CA6BpE1mB,YAAa,SAAuC4H,GAClD+J,EAAI+U,YAAY9lB,KAAK+Y,MACrB/R,EAAUA,GAAW,CAAC,EACtB+R,KAAKkR,UAAY,+CACjBlR,KAAKyP,SAAU,EACfzP,KAAKmR,YAAc,KAEnB,IAAIC,EAASpZ,EAAI8M,KAAKgI,KAAK7e,EAAQmjB,SAAW,CAAC,EAI/C,GAHIA,EAAOC,UACTD,EAAOE,gBAAkBF,EAAOE,iBAAmB,yBAEjDF,EAAOG,aAAc,CACvB,IAAKtjB,EAAQkjB,aAA+C,oBAAxBljB,EAAQkjB,YAC1C,MAAM,IAAInZ,EAAI8M,KAAKvP,MACjB,IAAIlL,MAAM,oEACV,CAAC8e,KAAMnJ,KAAKkR,YAGdlR,KAAKmR,YAAcljB,EAAQkjB,WAE/B,CACA,IAAI5D,EAASvV,EAAI8M,KAAK8F,MACpB,CACEwG,OAAQA,EACRpI,YAAa/a,EAAQujB,mBAAqBxZ,EAAIuV,OAAOvE,aAEvD/a,EAAQwjB,WAAa,CAAC,GAExBzR,KAAK0R,QAAU,IAAIhV,EAAI6Q,EACzB,EAeA8C,QAAS,SAAiBzI,GACxB5H,KAAKsQ,gBAAgB1I,GAAY5P,EAAI8M,KAAK6M,GAAG/J,SAC/C,EAMA4I,KAAM,SAAc5I,GAClB,IAAIrJ,EAAOyB,KACP4R,EAAYrT,EAAKmT,QAAQnE,OAAO6D,OAAOC,QAAU,aAAe,kBACpErR,KAAK6R,cAAa,SAAU3pB,EAAK4pB,GAC/B,IAAIV,EAAS,CAAC,EACVlpB,EACF0f,EAAS1f,IAGP4pB,IACFV,EAAOW,UAAYD,GAErBvT,EAAKmT,QAAQE,GAAWR,GAAQ,SAAUlpB,EAAKqX,GACxCrX,GACHqW,EAAKmT,QAAQM,gBAAgBzS,EAAMhB,GAErCqJ,EAAS1f,EACX,IACF,GACF,EAKA2pB,aAAc,SAAsBjK,GAClC,IAAIrJ,EAAOyB,KACPA,KAAKmR,YACPnR,KAAKmR,YAAYnR,KAAK0R,QAAQnE,OAAO6D,OAAOG,cAAc,SAAUrpB,EAAKyhB,GACvE,GAAIzhB,EAAK,CACP,IAAIkhB,EAAUlhB,EAUd,OATIA,aAAemC,QACjB+e,EAAUlhB,EAAIkhB,cAEhBxB,EACE5P,EAAI8M,KAAKvP,MACP,IAAIlL,MAAM,6BAA+B+e,GACzC,CAAED,KAAM5K,EAAK2S,YAInB,CACAtJ,EAAS,KAAM+B,EACjB,IAEA/B,EAAS,KAEb,qBCtMF,IAAI5P,EAAMD,EAAQ,OACd4B,EAAkB5B,EAAQ,OAC1B2E,EAAM3E,EAAQ,OAmElBC,EAAIia,2BAA6Bja,EAAI8M,KAAKgB,QAAQ9N,EAAI+U,YAAa,CAIjEmF,gBAAiB,CACfpe,GAAI,2BACJ0W,UAAW,mCA4DbnkB,YAAa,SAAoC+qB,EAAQvD,GACvD7V,EAAI+U,YAAY9lB,KAAK+Y,MACrBA,KAAKyP,SAAU,EACfzP,KAAKoR,OAASA,EACdpR,KAAKT,KAAO,KACZS,KAAKmS,YAAc,KACnBnS,KAAKoS,cAAgBpa,EAAI8M,KAAKgI,KAAKe,GAAgB,CAAC,GACpD7N,KAAKqS,eACL,IAAI9T,EAAOyB,KACXpb,OAAOoB,eAAega,KAAM,aAAc,CACxC1H,IAAK,WAEH,OADAiG,EAAK8T,eACE9T,EAAK4T,aAAe5T,EAAK6S,OAAOkB,UACzC,EACA9R,IAAK,SAAS+R,GACZhU,EAAK4T,YAAcI,CACrB,GAEJ,EAcAlC,QAAS,SAAiBzI,GACxB5H,KAAKsQ,gBAAgB1I,GAAY5P,EAAI8M,KAAK6M,GAAG/J,SAC/C,EAMA4I,KAAM,SAAc5I,GAClB,IAAIrJ,EAAOyB,KACXzB,EAAKiU,gBACLjU,EAAKgB,KAAO,KACZhB,EAAK4T,YAAc,KACnB5T,EAAKkU,OAAM,SAASvqB,GACbA,GAOHqW,EAAKmU,uBAAuBxqB,GAC5B0f,EAAS1f,IAPJqW,EAAK6S,OAAOC,QAGf9S,EAAKoU,sBAAsB/K,GAF3BrJ,EAAKqU,0BAA0BhL,EAQrC,GACF,EAOAiL,cAAe,WACb7S,KAAKmS,YAAc,YACZnS,KAAKoR,OAAOkB,WAEnB,IAAIQ,EAAS9S,KAAKoR,OAAO2B,eACrBC,EAAUhT,KAAKoR,OAAO6B,SAAW,UAC9BjT,KAAKkT,QAAQlT,KAAKkS,gBAAgBpe,GAAKgf,EAASE,UAChDhT,KAAKkT,QAAQlT,KAAKkS,gBAAgB1H,UAAYsI,EAASE,EAChE,EAKAN,uBAAwB,SAAgCxqB,GAEtC,0BAAZA,EAAIihB,MADGnJ,KAEJ6S,eAET,EAeAJ,MAAO,SAAe7K,GACpB,IAAIrJ,EAAOyB,KACX,GAAsC,kBAA3BzB,EAAK6S,OAAOkB,WACrB,OAAO1K,EAAS,KAAMrJ,EAAK6S,OAAOkB,YAGpC/T,EAAK4U,QAAQV,OAAM,SAASvqB,EAAKqX,IAC1BrX,GAAOqX,EAAK+S,YACf/T,EAAK6S,OAAOkB,WAAa/S,EAAK+S,WAC9B1K,EAAS,KAAMrI,EAAK+S,aAEpB1K,EAAS1f,EAEb,GACF,EAMAkrB,gBAAiB,SAAyB7T,EAAMyJ,GACzCzJ,GAASyJ,IACdA,EAAYyG,SAAU,EACtBzG,EAAYK,YAAc9J,EAAKwN,YAAYsG,YAC3CrK,EAAYM,gBAAkB/J,EAAKwN,YAAYuG,UAC/CtK,EAAY4G,aAAerQ,EAAKwN,YAAYwG,aAC5CvK,EAAY0G,WAAanQ,EAAKwN,YAAYyG,WAC5C,EAKAZ,0BAA2B,SAAmChL,GAC5D,IAAIrJ,EAAOyB,KACXzB,EAAK4U,QAAQP,2BAA0B,SAAS1qB,EAAKqX,GAC9CrX,EAKHqW,EAAKmU,uBAAuBxqB,IAJ5BqW,EAAKkV,QAAQlU,GACbhB,EAAKgB,KAAOA,EACZhB,EAAK6U,gBAAgB7U,EAAKgB,KAAMhB,IAIlCqJ,EAAS1f,EACX,GACF,EAKAyqB,sBAAuB,SAA+B/K,GACpD,IAAIrJ,EAAOyB,KACXzB,EAAK4U,QAAQO,gBAAe,SAASxrB,EAAKqX,GACnCrX,GAWHqW,EAAKmU,uBAAuBxqB,GAC5B0f,EAAS1f,KAXTqW,EAAKkV,QAAQlU,GACbhB,EAAK6S,OAAOuC,iBAAmBpU,EAAKqU,MACpCrV,EAAKsV,uBAAuBxD,SAAQ,SAASyD,GACtCA,IACHvV,EAAKgB,KAAOhB,EAAKsV,uBAAuBtU,KACxChB,EAAKwV,IAAI/B,gBAAgBzT,EAAKgB,KAAMhB,IAEtCqJ,EAASkM,EACX,IAKJ,GACF,EAKAzB,aAAc,WACZ,IAAI9T,EAAOyB,KAGX,GAAIhI,EAAI8M,KAAKO,cAAgB9G,EAAK6S,OAAOkB,WAAY,CACnD,IAAIxe,EAAKyK,EAAKyV,WAAW,MACzB,GAAIlgB,GAAMyK,EAAK6S,OAAO6C,OAAQ,CAC5B,IAAIC,EAAkBtvB,OAAOD,KAAK4Z,EAAK6S,OAAO6C,QAQrB,KANtB1V,EAAKyV,WAAW,cAAgB,IAAI1M,MAAM,KAGbviB,QAAO,SAASuD,GAC9C,OAAuC,IAAhC4rB,EAAgBrtB,QAAQyB,EACjC,IACc7C,SACZ8Y,EAAK6S,OAAOkB,WAAaxe,EAE7B,MAAWA,IACTyK,EAAK6S,OAAOkB,WAAaxe,EAE7B,CACF,EAKA0e,cAAe,WACb,IAAI3E,EAAe7N,KAAKoS,cAGxB,GAFApS,KAAK6T,uBAAyB7T,KAAK6T,wBACjC,IAAI7b,EAAImc,uBAAuBnU,KAAKoR,OAAQvD,IACzC7N,KAAKmT,QAAS,CACjB,IAAIiB,EAAgBpc,EAAI8M,KAAK8F,MAAM,CAAC,EAAGiD,GACvCuG,EAAchD,OAASpR,KAAKoR,OAC5BpR,KAAKmT,QAAU,IAAIxZ,EAAgBya,EACrC,CACApU,KAAK+T,IAAM/T,KAAK+T,KAAO,IAAIrX,EAAImR,EACjC,EAKA4F,QAAS,SAAiBlU,GACxBS,KAAKmS,YAAc5S,EAAK+S,WACxBtS,KAAKoR,OAAOkB,WAAatS,KAAKmS,YAG1Bna,EAAI8M,KAAKO,cACXrF,KAAKqU,WAAW,KAAM9U,EAAK+S,YAEvBtS,KAAKoR,OAAO6C,QACdjU,KAAKqU,WAAW,YAAazvB,OAAOD,KAAKqb,KAAKoR,OAAO6C,QAAQK,KAAK,MAGxE,EAKAN,WAAY,SAAoBpuB,GAC9B,OAAOoa,KAAKkT,QAAQlT,KAAKkS,gBAAgBtsB,GAAOoa,KAAKoR,OAAO2B,gBAAkB/S,KAAKoR,OAAO6B,SAAW,IACvG,EAKAoB,WAAY,SAAoBzuB,EAAK2uB,GACnC,IACEvU,KAAKkT,QAAQlT,KAAKkS,gBAAgBtsB,GAAOoa,KAAKoR,OAAO2B,gBAAkB/S,KAAKoR,OAAO6B,SAAW,KAAOsB,CACvG,CAAE,MAAOC,GAAI,CACf,EAKAtB,QAAU,WACR,IACE,IAAIA,EAAUlb,EAAI8M,KAAKO,aAAuC,OAAxB5P,OAAOgf,cAAwD,kBAAxBhf,OAAOgf,aAChFhf,OAAOgf,aAAe,CAAC,EAM3B,OAHAvB,EAAQ,oBAAsB,gBACvBA,EAAQ,oBAERA,CACT,CAAE,MAAOsB,GACP,MAAO,CAAC,CACV,CACF,CAbU,sBC3XZ,IAAIxc,EAAMD,EAAQ,OA4ClBC,EAAIuS,wBAA0BvS,EAAI8M,KAAKgB,QAAQ9N,EAAI+U,YAAa,CAM9D1mB,YAAa,SAAiCmkB,GAE1CxK,KAAKwK,UADHA,GAGexS,EAAIuS,wBAAwBmK,iBAAiBlsB,MAAM,GAEtEwX,KAAK2U,iBAAmB,EAC1B,EAuCAvlB,QAAS,SAAiBwY,GACxB,IAAIrJ,EAAOyB,KACX,GAA8B,IAA1BzB,EAAKiM,UAAU/kB,OAEjB,OADAmiB,EAAS,IAAIvd,MAAM,iBACZkU,EAGT,GAA6C,IAAzCA,EAAKoW,iBAAiBxvB,KAAKyiB,GAAiB,CAC9C,IAAIgN,EAAQ,EACRpK,EAAYjM,EAAKiM,UAAUhiB,MAAM,IAErC,SAASqsB,EAAY3sB,EAAKuhB,GACxB,IAAMvhB,GAAOuhB,GAAUmL,IAAUpK,EAAU/kB,OAKzC,OAJAuS,EAAI8M,KAAK2L,UAAUlS,EAAKoW,kBAAkB,SAAU/M,GAClDA,EAAS1f,EAAKuhB,EAChB,SACAlL,EAAKoW,iBAAiBlvB,OAAS,GAIjC,IAAIqvB,EAAWtK,EAAUoK,MAEvBnL,EADsB,oBAAbqL,EACDA,EAAS7tB,OAET6tB,GAGAxc,IACRmR,EAAMnR,KAAI,SAAUyc,GAClBF,EAAYE,EAAQA,EAAS,KAAOtL,EACtC,IAEAoL,EAAY,KAAMpL,EAEtB,CAEAoL,EACF,CAEA,OAAOtW,CACT,IA2BFvG,EAAIuS,wBAAwBmK,iBAAmB,GAK/C1c,EAAIuS,wBAAwBoG,mBAAqB,SAA4BC,GAC3E5Q,KAAK1Z,UAAU0uB,eAAiBhd,EAAI8M,KAAKgM,gBAAgB,UAAWF,EACtE,EAKA5Y,EAAIuS,wBAAwByG,wBAA0B,kBAC7ChR,KAAK1Z,UAAU0uB,cACxB,EAEAhd,EAAI8M,KAAKuI,YAAYrV,EAAIuS,0CCnLzB,IAAIvS,EAAMD,EAAQ,OACd2E,EAAM3E,EAAQ,OAsClBC,EAAIid,gBAAkBjd,EAAI8M,KAAKgB,QAAQ9N,EAAI+U,YAAa,CAYtD1mB,YAAa,SAAyB+qB,GACpCpZ,EAAI+U,YAAY9lB,KAAK+Y,MACrBA,KAAKyP,SAAU,EACfzP,KAAKoR,OAASA,CAChB,EAaAf,QAAS,SAAiBzI,GACxB5H,KAAKsQ,gBAAgB1I,GAAY5P,EAAI8M,KAAK6M,GAAG/J,SAC/C,EAKA4I,KAAM,SAAc5I,GAClB,IAAIrJ,EAAOyB,KACXzB,EAAKiU,gBACLjU,EAAKmT,QAAQwD,oBAAmB,SAAUhtB,EAAKqX,GACxCrX,GACHqW,EAAKmT,QAAQM,gBAAgBzS,EAAMhB,GAErCqJ,EAAS1f,EACX,GACF,EAKAsqB,cAAe,WACbxS,KAAK0R,QAAU1R,KAAK0R,SAAW,IAAIhV,EAAI,CAAC0U,OAAQpR,KAAKoR,QACvD,qBC3FF,IAAIpZ,EAAMD,EAAQ,OACd2E,EAAM3E,EAAQ,OAmClBC,EAAImd,qBAAuBnd,EAAI8M,KAAKgB,QAAQ9N,EAAI+U,YAAa,CAuB3D1mB,YAAa,SAA8B+qB,EAAQI,GACjDxZ,EAAI+U,YAAY9lB,KAAK+Y,MACrBA,KAAKoV,sBAAsB5D,GAC3BxR,KAAKyP,SAAU,EAEfzP,KAAKoR,OAASA,GAAU,CAAC,EACrBpR,KAAKoR,OAAOC,UACdrR,KAAKoR,OAAOE,gBACVtR,KAAKoR,OAAOE,iBAAmB,wBAErC,EAeAjB,QAAS,SAAkBzI,GACzB5H,KAAKsQ,gBAAgB1I,GAAY5P,EAAI8M,KAAK6M,GAAG/J,SAC/C,EAKA4I,KAAM,SAAe5I,GACnB,IAAIrJ,EAAOyB,KACXzB,EAAKiU,gBACLjU,EAAKiT,kBAAkBlZ,KAAI,WACzBiG,EAAKmT,QAAQnE,OAAOvE,YAAczK,EAAKiT,mBACvBjT,EAAK6S,OAAOC,QAC1B9S,EAAKmT,QAAQ2D,WAAa9W,EAAKmT,QAAQ4D,iBAC/BruB,KAAKsX,EAAKmT,SAAS,SAAUxpB,EAAKqX,GACrCrX,GACHqW,EAAKmT,QAAQM,gBAAgBzS,EAAMhB,GAErCqJ,EAAS1f,EACX,GACF,GACF,EAKAktB,sBAAuB,SAAgC5D,GAErD,IADAxR,KAAKwR,kBAAoBA,GAAqBxZ,EAAIuV,OAAOvE,YAClDhJ,KAAKwR,kBAAkBA,mBAC5BxR,KAAKwR,kBAAoBxR,KAAKwR,kBAAkBA,kBAGR,oBAA/BxR,KAAKwR,kBAAkBlZ,MAChC0H,KAAKwR,kBAAoB,IAAIxZ,EAAI+U,YAAY/M,KAAKwR,mBAEtD,EAKAgB,cAAe,WACbxS,KAAK0R,QAAU1R,KAAK0R,SAAW,IAAIhV,EAAI,CAAC0U,OAAQpR,KAAKoR,QACvD,qBC9HF,IAAIpZ,EAAMD,EAAQ,OACd2E,EAAM3E,EAAQ,OAyClBC,EAAImc,uBAAyBnc,EAAI8M,KAAKgB,QAAQ9N,EAAI+U,YAAa,CAqB7D1mB,YAAa,SAAgC+qB,EAAQvD,GACnD7V,EAAI+U,YAAY9lB,KAAK+Y,MACrBA,KAAKyP,SAAU,EACfzP,KAAKoR,OAASA,EACdpR,KAAKoR,OAAOE,gBAAkBtR,KAAKoR,OAAOE,iBAAmB,eAC7DtR,KAAKT,KAAO,KACZS,KAAKoS,cAAgBpa,EAAI8M,KAAKgI,KAAKe,GAAgB,CAAC,EACtD,EAaAwC,QAAS,SAAiBzI,GACxB5H,KAAKsQ,gBAAgB1I,GAAY5P,EAAI8M,KAAK6M,GAAG/J,SAC/C,EAKA4I,KAAM,SAAc5I,GAClB,IAAIrJ,EAAOyB,KACXzB,EAAKiU,gBACLjU,EAAKmT,QAAQ6D,2BAA0B,SAAUrtB,EAAKqX,GACpDhB,EAAKgB,KAAO,KACPrX,IACHqW,EAAKgB,KAAOA,EACZhB,EAAKmT,QAAQM,gBAAgBzS,EAAMhB,IAErCqJ,EAAS1f,EACX,GACF,EAKAsqB,cAAe,WACb,IAAKxS,KAAK0R,QAAS,CACjB,IAAID,EAAYzZ,EAAI8M,KAAK8F,MAAM,CAAC,EAAG5K,KAAKoS,eACxCX,EAAUL,OAASpR,KAAKoR,OACxBpR,KAAK0R,QAAU,IAAIhV,EAAI+U,EACzB,CACF,qBChHF,IAAIzZ,EAAMD,EAAQ,OACd+M,EAAO/M,EAAQ,OACfyd,EAA+B,CAAC,gCAAiC,kCAWrE,SAASC,EAAYC,GACnB,IAAIhE,EAAUgE,EAAQhE,QAClBiE,EAAMjE,EAAQiE,KAAO,CAAC,EAEtBC,GADaD,EAAIE,WACH,CAAC,GAUnB,OATInE,EAAQnE,OAAO1C,SACjB+K,EAAY/K,OAAS6G,EAAQnE,OAAO1C,QAElC8K,EAAIG,YACNF,EAAYE,UAAYH,EAAIG,WAE1BpE,EAAQnE,OAAOvE,YAAYK,cAC7BuM,EAAYvM,YAAcqI,EAAQnE,OAAOvE,YAAYK,aAEhDuM,CACT,CAOA,SAASG,EAAgC1mB,EAAQ+hB,EAAQ5lB,GAClDA,QAAoBuD,IAAXqiB,GAAmC,OAAXA,GACnB,cAAf5lB,EAAMmI,MAAwBnI,EAAMwqB,UAAYxqB,EAAMwqB,SAASvwB,OAAS,GAC1Eqf,EAAK2L,UAAUjlB,EAAMwqB,UAAU,SAASvtB,GACtC,IAAIwtB,EAAczqB,EAAM0qB,QAAQztB,GAChC,IAAwC,IAApCwtB,EAAYE,oBAA8B,CAC5C,IAAIC,EAAeH,EAAYI,eAAiBJ,EAAYxtB,KAAOA,EACnE4G,EAAO+mB,GAAgBE,OAAOlF,EAAO3oB,GACvC,MACEstB,EAAgC1mB,EAAQ+hB,EAAO3oB,GAAOwtB,EAE1D,GAEJ,CASA,SAASM,EAA0Bb,EAASlqB,GAC1C,IAAIoqB,EAAc,CAAC,EAEnB,OADAG,EAAgCH,EAAaF,EAAQtE,OAAQ5lB,GACtDoqB,CACT,CAUA,SAASY,EAAyBd,GAChC,IAAIhE,EAAUgE,EAAQhE,QAClBiE,EAAMjE,EAAQiE,IACdc,EAAiBd,EAAIE,WAAaF,EAAIE,WAAWH,EAAQ9D,gBAAa7iB,EAGtE6mB,EAAcW,EAA0Bb,EAF3Be,EAAiBA,EAAerW,WAAQrR,GAGrD2nB,EAAWjB,EAAYC,GACvB9wB,OAAOD,KAAKixB,GAAanwB,OAAS,IACpCixB,EAAW5R,EAAK/T,OAAO2lB,EAAUd,GAC7Ba,IAAgBC,EAAS9E,UAAY6E,EAAehuB,OAE1D,IAAIkuB,EAAY3e,EAAI4e,cAActe,IAAIoe,GACtC,IAAIC,GAAkC,IAArBA,EAAUlxB,QAAyC,KAAzBkxB,EAAU,GAAGE,QAIjD,GAAIF,GAAaA,EAAUlxB,OAAS,EAEzCiwB,EAAQoB,YAAYC,eAAeJ,EAAU,GAAGE,aAC3C,CAEL,IAAIG,EAAkBtF,EAAQuF,YAAYtB,EAAIuB,kBAAmB,CAC/DlI,UAAWyH,EAAehuB,KAC1B0uB,YAAavB,IAEfwB,EAAoBJ,GACpBA,EAAgBK,eAAe,WAAYrf,EAAIsf,eAAeC,KAAKC,qBACnER,EAAgBK,eAAe,QAASrf,EAAIsf,eAAeC,KAAKE,aAGhEzf,EAAI4e,cAAcc,IAAIhB,EAAU,CAAC,CAC/BG,QAAS,GACTc,qBAAsB,KAExBX,EAAgBY,MAAK,SAAS1vB,EAAKqX,GAC7BA,GAAQA,EAAKsY,UACf7f,EAAI4e,cAAcc,IAAIhB,EAAUnX,EAAKsY,WAC5B3vB,GACT8P,EAAI4e,cAAcc,IAAIhB,EAAU,CAAC,CAC/BG,QAAS,GACTc,qBAAsB,IAG5B,GACF,CACF,CAEA,IAAIG,EAAe,CAAC,EAWpB,SAASC,EAAyBrC,EAASztB,GACzC,IAAIypB,EAAUgE,EAAQhE,QAClBiE,EAAMjE,EAAQiE,IACdc,EAAiBd,EAAIE,WAAaF,EAAIE,WAAWH,EAAQ9D,gBAAa7iB,EACtEipB,EAAavB,EAAiBA,EAAerW,WAAQrR,EAErD6mB,EAAcW,EAA0Bb,EAASsC,GACjDtB,EAAWjB,EAAYC,GACvB9wB,OAAOD,KAAKixB,GAAanwB,OAAS,IACpCixB,EAAW5R,EAAK/T,OAAO2lB,EAAUd,GAC7Ba,IAAgBC,EAAS9E,UAAY6E,EAAehuB,OAE1D,IAAIwvB,EAAcjgB,EAAIoX,cAAc8I,aAAaxB,GAC7CC,EAAY3e,EAAI4e,cAActe,IAAI2f,GACtC,GAAItB,GAAkC,IAArBA,EAAUlxB,QAAyC,KAAzBkxB,EAAU,GAAGE,QAKtD,OAFKiB,EAAaG,KAAcH,EAAaG,GAAe,SAC5DH,EAAaG,GAAa9yB,KAAK,CAACuwB,QAASA,EAAS9N,SAAU3f,IAEvD,GAAI0uB,GAAaA,EAAUlxB,OAAS,EACzCiwB,EAAQoB,YAAYC,eAAeJ,EAAU,GAAGE,SAChD5uB,QACK,CACL,IAAI+uB,EAAkBtF,EAAQuF,YAAYtB,EAAIuB,kBAAmB,CAC/DlI,UAAWyH,EAAehuB,KAC1B0uB,YAAavB,IAEfoB,EAAgBK,eAAe,WAAYrf,EAAIsf,eAAeC,KAAKC,qBACnEJ,EAAoBJ,GAIpBhf,EAAI4e,cAAcc,IAAIO,EAAa,CAAC,CAClCpB,QAAS,GACTc,qBAAsB,MAExBX,EAAgBY,MAAK,SAAS1vB,EAAKqX,GACjC,GAAIrX,GAKF,GAJAwtB,EAAQyC,SAAS5iB,MAAQuP,EAAKvP,MAAMrN,EAAK,CAAEkwB,WAAW,IACtDpgB,EAAI4e,cAAcyB,OAAO3B,GAGrBoB,EAAaG,GAAc,CAC7B,IAAIK,EAAkBR,EAAaG,GACnCnT,EAAK2L,UAAU6H,GAAiB,SAASC,GACvCA,EAAe7C,QAAQyC,SAAS5iB,MAAQuP,EAAKvP,MAAMrN,EAAK,CAAEkwB,WAAW,IACrEG,EAAe3Q,UACjB,WACOkQ,EAAaG,EACtB,OACK,GAAI1Y,IACTvH,EAAI4e,cAAcc,IAAIO,EAAa1Y,EAAKsY,WACxCnC,EAAQoB,YAAYC,eAAexX,EAAKsY,UAAU,GAAGhB,SAGjDiB,EAAaG,IAAc,CACzBK,EAAkBR,EAAaG,GACnCnT,EAAK2L,UAAU6H,GAAiB,SAASC,GACvCA,EAAe7C,QAAQoB,YAAYC,eAAexX,EAAKsY,UAAU,GAAGhB,SACpE0B,EAAe3Q,UACjB,WACOkQ,EAAaG,EACtB,CAEFhwB,GACF,GACF,CACF,CAMA,SAASmvB,EAAoBJ,GAC3B,IACIhM,EADMgM,EAAgBtF,QAAQiE,IACb3K,WACjBA,IAAegM,EAAgBF,YAAY0B,QAAQ,uBACrDxB,EAAgBF,YAAY0B,QAAQ,qBAAuBxN,EAE/D,CAOA,SAASyN,EAA0BN,GACjC,IAAI5iB,EAAQ4iB,EAAS5iB,MACjBmjB,EAAeP,EAASO,aAC5B,GAAInjB,IACc,6BAAfA,EAAM4T,MAAmE,MAA5BuP,EAAaC,YAC3D,CACA,IAAIjD,EAAUyC,EAASzC,QACnBG,EAAaH,EAAQhE,QAAQiE,IAAIE,YAAc,CAAC,EAEhDD,EAAcW,EAA0Bb,EAD3BG,EAAWH,EAAQ9D,WAAaiE,EAAWH,EAAQ9D,WAAWxR,WAAQrR,GAEnF2nB,EAAWjB,EAAYC,GACvB9wB,OAAOD,KAAKixB,GAAanwB,OAAS,IACpCixB,EAAW5R,EAAK/T,OAAO2lB,EAAUd,GAC7BC,EAAWH,EAAQ9D,aAAY8E,EAAS9E,UAAYiE,EAAWH,EAAQ9D,WAAWnpB,OAExFuP,EAAI4e,cAAcyB,OAAO3B,EAC3B,CACF,CAsBA,SAASkC,EAAQryB,GACf,MAAO,CAAC,QAAS,KAAKM,QAAQN,IAAU,CAC1C,CA+GAmS,EAAOpU,QAAU,CACfu0B,iBA/CF,SAA0BnD,EAASztB,GACjC,IAAIypB,EAAUgE,EAAQhE,SAAW,CAAC,EAClC,GApFF,SAA2BoH,GAEzB,GAAIA,EAAOC,iBAAmBD,EAAOC,gBAAgB9N,WAAgE,IAApD6N,EAAOC,gBAAgBvM,yBACtF,MAAM1H,EAAKvP,MAAM,IAAIlL,MAAS,CAC5B8e,KAAM,yBACNC,QAAS,4EAGb,IAAI4P,EAAYhhB,EAAIuV,OAAOuL,EAAOG,oBAAsB,CAAC,EACzD,OAAOC,QAAQlhB,EAAIuV,OAAOtC,UAAY+N,EAAU/N,UAAa6N,EAAOC,iBAAmBD,EAAOC,gBAAgB9N,SAChH,CA0EMkO,CAAkBzH,IAAYgE,EAAQ0D,cAAe,OAAOnxB,IAEhE,IACIwuB,GADa/E,EAAQiE,IAAIE,YAAc,CAAC,GACZH,EAAQ9D,WACpCyH,EAA8B5C,EAAiBA,EAAe6C,0BAA4B,OAC1FC,EA1DN,SAAwC7D,GACtC,IAAIhE,EAAUgE,EAAQhE,SAAW,CAAC,EAClC,QAAgD3iB,IAA5C2iB,EAAQnE,OAAOf,yBACjB,OAAOkF,EAAQnE,OAAOf,yBAKxB,IAAI1H,EAAKO,YAAT,CAGA,IAAK,IAAI9f,EAAI,EAAGA,EAAIiwB,EAA6B/vB,OAAQF,IAAK,CAC5D,IAAIuoB,EAAM0H,EAA6BjwB,GACvC,GAAIX,OAAO0B,UAAU4C,eAAejC,KAAKwe,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAaqI,GAAM,CAC1D,GAAyB,KAArBrI,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYqI,SAAoC/e,IAArB0W,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYqI,GACzC,MAAMhJ,EAAKvP,MAAM,IAAIlL,MAAS,CAC5B8e,KAAM,yBACNC,QAAS,0BAA4B0E,EAAM,8BAG/C,OAAQ8K,EAAQnT,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYqI,GAC9B,CACF,CAEA,IAAI0L,EAAa,CAAC,EAClB,IACEA,EAAaxhB,EAAI8M,KAAKmJ,UAAYjW,EAAI8M,KAAKmJ,UAAUwL,SAAS,CAC5DC,UAAU,EACVC,SAAUlU,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYzN,EAAI8M,KAAK8U,uBAC5B,CAAC,CACR,CAAE,MAAOrjB,GAAI,CACb,IAAIsjB,EAAmBL,EACrB/T,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYyI,aAAelW,EAAI8M,KAAKqJ,iBACjC,CAAC,EACN,GAAIvpB,OAAO0B,UAAU4C,eAAejC,KAAK4yB,EAAkB,8BAA+B,CACxF,QAAoD9qB,IAAhD8qB,EAAiBC,2BACnB,MAAMhV,EAAKvP,MAAM,IAAIlL,MAAS,CAC5B8e,KAAM,yBACNC,QAAS,4EAGb,OAAQwP,EAAQiB,EAAiBC,2BACnC,CAlCsC,CAoCxC,CAckBC,CAA+BrE,GAC3CsE,EAA+BtI,EAAQiE,IAAIqE,6BAM/C,QALIT,GAAaS,IAGftE,EAAQoB,YAAYmD,kBAAkB,sBAEhCZ,GACN,IAAK,YACCE,GAAaS,KAGfxD,EAAyBd,GACzBA,EAAQwE,iBAAiB,8BAA+B,eAAgBzB,IAE1ExwB,IACA,MACF,IAAK,WACH,IAAkB,IAAdsxB,EAAqB,CAGvB7D,EAAQyC,SAAS5iB,MAAQuP,EAAKvP,MAAM,IAAIlL,MAAS,CAC/C8e,KAAM,yBACNC,QAAS,sCAAwCsI,EAAQiE,IAAI5hB,UAAY,IAAM2hB,EAAQ9D,UAC7E,sDAEZ3pB,IACA,KACF,CACAytB,EAAQwE,iBAAiB,8BAA+B,eAAgBzB,GACxEV,EAAyBrC,EAASztB,GAClC,MAEF,QACEA,IAGN,EAIE8vB,yBAA0BA,EAC1BvB,yBAA0BA,EAC1BD,0BAA2BA,EAC3Bd,YAAaA,EACb0E,yBAA0B1B,oBCvX5B,IAAIzgB,EAAMD,EAAQ,OACd+M,EAAO9M,EAAI8M,KACXsV,EAASriB,EAAAA,OAAAA,OACTsiB,EAActiB,EAAQ,OACtBuiB,EAAcviB,EAAQ,OA0N1B,SAASwiB,EAAch0B,EAAOi0B,GAC5B,OAAOA,EAAc,IAAIF,EAAY/zB,GAASk0B,OAAOl0B,EACvD,CAOA,SAASm0B,EAAUnb,EAAMtR,GACvB,IAAI0sB,EAAM,CAACC,EAAG,CAAC,GACf,IAAK,IAAIh1B,KAAO2Z,EAAM,CACpB,IAAIsb,EAAY7iB,EAAIkC,SAAS4gB,UAAU1a,MAAMb,EAAK3Z,GAAMqI,QACtC,IAAd4sB,IACFF,EAAO,EAAE/0B,GAAOi1B,EAEpB,CACA,OAAOF,CACT,CA1OA3iB,EAAIkC,SAAS4gB,UAAY,CAoBvB1a,MAAO,SAAS2a,EAAaxb,EAAMtR,GACjCA,EAAUA,GAAW,CAAC,EACtB,IAAI0F,EAAOymB,EAAO7a,GAClB,MAAa,WAAT5L,EACK+mB,EAAUnb,EAAMtR,GACL,UAAT0F,EAkLf,SAAoB4L,EAAMtR,GAExB,IADA,IAAI+sB,EAAO,CAACC,EAAG,IACN11B,EAAI,EAAGA,EAAIga,EAAK9Z,OAAQF,IAC/By1B,EAAQ,EAAE71B,KAAK6S,EAAIkC,SAAS4gB,UAAU1a,MAAMb,EAAKha,GAAI0I,IAEvD,OAAO+sB,CACT,CAvLaE,CAAW3b,EAAMtR,GACN,QAAT0F,EAoNf,SAAmB4L,EAAMtR,GACvBA,EAAUA,GAAW,CAAC,EACtB,IAAIktB,EAAS5b,EAAK4b,OAClB,GAAIltB,EAAQmtB,oBAEY,KADtBD,EAoBJ,SAA8B3a,GAC1B,IAAI6a,EAAiB,GAMrB,GAL4B,CACxB/E,QAAQ,EACRgF,QAAQ,EACRb,QAAQ,GAEcja,EAAI7M,MAAO,CACjC,IAAK,IAAIpO,EAAI,EAAGA,EAAIib,EAAI2a,OAAO11B,OAAQF,IACN,IAAzBib,EAAI2a,OAAO51B,GAAGE,QAGlB41B,EAAel2B,KAAKqb,EAAI2a,OAAO51B,IAGnC,OAAO81B,CACX,CAEA,OAAO7a,EAAI2a,MACf,CAvCaI,CAAqBhc,IACnB9Z,OACT,OAAOuS,EAAIkC,SAAS4gB,UAAU1a,MAAM,MAIxC,IAAIua,EAAM,CAAC,EACX,OAAQpb,EAAK5L,MACX,IAAK,SAAUgnB,EAAQ,GAAIQ,EAAQ,MACnC,IAAK,SAAUR,EAAQ,GAAIQ,EAAQ,MACnC,IAAK,SAAUR,EAAQ,GAAIQ,EAAOR,KAAI,SAAUp0B,GAC9C,OAAOA,EAAMgC,UACf,IAEF,OAAOoyB,CACT,CAtOaa,CAAUjc,EAAMtR,GACL,WAAT0F,EACW,IAAhB4L,EAAK9Z,QAAgBwI,EAAQmtB,mBACxBL,EAAa,MAEf,CAAEU,EAAGlc,GACM,WAAT5L,GAA8B,gBAATA,EACvB,CAAE+nB,EAAGnc,EAAKhX,YACC,WAAToL,EACW,IAAhB4L,EAAK9Z,QAAgBwI,EAAQmtB,mBACxBL,EAAa,MAEf,CAAEY,EAAGpc,GACM,YAAT5L,EACF,CAAEioB,KAAMrc,GACG,SAAT5L,EACF,CAAEkoB,MAAM,GACG,cAATloB,GAAiC,aAATA,EAE1B+mB,EAAUnb,EAAMtR,QAFlB,CAIT,EAkCA6tB,SAAU,SAAsBvc,EAAMtR,GACpC,OAAO+J,EAAIkC,SAAS4gB,UAAU1a,MAAMb,EAAMtR,GAAS2sB,CACrD,EAsBAmB,OAAQ,SAASC,EAAczc,EAAMtR,GAEnC,IAAI+sB,EAAML,EAAKp1B,EACf,IAAK,IAAIoO,KAFT1F,EAAUA,GAAW,CAAC,EAELsR,EAAM,CACrB,IAAI4b,EAAS5b,EAAK5L,GAClB,GAAa,MAATA,EAAc,CAEhB,IAAK,IAAI/N,KADT+0B,EAAM,CAAC,EACSQ,EACdR,EAAI/0B,GAAOo2B,EAAcb,EAAOv1B,GAAMqI,GAExC,OAAO0sB,CACT,CAAO,GAAa,MAAThnB,EAAc,CAEvB,IADAqnB,EAAO,GACFz1B,EAAI,EAAGA,EAAI41B,EAAO11B,OAAQF,IAC7By1B,EAAK71B,KAAK62B,EAAcb,EAAO51B,GAAI0I,IAErC,OAAO+sB,CACT,CAAO,GAAa,OAATrnB,EAAe,CAExB,IADAqnB,EAAO,GACFz1B,EAAI,EAAGA,EAAI41B,EAAO11B,OAAQF,IAC7By1B,EAAK71B,KAAKg2B,EAAO51B,GAAK,IAExB,OAAO,IAAI80B,EAAYW,EACzB,CAAO,GAAa,OAATrnB,EAAe,CAExB,IADAqnB,EAAO,GACFz1B,EAAI,EAAGA,EAAI41B,EAAO11B,OAAQF,IAC7By1B,EAAK71B,KAAKo1B,EAAcY,EAAO51B,GAAI0I,EAAQusB,cAE7C,OAAO,IAAIH,EAAYW,EACzB,CAAO,GAAa,OAATrnB,EAAe,CAExB,IADAqnB,EAAO,GACFz1B,EAAI,EAAGA,EAAI41B,EAAO11B,OAAQF,IAC7By1B,EAAK71B,KAAK6S,EAAI8M,KAAKnF,OAAOsc,SAASd,EAAO51B,KAE5C,OAAO,IAAI80B,EAAYW,EACzB,CAAO,GAAa,MAATrnB,EACT,OAAOwnB,EAAS,GACX,GAAa,MAATxnB,EACT,OAAO4mB,EAAcY,EAAQltB,EAAQusB,aAChC,GAAa,MAAT7mB,EACT,OAAOmR,EAAKnF,OAAOsc,SAASd,GACvB,GAAa,SAATxnB,EACT,MAAmB,SAAXwnB,GAAgC,SAAXA,IAAgC,IAAXA,EAC7C,GAAa,SAATxnB,EACT,OAAO,IAEX,CACF,EAuCAuoB,WAAY,SAAoB3c,EAAMtR,GACpC,OAAO+J,EAAIkC,SAAS4gB,UAAUiB,OAAO,CAACnB,EAAGrb,GAAOtR,EAClD,GA4FFyK,EAAOpU,QAAU0T,EAAIkC,SAAS4gB,0BCrS9B,IAAI9iB,EAAMD,EAAQ,OACdokB,EAAapkB,EAAQ,MACrBsiB,EAActiB,EAAQ,OAsC1BC,EAAIkC,SAASkiB,eAAiBpkB,EAAI8M,KAAKgB,QAAQ,CAsB7Czf,YAAa,SAAwB4H,GACnC,IAAIsQ,EAAOyB,KACXzB,EAAKtQ,QAAUA,GAAW,CAAC,EAC3BsQ,EAAK8d,UAAU9d,EAAKtQ,QACtB,EAKAouB,UAAW,SAAmBpuB,GAC5B,IAAIsQ,EAAOyB,KACXzB,EAAKmT,QAAUzjB,EAAQyjB,QACvBnT,EAAK+d,kBAAkBruB,GACvBsQ,EAAKge,UAAYtuB,EAAQsuB,UACvBhe,EAAKmT,QAAQiE,IAAIE,WAAW2G,QAAQpc,MAAM8V,QAAQuG,KAAKl2B,MAAMiF,KACjE,EAKA8wB,kBAAmB,SAA2BruB,GAC5C,IAAIsQ,EAAOyB,KAGX,GAFA/R,EAAUA,GAAW,CAAC,EAEjBsQ,EAAKmT,QAEH,CACL,IAAInE,EAASvV,EAAI8M,KAAKgI,KAAKvO,EAAKmT,QAAQnE,QACxChP,EAAKmT,QAAU,IAAInT,EAAKmT,QAAQrrB,YAAYq2B,UAAUnP,GACtDhP,EAAKmT,QAAQnE,OAAO6D,OAClBpZ,EAAI8M,KAAK8F,MAAMrM,EAAKmT,QAAQnE,OAAO6D,QAAU,CAAC,EAAGnjB,EAAQmjB,OAC7D,MANE7S,EAAKmT,QAAU,IAAI1Z,EAAIkC,SAASjM,EAOpC,EAKA0uB,mBAAoB,SAAS/K,EAAWR,EAAQxJ,GAC9C,IAAIrJ,EAAOyB,KACP0V,EAAUnX,EAAKmT,QAAQE,GAAWR,GAMtC,OALA7S,EAAKqe,aAAalH,GAClBnX,EAAKse,cAAcnH,GACK,oBAAb9N,GACT8N,EAAQkC,KAAKhQ,GAER8N,CACT,EAKAoH,2BAA4B,CAC1BC,SAAU,eACVC,WAAY,iBACZC,OAAQ,aACR3kB,IAAK,UACLof,IAAK,UACLnP,MAAO,QACP2U,KAAM,OACNnsB,OAAQ,aACRosB,YAAa,mBACbC,cAAe,sBAsCjBL,SAAU,SAAS3L,EAAQxJ,GACzB,IAAIgK,EAAY5R,KAAK8c,2BAAqC,SAC1D,OAAO9c,KAAK2c,mBAAmB/K,EAAWR,EAAQxJ,EACpD,EA0CAoV,WAAY,SAAS5L,EAAQxJ,GAC3B,IAAIgK,EAAY5R,KAAK8c,2BAAuC,WAC5D,OAAO9c,KAAK2c,mBAAmB/K,EAAWR,EAAQxJ,EACpD,EA2BAqV,OAAQ,SAAS7L,EAAQxJ,GACvB,IAAIgK,EAAY5R,KAAK8c,2BAAmC,OACxD,OAAO9c,KAAK2c,mBAAmB/K,EAAWR,EAAQxJ,EACpD,EA0BAtP,IAAK,SAAS8Y,EAAQxJ,GACpB,IAAIgK,EAAY5R,KAAK8c,2BAAgC,IACrD,OAAO9c,KAAK2c,mBAAmB/K,EAAWR,EAAQxJ,EACpD,EA+BA8P,IAAK,SAAStG,EAAQxJ,GACpB,IAAIgK,EAAY5R,KAAK8c,2BAAgC,IACrD,OAAO9c,KAAK2c,mBAAmB/K,EAAWR,EAAQxJ,EACpD,EAgCA7W,OAAQ,SAASqgB,EAAQxJ,GACvB,IAAIgK,EAAY5R,KAAK8c,2BAAmC,OACxD,OAAO9c,KAAK2c,mBAAmB/K,EAAWR,EAAQxJ,EACpD,EAyBAsV,KAAM,SAAS9L,EAAQxJ,GACrB,IAAIgK,EAAY5R,KAAK8c,2BAAiC,KACtD,OAAO9c,KAAK2c,mBAAmB/K,EAAWR,EAAQxJ,EACpD,EA4BAW,MAAO,SAAS6I,EAAQxJ,GACtB,IAAIgK,EAAY5R,KAAK8c,2BAAkC,MACvD,OAAO9c,KAAK2c,mBAAmB/K,EAAWR,EAAQxJ,EACpD,EA4CAwV,cAAe,SAAShM,EAAQxJ,GAC9B,IAAIgK,EAAY5R,KAAK8c,2BAA0C,cAC/D,OAAO9c,KAAK2c,mBAAmB/K,EAAWR,EAAQxJ,EACpD,EAkCAuV,YAAa,SAAS/L,EAAQxJ,GAC5B,IAAIgK,EAAY5R,KAAK8c,2BAAwC,YAC7D,OAAO9c,KAAK2c,mBAAmB/K,EAAWR,EAAQxJ,EACpD,EA6BAyV,UAAW,SAASrC,EAAM/sB,GAExB,OAAO,IAAIosB,EAAYW,EADvB/sB,EAAUA,GAAW,CAAC,EAExB,EAKAqvB,cAAe,WACb,OAAO,IAAInB,EAAWnc,KAAK/R,QAC7B,EAKA2uB,aAAc,SAAsBlH,GAClC,IACI6H,EADOvd,KACWsd,gBAClB1L,EAAY8D,EAAQ9D,UACpBoG,EAAatC,EAAQhE,QAAQiE,IAAIE,WAAWjE,GAAWxR,MAC3DsV,EAAQ8H,QAAQC,SAAShT,SAAQ,SAASiT,GACxCA,EAAIC,UAAY3lB,EAAI8M,KAAKgI,KAAK4Q,EAAItM,QAClCsM,EAAItM,OAASmM,EAAWK,eAAeF,EAAIC,UAAW3F,EACxD,GACF,EAKA6E,cAAe,SAAuBnH,GACpC,IAAInX,EAAOyB,KACPud,EAAahf,EAAK+e,gBAClBO,EAActf,EAAKmT,QAAQiE,IAAIE,WAAWH,EAAQ9D,WAAWmK,OACjErG,EAAQrpB,GAAG,eAAe,SAAS8rB,GACjCA,EAAS5Y,KAAOge,EAAWO,gBAAgB3F,EAAS5Y,KAAMse,EAC5D,IAEenI,EAAQyC,SACd4F,SAAW,SAASjyB,GAC3B,IAEIyhB,EAFAyQ,EAAOhe,KACP0d,EAAMM,EAAKtI,QAEXhE,EAAUgM,EAAIhM,QACdE,EAAY8L,EAAI9L,UACpB,IACErE,EAASmE,EAAQuM,iBAAiBrM,GAAW,EAC/C,CAAE,MAAOrb,GAAKynB,EAAKzoB,MAAQgB,CAAG,CAE9B,IAAKynB,EAAKE,cAAe,CACvB,GAAIpyB,EAAIA,EAAGkyB,EAAKzoB,MAAO,WAClB,GAAIyoB,EAAKzoB,MAAO,MAAMyoB,EAAKzoB,MAChC,OAAO,IACT,CAEA,IAAI6b,EAASpZ,EAAI8M,KAAKgI,KAAK4Q,EAAIC,WAC/B,GAAKK,EAAKG,eAEH,CACL,IAAIC,EAAc7Q,EAAO8Q,WACE,kBAAhBD,IAA0BA,EAAc,CAACA,IACpD,IAAK,IAAI74B,EAAI,EAAGA,EAAI64B,EAAY34B,OAAQF,IACtC6rB,EAAOgN,EAAY74B,IAAMy4B,EAAKG,eAAe54B,GAE/C,OAAOgZ,EAAKqT,GAAWR,EAAQtlB,EACjC,CARE,OAAOA,EAAKA,EAAG,KAAM,MAAQ,IASjC,CACF,IAOF4M,EAAOpU,QAAU0T,EAAIkC,SAASkiB,gCCtkB9B,IAUIkC,EAVOvmB,EAAAA,OAAAA,KAUoB+N,QAAQ,CACrCzf,YAAa,SAAqBE,GAChCyZ,KAAKue,YAAc,cACnBve,KAAKzZ,MAAQA,EAAMgC,UACrB,EAKAi2B,OAAQ,WACN,OAAOxe,KAAKye,UACd,EAKAA,SAAU,WACR,OAAOhE,OAAOza,KAAKzZ,MACrB,EAMAgC,SAAU,WACR,OAAOyX,KAAKzZ,KACd,IAMFmS,EAAOpU,QAAUg6B,mBC1CjB,IAAIxZ,EAAO/M,EAAAA,OAAAA,KACPqiB,EAASriB,EAAAA,OAAAA,OAKT2mB,EAAsB,CACxB,OAAU,SACV,OAAU,SACV,YAAe,SACf,OAAU,UAMRrE,EAAcvV,EAAKgB,QAAQ,CAE7Bzf,YAAa,SAAa20B,EAAM/sB,GAC9BA,EAAUA,GAAW,CAAC,EACtB+R,KAAKue,YAAc,MACnBve,KAAK2e,WAAW3D,EAAM/sB,EAAQwvB,SAChC,EAEAkB,WAAY,SAAS3D,EAAMyC,GACzB,IAAIlf,EAAOyB,KACXzB,EAAK4c,OAAS,GAAGzsB,OAAOssB,GACxBzc,EAAKqgB,aACDnB,GACFlf,EAAKkf,UAET,EAEAmB,WAAY,WAEV,GADA5e,KAAKrM,KAAO+qB,EAAoBtE,EAAOpa,KAAKmb,OAAO,MAC9Cnb,KAAKrM,KACR,MAAMmR,EAAKvP,MAAM,IAAIlL,MAAS,CAC5B8e,KAAM,iBACNC,QAAS,qDAGf,EAEAqU,SAAU,WAIR,IAHA,IAAIlf,EAAOyB,KACPva,EAAS8Y,EAAK4c,OAAO11B,OACrB01B,EAAS5c,EAAK4c,OACT51B,EAAI,EAAGA,EAAIE,EAAQF,IAC1B,GAAIm5B,EAAoBtE,EAAOe,EAAO51B,OAASgZ,EAAK5K,KAClD,MAAMmR,EAAKvP,MAAM,IAAIlL,MAAS,CAC5B8e,KAAM,cACNC,QAAS7K,EAAK5K,KAAO,iBAAmBymB,EAAOe,EAAO51B,IAAM,UAIpE,EAKAi5B,OAAQ,WAEN,OADWxe,KACCmb,MACd,IAOFziB,EAAOpU,QAAU+1B,kBCtEjB,IAAIvV,EAAO/M,EAAAA,OAAAA,KACP8mB,EAAU9mB,EAAQ,OAElBokB,EAAa,SAASluB,GACxBA,EAAUA,GAAW,CAAC,EACtB+R,KAAKuc,UAAYtuB,EAAQsuB,UACzBvc,KAAKob,mBAAqBlC,QAAQjrB,EAAQmtB,oBAC1Cpb,KAAKwa,YAActB,QAAQjrB,EAAQusB,YACrC,EAEA2B,EAAW71B,UAAUs3B,eAAiB,SAASr3B,EAAOiF,GAEpD,OADAwU,KAAK8e,KAAO,QACL9e,KAAK+e,UAAUx4B,EAAOiF,EAC/B,EAEA2wB,EAAW71B,UAAUw3B,gBAAkB,SAASv3B,EAAOiF,GAErD,OADAwU,KAAK8e,KAAO,SACL9e,KAAK+e,UAAUx4B,EAAOiF,EAC/B,EAEA2wB,EAAW71B,UAAUy4B,UAAY,SAASx4B,EAAOiF,GAC/C,IAAI+S,EAAOyB,KACX,GAAKxU,QAAmBuD,IAAVxI,EAAd,CAEA,GAAIiF,EAAMA,QAAU+S,EAAKge,UACvB,OAAOsC,EAAQtgB,EAAKugB,MAAMv4B,EAAO,CAC/B60B,mBAAoB7c,EAAK6c,mBACzBZ,YAAajc,EAAKic,cAGtB,OAAQhvB,EAAMmI,MACZ,IAAK,YAAa,OAAO4K,EAAKygB,mBAAmBz4B,EAAOiF,GACxD,IAAK,MAAO,OAAO+S,EAAK0gB,aAAa14B,EAAOiF,GAC5C,IAAK,OAAQ,OAAO+S,EAAK2gB,cAAc34B,EAAOiF,GAC9C,QAAS,OAAO+S,EAAK4gB,gBAAgB54B,EAAOiF,GAZK,CAcrD,EAEA2wB,EAAW71B,UAAU04B,mBAAqB,SAASI,EAAW5zB,GAC5D,IAAI+S,EAAOyB,KACX,GAAiB,MAAbof,EAAJ,CAEA,IAAIC,EAAS,CAAC,EAQd,OAPAva,EAAK+D,KAAKuW,GAAW,SAAS32B,EAAMlC,GAClC,IAAI0vB,EAAczqB,EAAM0qB,QAAQztB,GAChC,GAAIwtB,EAAa,CACf,IAAI5mB,EAASkP,EAAKwgB,UAAUx4B,EAAO0vB,QACpBlnB,IAAXM,IAAsBgwB,EAAO52B,GAAQ4G,EAC3C,CACF,IACOgwB,CAVgC,CAWzC,EAEAlD,EAAW71B,UAAU44B,cAAgB,SAASlE,EAAMxvB,GAClD,IAAI+S,EAAOyB,KACX,GAAY,MAARgb,EAAJ,CAEA,IAAIzY,EAAM,GAMV,OALAuC,EAAK2L,UAAUuK,GAAM,SAASz0B,GAC5B,IAAI8I,EAASkP,EAAKwgB,UAAUx4B,EAAOiF,EAAM8zB,aAC1BvwB,IAAXM,EAAsBkT,EAAIpd,KAAK,MAC9Bod,EAAIpd,KAAKkK,EAChB,IACOkT,CAR2B,CASpC,EAEA4Z,EAAW71B,UAAU24B,aAAe,SAAStE,EAAKnvB,GAChD,IAAI+S,EAAOyB,KACX,GAAW,MAAP2a,EAAJ,CAEA,IAAIpY,EAAM,CAAC,EAMX,OALAuC,EAAK+D,KAAK8R,GAAK,SAAS/0B,EAAKW,GAC3B,IAAI8I,EAASkP,EAAKwgB,UAAUx4B,EAAOiF,EAAMjF,OACfgc,EAAI3c,QAAfmJ,IAAXM,EAAiC,KACrBA,CAClB,IACOkT,CAR0B,CASnC,EAEA4Z,EAAW71B,UAAU64B,gBAAkB,SAAS54B,EAAOiF,GACrD,OAAOA,EAAM+zB,OAAOh5B,EACtB,EAKAmS,EAAOpU,QAAU63B,mBCtFjB,IAAIrX,EAAO/M,EAAAA,OAAAA,KAkBX,SAASynB,EAASjgB,GAChB,IAAIkgB,EAAQ,CACV,SAAU,OAAQ,OAAQ,cAAe,WACzC,YAAa,aAAc,oBAC3B,aAAc,cAAe,aAAc,cAC3C,eAAgB,gBAElB,GAAI3a,EAAKQ,SAAU,CACjB,IAAIoa,EAAS5a,EAAK6a,OAAOD,OACzB,GAAI5a,EAAK7F,OAAO2gB,SAASrgB,IAASA,aAAgBmgB,EAChD,OAAO,CAEX,CAEA,IAAK,IAAIn6B,EAAI,EAAGA,EAAIk6B,EAAMh6B,OAAQF,IAChC,QAAawJ,IAATwQ,GAAsBA,EAAKlZ,YAAa,CAC1C,GAAIye,EAAK+a,OAAOtgB,EAAMkgB,EAAMl6B,IAAK,OAAO,EACxC,GAAIuf,EAAKgb,SAASvgB,EAAKlZ,eAAiBo5B,EAAMl6B,GAAI,OAAO,CAC3D,CAGF,OAAO,CACT,CAKAmT,EAAOpU,QAAU,CACf81B,OA5CF,SAAgB7a,GACd,OAAa,OAATA,GAAiC,kBAATA,EACnB,YACWxQ,IAATwQ,GAAsBigB,EAASjgB,GACjC,cACWxQ,IAATwQ,GAAsBA,EAAKlZ,YAC7BkZ,EAAKgf,aAAezZ,EAAKgb,SAASvgB,EAAKlZ,kBAC5B0I,IAATwQ,GAAsC,kBAATA,EAG/B,SAEA,WAEX,EA+BEigB,SAAUA,mBC/CZ,IAAIO,EAAsBhoB,EAAAA,MAAAA,oBACtBioB,EAAajoB,EAAAA,OAAAA,WAiBjBW,EAAOpU,QAAU,CACb8gB,kBAhBJ,SAA2B6a,EAAMC,EAAQ3nB,GAKrC,IAJA,IAAI4nB,EAAgBJ,EAAoBE,GAEpC5Q,EAAS,GAEJ9pB,EAAI,EAAGA,EAAI46B,EAAc16B,OAAQF,IACtC8pB,EAAOlqB,KAAK66B,EAAWE,EAAQC,EAAc56B,GAAIgT,IAGrD,OAAO8W,CACX,aCcA3W,EAAOpU,QAAU,CACby7B,oBAvBJ,SAA6BpgB,GAKzB,IAHA,IAAIygB,EAAW,GACXld,EAAS,EAENA,EAASvD,EAAOla,QAAQ,CAC3B,IAAI2d,EAAczD,EAAO0gB,YAAYnd,GAGjCkG,EAAUzJ,EAAOnX,MAAM0a,EAAQE,EAAcF,GAEjDA,GAAUE,EAEVgd,EAASj7B,KAAKikB,EAClB,CAEA,OAAOgX,CACX,oBCtBA,IAAItb,EAAO/M,EAAAA,OAAAA,KACPkkB,EAAWnX,EAAKnF,OAAOsc,SAY3B,SAASqE,EAAMC,GACX,GAAqB,IAAjBA,EAAM96B,OACN,MAAM,IAAI4E,MAAM,yCAEfya,EAAK7F,OAAO2gB,SAASW,KAAQA,EAAQtE,EAASsE,IAEnDvgB,KAAKugB,MAAQA,CACjB,CAuDA,SAASC,EAAOD,GACZ,IAAK,IAAIh7B,EAAI,EAAGA,EAAI,EAAGA,IACnBg7B,EAAMh7B,IAAM,IAEhB,IAASA,EAAI,EAAGA,GAAK,IACjBg7B,EAAMh7B,KACW,IAAbg7B,EAAMh7B,IAFUA,KAM5B,CAzDA+6B,EAAMG,WAAa,SAAS71B,GACxB,GAAIA,EAAS,oBAAuBA,GAAU,mBAC1C,MAAM,IAAIP,MACNO,EAAS,uEAKjB,IADA,IAAI21B,EAAQ,IAAI7gB,WAAW,GAEnBna,EAAI,EAAGm7B,EAAYre,KAAKse,IAAIte,KAAKue,MAAMh2B,IAC3CrF,GAAK,GAAKm7B,EAAY,EACtBn7B,IAAKm7B,GAAa,IAElBH,EAAMh7B,GAAKm7B,EAOf,OAJI91B,EAAS,GACT41B,EAAOD,GAGJ,IAAID,EAAMC,EACrB,EAOAD,EAAMh6B,UAAUu6B,QAAU,WACtB,IAAIN,EAAQvgB,KAAKugB,MAAM/3B,MAAM,GACzBs4B,EAAsB,IAAXP,EAAM,GAKrB,OAJIO,GACAN,EAAOD,GAGJQ,SAASR,EAAMh4B,SAAS,OAAQ,KAAOu4B,GAAY,EAAI,EAClE,EAEAR,EAAMh6B,UAAUiC,SAAW,WACvB,OAAO+tB,OAAOtW,KAAK6gB,UACvB,EAsBAnoB,EAAOpU,QAAU,CACbg8B,MAAOA,oBC3FX,IAAIU,EAAejpB,EAAAA,OAAAA,aAsEnBW,EAAOpU,QAAU,CACb07B,WA9DJ,SAAoBE,EAAQ9W,EAAS5d,GACjC,IAAIy1B,EAAgBD,EAAa5X,GAG7B8X,EAAcD,EAAczI,QAAQ,iBACxC,GAAI0I,EAAa,CACb,GAA0B,UAAtBA,EAAY36B,MACZ,MA2CZ,SAAoB6iB,GAChB,IAAI8H,EAAY9H,EAAQoP,QAAQ,eAC5B2I,EAAe/X,EAAQoP,QAAQ,kBAC/BjjB,EAAQ,IAAIlL,MAAM82B,EAAa56B,OAAS46B,GAE5C,OADA5rB,EAAM4T,KAAO5T,EAAM9M,KAAOyoB,EAAU3qB,OAAS2qB,EACtC3b,CACX,CAjDkB6rB,CAAWH,GACd,GAA0B,UAAtBC,EAAY36B,MAEnB,MAER,CAGA,IAAI86B,EAAYJ,EAAczI,QAAQ,eAElC8I,EAAa91B,EAAM0qB,QAAQmL,EAAU96B,OACzC,GAAK+6B,EAAL,CAIA,IAAIjyB,EAAS,CAAC,EAEVkyB,EAAyBD,EAAWC,uBACxC,GAAIA,EAAwB,CACxB,IAAIC,EAAeF,EAAWpL,QAAQqL,GAEZ,WAAtBC,EAAa7tB,KACbtE,EAAOkyB,GAA0BN,EAAchB,KAE/C5wB,EAAOkyB,GAA0BrB,EAAOzY,MAAMwZ,EAAchB,KAAK13B,WAAYi5B,EAErF,CAIA,IADA,IAAIC,EAAmBH,EAAWI,uBACzBn8B,EAAI,EAAGA,EAAIk8B,EAAiBh8B,OAAQF,IAAK,CAC9C,IAAIkD,EAAOg5B,EAAiBl8B,GACxB07B,EAAczI,QAAQ/vB,KAEtB4G,EAAO5G,GAAQ64B,EAAWpL,QAAQztB,GAAM82B,OAAO0B,EAAczI,QAAQ/vB,GAAMlC,OAEnF,CAEA,IAAIw1B,EAAS,CAAC,EAEd,OADAA,EAAOsF,EAAU96B,OAAS8I,EACnB0sB,CA3BP,CA4BJ,oBCzDA,IAAIuE,EAAQvoB,EAAAA,OAAAA,MAER4pB,EAAe5pB,EAAAA,OAAAA,aAEf6pB,EAAc,UACdC,EAAW,OACXC,EAAY,QACZC,EAAU,UACVC,EAAW,OACXC,EAAa,SACbC,EAAa,SACbC,EAAgB,YAChBC,EAAW,OAOf,SAASC,EAAa7J,GAGlB,IAFA,IAAIjW,EAAM,CAAC,EACPT,EAAW,EACRA,EAAW0W,EAAQ/yB,QAAQ,CAC9B,IAAI68B,EAAa9J,EAAQ+J,UAAUzgB,KAC/BrZ,EAAO+vB,EAAQhwB,MAAMsZ,EAAUA,EAAWwgB,GAAY/5B,WAE1D,OADAuZ,GAAYwgB,EACJ9J,EAAQ+J,UAAUzgB,MACtB,KAAK,EACDS,EAAI9Z,GAAQ,CACRkL,KAAMiuB,EACNr7B,OAAO,GAEX,MACJ,KAAK,EACDgc,EAAI9Z,GAAQ,CACRkL,KAAMiuB,EACNr7B,OAAO,GAEX,MACJ,KAAK,EACDgc,EAAI9Z,GAAQ,CACRkL,KAAMkuB,EACNt7B,MAAOiyB,EAAQgK,SAAS1gB,MAE5B,MACJ,KAAK,EACDS,EAAI9Z,GAAQ,CACRkL,KAAMmuB,EACNv7B,MAAOiyB,EAAQiK,YAAY3gB,IAE/BA,GAAY,EACZ,MACJ,KAAK,EACDS,EAAI9Z,GAAQ,CACRkL,KAAMouB,EACNx7B,MAAOiyB,EAAQ6H,YAAYve,IAE/BA,GAAY,EACZ,MACJ,KAAK,EACDS,EAAI9Z,GAAQ,CACRkL,KAAMquB,EACNz7B,MAAO,IAAI+5B,EAAM9H,EAAQhwB,MAAMsZ,EAAUA,EAAW,KAExDA,GAAY,EACZ,MACJ,KAAK,EACD,IAAI4gB,EAAelK,EAAQmK,aAAa7gB,GACxCA,GAAY,EACZS,EAAI9Z,GAAQ,CACRkL,KAAMsuB,EACN17B,MAAOiyB,EAAQhwB,MAAMsZ,EAAUA,EAAW4gB,IAE9C5gB,GAAY4gB,EACZ,MACJ,KAAK,EACD,IAAIE,EAAepK,EAAQmK,aAAa7gB,GACxCA,GAAY,EACZS,EAAI9Z,GAAQ,CACRkL,KAAMuuB,EACN37B,MAAOiyB,EAAQhwB,MACXsZ,EACAA,EAAW8gB,GACbr6B,YAENuZ,GAAY8gB,EACZ,MACJ,KAAK,EACDrgB,EAAI9Z,GAAQ,CACRkL,KAAMwuB,EACN57B,MAAO,IAAI6pB,KACP,IAAIkQ,EAAM9H,EAAQhwB,MAAMsZ,EAAUA,EAAW,IACxC+e,YAGb/e,GAAY,EACZ,MACJ,KAAK,EACD,IAAI+gB,EAAYrK,EAAQhwB,MAAMsZ,EAAUA,EAAW,IAC9CvZ,SAAS,OACduZ,GAAY,GACZS,EAAI9Z,GAAQ,CACRkL,KAAMyuB,EACN77B,MAAOs8B,EAAUC,OAAO,EAAG,GAAK,IAC5BD,EAAUC,OAAO,EAAG,GAAK,IACzBD,EAAUC,OAAO,GAAI,GAAK,IAC1BD,EAAUC,OAAO,GAAI,GAAK,IAC1BD,EAAUC,OAAO,KAEzB,MACJ,QACI,MAAM,IAAIz4B,MAAM,gCAE5B,CACA,OAAOkY,CACX,CAUA7J,EAAOpU,QAAU,CACb08B,aATJ,SAAsB5X,GAClB,IAAI9Y,EAASqxB,EAAavY,GAC1B,MAAO,CAAEoP,QAAS6J,EAAa/xB,EAAOkoB,SAAUyH,KAAM3vB,EAAO2vB,KACjE,oBCxHA,IAAInb,EAAO/M,EAAAA,OAAAA,KACPkkB,EAAWnX,EAAKnF,OAAOsc,SAkE3BvjB,EAAOpU,QAAU,CACbq9B,aAnDJ,SAAsBvY,GAGlB,GAFKtE,EAAK7F,OAAO2gB,SAASxW,KAAUA,EAAU6S,EAAS7S,IAEnDA,EAAQ3jB,OAVas9B,GAWrB,MAAM,IAAI14B,MAAM,2EAGpB,GAAI+e,EAAQ3jB,SAAW2jB,EAAQ4Z,aAAa,GACxC,MAAM,IAAI34B,MAAM,kEAGpB,IAAI44B,EAA0B7Z,EAAQ4Z,aAtBrBE,GAwBjB,GACID,IAA4Bne,EAAKC,OAAOoe,MACpC/Z,EAAQ5gB,MAAM,EA1BL06B,IA6Bb,MAAM,IAAI74B,MACN,kDACA44B,EACA,mDAIR,IAAIG,EAA0Bha,EAAQ4Z,aAAa5Z,EAAQ3jB,OAlCzC,GAoClB,GACI29B,IAA4Bte,EAAKC,OAAOoe,MACpC/Z,EAAQ5gB,MAAM,EAAG4gB,EAAQ3jB,OAtCf,IAyCd,MAAM,IAAI4E,MACN,4DACI+4B,GAIZ,IACIC,EADeN,GACa3Z,EAAQ4Z,aApDhB,GAsDxB,MAAO,CACHxK,QAASpP,EAAQ5gB,MAJFu6B,GAIsBM,GACrCpD,KAAM7W,EAAQ5gB,MAAM66B,EAAYja,EAAQ3jB,OApD1B,GAsDtB,oBC9DA,IAAIuS,EAAMD,EAAQ,OACduX,EAAqBvX,EAAQ,OAC7BurB,EAAoBvrB,EAAAA,OAAAA,iBAiExB,SAASwrB,EAAqB7F,GAC5B,IAAKA,EAAIhM,QAAQiE,IAAIE,WACnB,MAAO,GAET,IAAIjE,EAAY8L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAC/C,OAAOA,EAAYA,EAAU4R,SAAW,EAC1C,CAKA,SAASC,EAAgB/F,GACvB,IAAIhM,EAAUgM,EAAIhM,QAElB,OAAIA,EAAQnE,OAAOpB,iBACVuF,EAAQnE,OAAOpB,iBAGpBuF,EAAQiE,IAAIxJ,iBACPuF,EAAQiE,IAAIxJ,iBAGdoX,EAAqB7F,EAC9B,CAnFA1lB,EAAIsf,eAAiB,CAsDnBC,KAAM,CAAC,GA+BTvf,EAAIsf,eAAiB,CACnBC,MAAM,IAAIjI,GAAqBoU,mBAAkB,SAASC,EAAKC,GAC7DA,EACE,uBAAwB,YACxB,SAA8BlG,EAAKz1B,GACjC,IAAKy1B,EAAIhM,QAAQiE,IAAIxJ,mBAAqBuR,EAAIhM,QAAQnE,OAAOpB,iBAAkB,OAAOlkB,IAGjE,WADFw7B,EAAgB/F,GAWnCA,EAAIhM,QAAQnE,OAAOzE,gBAAe,SAAS5gB,GACrCA,IACFw1B,EAAIvF,SAAS5iB,MAAQyC,EAAI8M,KAAKvP,MAAMrN,EAClC,CACEihB,KAAM,mBACNC,QAAS,wFAIfnhB,GACF,IAnBEy1B,EAAIhM,QAAQnE,OAAO7D,UAAS,SAASxhB,GAC/BA,IACFw1B,EAAIvF,SAAS5iB,MAAQyC,EAAI8M,KAAKvP,MAAMrN,EAAK,CAACihB,KAAM,gBAElDlhB,GACF,GAeN,IAEA07B,EAAI,kBAAmB,YAAY,SAAyBjG,GAC1D,IAAKA,EAAIhM,QAAQmS,iBAAkB,CACjC,IAAIC,EAAe,IAAIC,OAAO,4DACzBrG,EAAIhM,QAAQnE,OAAO1C,OAGZiZ,EAAan7B,KAAK+0B,EAAIhM,QAAQnE,OAAO1C,UAC/C6S,EAAIvF,SAAS5iB,MAAQyC,EAAI8M,KAAKvP,MAAM,IAAIlL,MACtC,CAAC8e,KAAM,cAAeC,QAAS,8BAJjCsU,EAAIvF,SAAS5iB,MAAQyC,EAAI8M,KAAKvP,MAAM,IAAIlL,MACtC,CAAC8e,KAAM,cAAeC,QAAS,4BAKrC,CACF,IAEAua,EAAI,2BAA4B,YAAY,SAAkCjG,GAC5E,GAAKA,EAAIhM,QAAQiE,IAAIE,WAArB,CAGA,IAAIjE,EAAY8L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAC/C,GAAKA,EAAL,CAGA,IAAIoS,EAAoBpS,EAAUoS,kBAClC,GAAKA,EAAkBv+B,OAAvB,CAKA,IADA,IAAI2rB,EAASpZ,EAAI8M,KAAKgI,KAAK4Q,EAAItM,QACtB7rB,EAAI,EAAG0+B,EAAOD,EAAkBv+B,OAAQF,EAAI0+B,EAAM1+B,IACpD6rB,EAAO4S,EAAkBz+B,MAE5B6rB,EAAO4S,EAAkBz+B,IAAMyS,EAAI8M,KAAKof,KAAKC,MAGjDzG,EAAItM,OAASA,CATb,CAJA,CAJA,CAkBF,IAEAuS,EAAI,sBAAuB,YAAY,SAA6BjG,GAClE,GAAKA,EAAIhM,QAAQiE,IAAIE,WAArB,CAGA,IAAIuO,EAAQ1G,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAAWxR,MAClDikB,EAAa3G,EAAIhM,QAAQnE,OAAOjC,gBACpC,IAAItT,EAAIssB,eAAeD,GAAY5G,SAAS2G,EAAO1G,EAAItM,OAHvD,CAIF,IAEAuS,EAAI,mBAAoB,cAAc,SAA0BjG,GAC9D,GAAKA,EAAIhM,QAAQiE,IAAIE,WAArB,CAGA,IAAIjE,EAAY8L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAC/C,GAAKA,EAAL,CAGA,IAAIqO,EAAOvC,EAAI5G,YAAYmJ,KACvBsE,EAAwBtE,IAASjoB,EAAI8M,KAAK7F,OAAO2gB,SAASK,IAAyB,kBAATA,GAC1EzH,EAAUkF,EAAI5G,YAAY0B,QAC9B,GACE5G,EAAU4S,sBACV9G,EAAIhM,QAAQnE,OAAO1B,kBACnB0Y,IACC/L,EAAQ,eACT,CACA,IAAIiM,EAAMzsB,EAAI8M,KAAKC,OAAO0f,IAAIxE,EAAM,UACpCzH,EAAQ,eAAiBiM,CAC3B,CAZA,CAJA,CAiBF,IAEAb,EAAS,iBAAkB,cAAc,SAAwBlG,EAAKz1B,GAEpE,GADAy1B,EAAIgH,sBACChH,EAAIhM,QAAQiE,IAAIE,WAArB,CAGA,IAAIjE,EAAY8L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAC3C4R,EAAW5R,EAAYA,EAAU4R,SAAW,GAChD,IAAK9F,EAAIhM,QAAQiE,IAAIxJ,mBAAqBqX,IAAa9F,EAAIhM,QAAQnE,OAAOpB,iBAAkB,OAAOlkB,IACnG,GAAIy1B,EAAIhM,QAAQiT,eAAejH,KAAS1lB,EAAIsW,QAAQsW,GAAI,CACtD,IAAI3E,EAAOvC,EAAI5G,YAAYmJ,MAAQ,GACnC,GAAIuD,EAAS38B,QAAQ,kBAAoB,EAEvC,OADA62B,EAAI5G,YAAY0B,QAAQ,wBAA0B,mBAC3CvwB,IAET+P,EAAI8M,KAAK+f,cAAc5E,GAAM,SAAS/3B,EAAK48B,GACrC58B,EACFD,EAAKC,IAGLw1B,EAAI5G,YAAY0B,QAAQ,wBAA0BsM,EAClD78B,IAEJ,GACF,MACEA,GApBF,CAsBF,IAEA07B,EAAI,qBAAsB,cAAc,SAA4BjG,GAClE,IAAI8F,EAAWD,EAAqB7F,GAChCqH,EAAgB/sB,EAAI8M,KAAKkgB,uBAAuBtH,GACpD,QAAkD3uB,IAA9C2uB,EAAI5G,YAAY0B,QAAQ,kBAC1B,IACE,IAAI/yB,EAASuS,EAAI8M,KAAKja,OAAO2U,WAAWke,EAAI5G,YAAYmJ,MACxDvC,EAAI5G,YAAY0B,QAAQ,kBAAoB/yB,CAC9C,CAAE,MAAOyC,GACP,GAAI68B,GAAiBA,EAAcE,YAAa,CAC9C,GAAIF,EAAcG,eAEhB,MAAMh9B,EACD,GAAIs7B,EAAS38B,QAAQ,kBAAoB,EAG9C,YADA62B,EAAI5G,YAAY0B,QAAQ,qBAAuB,WAG/C,MAAMtwB,CAEV,CACA,MAAMA,CACR,CAEJ,IAEAy7B,EAAI,gBAAiB,cAAc,SAAuBjG,GACxDA,EAAI5G,YAAY0B,QAAc,KAAIkF,EAAI5G,YAAY7L,SAASka,IAC7D,IAEAxB,EAAI,eAAgB,cAAc,SAAsBjG,GACtD,IAAI0H,EAAoB,kBACxB,GAAIptB,EAAI8M,KAAKQ,WAAa1gB,OAAOsE,eAAejC,KAAKy2B,EAAI5G,YAAY0B,QAAS4M,GAAoB,CAChG,IAEIC,EAAe5f,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAoC,yBACnD6f,EAAU7f,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAwB,iBAEZ,kBAAjB4f,GACPA,EAAa5/B,OAAS,GACH,kBAAZ6/B,GACPA,EAAQ7/B,OAAS,IAEjBi4B,EAAI5G,YAAY0B,QAAQ4M,GAAqBE,EAEjD,CACF,IAEA3B,EAAI,UAAW,WAAW,WACxB,IAAIz7B,EAAM8X,KAAKmY,SAAS5iB,MACnBrN,GAAQA,EAAIkwB,YAEjBpY,KAAK8W,YAAc,IAAI9e,EAAIutB,YACzBvlB,KAAK0R,QAAQzG,SACbjL,KAAK0R,QAAQ7G,QAGX7K,KAAKmY,SAASqN,WAAaxlB,KAAK0R,QAAQnE,OAAOnC,WACjDpL,KAAKmY,SAASqN,aAEdxlB,KAAKmY,SAAS5iB,MAAQ,KAE1B,IAGAquB,EAAS,oBAAqB,OAAQN,GADtB,GAGhBM,EAAS,OAAQ,QAAQ,SAAclG,EAAKz1B,GAC1C,IAAIypB,EAAUgM,EAAIhM,QACd+T,EAAehC,EAAgB/F,GACnC,IAAK+H,GAAwC,IAAxBA,EAAahgC,OAAc,OAAOwC,IAElC,WAAjBw9B,EACF/T,EAAQnE,OAAO7D,UAAS,SAAUxhB,EAAKyhB,GACrC,GAAIzhB,EAEF,OADAw1B,EAAIvF,SAAS5iB,MAAQrN,EACdD,IAGT,IAEe,IADKypB,EAAQiT,eAAejH,GAC5B,CAAgBA,EAAI5G,aAC1B4O,iBAAiB/b,EAC1B,CAAE,MAAOpT,GACPmnB,EAAIvF,SAAS5iB,MAAQgB,CACvB,CACAtO,GACF,IAEAypB,EAAQnE,OAAOzE,gBAAe,SAAU5gB,EAAK8gB,GAC3C,GAAI9gB,EAEF,OADAw1B,EAAIvF,SAAS5iB,MAAQrN,EACdD,IAGT,IACE,IAAI+nB,EAAO0B,EAAQiU,uBACfC,EAAclU,EAAQiT,eAAejH,GAErC9L,GADa8L,EAAIhM,QAAQiE,IAAIE,YAAc,CAAC,GACrB6H,EAAI9L,WAC3BiU,EAAS,IAAID,EAAYlI,EAAI5G,YAC/BpF,EAAQoU,eAAepI,GACvB,CACEtR,eAAgBsF,EAAQnE,OAAOnB,eAC/BwF,UAAWA,EACXzF,iBAAkBuF,EAAQiE,IAAIxJ,mBAElC0Z,EAAOE,mBAAmBrU,EAAQsU,kBAG3BtI,EAAI5G,YAAY0B,QAAuB,qBACvCkF,EAAI5G,YAAY0B,QAAc,YAC9BkF,EAAI5G,YAAY0B,QAAQ,cAG/BqN,EAAOH,iBAAiB1c,EAAagH,GACrC0N,EAAIuI,SAAWjW,CACjB,CAAE,MAAOzZ,GACPmnB,EAAIvF,SAAS5iB,MAAQgB,CACvB,CACAtO,GACF,GAGJ,IAEA07B,EAAI,oBAAqB,oBAAoB,SAA2B3F,GAClEhe,KAAK0R,QAAQwU,mBAAmBlI,EAAMhe,OACxCge,EAAKze,KAAO,CAAC,EACbye,EAAKzoB,MAAQ,OAEbyoB,EAAKze,KAAO,KACZye,EAAKzoB,MAAQyC,EAAI8M,KAAKvP,MAAM,IAAIlL,MAC9B,CAAC8e,KAAM,eAAgBC,QAAS,+BAEtC,IAEAua,EAAI,QAAS,SAAS,SAAez7B,EAAK81B,GAExC,GADyBA,EAAKtI,QAAQhE,QAAQiE,IAAIwQ,mBAC1B,CACtB,IAAI3N,EAAUwF,EAAKtF,aAAaF,QAC5B4N,EAAiB5N,EAAUA,EAAQ,2BAAwBzpB,EAC3Dq3B,GAAkBA,EAAe73B,SAAS,OAC5CyvB,EAAKzoB,MAAM4T,KAAOid,EAAe9e,MAAM,KAAK,GAEhD,CACF,IAAG,GAEHsc,EAAS,OAAQ,QAAQ,SAAc5F,EAAM/1B,GAK3C,SAAS2f,EAASye,GAChBrI,EAAKtF,aAAaiH,OAAS0G,EAC3B,IAAI1G,EAAS3B,EAAKtI,QAAQoB,YAAY6I,OAClCjO,EAAUsM,EAAKtI,QAAQhE,QACvBiE,EAAMjE,EAAQiE,IACd2Q,EAAgBtI,EAAKtI,QAAQ9D,UAC7BA,EAAY+D,EAAIE,WAAWyQ,IAAkB,CAAC,EAElDD,EAASh6B,GAAG,WAAW,SAAmBssB,EAAYH,EAAS+N,GAM7D,GALAvI,EAAKtI,QAAQ8Q,KACX,cACA,CAAC7N,EAAYH,EAASwF,EAAMuI,KAGzBvI,EAAKtF,aAAa+N,UACrB,GAAyC,IAArCzuB,EAAI0uB,WAAWC,kBAAyB,CAG1C,GAAI/U,EAAUgV,gBAAkBlV,EAAQwU,mBAAmBlI,GAIzD,OAFAA,EAAKtI,QAAQ8Q,KAAK,iBAClBv+B,IAIFo+B,EAASh6B,GAAG,YAAY,WACtB,IAAIkT,EAAO8mB,EAASQ,OACP,OAATtnB,GACFye,EAAKtI,QAAQ8Q,KAAK,WAAY,CAACjnB,EAAMye,GAEzC,GACF,MACEqI,EAASh6B,GAAG,QAAQ,SAAgBkT,GAClCye,EAAKtI,QAAQ8Q,KAAK,WAAY,CAACjnB,EAAMye,GACvC,GAGN,IAEAqI,EAASh6B,GAAG,OAAO,WACjB,IAAKszB,IAAWA,EAAOmH,YAAa,CAClC,GAAyC,IAArC9uB,EAAI0uB,WAAWC,mBAA4B/U,EAAUgV,gBAAkBlV,EAAQwU,mBAAmBlI,GAEpG,OAEFA,EAAKtI,QAAQ8Q,KAAK,YAClBv+B,GACF,CACF,GACF,CAYA,SAASsN,EAAMrN,GACb,GAAiB,wBAAbA,EAAIihB,KAAgC,CACtC,IAAI4d,EAAuB,iBAAb7+B,EAAIihB,KAA0BjhB,EAAIihB,KAAO,kBACvDjhB,EAAM8P,EAAI8M,KAAKvP,MAAMrN,EAAK,CACxBihB,KAAM4d,EACNlc,OAAQmT,EAAKtI,QAAQoB,YAAYjM,OACjCmc,SAAUhJ,EAAKtI,QAAQoB,YAAY7L,SAAS+b,SAC5C5O,WAAW,GAEf,CACA4F,EAAKzoB,MAAQrN,EACb81B,EAAKtI,QAAQ8Q,KAAK,YAAa,CAACxI,EAAKzoB,MAAOyoB,IAAO,WACjD/1B,GACF,GACF,CAEA,SAASg/B,IACP,IA3BgBZ,EA2BZa,EAAOlvB,EAAI0uB,WAAWS,cACtBjc,EAAc8S,EAAKtI,QAAQhE,QAAQnE,OAAOrC,aAAe,CAAC,EAC9D,IACE,IAAIyU,EAASuH,EAAKE,cAAcpJ,EAAKtI,QAAQoB,YAAa5L,EAC1BtD,EAAUrS,IA/B5B8wB,EAgCL1G,GA/BFtzB,GAAG,gBAAgB,SAAwB9F,GAClDy3B,EAAKtI,QAAQ8Q,KAAK,qBAAsB,CAACjgC,EAAOy3B,GAClD,IAEAqI,EAASh6B,GAAG,mBAAmB,SAA2B9F,GACxDy3B,EAAKtI,QAAQ8Q,KAAK,uBAAwB,CAACjgC,EAAOy3B,GACpD,GA0BA,CAAE,MAAO91B,GACPqN,EAAMrN,EACR,CACF,CA3FA81B,EAAKtF,aAAa2O,eAAiBp/B,EACnC+1B,EAAKzoB,MAAQ,KACbyoB,EAAKze,KAAO,MA0FIye,EAAKtI,QAAQhE,QAAQiU,uBAAyB3lB,KAAKimB,UAAY,KAC/D,IACdjmB,KAAKwmB,KAAK,OAAQ,CAACxmB,OAAO,SAAS9X,GAC7BA,EAAKD,EAAKC,GACT++B,GACP,IAEAA,GAEJ,IAEAtD,EAAI,eAAgB,eAChB,SAAsBhL,EAAYH,EAASwF,EAAMuI,GACnDvI,EAAKtF,aAAaC,WAAaA,EAC/BqF,EAAKtF,aAAa6N,cAAgBA,EAClCvI,EAAKtF,aAAaF,QAAUA,EAC5BwF,EAAKtF,aAAauH,KAAOjoB,EAAI8M,KAAKnF,OAAOsc,SAAS,IAClD+B,EAAKtF,aAAa4O,QAAU,GAC5BtJ,EAAKtF,aAAa6O,SAAW,EAC7B,IAAIC,EAAahP,EAAQxI,MAAQwI,EAAQpI,KACrCsB,EAAUsM,EAAKtI,QAAQhE,QAC3B,GAAI8V,EAAY,CACd,IAAIC,EAAarX,KAAK3I,MAAM+f,GACxB9V,EAAQnE,OAAOxB,kBACZ2F,EAAQgW,cAAcD,IAC3B/V,EAAQiW,iBAAiBF,EAE7B,CACF,IAEA9D,EAAI,YAAa,YAAY,SAAmBiE,EAAO5J,GACrD,GAAI4J,EAAO,CACT,GAAI5vB,EAAI8M,KAAKQ,SAAU,CACrB0Y,EAAKtF,aAAa6O,UAAYK,EAAMniC,OAEpC,IAAIoiC,EAAQ7J,EAAKtF,aAAaF,QAAQ,kBAClCsP,EAAW,CAAEC,OAAQ/J,EAAKtF,aAAa6O,SAAUM,MAAOA,GAC5D7J,EAAKtI,QAAQ8Q,KAAK,uBAAwB,CAACsB,EAAU9J,GACvD,CAEAA,EAAKtF,aAAa4O,QAAQniC,KAAK6S,EAAI8M,KAAKnF,OAAOsc,SAAS2L,GAC1D,CACF,IAEAjE,EAAI,YAAa,YAAY,SAAmB3F,GAE9C,GAAIA,EAAKtF,aAAa4O,SAAWtJ,EAAKtF,aAAa4O,QAAQ7hC,OAAS,EAAG,CACrE,IAAIw6B,EAAOjoB,EAAI8M,KAAKnF,OAAOjR,OAAOsvB,EAAKtF,aAAa4O,SACpDtJ,EAAKtF,aAAauH,KAAOA,CAC3B,QACOjC,EAAKtF,aAAa6O,gBAClBvJ,EAAKtF,aAAa4O,OAC3B,IAEA3D,EAAI,iBAAkB,SAAS,SAAwB3F,GACjDA,EAAKtF,aAAaC,aACpBqF,EAAKzoB,MAAMojB,WAAaqF,EAAKtF,aAAaC,gBACb5pB,IAAzBivB,EAAKzoB,MAAM6iB,YACb4F,EAAKzoB,MAAM6iB,UAAYpY,KAAK0R,QAAQsW,eAAehK,EAAKzoB,MAAOyK,OAGrE,IAEA2jB,EAAI,yBAA0B,SAAS,SAAgC3F,GACrE,GAAKA,EAAKzoB,MACV,OAAQyoB,EAAKzoB,MAAM4T,MACjB,IAAK,iBACL,IAAK,wBACL,IAAK,eACH6U,EAAKzoB,MAAM6iB,WAAY,EACvB4F,EAAKtI,QAAQhE,QAAQnE,OAAOvE,YAAYyG,SAAU,EAExD,IAEAkU,EAAI,oBAAqB,SAAS,SAA2B3F,GAC3D,IAAI91B,EAAM81B,EAAKzoB,MACVrN,GACmB,kBAAbA,EAAIihB,MAA4C,kBAAhBjhB,EAAIkhB,SACzClhB,EAAIihB,KAAKjD,MAAM,cAAgBhe,EAAIkhB,QAAQlD,MAAM,aACnD8X,EAAKzoB,MAAM6iB,WAAY,EAG7B,IAEAuL,EAAI,eAAgB,SAAS,SAAsB3F,GAC5CA,EAAKzoB,OACNyK,KAAK0R,QAAQuW,eAAejK,EAAKzoB,QAC9ByK,KAAK0R,QAAQnE,OAAOxB,mBACzBiS,EAAKzoB,MAAM6iB,WAAY,EAE3B,IAEAuL,EAAI,WAAY,SAAS,SAAkB3F,GACrCA,EAAKzoB,OAASyoB,EAAKzoB,MAAMojB,YAAc,KACvCqF,EAAKzoB,MAAMojB,WAAa,KAAOqF,EAAKtF,aAAaF,QAAkB,WACrExY,KAAK8W,YAAY7L,SACf,IAAIjT,EAAIkwB,SAASlK,EAAKtF,aAAaF,QAAkB,UACvDxY,KAAK8W,YAAY0B,QAAc,KAAIxY,KAAK8W,YAAY7L,SAASka,KAC7DnlB,KAAK8W,YAAYpP,KAAO1H,KAAK8W,YAAY7L,SAASvD,KAClDsW,EAAKzoB,MAAM4yB,UAAW,EACtBnK,EAAKzoB,MAAM6iB,WAAY,EAE3B,IAEAuL,EAAI,cAAe,SAAS,SAAqB3F,GAC3CA,EAAKzoB,QACHyoB,EAAKzoB,MAAM4yB,UAAYnK,EAAKoK,cAAgBpK,EAAK3S,aACnD2S,EAAKzoB,MAAM8yB,WAAa,EACfrK,EAAKwH,WAAaxH,EAAK5S,aAChC4S,EAAKzoB,MAAM8yB,WAAaroB,KAAK0R,QAAQ4W,YAAYtK,EAAKwH,WAAYxH,EAAKzoB,QAAU,GAGvF,IAEAquB,EAAS,oBAAqB,cAAc,SAA2B5F,EAAM/1B,GAC3E,IAAIsgC,EAAOC,GAAY,EAEnBxK,EAAKzoB,QACPgzB,EAAQvK,EAAKzoB,MAAM8yB,YAAc,EAC7BrK,EAAKzoB,MAAM6iB,WAAa4F,EAAKwH,WAAaxH,EAAK5S,YACjD4S,EAAKwH,aACLgD,GAAY,GACHxK,EAAKzoB,MAAM4yB,UAAYnK,EAAKoK,cAAgBpK,EAAK3S,eAC1D2S,EAAKoK,gBACLI,GAAY,IAKZA,GAAaD,GAAS,GACxBvK,EAAKzoB,MAAQ,KACbkzB,WAAWxgC,EAAMsgC,IAEjBtgC,GAEJ,GACF,IAEAygC,UAAU,IAAIpZ,GAAqBoU,mBAAkB,SAASC,GAC5DA,EAAI,qBAAsB,cAAe3rB,EAAI8M,KAAK6jB,kBAClDhF,EAAI,qBAAsB,eAAgB3rB,EAAI8M,KAAK6jB,kBAEnDhF,EAAI,kBAAmB,aAAa,SAAyBz7B,GAO3D,GAAiB,oBAAbA,EAAIihB,MANR,SAAoBjhB,GAClB,MAAqB,cAAdA,EAAI0gC,OACY,kBAAd1gC,EAAI0gC,OAC4B,oBAAhC5wB,EAAI8M,KAAK+jB,oBAChB,CAAC,aAAc,cAAchiC,QAAQmR,EAAI8M,KAAK+jB,mBAAmB3gC,EAAI0gC,QAAU,EACnF,CACsCE,CAAW5gC,GAAM,CACrD,IAAIkhB,EAAU,uBAAyBlhB,EAAI8+B,SAAW,cAAiB9+B,EAAI6gC,KACzE,gDAAmD7gC,EAAI2iB,OACvD,YACF7K,KAAKmY,SAAS5iB,MAAQyC,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAM+e,GAAU,CACvDD,KAAM,kBACN0B,OAAQ3iB,EAAI2iB,OACZmc,SAAU9+B,EAAI8+B,SACd5O,WAAW,EACX4Q,cAAe9gC,GAEnB,CACF,GACF,IAEA+gC,QAAQ,IAAI3Z,GAAqBoU,mBAAkB,SAASC,GAC1DA,EAAI,cAAe,YAAY,SAAqB3F,GAClD,IAAIN,EAAMM,EAAKtI,QACX5K,EAAS4S,EAAIhM,QAAQnE,OAAOzC,OAChC,GAAKA,EAAL,CA8DA,IAAIoe,EA1BJ,WACE,IACIC,GADOnL,EAAKtI,QAAQhE,QAAQiU,uBAAuBzV,UACnCwN,EAAI0L,UAAUlZ,WAAa,IAC3CmZ,IAAOve,EAAOwe,MACdC,EAASvL,EAAKtF,aAAaC,WAC3B6Q,EAAiB9L,EAAItM,OAEvBsM,EAAIhM,QAAQiE,IAAIE,YACZ6H,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,YAC/B8L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAAWxR,QAG9CopB,EAAiBC,EADA/L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAAWxR,MACXsd,EAAItM,SAEtD,IAAIA,EAASrZ,EAAAA,OAAAA,QAAwByxB,GAAgB,EAAM,MACvDpgB,EAAU,GAQd,OAPIigB,IAAMjgB,GAAW,YACrBA,GAAW,QAAUsU,EAAIhM,QAAQuH,kBAAoB,IAAMsQ,EAC3DngB,GAAW,IAAM+f,EAAM5gC,WAAa,KAAOy1B,EAAKwH,WAAa,YACzD6D,IAAMjgB,GAAW,aACrBA,GAAW,IAAMpR,EAAI8M,KAAKja,OAAO6+B,WAAWhM,EAAI9L,WAChDxI,GAAW,IAAMgI,EAAS,IACtBiY,IAAMjgB,GAAW,WACdA,CACT,CAEWugB,GACe,oBAAf7e,EAAO8e,IAChB9e,EAAO8e,IAAIV,GACsB,oBAAjBpe,EAAOzH,OACvByH,EAAOzH,MAAM6lB,EAAO,KAlEH,CACnB,SAASO,EAAmBzR,EAAYxsB,GACtC,IAAKA,EACH,OAAOA,EAET,GAAIwsB,EAAW6R,YACb,MAAO,6BAET,OAAQ7R,EAAWrkB,MACjB,IAAK,YACH,IAAI0rB,EAAS,CAAC,EAQd,OAPArnB,EAAI8M,KAAK+D,KAAKrd,GAAO,SAASs+B,EAAcC,GACtCnlC,OAAO0B,UAAU4C,eAAejC,KAAK+wB,EAAW9B,QAAS4T,GAC3DzK,EAAOyK,GAAgBL,EAAmBzR,EAAW9B,QAAQ4T,GAAeC,GAE5E1K,EAAOyK,GAAgBC,CAE3B,IACO1K,EACT,IAAK,OACH,IAAIrE,EAAO,GAIX,OAHAhjB,EAAI8M,KAAK2L,UAAUjlB,GAAO,SAASu+B,EAAUnV,GAC3CoG,EAAK71B,KAAKskC,EAAmBzR,EAAWsH,OAAQyK,GAClD,IACO/O,EACT,IAAK,MACH,IAAIL,EAAM,CAAC,EAIX,OAHA3iB,EAAI8M,KAAK+D,KAAKrd,GAAO,SAAS5F,EAAKW,GACjCo0B,EAAI/0B,GAAO6jC,EAAmBzR,EAAWzxB,MAAOA,EAClD,IACOo0B,EACT,QACE,OAAOnvB,EAEb,CAkCF,GACF,IAEAgjB,MAAM,IAAIc,GAAqBoU,mBAAkB,SAASC,GACxD,IAAIrlB,EAAMvG,EAAQ,MAClB4rB,EAAI,QAAS,QAASrlB,EAAI0rB,cAC1BrG,EAAI,eAAgB,cAAerlB,EAAI2rB,aACvCtG,EAAI,gBAAiB,eAAgBrlB,EAAI4rB,aAC3C,IAEAxb,MAAM,IAAIY,GAAqBoU,mBAAkB,SAASC,GACxD,IAAIrlB,EAAMvG,EAAQ,OAClB4rB,EAAI,QAAS,QAASrlB,EAAI0rB,cAC1BrG,EAAI,eAAgB,cAAerlB,EAAI2rB,aACvCtG,EAAI,gBAAiB,eAAgBrlB,EAAI4rB,aAC3C,IAEAvb,UAAU,IAAIW,GAAqBoU,mBAAkB,SAASC,GAC5D,IAAIrlB,EAAMvG,EAAQ,OAClB4rB,EAAI,QAAS,QAASrlB,EAAI0rB,cAC1BrG,EAAI,eAAgB,cAAerlB,EAAI2rB,aACvCtG,EAAI,gBAAiB,eAAgBrlB,EAAI4rB,cACzCvG,EAAI,uBAAwB,aAAcrlB,EAAI6rB,mBAChD,IAEAvb,SAAS,IAAIU,GAAqBoU,mBAAkB,SAASC,GAC3D,IAAIrlB,EAAMvG,EAAQ,OAClB4rB,EAAI,QAAS,QAASrlB,EAAI0rB,cAC1BrG,EAAI,eAAgB,cAAerlB,EAAI2rB,aACvCtG,EAAI,gBAAiB,eAAgBrlB,EAAI4rB,aAC3C,IAEAzb,OAAO,IAAIa,GAAqBoU,mBAAkB,SAASC,GACzD,IAAIrlB,EAAMvG,EAAQ,OAClB4rB,EAAI,QAAS,QAASrlB,EAAI0rB,cAC1BrG,EAAI,eAAgB,cAAerlB,EAAI2rB,aACvCtG,EAAI,gBAAiB,eAAgBrlB,EAAI4rB,aAC3C,sBC3tBF,IAAIlyB,EAAMD,EAAQ,OACd+N,EAAU9N,EAAI8M,KAAKgB,QAgCvB9N,EAAIkwB,SAAWpiB,EAAQ,CASrBzf,YAAa,SAAkB4kB,EAAUsC,GAGvC,GAFAvV,EAAI8M,KAAK0K,eAAexP,KAAM,CAAC,UAAW,OAAQ,OAAQ,SAAU,UAE5C,qBAAbiL,GAAyC,OAAbA,EACrC,MAAM,IAAI5gB,MAAM,qBAAuB4gB,GAClC,GAAwB,kBAAbA,EAChB,OAAOjT,EAAI8M,KAAKgI,KAAK7B,GAGlBA,EAAS/E,MAAM,WAGlB+E,IAFasC,QAAgCxe,IAAtBwe,EAAOhC,WAC5BgC,EAAOhC,WAAavT,EAAIuV,OAAOhC,YACZ,QAAU,QAAU,MAAQN,GAGnDjT,EAAI8M,KAAK/T,OAAOiP,KAAMhI,EAAI8M,KAAKslB,SAASnf,IAGpCjL,KAAK+oB,KACP/oB,KAAK+oB,KAAOhI,SAAS/gB,KAAK+oB,KAAM,IAEhC/oB,KAAK+oB,KAAyB,WAAlB/oB,KAAKqqB,SAAwB,IAAM,EAEnD,IAwBFryB,EAAIutB,YAAczf,EAAQ,CAKxBzf,YAAa,SAAqB4kB,EAAUJ,GAC1CI,EAAW,IAAIjT,EAAIkwB,SAASjd,GAC5BjL,KAAKsqB,OAAS,OACdtqB,KAAK0H,KAAOuD,EAASvD,MAAQ,IAC7B1H,KAAKwY,QAAU,CAAC,EAChBxY,KAAKigB,KAAO,GACZjgB,KAAKiL,SAAWA,EAChBjL,KAAK6K,OAASA,EACd7K,KAAKuqB,WAAa,GAClBvqB,KAAKwqB,cACP,EAKAA,aAAc,WACZxqB,KAAKuqB,WAAavqB,KAAKwY,QAAQxY,KAAKyqB,0BAA4BzyB,EAAI8M,KAAK4lB,WAC3E,EAEAD,uBAAwB,WAEtB,OADazyB,EAAI8M,KAAKO,YAAc,SAAW,IAC/B,YAClB,EAKA4U,kBAAmB,SAA2B0Q,GAChB,kBAAjBA,GAA6BA,IACtC3qB,KAAKuqB,YAAc,IAAMI,GAE3B3qB,KAAKwY,QAAQxY,KAAKyqB,0BAA4BzqB,KAAKuqB,UACrD,EAKAK,aAAc,WACZ,OAAO5qB,KAAKuqB,UACd,EAMAM,SAAU,WACR,OAAO7qB,KAAK0H,KAAKJ,MAAM,IAAK,GAAG,EACjC,EAKAgB,OAAQ,WACN,IAAIC,EAAQvI,KAAK0H,KAAKJ,MAAM,IAAK,GAAG,GACpC,OAAIiB,GACFA,EAAQvQ,EAAI8M,KAAKgmB,iBAAiBviB,GAC3BvQ,EAAI8M,KAAKimB,oBAAoBxiB,IAE/B,EACT,EAMAwO,eAAgB,SAAwBiU,GACtC,IAAIC,EAAc,IAAIjzB,EAAIkwB,SAAS8C,GACnChrB,KAAKiL,SAAWggB,EAChBjrB,KAAK0H,KAAOujB,EAAYvjB,MAAQ,IAC5B1H,KAAKwY,QAAc,OACrBxY,KAAKwY,QAAc,KAAIyS,EAAY9F,KAEvC,IAoBFntB,EAAIkzB,aAAeplB,EAAQ,CAKzBzf,YAAa,WACX2Z,KAAK2Y,gBAAa5pB,EAClBiR,KAAKwY,QAAU,CAAC,EAChBxY,KAAKigB,UAAOlxB,EACZiR,KAAKymB,WAAY,EACjBzmB,KAAK2f,OAAS,IAChB,EAuBAwL,uBAAwB,WAEtB,OADAnrB,KAAKymB,WAAY,EACVzmB,KAAK2f,MACd,IAIF3nB,EAAI0uB,WAAa5gB,EAAQ,CAAC,GAK1B9N,EAAI0uB,WAAWS,YAAc,WAI3B,YAHuBp4B,IAAnBiR,KAAKorB,YACPprB,KAAKorB,UAAY,IAAIprB,MAEhBA,KAAKorB,SACd,mBC7OA,IAAIpzB,EAAMD,EAAQ,OACdszB,EAAetzB,EAAAA,OAAAA,aACnBA,EAAQ,OAKRC,EAAIszB,UAAYtzB,EAAI8M,KAAKgB,QAAQ,CAC/BshB,cAAe,SAAuBtQ,EAAa5L,EAAatD,EAAU2jB,GACxE,IAAIhtB,EAAOyB,KACPiL,EAAW6L,EAAY7L,SACvBugB,EAAU,IAAIH,EACdI,EAAOxgB,EAASof,SAAW,KAAOpf,EAAS+b,SACzB,KAAlB/b,EAAS8d,MAAiC,MAAlB9d,EAAS8d,OACnC0C,GAAQ,IAAMxgB,EAAS8d,MAEzB0C,GAAQ3U,EAAYpP,KAEpB,IAAIgkB,EAAM,IAAIC,eAAkBC,GAAiB,EACjD9U,EAAY6I,OAAS+L,EAErBA,EAAIG,iBAAiB,oBAAoB,WACvC,IACE,GAAmB,IAAfH,EAAInC,OAAc,MACxB,CAAE,MAAOhzB,GAAK,MAAQ,CAElByJ,KAAK8rB,YAAc9rB,KAAK+rB,mBAAqBH,IAC/CJ,EAAQ7S,WAAa+S,EAAInC,OACzBiC,EAAQhT,QAAUja,EAAK8jB,aAAaqJ,EAAIM,yBACxCR,EAAQhF,KACN,UACAgF,EAAQ7S,WACR6S,EAAQhT,QACRkT,EAAIO,YAENL,GAAiB,GAEf5rB,KAAK8rB,aAAe9rB,KAAKksB,MAC3B3tB,EAAK4tB,cAAcT,EAAKF,EAE5B,IAAG,GACHE,EAAIU,OAAOP,iBAAiB,YAAY,SAAUQ,GAChDb,EAAQhF,KAAK,eAAgB6F,EAC/B,IACAX,EAAIG,iBAAiB,YAAY,SAAUQ,GACzCb,EAAQhF,KAAK,kBAAmB6F,EAClC,IAAG,GACHX,EAAIG,iBAAiB,WAAW,WAC9BN,EAAYvzB,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAM,WAAY,CAAC8e,KAAM,iBAC1D,IAAG,GACHuiB,EAAIG,iBAAiB,SAAS,WAC5BN,EAAYvzB,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAM,mBAAoB,CACvD8e,KAAM,oBAEV,IAAG,GACHuiB,EAAIG,iBAAiB,SAAS,WAC5BN,EAAYvzB,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAM,mBAAoB,CACvD8e,KAAM,wBAEV,IAAG,GAEHvB,EAAS4jB,GACTE,EAAIY,KAAKxV,EAAYwT,OAAQmB,GAA+B,IAAzBvgB,EAAYqhB,UAC/Cv0B,EAAI8M,KAAK+D,KAAKiO,EAAY0B,SAAS,SAAU5yB,EAAKW,GACpC,mBAARX,GAAoC,eAARA,GAAgC,SAARA,GACtD8lC,EAAIc,iBAAiB5mC,EAAKW,EAE9B,IAEI2kB,EAAYC,UAAoC,IAAzBD,EAAYqhB,WACrCb,EAAIvgB,QAAUD,EAAYC,SAGxBD,EAAYuhB,qBACdf,EAAIgB,iBAAkB,GAExB,IAAMhB,EAAIiB,aAAe,aAAe,CAAE,MAAOp2B,GAAI,CAErD,IACMugB,EAAYmJ,KACdyL,EAAI9T,KAAKd,EAAYmJ,MAErByL,EAAI9T,MAER,CAAE,MAAO1vB,GACP,IAAI4uB,EAAYmJ,MAA2C,kBAA5BnJ,EAAYmJ,KAAKtgB,OAG9C,MAAMzX,EAFNwjC,EAAI9T,KAAKd,EAAYmJ,KAAKtgB,OAI9B,CAEA,OAAO6rB,CACT,EAEAnJ,aAAc,SAAsBuK,GAClC,IAAIpU,EAAU,CAAC,EAMf,OALAxgB,EAAI8M,KAAK2L,UAAUmc,EAAWtlB,MAAM,UAAU,SAAU4hB,GACtD,IAAItjC,EAAMsjC,EAAK5hB,MAAM,IAAK,GAAG,GACzB/gB,EAAQ2iC,EAAK2D,UAAUjnC,EAAIH,OAAS,GACpCG,EAAIH,OAAS,IAAG+yB,EAAQ5yB,EAAIkZ,eAAiBvY,EACnD,IACOiyB,CACT,EAEA2T,cAAe,SAAuBT,EAAKF,GACzC,IAAI7rB,EACJ,GAAyB,gBAArB+rB,EAAIiB,cAAkCjB,EAAIvT,SAAU,CACtD,IAAI2U,EAAKpB,EAAIvT,SACbxY,EAAS,IAAI3H,EAAI8M,KAAK7F,OAAO6tB,EAAGttB,YAEhC,IADA,IAAIutB,EAAO,IAAIrtB,WAAWotB,GACjBvnC,EAAI,EAAGA,EAAIoa,EAAOla,SAAUF,EACnCoa,EAAOpa,GAAKwnC,EAAKxnC,EAErB,CAEA,IACOoa,GAAsC,kBAArB+rB,EAAIsB,eACxBrtB,EAAS,IAAI3H,EAAI8M,KAAK7F,OAAOysB,EAAIsB,cAErC,CAAE,MAAOz2B,GAAI,CAEToJ,GAAQ6rB,EAAQhF,KAAK,OAAQ7mB,GACjC6rB,EAAQhF,KAAK,MACf,IAMFxuB,EAAI0uB,WAAWpgC,UAAY0R,EAAIszB,UAAUhlC,UAKzC0R,EAAI0uB,WAAWC,kBAAoB,mBCvInC,IAAI7hB,EAAO/M,EAAQ,OAEnB,SAASk1B,IAAgB,CAMzB,SAASlO,EAAUx4B,EAAOiF,GACxB,GAAKA,QAAmBuD,IAAVxI,GAAiC,OAAVA,EAErC,OAAQiF,EAAMmI,MACZ,IAAK,YAAa,OAOtB,SAA4ByrB,EAAW5zB,GACrC,GAAIA,EAAM0hC,WACR,OAAO9N,EAET,IAAIC,EAAS,CAAC,EAUd,OATAva,EAAK+D,KAAKuW,GAAW,SAAS32B,EAAMlC,GAClC,IAAI0vB,EAAczqB,EAAM0qB,QAAQztB,GAChC,GAAIwtB,EAAa,CACf,GAA6B,SAAzBA,EAAY/rB,SAAqB,OACrC,IAAIksB,EAAeH,EAAYI,eAAiBJ,EAAYxtB,KAAOA,EAC/D4G,EAAS0vB,EAAUx4B,EAAO0vB,QACflnB,IAAXM,IAAsBgwB,EAAOjJ,GAAgB/mB,EACnD,CACF,IACOgwB,CACT,CAtB6BL,CAAmBz4B,EAAOiF,GACnD,IAAK,MAAO,OAgChB,SAAsBmvB,EAAKnvB,GACzB,IAAI+W,EAAM,CAAC,EAKX,OAJAuC,EAAK+D,KAAK8R,GAAK,SAAS/0B,EAAKW,GAC3B,IAAI8I,EAAS0vB,EAAUx4B,EAAOiF,EAAMjF,YACrBwI,IAAXM,IAAsBkT,EAAI3c,GAAOyJ,EACvC,IACOkT,CACT,CAvCuB0c,CAAa14B,EAAOiF,GACvC,IAAK,OAAQ,OAsBjB,SAAuBwvB,EAAMxvB,GAC3B,IAAI+W,EAAM,GAKV,OAJAuC,EAAK2L,UAAUuK,GAAM,SAASz0B,GAC5B,IAAI8I,EAAS0vB,EAAUx4B,EAAOiF,EAAM8zB,aACrBvwB,IAAXM,GAAsBkT,EAAIpd,KAAKkK,EACrC,IACOkT,CACT,CA7BwB2c,CAAc34B,EAAOiF,GACzC,QAAS,OAuCb,SAAyBjF,EAAOiF,GAC9B,OAAOA,EAAM2hC,aAAa5mC,EAC5B,CAzCoB44B,CAAgB54B,EAAOiF,GAE3C,CAbAyhC,EAAY3mC,UAAU8mC,MAAQ,SAAS7mC,EAAOiF,GAC5C,OAAOkb,KAAKC,UAAUoY,EAAUx4B,EAAOiF,GACzC,EAuDAkN,EAAOpU,QAAU2oC,mBC7DjB,IAAInoB,EAAO/M,EAAQ,OAEnB,SAASs1B,IAAe,CAMxB,SAAStO,EAAUx4B,EAAOiF,GACxB,GAAKA,QAAmBuD,IAAVxI,EAEd,OAAQiF,EAAMmI,MACZ,IAAK,YAAa,OAOtB,SAA4ByrB,EAAW5zB,GACrC,GAAiB,MAAb4zB,EAAmB,OACvB,GAAI5zB,EAAM0hC,WAAY,OAAO9N,EAE7B,IAAIC,EAAS,CAAC,EACViO,EAAe9hC,EAAM0qB,QACrBqX,EAAuB/hC,EAAMmqB,KAAOnqB,EAAMmqB,IAAIwQ,mBAalD,OAZArhB,EAAK+D,KAAKykB,GAAc,SAAS7kC,EAAMwtB,GACrC,IAAIG,EAAeH,EAAYI,eAAiBJ,EAAYxtB,KAAOA,EACnE,GAAI7D,OAAO0B,UAAU4C,eAAejC,KAAKm4B,EAAWhJ,GAAe,CACjE,IACI/mB,EAAS0vB,EADDK,EAAUhJ,GACQH,QACflnB,IAAXM,IAAsBgwB,EAAO52B,GAAQ4G,EAC3C,MAAWk+B,GAAwBtX,EAAYtL,cACpB,SAArBsL,EAAYtiB,OACd0rB,EAAO52B,GAA4C,oBAA7BwtB,EAAYtL,aAA8BsL,EAAYtL,eAAiBsL,EAAYtL,aAG/G,IACO0U,CACT,CA3B6BL,CAAmBz4B,EAAOiF,GACnD,IAAK,MAAO,OAwChB,SAAsBmvB,EAAKnvB,GACzB,GAAW,MAAPmvB,EAAa,OAEjB,IAAIpY,EAAM,CAAC,EAMX,OALAuC,EAAK+D,KAAK8R,GAAK,SAAS/0B,EAAKW,GAC3B,IAAI8I,EAAS0vB,EAAUx4B,EAAOiF,EAAMjF,OACVgc,EAAI3c,QAAfmJ,IAAXM,EAAiC,KACrBA,CAClB,IACOkT,CACT,CAlDuB0c,CAAa14B,EAAOiF,GACvC,IAAK,OAAQ,OA2BjB,SAAuBwvB,EAAMxvB,GAC3B,GAAY,MAARwvB,EAAc,OAElB,IAAIzY,EAAM,GAMV,OALAuC,EAAK2L,UAAUuK,GAAM,SAASz0B,GAC5B,IAAI8I,EAAS0vB,EAAUx4B,EAAOiF,EAAM8zB,aACrBvwB,IAAXM,EAAsBkT,EAAIpd,KAAK,MAC9Bod,EAAIpd,KAAKkK,EAChB,IACOkT,CACT,CArCwB2c,CAAc34B,EAAOiF,GACzC,QAAS,OAkDb,SAAyBjF,EAAOiF,GAC9B,OAAOA,EAAM+zB,OAAOh5B,EACtB,CApDoB44B,CAAgB54B,EAAOiF,GAE3C,CAbA6hC,EAAW/mC,UAAUmhB,MAAQ,SAASlhB,EAAOiF,GAC3C,OAAOuzB,EAAUrY,KAAKe,MAAMlhB,GAAQiF,EACtC,EAkEAkN,EAAOpU,QAAU+oC,YCxEjB,IAAIG,EAAU,CACZ,8DACA,wEACA,+DACA,iEACAlZ,KAAK,MAEP5b,EAAOpU,QAAU,CACfmpC,UAAU,GAmCZhF,YAAW,WACJ/vB,EAAOpU,QAAQmpC,UA3BG,qBAAZhoB,UAMgC,oBAAlCA,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYioB,mBACsC,IAAzDjoB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYioB,kBAAkB7mC,QAAQ,gBAO8B,oBAA7D4e,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYkoB,8CAKc,oBAAxBloB,QAAQmoB,aACjBnoB,QAAQmoB,YAAYJ,EAAS,CAC3B75B,KAAM,SASZ,GAAG,oBC/CH,IAAIk6B,EAAa91B,EAAQ,OACrBiX,EAAYjX,EAAQ,OACpBkX,EAAQlX,EAAQ,OAChBmX,EAAYnX,EAAQ,OACpBoX,EAAiBpX,EAAQ,OACzB+1B,EAAW/1B,EAAQ,OAEnB+M,EAAO/M,EAAQ,OACf2S,EAAW5F,EAAK4F,SAChB6E,EAAmBzK,EAAKyK,iBA+E5B7W,EAAOpU,QA7EP,SAAaqxB,EAAK1nB,GAChB,IAAIsQ,EAAOyB,KACX2V,EAAMA,GAAO,CAAC,GACd1nB,EAAUA,GAAW,CAAC,GACd0nB,IAAM3V,KAEd2V,EAAImY,SAAWnY,EAAImY,UAAY,CAAC,EAEhC,IAAI7U,EAAoBhrB,EAAQgrB,yBACzBhrB,EAAQgrB,kBAEfvO,EAAS1K,KAAM,SAAS,GAAM,GAC9B0K,EAAS1K,KAAM,aAAc2V,EAAImY,SAAS9iB,YAC1CN,EAAS1K,KAAM,iBAAkB2V,EAAImY,SAASC,gBAC9CrjB,EAAS1K,KAAM,cAAe2V,EAAImY,SAASE,aAC3CtjB,EAAS1K,KAAM,iBAAkB2V,EAAImY,SAASG,gBAC9CvjB,EAAS1K,KAAM,mBAAoB2V,EAAImY,SAAS3hB,kBAChDzB,EAAS1K,KAAM,cAAe2V,EAAImY,SAASI,aAC3CxjB,EAAS1K,KAAM,eAAgB2V,EAAImY,SAASK,cAC5CzjB,EAAS1K,KAAM,WAAY2V,EAAImY,SAASzD,UACxC3f,EAAS1K,KAAM,kBAAmB2V,EAAImY,SAASM,iBAC/C1jB,EAAS1K,KAAM,kBAAmB2V,EAAImY,SAASO,cAC/C3jB,EAAS1K,KAAM,eAAgB2V,EAAImY,SAASQ,qBAC5C5jB,EAAS1K,KAAM,WAAY2V,EAAImY,SAASS,iBACxC7jB,EAAS1K,KAAM,YAAa2V,EAAImY,SAAShY,WACrCmD,GAAqB6U,EAAS7U,IAC9BvO,EAAS1K,KAAM,oBAAqB8tB,EAAS7U,GAAmBuV,mBAAmB,GAGvFjf,EAAiBvP,KAAM,aAAa,WAClC,IAAIvX,EAAOktB,EAAImY,SAASQ,qBAAuB3Y,EAAImY,SAASS,gBAC5D,OAAK9lC,GAGQ,0BADbA,EAAOA,EAAKwd,QAAQ,+BAAgC,OACfxd,EAAO,OACrCA,GAJW,IAKpB,IAeAiiB,EAAS1K,KAAM,aAAc,IAAI6tB,EAAWlY,EAAIE,WAAY5nB,GAAS,SAASxF,EAAMmpB,GAClF,OAAO,IAAI5C,EAAUvmB,EAAMmpB,EAAW3jB,EACxC,GAAG6W,EAAKja,OAAO6+B,YAff,SAA8BjhC,EAAMmpB,IACE,IAAhCA,EAAU6c,mBACZ/jB,EAASnM,EAAM,oBAAqBuG,EAAKja,OAAO6+B,WAAWjhC,IAEzDmpB,EAAU8c,oBAAsBnwB,EAAKyb,8BACvCtP,EACEnM,EACA,gCACyC,IAAzCqT,EAAU8c,kBAAkB1Y,SAGlC,KAMAtL,EAAS1K,KAAM,SAAU,IAAI6tB,EAAWlY,EAAIgZ,OAAQ1gC,GAAS,SAASxF,EAAM+C,GAC1E,OAAOyjB,EAAM7Z,OAAO5J,EAAOyC,EAC7B,KAEAyc,EAAS1K,KAAM,aAAc,IAAI6tB,EAAWlY,EAAInd,WAAYvK,GAAS,SAASxF,EAAMmmC,GAClF,OAAO,IAAI1f,EAAUzmB,EAAMmmC,EAAW3gC,EACxC,KAEAyc,EAAS1K,KAAM,UAAW,IAAI6tB,EAAWlY,EAAIld,QAASxK,GAAS,SAASxF,EAAMomC,GAC5E,OAAO,IAAI1f,EAAe1mB,EAAMomC,EAAQ5gC,EAC1C,GAAG6W,EAAKja,OAAO6+B,aAEXz7B,EAAQ6gC,gBACVpkB,EAAS1K,KAAM,gBAAiB2V,EAAImZ,eACpCpkB,EAAS1K,KAAM,mBAAoB2V,EAAIoZ,mBAEzCrkB,EAAS1K,KAAM,qBAAsB2V,EAAImY,SAAS3H,mBACpD,mBCnFA,IAAI5W,EAAmBxX,EAAAA,OAAAA,iBAEvB,SAASi3B,EAAQvmC,EAAMlC,EAAOuR,EAASm3B,GACrC1f,EAAiBvP,KAAMivB,EAAOxmC,IAAO,WACnC,OAAOqP,EAAQrP,EAAMlC,EACvB,GACF,CAiBAmS,EAAOpU,QAfP,SAAoB4qC,EAAUjhC,EAAS6J,EAASm3B,EAAQrnB,GAItD,IAAK,IAAI9T,KAHTm7B,EAASA,GAAU3Y,OAGJ4Y,EACTtqC,OAAO0B,UAAU4C,eAAejC,KAAKioC,EAAUp7B,KACjDk7B,EAAQ/nC,KAJD+Y,KAIYlM,EAAIo7B,EAASp7B,GAAKgE,EAASm3B,GAC1CrnB,GAAUA,EAAS9T,EAAIo7B,EAASp7B,IAG1C,mBClBA,IAAImb,EAAQlX,EAAQ,OAEhB+M,EAAO/M,EAAQ,OACf2S,EAAW5F,EAAK4F,SAChB6E,EAAmBzK,EAAKyK,iBAkH5B7W,EAAOpU,QAhHP,SAAmBmE,EAAMmpB,EAAW3jB,GAClC,IAAIsQ,EAAOyB,KACX/R,EAAUA,GAAW,CAAC,EAEtByc,EAAS1K,KAAM,OAAQ4R,EAAUnpB,MAAQA,GACzCiiB,EAAS1K,KAAM,MAAO/R,EAAQ0nB,KAAK,GAEnC/D,EAAUsV,KAAOtV,EAAUsV,MAAQ,CAAC,EACpCxc,EAAS1K,KAAM,WAAY4R,EAAU3G,UACrCP,EAAS1K,KAAM,aAAc4R,EAAUsV,KAAKoD,QAAU,QACtD5f,EAAS1K,KAAM,WAAY4R,EAAUsV,KAAKiI,YAAc,KACxDzkB,EAAS1K,KAAM,WAAY4R,EAAU4R,UAAY,IACjD9Y,EACE1K,KACA,4BACA4R,EAAU8c,kBACP9c,EAAU8c,kBAAkB1Y,SAAW,WAAa,WACvD,QAKF,IAAIwO,EAAuB5S,EAAU4S,sBAC/B5S,EAAUwd,cAAgBxd,EAAUwd,aAAaC,wBACvD3kB,EAAS1K,KAAM,uBAAwBwkB,GAAsB,GAE7DjV,EAAiBvP,KAAM,SAAS,WAC9B,OAAK4R,EAAUxR,MAGR6O,EAAM7Z,OAAOwc,EAAUxR,MAAOnS,GAF5B,IAAIghB,EAAM7Z,OAAO,CAACzB,KAAM,aAAc1F,EAGjD,IAEAshB,EAAiBvP,KAAM,UAAU,WAC/B,OAAK4R,EAAUmK,OAGR9M,EAAM7Z,OAAOwc,EAAUmK,OAAQ9tB,GAF7B,IAAIghB,EAAM7Z,OAAO,CAACzB,KAAM,aAAc1F,EAGjD,IAEAshB,EAAiBvP,KAAM,UAAU,WAC/B,IAAIgb,EAAO,GACX,IAAKpJ,EAAU0d,OAAQ,OAAO,KAE9B,IAAK,IAAI/pC,EAAI,EAAGA,EAAIqsB,EAAU0d,OAAO7pC,OAAQF,IAC3Cy1B,EAAK71B,KAAK8pB,EAAM7Z,OAAOwc,EAAU0d,OAAO/pC,GAAI0I,IAG9C,OAAO+sB,CACT,IAEAzL,EAAiBvP,KAAM,aAAa,WAClC,OAAO/R,EAAQ0nB,IAAInd,WAAW/P,EAChC,IAEIwF,EAAQ6gC,gBACVpkB,EAAS1K,KAAM,gBAAiB4R,EAAUkd,eAC1CpkB,EAAS1K,KAAM,mBAAoB4R,EAAUmd,mBAI/Cxf,EAAiBvP,KAAM,qBAAqB,WAC1C,IAAIgkB,EAAoB,GACpB5jB,EAAQ7B,EAAK6B,MACb8V,EAAU9V,EAAM8V,QACpB,IAAK9V,EAAM8V,QACT,OAAO8N,EAET,IAAK,IAAIv7B,KAAQytB,EACVA,EAAQhtB,eAAeT,KAGO,IAA/BytB,EAAQztB,GAAM8mC,cAChBvL,EAAkB7+B,KAAKsD,GAG3B,OAAOu7B,CACT,IAEAzU,EAAiBvP,KAAM,kBAAkB,WAEvC,OAIJ,SAAwBwvB,GACtB,IAAItZ,EAAUsZ,EAActZ,QACxBuZ,EAAUD,EAAcC,QAE5B,IAAKD,EAActZ,QACjB,OAAO,EAGT,GAAIuZ,EAAS,CAEX,OADoBvZ,EAAQuZ,GACPC,aACvB,CAGA,IAAK,IAAIjnC,KAAQytB,EACf,IAAKA,EAAQhtB,eAAeT,KACU,IAAhCytB,EAAQztB,GAAMinC,cAChB,OAAO,EAIb,OAAO,CACT,CA1BWC,CADMpxB,EAAKwd,OAEpB,GACF,mBCzFA,IAAIrR,EAAW3S,EAAAA,OAAAA,SAafW,EAAOpU,QAXP,SAAmBmE,EAAMmmC,GACvBlkB,EAAS1K,KAAM,aAAc4uB,EAAUgB,aACvCllB,EAAS1K,KAAM,WAAY4uB,EAAUiB,WACrCnlB,EAAS1K,KAAM,cAAe4uB,EAAUkB,cACxCplB,EAAS1K,KAAM,cAAe4uB,EAAUmB,cACxCrlB,EAAS1K,KAAM,YAAa4uB,EAAUoB,WACxC,mBCRA,IAAIlrB,EAAO/M,EAAQ,OACf2S,EAAW5F,EAAK4F,SA+BpBhS,EAAOpU,QA7BP,SAAwBmE,EAAMomC,EAAQ5gC,GACpCA,EAAUA,GAAW,CAAC,EACtByc,EAAS1K,KAAM,OAAQvX,GACvBiiB,EAAS1K,KAAM,MAAO/R,EAAQ0nB,KAAK,GAE/BkZ,EAAOjd,WACTlH,EAAS1K,KAAM,YAAa8E,EAAKja,OAAO6+B,WAAWmF,EAAOjd,YAG5D,IAAIrT,EAAOyB,KACA,CACT,OACA,cACA,QACA,cACA,aAGGra,SAAQ,SAASC,GACpB,IAAIW,EAAQsoC,EAAOjpC,GACfW,GACFmkB,EAASnM,EAAM3Y,EAAKW,EAExB,GACF,mBC3BA,IAAIsnC,EAAa91B,EAAQ,OAErB+M,EAAO/M,EAAQ,OAEnB,SAAS2S,EAASxkB,EAAKuC,EAAMlC,GACb,OAAVA,QAA4BwI,IAAVxI,GACpBue,EAAK4F,SAAStlB,MAAM4a,KAAMxa,UAE9B,CAEA,SAAS+pB,EAAiBrpB,EAAKuC,GACxBvC,EAAIG,YAAYC,UAAUmC,IAC7Bqc,EAAKyK,iBAAiBnqB,MAAM4a,KAAMxa,UAEtC,CAEA,SAASypB,EAAMzjB,EAAOyC,EAASgiC,GAC7BhiC,EAAUA,GAAW,CAAC,EAEtByc,EAAS1K,KAAM,QAASxU,EAAMA,OAC9Bkf,EAAS1K,KAAM,MAAO/R,EAAQ0nB,KAAK,GACnCjL,EAAS1K,KAAM,OAAQxU,EAAMmI,MAC7B+W,EAAS1K,KAAM,OAAQxU,EAAM0kC,MAC7BxlB,EAAS1K,KAAM,MAAOxU,EAAM2kC,KAC5BzlB,EAAS1K,KAAM,MAAOxU,EAAM4kC,KAC5B1lB,EAAS1K,KAAM,UAAWxU,EAAM6kC,SAChC3lB,EAAS1K,KAAM,WAAYxU,EAAMtB,UAAY8V,KAAK9V,UAAY,QAC9DwgB,EAAS1K,KAAM,OAAQA,KAAKvX,MAAQ+C,EAAM8kC,SAAW9kC,EAAM+kC,WACzD/kC,EAAM4qB,cAAgB6Z,GACxBvlB,EAAS1K,KAAM,cAAexU,EAAMi7B,WAAazmB,KAAKilB,cAAe,GACrEva,EAAS1K,KAAM,iBAAkBxU,EAAM05B,gBAAgB,GACvDxa,EAAS1K,KAAM,cAAexU,EAAMglC,cAAe,GACnD9lB,EAAS1K,KAAM,WAAW,GAAM,GAChC0K,EAAS1K,KAAM,cAAekZ,QAAQ1tB,EAAM+kC,YAAY,GACxD7lB,EAAS1K,KAAM,iBAAkBkZ,QAAQ1tB,EAAM4qB,eAAe,GAC9D1L,EAAS1K,KAAM,gBAA2C,IAA3BxU,EAAMilC,kBACrC/lB,EAAS1K,KAAM,eAAmC,IAApBxU,EAAMklC,WACpChmB,EAAS1K,KAAM,eAAmC,IAApBxU,EAAMmlC,WAAsBnlC,EAAMlF,YAA2C,IAA9BkF,EAAMlF,UAAUqqC,WAC7FjmB,EAAS1K,KAAM,gBAAiBkZ,QAAQ1tB,EAAMolC,cAAc,GAC5DlmB,EAAS1K,KAAM,UAAWkZ,QAAQ1tB,EAAMK,QAAQ,GAChD6e,EAAS1K,KAAM,iBAAkBkZ,QAAQ1tB,EAAMqlC,eAAe,GAC9DnmB,EAAS1K,KAAM,gBAAiBkZ,QAAQ1tB,EAAMslC,cAAc,GAC5DpmB,EAAS1K,KAAM,uBAAwBkZ,QAAQ1tB,EAAM4iC,kBAAoB5iC,EAAMlF,YAAsD,IAAzCkF,EAAMlF,UAAUyqC,sBAA+B,GAC3IrmB,EAAS1K,KAAM,sBAAuBkZ,QAAQ1tB,EAAMwlC,sBAAsB,GAC1EtmB,EAAS1K,KAAM,YAAakZ,QAAQ1tB,EAAMylC,YAAY,GAElDhjC,EAAQ6gC,gBACVpkB,EAAS1K,KAAM,gBAAiBxU,EAAMsjC,eACtCpkB,EAAS1K,KAAM,mBAAoBxU,EAAMujC,mBAGvCvjC,EAAM0lC,cACRxmB,EAAS1K,KAAM,iBAAkBxU,EAAM0lC,eAAgB,GAIzDxmB,EAAS1K,KAAM,eAAgB,MAC/BA,KAAKmtB,aAAe,SAAS5mC,GAC3B,OAAc,OAAVA,QAA4BwI,IAAVxI,EAA4B,GAC3CA,CACT,EACAyZ,KAAKuf,OAAS,SAASh5B,GAAS,OAAOA,CAAO,CAChD,CAqFA,SAAS4qC,EAAe3lC,GACtByjB,EAAM7pB,MAAM4a,KAAMxa,WAClBklB,EAAS1K,KAAM,eAAe,GAE1BxU,EAAM4lC,WACR1mB,EAAS1K,KAAM,YAAaxU,EAAM4lC,YAAa,EAEnD,CAEA,SAASC,EAAe7lC,EAAOyC,GAC7B,IAAIsQ,EAAOyB,KACPsxB,EAAc,KAAMC,GAAavxB,KAAKwxB,QAE1CL,EAAe/rC,MAAM4a,KAAMxa,WAEvB+rC,IACF7mB,EAAS1K,KAAM,gBAAgB,WAAa,MAAO,CAAC,CAAG,IACvD0K,EAAS1K,KAAM,UAAW,CAAC,GAC3B0K,EAAS1K,KAAM,cAAe,IAC9B0K,EAAS1K,KAAM,WAAY,IAC3B0K,EAAS1K,KAAM,cAAc,WAAa,OAAO,CAAO,IACxD0K,EAAS1K,KAAM,aAAckZ,QAAQ1tB,EAAMimC,YAGzCjmC,EAAM0qB,UACRxL,EAAS1K,KAAM,UAAW,IAAI6tB,EAAWriC,EAAM0qB,QAASjoB,GAAS,SAASxF,EAAM62B,GAC9E,OAAOrQ,EAAM7Z,OAAOkqB,EAAQrxB,EAASxF,EACvC,KACA8mB,EAAiBvP,KAAM,eAAe,WACpC,OAAOxU,EAAMkmC,UAAY9sC,OAAOD,KAAK6G,EAAM0qB,QAC7C,IAEI1qB,EAAMK,QACR0jB,EAAiBvP,KAAM,0BAA0B,WAI/C,IAHA,IAAIkW,EAAU3X,EAAK2X,QACfyb,EAAcpzB,EAAKozB,YAEdpsC,EAAI,EAAG0+B,EAAO0N,EAAYlsC,OAAQF,EAAI0+B,EAAM1+B,IACnD,GAAI2wB,EAAQyb,EAAYpsC,IAAIqsC,eAC1B,OAAOD,EAAYpsC,EAGzB,IAEAgqB,EAAiBvP,KAAM,0BAA0B,WAK/C,IAJA,IAAIkW,EAAU3X,EAAK2X,QACfyb,EAAcpzB,EAAKozB,YACnBjQ,EAAyB,GAEpBn8B,EAAI,EAAG0+B,EAAO0N,EAAYlsC,OAAQF,EAAI0+B,EAAM1+B,IAC/C2wB,EAAQyb,EAAYpsC,IAAIssC,eAC1BnQ,EAAuBv8B,KAAKwsC,EAAYpsC,IAG5C,OAAOm8B,CACT,MAIAl2B,EAAMwqB,WACRtL,EAAS1K,KAAM,WAAYxU,EAAMwqB,UACjCtL,EAAS1K,KAAM,cAAc,SAASvX,GACpC,IAAK6oC,EAAa,CAChBA,EAAc,CAAC,EACf,IAAK,IAAI/rC,EAAI,EAAGA,EAAIiG,EAAMwqB,SAASvwB,OAAQF,IACzC+rC,EAAY9lC,EAAMwqB,SAASzwB,KAAM,CAErC,CAEA,OAAO+rC,EAAY7oC,EACrB,IAAG,GAAO,IAGZiiB,EAAS1K,KAAM,gBAAiBxU,EAAMsmC,eAAiB,MAEnDtmC,EAAMikC,SACR/kB,EAAS1K,KAAM,UAAWxU,EAAMikC,SAGA,kBAAvBjkC,EAAM6iC,aACf3jB,EAAS1K,KAAM,kBAAmBxU,EAAM6iC,cACD,kBAAvB7iC,EAAM6iC,eACtB3jB,EAAS1K,KAAM,qBAAsBxU,EAAM6iC,aAAa0D,QACxDrnB,EAAS1K,KAAM,kBAAmBxU,EAAM6iC,aAAa2D,KAEzD,CAEA,SAASC,EAAUzmC,EAAOyC,GACxB,IAAIsQ,EAAOyB,KAAMuxB,GAAavxB,KAAKwxB,QAanC,GAZAL,EAAe/rC,MAAM4a,KAAMxa,WAEvB+rC,GACF7mB,EAAS1K,KAAM,gBAAgB,WAAa,MAAO,EAAI,IAGrDxU,EAAM8zB,QACR/P,EAAiBvP,KAAM,UAAU,WAC/B,OAAOiP,EAAM7Z,OAAO5J,EAAM8zB,OAAQrxB,EACpC,IAGE+R,KAAKoxB,UAAW,CAClB,IAAIc,EAAUlyB,KAAKvX,KACnB8mB,EAAiBvP,KAAM,QAAQ,WAC7B,OAAOzB,EAAK+gB,OAAO72B,MAAQypC,CAC7B,GACF,CACF,CAEA,SAASC,EAAS3mC,EAAOyC,GACvB,IAAIsjC,GAAavxB,KAAKwxB,QACtBL,EAAe/rC,MAAM4a,KAAMxa,WAEvB+rC,IACF7mB,EAAS1K,KAAM,gBAAgB,WAAa,MAAO,CAAC,CAAG,IACvD0K,EAAS1K,KAAM,MAAOiP,EAAM7Z,OAAO,CAACzB,KAAM,UAAW1F,IACrDyc,EAAS1K,KAAM,QAASiP,EAAM7Z,OAAO,CAACzB,KAAM,UAAW1F,KAGrDzC,EAAM5F,KACR2pB,EAAiBvP,KAAM,OAAO,WAC5B,OAAOiP,EAAM7Z,OAAO5J,EAAM5F,IAAKqI,EACjC,IAEEzC,EAAMjF,OACRgpB,EAAiBvP,KAAM,SAAS,WAC9B,OAAOiP,EAAM7Z,OAAO5J,EAAMjF,MAAO0H,EACnC,GAEJ,CAwCA,SAASmkC,IACPnjB,EAAM7pB,MAAM4a,KAAMxa,WAElB,IAAI6sC,EAAoB,CAAC,WAAY,QAAS,OAC9CryB,KAAKuf,OAAS,SAASh5B,GAGrB,OAFAA,EAAQyZ,KAAK2V,KAAO0c,EAAkBxrC,QAAQmZ,KAAK2V,IAAI0U,WAAa,EAClE9jC,GAAS,GAAKA,EACZyZ,KAAKsyB,YACA5rB,KAAKe,MAAMlhB,GAGbA,GAAmC,oBAAnBA,EAAMgC,SAC3BhC,EAAMgC,WAAahC,CACvB,EAEAyZ,KAAKmtB,aAAe,SAAS5mC,GAC3B,OAAOyZ,KAAKsyB,YAAc5rB,KAAKC,UAAUpgB,GAASA,CACpD,CACF,CAsBA,SAASgsC,IACPtjB,EAAM7pB,MAAM4a,KAAMxa,WAClBwa,KAAKuf,OAAS,SAASh5B,GACrB,IAAIisC,EAAM1tB,EAAKc,OAAO6sB,OAAOlsC,GAC7B,GAAIyZ,KAAK6pB,aAAe/kB,EAAKQ,UAAyC,oBAAtBR,EAAK7F,OAAOyzB,MAAsB,CAQhF,IAAIC,EAAY7tB,EAAK7F,OAAOyzB,MAAMF,EAAI/sC,OAAQ+sC,GAC9CA,EAAII,KAAK,GACTJ,EAAMG,CACR,CACA,OAAOH,CACT,EACAxyB,KAAKmtB,aAAeroB,EAAKc,OAAOC,MAClC,CAEA,SAASgtB,IACPN,EAAYntC,MAAM4a,KAAMxa,UAC1B,CAEA,SAASstC,IACP7jB,EAAM7pB,MAAM4a,KAAMxa,WAElBwa,KAAKuf,OAAS,SAASh5B,GACrB,MAAqB,mBAAVA,EAA4BA,EACzB,OAAVA,QAA4BwI,IAAVxI,EAA4B,KACjC,SAAVA,CACT,CACF,CAlUA0oB,EAAM8jB,gBAAkB,CACtBC,UAAW,SACXC,OAAQ,QACRC,KAAM,UACNC,MAAO,UACPC,WAAY,UACZC,WAAY,QACZC,KAAM,UAMRrkB,EAAMwQ,MAAQ,CACZ,UAAa4R,EACb,KAAQY,EACR,IAAOE,EACP,QAAWW,EACX,UAiMF,SAAwBtnC,GACtB,IAAI+S,EAAOyB,KAGX,GAFAiP,EAAM7pB,MAAM4a,KAAMxa,WAEdgG,EAAM4iC,gBACR1jB,EAAS1K,KAAM,kBAAmBxU,EAAM4iC,sBACnC,GAAI7vB,EAAKwyB,sBAAwB/wB,KAAKouB,gBAC3C1jB,EAAS1K,KAAM,kBAAmBA,KAAKouB,sBAClC,GAAsB,WAAlBpuB,KAAK9V,SACdwgB,EAAS1K,KAAM,kBAAmB,eAC7B,GAAsB,gBAAlBA,KAAK9V,SACdwgB,EAAS1K,KAAM,kBAAmB,gBAC7B,GAAIA,KAAK2V,IACd,OAAQ3V,KAAK2V,IAAI0U,UACf,IAAK,OACL,IAAK,YACH3f,EAAS1K,KAAM,kBAAmB,iBAClC,MACF,IAAK,WACL,IAAK,QACL,IAAK,MACH0K,EAAS1K,KAAM,kBAAmB,WAKxCA,KAAKuf,OAAS,SAASh5B,GACrB,OAAc,OAAVA,QAA4BwI,IAAVxI,EAA4B,KACjB,oBAAtBA,EAAMgtC,YAAmChtC,EAC5B,kBAAVA,GAAuC,kBAAVA,EACpCue,EAAKkL,KAAKwjB,eAAejtC,GAAS,IAC3C,EAEAyZ,KAAKmtB,aAAe,SAAS5mC,GAC3B,OAAOue,EAAKkL,KAAKvH,OAAOliB,EAAOgY,EAAK6vB,gBACtC,CACF,EApOE,MA0PF,WACEnf,EAAM7pB,MAAM4a,KAAMxa,WAElBwa,KAAKuf,OAAS,SAASh5B,GACrB,OAAc,OAAVA,QAA4BwI,IAAVxI,EAA4B,KAC3CktC,WAAWltC,EACpB,EACAyZ,KAAKmtB,aAAentB,KAAKuf,MAC3B,EAjQE,QAmQF,WACEtQ,EAAM7pB,MAAM4a,KAAMxa,WAElBwa,KAAKuf,OAAS,SAASh5B,GACrB,OAAc,OAAVA,QAA4BwI,IAAVxI,EAA4B,KAC3Cw6B,SAASx6B,EAAO,GACzB,EACAyZ,KAAKmtB,aAAentB,KAAKuf,MAC3B,EA1QE,OAAU6S,EACV,OAAUS,EACV,OAAUN,GAGZtjB,EAAM7f,QAAU,SAAiB5D,EAAOyC,GACtC,GAAIzC,EAAMA,MAAO,CACf,IAAIkoC,EAAWzlC,EAAQ0nB,IAAIgZ,OAAOnjC,EAAMA,OACxC,IAAKkoC,EACH,MAAM,IAAIrpC,MAAM,gCAAkCmB,EAAMA,OAG1D,OAAOkoC,CACT,CACE,OAAO,IAEX,EAEAzkB,EAAM7Z,OAAS,SAAgB5J,EAAOyC,EAASgiC,GAC7C,GAAIzkC,EAAMgmC,QAAS,OAAOhmC,EAE1B,IAAIkoC,EAAWzkB,EAAM7f,QAAQ5D,EAAOyC,GACpC,GAAIylC,EAAU,CACZ,IAAIC,EAAe/uC,OAAOD,KAAK6G,GAC1ByC,EAAQ6gC,gBACX6E,EAAeA,EAAa5uC,QAAO,SAAS0D,GAC1C,OAAQA,EAAKyd,MAAM,gBACrB,KAIF,IAAI0tB,EAAc,WAChBF,EAASrtC,YAAYY,KAAK+Y,KAAMxU,EAAOyC,EAASgiC,EAClD,EAEA,OADA2D,EAAYttC,UAAYotC,EACjB,IAAIE,CACb,CAEOpoC,EAAMmI,OACLnI,EAAM0qB,QAAS1qB,EAAMmI,KAAO,YACvBnI,EAAM8zB,OAAQ9zB,EAAMmI,KAAO,OAC3BnI,EAAM5F,IAAK4F,EAAMmI,KAAO,MAC5BnI,EAAMmI,KAAO,UAIpB,IAAIkgC,EAAWroC,EAAMmI,KAKrB,GAJIsb,EAAM8jB,gBAAgBvnC,EAAMmI,QAC9BnI,EAAMmI,KAAOsb,EAAM8jB,gBAAgBvnC,EAAMmI,OAGvCsb,EAAMwQ,MAAMj0B,EAAMmI,MACpB,OAAO,IAAIsb,EAAMwQ,MAAMj0B,EAAMmI,MAAMnI,EAAOyC,EAASgiC,GAEnD,MAAM,IAAI5lC,MAAM,4BAA8BwpC,EAGpD,EAyPA5kB,EAAM0f,OAAS,CACb0C,eAAgBA,EAChBY,UAAWA,EACXE,SAAUA,EACVC,YAAaA,EACbU,aAAcA,EACdD,YAAaA,GAMfn6B,EAAOpU,QAAU2qB,mBCtZjB,IAAIjX,EAAMD,EAAQ,OAKlBC,EAAIssB,eAAiBtsB,EAAI8M,KAAKgB,QAAQ,CAmBpCzf,YAAa,SAAwBg+B,IAChB,IAAfA,QAAsCt1B,IAAfs1B,IACzBA,EAAa,CAAC,KAAO,IAEvBrkB,KAAKqkB,WAAaA,CACpB,EAEA5G,SAAU,SAAkBjyB,EAAO4lB,EAAQ0iB,GAIzC,GAHA9zB,KAAKsvB,OAAS,GACdtvB,KAAK+zB,eAAevoC,EAAO4lB,GAAU,CAAC,EAAG0iB,GAAW,UAEhD9zB,KAAKsvB,OAAO7pC,OAAS,EAAG,CAC1B,IAAIyjB,EAAMlJ,KAAKsvB,OAAOhb,KAAK,QAG3B,MAFApL,EAAM,cAAgBlJ,KAAKsvB,OAAO7pC,OAChC,0BAA4ByjB,EACxBlR,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAM6e,GAC7B,CAACC,KAAM,2BAA4BmmB,OAAQtvB,KAAKsvB,QACpD,CAAO,GAA2B,IAAvBtvB,KAAKsvB,OAAO7pC,OACrB,MAAMua,KAAKsvB,OAAO,GAElB,OAAO,CAEX,EAEA0E,KAAM,SAAc7qB,EAAMC,GACxBpJ,KAAKsvB,OAAOnqC,KAAK6S,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAM+e,GAAU,CAACD,KAAMA,IAC7D,EAEA8qB,kBAAmB,SAA2BzoC,EAAO4lB,EAAQ0iB,GAC3D,GAAItoC,EAAM0hC,WAAY,OAAO,EAG7B,IAAIgH,EADJl0B,KAAKm0B,aAAa/iB,EAAQ0iB,EAAS,CAAC,UAAW,aAE/C,IAAK,IAAIvuC,EAAI,EAAGiG,EAAMwqB,UAAYzwB,EAAIiG,EAAMwqB,SAASvwB,OAAQF,IAAK,CAEhE,IAAIgB,EAAQ6qB,EADZ8iB,EAAY1oC,EAAMwqB,SAASzwB,SAEbwJ,IAAVxI,GAAiC,OAAVA,GACzByZ,KAAKg0B,KAAK,2BACR,yBAA4BE,EAAY,QAAWJ,EAEzD,CAGA,IAAKI,KAAa9iB,EAChB,GAAKxsB,OAAO0B,UAAU4C,eAAejC,KAAKmqB,EAAQ8iB,GAAlD,CAEA,IAAIE,EAAahjB,EAAO8iB,GACpBje,EAAczqB,EAAM0qB,QAAQge,GAEhC,QAAoBnlC,IAAhBknB,EAA2B,CAC7B,IAAIoe,EAAgB,CAACP,EAASI,GAAW5f,KAAK,KAC9CtU,KAAK+zB,eAAe9d,EAAame,EAAYC,EAC/C,WAA0BtlC,IAAfqlC,GAA2C,OAAfA,GACrCp0B,KAAKg0B,KAAK,sBACR,mBAAsBE,EAAY,cAAiBJ,EAVe,CAcxE,OAAO,CACT,EAEAC,eAAgB,SAAwBvoC,EAAO8oC,EAAOR,GACpD,OAAQtoC,EAAMmI,MACZ,IAAK,YACH,OAAOqM,KAAKi0B,kBAAkBzoC,EAAO8oC,EAAOR,GAC9C,IAAK,OACH,OAAO9zB,KAAKu0B,aAAa/oC,EAAO8oC,EAAOR,GACzC,IAAK,MACH,OAAO9zB,KAAKw0B,YAAYhpC,EAAO8oC,EAAOR,GACxC,QACE,OAAO9zB,KAAKy0B,eAAejpC,EAAO8oC,EAAOR,GAE/C,EAEAS,aAAc,SAAsB/oC,EAAO4lB,EAAQ0iB,GACjD,GAAI9zB,KAAKm0B,aAAa/iB,EAAQ0iB,EAAS,CAACtsC,QAAS,CAC/CwY,KAAK00B,cAAclpC,EAAO4lB,EAAO3rB,OAAQquC,EAAS,qBAElD,IAAK,IAAIvuC,EAAI,EAAGA,EAAI6rB,EAAO3rB,OAAQF,IACjCya,KAAK+zB,eAAevoC,EAAM8zB,OAAQlO,EAAO7rB,GAAIuuC,EAAU,IAAMvuC,EAAI,IAErE,CACF,EAEAivC,YAAa,SAAqBhpC,EAAO4lB,EAAQ0iB,GAC/C,GAAI9zB,KAAKm0B,aAAa/iB,EAAQ0iB,EAAS,CAAC,UAAW,OAAQ,CAEzD,IAAIa,EAAW,EACf,IAAK,IAAIL,KAASljB,EACXxsB,OAAO0B,UAAU4C,eAAejC,KAAKmqB,EAAQkjB,KAElDt0B,KAAK+zB,eAAevoC,EAAM5F,IAAK0uC,EACXR,EAAU,SAAYQ,EAAQ,MAClDt0B,KAAK+zB,eAAevoC,EAAMjF,MAAO6qB,EAAOkjB,GACpBR,EAAU,KAAQQ,EAAQ,MAC9CK,KAEF30B,KAAK00B,cAAclpC,EAAOmpC,EAAUb,EAAS,mBAC/C,CACF,EAEAW,eAAgB,SAAwBjpC,EAAOjF,EAAOutC,GACpD,OAAQtoC,EAAMmI,MACZ,KAAK,KACL,UAAK5E,EACL,IAAK,SACH,OAAOiR,KAAK40B,eAAeppC,EAAOjF,EAAOutC,GAC3C,IAAK,SACL,IAAK,SACH,OAAO9zB,KAAK60B,gBAAgBtuC,EAAOutC,GACrC,IAAK,UACL,IAAK,QACH,OAAO9zB,KAAK80B,eAAetpC,EAAOjF,EAAOutC,GAC3C,IAAK,UACH,OAAO9zB,KAAKm0B,aAAa5tC,EAAOutC,EAAS,CAAC,YAC5C,IAAK,YACH,OAAO9zB,KAAKm0B,aAAa5tC,EAAOutC,EAAS,CAAC1jB,KACxC,iDAAkD,UAClD,qDACJ,QACE,OAAOpQ,KAAKg0B,KAAK,aAAc,kBACdxoC,EAAMmI,KAAO,QAAUmgC,GAE9C,EAEAc,eAAgB,SAAwBppC,EAAOjF,EAAOutC,GACpD,IAAIiB,EAAa,CAAC,UACdvpC,EAAM8mC,cACRyC,EAAaA,EAAWrmC,OAAO,CAAC,SAAU,SAAU,aAExC,OAAVnI,GAAkByZ,KAAKm0B,aAAa5tC,EAAOutC,EAASiB,KACtD/0B,KAAKg1B,aAAaxpC,EAAOjF,EAAOutC,GAChC9zB,KAAK00B,cAAclpC,EAAOjF,EAAMd,OAAQquC,EAAS,iBACjD9zB,KAAKi1B,gBAAgBzpC,EAAOjF,EAAOutC,GACnC9zB,KAAKk1B,YAAY1pC,EAAOjF,EAAOutC,GAEnC,EAEAoB,YAAa,SAAqB1pC,EAAOjF,EAAOutC,GACpB,QAAtBtoC,EAAgB,UACG,IAAjBjF,EAAMd,QACRua,KAAKg0B,KAAK,oBAAqB,0DACVztC,EAAO,SAAWutC,EAG7C,EAEAmB,gBAAiB,SAAyBzpC,EAAOjF,EAAOutC,GAClD9zB,KAAKqkB,WAAoB,cAA0Bt1B,IAArBvD,EAAe,UACzC,IAAIu4B,OAAOv4B,EAAe,SAAI7C,KAAKpC,IACvCyZ,KAAKg0B,KAAK,oBAAqB,mBAAqBztC,EAArB,mCACQiF,EAAe,QAAI,SACtDsoC,GAGV,EAEAY,cAAe,SAAuBlpC,EAAOjF,EAAOutC,EAASqB,GACvDn1B,KAAKqkB,WAAgB,UACFt1B,IAAjBvD,EAAW,KAAmBjF,EAAQiF,EAAW,KACnDwU,KAAKg0B,KAAK,gBAAiB,YAAcmB,EAAa,OAClD3pC,EAAW,IAAI,eAAiBjF,EAAQ,QAAUutC,GAGtD9zB,KAAKqkB,WAAgB,UACFt1B,IAAjBvD,EAAW,KAAmBjF,EAAQiF,EAAW,KACnDwU,KAAKg0B,KAAK,gBAAiB,YAAcmB,EAAa,OAClD3pC,EAAW,IAAI,eAAiBjF,EAAQ,QAAUutC,EAG5D,EAEAkB,aAAc,SAAuBxpC,EAAOjF,EAAOutC,GAC7C9zB,KAAKqkB,WAAiB,WAAuBt1B,IAAlBvD,EAAY,OAEH,IAAlCA,EAAY,KAAE3E,QAAQN,IACxByZ,KAAKg0B,KAAK,YAAa,yBAA2BztC,EAA3B,kBACLiF,EAAY,KAAE8oB,KAAK,KAAO,QAAUwf,EAG5D,EAEAK,aAAc,SAAsB5tC,EAAOutC,EAASsB,EAAezhC,GAGjE,GAAc,OAAVpN,QAA4BwI,IAAVxI,EAAqB,OAAO,EAGlD,IADA,IAAI8uC,GAAmB,EACd9vC,EAAI,EAAGA,EAAI6vC,EAAc3vC,OAAQF,IAAK,CAC7C,GAAgC,kBAArB6vC,EAAc7vC,IACvB,UAAWgB,IAAU6uC,EAAc7vC,GAAI,OAAO,OACzC,GAAI6vC,EAAc7vC,aAAcw+B,QACrC,IAAKx9B,GAAS,IAAIgC,WAAW2d,MAAMkvB,EAAc7vC,IAAK,OAAO,MACxD,CACL,GAAIgB,aAAiB6uC,EAAc7vC,GAAI,OAAO,EAC9C,GAAIyS,EAAI8M,KAAK+a,OAAOt5B,EAAO6uC,EAAc7vC,IAAK,OAAO,EAChDoO,GAAS0hC,IAAkBD,EAAgBA,EAAc5sC,SAC9D4sC,EAAc7vC,GAAKyS,EAAI8M,KAAKgb,SAASsV,EAAc7vC,GACrD,CACA8vC,GAAmB,CACrB,CAEA,IAAIC,EAAe3hC,EACd2hC,IACHA,EAAeF,EAAc9gB,KAAK,MAAMrO,QAAQ,YAAa,WAG/D,IAAIsvB,EAAQD,EAAapvB,MAAM,aAAe,IAAM,GAGpD,OAFAlG,KAAKg0B,KAAK,uBAAwB,YAAcF,EAAU,WAChDyB,EAAQ,IAAMD,IACjB,CACT,EAEAR,eAAgB,SAAwBtpC,EAAOjF,EAAOutC,GACpD,GAAc,OAAVvtC,QAA4BwI,IAAVxI,EAAtB,CACA,GAAqB,kBAAVA,EAAoB,CAC7B,IAAIivC,EAAc/B,WAAWltC,GACzBivC,EAAYjtC,aAAehC,IAAOA,EAAQivC,EAChD,CACIx1B,KAAKm0B,aAAa5tC,EAAOutC,EAAS,CAAC,YACrC9zB,KAAK00B,cAAclpC,EAAOjF,EAAOutC,EAAS,gBANK,CAQnD,EAEAe,gBAAiB,SAAyBtuC,EAAOutC,GAC/C,GAAc,OAAVvtC,QAA4BwI,IAAVxI,GACD,kBAAVA,KACPA,GAAqC,kBAArBA,EAAMiZ,YAA1B,CACA,GAAIxH,EAAI8M,KAAKQ,SAAU,CACrB,IAAIoa,EAAS1nB,EAAI8M,KAAK6a,OAAOD,OAC7B,GAAI1nB,EAAI8M,KAAK7F,OAAO2gB,SAASr5B,IAAUA,aAAiBm5B,EAAQ,MAClE,MACE,QAAoB,WAAT+V,MAAmBlvC,aAAiBkvC,KAAM,OAGvD,IAAIhW,EAAQ,CAAC,SAAU,SAAU,OAAQ,OAAQ,cAAe,YAChE,GAAIl5B,EACF,IAAK,IAAIhB,EAAI,EAAGA,EAAIk6B,EAAMh6B,OAAQF,IAAK,CACrC,GAAIyS,EAAI8M,KAAK+a,OAAOt5B,EAAOk5B,EAAMl6B,IAAK,OACtC,GAAIyS,EAAI8M,KAAKgb,SAASv5B,EAAMF,eAAiBo5B,EAAMl6B,GAAI,MACzD,CAGFya,KAAKg0B,KAAK,uBAAwB,YAAcF,EAAd,+DAhBuB,CAkB3D,qBC7QF,IAAI97B,EAAMD,EAAQ,OACd29B,EAAO19B,EAAIuW,SAASG,KAKxB1W,EAAI6D,MAAM85B,UAAY39B,EAAI8M,KAAKgB,QAAQ,CAWnCzf,YAAa,SAAgB4H,GACzBA,EAAUA,GAAW,CAAC,EACtB+R,KAAK/R,QAAUA,EACf+R,KAAK0R,QAAUzjB,EAAQyjB,QACvB1R,KAAKsc,kBAAkBruB,GACvB+R,KAAK41B,YAAc,CAAC,CACxB,EAKAtZ,kBAAmB,SAA2BruB,GAE1C,GADAA,EAAUA,GAAW,CAAC,EACjB+R,KAAK0R,QAEH,CACH,IAAInE,EAASvV,EAAI8M,KAAKgI,KAAK9M,KAAK0R,QAAQnE,QACxCvN,KAAK0R,QAAU,IAAI1R,KAAK0R,QAAQrrB,YAAYq2B,UAAUnP,GACtDvN,KAAK0R,QAAQnE,OAAO6D,OAASpZ,EAAI8M,KAAK8F,MAAM5K,KAAK0R,QAAQnE,OAAO6D,QAAU,CAAC,EAAGnjB,EAAQmjB,OAC1F,MALIpR,KAAK0R,QAAU,IAAI1Z,EAAI6D,MAAM5N,EAMrC,EAKA4nC,mBAAoB,SAA4Bz1B,GAG5C,IAAI01B,EAAgB99B,EAAI8M,KAAKgI,KAAK1M,GAUlC,OATA01B,EAAc5f,QAAUle,EAAI8M,KAAKgI,KAAK1M,EAAM8V,SAC5Cle,EAAI8M,KAAK+D,KAAKzI,EAAM8V,SAAS,SAASztB,EAAM62B,GACxCwW,EAAc5f,QAAQztB,GAAQuP,EAAI8M,KAAKgI,KAAKwS,GAEvCA,EAAOp1B,UAAgC,SAApBo1B,EAAOp1B,WAC3B4rC,EAAc5f,QAAQztB,GAAMyB,SAAW,cACvC4rC,EAAc5f,QAAQztB,GAAM2tB,aAAe3tB,EAEnD,IACOqtC,CACX,EAKAC,iBAAkB,SAA0BrY,GAExCA,EAAI5G,YAAYwT,OAAS,MAEzB,IAAI1Y,EAAY8L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAE3CxR,EAAQJ,KAAK41B,YAAYlY,EAAI9L,WAC5BxR,IAEDJ,KAAK41B,YAAYlY,EAAI9L,WAAaxR,EAAQJ,KAAK61B,mBAAmBjkB,EAAUxR,QAGhF,IAAI4xB,EAAM0D,EAAKM,YAAYtY,EAAI5G,YAAY7L,SAASvD,KAAMkK,EAAUqkB,SAAU71B,EAAOsd,EAAItM,QAEzFsM,EAAI5G,YAAYpP,KAAOsqB,EACvBtU,EAAI5G,YAAYmJ,KAAO,UAGhBvC,EAAI5G,YAAY0B,QAAQ,yBACxBkF,EAAI5G,YAAY0B,QAAQ,eACnC,EAuBA0d,uBAAwB,SAAgC9kB,EAAQ5K,EAASoB,GACrE,IAAIrJ,EAAOyB,KACP0V,EAAU1V,KAAK0R,QAAQuF,YAAY,mBAAoB7F,GAM3D,OAJAsE,EAAQygB,mBAAmB,SAC3BzgB,EAAQrpB,GAAG,SAAS,SAASqxB,GACzBnf,EAAKw3B,iBAAiBrY,EAC1B,IACOhI,EAAQ0gB,QAAQ5vB,EAASoB,EACpC,qBCjHJ,IAAI9C,EAAQ/M,EAAQ,OAChBC,EAAMD,EAAQ,OAqFlBW,EAAOpU,QAAU,CACf+xC,mBA9EF,SAA4B3gB,GAE1B,IADcA,EAAQhE,QAAQnE,OAAOb,kBACvB,OAAOgJ,EACrB,IAAIe,EAAiBf,EAAQhE,QAAQiE,IAAIE,WAAWH,EAAQ9D,WAE5D,GAaF,SAA6B8D,GAC3B,IAAIC,EAAMD,EAAQhE,QAAQiE,IACtBc,EAAiBd,EAAIE,WAAWH,EAAQ9D,WACxC0kB,EAAsB3gB,EAAIuB,mBAAsBvB,EAAIuB,oBAAsBpS,EAAKja,OAAO6+B,WAAWjT,EAAehuB,MACpH,MAAqD,SAA7CguB,EAAe6C,4BAAgE,IAAxBgd,CACjE,CAlBMC,CAAoB7gB,GAAU,OAAOA,EACzC,GAAIe,EAAexL,UAAYwL,EAAexL,SAASurB,WAAY,CACjE,IACIA,EAoBR,SAA0BC,EAAoBrlB,EAAQ5lB,GAapD,OAZAsZ,EAAK+D,KAAKrd,EAAM0qB,SAAS,SAASztB,EAAM62B,GACtC,IAAyB,IAArBA,EAAO2R,UAAoB,CAC7B,GAA4B,kBAAjB7f,EAAO3oB,IAAuC,KAAjB2oB,EAAO3oB,GAC7C,MAAMqc,EAAKvP,MAAM,IAAIlL,MAAS,CAC5B+e,QAAS,aAAe3gB,EAAO,iCAC/B0gB,KAAM,qBAGV,IAAIutB,EAAQ,IAAI3S,OAAO,MAAQt7B,EAAO,MAAO,KAC7CguC,EAAqBA,EAAmBxwB,QAAQywB,EAAOtlB,EAAO3oB,GAChE,CACF,IACOguC,CACT,CAlCqBE,CADQlgB,EAAexL,SAASurB,WACK9gB,EAAQtE,OAAQqF,EAAerW,QAuCzF,SAA+B6K,EAAU8mB,GACnC9mB,EAASka,OACXla,EAASka,KAAO4M,EAAS9mB,EAASka,MAEhCla,EAAS+b,WACX/b,EAAS+b,SAAW+K,EAAS9mB,EAAS+b,SAE1C,CA7CI4P,CAAsBlhB,EAAQoB,YAAY7L,SAAUurB,GAkDxD,SAA0BxP,GACxB,IAAI6P,EAAS7P,EAAS1f,MAAM,KAExBwvB,EAAc,0DAClBhyB,EAAK2L,UAAUomB,GAAQ,SAASE,GAC9B,IAAKA,EAAMtxC,QAAUsxC,EAAMtxC,OAAS,GAAKsxC,EAAMtxC,OAAS,GACtD,MAAMqf,EAAKvP,MAAM,IAAIlL,MAAS,CAC5B8e,KAAM,kBACNC,QAAS,2EAGb,IAAK0tB,EAAYnuC,KAAKouC,GACpB,MAAM/+B,EAAI8M,KAAKvP,MAAM,IAAIlL,MACvB,CAAC8e,KAAM,kBAAmBC,QAAS2tB,EAAQ,gCAEjD,GACF,CAjEIC,CAAiBthB,EAAQoB,YAAY7L,SAAS+b,SAChD,CACA,OAAOtR,CACT,mBCtBA,IAAI5Q,EAAO/M,EAAQ,OACfk1B,EAAcl1B,EAAQ,OACtBs1B,EAAat1B,EAAQ,OACrBs+B,EAAqBt+B,EAAAA,OAAAA,mBA8FzBW,EAAOpU,QAAU,CACf0lC,aA7FF,SAAsBtM,GACpB,IAAI5G,EAAc4G,EAAI5G,YAClBnB,EAAM+H,EAAIhM,QAAQiE,IAClBrwB,EAASqwB,EAAIwY,aAAe,IAAMxY,EAAIE,WAAW6H,EAAI9L,WAAWnpB,KAChEiH,EAAUimB,EAAIuY,aAAe,MAC7B9tB,EAAQuV,EAAIE,WAAW6H,EAAI9L,WAAWxR,MACtC62B,EAAU,IAAIhK,EAEF,IAAZv9B,IAAeA,EAAU,OAEzBimB,EAAIwQ,qBACDrP,EAAY1F,SACf0F,EAAY1F,OAAS,CAAC,GAGxBxsB,OAAOsyC,OAAOpgB,EAAY1F,OAAQsM,EAAItM,SAGxC0F,EAAYmJ,KAAOgX,EAAQ7J,MAAM1P,EAAItM,QAAU,CAAC,EAAGhR,GACnD0W,EAAY0B,QAAQ,gBAAkB,0BAA4B9oB,EAClEonB,EAAY0B,QAAQ,gBAAkBlzB,EAEtC+wC,EAAmB3Y,EACrB,EAuEEwM,aArEF,SAAsBlM,GACpB,IAAIzoB,EAAQ,CAAC,EACTmjB,EAAesF,EAAKtF,aAOxB,GALAnjB,EAAM4T,KAAOuP,EAAaF,QAAQ,qBAAuB,eAC/B,kBAAfjjB,EAAM4T,OACf5T,EAAM4T,KAAO5T,EAAM4T,KAAK7B,MAAM,KAAK,IAGjCoR,EAAauH,KAAKx6B,OAAS,EAC7B,IACE,IAAI8Q,EAAImQ,KAAKe,MAAMiR,EAAauH,KAAK13B,YAEjC4gB,EAAO5S,EAAE4gC,QAAU5gC,EAAE4S,MAAQ5S,EAAE6gC,KAgBnC,IAAK,IAAIxxC,KAfLujB,IACF5T,EAAM4T,KAAOA,EAAK7B,MAAM,KAAK+vB,OAEZ,0BAAf9hC,EAAM4T,KACR5T,EAAM6T,QAAU,sCAEhB7T,EAAM6T,QAAW7S,EAAE6S,SAAW7S,EAAE+gC,SAAW,KAS7B/gC,GAAK,CAAC,EACR,SAAR3Q,GAA0B,YAARA,IAGtB2P,EAAM,IAAM3P,EAAM,KAAO,aAAeA,EAAM,gBAC9ChB,OAAOoB,eAAeuP,EAAO3P,EAAK,CAChCW,MAAOgQ,EAAE3Q,GACTV,YAAY,EACZuB,UAAU,IAGhB,CAAE,MAAO8P,GACPhB,EAAMojB,WAAaD,EAAaC,WAChCpjB,EAAM6T,QAAUsP,EAAa6N,aAC/B,MAEAhxB,EAAMojB,WAAaD,EAAaC,WAChCpjB,EAAM6T,QAAUsP,EAAaC,WAAWpwB,WAG1Cy1B,EAAKzoB,MAAQuP,EAAKvP,MAAM,IAAIlL,MAASkL,EACvC,EAoBE00B,YAlBF,SAAqBjM,GACnB,IAAIiC,EAAOjC,EAAKtF,aAAauH,KAAK13B,YAAc,KAChD,IAAyD,IAArDy1B,EAAKtI,QAAQhE,QAAQnE,OAAOzB,qBAC9BkS,EAAKze,KAAOmH,KAAKe,MAAMwY,OAClB,CACL,IACIz0B,EADYwyB,EAAKtI,QAAQhE,QAAQiE,IAAIE,WAAWmI,EAAKtI,QAAQ9D,WAC3CmK,QAAU,CAAC,EAC7BmE,EAAS,IAAImN,EACjBrP,EAAKze,KAAO2gB,EAAOzY,MAAMwY,EAAMz0B,EACjC,CACF,oBC5FA,IAAIwM,EAAMD,EAAQ,OACd+M,EAAO/M,EAAQ,OACfw/B,EAAuBx/B,EAAQ,MAC/BkX,EAAQlX,EAAQ,OAChBs+B,EAAqBt+B,EAAAA,OAAAA,mBAqGzBW,EAAOpU,QAAU,CACf0lC,aApGF,SAAsBtM,GACpB,IAAI9L,EAAY8L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAC3CkF,EAAc4G,EAAI5G,YACtBA,EAAY0B,QAAQ,gBAClB,mDACF1B,EAAY1F,OAAS,CACnBomB,QAAS9Z,EAAIhM,QAAQiE,IAAI3K,WACzBysB,OAAQ7lB,EAAUnpB,OAKN,IAAI8uC,GACVG,UAAUha,EAAItM,OAAQQ,EAAUxR,OAAO,SAAS3X,EAAMlC,GAC5DuwB,EAAY1F,OAAO3oB,GAAQlC,CAC7B,IACAuwB,EAAYmJ,KAAOnb,EAAKimB,oBAAoBjU,EAAY1F,QAExDilB,EAAmB3Y,EACrB,EAkFEwM,aAhFF,SAAsBlM,GACpB,IAAIze,EAAM0gB,EAAOjC,EAAKtF,aAAauH,KAAK13B,WACxC,GAAI03B,EAAK/Z,MAAM,8BACb3G,EAAO,CACL63B,KAAM,mBACNE,QAAS,qBAAuBtZ,EAAKtI,QAAQ9D,gBAG/C,IACErS,GAAO,IAAIvH,EAAIuN,IAAIC,QAASiC,MAAMwY,EACpC,CAAE,MAAO1pB,GACPgJ,EAAO,CACL63B,KAAMpZ,EAAKtF,aAAaC,WACxB2e,QAAStZ,EAAKtF,aAAa6N,cAE/B,CAGEhnB,EAAKo4B,YAAc3Z,EAAK2Z,YAAW3Z,EAAK2Z,UAAYp4B,EAAKo4B,WACzDp4B,EAAKq4B,SAAQr4B,EAAOA,EAAKq4B,QACzBr4B,EAAKlV,QAAOkV,EAAOA,EAAKlV,OACxBkV,EAAK63B,KACPpZ,EAAKzoB,MAAQuP,EAAKvP,MAAM,IAAIlL,MAAS,CACnC8e,KAAM5J,EAAK63B,KACXhuB,QAAS7J,EAAK+3B,UAGhBtZ,EAAKzoB,MAAQuP,EAAKvP,MAAM,IAAIlL,MAAS,CACnC8e,KAAM6U,EAAKtF,aAAaC,WACxBvP,QAAS,MAGf,EAiDE6gB,YA/CF,SAAqBjM,GACnB,IAAIN,EAAMM,EAAKtI,QAEXlqB,EADYkyB,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WACzBmK,QAAU,CAAC,EAC7B8b,EAAYrsC,EAEhB,GAAIqsC,EAAU/F,cAAe,CAC3B,IAAIgG,EAAM7oB,EAAM7Z,OAAO,CAACzB,KAAM,cAC9BmkC,EAAI5hB,QAAQ2hB,EAAU/F,eAAiBtmC,EACvCssC,EAAInG,YAAc,CAACkG,EAAU/F,eAC7BhtB,EAAK4F,SAASlf,EAAO,OAAQA,EAAMsmC,eACnCtmC,EAAQssC,CACV,CAEA,IAAI5X,EAAS,IAAIloB,EAAIuN,IAAIC,OAGzB,GAAIha,GAASA,EAAM0qB,UAAY1qB,EAAM0qB,QAAQ6hB,eAAgB,CAC3D,IAAIC,EAAiB/oB,EAAM7Z,OACzB,CAAEzB,KAAM,UACR,CAAEgiB,IAAK,CAAE0U,SAAU,UACnB,aAEF7+B,EAAM0qB,QAAQ6hB,eAAiBC,CACjC,CAEA,IAAIz4B,EAAO2gB,EAAOzY,MAAMuW,EAAKtF,aAAauH,KAAK13B,WAAYiD,GAC3DwyB,EAAK2Z,UAAYp4B,EAAKw4B,gBAAkBx4B,EAAKo4B,UAEzCp4B,EAAKw4B,uBAAuBx4B,EAAKw4B,eAEjCF,EAAU/F,eACRvyB,EAAKs4B,EAAU/F,iBACjBhtB,EAAK/T,OAAOwO,EAAMA,EAAKs4B,EAAU/F,uBAC1BvyB,EAAKs4B,EAAU/F,gBAI1B9T,EAAKze,KAAOA,CACd,oBCpGA,IAAIuF,EAAO/M,EAAQ,OACfs+B,EAAqBt+B,EAAAA,OAAAA,mBAMzB,SAASi+B,EAAYiC,EAAcC,EAAe93B,EAAOgR,GACvD,IAAI4gB,EAAM,CAACiG,EAAcC,GAAe5jB,KAAK,KAC7C0d,EAAMA,EAAI/rB,QAAQ,OAAQ,KAE1B,IAAIkyB,EAAc,CAAC,EAAGC,GAAiB,EAiCvC,GAhCAtzB,EAAK+D,KAAKzI,EAAM8V,SAAS,SAAUztB,EAAM62B,GACvC,IAAI8U,EAAahjB,EAAO3oB,GACxB,GAAmB,OAAf2rC,QAAsCrlC,IAAfqlC,EAC3B,GAAwB,QAApB9U,EAAOp1B,SAAoB,CAC7B,IAAIwsC,EAAQ,IAAI3S,OAAO,MAAQzE,EAAO72B,KAAO,aAC7CupC,EAAMA,EAAI/rB,QAAQywB,GAAO,SAASliB,EAAG6jB,GAEnC,OADSA,EAAOvzB,EAAKwzB,cAAgBxzB,EAAKyzB,WAChCjiB,OAAO8d,GACnB,GACF,KAA+B,gBAApB9U,EAAOp1B,WAChBkuC,GAAiB,EAEG,SAAhB9Y,EAAO3rB,KACTwkC,EAAY7Y,EAAO72B,MAAQ2rC,EAAWzZ,KAAI,SAASpG,GACjD,OAAOzP,EAAKyzB,UAAUjZ,EAAOA,OAAO6N,aAAa5Y,GAAKhsB,WACxD,IACyB,QAAhB+2B,EAAO3rB,KAChBmR,EAAK+D,KAAKurB,GAAY,SAASxuC,EAAKW,GAC9BiB,MAAMC,QAAQlB,GAChB4xC,EAAYvyC,GAAOW,EAAMo0B,KAAI,SAASpG,GACpC,OAAOzP,EAAKyzB,UAAUjiB,OAAO/B,GAC/B,IAEA4jB,EAAYvyC,GAAOkf,EAAKyzB,UAAUjiB,OAAO/vB,GAE7C,IAEA4xC,EAAY7Y,EAAO72B,MAAQqc,EAAKyzB,UAAUjZ,EAAO6N,aAAaiH,GAAY7rC,YAGhF,IAEI6vC,EAAgB,CAClBpG,GAAQA,EAAInrC,QAAQ,MAAQ,EAAI,IAAM,IACtC,IAAIwgB,EAAQ,GACZvC,EAAK2L,UAAU7rB,OAAOD,KAAKwzC,GAAaK,QAAQ,SAAS5yC,GAClD4B,MAAMC,QAAQ0wC,EAAYvyC,MAC7BuyC,EAAYvyC,GAAO,CAACuyC,EAAYvyC,KAElC,IAAK,IAAIL,EAAI,EAAGA,EAAI4yC,EAAYvyC,GAAKH,OAAQF,IAC3C8hB,EAAMliB,KAAK2f,EAAKyzB,UAAUjiB,OAAO1wB,IAAQ,IAAMuyC,EAAYvyC,GAAKL,GAEpE,IACAysC,GAAO3qB,EAAMiN,KAAK,IACpB,CAEA,OAAO0d,CACT,CAmFAt5B,EAAOpU,QAAU,CACf0lC,aAtDF,SAAsBtM,IAtFtB,SAAwBA,GACtBA,EAAI5G,YAAYwT,OAAS5M,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAAW6mB,UACrE,CAqFEC,CAAehb,GA7BjB,SAAqBA,GACnB,IAAI9L,EAAY8L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAC3CxR,EAAQwR,EAAUxR,MAElB4xB,EAAMgE,EAAYtY,EAAI5G,YAAY7L,SAASvD,KAAMkK,EAAUqkB,SAAU71B,EAAOsd,EAAItM,QACpFsM,EAAI5G,YAAYpP,KAAOsqB,CACzB,CAwBE2G,CAAYjb,GAtBd,SAAyBA,GACvB,IAAI9L,EAAY8L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAC/C9M,EAAK+D,KAAK+I,EAAUxR,MAAM8V,SAAS,SAAUztB,EAAM62B,GACjD,IAAI/4B,EAAQm3B,EAAItM,OAAO3oB,GACT,OAAVlC,QAA4BwI,IAAVxI,IAEE,YAApB+4B,EAAOp1B,UAA0C,QAAhBo1B,EAAO3rB,KAC1CmR,EAAK+D,KAAKtiB,GAAO,SAASX,EAAKgzC,GAC7Blb,EAAI5G,YAAY0B,QAAQ8G,EAAO72B,KAAO7C,GAAOgzC,CAC/C,IAC6B,WAApBtZ,EAAOp1B,WAChB3D,EAAQ+4B,EAAO6N,aAAa5mC,GAAOgC,WAC/B+2B,EAAOgT,cACT/rC,EAAQue,EAAKc,OAAOC,OAAOtf,IAE7Bm3B,EAAI5G,YAAY0B,QAAQ8G,EAAO72B,MAAQlC,GAE3C,GACF,CAKEsyC,CAAgBnb,GAChB2Y,EAAmB3Y,EACrB,EAkDEwM,aAhDF,WACA,EAgDED,YA9CF,SAAqBjM,GACnB,IAAIN,EAAMM,EAAKtI,QACXnW,EAAO,CAAC,EACR1R,EAAImwB,EAAKtF,aAETqD,EADY2B,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WACxBmK,OAGnBvD,EAAU,CAAC,EACf1T,EAAK+D,KAAKhb,EAAE2qB,SAAS,SAAU7U,EAAGm1B,GAChCtgB,EAAQ7U,EAAE7E,eAAiBg6B,CAC7B,IAEAh0B,EAAK+D,KAAKkT,EAAO7F,SAAS,SAASztB,EAAM62B,GACvC,IAAIyZ,GAAUzZ,EAAO72B,MAAQA,GAAMqW,cACnC,GAAwB,YAApBwgB,EAAOp1B,UAA0C,QAAhBo1B,EAAO3rB,KAAgB,CAC1D4L,EAAK9W,GAAQ,CAAC,EACd,IAAIyB,EAAWo1B,EAAOjJ,eAAiBiJ,EAAO72B,KAAO,GACjD4nC,EAAU,IAAItM,OAAO,IAAM75B,EAAW,OAAQ,KAClD4a,EAAK+D,KAAKhb,EAAE2qB,SAAS,SAAU7U,EAAGm1B,GAChC,IAAIzpC,EAASsU,EAAEuC,MAAMmqB,GACN,OAAXhhC,IACFkQ,EAAK9W,GAAM4G,EAAO,IAAMypC,EAE5B,GACF,MAAO,GAAwB,WAApBxZ,EAAOp1B,UAChB,QAAwB6E,IAApBypB,EAAQugB,GAAuB,CACjC,IAAIxyC,EAAQ+4B,EAAOgT,YACjBxtB,EAAKc,OAAO6sB,OAAOja,EAAQugB,IAC3BvgB,EAAQugB,GACVx5B,EAAK9W,GAAQ62B,EAAOC,OAAOh5B,EAC7B,MAC6B,eAApB+4B,EAAOp1B,WAChBqV,EAAK9W,GAAQs4B,SAASlzB,EAAE8qB,WAAY,IAExC,IAEAqF,EAAKze,KAAOA,CACd,EASEy2B,YAAaA,oBClJf,IAAIh+B,EAAMD,EAAQ,OACd+M,EAAO/M,EAAQ,OACf2W,EAAO3W,EAAQ,OACfyW,EAAOzW,EAAQ,MACfk1B,EAAcl1B,EAAQ,OACtBs1B,EAAat1B,EAAQ,OAErBihC,EAAuB,CAAC,MAAO,OAAQ,UAqC3C,SAASC,EAAuBvb,EAAK8B,GACnC,IAAK9B,EAAI5G,YAAY0B,QAAQ,gBAAiB,CAC5C,IAAI7kB,EAAO6rB,EAAW,sBAAwB,mBAC9C9B,EAAI5G,YAAY0B,QAAQ,gBAAkB7kB,CAC5C,CACF,CAoDA+E,EAAOpU,QAAU,CACf0lC,aAnDF,SAAsBtM,GACpBhP,EAAKsb,aAAatM,GAGdsb,EAAqBnyC,QAAQ62B,EAAI5G,YAAYwT,QAAU,GApC7D,SAAsB5M,GACpB,IAAIuZ,EAAU,IAAIhK,EACd7sB,EAAQsd,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAAWxR,MAEtD,GAAIA,EAAMqvB,QAAS,CACjB,IAAIre,EACAoQ,EAAephB,EAAM8V,QAAQ9V,EAAMqvB,SACvCre,EAASsM,EAAItM,OAAOhR,EAAMqvB,SAEA,cAAtBjO,EAAa7tB,MACf+pB,EAAI5G,YAAYmJ,KAAOgX,EAAQ7J,MAAMhc,GAAU,CAAC,EAAGoQ,GACnDyX,EAAuBvb,SACH3uB,IAAXqiB,IAETsM,EAAI5G,YAAYmJ,KAAO7O,GACG,WAAtBoQ,EAAa7tB,MAAqB6tB,EAAayD,cACjDgU,EAAuBvb,GAAK,GAGlC,MACEA,EAAI5G,YAAYmJ,KAAOgX,EAAQ7J,MAAM1P,EAAItM,OAAQhR,GACjD64B,EAAuBvb,EAE3B,CAcIwb,CAAaxb,EAEjB,EA6CEwM,aA3CF,SAAsBlM,GACpBxP,EAAK0b,aAAalM,EACpB,EA0CEiM,YAxCF,SAAqBjM,GACnBtP,EAAKub,YAAYjM,GAEjB,IAAIN,EAAMM,EAAKtI,QACX9D,EAAY8L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAC3CwS,EAAQ1G,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAAWmK,QAAU,CAAC,EAIjE,GAFqBnK,EAAUgV,eAE3BxC,EAAMqL,QAAS,CACjB,IAAI1K,EAAgBX,EAAMlO,QAAQkO,EAAMqL,SACpCxP,EAAOjC,EAAKtF,aAAauH,KAC7B,GAAI8E,EAAc2K,cAChBxP,EAAS,IAAImN,EACbrP,EAAKze,KAAK6kB,EAAMqL,SAAW3qB,EAAKM,kBACO,IAArCpN,EAAI0uB,WAAWC,kBAA0B3I,EAAKtF,aAAaiH,OAASM,EACpEC,EACA6E,QAEG,GAA2B,cAAvBA,EAAcpxB,MAA+C,SAAvBoxB,EAAcpxB,KAAiB,CAC9E,IAAIusB,EAAS,IAAImN,EACjBrP,EAAKze,KAAK6kB,EAAMqL,SAAWvP,EAAOzY,MAAMwY,EAAM8E,EAChD,KAAkC,WAAvBA,EAAcpxB,MAAqBoxB,EAAcE,YAC1DjH,EAAKze,KAAK6kB,EAAMqL,SAAWxP,EAE3BjC,EAAKze,KAAK6kB,EAAMqL,SAAW1K,EAAcxF,OAAOU,EAEpD,KAAO,CACL,IAAI1gB,EAAOye,EAAKze,KAChBiP,EAAKyb,YAAYjM,GACjBA,EAAKze,KAAOuF,EAAK8F,MAAMrL,EAAMye,EAAKze,KACpC,CACF,EASE4qB,mBAhGF,SAA4BzM,QAGN3uB,IAFA+V,EAAKkgB,uBAAuBtH,IAG9Csb,EAAqBnyC,QAAQ62B,EAAI5G,YAAYwT,SAAW,UAEjD5M,EAAI5G,YAAY0B,QAAQ,iBAEnC,oBCjBA,IAAIxgB,EAAMD,EAAQ,OACd+M,EAAO/M,EAAQ,OACf2W,EAAO3W,EAAQ,OAqGnBW,EAAOpU,QAAU,CACf0lC,aA7EF,SAAsBtM,GACpBhP,EAAKsb,aAAatM,GAGd,CAAC,MAAO,QAAQ72B,QAAQ62B,EAAI5G,YAAYwT,QAAU,GA3BxD,SAAsB5M,GACpB,IAAItd,EAAQsd,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAAWxR,MAClD62B,EAAU,IAAIj/B,EAAIuN,IAAIsJ,QACtBuC,EAASsM,EAAItM,OAEbqe,EAAUrvB,EAAMqvB,QACpB,GAAIA,EAAS,CACX,IAAI1K,EAAgB3kB,EAAM8V,QAAQuZ,GAElC,QAAe1gC,KADfqiB,EAASA,EAAOqe,IACU,OAE1B,GAA2B,cAAvB1K,EAAcpxB,KAAsB,CACtC,IAAIwlC,EAAcpU,EAAct8B,KAChCi1B,EAAI5G,YAAYmJ,KAAOgX,EAAQmC,MAAMhoB,EAAQ2T,EAAeoU,GAAa,EAC3E,MACEzb,EAAI5G,YAAYmJ,KAAO7O,CAE3B,MACEsM,EAAI5G,YAAYmJ,KAAOgX,EAAQmC,MAAMhoB,EAAQhR,EAAOA,EAAM3X,MACxD2X,EAAM5U,OAASsZ,EAAKja,OAAOwuC,WAAW3b,EAAI9L,WAAa,UAE7D,CAOIsnB,CAAaxb,EAEjB,EAuEEwM,aArEF,SAAsBlM,GAGpB,IAAIze,EAFJmP,EAAKwb,aAAalM,GAGlB,IACEze,GAAO,IAAIvH,EAAIuN,IAAIC,QAASiC,MAAMuW,EAAKtF,aAAauH,KAAK13B,WAC3D,CAAE,MAAOgO,GACPgJ,EAAO,CACL63B,KAAMpZ,EAAKtF,aAAaC,WACxB2e,QAAStZ,EAAKtF,aAAa6N,cAE/B,CAEIhnB,EAAKq4B,SAAQr4B,EAAOA,EAAKq4B,QACzBr4B,EAAKlV,QAAOkV,EAAOA,EAAKlV,OACxBkV,EAAK63B,KACPpZ,EAAKzoB,MAAQuP,EAAKvP,MAAM,IAAIlL,MAAS,CACnC8e,KAAM5J,EAAK63B,KACXhuB,QAAS7J,EAAK+3B,UAGhBtZ,EAAKzoB,MAAQuP,EAAKvP,MAAM,IAAIlL,MAAS,CACnC8e,KAAM6U,EAAKtF,aAAaC,WACxBvP,QAAS,MAGf,EA4CE6gB,YA1CF,SAAqBjM,GAGnB,IAAIkC,EAFJxR,EAAKub,YAAYjM,GAGjB,IAAIN,EAAMM,EAAKtI,QACXuK,EAAOjC,EAAKtF,aAAauH,KACzBrO,EAAY8L,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAC3CmK,EAASnK,EAAUmK,OAInB0T,GAFiB7d,EAAUgV,eAEjB7K,EAAO0T,SACrB,GAAIA,EAAS,CACX,IAAI1K,EAAgBhJ,EAAO7F,QAAQuZ,GAC/B1K,EAAc2K,eAChBxP,EAAS,IAAIloB,EAAIuN,IAAIC,OACrBwY,EAAKze,KAAKkwB,GAAW3qB,EAAKM,kBACa,IAArCpN,EAAI0uB,WAAWC,kBAA0B3I,EAAKtF,aAAaiH,OAAS3B,EAAKtF,aAAauH,KACtFC,EACA6E,IAE8B,cAAvBA,EAAcpxB,MACvBusB,EAAS,IAAIloB,EAAIuN,IAAIC,OACrBwY,EAAKze,KAAKkwB,GAAWvP,EAAOzY,MAAMwY,EAAK13B,WAAYw8B,IACnB,WAAvBA,EAAcpxB,MAAqBoxB,EAAcE,YAC1DjH,EAAKze,KAAKkwB,GAAWxP,EAErBjC,EAAKze,KAAKkwB,GAAW1K,EAAcxF,OAAOU,EAE9C,MAAO,GAAIA,EAAKx6B,OAAS,EAAG,CAE1B,IAAI8Z,GADJ2gB,EAAS,IAAIloB,EAAIuN,IAAIC,QACHiC,MAAMwY,EAAK13B,WAAYwzB,GACzCjX,EAAK/T,OAAOitB,EAAKze,KAAMA,EACzB,CACF,mBClGA,IAAIuF,EAAO/M,EAAQ,OAEnB,SAASw/B,IACT,CAMA,SAAS+B,EAAQ9tC,GACf,OAAIA,EAAM+tC,aAAsC,QAAvB/tC,EAAMmqB,IAAI0U,SAC1B7+B,EAAM/C,KAEN+C,EAAM/C,KAAK,GAAGgL,cAAgBjI,EAAM/C,KAAKq6B,OAAO,EAE3D,CAEA,SAAS0W,EAAmBzH,EAAQ1S,EAAQ+E,EAAOzS,GACjD7M,EAAK+D,KAAKub,EAAMlO,SAAS,SAASztB,EAAM62B,GACtC,IAAI/4B,EAAQ84B,EAAO52B,GACnB,GAAc,OAAVlC,QAA4BwI,IAAVxI,EAAtB,CAEA,IAAI0pC,EAAaqJ,EAAQha,GAEzBma,EADAxJ,EAAa8B,EAASA,EAAS,IAAM9B,EAAaA,EACtB1pC,EAAO+4B,EAAQ3N,EAJM,CAKnD,GACF,CA2CA,SAAS8nB,EAAgBhxC,EAAMlC,EAAO69B,EAAOzS,GAC7B,OAAVprB,QAA4BwI,IAAVxI,IACH,cAAf69B,EAAMzwB,KACR6lC,EAAmB/wC,EAAMlC,EAAO69B,EAAOzS,GACf,SAAfyS,EAAMzwB,KAjCnB,SAAuBlL,EAAMuyB,EAAMoJ,EAAOzS,GACxC,IAAI+nB,EAActV,EAAM9E,QAAU,CAAC,EAEf,IAAhBtE,EAAKv1B,OAOTqf,EAAK2L,UAAUuK,GAAM,SAAU8d,EAAGxwC,GAChC,IAAIqxC,EAAS,KAAOrxC,EAAI,GACxB,GAA2B,QAAvB87B,EAAMzO,IAAI0U,SAEZsP,GAAkB,QACb,GAAIvV,EAAMgN,WACf,GAAIsI,EAAYjxC,KAAM,CACpB,IAAI4e,EAAQ5e,EAAK6e,MAAM,KACvBD,EAAMgwB,MACNhwB,EAAMliB,KAAKm0C,EAAQI,IACnBjxC,EAAO4e,EAAMiN,KAAK,IACpB,OAEAqlB,EAAS,KAAOD,EAAYjxC,KAAOixC,EAAYjxC,KAAO,UAAYkxC,EAEpEF,EAAgBhxC,EAAOkxC,EAAQb,EAAGY,EAAa/nB,EACjD,IAtB6B,QAAvByS,EAAMzO,IAAI0U,UACZ1Y,EAAG1qB,KAAK+Y,KAAMvX,EAAM,KAsB1B,CAOImxC,CAAcnxC,EAAMlC,EAAO69B,EAAOzS,GACV,QAAfyS,EAAMzwB,KA/CnB,SAAsBlL,EAAMkyB,EAAKyJ,EAAOzS,GACtC,IAAIpsB,EAAI,EACRuf,EAAK+D,KAAK8R,GAAK,SAAU/0B,EAAKW,GAC5B,IACIub,GADSsiB,EAAMgN,UAAY,IAAM,WACZ7rC,IAAO,IAC5Bs0C,EAAU/3B,GAAYsiB,EAAMx+B,IAAI6C,MAAQ,OACxCqxC,EAAYh4B,GAAYsiB,EAAM79B,MAAMkC,MAAQ,SAChDgxC,EAAgBhxC,EAAOoxC,EAASj0C,EAAKw+B,EAAMx+B,IAAK+rB,GAChD8nB,EAAgBhxC,EAAOqxC,EAAWvzC,EAAO69B,EAAM79B,MAAOorB,EACxD,GACF,CAsCIooB,CAAatxC,EAAMlC,EAAO69B,EAAOzS,GAEjCA,EAAGlpB,EAAM27B,EAAM+I,aAAa5mC,GAAOgC,YAEvC,CA3EAgvC,EAAqBjxC,UAAUoxC,UAAY,SAAStmB,EAAQ5lB,EAAOmmB,GACjE6nB,EAAmB,GAAIpoB,EAAQ5lB,EAAOmmB,EACxC,EA8EAjZ,EAAOpU,QAAUizC,mBCrFjB,IAAIv/B,EAAMD,EAAQ,OAKd2Z,EAAU,KAKViE,EAAM,CACNxJ,iBAAkB,KAClB6hB,YAAa,SACbnY,WAAY,CAAC,GAMbmkB,EAA2B,CAC3BnvB,OAAQ,SACRmc,SAAU,SACV+B,KAAM,SACNkR,SAAU,UAMdjiC,EAAI8D,IAAIgM,OAAS9P,EAAI8M,KAAKgB,QAAQ,CAoB9Bzf,YAAa,SAAgB4H,GACzB+R,KAAK/R,QAAUA,GAAW,CAAC,CAC/B,EAMAisC,sBAAuB,SAA+BvqC,GAElD,IAAI06B,EAAW,WACf,GAA8B,IAA1B16B,EAAI9I,QAAQwjC,GACZ,OAAO16B,EAAIk9B,UAAUxC,EAE7B,EAiEA8P,aAAc,SAAsBlsC,EAAS2Z,GAClB,oBAAZ3Z,QAAuCc,IAAb6Y,IACjCA,EAAW3Z,EACXA,EAAU,CAAC,GAEf,IAAIsQ,EAAOyB,KACPo6B,EAAkC,oBAAbxyB,EAEzB3Z,EAAU+J,EAAI8M,KAAK8F,MAAM5K,KAAK/R,QAASA,GAEvC,IAAIosC,EAAoBr6B,KAAKs6B,yBAAyBrsC,GACtD,IAA0B,IAAtBosC,EAA4B,CAC5B,GAAID,EACA,OAAOxyB,EAASyyB,EAAmB,MAEvC,MAAMA,CACV,CAGA,IAEIE,EAAiB,CACjB1vB,OAAQ5c,EAAQ4c,OAChBI,SAAU,IAAIjT,EAAIkwB,SAASj6B,EAAQ+4B,SAAW,IAAM/4B,EAAQ86B,MAC5Dzd,iBAAiB,EACjBa,iBAAkB,MAElBle,EAAQ+a,cACRuxB,EAAevxB,YAAc/a,EAAQ+a,cAEzC0I,EAAU,IAAI1Z,EAAIC,QAAQsiC,IAElB5kB,IAAMA,EAEd,IAAID,EAAUhE,EAAQuF,cAItB,GAFAjX,KAAKw6B,0BAA0B9kB,EAASznB,IAEpCmsC,EAOG,CACH,IAAIzqC,EAAM+lB,EAAQ0gB,QA3BR,KA4BV,OAAOp2B,KAAKk6B,sBAAsBvqC,EACtC,CATI+lB,EAAQ0gB,QApBE,KAoBe,SAASluC,EAAKyH,GAC/BA,IACAA,EAAM4O,EAAK27B,sBAAsBvqC,IAErCiY,EAAS1f,EAAKyH,EAClB,GAKR,EAMA6qC,0BAA2B,SAAmC9kB,EAASznB,GACnEynB,EAAQrpB,GAAG,QAASqpB,EAAQ+kB,YACV/kB,EAAQoB,YACdmJ,KAAOjoB,EAAI8M,KAAKimB,oBAAoB,CAC5C0M,OAAQ,UACRiD,OAAQzsC,EAAQgsC,UAExB,EAOAK,yBAA0B,SAAkCrsC,GAExD,IAAImb,EAAU,GAEd,IAAK,IAAIxjB,KADTqI,EAAUA,GAAW,CAAC,EACN+rC,EACPp1C,OAAO0B,UAAU4C,eAAejC,KAAK+yC,EAA0Bp0C,WAGzDqI,EAAQrI,KAASo0C,EAAyBp0C,KACjDwjB,GAAW,WAAcxjB,EAAM,4BAAgCo0C,EAAyBp0C,GAAO,kBAAsBqI,EAAQrI,GAAO,QAG5I,OAAIwjB,EAAQ3jB,QACDuS,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAC/B8e,KAAM,mBACNC,QAASA,GAIrB,eCxNJ1Q,EAAOpU,QAAU,CAEfq2C,IAAK,WACH,MAA2B,qBAAhBC,aAA0D,oBAApBA,YAAYD,IACpDC,YAAYD,MAEdvqB,KAAKuqB,KACd,cCSFjiC,EAAOpU,QAAU,CACfu2C,aAjBF,SAAsBhwB,GACpB,MAAyB,kBAAXA,IAAwBA,EAAOiwB,WAAW,UAAYjwB,EAAOkwB,SAAS,SACtF,EAgBEC,eAdF,SAAwBnwB,GACtB,MAAyB,kBAAXA,GAAuB,CAAC,aAAc,qBAAqBtc,SAASsc,EACpF,EAaEowB,cAXF,SAAuBpwB,GACrB,MAAO,CAAC,kBAAmB,WAAY,cAActc,SAASsc,GACxD,YACA,CAAC,yBAA0B,qBAAqBtc,SAASsc,GACzD,gBACAA,EAAO5E,QAAQ,2BAA4B,GACnD,oBCdA,IAAInB,EAAO/M,EAAQ,OACfmjC,EAAenjC,EAAQ,OA2B3B,SAASojC,EAAYzpB,EAASnE,GAC5BzI,EAAK+D,KAAK0E,GAAQ,SAAS3nB,EAAKW,GAClB,mBAARX,SACwBmJ,IAAxB2iB,EAAQnE,OAAO3nB,IAA8C,OAAxB8rB,EAAQnE,OAAO3nB,KACtD8rB,EAAQnE,OAAO3nB,GAAOW,GAE1B,GACF,CAyEAmS,EAAOpU,QAAU,CACf82C,kBAxEF,SAA2B1pB,GAIzB,IAHA,IAAI/sB,EA5BN,SAAqB+sB,GACnB,IAAI7G,EAAS6G,EAAQnE,OAAO1C,OACxBwwB,EATN,SAA8BxwB,GAC5B,IAAKA,EAAQ,OAAO,KACpB,IAAIxD,EAAQwD,EAAOvD,MAAM,KACzB,OAAID,EAAM5hB,OAAS,EAAU,KACtB4hB,EAAM7e,MAAM,EAAG6e,EAAM5hB,OAAS,GAAG6uB,KAAK,KAAO,IACtD,CAIqBgnB,CAAqBzwB,GACpCkjB,EAAiBrc,EAAQiE,IAAIoY,eAEjC,MAAO,CACL,CAACljB,EAAQkjB,GACT,CAACsN,EAActN,GACf,CAACljB,EAAQ,KACT,CAACwwB,EAAc,KACf,CAAC,IAAKtN,GACN,CAACljB,EAAQ,cACT,CAAC,IAAK,MACN8P,KAAI,SAAS4gB,GACb,OAAOA,EAAK,IAAMA,EAAK,GAAKA,EAAKjnB,KAAK,KAAO,IAC/C,GACF,CAYaknB,CAAY9pB,GACnB9E,EAAkB8E,EAAQnE,OAAOX,gBACjCC,EAAuB6E,EAAQnE,OAAOV,qBACjCtnB,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAAK,CACpC,IAAIK,EAAMjB,EAAKY,GACf,GAAKK,EAAL,CAEA,IAAIw+B,EAAQxX,EACRC,EACEquB,EAAaO,mBACbP,EAAaQ,UACf7uB,EACAquB,EAAaS,eACbT,EAAa9W,MAEjB,GAAIx/B,OAAO0B,UAAU4C,eAAejC,KAAKm9B,EAAOx+B,GAAM,CACpD,IAAI2nB,EAAS6W,EAAMx+B,GACG,kBAAX2nB,IACTA,EAAS2tB,EAAaU,SAASruB,IAIjCmE,EAAQmS,mBAAqBtW,EAAO0gB,eAChC1gB,EAAOsuB,gBACTnqB,EAAQmqB,cAAgBtuB,EAAOsuB,eAI5BtuB,EAAOpB,mBAIVoB,EAAOpB,iBAAmB,MAG5B,IAAI2vB,EAA8D,YAAjDpqB,EAAQiE,KAAOjE,EAAQiE,IAAIxJ,kBAQ5C,YALAgvB,EAAYzpB,EAAS9sB,OAAOsyC,OAC1B,CAAC,EACD3pB,EACA,CAAEpB,iBAAkB2vB,EAAY,SAAWvuB,EAAOpB,mBAGtD,CAvCkB,CAwCpB,CACF,EA0BE4vB,kBAxBF,SAA2BlxB,GAWzB,IAVA,IAAImxB,EAAgB,CAClB,sCAAuC,gBACvC,qBAAsB,mBACtB,2BAA4B,gBAC5B,2BAA4B,aAC5B,4BAA6B,gBAC7B,yBAA0B,kBAGxBC,EAAUr3C,OAAOD,KAAKq3C,GACjBz2C,EAAI,EAAGA,EAAI02C,EAAQx2C,OAAQF,IAAK,CACvC,IAAI22C,EAAgBnY,OAAOkY,EAAQ12C,IAC/B42C,EAAYH,EAAcC,EAAQ12C,IACtC,GAAI22C,EAAcvzC,KAAKkiB,GAAS,OAAOsxB,CACzC,CACA,MAPoB,eAQtB,oBCvGA,IAAInkC,EAAMD,EAAQ,OACdqkC,EAAuBrkC,EAAQ,OAC/B+N,EAAU9N,EAAI8M,KAAKgB,QACnBu2B,EAASrkC,EAAI8M,KAAKu3B,OAClBC,EAAWvkC,EAAQ,OAKnBwkC,EAAkB,CAACC,QAAS,EAAGjnC,MAAO,EAAGknC,SAAU,GAMvD,IAAIC,EAAM,IAAIN,EACdM,EAAIC,YAAc,WAChB,IAAIC,EAAa,SAASpoB,EAAGvsB,GAC3B,IAAIsW,EAAOyB,KACXzB,EAAKs+B,sBAAuB,EAE5Bt+B,EAAKioB,KAAKjoB,EAAKu+B,KAAKC,cAAc,SAAS70C,GACzC,GAAIA,EACF,GAZiB80C,EAYGz+B,EAXnB3Z,OAAO0B,UAAU4C,eAAejC,KAAKs1C,EAAiBS,EAAQF,KAAKC,cAWzC,CACzB,KAAIV,GAAU99B,EAAK89B,kBAAkBA,EAAOY,QAM1C,MAAM/0C,EALNA,EAAIg1C,cAAgB3+B,EACpBrW,EAAIm0C,OAAS99B,EAAK89B,OAClBn0C,EAAIi1C,cAAe,EACnB5+B,EAAK89B,OAAO7V,KAAK,QAASt+B,EAI9B,MACEqW,EAAK4Z,SAAS5iB,MAAQrN,EACtBD,EAAKC,QAGPD,EAAKsW,EAAK4Z,SAAS5iB,OA1B3B,IAAyBynC,CA4BrB,GAEF,EAEAh9B,KAAKo9B,SAAS,WAAY,QAAS,QAASR,GAC5C58B,KAAKo9B,SAAS,QAAS,aAAc,UAAWR,GAChD58B,KAAKo9B,SAAS,aAAc,OAAQ,UAAWR,GAC/C58B,KAAKo9B,SAAS,OAAQ,OAAQ,QAASR,GACvC58B,KAAKo9B,SAAS,QAAS,aAAc,aAAcR,GACnD58B,KAAKo9B,SAAS,aAAc,OAAQ,QAASR,GAC7C58B,KAAKo9B,SAAS,OAAQ,mBAAoB,QAASR,GACnD58B,KAAKo9B,SAAS,mBAAoB,cAAe,eAAgBR,GACjE58B,KAAKo9B,SAAS,eAAgB,cAAe,QAASR,GACtD58B,KAAKo9B,SAAS,cAAe,UAAW,QAASR,GACjD58B,KAAKo9B,SAAS,UAAW,QAAS,QAASR,GAC3C58B,KAAKo9B,SAAS,UAAW,WAAY,WAAYR,GACjD58B,KAAKo9B,SAAS,QAAS,WAAY,WAAYR,GAC/C58B,KAAKo9B,SAAS,WAAY,KAAM,KAAMR,EACxC,EACAF,EAAIC,cAgPJ3kC,EAAImV,QAAUrH,EAAQ,CAYpBzf,YAAa,SAAiBqrB,EAASE,EAAWR,GAChD,IAAInG,EAAWyG,EAAQzG,SACnBJ,EAAS6G,EAAQnE,OAAO1C,OACxBmB,EAAkB0F,EAAQnE,OAAOvB,gBAEjC0F,EAAQmqB,cACVhxB,EAAS6G,EAAQmqB,cACRnqB,EAAQmS,mBACjBhZ,EAAS,aAGX7K,KAAKq8B,OAASA,GAAUA,EAAOgB,OAC/Br9B,KAAK0R,QAAUA,EACf1R,KAAK4R,UAAYA,EACjB5R,KAAKoR,OAASA,GAAU,CAAC,EACzBpR,KAAK8W,YAAc,IAAI9e,EAAIutB,YAAYta,EAAUJ,GACjD7K,KAAK8W,YAAYmD,kBAAkBjO,GACnChM,KAAKopB,UAAY1X,EAAQiU,uBAEzB3lB,KAAKmY,SAAW,IAAIngB,EAAIslC,SAASt9B,MACjCA,KAAK88B,KAAO,IAAIV,EAAqBM,EAAIa,OAAQ,YACjDv9B,KAAK68B,sBAAuB,EAE5B7kC,EAAIsX,mBAAmBroB,KAAK+Y,MAC5BA,KAAKwmB,KAAOxmB,KAAKw9B,SACnB,EA0BA5lB,KAAM,SAAchQ,GAUlB,OATIA,IAEF5H,KAAK8W,YAAYmD,kBAAkB,YACnCja,KAAK3T,GAAG,YAAY,SAAU2xB,GAC5BpW,EAAS3gB,KAAK+2B,EAAMA,EAAKzoB,MAAOyoB,EAAKze,KACvC,KAEFS,KAAKy9B,QAEEz9B,KAAKmY,QACd,EAyBAiV,MAAO,SAAexlB,GACpB,OAAO5H,KAAKy9B,MAAM,OAAQ71B,EAC5B,EAKA61B,MAAO,SAAe58B,EAAO5Y,GAE3B,OADA+X,KAAK88B,KAAKW,MAAM58B,EAAO5Y,EAAM+X,MACtBA,IACT,EAwBA09B,MAAO,WAkBL,OAjBA19B,KAAKm2B,mBAAmB,oBACxBn2B,KAAKm2B,mBAAmB,gBACxBn2B,KAAK3T,GAAG,oBAAoB,SAAyB2xB,GACnDA,EAAKzoB,MAAQyC,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAM,2BAA4B,CAC/D8e,KAAM,sBAAuBiP,WAAW,GAE7C,IAEIpY,KAAK8W,YAAY6I,SAAW3f,KAAK8W,YAAY6I,OAAOmH,cACtD9mB,KAAK8W,YAAY6I,OAAO+d,QACpB19B,KAAK8W,YAAYuQ,eAClBrnB,KAAK8W,YAAYuQ,iBAElBrnB,KAAKm2B,mBAAmB,SAIrBn2B,IACT,EAyCA29B,SAAU,SAAkB/1B,GAE1BA,EAAW5P,EAAI8M,KAAK6M,GAAGisB,UAAUh2B,EAAU,GAc3C5H,KAAK3T,GAAG,YAZR,SAASwxC,EAAgB1lB,GACvBvQ,EAAS3gB,KAAKkxB,EAAUA,EAAS5iB,MAAO4iB,EAAS5Y,MAAM,SAAUlQ,IAChD,IAAXA,IAEA8oB,EAAS+F,cACX/F,EAAS4F,WAAW1xB,GAAG,WAAYwxC,GAAiBjmB,OAEpDhQ,EAAS3gB,KAAKkxB,EAAU,KAAM,KAAMngB,EAAI8M,KAAK6M,GAAGmsB,MAEpD,GACF,IAEqClmB,MACvC,EASAmmB,SAAU,SAAkBn2B,GAC1B,IAAIrJ,EAAOyB,KAmBXA,KAAK29B,UAlBL,SAAyBz1C,EAAKqX,GAC5B,GAAIrX,EAAK,OAAO0f,EAAS1f,EAAK,MAC9B,GAAa,OAATqX,EAAe,OAAOqI,EAAS,KAAM,MAEzC,IACIo2B,EADSz/B,EAAKmT,QAAQuM,iBAAiB1f,EAAKqT,WACzBosB,UACnBx2C,MAAMC,QAAQu2C,KAAYA,EAAYA,EAAU,IACpD,IAAIC,EAAQ3B,EAASh0B,OAAO/I,EAAMy+B,GAC9BE,GAAoB,EAOxB,OANAlmC,EAAI8M,KAAK2L,UAAUwtB,GAAO,SAAS1C,GAEjC,IAA0B,KAD1B2C,EAAoBt2B,EAAS,KAAM2zB,IAEjC,OAAOvjC,EAAI8M,KAAK44B,KAEpB,IACOQ,CACT,GAGF,EAQAC,WAAY,WACV,QAAOn+B,KAAK0R,QAAQuM,iBAAiBje,KAAK4R,UAC5C,EAmBAwsB,iBAAkB,WAChB,IAAIC,EAAUrmC,EAAI8M,KAAK6a,OACnBjC,EAAM1d,KACN2f,EAAS,KAqGb,OAnGyC,IAArC3nB,EAAI0uB,WAAWC,mBACjBhH,EAAS,IAAI0e,EAAQC,YACrB74B,QAAQ84B,UAAS,WAAa7gB,EAAI9F,MAAQ,OAE1C+H,EAAS,IAAI0e,EAAQ3e,QACd8e,UAAW,EAElB7e,EAAO8e,MAAO,EACd9e,EAAOtzB,GAAG,eAAe,SAASR,GAC3B8zB,EAAO8e,MAAkB,SAAV5yC,IAClB8zB,EAAO8e,MAAO,EACdh5B,QAAQ84B,UAAS,WAAa7gB,EAAI9F,MAAQ,IAE9C,KAGF5X,KAAK3T,GAAG,SAAS,SAASnE,GACxBy3B,EAAO6G,KAAK,QAASt+B,EACvB,IAEA8X,KAAK3T,GAAG,eAAe,SAAuBssB,EAAYH,EAASwF,GACjE,GAAIrF,EAAa,IAAK,CACpB+E,EAAIrG,eAAe,WAAYrf,EAAIsf,eAAeC,KAAKmnB,WACvDhhB,EAAIrG,eAAe,YAAarf,EAAIsf,eAAeC,KAAKonB,YACxDjhB,EAAIrxB,GAAG,aAAa,SAAyBkJ,GAC3CyoB,EAAKzoB,MAAQA,EACbyoB,EAAKzoB,MAAM6iB,WAAY,CACzB,IAEA,IACIwmB,EADAC,GAA2B,EAK/B,GAH+B,SAA3BnhB,EAAI5G,YAAYwT,SAClBsU,EAAc7d,SAASvI,EAAQ,kBAAmB,UAEhCzpB,IAAhB6vC,IAA8BE,MAAMF,IAAgBA,GAAe,EAAG,CACxEC,GAA2B,EAC3B,IAAIE,EAAc,CACpB,CAEA,IAAIC,EAA4B,WAC1BH,GAA4BE,IAAgBH,EAC9Cjf,EAAO6G,KAAK,QAASxuB,EAAI8M,KAAKvP,MAC5B,IAAIlL,MAAM,4CACR00C,EAAc,OAASH,EAAc,WACvC,CAAEz1B,KAAM,iCAEoC,IAArCnR,EAAI0uB,WAAWC,kBACxBhH,EAAOsf,MAEPtf,EAAO6G,KAAK,MAEhB,EAEI0Y,EAAalhB,EAAKtF,aAAayS,yBAEnC,GAAyC,IAArCnzB,EAAI0uB,WAAWC,kBACjB,GAAIkY,EAA0B,CAC5B,IAAIM,EAAoB,IAAId,EAAQC,YACpCa,EAAkBC,OAAS,SAASxX,GAIlC,OAHIA,GAASA,EAAMniC,SACjBs5C,GAAenX,EAAMniC,QAEhB44C,EAAQC,YAAYh4C,UAAU84C,OAAOh6C,MAAM4a,KAAMxa,UAC1D,EAEA25C,EAAkB9yC,GAAG,MAAO2yC,GAC5Brf,EAAOtzB,GAAG,SAAS,SAASnE,GAC1B22C,GAA2B,EAC3BK,EAAWG,OAAOF,GAClBA,EAAkB3Y,KAAK,OACvB2Y,EAAkBF,KACpB,IACAC,EAAWI,KAAKH,GAAmBG,KAAK3f,EAAQ,CAAEsf,KAAK,GACzD,MACEC,EAAWI,KAAK3f,QAIdkf,GACFK,EAAW7yC,GAAG,QAAQ,SAAS+S,GACzBA,GAAOA,EAAI3Z,SACbs5C,GAAe3/B,EAAI3Z,OAEvB,IAGFy5C,EAAW7yC,GAAG,QAAQ,SAAS+S,GAC7BugB,EAAO6G,KAAK,OAAQpnB,EACtB,IACA8/B,EAAW7yC,GAAG,MAAO2yC,GAGvBE,EAAW7yC,GAAG,SAAS,SAASnE,GAC9B22C,GAA2B,EAC3Blf,EAAO6G,KAAK,QAASt+B,EACvB,GACF,CACF,IAEOy3B,CACT,EAOA6d,UAAW,SAAc+B,EAAWC,EAAMv3C,GACpB,oBAATu3C,IAAuBv3C,EAAOu3C,EAAMA,EAAO,MACjDv3C,IAAMA,EAAO,WAAa,GAC1Bu3C,IAAMA,EAAOx/B,KAAKy/B,gBAAgBF,EAAWv/B,KAAKmY,WAExCngB,EAAIsX,mBAAmBhpB,UAAUkgC,KACvCv/B,KAAK+Y,KAAMu/B,EAAWC,GAAM,SAAUt3C,GACzCA,IAAK8X,KAAKmY,SAAS5iB,MAAQrN,GAC/BD,EAAKhB,KAAK+Y,KAAM9X,EAClB,GACF,EAKAu3C,gBAAiB,SAAyBF,GACxC,OAAQA,GACN,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,gBACL,IAAK,aACH,MAAO,CAACv/B,MACV,IAAK,QACH,MAAO,CAACA,KAAKmY,SAAS5iB,MAAOyK,KAAKmY,UACpC,QACE,MAAO,CAACnY,KAAKmY,UAEnB,EAKAie,QAAS,SAAiB5vB,EAASoB,GAKjC,OAJKA,GAA+B,oBAAZpB,IACtBoB,EAAWpB,EACXA,EAAU,OAEL,IAAIxO,EAAIsW,QAAQoxB,SAAUp5B,KAAKtG,KAAK2/B,QAASn5B,EAASoB,EAC/D,EAKAwR,YAAa,WACX,OAAOx0B,OAAO0B,UAAU4C,eAAejC,KAAK+Y,KAAK8W,YAAY0B,QAAS,oBACxE,EAKAonB,kBAAmB,WAIjB,OAHA5/B,KAAK6/B,kBAAmB,EACxB7/B,KAAKqX,eAAe,WAAYrf,EAAIsf,eAAeC,KAAKuoB,sBACxD9/B,KAAKqX,eAAe,OAAQrf,EAAIsf,eAAeC,KAAKwoB,MAC7C//B,IACT,EAKA2/B,MAAO,WAML,MALkC,UAA9B3/B,KAAK0R,QAAQiE,IAAI0U,UACa,QAA9BrqB,KAAK0R,QAAQiE,IAAI0U,WACnBrqB,KAAKqX,eAAe,QAASrX,KAAKy6B,YAClCz6B,KAAKggC,YAAY,QAAShgC,KAAKy6B,aAE1Bz6B,IACT,EAKAy6B,WAAY,SAAoB/kB,GAC9BA,EAAQoB,YAAYwT,OAAS,MAC7B5U,EAAQoB,YAAYpP,KAAOgO,EAAQhE,QAAQzG,SAASvD,KACzB,IAAMgO,EAAQoB,YAAYmJ,KACrDvK,EAAQoB,YAAYmJ,KAAO,UAGpBvK,EAAQoB,YAAY0B,QAAQ,yBAC5B9C,EAAQoB,YAAY0B,QAAQ,eACrC,EAKAkM,oBAAqB,WACnB1kB,KAAK68B,sBAAuB,CAC9B,IAMF7kC,EAAImV,QAAQwD,mBAAqB,SAA4BC,GAC3D5Q,KAAK1Z,UAAU25C,QAAU,WACvB,IAAI1hC,EAAOyB,KAGX,OADAA,KAAK8W,YAAYmD,kBAAkB,WAC5B,IAAIrJ,GAAkB,SAASxhB,EAAS8wC,GAC7C3hC,EAAKlS,GAAG,YAAY,SAAS2xB,GACvBA,EAAKzoB,MACP2qC,EAAOliB,EAAKzoB,OAIZnG,EAAQxK,OAAOoB,eACbg4B,EAAKze,MAAQ,CAAC,EACd,YACA,CAAChZ,MAAOy3B,IAGd,IACAzf,EAAKk/B,OACP,GACF,CACF,EAKAzlC,EAAImV,QAAQ6D,wBAA0B,kBAC7BhR,KAAK1Z,UAAU25C,OACxB,EAEAjoC,EAAI8M,KAAKuI,YAAYrV,EAAImV,SAEzBnV,EAAI8M,KAAKq7B,MAAMnoC,EAAImV,QAASnV,EAAIsX,qCCzxBhC,IAAItX,EAAMD,EAAQ,OACd+N,EAAU9N,EAAI8M,KAAKgB,QACnBw2B,EAAWvkC,EAAQ,OAKvB,SAASqoC,EAAgBpiB,GACvB,IAAI6Q,EAAS7Q,EAAKtI,QAAQ2qB,QACtBC,EAAYzR,EAAOthB,OAAO+yB,UAC1BC,GAAkB,EAClB1/B,EAAQ,QAEZy/B,EAAU36C,SAAQ,SAAS66C,GACzB,IAAKD,EAAiB,CACpB,IAAIE,EAAU5R,EAAO6R,SAASF,EAASC,SACnCA,GAAWA,EAAQziB,EAAMwiB,EAASG,SAAUH,EAASI,YACvDL,GAAkB,EAClB1/B,EAAQ2/B,EAAS3/B,MAErB,CACF,KAEK0/B,GAAmBviB,EAAKzoB,QAAOsL,EAAQ,WAE9B,YAAVA,EACFguB,EAAOgS,WAAW7iB,GAElB6Q,EAAOiS,SAAS9iB,EAAgB,UAAVnd,EAE1B,CAKA7I,EAAImX,eAAiBrJ,EAAQ,CAU3Bzf,YAAa,SAAqBqrB,EAAS7Q,GACzCb,KAAK0R,QAAUA,EACf1R,KAAKa,MAAQA,EACbb,KAAK+gC,iBAAiB/gC,KAAKa,MAC7B,EAEA6Q,QAAS,KAET7Q,MAAO,KAEP0M,OAAQ,KAERmzB,SAAU,CACRh5B,KAAM,SAASsW,EAAM2iB,EAAUC,GAC7B,IACE,IAAIvxC,EAASitC,EAASh0B,OAAO0V,EAAKze,KAAMqhC,EAC1C,CAAE,MAAO14C,GACP,OAAO,CACT,CAEA,OAAOo0C,EAAS0E,gBAAgB3xC,EAAOsxC,EACzC,EAEAM,QAAS,SAASjjB,EAAM2iB,EAAUC,GAChC,IACE,IAAIM,EAAU5E,EAASh0B,OAAO0V,EAAKze,KAAMqhC,EAC3C,CAAE,MAAO14C,GACP,OAAO,CACT,CAEKV,MAAMC,QAAQy5C,KAAUA,EAAU,CAACA,IACxC,IAAIC,EAAaD,EAAQz7C,OACzB,IAAK07C,EAAY,OAAO,EACxB,IAAK,IAAIC,EAAM,EAAIA,EAAMD,EAAYC,IACnC,IAAK9E,EAAS0E,gBAAgBE,EAAQE,GAAMT,GAC1C,OAAO,EAGX,OAAO,CACT,EAEAU,QAAS,SAASrjB,EAAM2iB,EAAUC,GAChC,IACE,IAAIM,EAAU5E,EAASh0B,OAAO0V,EAAKze,KAAMqhC,EAC3C,CAAE,MAAO14C,GACP,OAAO,CACT,CAEKV,MAAMC,QAAQy5C,KAAUA,EAAU,CAACA,IAExC,IADA,IAAIC,EAAaD,EAAQz7C,OAChB27C,EAAM,EAAIA,EAAMD,EAAYC,IACnC,GAAI9E,EAAS0E,gBAAgBE,EAAQE,GAAMT,GACzC,OAAO,EAGX,OAAO,CACT,EAEApX,OAAQ,SAASvL,EAAM2iB,GACrB,IAAIhoB,EAAaqF,EAAKtF,aAAaC,WACnC,MAA8B,kBAAfA,GAA6BA,IAAegoB,CAC7D,EAEAprC,MAAO,SAASyoB,EAAM2iB,GACpB,MAAwB,kBAAbA,GAAyB3iB,EAAKzoB,MAChCorC,IAAa3iB,EAAKzoB,MAAM4T,KAG1Bw3B,MAAe3iB,EAAKzoB,KAC7B,GAGF+rC,WAAW,IAAItpC,EAAIsX,oBAAqBoU,mBAAkB,SAASC,GACjEA,EAAI,cAAe,SAAS,SAAS3F,GACnC,IAAI6Q,EAAS7Q,EAAKtI,QAAQ2qB,QACtBriB,EAAKzoB,OAA6B,qBAApByoB,EAAKzoB,MAAM4T,OAC3B6U,EAAKzoB,MAAM8yB,WAA0C,KAA5BwG,EAAOthB,OAAOgb,OAAS,GAEpD,IAEA5E,EAAI,eAAgB,cAAeyc,GAEnCzc,EAAI,cAAe,eAAgByc,EACrC,IAKAmB,KAAM,SAAcnwB,EAAQxJ,GACJ,oBAAXwJ,IACTxJ,EAAWwJ,EAAQA,OAASriB,GAG1BqiB,GAAUA,EAAOowB,UAEiB,kBADpCpwB,EAASpZ,EAAI8M,KAAKgI,KAAKsE,IACLowB,QAAQjZ,QACxBvoB,KAAKuN,OAAOgb,MAAQnX,EAAOowB,QAAQjZ,OAEK,kBAA/BnX,EAAOowB,QAAQC,cACxBzhC,KAAKuN,OAAOk0B,YAAcrwB,EAAOowB,QAAQC,oBAEpCrwB,EAAOowB,SAGhB,IAAI9rB,EAAU1V,KAAK0R,QAAQuF,YAAYjX,KAAKuN,OAAOqE,UAAWR,GAM9D,OALAsE,EAAQ2qB,QAAUrgC,KAClB0V,EAAQyC,SAAS/M,WAAapL,KAAKuN,OAAOk0B,YAC1C/rB,EAAQgsB,aAAa1hC,KAAKshC,WAEtB15B,GAAU8N,EAAQkC,KAAKhQ,GACpB8N,CACT,EAEAmrB,WAAY,SAAoB7iB,GAC9BA,EAAKzoB,MAAQ,KACbyoB,EAAKze,KAAOye,EAAKze,MAAQ,CAAC,EAC1Bye,EAAKtI,QAAQygB,mBAAmB,cAClC,EAEA2K,SAAU,SAAkB9iB,EAAM5F,GAChC4F,EAAKze,KAAO,KACZye,EAAKzoB,MAAQyC,EAAI8M,KAAKvP,MAAMyoB,EAAKzoB,OAAS,IAAIlL,MAAS,CACrD8e,KAAM,mBACNC,QAAS,gCAAkCpJ,KAAKa,MAChDuX,UAAWA,GAEf,EAOA2oB,iBAAkB,SAA0BlgC,GAC1C,IAAKb,KAAK0R,QAAQiE,IAAIld,QAAQoI,GAC5B,MAAM,IAAI7I,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CACpC8e,KAAM,qBACNC,QAAS,SAAWvI,EAAQ,gBAIhCb,KAAKuN,OAASvV,EAAI8M,KAAKgI,KAAK9M,KAAK0R,QAAQiE,IAAIld,QAAQoI,GACvD,qBC1MF,IAAI7I,EAAMD,EAAQ,OACd+N,EAAU9N,EAAI8M,KAAKgB,QACnBw2B,EAAWvkC,EAAQ,OAgGvBC,EAAIslC,SAAWx3B,EAAQ,CAKrBzf,YAAa,SAAkBqvB,GAC7B1V,KAAK0V,QAAUA,EACf1V,KAAKT,KAAO,KACZS,KAAKzK,MAAQ,KACbyK,KAAKwlB,WAAa,EAClBxlB,KAAKooB,cAAgB,EACrBpoB,KAAK0Y,aAAe,IAAI1gB,EAAIkzB,aACxBxV,IACF1V,KAAKoL,WAAasK,EAAQhE,QAAQiwB,aAClC3hC,KAAKqL,aAAeqK,EAAQhE,QAAQnE,OAAOlC,aAE/C,EAiBA0S,SAAU,SAAkBnW,GAC1B,IAAI2F,EACAmE,EAAU1R,KAAK0V,QAAQhE,QACvBE,EAAY5R,KAAK0V,QAAQ9D,UAC7B,IACErE,EAASmE,EAAQuM,iBAAiBrM,GAAW,EAC/C,CAAE,MAAOrb,GAAKyJ,KAAKzK,MAAQgB,CAAG,CAE9B,IAAKyJ,KAAKke,cAAe,CACvB,GAAItW,EAAUA,EAAS5H,KAAKzK,MAAO,WAC9B,GAAIyK,KAAKzK,MAAO,MAAMyK,KAAKzK,MAChC,OAAO,IACT,CAEA,IAAI6b,EAASpZ,EAAI8M,KAAKgI,KAAK9M,KAAK0V,QAAQtE,QACxC,GAAKpR,KAAKme,eAEH,CACL,IAAIC,EAAc7Q,EAAO8Q,WACE,kBAAhBD,IAA0BA,EAAc,CAACA,IACpD,IAAK,IAAI74B,EAAI,EAAGA,EAAI64B,EAAY34B,OAAQF,IACtC6rB,EAAOgN,EAAY74B,IAAMya,KAAKme,eAAe54B,GAE/C,OAAOmsB,EAAQuF,YAAYjX,KAAK0V,QAAQ9D,UAAWR,EAAQxJ,EAC7D,CARE,OAAOA,EAAWA,EAAS,KAAM,MAAQ,IAS7C,EAOAsW,YAAa,WAEX,OADAle,KAAK4hC,wBACD5hC,KAAKme,qBACmBpvB,IAAxBiR,KAAKme,qBAA8B,CAEzC,EAKAyjB,oBAAqB,WACnB,GAAIh9C,OAAO0B,UAAU4C,eAAejC,KAAK+Y,KAAM,kBAAmB,OAAOA,KAAKme,eAC9Ene,KAAKme,oBAAiBpvB,EAEtB,IAAIwe,EAASvN,KAAK0V,QAAQhE,QAAQuM,iBAAiBje,KAAK0V,QAAQ9D,WAChE,IAAKrE,EAAQ,OAAOvN,KAAKme,eAGzB,GADAne,KAAKme,eAAiB,KAClB5Q,EAAOs0B,cACJvF,EAASh0B,OAAOtI,KAAKT,KAAMgO,EAAOs0B,aACrC,OAAO7hC,KAAKme,eAIhB,IAAI2jB,EAAQv0B,EAAOw0B,YAUnB,MATqB,kBAAVD,IAAoBA,EAAQ,CAACA,IACxC9pC,EAAI8M,KAAK2L,UAAUxpB,KAAK+Y,KAAM8hC,GAAO,SAAUE,GAC7C,IAAIjmB,EAASugB,EAASh0B,OAAOtI,KAAKT,KAAMyiC,GACpCjmB,IACF/b,KAAKme,eAAiBne,KAAKme,gBAAkB,GAC7Cne,KAAKme,eAAeh5B,KAAK42B,GAE7B,IAEO/b,KAAKme,cACd,qBCtMF,IAAInmB,EAAMD,EAAQ,OACdyH,EAAaxH,EAAI8M,KAAKja,OAAO2U,WAC7BP,EAASjH,EAAI8M,KAAK7F,OAoCtBjH,EAAImE,GAAGiR,cAAgBpV,EAAI8M,KAAKgB,QAAQ,CA4CtCzf,YAAa,SAAuB4H,GAClC,IAAIsQ,EAAOyB,KACXhI,EAAIsX,mBAAmBroB,KAAKsX,GAC5BA,EAAK0hB,KAAO,KACZ1hB,EAAK0jC,QAAU,KACf1jC,EAAKqJ,SAAW,KAChBrJ,EAAK8I,MAAQ,CAAC,EACd9I,EAAK2jC,aAAe,GACpB3jC,EAAK4jC,UAAY,WACf5jC,EAAKqJ,SAAS,IAAIvd,MAAM,mCAAqCkU,EAAK0hB,MACpE,EAEA1hB,EAAK8d,UAAUpuB,EACjB,EAKAouB,UAAW,SAAmBpuB,GAO5B,GANAA,EAAUA,GAAW,CAAC,EACtB+R,KAAKoiC,SAAWpiC,KAAKqiC,YAEjBp0C,EAAQq0C,YAAWtiC,KAAKsiC,UAAYr0C,EAAQq0C,WAC5Cr0C,EAAQm0C,WAAUpiC,KAAKoiC,SAAWn0C,EAAQm0C,UAC1Cn0C,EAAQs0C,oBAAmBviC,KAAKuiC,mBAAoB,GACpDt0C,EAAQu0C,KAAM,CAChB,IAAKh7C,MAAMC,QAAQwG,EAAQu0C,MACzB,MAAM,IAAIn4C,MAAM,8CACP4D,EAAQu0C,KAAO,cAE1BxiC,KAAKwiC,KAAOv0C,EAAQu0C,IACtB,CAEA,GAAIxiC,KAAKoiC,SAAWpiC,KAAKqiC,YACvB,MAAM,IAAIh4C,MAAM,iCACA2V,KAAKqiC,aAGvBriC,KAAK0R,QAAUzjB,EAAQyjB,QACvB1R,KAAKsc,kBAAkBruB,EAAQmjB,QAC/BpR,KAAKyiC,eACLziC,KAAK0iC,kBACP,EAKAH,mBAAmB,EAKnBD,UAAW,EAKXF,SAAU,KAOVC,YAAa,QAMbM,cAAe,IAmBf/qB,KAAM,SAAShQ,GACb,IAAIrJ,EAAOyB,KACXzB,EAAKqkC,QAAS,EACdrkC,EAAKqJ,SAAWA,GAAY,SAAS1f,GAAO,GAAIA,EAAK,MAAMA,CAAK,EAEhE,IAAI26C,GAAU,EACd,GAAItkC,EAAK0jC,QACP1jC,EAAK4jC,UAAY5jC,EAAKukC,gBACjB,GAAI9qC,EAAI8M,KAAKQ,SAAU,CAC5B,IAAIoa,EAAS1nB,EAAI8M,KAAK6a,OAAOD,OACzBnhB,EAAK0hB,gBAAgBP,IACvBmjB,GAAU,EACVtkC,EAAK4jC,UAAY5jC,EAAKwkC,WACtBxkC,EAAKykC,YAAc,GACnBzkC,EAAK0hB,KACH5zB,GAAG,SAAS,SAASnE,GAAOqW,EAAK0kC,QAAQ/6C,EAAM,IAC/CmE,GAAG,YAAY,WAAakS,EAAK4jC,WAAa,IAC9C91C,GAAG,OAAO,WACRkS,EAAK2kC,gBAAiB,EACtB3kC,EAAK4kC,SAAW5kC,EAAK6kC,iBACrB7kC,EAAK4jC,UAAUl7C,KAAKsX,GAEhBA,EAAK2kC,gBAAkB3kC,EAAK6kC,kBAAoB,GAAK7kC,EAAK8kC,YAAc9kC,EAAK4kC,UAC/E5kC,EAAK+kC,iBAET,IAEN,CAEIT,GAAStkC,EAAK4jC,UAAUl7C,KAAKsX,EACnC,EAgDAm/B,MAAO,WACL,IAAIn/B,EAAOyB,MAEiB,IAAxBzB,EAAK2kC,gBAAqD,IAA1B3kC,EAAK6kC,kBAA0B7kC,EAAKglC,WACtEhlC,EAAKglC,WAAW7F,QAEhBn/B,EAAK0kC,QAAQjrC,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAM,2BAA4B,CAChE8e,KAAM,sBAAuBiP,WAAW,IAG9C,EAKAqqB,aAAc,WACZ,IAAIlkC,EAAOyB,KAEX,GADAzB,EAAK0hB,KAAO1hB,EAAKmT,QAAQnE,OAAO6D,OAAOoyB,KACd,kBAAdjlC,EAAK0hB,KACd1hB,EAAK0hB,KAAOjoB,EAAI8M,KAAKnF,OAAOsc,SAAS1d,EAAK0hB,WACrC,IAAK1hB,EAAK0hB,KACf,MAAM,IAAI51B,MAAM,2BAElBkU,EAAK0jC,QAAUjqC,EAAI8M,KAAK2+B,aAAallC,EAAK0hB,KAC5C,EAKA3D,kBAAmB,SAA2BlL,GAC5CA,EAASA,GAAU,CAAC,EACpB,IAAI7S,EAAOyB,KAEX,GAAKzB,EAAKmT,QAEH,CAEL,IAAIA,EAAUnT,EAAKmT,QACfnE,EAASvV,EAAI8M,KAAKgI,KAAK4E,EAAQnE,QACnCA,EAAOpB,iBAAmBuF,EAAQgyB,sBAClCnlC,EAAKmT,QAAU,IAAIA,EAAQrrB,YAAYq2B,UAAUnP,GACjDhP,EAAKmT,QAAQnE,OAAO6D,OAClBpZ,EAAI8M,KAAK8F,MAAMrM,EAAKmT,QAAQnE,OAAO6D,QAAU,CAAC,EAAGA,GACnDxsB,OAAOoB,eAAeuY,EAAKmT,QAAS,kBAAmB,CACrDpZ,IAAK,WAAa,OAAOoZ,EAAQqH,eAAiB,EAClD7zB,YAAY,EACZsB,cAAc,GAElB,MAdE+X,EAAKmT,QAAU,IAAI1Z,EAAImE,GAAG,CAACiV,OAAQA,GAevC,EAKAsxB,iBAAkB,WAChB,IAAInkC,EAAOyB,KACX,IACEzB,EAAKolC,WAAankC,EAAWjB,EAAK0hB,KACpC,CAAE,MAAO1pB,GAAK,CAGd,GAAIgI,EAAKolC,WAAY,CACnB,IAAIC,EAAcvhC,KAAKwhC,KAAKtlC,EAAKolC,WAAaplC,EAAKokC,eAC/CiB,EAAcrlC,EAAK6jC,WAAU7jC,EAAK6jC,SAAWwB,EACnD,MACErlC,EAAKolC,gBAAa50C,CAEtB,EAKAm0C,gBAAgB,EAKhBY,QAAS,EAKTC,kBAAmB,EAKnBC,mBAAoB,EAKpBL,gBAAY50C,EAKZo0C,SAAU,EAKVC,iBAAkB,EAKlBa,YAAa,EAKbZ,UAAW,EAKXh8B,MAAO,KAKP66B,aAAc,KAKdU,QAAQ,EAKRsB,aAAc,KAKdlB,YAAa,KAKbmB,iBAAkB,EAKlBrB,WAAY,WACV,IAAIvkC,EAAOyB,KACPokC,EAAU5kC,EAAWjB,EAAK0hB,MAE9B,GAAgB,IAAZmkB,EAIF,OAHA7lC,EAAK2kC,gBAAiB,EACtB3kC,EAAK4kC,SAAW,OAChB5kC,EAAK8lC,UAAU9lC,EAAK0hB,MAItB,KAAO1hB,EAAK0lC,YAAc1lC,EAAK+jC,WAAa/jC,EAAKulC,QAAUM,GAAS,CAClE,IAAIE,EAASjiC,KAAK8tB,IAAI5xB,EAAKulC,QAAUvlC,EAAK6jC,SAAUgC,GAChD5R,EAAMj0B,EAAK0jC,QAAQh7C,KAAKsX,EAAK0hB,KAAM1hB,EAAKulC,QAASQ,GACrD/lC,EAAKulC,SAAWvlC,EAAK6jC,UAEjB5iC,EAAWgzB,GAAOj0B,EAAK6jC,UAAY7jC,EAAKulC,UAAYM,KACtD7lC,EAAK2kC,gBAAiB,EACtB3kC,EAAK4kC,SAAW5kC,EAAK6kC,iBAAmB,GAE1C7kC,EAAK8lC,UAAU7R,EACjB,CACF,EAKAuQ,WAAY,WACV,IAAIxkC,EAAOyB,KACX,KAAIzB,EAAK0lC,aAAe1lC,EAAK+jC,WAA7B,CAEA,IAAI9P,EAAMj0B,EAAK0hB,KAAK4G,KAAKtoB,EAAK6jC,SAAW7jC,EAAK4lC,mBACpC5lC,EAAK0hB,KAAK4G,OAOpB,GANI2L,IACFj0B,EAAKykC,YAAY79C,KAAKqtC,GACtBj0B,EAAK4lC,kBAAoB3R,EAAI/sC,OAC7B8Y,EAAKwlC,mBAAqBvR,EAAI/sC,QAG5B8Y,EAAK4lC,kBAAoB5lC,EAAK6jC,SAAU,CAE1C,IAAImC,EAAmC,IAA5BhmC,EAAKykC,YAAYv9C,OAC1B8Y,EAAKykC,YAAY,GAAK/jC,EAAOvQ,OAAO6P,EAAKykC,aAK3C,GAJAzkC,EAAKykC,YAAc,GACnBzkC,EAAK4lC,iBAAmB,EAGpBI,EAAK9+C,OAAS8Y,EAAK6jC,SAAU,CAC/B,IAAI1M,EAAO6O,EAAK/7C,MAAM+V,EAAK6jC,UAC3B7jC,EAAKykC,YAAY79C,KAAKuwC,GACtBn3B,EAAK4lC,kBAAoBzO,EAAKjwC,OAC9B8+C,EAAOA,EAAK/7C,MAAM,EAAG+V,EAAK6jC,SAC5B,CAEA7jC,EAAK8lC,UAAUE,EACjB,CAEIhmC,EAAK2kC,iBAAmB3kC,EAAKimC,gBAE/BD,EAAmC,IAA5BhmC,EAAKykC,YAAYv9C,OACpB8Y,EAAKykC,YAAY,GAAK/jC,EAAOvQ,OAAO6P,EAAKykC,aAC7CzkC,EAAKykC,YAAc,GACnBzkC,EAAK4lC,iBAAmB,EACxB5lC,EAAKolC,WAAaplC,EAAKwlC,kBACvBxlC,EAAKimC,eAAgB,GAEC,IAAlBjmC,EAAK4kC,UAAkBoB,EAAK9+C,OAAS,KACvC8Y,EAAK4kC,WACL5kC,EAAK8lC,UAAUE,KAInBhmC,EAAK0hB,KAAK4G,KAAK,EA3C+B,CA4ChD,EAKAwd,UAAW,SAAmBzc,GAC5B,IAAIrpB,EAAOyB,KACX,GAAIzB,EAAKqkC,OAAQ,OAAO,KAExB,IAAI6B,IAAelmC,EAAK6kC,iBACxB,GAAI7kC,EAAK2kC,gBAAiC,IAAfuB,EAAkB,CAC3C,IAAIrzB,EAAS,CAACoyB,KAAM5b,GAChB5nB,KAAKwiC,OACPpxB,EAAOszB,QAAU1kC,KAAK2kC,oBAExB,IAAIjnB,EAAMnf,EAAKmT,QAAQkzB,UAAUxzB,GAIjC,OAHAsM,EAAImnB,eAAiBtmC,EACrBmf,EAAIrxB,GAAG,qBAAsBkS,EAAKupB,UAAUlQ,KAAKrZ,EAAKumC,kBACtDvmC,EAAKglC,WAAa7lB,EACX,IACT,CAAO,GAAInf,EAAKmT,QAAQnE,OAAO6D,OAAO2zB,WAAY,CAChD,IAAI78C,EAAM8P,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAM,oEAAqE,CACtG8e,KAAM,gBAAiBiP,WAAW,IAIpC,OADA7Z,EAAK0kC,QAAQ/6C,GACN,IACT,CAEA,GAAIqW,EAAK2jC,aAAauC,IAAsD,OAAvClmC,EAAK2jC,aAAauC,GAAYO,KACjE,OAAO,KAGTzmC,EAAK0lC,cACA1lC,EAAKmT,QAAQnE,OAAO6D,OAAO6zB,SAiB9B1mC,EAAK2mC,WAAWtd,EAAO6c,GAflBlmC,EAAK2lC,aAYR3lC,EAAK4mC,YAAYvd,EAAO6c,IAXxBlmC,EAAK2lC,aAAe3lC,EAAKmT,QAAQ0zB,wBACjC7mC,EAAK2lC,aAAa73C,GAAG,WAAW,SAAS2xB,GACvCzf,EAAKmT,QAAQnE,OAAO6D,OAAO6zB,SAAWjnB,EAAKze,KAAK0lC,SAChD1mC,EAAK2lC,aAAe,IACtB,IACA3lC,EAAK4mC,YAAYvd,EAAO6c,GACxBlmC,EAAK2lC,aAAa73C,GAAG,SAAS,SAASnE,GACrCqW,EAAK0kC,QAAQ/6C,EACf,IACAqW,EAAK2lC,aAAatsB,OAOxB,EAKA+sB,iBAAkB,WAEhB,IADA,IAAIU,EAAgB,GACX9/C,EAAI,EAAGA,EAAIya,KAAKwiC,KAAK/8C,OAAQF,IACpC8/C,EAAclgD,KAAK6S,EAAI8M,KAAKyzB,UAAUv4B,KAAKwiC,KAAKj9C,GAAG+/C,KAAO,IACxDttC,EAAI8M,KAAKyzB,UAAUv4B,KAAKwiC,KAAKj9C,GAAGggD,QAGpC,OAAOF,EAAc/wB,KAAK,IAC5B,EAKA4wB,WAAY,SAAoBtd,EAAO6c,GACrC,IAAIlmC,EAAOyB,KAEPwlC,EAAa,CACfhC,KAAM5b,EACN6d,cAAeztC,EAAI8M,KAAKja,OAAO2U,WAAWooB,GAC1C8d,WAAYjB,GAGVkB,EAAW,CAACX,KAAM,KAAMU,WAAYjB,GACxClmC,EAAK2jC,aAAauC,GAAckB,EAEhC,IAAIjoB,EAAMnf,EAAKmT,QAAQwzB,WAAWM,GAClCjnC,EAAK8I,MAAMo9B,GAAc/mB,EACzBA,EAAIkoB,mBAAqB,EACzBloB,EAAImnB,eAAiBtmC,EACrBmf,EAAIrxB,GAAG,qBAAsBkS,EAAKupB,UAClCpK,EAAI9F,MAAK,SAAS1vB,EAAKqX,GAIrB,UAHOhB,EAAK8I,MAAMm+B,EAAWE,YAC7BnnC,EAAK0lC,eAEA/7C,KAASqX,IAASA,EAAKylC,MAAO,CACjC,IAAI57B,EAAU,0CACVpR,EAAI8M,KAAKO,cACX+D,GAAW,oDAGblhB,EAAM8P,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAM+e,GAAU,CACvCD,KAAM,cAAeiP,WAAW,GAEpC,CACA,OAAIlwB,EAAYqW,EAAK0kC,QAAQ/6C,GAEzBqW,EAAK2jC,aAAauC,IAAsD,OAAvClmC,EAAK2jC,aAAauC,GAAYO,KAAsB,MACzFW,EAASX,KAAOzlC,EAAKylC,KACrBzmC,EAAK8kC,iBACD9kC,EAAK2kC,gBAAkB3kC,EAAK8kC,YAAc9kC,EAAK6kC,iBACjD7kC,EAAK+kC,kBAEL/kC,EAAK4jC,UAAUl7C,KAAKsX,IAExB,GACF,EAKA4mC,YAAa,SAAqBvd,EAAO6c,GACvC,IAAIlmC,EAAOyB,KACXzB,EAAK2lC,aAAa73C,GAAG,WAAW,WAC9BkS,EAAK2mC,WAAWtd,EAAO6c,EACzB,GACF,EAKAxB,QAAS,SAAiB/6C,GACxB,IAAIqW,EAAOyB,KACPzB,EAAKqkC,SAGmC,oBAAjCrkC,EAAK0hB,KAAKkW,oBACW,oBAArB53B,EAAK0hB,KAAK4lB,SACnBtnC,EAAK0hB,KAAKkW,mBAAmB,YAC7B53B,EAAK0hB,KAAKkW,mBAAmB,OAC7B53B,EAAK0hB,KAAK4lB,UAIRtnC,EAAK2lC,eACP3lC,EAAK2lC,aAAa/N,mBAAmB,WACrC53B,EAAK2lC,aAAa/N,mBAAmB,SACrC53B,EAAK2lC,aAAa/N,mBAAmB,mBAC9B53B,EAAK2lC,cAGV3lC,EAAKmT,QAAQnE,OAAO6D,OAAO6zB,WAAa1mC,EAAKgkC,kBAC/ChkC,EAAKmT,QAAQo0B,uBAAuBluB,OAC3BrZ,EAAKgkC,oBACdhkC,EAAK2kC,gBAAiB,GAGxBlrC,EAAI8M,KAAK+D,KAAKtK,EAAK8I,OAAO,SAASo9B,EAAYsB,GAC7CA,EAAK5P,mBAAmB,YACxB4P,EAAKrI,OACP,IAEAn/B,EAAK0lC,YAAc,EACnB1lC,EAAKulC,QAAU,EACfvlC,EAAK4kC,SAAW,EAChB5kC,EAAK6kC,iBAAmB,EACxB7kC,EAAK8I,MAAQ,CAAC,EACd9I,EAAKqkC,QAAS,EACdrkC,EAAKqJ,SAAS1f,GAChB,EAKAo7C,gBAAiB,WACf,IAAI/kC,EAAOyB,KACPgmC,EAAiB,CAAEC,gBAAiB,CAAEC,MAAO3nC,EAAK2jC,aAAa15C,MAAM,KACzE+V,EAAKmT,QAAQy0B,wBAAwBH,GAAgB,SAAS99C,EAAKqX,GACjE,GAAIrX,EACF,OAAOqW,EAAK0kC,QAAQ/6C,GAOtB,GAJIqX,GAAiC,kBAAlBA,EAAKnB,WACtBmB,EAAKnB,SAAWmB,EAAKnB,SAAS6H,QAAQ,OAAQ,MAG5Cze,MAAMC,QAAQ8W,EAAKikC,MAAO,CAC5B,IAAK,IAAIj9C,EAAI,EAAGA,EAAIgZ,EAAKikC,KAAK/8C,OAAQF,IACpCgZ,EAAKikC,KAAKj9C,GAAGggD,MAAQjvB,OAAO/X,EAAKikC,KAAKj9C,GAAGggD,OAE3ChnC,EAAKmT,QAAQ00B,iBACX,CAAC1B,QAAS,CAAC2B,OAAQ9nC,EAAKikC,QACxB,SAASjsC,EAAGkL,GACNlL,EACFgI,EAAKqJ,SAASrR,GAEdgI,EAAKqJ,SAASrR,EAAGgJ,EAErB,GAEJ,MACEhB,EAAKqJ,SAAS1f,EAAKqX,EAEvB,GACF,EAKAulC,iBAAkB,SAA0B58C,EAAKqX,GAC/C,IAAI6sB,EAASpsB,KAAK0V,QAAQmvB,eACtByB,EAAUtmC,KAAK0V,QAAQoB,YACvB7L,EAAWq7B,EAAQr7B,SACvB,GAAI/iB,EAAK,OAAOkkC,EAAOxkB,SAAS1f,GAChCqX,EAAKnB,SACH,CAAC6M,EAASof,SAAU,KAAMpf,EAASka,KAAMmhB,EAAQ5+B,MAAM4M,KAAK,IAC9D/U,EAAK3Z,IAAMoa,KAAK0V,QAAQtE,OAAOk0B,IAC/B/lC,EAAK+lC,IAAMtlC,KAAK0V,QAAQtE,OAAOk0B,IAC/B/lC,EAAKgnC,OAASvmC,KAAK0V,QAAQtE,OAAOm1B,OAClCna,EAAOxkB,SAAS1f,EAAKqX,EACvB,EAKAuoB,SAAU,SAAkB0e,GAC1B,IAAIpa,EAASpsB,KAAK6kC,eACK,cAAnB7kC,KAAK4R,WACP40B,EAAKT,KAAO,EACZS,EAAK5gD,IAAMoa,KAAKoR,OAAOk0B,MAEvBlZ,EAAO4X,oBAAsBwC,EAAKze,OAAS/nB,KAAK4lC,mBAChD5lC,KAAK4lC,mBAAqBY,EAAKze,OAC/Bye,EAAO,CACLze,OAAQqE,EAAO4X,mBACfnc,MAAOuE,EAAOuX,WACdoC,KAAM/lC,KAAKoR,OAAOs0B,WAClB9/C,IAAKoa,KAAKoR,OAAOk0B,MAGrBlZ,EAAO5F,KAAK,qBAAsB,CAACggB,GACrC,IAGFxuC,EAAI8M,KAAKq7B,MAAMnoC,EAAImE,GAAGiR,cAAepV,EAAIsX,oBAKzCtX,EAAImE,GAAGiR,cAAcuD,mBAAqB,SAA4BC,GACpE5Q,KAAK1Z,UAAU25C,QAAUjoC,EAAI8M,KAAKgM,gBAAgB,OAAQF,EAC5D,EAKA5Y,EAAImE,GAAGiR,cAAc4D,wBAA0B,kBACtChR,KAAK1Z,UAAU25C,OACxB,EAEAjoC,EAAI8M,KAAKuI,YAAYrV,EAAImE,GAAGiR,eAK5B1U,EAAOpU,QAAU0T,EAAImE,GAAGiR,+BC3tBxB,IAAIpV,EAAMD,EAAQ,OAelBC,EAAIsX,mBAAqBtX,EAAI8M,KAAKgB,QAAQ,CAExCzf,YAAa,WACX2Z,KAAKwd,QAAU,CAAC,CAClB,EAKA8jB,UAAW,SAAmB/B,GAC5B,OAAOv/B,KAAKwd,QAAQ+hB,GAAav/B,KAAKwd,QAAQ+hB,GAAW/2C,MAAM,GAAK,EACtE,EAEA6D,GAAI,SAAYkzC,EAAWkH,EAAUC,GAQnC,OAPI1mC,KAAKwd,QAAQ+hB,GACfmH,EACE1mC,KAAKwd,QAAQ+hB,GAAW90B,QAAQg8B,GAChCzmC,KAAKwd,QAAQ+hB,GAAWp6C,KAAKshD,GAE/BzmC,KAAKwd,QAAQ+hB,GAAa,CAACkH,GAEtBzmC,IACT,EAEA2mC,QAAS,SAAiBpH,EAAWkH,EAAUC,GAE7C,OADAD,EAASG,UAAW,EACb5mC,KAAK3T,GAAGkzC,EAAWkH,EAAUC,EACtC,EAEArvB,eAAgB,SAAwBkoB,EAAWkH,GACjD,IAAInF,EAAYthC,KAAKwd,QAAQ+hB,GAC7B,GAAI+B,EAAW,CAGb,IAFA,IAAI77C,EAAS67C,EAAU77C,OACnBqc,GAAY,EACPvc,EAAI,EAAGA,EAAIE,IAAUF,EACxB+7C,EAAU/7C,KAAOkhD,IACnB3kC,EAAWvc,GAGXuc,GAAY,GACdw/B,EAAUuF,OAAO/kC,EAAU,EAE/B,CACA,OAAO9B,IACT,EAEAm2B,mBAAoB,SAA4BoJ,GAM9C,OALIA,SACKv/B,KAAKwd,QAAQ+hB,GAEpBv/B,KAAKwd,QAAU,CAAC,EAEXxd,IACT,EAKAwmB,KAAM,SAAc+Y,EAAWuH,EAAWC,GACnCA,IAAcA,EAAe,WAAa,GAC/C,IAAIzF,EAAYthC,KAAKshC,UAAU/B,GAC3ByH,EAAQ1F,EAAU77C,OAEtB,OADAua,KAAKinC,cAAc3F,EAAWwF,EAAWC,GAClCC,EAAQ,CACjB,EAKAC,cAAe,SAAuB3F,EAAW9B,EAAMuH,EAAcG,GACnE,IAAI3oC,EAAOyB,KACPzK,EAAQ2xC,GAAa,KAEzB,SAASC,EAAiBj/C,GACxB,GAAIA,IACFqN,EAAQyC,EAAI8M,KAAKvP,MAAMA,GAAS,IAAIlL,MAASnC,GACzCqW,EAAKs+B,sBACP,OAAOkK,EAAa9/C,KAAKsX,EAAMhJ,GAGnCgJ,EAAK0oC,cAAc3F,EAAW9B,EAAMuH,EAAcxxC,EACpD,CAEA,KAAO+rC,EAAU77C,OAAS,GAAG,CAC3B,IAAIghD,EAAWnF,EAAUn+B,QACzB,GAAIsjC,EAASG,SAEX,YADAH,EAASrhD,MAAMmZ,EAAMihC,EAAK9wC,OAAO,CAACy4C,KAGlC,IACEV,EAASrhD,MAAMmZ,EAAMihC,EACvB,CAAE,MAAOt3C,GACPqN,EAAQyC,EAAI8M,KAAKvP,MAAMA,GAAS,IAAIlL,MAASnC,EAC/C,CACA,GAAIqN,GAASgJ,EAAKs+B,qBAEhB,YADAkK,EAAa9/C,KAAKsX,EAAMhJ,EAI9B,CACAwxC,EAAa9/C,KAAKsX,EAAMhJ,EAC1B,EA0BAmsC,aAAc,SAAsBJ,GAClC,IAAI/iC,EAAOyB,KAYX,OATIshC,EAAU9jB,UAAS8jB,EAAYA,EAAU9jB,SAE7CxlB,EAAI8M,KAAK+D,KAAKy4B,GAAW,SAASz1C,EAAOu7C,GACd,oBAAdA,IAA0BA,EAAY,CAACA,IAClDpvC,EAAI8M,KAAK2L,UAAU22B,GAAW,SAASx/B,GACrCrJ,EAAKlS,GAAGR,EAAO+b,EACjB,GACF,IAEOrJ,CACT,EAkBA2b,iBAAkB,SAA0BzxB,EAAM82C,EAAW33B,EAAU8+B,GAGrE,OAFA1mC,KAAKvX,GAAQmf,EACb5H,KAAKggC,YAAYT,EAAW33B,EAAU8+B,GAC/B1mC,IACT,EAKAqnC,sBAAuB,SAA+B5+C,EAAM82C,EAAW33B,EAAU8+B,GAE/E,OADA9+B,EAASg/B,UAAW,EACb5mC,KAAKka,iBAAiBzxB,EAAM82C,EAAW33B,EAAU8+B,EAC1D,EAyBAhjB,kBAAmB,SAA2B9b,GAC5C,IAAIrJ,EAAOyB,KASX,OARA4H,GACE,WACErJ,EAAK2b,iBAAiB90B,MAAMmZ,EAAM/Y,UACpC,IACA,WACE+Y,EAAK8oC,sBAAsBjiD,MAAMmZ,EAAM/Y,UACzC,IAEKwa,IACT,IAOFhI,EAAIsX,mBAAmBhpB,UAAU05C,YAAchoC,EAAIsX,mBAAmBhpB,UAAU+F,GAKhFqM,EAAOpU,QAAU0T,EAAIsX,oCC1OrB,IAAItX,EAAMD,EAAQ,OACdgX,EAAMhX,EAAQ,OACdmjC,EAAenjC,EAAQ,OAEvB+N,EAAU9N,EAAI8M,KAAKgB,QACnBwhC,EAAc,EACdC,EAAexvC,EAAQ,OAW3BC,EAAIC,QAAU6N,EAAQ,CAMpBzf,YAAa,SAAiBknB,GAC5B,IAAKvN,KAAKwnC,iBACR,MAAMxvC,EAAI8M,KAAKvP,MAAM,IAAIlL,MACvB,mDAGJ,GAAIkjB,EAAQ,CACV,GAAIA,EAAO1C,OAAQ,CACjB,IAAIA,EAAS0C,EAAO1C,OAChB08B,EAAa1M,aAAahwB,KAC5B0C,EAAO1C,OAAS08B,EAAatM,cAAcpwB,GAC3C0C,EAAOX,iBAAkB,GAEvB26B,EAAavM,eAAenwB,KAC9B0C,EAAO1C,OAAS08B,EAAatM,cAAcpwB,GAE/C,CACmC,mBAAxB0C,EAAOk6B,cAC0B,mBAAhCl6B,EAAOV,uBACjBU,EAAOV,qBAAuBU,EAAOk6B,aAEzC,CAEA,IAAIC,EAAe1nC,KAAKwnC,iBAAiBj6B,GAAU,CAAC,GACpD,GAAIm6B,EAAc,CAChB,IAAI/5B,EAAiB3V,EAAI8M,KAAKgI,KAAKS,GAC/BjP,EAAM,IAAIopC,EAAan6B,GAO3B,OANA3oB,OAAOoB,eAAesY,EAAK,kBAAmB,CAC5ChG,IAAK,WAAa,OAAOqV,CAAgB,EACzCzoB,YAAY,EACZsB,cAAc,IAEhB8X,EAAI0nB,YAAcshB,EACXhpC,CACT,CACA0B,KAAK2e,WAAWpR,EAClB,EAKAoR,WAAY,SAAoBpR,GAC9B,IAAIyL,EAAYhhB,EAAIuV,OAAOvN,KAAKiZ,mBAahC,GAZAjZ,KAAKuN,OAAS,IAAIvV,EAAI2Q,OAAO3Q,EAAIuV,QAC7ByL,GAAWhZ,KAAKuN,OAAOxc,OAAOioB,GAAW,GACzCzL,GAAQvN,KAAKuN,OAAOxc,OAAOwc,GAAQ,GAEvCvN,KAAK2nC,kBACA3nC,KAAKuN,OAAOtC,UAAUiwB,EAAaE,kBAAkBp7B,MAE1DA,KAAKuN,OAAOtC,SAAWjL,KAAK4nC,qBAAqB5nC,KAAKuN,OAAOtC,UAC7DjL,KAAK6nC,YAAY7nC,KAAKuN,OAAOtC,UAE7BjT,EAAIsX,mBAAmBroB,KAAK+Y,MAC5BhI,EAAIC,QAAQ6vC,8BAA8B9nC,OACrCA,KAAKuN,OAAOhB,sBAAwBvU,EAAIC,QAAQ8vC,wBAA0B/nC,KAAKgoC,UAAW,CAC7F,IAAIA,EAAYhoC,KAAKgoC,UACrBhoC,KAAKka,iBAAiB,mBAAoB,WAAW,SAA0BruB,GAC7E4Z,QAAQ84B,UAAS,WAAYyJ,EAAUC,aAAap8C,EAAO,GAC7D,IACAmU,KAAKka,iBAAiB,sBAAuB,kBAAkB,SAA6BruB,GAC1F4Z,QAAQ84B,UAAS,WAAYyJ,EAAUC,aAAap8C,EAAO,GAC7D,GACF,CACF,EAKA87C,gBAAiB,WACjB,EAKAH,iBAAkB,SAA0BU,GAC1C,IAAI36B,EAAS26B,EACb,GAAKlwC,EAAI8M,KAAKqjC,QAAQnoC,KAAK2V,KAEpB,IAAIpI,EAAO66B,UAChB,OAAOpwC,EAAIC,QAAQowC,iBAAiBroC,KAAK3Z,YAAaknB,EAAO66B,WACxD,GAAKpoC,KAAK3Z,YAAY8R,SAEtB,EACLoV,EAAS,IAAIvV,EAAI2Q,OAAO3Q,EAAIuV,SACrBxc,OAAOm3C,GAAe,GAC7B,IAAIx4C,EAAU6d,EAAOxC,YAAY/K,KAAK3Z,YAAY4yB,mBAElD,OADAvpB,EAAUA,GAAW6d,EAAOvC,WACrBhL,KAAKsoC,sBAAsB54C,EACpC,CAPE,OAAO,IAOT,CAXE,OAAO,IAYX,EAKA44C,sBAAuB,SAA+B54C,GAMpD,OALAA,EAAUsQ,KAAKuoC,wBAAwB74C,GACI,OAAvCsQ,KAAK3Z,YAAY8R,SAASzI,IAC5BsI,EAAIC,QAAQowC,iBAAiBroC,KAAK3Z,YAAaqJ,GAG1CsQ,KAAK3Z,YAAY8R,SAASzI,EACnC,EAKA64C,wBAAyB,SAAiC74C,GACxD,IAAKsQ,KAAK3Z,YAAY8R,UAAiD,IAArC6H,KAAK3Z,YAAY8R,SAAS1S,OAC1D,MAAM,IAAI4E,MAAM,0BACA2V,KAAK3Z,YAAY4yB,mBASnC,GANKvpB,EAEMsI,EAAI8M,KAAK+a,OAAOnwB,EAAS0gB,QAClC1gB,EAAUsI,EAAI8M,KAAKkL,KAAKw4B,QAAQ94C,GAAS4X,MAAM,KAAK,IAFpD5X,EAAU,SAKR9K,OAAOsE,eAAe8W,KAAK3Z,YAAY8R,SAAUzI,GACnD,OAAOA,EAKT,IAFA,IAAI/K,EAAOC,OAAOD,KAAKqb,KAAK3Z,YAAY8R,UAAUqgC,OAC9CiQ,EAAkB,KACbljD,EAAIZ,EAAKc,OAAS,EAAGF,GAAK,EAAGA,IAMpC,GAHoC,MAAhCZ,EAAKY,GAAGZ,EAAKY,GAAGE,OAAS,KAC3BgjD,EAAkB9jD,EAAKY,IAErBZ,EAAKY,GAAGu9B,OAAO,EAAG,KAAOpzB,EAC3B,OAAO+4C,EAIX,MAAM,IAAIp+C,MAAM,kBAAoB2V,KAAK3Z,YAAY4yB,kBACrC,uCAAyCvpB,EAAU,IACrE,EAKAimB,IAAK,CAAC,EAKN+yB,kBAAmB,EAKnBC,kBAAmB,SAA2B/gC,GAC5C,GAAKA,EAEE,IAAwB,oBAAbA,EAGhB,MAAM,IAAIvd,MAAM,iCAAoCud,EAAW,mCAF/D5H,KAAK4oC,qBAAuBhhC,CAG9B,MALE5H,KAAK4oC,qBAAuB,IAMhC,EAeA3xB,YAAa,SAAqBrF,EAAWR,EAAQxJ,GAOnD,GANsB,oBAAXwJ,IACTxJ,EAAWwJ,EACXA,EAAS,MAGXA,EAASA,GAAU,CAAC,EAChBpR,KAAKuN,OAAO6D,OAAQ,CACtB,IAAIgT,EAAQpkB,KAAK2V,IAAIE,WAAWjE,GAC5BwS,IACFhT,EAASpZ,EAAI8M,KAAKgI,KAAKsE,GACvBpZ,EAAI8M,KAAK+D,KAAK7I,KAAKuN,OAAO6D,QAAQ,SAASxrB,EAAKW,GAC1C69B,EAAMhkB,MAAM8V,QAAQtwB,UACFmJ,IAAhBqiB,EAAOxrB,IAAsC,OAAhBwrB,EAAOxrB,KACtCwrB,EAAOxrB,GAAOW,GAGpB,IAEJ,CAEA,IAAImvB,EAAU,IAAI1d,EAAImV,QAAQnN,KAAM4R,EAAWR,GAI/C,OAHApR,KAAK6oC,uBAAuBnzB,GAC5B1V,KAAK8oC,wBAAwBpzB,GACzB9N,GAAU8N,EAAQkC,KAAKhQ,GACpB8N,CACT,EAgBAqzB,2BAA4B,SAAoCn3B,EAAWR,EAAQxJ,GAC3D,oBAAXwJ,IACTxJ,EAAWwJ,EACXA,EAAS,CAAC,GAGZ,IAAIsE,EAAU1V,KAAKiX,YAAYrF,EAAWR,GAAQwuB,oBAClD,OAAOh4B,EAAW8N,EAAQkC,KAAKhQ,GAAY8N,CAC7C,EAoBAszB,QAAS,SAAiBnoC,EAAOuQ,EAAQxJ,GAEvC,OADa,IAAI5P,EAAImX,eAAenP,KAAMa,GAC5B0gC,KAAKnwB,EAAQxJ,EAC7B,EAKAihC,uBAAwB,SAAgCnzB,GAGtD,IAFA,IAAIsF,EAAO,CAAChjB,EAAIqX,OAAQrX,EAAIsf,eAAeC,KAAMvX,KAAKipC,mBAC1CjxC,EAAIsf,eAAeoR,UACtBnjC,EAAI,EAAGA,EAAIy1B,EAAKv1B,OAAQF,IAC3By1B,EAAKz1B,IAAImwB,EAAQgsB,aAAa1mB,EAAKz1B,IAIpCya,KAAKuN,OAAOjC,iBACfoK,EAAQ2B,eAAe,WACrBrf,EAAIsf,eAAeC,KAAKC,qBAGxBxX,KAAKuN,OAAOzC,QACd4K,EAAQgsB,aAAa1pC,EAAIsf,eAAe2R,QAG1CjpB,KAAKkpC,sBAAsBxzB,GAEoC,oBAApD1V,KAAK3Z,YAAYC,UAAUsiD,sBACpC5oC,KAAK3Z,YAAYC,UAAUsiD,qBAAqBlzB,GAG9C9wB,OAAO0B,UAAU4C,eAAejC,KAAK+Y,KAAM,yBAAgE,oBAA9BA,KAAK4oC,sBACpF5oC,KAAK4oC,qBAAqBlzB,EAE9B,EAOAyzB,aAAc,SAAsBzzB,GAClC,IAAIC,EAAMD,EAAQhE,QAAQiE,IAAIE,WAAWH,EAAQ9D,WAC7Cw3B,EAAkB,CACpBC,KAAM,UACNt6B,IAAK4G,EAAMA,EAAIltB,KAAOitB,EAAQ9D,UAC9B4lB,QAAS,EACTv/B,QAASyd,EAAQhE,QAAQiE,IAAIG,WAAaJ,EAAQhE,QAAQiE,IAAIoY,eAC9Dub,OAAQ5zB,EAAQoB,YAAYjM,OAC5B0+B,mBAAoB,EACpBC,UAAW9zB,EAAQoB,YAAY8T,gBAE7BzS,EAAWzC,EAAQyC,SAIvB,GAHIA,EAASO,aAAaC,aACxBywB,EAAgBK,oBAAsBtxB,EAASO,aAAaC,YAE1DR,EAAS5iB,MAAO,CAClB,IAAIA,EAAQ4iB,EAAS5iB,MACJ4iB,EAASO,aAAaC,WACtB,KACXpjB,EAAM4T,OAAMigC,EAAgBM,kBAAoBn0C,EAAM4T,MACtD5T,EAAM6T,UAASggC,EAAgBO,yBAA2Bp0C,EAAM6T,YAEhE7T,EAAM4T,MAAQ5T,EAAM9M,QAAM2gD,EAAgBQ,kBAAoBr0C,EAAM4T,MAAQ5T,EAAM9M,MAClF8M,EAAM6T,UAASggC,EAAgBS,yBAA2Bt0C,EAAM6T,SAExE,CACA,OAAOggC,CACT,EAOAU,gBAAiB,SAAyBp0B,GACxC,IAAIC,EAAMD,EAAQhE,QAAQiE,IAAIE,WAAWH,EAAQ9D,WAC7Cw3B,EAAkB,CACpBC,KAAM,iBACNt6B,IAAK4G,EAAMA,EAAIltB,KAAOitB,EAAQ9D,UAC9B4lB,QAAS,EACTv/B,QAASyd,EAAQhE,QAAQiE,IAAIG,WAAaJ,EAAQhE,QAAQiE,IAAIoY,eAC9Dgc,KAAMr0B,EAAQoB,YAAY7L,SAAS+b,SACnCwiB,UAAW9zB,EAAQoB,YAAY8T,gBAE7BzS,EAAWzC,EAAQyC,SAWvB,OAVIA,EAASO,aAAaC,aACxBywB,EAAgBY,eAAiB7xB,EAASO,aAAaC,aAGtDjD,EAAQmqB,kBACTnqB,EAAQhE,QAAQnE,OAAOvE,aACvB0M,EAAQhE,QAAQnE,OAAOvE,YAAYK,cAEnC+/B,EAAgBa,UAAYv0B,EAAQhE,QAAQnE,OAAOvE,YAAYK,aAE5D8O,EAASO,aAAaF,SACvB9C,EAAQoB,YAAY0B,QAAQ,0BAC9B4wB,EAAgB71B,aAAemC,EAAQoB,YAAY0B,QAAQ,yBAEzDL,EAASO,aAAaF,QAAQ,sBAChC4wB,EAAgBc,eAAiB/xB,EAASO,aAAaF,QAAQ,qBAE7DL,EAASO,aAAaF,QAAQ,sBAChC4wB,EAAgBe,cAAgBhyB,EAASO,aAAaF,QAAQ,qBAE5DL,EAASO,aAAaF,QAAQ,gBAChC4wB,EAAgBgB,QAAUjyB,EAASO,aAAaF,QAAQ,eAEnD4wB,GAboCA,CAc7C,EAMAiB,iBAAkB,SAA0B30B,GAC1C,IAAI0zB,EAAkBppC,KAAK8pC,gBAAgBp0B,GACvCyC,EAAWzC,EAAQyC,SACnB5iB,EAAQ4iB,EAAS5iB,MAQrB,OAPI4iB,EAASO,aAAaC,WAAa,KACjCpjB,EAAM4T,OAAMigC,EAAgBkB,aAAe/0C,EAAM4T,MACjD5T,EAAM6T,UAASggC,EAAgBmB,oBAAsBh1C,EAAM6T,YAE3D7T,EAAM4T,MAAQ5T,EAAM9M,QAAM2gD,EAAgBoB,aAAej1C,EAAM4T,MAAQ5T,EAAM9M,MAC7E8M,EAAM6T,UAASggC,EAAgBqB,oBAAsBl1C,EAAM6T,UAE1DggC,CACT,EAOAN,wBAAyB,SAAiCpzB,GACxD,IAAIg1B,EACAC,EACAC,EACAC,EAEAhgC,EACAigC,EAFAC,EAAe,EAGfxsC,EAAOyB,KAGX0V,EAAQrpB,GAAG,YAAY,WACrBw+C,EAAoB7yC,EAAI8M,KAAKI,UAAUy1B,MACvCmQ,EAAgB16B,KAAKuqB,KACvB,GALgB,MAMhBjlB,EAAQrpB,GAAG,QAAQ,WACjBs+C,EAAuB3yC,EAAI8M,KAAKI,UAAUy1B,MAC1C+P,EAAmBt6B,KAAKuqB,MACxB9vB,EAAS6K,EAAQoB,YAAYjM,OAC7BkgC,GACF,GAXgB,MAYhBr1B,EAAQrpB,GAAG,oBAAoB,WAC7Bu+C,EAAiBvoC,KAAKue,MAAM5oB,EAAI8M,KAAKI,UAAUy1B,MAAQgQ,EACzD,IACAj1B,EAAQwE,iBAAiB,mBAAoB,WAAW,WACtD,IAAI4vB,EAAkBvrC,EAAKurC,gBAAgBp0B,GAC3Co0B,EAAgBkB,UAAYN,EAC5BZ,EAAgBmB,eAAiBL,GAAkB,EAAIA,EAAiB,EACxEd,EAAgBR,OAASz+B,EACzBtM,EAAKioB,KAAK,iBAAkB,CAACsjB,GAC/B,IACAp0B,EAAQwE,iBAAiB,yBAA0B,SAAS,WAC1D,IAAI4vB,EAAkBvrC,EAAK8rC,iBAAiB30B,GAC5Co0B,EAAgBkB,UAAYN,EAE5BE,EAAiBA,GACfvoC,KAAKue,MAAM5oB,EAAI8M,KAAKI,UAAUy1B,MAAQgQ,GACxCb,EAAgBmB,eAAiBL,GAAkB,EAAIA,EAAiB,EACxEd,EAAgBR,OAASz+B,EACzBtM,EAAKioB,KAAK,iBAAkB,CAACsjB,GAC/B,IACAp0B,EAAQwE,iBAAiB,WAAY,YAAY,WAC/C,IAAIivB,EAAe5qC,EAAK4qC,aAAazzB,GAErC,GADAyzB,EAAa+B,aAAeH,IACxB5B,EAAa+B,cAAgB,GAAjC,CACA/B,EAAa6B,UAAYF,EACzB,IAAIK,EAAU9oC,KAAKue,MAAM5oB,EAAI8M,KAAKI,UAAUy1B,MAAQkQ,GACpD1B,EAAaiC,QAAUD,GAAW,EAAIA,EAAU,EAChD,IAAIhzB,EAAWzC,EAAQyC,SAErBA,EAAS5iB,OACT4iB,EAAS5iB,MAAM6iB,WACgB,kBAAxBD,EAASqN,YACe,kBAAxBrN,EAAS/M,YACf+M,EAASqN,YAAcrN,EAAS/M,aAEjC+9B,EAAaI,mBAAqB,GAEpChrC,EAAKioB,KAAK,UAAW,CAAC2iB,GAdoB,CAe5C,GACF,EAQAD,sBAAuB,SAA+BxzB,GACtD,EAMAoQ,eAAgB,WACd,OAAO9lB,KAAK2V,IAAIqY,aAAehuB,KAAK2V,IAAIoY,cAC1C,EAMApJ,eAAgB,SAAwBjP,GACtC,IAAIhmB,EAEAkiB,EAAY,KACZ4R,EAAW,GACX9N,IAGF8N,GADA5R,GADiB8D,EAAQhE,QAAQiE,IAAIE,YAAc,CAAC,GAC7BH,EAAQ9D,YAAc,MACtBA,EAAU4R,SAAW,IAW9C,OARE9zB,EADEsQ,KAAKuN,OAAOpB,iBACJnM,KAAKuN,OAAOpB,iBACA,OAAbqX,GAAkC,qBAAbA,EACpB,KACY,WAAbA,EACC,SAEAxjB,KAAK2V,IAAIxJ,iBAEdnU,EAAIsW,QAAQ+8B,cAAcC,WAAW57C,EAC9C,EAKAu5C,iBAAkB,WAChB,OAAQjpC,KAAK2V,IAAI0U,UACf,IAAK,MACL,IAAK,QAAS,OAAOryB,EAAIsf,eAAe7I,MACxC,IAAK,OAAQ,OAAOzW,EAAIsf,eAAe9I,KACvC,IAAK,YAAa,OAAOxW,EAAIsf,eAAe3I,SAC5C,IAAK,WAAY,OAAO3W,EAAIsf,eAAe1I,QAE7C,GAAI5O,KAAK2V,IAAI0U,SACX,MAAM,IAAIhgC,MAAM,8BACd2V,KAAK2V,IAAI0U,SAAW,iBAE1B,EAKAnE,mBAAoB,SAA4BlI,GAC9C,OAAOA,EAAKtF,aAAaC,WAAa,GACxC,EAQAgpB,WAAY,WACV,YAA+B5yC,IAA3BiR,KAAKuN,OAAOnC,WACPpL,KAAKuN,OAAOnC,WAEZpL,KAAK0oC,iBAEhB,EAKApgB,YAAa,SAAqB9C,EAAYt9B,GAC5C,OAAO8P,EAAI8M,KAAKymC,oBAAoB/lB,EAAYxlB,KAAKuN,OAAOlB,kBAAmBnkB,EACjF,EAKA8/B,eAAgB,SAAwBzyB,GACtC,QAAIyK,KAAKwrC,aAAaj2C,OAClByK,KAAKyrC,gBAAgBl2C,OACrByK,KAAK0rC,wBAAwBn2C,OAC7ByK,KAAK2rC,eAAep2C,IACpBA,EAAMojB,YAAc,MAE1B,EAKA8yB,gBAAiB,SAAyBl2C,GACxC,MAAsB,oBAAfA,EAAM4T,IACf,EAKAqiC,aAAc,SAAsBj2C,GAClC,MAAsB,iBAAfA,EAAM4T,IACf,EAKAuiC,wBAAyB,SAAiCn2C,GAExD,MAAuB,0BAAfA,EAAM4T,IAChB,EAKA8e,eAAgB,SAAwB1yB,GACtC,OAAQA,EAAM4T,MACZ,IAAK,uBACL,IAAK,iBACL,IAAK,4BACL,IAAK,wBACL,IAAK,cACL,IAAK,qBACH,OAAO,EACT,QAAS,OAAO,EAEpB,EAKAwc,qBAAsB,WACpB,OAAO,IAAIvV,KAAKA,KAAKuqB,MAAQ36B,KAAKuN,OAAOrB,kBAC3C,EAKAyb,iBAAkB,SAA0BikB,GACtCA,IACF5rC,KAAKuN,OAAOrB,kBAAoB0/B,EAAgBx7B,KAAKuqB,MAEzD,EAKAjT,cAAe,SAAuBkkB,GACpC,GAAIA,EACF,OAAOvpC,KAAKse,IAAI3gB,KAAK2lB,uBAAuBzV,UAAY07B,IAAkB,GAE9E,EAKAD,eAAgB,SAAwBp2C,GAEtC,GAAyB,MAArBA,EAAMojB,WAAoB,OAAO,EACrC,OAAQpjB,EAAM4T,MACZ,IAAK,yCACL,IAAK,aACL,IAAK,sBACL,IAAK,uBACL,IAAK,mBACL,IAAK,4BACL,IAAK,2BACL,IAAK,iCACL,IAAK,wBACH,OAAO,EACT,QACE,OAAO,EAEb,EAKAy+B,qBAAsB,SAA8B38B,GAClD,GAAwB,kBAAbA,EAAuB,OAAOA,EAEzC,IAAI1U,EAAI0U,EAIR,OADA1U,GADAA,GADAA,EAAIA,EAAE0P,QAAQ,eAAgBjG,KAAK2V,IAAIoY,iBACjC9nB,QAAQ,cAAejG,KAAKuN,OAAO1C,SACnC5E,QAAQ,cAAejG,KAAKuN,OAAOhC,WAAa,QAAU,OAElE,EAKAs8B,YAAa,SAAqB58B,GAChCjL,KAAKiL,SAAW,IAAIjT,EAAIkwB,SAASjd,EAAUjL,KAAKuN,OAClD,EAKA0Q,iBAAkB,SAA0BrM,EAAWi6B,GACrD,IAAIjd,EAAY5uB,KAAK2V,IAAIE,WAAWjE,GAAWgd,UAC/C,IAAKA,EAAW,CACd,GAAIid,EAAgB,CAClB,IAAIt1C,EAAI,IAAIlM,MACZ,MAAM2N,EAAI8M,KAAKvP,MAAMgB,EAAG,mCAAqCqb,EAC/D,CACA,OAAO,IACT,CAEA,OAAOgd,CACT,IAGF52B,EAAI8M,KAAK/T,OAAOiH,EAAIC,QAAS,CAO3B6zC,cAAe,SAAuBxtC,GACpCtG,EAAI8M,KAAK+D,KAAKvK,EAAIhY,UAAUqvB,IAAIE,YAAY,SAAkByU,GACxDhsB,EAAIhY,UAAUgkC,KAES,SADXhsB,EAAIhY,UAAUqvB,IAAIE,WAAWyU,GAC/B9G,SACZllB,EAAIhY,UAAUgkC,GAAU,SAAUlZ,EAAQxJ,GACxC,OAAO5H,KAAK+oC,2BAA2Bze,EAAQlZ,EAAQxJ,EACzD,EAEAtJ,EAAIhY,UAAUgkC,GAAU,SAAUlZ,EAAQxJ,GACxC,OAAO5H,KAAKiX,YAAYqT,EAAQlZ,EAAQxJ,EAC1C,EAEJ,GACF,EAaAvP,cAAe,SAAuB4gB,EAAmB8yB,EAAUC,GACjEh0C,EAAIC,QAAQg0C,YAAYhzB,IAAqB,EACxCzxB,MAAMC,QAAQskD,KACjBC,EAAWD,EACXA,EAAW,IAGb,IAAIztC,EAAMwH,EAAQ9N,EAAIC,QAAS+zC,GAAY,CAAC,GAE5C,GAAiC,kBAAtB/yB,EAAgC,CACzCjhB,EAAIC,QAAQi0C,YAAY5tC,EAAKytC,GAE7B,IAAII,EAAa7tC,EAAI2a,mBAAqBA,EAC1C3a,EAAI2a,kBAAoBkzB,CAC1B,MACE7tC,EAAIhY,UAAUqvB,IAAMsD,EACpBjhB,EAAIC,QAAQ6zC,cAAcxtC,GAI5B,GAFAtG,EAAIsX,mBAAmBroB,KAAK+Y,KAAK1Z,YAE5B0Z,KAAK1Z,UAAU0hD,WAAahwC,EAAI8M,KAAKyH,qBAAsB,CAC9D,IAAI6/B,EAAYp0C,EAAI8M,KAAKyH,qBAAqB6/B,UAE1CC,GAAkBC,EADDt0C,EAAI8M,KAAKyH,qBAAqB+/B,kBAEnDtsC,KAAK1Z,UAAU0hD,UAAY,IAAIoE,EAAUC,GACrCA,EAAgBE,UAElBv0C,EAAIC,QAAQ8vC,uBAAwB,EAExC,CAGA,OAFA/vC,EAAIsX,mBAAmBroB,KAAKqX,EAAIhY,WAChC0R,EAAIC,QAAQ6vC,8BAA8BxpC,EAAIhY,WACvCgY,CACT,EAKA4tC,YAAa,SAAqB5tC,EAAKytC,GAChCvkD,MAAMC,QAAQskD,KAAWA,EAAW,CAACA,IAE1CztC,EAAInG,SAAWmG,EAAInG,UAAY,CAAC,EAChC,IAAK,IAAI5S,EAAI,EAAGA,EAAIwmD,EAAStmD,OAAQF,SACDwJ,IAA9BuP,EAAInG,SAAS4zC,EAASxmD,MACxB+Y,EAAInG,SAAS4zC,EAASxmD,IAAM,MAIhC+Y,EAAIyM,YAAcnmB,OAAOD,KAAK2Z,EAAInG,UAAUqgC,MAC9C,EAKA6P,iBAAkB,SAA0BmE,EAAY98C,EAAS04C,GAC/D,IAAI9pC,EAAMwH,EAAQ0mC,EAAY,CAC5BvzB,kBAAmBuzB,EAAWvzB,oBAGhC,SAASwzB,EAAO92B,GACVA,EAAI+2B,MACNpuC,EAAIhY,UAAUqvB,IAAMA,EAEpBrX,EAAIhY,UAAUqvB,IAAM,IAAI5G,EAAI4G,EAAK,CAC/BsD,kBAAmBuzB,EAAWvzB,mBAGpC,CAEA,GAAuB,kBAAZvpB,EAAsB,CAC/B,GAAI04C,EACFqE,EAAOrE,QAEP,IACEqE,EAAOz0C,EAAIE,UAAUs0C,EAAWvzB,kBAAmBvpB,GACrD,CAAE,MAAOxH,GACP,MAAM8P,EAAI8M,KAAKvP,MAAMrN,EAAK,CACxBkhB,QAAS,oCACPojC,EAAWvzB,kBAAoB,IAAMvpB,GAE3C,CAEG9K,OAAO0B,UAAU4C,eAAejC,KAAKulD,EAAWr0C,SAAUzI,KAC7D88C,EAAWzhC,YAAcyhC,EAAWzhC,YAAYrc,OAAOgB,GAAS8oC,QAElEgU,EAAWr0C,SAASzI,GAAW4O,CACjC,MACEmuC,EAAO/8C,GAIT,OADAsI,EAAIC,QAAQ6zC,cAAcxtC,GACnBA,CACT,EAKA0L,WAAY,SAASmiC,GACnB,OAAOvnD,OAAO0B,UAAU4C,eAAejC,KAAK+Q,EAAIC,QAAQg0C,YAAaE,EACvE,EAUArE,8BAA+B,SAAuC6E,GACpEA,EAASzyB,iBAAiB,wBAAyB,kBAAkB,SAAuBruB,GAC1F,IAAI+gD,EAAYhoD,OAAOioD,eAAeF,GAClCC,EAAUpvB,SAASovB,EAAUpmB,KAAK,iBAAkB,CAAC36B,GAC3D,IACA8gD,EAASzyB,iBAAiB,qBAAsB,WAAW,SAA4BruB,GACrF,IAAI+gD,EAAYhoD,OAAOioD,eAAeF,GAClCC,EAAUpvB,SAASovB,EAAUpmB,KAAK,UAAW,CAAC36B,GACpD,GACF,EAKAogD,YAAa,CAAC,IAGhBj0C,EAAI8M,KAAKq7B,MAAMnoC,EAAIC,QAASD,EAAIsX,oBAKhC5W,EAAOpU,QAAU0T,EAAIC,wBCr1BrB,IAAID,EAAMD,EAAQ,OAElBC,EAAI8M,KAAK/T,OAAOiH,EAAIY,WAAWtS,UAAW,CAMxCwmD,gBAAiB,SAAyBpvB,GACxC,IAAI5G,EAAc4G,EAAI5G,YACjBA,EAAY0B,QAAQu0B,SACvBj2B,EAAY0B,QAAgB,OAAI,mBAEpC,EAKA0wB,sBAAuB,SAA+BxzB,IACpDA,EAAQsqB,YAAY,QAAShgC,KAAK8sC,iBACR,cAAtBp3B,EAAQ9D,aAEgB,aADb8D,EAAQtE,QAAU,CAAC,GACrB47B,YACTt3B,EAAQsqB,YAAY,cAAehoC,EAAI8M,KAAKmoC,wBAGlD,qBC1BF,IAAIj1C,EAAMD,EAAQ,OAGlBA,EAAQ,OAERC,EAAI8M,KAAK/T,OAAOiH,EAAIiB,WAAW3S,UAAW,CAExC4iD,sBAAuB,SAA+BxzB,GACpDA,EAAQsqB,YAAY,cAAehoC,EAAI8M,KAAKooC,mBAC9C,oBCTF,IAAIl1C,EAAMD,EAAQ,OAClBA,EAAQ,MAERC,EAAI8M,KAAK/T,OAAOiH,EAAIkC,SAAS5T,UAAW,CAItC4iD,sBAAuB,SAA+BxzB,GAChDA,EAAQhE,QAAQnE,OAAOtB,gBACzByJ,EAAQ2B,eAAe,cAAerf,EAAIsf,eAAe9I,KAAK2+B,cAC9Dz3B,EAAQsqB,YAAY,cAAehgC,KAAKotC,YACxC13B,EAAQsqB,YAAY,cAAehoC,EAAIsf,eAAe9I,KAAK2+B,cAE/D,EAKAC,WAAY,SAAoBpvB,GAC9B,IAAKA,EAAKtF,aAAa+N,YAAczI,EAAKtI,QAAQhE,QAAQ27B,aAAarvB,GAQrE,MAPAA,EAAKze,KAAO,KACZye,EAAKzoB,MAAQyC,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CACvC8e,KAAM,mBACNC,QAAS,+BACTgP,WAAW,IAEb4F,EAAKtI,QAAQgP,sBACN1G,EAAKzoB,KAEhB,EAKA83C,aAAc,SAAsBrvB,GAClC,IAAIsvB,EAAMtvB,EAAKtF,aAAaF,QAAQ,eACpC,OAAK80B,GACEvsB,SAASusB,EAAK,MAAQt1C,EAAI8M,KAAKC,OAAOoe,MAAMnF,EAAKtF,aAAauH,KACvE,EAKAyoB,kBAAmB,GAKnBpgB,YAAa,SAAqB9C,EAAYt9B,GAC5C,IAAImkB,EAAoBrU,EAAI8M,KAAKgI,KAAK9M,KAAKuN,OAAOlB,mBAMlD,MAJsC,kBAA3BA,EAAkBkhC,OACzBlhC,EAAkBkhC,KAAO,IAEjBv1C,EAAI8M,KAAKymC,oBAAoB/lB,EAAYnZ,EAAmBnkB,EAE1E,qBCxDF,IAAI8P,EAAMD,EAAQ,OAElBC,EAAI8M,KAAK/T,OAAOiH,EAAIoC,IAAI9T,UAAW,CAIjC4iD,sBAAuB,SAA+BxzB,GACpDA,EAAQ2B,eAAe,eAAgBrf,EAAIsf,eAAe7I,MAAM++B,eAChE93B,EAAQsqB,YAAY,eAAgBhgC,KAAKkqB,cAEf,iBAAtBxU,EAAQ9D,WACV8D,EAAQixB,QAAQ,WAAY3mC,KAAKytC,8BAErC,EAKAA,8BAA+B,SAAuC/vB,EAAKz1B,GACzE,GAAIy1B,EAAItM,OAAOs8B,cAAgBhwB,EAAIiwB,YACjC,OAAO1lD,IAGTy1B,EAAItM,OAASpZ,EAAI8M,KAAKgI,KAAK4Q,EAAItM,QAC/BsM,EAAItM,OAAOw8B,kBAAoBlwB,EAAIhM,QAAQnE,OAAO1C,OAElD,IAAI0C,EAASvV,EAAI8M,KAAKgI,KAAK4Q,EAAIhM,QAAQnE,eAChCA,EAAOtC,SACdsC,EAAO1C,OAAS6S,EAAItM,OAAOy8B,aAC3B,IACIC,EADM,IAAIpwB,EAAIhM,QAAQrrB,YAAYknB,GACrBmQ,EAAI9L,WAAW8L,EAAItM,QACpC08B,EAAOH,aAAc,EACrBG,EAAO1X,SAAQ,SAASluC,EAAKyH,GACvBzH,EAAKD,EAAKC,IAEZw1B,EAAItM,OAAOs8B,aAAe/9C,EAC1B1H,IAEJ,GACF,EAKAiiC,aAAc,SAAsBlM,GAElC,IAAItF,EAAesF,EAAKtF,aACpBnZ,GAAO,IAAIvH,EAAIuN,IAAIC,QAASiC,MAAMiR,EAAauH,KAAK13B,YAAc,IAClEgX,EAAKq4B,OACP5Z,EAAKzoB,MAAQyC,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CACvC8e,KAAM5J,EAAKq4B,OAAOvtC,MAAM+sC,KACxBhuB,QAAS7J,EAAKq4B,OAAOvtC,MAAMitC,UAG7BtZ,EAAKzoB,MAAQyC,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CACvC8e,KAAMuP,EAAaC,WACnBvP,QAAS,OAGb4U,EAAKzoB,MAAMoiC,UAAYp4B,EAAKwuC,WAAa,IAC3C,qBC5DF,IAAI/1C,EAAMD,EAAQ,OAKdi2C,EAAuB,CACzB,oBACA,iBACA,qBAyDFh2C,EAAI8M,KAAK/T,OAAOiH,EAAImD,QAAQ7U,UAAW,CAInCqhD,gBAAiB,WACb,IAAK3nC,KAAKuN,OAAOtC,UAAYjL,KAAKuN,OAAOtC,SAASpkB,QAAQ,MAAQ,EAAG,CAGjE,MAAMmR,EAAI8M,KAAKvP,MAAM,IAAIlL,MACrB,CAAC5B,KAAM,kBAAmB2gB,QAHpB,qEAId,CACJ,EAKA8/B,sBAAuB,SAA+BxzB,GAClDA,EAAQsqB,YAAY,mBAAoBhgC,KAAKiuC,sBACzCD,EAAqBnnD,QAAQ6uB,EAAQ9D,YAAc,GACnD8D,EAAQsqB,YAAY,cAAehoC,EAAI8M,KAAKmoC,uBAEpD,EAKAgB,qBAAsB,SAA8BjwB,GAChD,IACIkwB,GADOlwB,EAAKtF,aAAauH,KAAK13B,YAAc,MAC3B4lD,OAChBD,GAAqC,MAAxBA,EAAU16C,OAAO,KAC/BwqB,EAAKtF,aAAauH,KAAO,GAEjC,oBCjGJ,IAAIjoB,EAAMD,EAAQ,OAElBC,EAAI8M,KAAK/T,OAAOiH,EAAIsD,OAAOhV,UAAW,CAIpC4iD,sBAAuB,SAA+BxzB,GAC1B,WAAtBA,EAAQ9D,WACV8D,EAAQsqB,YAAY,cAAehoC,EAAI8M,KAAKmoC,uBAEhD,qBCVF,IAAIj1C,EAAMD,EAAQ,OAElBC,EAAI8M,KAAK/T,OAAOiH,EAAIwD,gBAAgBlV,UAAW,CAI7C4iD,sBAAuB,SAA+BxzB,GAC1B,YAAtBA,EAAQ9D,WACV8D,EAAQsqB,YAAY,QAAShgC,KAAKouC,cAEtC,EAMAA,cAAe,SAAuB14B,GACpC,IAAI/lB,EAAM+lB,EAAQtE,OAAOi9B,gBACrB1+C,IACF+lB,EAAQoB,YAAY7L,SAAW,IAAIjT,EAAIkwB,SAASv4B,GAEpD,oBCrBFoI,EAAQ,wBCAR,IAAIC,EAAMD,EAAQ,OACdu2C,EAAUv2C,EAAQ,OACtBA,EAAQ,OAIP,IAAIw2C,EAAwB,CAAC,iBAAkB,8BAA+B,kBAAmB,wBAAyB,8CAE1Hv2C,EAAI8M,KAAK/T,OAAOiH,EAAI8D,IAAIxV,UAAW,CAIjC4iD,sBAAuB,SAA+BxzB,GACrD44B,EAAQpF,sBAAsBlpC,KAAM0V,EAAS64B,EAC9C,qBCdH,IAAIv2C,EAAMD,EAAQ,OAEdu2C,EAAU,CAIXpF,sBAAuB,SAA+Bx3B,EAASgE,EAAS64B,GACvE,IAA0D,IAAtDA,EAAsB1nD,QAAQ6uB,EAAQ9D,YACtC8D,EAAQtE,OAAOy8B,aAEjB,GADAn4B,EAAQtE,OAASpZ,EAAI8M,KAAKgI,KAAK4I,EAAQtE,QACnCsE,EAAQtE,OAAOo9B,cACf94B,EAAQtE,OAAOy8B,eAAiBn8B,EAAQnE,OAAO1C,cAC1C6K,EAAQtE,OAAOy8B,iBACjB,CACL,IAAIY,IAAwB/8B,EAAQnE,OAAOjC,gBAEvCmjC,GACF/4B,EAAQ2B,eAAe,WAAYrf,EAAIsf,eAAeC,KAAKC,qBAE7D9B,EAAQixB,QAAQ,WAAY2H,EAAQI,8BAChCD,GACF/4B,EAAQsqB,YAAY,WAAYhoC,EAAIsf,eAAeC,KAAKC,oBAE5D,CAEJ,EAKAk3B,6BAA8B,SAAsChxB,EAAKz1B,GACvE,IAAIslB,EAASvV,EAAI8M,KAAKgI,KAAK4Q,EAAIhM,QAAQnE,QACvCA,EAAO1C,OAAS6S,EAAItM,OAAOy8B,oBACpBnwB,EAAItM,OAAOy8B,oBACXtgC,EAAOtC,gBAEPsC,EAAO6D,OACd7D,EAAOpB,iBAAmB,KAC1B,IAAIwiC,EAAoBjxB,EAAIhM,QAAQnE,OAAO1C,OAGvCijC,EADM,IAAIpwB,EAAIhM,QAAQrrB,YAAYknB,GACrBmQ,EAAI9L,WAAW5Z,EAAI8M,KAAKgI,KAAK4Q,EAAItM,SAClD08B,EAAOzhD,GAAG,SAAS,SAAmCqpB,GACpD,IAAIoB,EAAcpB,EAAQoB,YAC1BA,EAAY1F,OAAOw8B,kBAAoBe,EACvC73B,EAAYmJ,KAAOjoB,EAAI8M,KAAKimB,oBAAoBjU,EAAY1F,OAC9D,IACA08B,EAAO1X,SAAQ,SAASluC,EAAKyH,GACvBzH,EAAKD,EAAKC,IAEZw1B,EAAItM,OAAOo9B,aAAe7+C,EAC1B1H,IAEJ,GACF,GAMFyQ,EAAOpU,QAAUgqD,kBC5DjB,IAAIt2C,EAAMD,EAAQ,OAElBC,EAAI8M,KAAK/T,OAAOiH,EAAIiE,QAAQ3V,UAAW,CAIrC4iD,sBAAuB,SAA+BxzB,GACpDA,EAAQrpB,GAAG,QAAS2T,KAAK4uC,YAC3B,EAKAA,YAAa,SAAqBl5B,GAChC,IAAIhO,EAAOgO,EAAQoB,YAAYpP,KAC/BgO,EAAQoB,YAAYpP,KAAOA,EAAKzB,QAAQ,cAAe,IACzD,EAMA+hB,eAAgB,SAAwBzyB,GACtC,MAAmB,4BAAfA,EAAM4T,MACe,MAArB5T,EAAMojB,YAGK3gB,EAAIC,QAAQ3R,UAAU0hC,eACrB/gC,KAAK+Y,KAAMzK,EAE7B,qBC9BF,IAAIyC,EAAMD,EAAQ,OACd82C,EAAgB92C,EAAQ,OACxB+2C,EAA+B/2C,EAAQ,OACvCg3C,EAASh3C,EAAQ,OACjBi3C,EAAaj3C,EAAQ,OAGzBA,EAAQ,OAKR,IAAIk3C,EAAmC,CACrC,yBAA2B,EAC3B,YAAc,EACd,gBAAkB,GAMfC,EAA2B,CAC9B,+BACA,aACA,oBACA,KAGEC,EAAwB,mBAE5Bn3C,EAAI8M,KAAK/T,OAAOiH,EAAImE,GAAG7V,UAAW,CAIhCo9C,oBAAqB,SAA6BhuB,GAChD,IAAI05B,EAAoBpvC,KAAK2V,IAAIxJ,iBAC7BkjC,EAAqBrvC,KAAK+Y,gBAAkB/Y,KAAK+Y,gBAAgB5M,iBAAmB,KACpFmjC,EAAuBtvC,KAAKuN,OAAOpB,iBACnCiN,IAAc1D,GAAUA,EAAQ0D,cAQpC,OAAIi2B,EACFA,EAA4C,OAAvBA,EAA8B,KAAOA,IAGxC,IAAhBj2B,EACFg2B,EAAoB,KACXE,IACTF,EAAoBE,GAEfF,EACT,EAKAtpB,eAAgB,SAAwBpI,GACtC,GAAIA,GAAyB,2BAAlBA,EAAI9L,UACb,OAAOu9B,EAGT,IAAII,EAASv3C,EAAIC,QAAQ3R,UAAUw/B,eACnC,OAAQpI,GAAOA,EAAI8xB,YAAc9xB,EAAI8xB,WAAW99B,QAC5CgM,EAAI8xB,WAAW99B,QACf69B,EAAOtoD,KAAK+Y,KAClB,EAKA2kB,eAAgB,SAAwBjP,GACtC,IAAIvJ,EAAmBnM,KAAK0jC,oBAAoBhuB,GAChD,OAAO1d,EAAIsW,QAAQ+8B,cAAcC,WAAWn/B,EAC9C,EAKAw7B,gBAAiB,WACf,IAAIz+B,EACAkX,EAAW,GAcf,GAXKpgB,KAAKuN,OAAO1C,SAAQ7K,KAAKuN,OAAO1C,OAAS,cAEzC7K,KAAKuN,OAAOtC,UAAYjL,KAAKuN,OAAO9B,kBACvC2U,EAASj7B,KAAK,6EAGQ,IAApBi7B,EAAS36B,OACXyjB,EAAMkX,EAAS,GACNA,EAAS36B,OAAS,IAC3ByjB,EAAM,mCAAqCkX,EAAS9L,KAAK,OAEvDpL,EACF,MAAMlR,EAAI8M,KAAKvP,MAAM,IAAIlL,MACvB,CAAC5B,KAAM,kBAAmB2gB,QAASF,GAEzC,EAKAumC,yBAA0B,SAAkC/5B,GAC1D,IAAIg6B,EAAc1vC,KAAK2kB,iBACvB,OAAyC,IAArC3kB,KAAKuN,OAAO7B,sBAAiCgkC,IAAgB13C,EAAIsW,QAAQsW,IAC5B,WAA1ClP,EAAQoB,YAAY7L,SAASof,QAItC,EAKA6e,sBAAuB,SAA+BxzB,GACpDA,EAAQsqB,YAAY,mBAAoBhgC,KAAK2vC,kBAuB7C,GArBAj6B,EAAQsqB,YAAY,WAAYhgC,KAAK4vC,gBACrCl6B,EAAQsqB,YAAY,WAAYhgC,KAAK6vC,mBAFf,MAGtBn6B,EAAQsqB,YAAY,WAAYhgC,KAAK8vC,6BAHf,MAKtBp6B,EAAQ2B,eAAe,WACrBrf,EAAIsf,eAAeC,KAAKw4B,iBAC1Br6B,EAAQsqB,YAAY,QAAShgC,KAAKgwC,gBAClCt6B,EAAQsqB,YAAY,QAAShgC,KAAKiwC,mBAClCv6B,EAAQsqB,YAAY,QAAShgC,KAAKkwC,0BAClCx6B,EAAQsqB,YAAY,QAAShgC,KAAK24B,aAClCjjB,EAAQsqB,YAAY,aAAchgC,KAAKmwC,sBACvCz6B,EAAQsqB,YAAY,eAAgBhgC,KAAKkqB,cACzCxU,EAAQsqB,YAAY,cAAehoC,EAAI8M,KAAKooC,oBAC5Cx3B,EAAQsqB,YAAY,cAAehgC,KAAKiqB,aACxCvU,EAAQsqB,YAAY,cAAehgC,KAAKowC,6BACxC16B,EAAQsqB,YAAY,gBAAiBhgC,KAAKqwC,kBACtCrwC,KAAKyvC,yBAAyB/5B,KAChCA,EAAQ2B,eAAe,aAAcrf,EAAIsf,eAAeC,KAAK+4B,gBAC7D56B,EAAQsqB,YAAY,aAAchgC,KAAKuwC,qBAGf,iBAAtB76B,EAAQ9D,WAAgCm9B,EAAOyB,aAAa96B,EAAS,UAmBvE,OAjBAA,EAAQ85B,WAAax3C,EAAI8M,KAAK2rC,IAAIhpC,MAAMiO,EAAQtE,OAAOm1B,QAEvD7wB,EAAQ2B,eAAe,WAAYrX,KAAK6vC,oBACxCn6B,EAAQ2B,eAAe,QAASrX,KAAK24B,aACF,OAA/BjjB,EAAQ85B,WAAW99B,SACrBgE,EAAQsqB,YAAY,WAAY+O,EAAO2B,0BACvCh7B,EAAQsqB,YAAY,WAAYhgC,KAAK2wC,yBACrCj7B,EAAQsqB,YAAY,WAAYhgC,KAAK4wC,oBACG,gBAA/Bl7B,EAAQ85B,WAAW99B,UAC5BgE,EAAQsqB,YAAY,WAAY+O,EAAO8B,gCACvCn7B,EAAQsqB,YAAY,WAAY+O,EAAO+B,qBACvCp7B,EAAQsqB,YAAY,WAAY+O,EAAO6B,oBAEzCl7B,EAAQsqB,YAAY,WAAY+O,EAAOgC,oBACvCr7B,EAAQsqB,YAAY,WAAY+O,EAAOiC,oBACvCt7B,EAAQsqB,YAAY,QAAShgC,KAAKixC,oCAClCv7B,EAAQsqB,YAAY,QAAS+O,EAAOmC,4BAItCx7B,EAAQsqB,YAAY,WAAYhgC,KAAKmxC,wBACrCz7B,EAAQsqB,YAAY,WAAYhgC,KAAKoxC,8BACrC17B,EAAQixB,QAAQ,eAAgB3mC,KAAKqxC,qBACjCr5C,EAAI8M,KAAKO,aACXqQ,EAAQixB,QAAQ,QAAS3mC,KAAKsxC,4BAElC,EAKA1B,eAAgB,SAASlyB,GACvB,IAAItM,EAASsM,EAAItM,OACbmgC,EAAS7zB,EAAI5G,YAAY7L,SAASof,SAEtC,IADgBjZ,EAAOogC,gBAAkBpgC,EAAOqgC,2BACpB,WAAXF,EAAqB,CAGpC,MAAMv5C,EAAI8M,KAAKvP,MAAM,IAAIlL,MACvB,CAAE8e,KAAM,cAAeC,QAHf,mFAIZ,CACF,EAKA+nC,uBAAwB,SAASzzB,GAC/B,IAAKA,EAAItM,OAAOm1B,QAAU7oB,EAAIhM,QAAQnE,OAAO9B,iBAAkB,CAE7D,MAAMzT,EAAI8M,KAAKvP,MAAM,IAAIlL,MACvB,CAAE8e,KAAM,cAAeC,QAFf,iEAGZ,CACF,EAKCwnC,kBAAmB,SAA2BlzB,GAC7CqxB,EAAO6B,kBAAkBlzB,EAAK,CAAEg0B,mBAAmB,GACrD,EAKAf,wBAAyB,SAAiCjzB,GACxD,IAAIvV,EAAWuV,EAAI8xB,WAAWrnC,SAE9B,GACuC,IAArCA,EAASthB,QAAQ,iBACoB,IAArCshB,EAASthB,QAAQ,gBAEjB,MAAMmR,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,aACNC,QAAS,iDAGf,EAKAymC,mBAAoB,SAA4BnyB,GAC9C,IACIvR,EADUuR,EAAIhM,QACagyB,oBAAoBhmB,GAC/Ci0B,EAASj0B,EAAItM,QAAUsM,EAAItM,OAAOm1B,OAClC3gD,EAAM83B,EAAItM,QAAUsM,EAAItM,OAAOk0B,IAC/BsM,EAAaD,GAAUA,EAAO9qD,QAAQ,KAC1C,GAAI8qD,GAAUC,GAAc,EAC1B,GAAmB,kBAARhsD,GAAoBgsD,EAAa,EAAG,CAC7Cl0B,EAAItM,OAASpZ,EAAI8M,KAAKgI,KAAK4Q,EAAItM,QAE/B,IAAI2gB,EAAS4f,EAAO7uB,OAAO8uB,EAAa,IAAM,GAC9Cl0B,EAAItM,OAAOk0B,IAAMvT,EAAS,IAAMnsC,EAChC83B,EAAItM,OAAOm1B,OAASoL,EAAO7uB,OAAO,EAAG8uB,EACvC,MAAO,GAAyB,OAArBzlC,EAA2B,CACpC,IAAIjD,EAAM,wDAA0DyoC,EACpE,MAAM35C,EAAI8M,KAAKvP,MAAM,IAAIlL,MACvB,CAAE8e,KAAM,gBAAiBC,QAASF,GACtC,CAEJ,EAKA2oC,2BAA4B,SAAoCjgC,GAM9D,OAAiD,IALzB,CACtB,eACA,eACA,eAEuB/qB,QAAQ+qB,EACnC,EAQAk+B,6BAA8B,SAAsCpyB,GAClE,IAAIhM,EAAUgM,EAAIhM,QACdnE,EAASmE,EAAQnE,OAMrB,GALAA,EAAO5B,0BAA4BmjC,EAA6Bp9B,EAAQqH,gBAAiB,CACvFjL,IAAK,qCACLM,aAAc,iCACdP,aAAc,gCAGZ6D,EAAQqH,iBAAmB,CAAC,GAAG9N,UACN,cAA3ByS,EAAI5G,YAAYjM,QACqB,aAArC0C,EAAO5B,2BACP+R,EAAI5G,YAAY7L,SAAS+b,SAASngC,QAAQ,qBAAuB,EACjE,CACA,IAAIirD,EAAcvkC,EAAOtC,SAASpkB,QAAQ,kBACtCkrD,EAAmBxkC,EAAOtC,SAAS4hB,UAAU,EAAGilB,GAClD,aAAevkC,EAAOtC,SAAS4hB,UAAUilB,GAC3Cp0B,EAAI5G,YAAYC,eAAeg7B,EACjC,CACF,EAUApZ,YAAa,SAAqBjb,GAChC,IAAI5G,EAAc4G,EAAI5G,YAClB1V,EAAIsc,EAAItM,OAAOm1B,OACf70B,EAAUgM,EAAIhM,QACdzG,EAAW6L,EAAY7L,SAC3B,GAAI7J,IACGsQ,EAAQsgC,oBAAoB5wC,GAAI,CAC/BsQ,EAAQnE,OAAOjB,uBAAyBoF,EAAQmgC,2BAA2Bn0B,EAAI9L,WAC7EF,EAAQnE,OAAOV,qBACjB5B,EAAS+b,SAAW5lB,EAAI,yCAExB6J,EAAS+b,SAAW5lB,EAAI,+BAEhBsQ,EAAQnE,OAAO9B,mBACzBR,EAAS+b,SACP5lB,EAAI,IAAM6J,EAAS+b,UAGvB,IAAI+B,EAAO9d,EAAS8d,KAElB9d,EAASka,KADE,KAAT4D,GAAwB,MAATA,EACD9d,EAAS+b,SAAW,IAClC/b,EAAS8d,KAEK9d,EAAS+b,SAG3BlQ,EAAYm7B,oBAAsB7wC,EAClCsQ,EAAQwgC,kCAAkCx0B,EAC5C,CAEJ,EAOAw0B,kCAAmC,SAA2Cx0B,GAC5E,IAAI5G,EAAc4G,EAAI5G,YAClB66B,EAAS76B,EAAYm7B,oBACzB,GAAIN,GAAU76B,EAAYpP,KAAM,CAC9B,GAAIgW,EAAItM,QAAUsM,EAAItM,OAAOk0B,IAAK,CAChC,IAAI6M,EAAe,IAAMn6C,EAAI8M,KAAKwzB,cAAc5a,EAAItM,OAAOk0B,KAC3D,GAA+C,IAA3CxuB,EAAYpP,KAAK7gB,QAAQsrD,KAAwBr7B,EAAYpP,KAAKjiB,SAAW0sD,EAAa1sD,QAAoD,MAA1CqxB,EAAYpP,KAAKyqC,EAAa1sD,SAEpI,MAEJ,CACAqxB,EAAYpP,KAAOoP,EAAYpP,KAAKzB,QAAQ,IAAI8d,OAAO,IAAM4tB,GAAS,IAC1C,MAAxB76B,EAAYpP,KAAK,KACnBoP,EAAYpP,KAAO,IAAMoP,EAAYpP,KAEzC,CACF,EAMAupC,8BAA+B,SAAuCvzB,GACpE,IAAI00B,EAAiB10B,EAAI8xB,WAErB6C,EAA0C,gBAA3BD,EAAe1gC,QAC9B4gC,EAA+C,qBAA3BF,EAAe1gC,QAEnC6gC,EAAiBF,EAAe,IAAMD,EAAeI,UAAW,GAChEC,EAAcJ,EAAe,cAAe,iBAC5CK,GAAcL,GAAgB30B,EAAIhM,QAAQnE,OAAOX,gBAAkB,QAAS,GAC5E+lC,GAAmBN,GACrB30B,EAAIhM,QAAQnE,OAAOV,qBAAuB,aAAe,GAEvD5B,EAAWyS,EAAI5G,YAAY7L,SAC3BkxB,EAAY6S,EAAWjT,kBAAkBqW,EAAevnC,QACxD+nC,EAAel1B,EAAIhM,QAAQnE,OAAO3B,eAStC,GAPAX,EAAS+b,SAAW,CAClBorB,EAAeS,YAAc,IAAMT,EAAeU,UAAYP,EAC9DE,EAAcC,EAAaC,EAC3BC,EAAeR,EAAevnC,OAAS6S,EAAIhM,QAAQnE,OAAO1C,OAC1DsxB,GACA7nB,KAAK,KAEHg+B,EAAmB,CAEjBG,EAAc,mBAAlB,IACIM,EAAkBX,EAAejqC,SAASb,MAAM,KAAK,GACrDorC,EAAah1B,EAAIhM,QAAQnE,OAAOX,gBAAkB,QAAS,GAC/D3B,EAAS+b,SAAW,CAClB+rB,EAAkB,IAAMX,EAAeU,UACvCL,EAAcC,EACdE,EAAeR,EAAevnC,OAAS6S,EAAIhM,QAAQnE,OAAO1C,OAC1DsxB,GACA7nB,KAAK,IACT,CACArJ,EAASka,KAAOla,EAAS+b,SACzB,IAAIgsB,EAAah7C,EAAI8M,KAAKyzB,UAAU7a,EAAItM,OAAOm1B,QAC3C7+B,EAAOgW,EAAI5G,YAAYpP,KAE3BgW,EAAI5G,YAAYpP,KAAOA,EAAKzB,QAAQ,IAAI8d,OAAO,IAAMivB,GAAa,IAClC,MAA5Bt1B,EAAI5G,YAAYpP,KAAK,KACvBgW,EAAI5G,YAAYpP,KAAO,IAAMgW,EAAI5G,YAAYpP,MAE/CgW,EAAI5G,YAAYjM,OAASunC,EAAevnC,MAC1C,EAMAslC,qBAAsB,SAA8BzyB,GAClD,IAAI90B,EAAM80B,EAAI5G,YAAY0B,QAAQ,kBAC9BxgB,EAAI8M,KAAKQ,WAAa1c,GAAO,SAAe80B,EAAItM,OAAOoyB,gBAAgBxrC,EAAI8M,KAAK6a,OAAOD,UACzFhC,EAAI5G,YAAY0B,QAAgB,OAAI,eAExC,EAOAw3B,eAAgB,SAAwBtyB,GACtC,IAAI5G,EAAc4G,EAAI5G,YACtB,GAA2B,QAAvBA,EAAYwT,QAA2C,SAAvBxT,EAAYwT,OAAhD,CAMKxT,EAAY0B,QAAQ,kBACvB1B,EAAY0B,QAAQ,gBAAkB,4BAGxC,IAAIy6B,EAAcn8B,EAAY0B,QAAQ,gBACtC,GAAIxgB,EAAI8M,KAAKO,YACX,GAAgC,kBAArByR,EAAYmJ,MAAsBgzB,EAAY/sC,MAAM,gBAGxD,CAKL4Q,EAAY0B,QAAQ,gBAClBy6B,EAAYhtC,QAAQ,uBALN,SAASuO,EAAGud,EAAQmhB,GAClC,OAAOnhB,EAASmhB,EAAYz/C,aAC9B,GAIF,KAVgF,CAE9EqjB,EAAY0B,QAAQ,iBADN,iBAEhB,CAXF,aAFS1B,EAAY0B,QAAQ,eAsB/B,EAWA26B,qBAAsB,SAA8Bz1B,GAClD,IAAI0G,EAAQ1G,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAAWxR,MAAM8V,QACxD+J,EAAOvC,EAAI5G,YAAYmJ,KACvBmzB,EAAkB11B,EAAIhM,QAAQnE,OAAO1B,kBACvCuY,EAAM2gB,aACLrnB,EAAItM,OAAO2zB,YACZ9kB,IACCjoB,EAAI8M,KAAK7F,OAAO2gB,SAASlC,EAAI5G,YAAYmJ,OAAyC,kBAAzBvC,EAAI5G,YAAYmJ,MAG5E,SAAImzB,IAAmB11B,EAAIhM,QAAQ+9B,yBAAyB/xB,IAASA,EAAItE,mBAKrEg6B,GAAqD,OAAlCpzC,KAAK0jC,oBAAoBhmB,KAAiBA,EAAItE,cAKvE,EAUA62B,kBAAmB,SAA2BvyB,GAC5C,GAAIA,EAAIhM,QAAQyhC,qBAAqBz1B,GAAM,CACzC,IAAI+G,EAAMzsB,EAAI8M,KAAKC,OAAO0f,IAAI/G,EAAI5G,YAAYmJ,KAAM,UACpDvC,EAAI5G,YAAY0B,QAAQ,eAAiBiM,CAC3C,CACF,EAKAyrB,yBAA0B,SAAkCxyB,GAK1D1lB,EAAI8M,KAAK+D,KAJE,CACT2oC,eAAgB,gDAChBC,yBAA0B,8DAER,SAAS7rD,EAAKmzC,GAChC,GAAIrb,EAAItM,OAAOxrB,GAAM,CACnB,IAAIW,EAAQyR,EAAI8M,KAAKC,OAAO0f,IAAI/G,EAAItM,OAAOxrB,GAAM,UACjD83B,EAAI5G,YAAY0B,QAAQugB,GAAUxyC,CACpC,CACF,GACF,EASAyrD,oBAAqB,SAA6BqB,GAEhD,QAAIrzC,KAAKuN,OAAO/B,mBACZxL,KAAKuN,OAAO9B,oBAEZsjC,EAAOuE,wBAAwBD,OACzBrzC,KAAKuN,OAAOhC,aAAc8nC,EAAWntC,MAAM,OAIvD,EASAkqC,4BAA6B,SAAqCpyB,GAChE,IAAItM,EAAU1R,KAAK0R,QAAU1R,KAAK0R,QAAU1R,KAC5C,GAAK0R,EAAQ6hC,WAAWv1B,IAAUixB,EAAiCjxB,EAAKtI,QAAQ9D,WAAhF,CAGA,IAAI8G,EAAesF,EAAKtF,aACpB86B,EAAa96B,EAAauH,MAAQvH,EAAauH,KAAK13B,YAAc,GACtE,GAAIirD,GAAcA,EAAW3sD,QAAQ,cAAgB2sD,EAAW/tD,OAAS,EAOvE,MAHAu4B,EAAKze,KAAO,KACZmS,EAAQwY,aAAalM,GACrBA,EAAKzoB,MAAMg+C,YAAa,EAClBv1B,EAAKzoB,MACN,IAAKmjB,EAAauH,OAASuzB,EAAWttC,MAAM,UAIjD,MADA8X,EAAKze,KAAO,KACNvH,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,gBACNC,QAAS,sBAjBb,CAoBF,EAOAmqC,WAAY,SAAoBv1B,GAE9B,GAAa,OADFA,GAAQA,EAAKtF,cAAgBsF,EAAKtF,aAAaC,YAExD,OAAO,EAET,IAIE,IAHA,IAAI+E,EAAMM,EAAKtI,QACX+9B,EAAgB/1B,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,WAAWmK,OAAO7F,QACjEvxB,EAAOC,OAAOD,KAAK8uD,GACdluD,EAAI,EAAGA,EAAIZ,EAAKc,SAAUF,EAAG,CACpC,IAAI+5B,EAASm0B,EAAc9uD,EAAKY,IAChC,GAAoB,WAAhB+5B,EAAO3rB,MAAqB2rB,EAAO2F,YACrC,OAAO,CAEX,CAEA,IAAIhF,EAAOjC,EAAKtF,aAAauH,KAC7B,GAAIA,QAA4BlxB,IAApBkxB,EAAKzgB,aACXygB,EAAKzgB,WAAa,IAAMygB,EAAKzgB,WAAa,KAE5C,OAAO,EAGX,IAAKygB,EACH,OAAO,EAET,IAAIuzB,EAAavzB,EAAK13B,WACtB,GAAIirD,EAAW3sD,QAAQ,cAAgB2sD,EAAW/tD,OAAS,EACzD,OAAO,CAEX,CAAE,MAAO8Q,GACP,OAAO,CACT,CACA,OAAO,CACT,EAMAyxB,eAAgB,SAAwBzyB,EAAOmgB,GAC7C,SAAIngB,EAAMg+C,YACNtE,EAAiCv5B,EAAQ9D,YAAmC,MAArBrc,EAAMojB,eAEtDjD,EAAQg+B,0BACfh+B,EAAQhE,QAAQiiC,kBAAkBj+B,EAAQg+B,+BAEnCn+C,GAAwB,mBAAfA,EAAM4T,QAEf5T,IAC0C,GAAjD25C,EAAyBroD,QAAQ0O,EAAM4T,OACvC5T,EAAMsV,QAAUtV,EAAMsV,QAAU6K,EAAQoB,YAAYjM,QACtD6K,EAAQoB,YAAYjM,OAAStV,EAAMsV,OACV,MAArBtV,EAAMojB,YACRjD,EAAQhE,QAAQkiC,sBAAsBl+B,IAEjC,GAEM1d,EAAIC,QAAQ3R,UAAU0hC,eACrB/gC,KAAK+Y,KAAMzK,EAAOmgB,IAEpC,EAQAk+B,sBAAuB,SAA+Bl+B,EAAS7K,GAC7D,IAAIiM,EAAcpB,EAAQoB,YAI1B,GAHsB,kBAAXjM,GAAuBA,EAAOplB,SACvCqxB,EAAYjM,OAASA,GAElBiM,EAAY7L,SAASka,KAAKjf,MAAM,wCAArC,CAGA,IAAIwL,EAAUgE,EAAQhE,QAClBmiC,EAAWniC,EAAQnE,OACnB9B,EAAmBooC,EAASpoC,iBAC5BA,UACKooC,EAASpoC,iBAElB,IAAIqoC,EAAY97C,EAAI8M,KAAKgI,KAAK+mC,UACvBC,EAAU7oC,SACjB6oC,EAAUjpC,OAASiM,EAAYjM,OAE/BiM,EAAY7L,SAAY,IAAIjT,EAAImE,GAAG23C,GAAY7oC,SAC/CyG,EAAQinB,YAAYjjB,GACpBm+B,EAASpoC,iBAAmBA,EAC5BqL,EAAY0B,QAAQu7B,KAAOj9B,EAAY7L,SAASka,KAEd,aAA9BzP,EAAQonB,KAAKC,eACfrnB,EAAQ2B,eAAe,QAAS3F,EAAQinB,aACxCjjB,EAAQsqB,YAAY,QAAStuB,EAAQwgC,mCAlBvC,CAoBF,EAQAjoB,YAAa,SAAqBjM,GAChC,IAAIN,EAAMM,EAAKtI,QACf,GAAsB,sBAAlBgI,EAAI9L,UAAmC,CACzC,IAAI1L,EAAQ8X,EAAKtF,aAAauH,KAAK13B,WAAW2d,MAAM,2BAC7C8X,EAAKze,KAAQ,EAElBye,EAAKze,KAAKy0C,mBADR9tC,EAC6BA,EAAM,GAEN,EAEnC,CACA,IAAIyrC,EAASj0B,EAAItM,OAAOm1B,QAAU,KAClC,GAAsB,iBAAlB7oB,EAAI9L,WAAkD,kBAAX+/B,GAAwB3zB,EAAKzoB,MAErE,CACL,IACIsV,GADUmT,EAAKtF,aAAaF,SAAW,CAAC,GACvB,wBAA0B,KAC/C,IAAK3N,GAA4B,iBAAlB6S,EAAI9L,YAAiCoM,EAAKzoB,MAAO,CAC9D,IAAI0+C,EAA4Bv2B,EAAItM,OAAO8iC,0BAIzCrpC,EAHGopC,EAEuD,OAAjDA,EAA0BD,mBAC1B,YAEAC,EAA0BD,mBAJ1B,WAMb,CACInpC,GACI8mC,GAAU9mC,IAAW6S,EAAIhM,QAAQiiC,kBAAkBhC,KACrDj0B,EAAIhM,QAAQiiC,kBAAkBhC,GAAU9mC,EAGhD,MAnBE6S,EAAIhM,QAAQyiC,uBAAuBxC,GAoBrCj0B,EAAIhM,QAAQ0iC,kBAAkBp2B,EAChC,EAOAkM,aAAc,SAAsBlM,GAClC,IAmBIq2B,EAnBAC,EAAQ,CACV,IAAK,cACL,IAAK,YACL,IAAK,aACL,IAAK,YAGH52B,EAAMM,EAAKtI,QACXvM,EAAO6U,EAAKtF,aAAaC,WACzBsH,EAAOjC,EAAKtF,aAAauH,MAAQ,GAGjCpV,GADUmT,EAAKtF,aAAaF,SAAW,CAAC,GACvB,wBAA0B,KAC3Cm5B,EAASj0B,EAAItM,OAAOm1B,QAAU,KAC9BoN,EAAoBj2B,EAAIhM,QAAQiiC,kBAMpC,GALI9oC,GAAU8mC,GAAU9mC,IAAW8oC,EAAkBhC,KACnDgC,EAAkBhC,GAAU9mC,GAI1BypC,EAAMnrC,IAAyB,IAAhB8W,EAAKx6B,OAClBksD,IAAW9mC,IACbwpC,EAAeV,EAAkBhC,IAAW,QACvBj0B,EAAI5G,YAAYjM,SACnCA,EAASwpC,GAGbr2B,EAAKzoB,MAAQyC,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CACvC8e,KAAMmrC,EAAMnrC,GACZC,QAAS,KACTyB,OAAQA,QAEL,CACL,IAAItL,GAAO,IAAIvH,EAAIuN,IAAIC,QAASiC,MAAMwY,EAAK13B,YAEvCgX,EAAK+pC,SAAWz+B,GAClBA,EAAStL,EAAK+pC,OACVqI,GAAU9mC,IAAW8oC,EAAkBhC,KACzCgC,EAAkBhC,GAAU9mC,KAErB8mC,GAAW9mC,GAAWtL,EAAK+pC,SACpC+K,EAAeV,EAAkBhC,IAAW,QACvBj0B,EAAI5G,YAAYjM,SACnCA,EAASwpC,GAIbr2B,EAAKzoB,MAAQyC,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CACvC8e,KAAM5J,EAAK63B,MAAQjuB,EACnBC,QAAS7J,EAAK+3B,SAAW,KACzBzsB,OAAQA,GAEZ,CACA6S,EAAIhM,QAAQ0iC,kBAAkBp2B,EAChC,EAQAqzB,oBAAqB,SAA6BrzB,EAAM/1B,GACtD,IAAIsN,EAAQyoB,EAAKzoB,MACbmoB,EAAMM,EAAKtI,QACXi8B,EAASj0B,EAAItM,OAAOm1B,QAAU,KAElC,IAAKhxC,IAAUo8C,GAAUp8C,EAAMsV,QAA4B,gBAAlB6S,EAAI9L,WACxC5Z,EAAI8M,KAAKQ,UAA8B,eAAlBoY,EAAI9L,WACJ,MAArBrc,EAAMojB,YAAwC,eAAlB+E,EAAI9L,YACiB,IAAlDs9B,EAAyBroD,QAAQ0O,EAAM4T,MACzC,OAAOlhB,IAET,IAAIssD,EAAev8C,EAAI8M,KAAKQ,SAAW,aAAe,cAClDkvC,EAAY,CAACjO,OAAQoL,GACJ,gBAAjB4C,IAAgCC,EAAUC,QAAU,GACxD,IAAIC,EAAYh3B,EAAIhM,QAAQ6iC,GAAcC,GAC1CE,EAAUhB,wBAA0B/B,EACpC+C,EAAU98B,MAAK,WACb,IAAI/M,EAAS6S,EAAIhM,QAAQiiC,kBAAkBhC,IAAW,KACtDp8C,EAAMsV,OAASA,EACf5iB,GACF,GACF,EAQCqpD,4BAA6B,SAAqCtzB,EAAM/1B,GACvE,IAAK+P,EAAI8M,KAAKO,YACZ,OAAOpd,IAET,IAAIsN,EAAQyoB,EAAKzoB,MACbmgB,EAAUsI,EAAKtI,QACfi8B,EAASj8B,EAAQtE,OAAOm1B,OAC5B,IAAKhxC,GAAwB,oBAAfA,EAAM4T,OAA+BwoC,GAChB,cAA/Bj8B,EAAQoB,YAAYjM,OACtB,OAAO5iB,IAET,IAAIypB,EAAUgE,EAAQhE,QAClBiiC,EAAoBjiC,EAAQiiC,kBAC5BU,EAAeV,EAAkBhC,IAAW,KAEhD,GAAI0C,GAAgBA,IAAiB3+B,EAAQoB,YAAYjM,OACvD6G,EAAQkiC,sBAAsBl+B,EAAS2+B,GACvCpsD,SACK,GAAK8mD,EAAOuE,wBAAwB3B,GAMpC,GAAIj8B,EAAQoB,YAAYm7B,oBAAqB,CAClD,IAAI0C,EAAejjC,EAAQkjC,YAAY,CAACrO,OAAQoL,EAAQ8C,QAAS,IACjE/iC,EAAQkiC,sBAAsBe,EAAc,aAC5CA,EAAajB,wBAA0B/B,EAEvCgD,EAAa/8B,MAAK,WAChB,IAAI/M,EAAS6G,EAAQiiC,kBAAkBhC,IAAW,KAC9C9mC,GAAUA,IAAW6K,EAAQoB,YAAYjM,QAC3C6G,EAAQkiC,sBAAsBl+B,EAAS7K,GAEzC5iB,GACF,GACF,MAIEA,SArBAypB,EAAQkiC,sBAAsBl+B,EAAS,aACL,cAA9Bi+B,EAAkBhC,KACpBgC,EAAkBhC,GAAU,aAE9B1pD,GAmBH,EAOA0rD,kBAAmB,CAAC,EAOpBQ,uBAAwB,SAASU,GAChC,IAAIlB,EAAoB3zC,KAAK2zC,kBACxBkB,EAEyB,kBAAZA,IAChBA,EAAU,CAACA,IAFXA,EAAUjwD,OAAOD,KAAKgvD,GAIxB,IAAK,IAAIpuD,EAAI,EAAGA,EAAIsvD,EAAQpvD,OAAQF,WAC3BouD,EAAkBkB,EAAQtvD,IAEnC,OAAOouD,CACR,EAODvC,6BAA8B,SAAsC1zB,GAClE,IAAIi0B,EAASj0B,EAAItM,OAAOm1B,QAAU,KAClC,GAAIoL,EAAQ,CACV,IAAIjgC,EAAUgM,EAAIhM,QACdojC,EAAgBp3B,EAAI5G,YAAYjM,OAChCwpC,EAAe3iC,EAAQiiC,kBAAkBhC,GACzC0C,GAAgBA,IAAiBS,GACnCpjC,EAAQkiC,sBAAsBl2B,EAAK22B,EAEvC,CACF,EAOAD,kBAAmB,SAA2Bp2B,GAC5C,IAAI+2B,EAAoB/2B,EAAKtF,aAAaF,QAAUwF,EAAKtF,aAAaF,QAAQ,cAAgB,KAC1Fw8B,EAAOh3B,EAAKtF,aAAaF,QAAUwF,EAAKtF,aAAaF,QAAQ,eAAiB,KAClFwF,EAAK+2B,kBAAoBA,EACzB/2B,EAAKg3B,KAAOA,EAERh3B,EAAKzoB,QACPyoB,EAAKzoB,MAAMoiC,UAAY3Z,EAAK2Z,WAAa,KACzC3Z,EAAKzoB,MAAMw/C,kBAAoBA,EAC/B/2B,EAAKzoB,MAAMy/C,KAAOA,EAEtB,EAsDA9sC,aAAc,SAAsB0J,EAAWR,EAAQxJ,GAErD,IAAIpB,GADJ4K,EAASpZ,EAAI8M,KAAKgI,KAAKsE,GAAU,CAAC,IACbpK,SAAW,IAEhC,GAAuB,kBAAZR,EACT,MAAMxO,EAAI8M,KAAKvP,MAAM,IAAIlL,MACvB,CAAE8e,KAAM,4BAA6BC,QAAS,oDAAsD5C,WAGjG4K,EAAOpK,QACd,IAAI0O,EAAU1V,KAAKiX,YAAYrF,EAAWR,GAE1C,IAAIxJ,EAKF,OAAO8N,EAAQ0gB,QAAQ5vB,EAASoB,GAJhC5P,EAAI8M,KAAK4L,OAAM,WACbgF,EAAQ0gB,QAAQ5vB,EAASoB,EAC3B,GAIJ,EAiIAqtC,oBAAqB,SAA6B7jC,EAAQxJ,GAClC,oBAAXwJ,QAAsCriB,IAAb6Y,IAClCA,EAAWwJ,EACXA,EAAS,MAGXA,EAASpZ,EAAI8M,KAAKgI,KAAKsE,GAAU,CAAC,GAClC,IAAI8jC,EAAcl1C,KAAKuN,OAAO6D,QAAU,CAAC,EACrCugC,EAASvgC,EAAOm1B,QAAU2O,EAAY3O,OACxChoC,EAAOyB,KACPuN,EAASvN,KAAKuN,OACdtC,EAAWjT,EAAI8M,KAAKgI,KAAK9M,KAAKiL,UAKhC,SAASkqC,IACP,MAAO,CACLxlD,IAAKqI,EAAI8M,KAAKswC,UAAUnqC,GACxBoqC,OAAQ92C,EAAK+2C,kBACX/nC,EAAOvE,YACPuE,EAAO1C,OACP8mC,EACAvgC,EAAOmkC,OACPnkC,EAAOokC,WACPpkC,EAAOpK,SAGb,CAEA,GAlBKuG,EAAO9B,mBACVR,EAAS4f,SAAW,IAAM8mB,IAiBxB/pC,EAaF,OAAOutC,IAZP5nC,EAAOzE,gBAAe,SAAU5gB,GAC9B,GAAIA,EACF0f,EAAS1f,QAET,IACE0f,EAAS,KAAMutC,IACjB,CAAE,MAAOjtD,GACP0f,EAAS1f,EACX,CAEJ,GAIJ,EAKAotD,kBAAmB,SACjBtsC,EACA6B,EACA8mC,EACA0D,EACAI,EACAC,GAEA,IAAI/a,EAAM36B,KAAK2lB,uBACf,IAAK3c,IAAgB6B,IAAW8mC,EAC9B,MAAM,IAAItnD,MAAM,mFAGlBgrD,EAASr9C,EAAI8M,KAAKgI,KAAKuoC,GAAU,CAAC,GAClCI,GAAcA,GAAc,IAAIjtD,MAAM,GACtCktD,EAAmBA,GAAoB,KAEvC,IAAIC,EAAc39C,EAAI8M,KAAKkL,KAAKw4B,QAAQ7N,GAAK10B,QAAQ,iBAAkB,IACnE2vC,EAAYD,EAAY7yB,OAAO,EAAG,GAClC+yB,EAAQhH,EAAciH,YAAYF,EAAW/qC,EAAQ,MACrDkrC,EAAa/sC,EAAYK,YAAc,IAAMwsC,EASjD,IAAK,IAAIG,KAPTX,EAAe,OAAI1D,EACnB0D,EAAO,mBAAqB,mBAC5BA,EAAO,oBAAsBU,EAC7BV,EAAO,cAAgBM,EACnB3sC,EAAY4G,eACdylC,EAAO,wBAA0BrsC,EAAY4G,cAE7BylC,EAChB,GAAIA,EAAOnsD,eAAe8sD,GAAQ,CAChC,IAAIC,EAAY,CAAC,EACjBA,EAAUD,GAASX,EAAOW,GAC1BP,EAAWtwD,KAAK8wD,EAClB,CAaF,OAVAZ,EAAOluC,OAASnH,KAAKk2C,kBACnB,IAAI9lC,KAAKuqB,EAAI9Z,UAA+B,IAAnB60B,GACzBD,GAEFJ,EAAO,mBAAqBr9C,EAAI8M,KAAKC,OAAOoxC,KAC1CtH,EAAcuH,cAAcptC,EAAa4sC,EAAW/qC,EAAQ,MAAM,GAClEwqC,EAAOluC,OACP,OAGKkuC,CACT,EAKAa,kBAAmB,SAA2BG,EAAYZ,GACxD,OAAOz9C,EAAI8M,KAAKc,OAAOC,OAAOa,KAAKC,UAAU,CAC3C0vC,WAAYr+C,EAAI8M,KAAKkL,KAAKw4B,QAAQ6N,GAClCZ,WAAYA,IAEhB,EAKApF,iBAAkB,SAA0B36B,GAC1CA,EAAQsqB,YAAY,WAAYtqB,EAAQhE,QAAQ4kC,0BAChD5gC,EAAQ2B,eAAe,QAAS3B,EAAQhE,QAAQs+B,gBAC3Ct6B,EAAQtE,OAAOoyB,KAIlB9tB,EAAQsqB,YAAY,aAAchoC,EAAIsf,eAAeC,KAAK+4B,gBAF1D56B,EAAQ2B,eAAe,QAAS3B,EAAQhE,QAAQu+B,kBAIpD,EAMAM,mBAAoB,SAA4B76B,GAC9C,IAAI8C,EAAU9C,EAAQoB,YAAY0B,QAE7B5zB,OAAO0B,UAAU4C,eAAejC,KAAKuxB,EAAS,uBACjDA,EAAQ,wBAA0B,mBAEtC,EAKA89B,yBAA0B,SAAkC5gC,GAC1D,QAAqC3mB,IAAjC2mB,EAAQtE,OAAOq0B,cACjB,MAAMztC,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAAC8e,KAAM,sBACvCC,QAAS,sDAEf,EAEAmtC,aAAc,SAAsBnlC,EAAQxJ,GAMpB,oBAAXwJ,GAA0BA,IACnCxJ,EAAWA,GAAYwJ,EACvBA,EAAS,CAAC,GAEZ,IAAI4V,EAAWhnB,KAAKiL,SAAS+b,SAGzBwvB,EAAex+C,EAAI8M,KAAKgI,KAAKsE,GAKjC,OAHI4V,IAAahnB,KAAK2V,IAAIsY,gBAAmB7c,EAAO8iC,4BAClDsC,EAAatC,0BAA4B,CAAEF,mBAAoBh0C,KAAKuN,OAAO1C,SAEtE7K,KAAKiX,YAAY,eAAgBu/B,EAAc5uC,EACxD,EAEA6uC,uBAAwB,SAAgCrlC,EAAQxJ,GAE9D,IAAI8N,EAAU1V,KAAKiX,YAAY,yBAA0Bjf,EAAI8M,KAAKgI,KAAKsE,GAASxJ,GAC5Eof,EAAWhnB,KAAKiL,SAAS+b,SAW7B,OAREA,GAF4C,IAA1CA,EAASngC,QAAQmZ,KAAKuN,OAAO1C,QAEpBmc,EAAS/gB,QAAQ,MAAOkpC,EAAwB,KAIhDnoB,EAAS/gB,QAAQ,MAAOkpC,EAAwB,IAAMnvC,KAAKuN,OAAO1C,OAAS,KAGxF6K,EAAQoB,YAAY7L,SAAW,IAAIjT,EAAIkwB,SAASlB,EAAUhnB,KAAKuN,QACxDmI,CACT,EAkCA0W,OAAQ,SAAgBhb,EAAQnjB,EAAS2Z,GAChB,oBAAZ3Z,QAAuCc,IAAb6Y,IACnCA,EAAW3Z,EACXA,EAAU,MAGZA,EAAUA,GAAW,CAAC,EACtBA,EAAU+J,EAAI8M,KAAK8F,MAAM3c,GAAW,CAAC,EAAG,CAACyjB,QAAS1R,KAAMoR,OAAQA,IAEhE,IAAIslC,EAAW,IAAI1+C,EAAImE,GAAGiR,cAAcnf,GAExC,MADwB,oBAAb2Z,GAAyB8uC,EAAS9+B,KAAKhQ,GAC3C8uC,CACT,EAKA/G,iBAAkB,SAA0Bx3B,GAEtCA,GAAYA,EAASO,cAAgBP,EAASO,aAAaF,SACzD,YAAaL,EAASO,aAAaF,UACrCL,EAASO,aAAaF,QAAQm+B,cAAgBx+B,EAASO,aAAaF,QAAQhS,SAKhF,IACM2R,GAAYA,EAASO,cAAgBP,EAASO,aAAaF,SACzD,YAAaL,EAASO,aAAaF,SACrCxgB,EAAI8M,KAAKkL,KAAKwjB,eAAerb,EAASO,aAAaF,QAAQhS,QAGjE,CAAE,MAAOjQ,GACP/H,QAAQo7B,IAAI,UAAW,YAAarzB,UAC7B4hB,EAASO,aAAaF,QAAQhS,OACvC,CACF,IAMFxO,EAAImE,GAAGwU,mBAAqB,SAA4BC,GACtD5Q,KAAK1Z,UAAUswD,oBAAsB5+C,EAAI8M,KAAKgM,gBAAgB,eAAgBF,EAChF,EAKA5Y,EAAImE,GAAG6U,wBAA0B,kBACxBhR,KAAK1Z,UAAUswD,mBACxB,EAEA5+C,EAAI8M,KAAKuI,YAAYrV,EAAImE,qBC71CzB,IAAInE,EAAMD,EAAQ,OACdi3C,EAAaj3C,EAAQ,OAErBg3C,EAAS,CAIXyB,aAAc,SAAsB9yB,EAAKwW,GACvC,IACI2iB,IADcn5B,EAAIhM,QAAQiE,IAAIE,WAAW6H,EAAI9L,YAAc,CAAC,GAAGxR,OAAS,CAAC,GAC/C8V,SAAW,CAAC,EAC1C,SAAKwH,EAAItM,OAAO8iB,KAAe2iB,EAAa3iB,KACrCl8B,EAAI8M,KAAK2rC,IAAIhzB,SAASC,EAAItM,OAAO8iB,GAC1C,EAKA8c,mBAAoB,SAA4BtzB,GAC9C,IAAIo5B,EAAYp5B,EAAI8xB,WAEpB,GAA0B,OAAtBsH,EAAUplC,SACa,gBAAtBolC,EAAUplC,SACY,qBAAtBolC,EAAUplC,QACb,MAAM1Z,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,aACNC,QAAS,+EAGf,EAKA2nC,mBAAoB,SAA4BrzB,GAC9C,IAAIo5B,EAAYp5B,EAAI8xB,WAEpB,IAAK,YAAYuH,KAAKD,EAAUhE,WAC9B,MAAM96C,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,aACNC,QAAS,kDAGf,EAKAsnC,yBAA0B,SAAkChzB,GAC1D,IAAIo5B,EAAYp5B,EAAI8xB,WAGhBwH,EAAYF,EAAU3uC,SAAS,IAEnC,GAAmD,IAA/C2uC,EAAU3uC,SAASb,MAAM0vC,GAAWvxD,OACtC,MAAMuS,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,aACNC,QAAS,4EAIb,IAAIypC,EAAciE,EAAU3uC,SAASb,MAAM0vC,GAAW,GAClDC,EAAoBpE,EAAc,IAAMiE,EAAUhE,UACtD,IAAK/D,EAAOuE,wBAAwB2D,IAAsBA,EAAkB/wC,MAAM,MAChF,MAAMlO,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,aACNC,QAAS,2DAA6DypC,IAK1En1B,EAAI8xB,WAAWqD,YAAcA,CAC/B,EAKA/B,oBAAqB,SAA6BpzB,GAChD,IAAIo5B,EAAYp5B,EAAI8xB,WAEpB,GAC6C,IAA3CsH,EAAU3uC,SAASthB,QAAQ,aACgB,IAA3CiwD,EAAU3uC,SAASthB,QAAQ,YAE3B,MAAMmR,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,aACNC,QAAS,8CAKb,IAAI4tC,EAAYF,EAAU3uC,SAAS,GAC/BqqC,EAAYsE,EAAU3uC,SAASb,MAAM0vC,GAAW,GAEpD,IADmB,IAAIjzB,OAAO,4DACZp7B,KAAK6pD,GACrB,MAAMx6C,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,aACNC,QAAS,sDAAwDopC,IAGrE90B,EAAI8xB,WAAWgD,UAAYA,CAC7B,EAKA3B,+BAAgC,SAAwCnzB,GACtE,IAAIo5B,EAAYp5B,EAAI8xB,WAGhBwH,EAAYF,EAAU3uC,SAAS,GAEnC,GAAmD,IAA/C2uC,EAAU3uC,SAASb,MAAM0vC,GAAWvxD,OACtC,MAAMuS,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,aACNC,QAAS,6FAIb,IAAIypC,EAAciE,EAAU3uC,SAASb,MAAM0vC,GAAW,GAClDC,EAAoBpE,EAAc,IAAMiE,EAAUhE,UACtD,IAAK/D,EAAOuE,wBAAwB2D,IAAsBA,EAAkB/wC,MAAM,MAChF,MAAMlO,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,aACNC,QAAS,2DAA6DypC,IAK1En1B,EAAI8xB,WAAWqD,YAAcA,CAC/B,EAKAjC,kBAAmB,SAA2BlzB,EAAKzvB,QACjCc,IAAZd,IACFA,EAAU,CAAC,GAGb,IAAI2kD,EAAe7D,EAAOmI,uBAAuBx5B,GAC7Cy5B,EAAgBz5B,EAAI8xB,WAAW3kC,OAC/BusC,EAAe15B,EAAIhM,QAAQnE,OAAO1C,OAClC+B,EAAkB8Q,EAAIhM,QAAQnE,OAAOX,gBACrC8kC,EAAoBzjD,EAAQyjD,oBAAqB,EAErD,IAAKyF,EAAe,CAClB,IAAI/tC,EAAU,sBAKd,KAJ+B,OAA3BsU,EAAI8xB,WAAW99B,UACjBtI,GAAUA,qKAGNpR,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,aACNC,QAASA,GAEb,CAEA,GAAIwD,IAAoB8kC,EACtB,MAAM15C,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,uBACNC,QAAS,oDAIb,GAAI+tC,EAActwD,QAAQ,SAAW,EACnC,MAAMmR,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,uBACNC,QAAS,mCAIb,IAAKwpC,GAAgBuE,IAAkBC,EACrC,MAAMp/C,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,uBACNC,QAAS,yDAEN,GACLwpC,GACA5D,EAAWjT,kBAAkBob,KAAmBnI,EAAWjT,kBAAkBqb,GAE7E,MAAMp/C,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,uBACNC,QAAS,oEAIb,GAAIsU,EAAIhM,QAAQnE,OAAOjB,sBACrB,MAAMtU,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,uBACNC,QAAS,wEAIb,GAA+B,gBAA3BsU,EAAI8xB,WAAW99B,SAA6BgM,EAAIhM,QAAQnE,OAAOV,qBACjE,MAAM7U,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,uBACNC,QAAS,6DAGf,EAEA8tC,uBAAwB,SAAgCx5B,GACtD,IAAI25B,EAAU,wBACVC,EAAa,oBACb1E,GAAe,EACfjlC,EAAiB+P,EAAIhM,QAAQqH,iBAAmB,CAAC,EACrD,QAA0ChqB,IAAtC2uB,EAAIhM,QAAQnE,OAAO3B,eACrB,OAAO8R,EAAIhM,QAAQnE,OAAO3B,eACrB,QAAsC7c,IAAlC4e,EAAe/B,eACxBgnC,GAAiD,IAAlCjlC,EAAe/B,oBACzB,GAAI5T,EAAI8M,KAAKQ,SAElB,GAAIG,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY4xC,GAAU,CACxB,IAAI9wD,EAAQkf,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY4xC,GAASlJ,OAAOrvC,cACxC,GAAI,CAAC,QAAS,QAAQjY,QAAQN,GAAS,EACrC,MAAMyR,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,uBACNC,QAASiuC,EAAU,oCAAsC5xC,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY4xC,GACrEj/B,WAAW,IAGfw6B,EAAyB,SAAVrsD,CACjB,KAAO,CACL,IACIwnB,EAAU,CAAC,EACf,IAEEA,EADW/V,EAAI8M,KAAKkJ,4BAA4BhW,EAAI8M,KAAKmJ,WACtCxI,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYyI,aAAelW,EAAI8M,KAAKqJ,eACzD,CAAE,MAAO5X,GAAI,CACb,GAAIwX,EAAQupC,GAAa,CACvB,GAAI,CAAC,QAAS,QAAQzwD,QAAQknB,EAAQupC,GAAYnJ,OAAOrvC,eAAiB,EACxE,MAAM9G,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,uBACNC,QAASkuC,EAAa,oCAAsCvpC,EAAQupC,GACpEl/B,WAAW,IAGfw6B,EAA4D,SAA7C7kC,EAAQupC,GAAYnJ,OAAOrvC,aAC5C,CACF,CAGF,OADA4e,EAAIhM,QAAQnE,OAAO3B,eAAiBgnC,EAC7BA,CACT,EAKA1B,2BAA4B,SAAoCxzB,GAC9D,GAAIA,EAAIhM,QAAQqH,iBAAmB2E,EAAIhM,QAAQqH,gBAAgB9N,SAC7D,MAAMjT,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,uBACNC,QAAS,4DAIb,GAAIsU,EAAIhM,QAAQnE,OAAO/B,iBACrB,MAAMxT,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,uBACNC,QAAS,0DAGf,EAQAkqC,wBAAyB,SAAiCD,GACxD,IAAIjyC,EAAIiyC,EACJhX,EAAS,IAAItY,OAAO,wCACpBwzB,EAAY,IAAIxzB,OAAO,iBACvByzB,EAAO,IAAIzzB,OAAO,QACtB,SAAQ3iB,EAAE8E,MAAMm2B,IAAYj7B,EAAE8E,MAAMqxC,IAAen2C,EAAE8E,MAAMsxC,GAC7D,GAMF9+C,EAAOpU,QAAUyqD,mBC1RjB,IAAI/2C,EAAMD,EAAQ,OAElBC,EAAI8M,KAAK/T,OAAOiH,EAAIuE,IAAIjW,UAAW,CAIjC4iD,sBAAuB,SAA+BxzB,GACpDA,EAAQsqB,YAAY,QAAShgC,KAAKouC,eAE9B14B,EAAQhE,QAAQnE,OAAO1B,mBACC,gBAAtB6J,EAAQ9D,UACV8D,EAAQsqB,YAAY,cAAehgC,KAAKy3C,2BACT,qBAAtB/hC,EAAQ9D,UACjB8D,EAAQsqB,YAAY,cAAehgC,KAAK03C,gCACT,mBAAtBhiC,EAAQ9D,WACjB8D,EAAQsqB,YAAY,cAAehgC,KAAK23C,8BAG9C,EAKAF,0BAA2B,SAAmCt/B,GAC5D,GAAKA,EAAS5Y,KAAd,CAEA,IAAIklB,EAAMtM,EAAS5Y,KAAKq4C,iBACpB33B,EAAOjgB,KAAKoR,OAAOymC,YACnBC,EAAgB93C,KAAK0R,QAAQqmC,kBAAkB93B,GACnD,GAAI63B,IAAkBrzB,EAAK,CACzB,IAAIvb,EAAM,QAAUiP,EAAS5Y,KAAKq4C,iBAChC,iBAAmBE,EAAgB,KACrC93C,KAAK0R,QAAQsmC,0BAA0B7/B,EACrC,CAACA,EAAS5Y,KAAK04C,WAAY/uC,EAC/B,CAV0B,CAW5B,EAKAwuC,+BAAgC,SAAwCv/B,GACtE,GAAKA,EAAS5Y,KAAd,CAEA,IAAImS,EAAU1R,KAAK0R,QACfwmC,EAAU,CAAC,EACX5oB,EAAS,GACT6oB,EAAa,GACjBngD,EAAI8M,KAAK2L,UAAU0H,EAAS5Y,KAAK64C,YAAY,SAAUC,GACrDH,EAAQG,EAAMC,IAAMD,CACtB,IACArgD,EAAI8M,KAAK2L,UAAUzQ,KAAKoR,OAAOmnC,SAAS,SAAUF,GAChD,GAAIH,EAAQG,EAAMC,IAAK,CACrB,IAAI7zB,EAAMyzB,EAAQG,EAAMC,IAAIV,iBACxB33B,EAAOo4B,EAAMR,YACZnmC,EAAQ8mC,gBAAgB/zB,EAAKxE,KAChCqP,EAAOnqC,KAAKkzD,EAAMC,IAClBH,EAAWhzD,KAAK+yD,EAAQG,EAAMC,IAAIL,WAEtC,CACF,IAEI3oB,EAAO7pC,OAAS,GAClBisB,EAAQsmC,0BAA0B7/B,EAAUggC,EAC1C,qBAAuB7oB,EAAOhb,KAAK,MAtBb,CAwB5B,EAKAqjC,6BAA8B,SAAsCx/B,GAClE,GAAKA,EAAS5Y,KAAd,CAEA,IAAImS,EAAU1R,KAAK0R,QACfymC,EAAa,GACjBngD,EAAI8M,KAAK2L,UAAU0H,EAAS5Y,KAAKk5C,UAAU,SAASrvC,GAClD,IAAIqb,EAAMrb,EAAQsvC,UACdz4B,EAAO7W,EAAQo6B,KACd9xB,EAAQ8mC,gBAAgB/zB,EAAKxE,IAChCk4B,EAAWhzD,KAAKikB,EAAQ6uC,UAE5B,IAEIE,EAAW1yD,OAAS,GACtBisB,EAAQsmC,0BAA0B7/B,EAAUggC,EAC1C,qBAAuBA,EAAW7jC,KAAK,MAdjB,CAgB5B,EAKA0jC,0BAA2B,SAAmC7/B,EAAUwgC,EAAKvvC,GAC3E+O,EAAS5iB,MAAQyC,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAC3C+tB,WAAW,EACXjP,KAAM,kBACNgvC,WAAYQ,EACZvvC,QAAS+O,EAASzC,QAAQ9D,UACjB,sCAAwCxI,GAErD,EAKAovC,gBAAiB,SAAyBI,EAAUr5C,GAClD,OAAOS,KAAK+3C,kBAAkBx4C,KAAUq5C,CAC1C,EAKAb,kBAAmB,SAA2Bx4C,GAC5C,OAAOvH,EAAI8M,KAAKC,OAAO0f,IAAIllB,EAAM,MACnC,EAKA6uC,cAAe,SAAuB14B,GACpC,IAAI/lB,EAAM+lB,EAAQoB,YAAY1F,OAAOynC,SACrC,GAAIlpD,EAAK,CACP+lB,EAAQoB,YAAY7L,SAAW,IAAIjT,EAAIkwB,SAASv4B,GAIhD,IAAImpD,EAAUpjC,EAAQoB,YAAY7L,SAASka,KAAKjf,MAAM,iBAClD4yC,IAASpjC,EAAQoB,YAAYjM,OAASiuC,EAAQ,GACpD,CACF,qBCjIF,IAAI9gD,EAAMD,EAAQ,OACd+2C,EAA+B/2C,EAAQ,OAI3CC,EAAI8M,KAAK/T,OAAOiH,EAAI0E,IAAIpW,UAAW,CA0BjC0rB,gBAAiB,SAAyBzS,EAAMyJ,GAC9C,OAAKzJ,GACAyJ,IAAaA,EAAc,IAAIhR,EAAImd,sBACxCnM,EAAYyG,SAAU,EACtBzG,EAAYK,YAAc9J,EAAKwN,YAAYsG,YAC3CrK,EAAYM,gBAAkB/J,EAAKwN,YAAYgsC,gBAC/C/vC,EAAY4G,aAAerQ,EAAKwN,YAAYwG,aAC5CvK,EAAY0G,WAAanQ,EAAKwN,YAAYyG,WACnCxK,GAPW,IAQpB,EAEAuM,0BAA2B,SAAmCnE,EAAQxJ,GACpE,OAAO5H,KAAK+oC,2BAA2B,4BAA6B33B,EAAQxJ,EAC9E,EAEAsN,mBAAoB,SAA4B9D,EAAQxJ,GACtD,OAAO5H,KAAK+oC,2BAA2B,qBAAsB33B,EAAQxJ,EACvE,EAKAshC,sBAAuB,SAA+BxzB,GACpDA,EAAQsqB,YAAY,WAAYhgC,KAAKg5C,uBAAuB,EAC9D,EAKAA,sBAAuB,SAA+Bt7B,GACpD,IAAIhM,EAAUgM,EAAIhM,QACdnE,EAASmE,EAAQnE,OAMrB,GALAA,EAAOZ,qBAAuBmiC,EAA6Bp9B,EAAQqH,gBAAiB,CAClFjL,IA9D8B,6BA+D9BM,aA9DiC,yBA+DjCP,aAAc,yBAGkB,aAAhCN,EAAOZ,sBACP+E,EAAQmS,iBACR,CAEA,IAAKtW,EAAO1C,OACV,MAAM7S,EAAI8M,KAAKvP,MAAM,IAAIlL,MACvB,CAAC8e,KAAM,cAAeC,QAAS,6BAEnC,IAAI0oC,EAAcvkC,EAAOtC,SAASpkB,QAAQ,kBACtCkrD,EAAmBxkC,EAAOtC,SAAS4hB,UAAU,EAAGilB,GAClD,IAAMvkC,EAAO1C,OAAS0C,EAAOtC,SAAS4hB,UAAUilB,GAClDp0B,EAAI5G,YAAYC,eAAeg7B,GAC/Br0B,EAAI5G,YAAYjM,OAAS0C,EAAO1C,MAClC,CACF,qBCnFF,IAAI7S,EAAMD,EAAQ,OAKlBC,EAAIsW,QAAQ2qC,OAASjhD,EAAI8M,KAAKgB,QAAQ9N,EAAIsW,QAAQ+8B,cAAe,CAC/DhlD,YAAa,SAAgBqvB,GAC3B1d,EAAIsW,QAAQ+8B,cAAcpkD,KAAK+Y,KAAM0V,EACvC,EAEAgQ,iBAAkB,SAA0B/b,GAC1C3J,KAAK0V,QAAQ8C,QAAuB,cAAI,UAAY7O,EAAMA,KAC5D,qBCZF,IAAI3R,EAAMD,EAAQ,OACd+N,EAAU9N,EAAI8M,KAAKgB,QAKnBozC,EAAgB,oBAKpB,SAASC,EAAiBzjC,GACxB,IAAIlP,EAAUkP,EAAQoB,YAAY0B,QAAQ0gC,GACtCxJ,EAAch6B,EAAQhE,QAAQiT,eAAejP,GAKjD,UAHOA,EAAQoB,YAAY0B,QAAQ,qBAC5B9C,EAAQoB,YAAY0B,QAAQ,oBAE/Bk3B,IAAgB13C,EAAIsW,QAAQsW,GAAI,CAClC,GAAIpe,EAAU,OAAQ,CAGpB,MAAMxO,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC8e,KAAM,oBAAqBC,QAHf,kFAGiCgP,WAAW,GAE5D,CACA1C,EAAQoB,YAAY0B,QAAQ0gC,GAAiB1yC,CAC/C,KAAO,IAAIkpC,IAAgB13C,EAAIsW,QAAQnS,GAKrC,MAAMnE,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAS,CAChC+e,QAAS,gDACTD,KAAM,oBAAqBiP,WAAW,IANxC,IAAIuiB,EAAMjlB,EAAQhE,QAAUgE,EAAQhE,QAAQiU,uBAAyB3tB,EAAI8M,KAAKkL,KAAKC,UACnFyF,EAAQoB,YAAY0B,QAAQ0gC,GAAiBn4B,SAC3C/oB,EAAI8M,KAAKkL,KAAKopC,cAAcze,GAAOn0B,EAAS,IAAIje,UAMpD,CACF,CAKA,SAAS8wD,EAAgB3jC,GACvB,IAAIzK,EAAWyK,EAAQoB,YAAY7L,SAC/B5C,EAAYrQ,EAAI8M,KAAKslB,SAAS1U,EAAQoB,YAAYpP,MAClD4xC,EAAc,CAAC,EAEfjxC,EAAUC,SACZgxC,EAActhD,EAAI8M,KAAKgmB,iBAAiBziB,EAAUC,OAAOwa,OAAO,KAGlE,IAAIy2B,EAAO7jC,EAAQoB,YAAY0B,QAAuB,cAAElR,MAAM,KAC9D,GAAgB,QAAZiyC,EAAK,GACPA,EAAOA,EAAK,GAAGjyC,MAAM,KACrBgyC,EAAuB,UAAIC,EAAKliB,MAChCiiB,EAA4B,eAAIC,EAAKjlC,KAAK,KAE1Ctc,EAAI8M,KAAK+D,KAAK6M,EAAQoB,YAAY0B,SAAS,SAAU5yB,EAAKW,GACpDX,IAAQszD,IAAetzD,EAAM,WACE,IAA/BA,EAAIiB,QAAQ,wBAEPyyD,EAAY1zD,GACnBA,EAAMA,EAAIkZ,eAEZw6C,EAAY1zD,GAAOW,CACrB,WACOmvB,EAAQoB,YAAY0B,QAAQ0gC,UAC5BI,EAA2B,qBAC3BA,EAAkB,UACpB,GAAgB,qBAAZC,EAAK,GAA2B,CACzCA,EAAKp2C,QACL,IACIq2C,EADOD,EAAKjlC,KAAK,KACApO,MAAM,mCAAmC,GAC9DozC,EAAY,mBAAqBE,SAC1BF,EAAqB,OAC9B,CAGAruC,EAAS4f,SAAWxiB,EAAUwiB,SAC9B5f,EAAS3C,OAAStQ,EAAI8M,KAAKimB,oBAAoBuuB,EACjD,CAKAthD,EAAIsW,QAAQoxB,QAAU55B,EAAQ,CAI5BQ,KAAM,SAAcoP,EAAShG,EAAY9H,GAWvC,GAVA8N,EAAQoB,YAAY0B,QAAQ0gC,GAAiBxpC,GAAc,KAC3DgG,EAAQrpB,GAAG,QAAS8sD,GACpBzjC,EAAQrpB,GAAG,OAAQgtD,GACnB3jC,EAAQ2B,eAAe,aACrBrf,EAAIsf,eAAeC,KAAKkiC,oBAC1B/jC,EAAQ2B,eAAe,aACrBrf,EAAIsf,eAAeC,KAAK+4B,gBAE1B56B,EAAQ8Q,KAAK,gBAAiB,CAAC9Q,KAE3B9N,EAOG,CAEL,GADA8N,EAAQ0X,QACJ1X,EAAQyC,SAAS5iB,MAAO,MAAMmgB,EAAQyC,SAAS5iB,MACnD,OAAOyC,EAAI8M,KAAKswC,UAAU1/B,EAAQoB,YAAY7L,SAChD,CAVEyK,EAAQ0X,OAAM,WACRptB,KAAKmY,SAAS5iB,MAAOqS,EAAS5H,KAAKmY,SAAS5iB,OAE9CqS,EAAS,KAAM5P,EAAI8M,KAAKswC,UAAU1/B,EAAQoB,YAAY7L,UAE1D,GAMJ,IAMFvS,EAAOpU,QAAU0T,EAAIsW,QAAQoxB,yBCtH7B,IAAI1nC,EAAMD,EAAQ,OAEd+N,EAAU9N,EAAI8M,KAAKgB,QAKvB9N,EAAIsW,QAAQ+8B,cAAgBvlC,EAAQ,CAClCzf,YAAa,SAAuBqvB,GAClC1V,KAAK0V,QAAUA,CACjB,EAEAqQ,mBAAoB,SAA4BjyB,GAC9CkM,KAAK05C,gBAAkB5lD,CACzB,EAEA6lD,mBAAoB,WAClB,OAAO35C,KAAK05C,eACd,IAGF1hD,EAAIsW,QAAQ+8B,cAAcC,WAAa,SAAoB57C,GACzD,OAAQA,GACN,IAAK,KAAM,OAAOsI,EAAIsW,QAAQsrC,GAC9B,IAAK,KAAM,OAAO5hD,EAAIsW,QAAQurC,GAC9B,IAAK,OACL,IAAK,KAAM,OAAO7hD,EAAIsW,QAAQsW,GAC9B,IAAK,KAAM,OAAO5sB,EAAIsW,QAAQnS,GAC9B,IAAK,UAAW,OAAOnE,EAAIsW,QAAQwrC,QACnC,IAAK,SAAU,OAAO9hD,EAAIsW,QAAQ2qC,OAEpC,MAAM,IAAI5uD,MAAM,2BAA6BqF,EAC/C,EAEAqI,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,wBCxCR,IAAIC,EAAMD,EAAQ,OACd+N,EAAU9N,EAAI8M,KAAKgB,QAKvB9N,EAAIsW,QAAQnS,GAAK2J,EAAQ9N,EAAIsW,QAAQ+8B,cAAe,CAKlD0O,aAAc,CACZ,IAAO,EACP,WAAc,EACd,UAAa,EACb,KAAQ,EACR,UAAa,EACb,OAAU,EACV,UAAa,EACb,SAAY,EACZ,QAAW,EACX,QAAW,EACX,aAAgB,EAChB,WAAc,EACd,OAAU,EACV,eAAkB,EAClB,YAAe,EACf,QAAW,EACX,QAAW,EACX,QAAW,EACX,SAAY,EACZ,QAAW,EACX,UAAa,EACb,WAAc,EACd,SAAY,EACZ,QAAW,GAKbC,gBAAiB,CACf,wBAAyB,EACzB,4BAA6B,EAC7B,mBAAoB,EACpB,yBAA0B,EAC1B,+BAAgC,EAChC,4BAA6B,GAG/Bt0B,iBAAkB,SAA0B1c,EAAagH,GAClDhQ,KAAK0V,QAAQ8C,QAAQ,uBACxBxY,KAAK0V,QAAQ8C,QAAQ,cAAgBxgB,EAAI8M,KAAKkL,KAAKiqC,OAAOjqC,IAGxDhH,EAAY4G,eAEd5P,KAAK0V,QAAQ8C,QAAQ,wBAA0BxP,EAAY4G,cAG7D,IAAI4pC,EAAYx5C,KAAKsG,KAAK0C,EAAYM,gBAAiBtJ,KAAKk6C,gBACxDX,EAAO,OAASvwC,EAAYK,YAAc,IAAMmwC,EAEpDx5C,KAAK0V,QAAQ8C,QAAuB,cAAI+gC,CAC1C,EAEAW,aAAc,WACZ,IAAIrsD,EAAImS,KAAK0V,QAETrO,EAAQ,GACZA,EAAMliB,KAAK0I,EAAEy8B,QACbjjB,EAAMliB,KAAK0I,EAAE2qB,QAAQ,gBAAkB,IACvCnR,EAAMliB,KAAK0I,EAAE2qB,QAAQ,iBAAmB,IAKxCnR,EAAMliB,KAAK0I,EAAE2qB,QAAQ,sBAAwB,IAE7C,IAAIA,EAAUxY,KAAKm6C,0BAInB,OAHI3hC,GAASnR,EAAMliB,KAAKqzB,GACxBnR,EAAMliB,KAAK6a,KAAKo6C,yBAET/yC,EAAMiN,KAAK,KAEpB,EAEA6lC,wBAAyB,WAEvB,IAAIE,EAAa,GAEjBriD,EAAI8M,KAAK+D,KAAK7I,KAAK0V,QAAQ8C,SAAS,SAAU/vB,GACxCA,EAAKyd,MAAM,aACbm0C,EAAWl1D,KAAKsD,EACpB,IAEA4xD,EAAW7hB,MAAK,SAAUr3B,EAAGC,GAC3B,OAAOD,EAAErC,cAAgBsC,EAAEtC,eAAiB,EAAI,CAClD,IAEA,IAAIuI,EAAQ,GAKZ,OAJArP,EAAI8M,KAAK2L,UAAUxpB,KAAK+Y,KAAMq6C,GAAY,SAAU5xD,GAClD4e,EAAMliB,KAAKsD,EAAKqW,cAAgB,IAAMwX,OAAOtW,KAAK0V,QAAQ8C,QAAQ/vB,IACpE,IAEO4e,EAAMiN,KAAK,KAEpB,EAEA8lC,sBAAuB,WAErB,IAAIvsD,EAAImS,KAAK0V,QAETrO,EAAQxZ,EAAE6Z,KAAKJ,MAAM,KACrBI,EAAOL,EAAM,GACbpC,EAAcoC,EAAM,GAEpBc,EAAW,GAOf,GALIta,EAAEokD,sBACJ9pC,GAAY,IAAMta,EAAEokD,qBAEtB9pC,GAAYT,EAERzC,EAAa,CAGf,IAAIq1C,EAAY,GAEhBtiD,EAAI8M,KAAK2L,UAAUxpB,KAAK+Y,KAAMiF,EAAYqC,MAAM,MAAM,SAAUgtB,GAC9D,IAAI7rC,EAAO6rC,EAAMhtB,MAAM,KAAK,GACxB/gB,EAAQ+tC,EAAMhtB,MAAM,KAAK,GAC7B,GAAItH,KAAK+5C,aAAatxD,IAASuX,KAAKg6C,gBAAgBvxD,GAAO,CACzD,IAAI8xD,EAAc,CAAE9xD,KAAMA,QACZsG,IAAVxI,IACEyZ,KAAK+5C,aAAatxD,GACpB8xD,EAAYh0D,MAAQA,EAEpBg0D,EAAYh0D,MAAQi0D,mBAAmBj0D,IAG3C+zD,EAAUn1D,KAAKo1D,EACjB,CACF,IAEAD,EAAU9hB,MAAK,SAAUr3B,EAAGC,GAAK,OAAOD,EAAE1Y,KAAO2Y,EAAE3Y,MAAQ,EAAI,CAAG,IAE9D6xD,EAAU70D,SAEZwf,EAAc,GACdjN,EAAI8M,KAAK2L,UAAU6pC,GAAW,SAAUG,QACpB1rD,IAAd0rD,EAAIl0D,MACN0e,EAAY9f,KAAKs1D,EAAIhyD,MAErBwc,EAAY9f,KAAKs1D,EAAIhyD,KAAO,IAAMgyD,EAAIl0D,MAE1C,IAEA4hB,GAAY,IAAMlD,EAAYqP,KAAK,KAGvC,CAEA,OAAOnM,CAET,EAEA7B,KAAM,SAAclc,EAAQS,GAC1B,OAAOmN,EAAI8M,KAAKC,OAAOoxC,KAAK/rD,EAAQS,EAAQ,SAAU,OACxD,IAMF6N,EAAOpU,QAAU0T,EAAIsW,QAAQnS,oBC9K7B,IAAInE,EAAMD,EAAQ,OACd+N,EAAU9N,EAAI8M,KAAKgB,QAKvB9N,EAAIsW,QAAQsrC,GAAK9zC,EAAQ9N,EAAIsW,QAAQ+8B,cAAe,CAClD3lB,iBAAkB,SAA0B1c,EAAagH,GAElDA,IAAMA,EAAOhY,EAAI8M,KAAKkL,KAAKC,WAEhC,IAAIpiB,EAAImS,KAAK0V,QAEb7nB,EAAEujB,OAAO45B,UAAYhzC,EAAI8M,KAAKkL,KAAKw4B,QAAQx4B,GAC3CniB,EAAEujB,OAAOspC,iBAAmB,IAC5B7sD,EAAEujB,OAAOupC,gBAAkB,aAC3B9sD,EAAEujB,OAAOwpC,eAAiB5xC,EAAYK,YAElCL,EAAY4G,eACd/hB,EAAEujB,OAAOypC,cAAgB7xC,EAAY4G,qBAGhC/hB,EAAEujB,OAAOnK,UAChBpZ,EAAEujB,OAAOnK,UAAYjH,KAAKw5C,UAAUxwC,GAEpCnb,EAAEoyB,KAAOjoB,EAAI8M,KAAKimB,oBAAoBl9B,EAAEujB,QACxCvjB,EAAE2qB,QAAQ,kBAAoB3qB,EAAEoyB,KAAKx6B,MACvC,EAEA+zD,UAAW,SAAmBxwC,GAC5B,OAAOhR,EAAI8M,KAAKC,OAAOoxC,KAAKntC,EAAYM,gBAAiBtJ,KAAKk6C,eAAgB,SAChF,EAEAA,aAAc,WACZ,IAAI7yC,EAAQ,GAKZ,OAJAA,EAAMliB,KAAK6a,KAAK0V,QAAQ4U,QACxBjjB,EAAMliB,KAAK6a,KAAK0V,QAAQzK,SAASka,KAAKrmB,eACtCuI,EAAMliB,KAAK6a,KAAK0V,QAAQmV,YACxBxjB,EAAMliB,KAAK6S,EAAI8M,KAAKimB,oBAAoB/qB,KAAK0V,QAAQtE,SAC9C/J,EAAMiN,KAAK,KACpB,IAOF5b,EAAOpU,QAAU0T,EAAIsW,QAAQsrC,oBC/C7B,IAAI5hD,EAAMD,EAAQ,OACd+N,EAAU9N,EAAI8M,KAAKgB,QAKvB9N,EAAIsW,QAAQurC,GAAK/zC,EAAQ9N,EAAIsW,QAAQ+8B,cAAe,CAClD3lB,iBAAkB,SAA0B1c,EAAagH,GAEvD,IAAI8qC,EAAW9iD,EAAI8M,KAAKkL,KAAKiqC,OAAOjqC,GAEpChQ,KAAK0V,QAAQ8C,QAAQ,cAAgBsiC,EAEjC9xC,EAAY4G,eACd5P,KAAK0V,QAAQ8C,QAAQ,wBAA0BxP,EAAY4G,cAG7D5P,KAAK0V,QAAQ8C,QAAQ,wBACnBxY,KAAK+6C,cAAc/xC,EAAa8xC,EAEpC,EAEAC,cAAe,SAAuB/xC,GACpC,MAAO,uBACeA,EAAYK,YAD3B,uCAGcrJ,KAAKg7C,gBAHnB,cAIUh7C,KAAKw5C,UAAUxwC,EAClC,EAEAgyC,cAAe,WACb,IAAIxiC,EAAU,GAId,OAHAxgB,EAAI8M,KAAK2L,UAAUzQ,KAAKi7C,iBAAiB,SAAkBC,GACzD1iC,EAAQrzB,KAAK+1D,EAAEp8C,cACjB,IACO0Z,EAAQggB,OAAOlkB,KAAK,IAC7B,EAEA6mC,iBAAkB,WAChB,IAAI3iC,EAAUxY,KAAK0V,QAAQ8C,QACvBnR,EAAQ,GAIZ,OAHArP,EAAI8M,KAAK2L,UAAUzQ,KAAKi7C,iBAAiB,SAAkBC,GACzD7zC,EAAMliB,KAAK+1D,EAAEp8C,cAAcqvC,OAAS,IAAM73B,OAAOkC,EAAQ0iC,IAAI/M,OAC/D,IACO9mC,EAAMmxB,OAAOlkB,KAAK,MAAQ,IACnC,EAEA2mC,cAAe,WACb,IAAIziC,EAAU,GAMd,OALAxgB,EAAI8M,KAAK+D,KAAK7I,KAAK0V,QAAQ8C,SAAS,SAAkB7U,IAC1C,SAANA,GAAsB,qBAANA,GAA4BA,EAAEuC,MAAM,aACtDsS,EAAQrzB,KAAKwe,EAEjB,IACO6U,CACT,EAEAghC,UAAW,SAAmBxwC,GAC5B,OAAOhR,EAAI8M,KAAKC,OAAOoxC,KAAKntC,EAAYM,gBAAiBtJ,KAAKk6C,eAAgB,SAChF,EAEAA,aAAc,WACZ,IAAI7yC,EAAQ,GAMZ,OALAA,EAAMliB,KAAK6a,KAAK0V,QAAQ4U,QACxBjjB,EAAMliB,KAAK,KACXkiB,EAAMliB,KAAK,IACXkiB,EAAMliB,KAAK6a,KAAKm7C,oBAChB9zC,EAAMliB,KAAK6a,KAAK0V,QAAQuK,MACjBjoB,EAAI8M,KAAKC,OAAOq2C,OAAO/zC,EAAMiN,KAAK,MAC3C,IAOF5b,EAAOpU,QAAU0T,EAAIsW,QAAQurC,oBC5E7B,IAAI7hD,EAAMD,EAAQ,OACd+N,EAAU9N,EAAI8M,KAAKgB,QAEvB/N,EAAQ,OAKRC,EAAIsW,QAAQwrC,QAAUh0C,EAAQ9N,EAAIsW,QAAQurC,GAAI,CAC5CkB,cAAe,SAAuB/xC,GACpC,MAAO,6BACeA,EAAYK,YAD3B,mCAGUrJ,KAAKw5C,UAAUxwC,EAClC,EAEAkxC,aAAc,WACZ,OAAOl6C,KAAK0V,QAAQ8C,QAAQ,aAC9B,IAMF9f,EAAOpU,QAAU0T,EAAIsW,QAAQwrC,yBCxB7B,IAAI9hD,EAAMD,EAAQ,OACd82C,EAAgB92C,EAAQ,OACxB+N,EAAU9N,EAAI8M,KAAKgB,QAKnBozC,EAAgB,oBAKpBlhD,EAAIsW,QAAQsW,GAAK9e,EAAQ9N,EAAIsW,QAAQ+8B,cAAe,CAClDhlD,YAAa,SAAYqvB,EAAS+8B,EAAaxkD,GAC7C+J,EAAIsW,QAAQ+8B,cAAcpkD,KAAK+Y,KAAM0V,GACrC1V,KAAKyyC,YAAcA,EACnBxkD,EAAUA,GAAW,CAAC,EACtB+R,KAAKoM,eAAmD,mBAA3Bne,EAAQme,gBAA+Bne,EAAQme,eAC5EpM,KAAK4R,UAAY3jB,EAAQ2jB,UACzB5R,KAAKmM,iBAAmBle,EAAQke,gBAClC,EAEAkvC,UAAW,mBAEX31B,iBAAkB,SAA0B1c,EAAagH,GACvD,IAAI8qC,EAAW9iD,EAAI8M,KAAKkL,KAAKw4B,QAAQx4B,GAAM/J,QAAQ,iBAAkB,IAEjEjG,KAAKoZ,cACPpZ,KAAKs7C,mBAAmBtyC,EAAa8xC,GAErC96C,KAAKu7C,WAAWvyC,EAAa8xC,GAG/B96C,KAAK0V,QAAQ8C,QAAuB,cAClCxY,KAAK+6C,cAAc/xC,EAAa8xC,EACpC,EAEAS,WAAY,SAAoBvyC,EAAa8xC,GAC3C96C,KAAK0V,QAAQ8C,QAAQ,cAAgBsiC,EACjC9xC,EAAY4G,eACd5P,KAAK0V,QAAQ8C,QAAQ,wBAA0BxP,EAAY4G,aAE/D,EAEA0rC,mBAAoB,SAA4BtyC,EAAa8xC,GAC3D,IAAIU,EAAax7C,KAAKy7C,iBAAiBX,GACnCY,EAAK,CACP,aAAcZ,EACd,kBAAmB96C,KAAKq7C,UACxB,mBAAoBryC,EAAYK,YAAc,IAAMmyC,EACpD,gBAAiBx7C,KAAK0V,QAAQ8C,QAAQ0gC,GACtC,sBAAuBl5C,KAAKg7C,iBAG1BhyC,EAAY4G,eACd8rC,EAAG,wBAA0B1yC,EAAY4G,cAGvC5P,KAAK0V,QAAQ8C,QAAQ,kBACvBkjC,EAAG,gBAAkB17C,KAAK0V,QAAQ8C,QAAQ,iBAExCxY,KAAK0V,QAAQ8C,QAAQ,iBACvBkjC,EAAG,eAAiB17C,KAAK0V,QAAQ8C,QAAQ,gBAEvCxY,KAAK0V,QAAQ8C,QAAQ,mBACvBkjC,EAAG,iBAAmB17C,KAAK0V,QAAQ8C,QAAQ,kBAI7CxgB,EAAI8M,KAAK+D,KAAK5hB,KAAK+Y,KAAMA,KAAK0V,QAAQ8C,SAAS,SAAS5yB,EAAKW,GAC3D,GAAIX,IAAQszD,GACRl5C,KAAK27C,iBAAiB/1D,GAAM,CAC9B,IAAIg2D,EAAWh2D,EAAIkZ,cAEqB,IAApC88C,EAAS/0D,QAAQ,eACnB60D,EAAGE,GAAYr1D,EACyB,IAA/Bq1D,EAAS/0D,QAAQ,YAC1B60D,EAAG91D,GAAOW,EAEd,CACF,IAEA,IAAIs1D,EAAM77C,KAAK0V,QAAQhO,KAAK7gB,QAAQ,MAAQ,EAAI,IAAM,IACtDmZ,KAAK0V,QAAQhO,MAAQm0C,EAAM7jD,EAAI8M,KAAKimB,oBAAoB2wB,EAC1D,EAEAX,cAAe,SAAuB/xC,EAAa8xC,GACjD,IAAIzzC,EAAQ,GACRm0C,EAAax7C,KAAKy7C,iBAAiBX,GAKvC,OAJAzzC,EAAMliB,KAAK6a,KAAKq7C,UAAY,eAC1BryC,EAAYK,YAAc,IAAMmyC,GAClCn0C,EAAMliB,KAAK,iBAAmB6a,KAAKg7C,iBACnC3zC,EAAMliB,KAAK,aAAe6a,KAAKw5C,UAAUxwC,EAAa8xC,IAC/CzzC,EAAMiN,KAAK,KACpB,EAEAklC,UAAW,SAAmBxwC,EAAa8xC,GACzC,IAAIgB,EAAajN,EAAcuH,cAC7BptC,EACA8xC,EAASh4B,OAAO,EAAG,GACnB9iB,KAAK0V,QAAQ7K,OACb7K,KAAKyyC,YACLzyC,KAAKoM,gBAEP,OAAOpU,EAAI8M,KAAKC,OAAOoxC,KAAK2F,EAAY97C,KAAKk6C,aAAaY,GAAW,MACvE,EAEAZ,aAAc,SAAsBY,GAClC,IAAIzzC,EAAQ,GAKZ,OAJAA,EAAMliB,KAAK,oBACXkiB,EAAMliB,KAAK21D,GACXzzC,EAAMliB,KAAK6a,KAAKy7C,iBAAiBX,IACjCzzC,EAAMliB,KAAK6a,KAAK+7C,eAAe/7C,KAAKg8C,oBAC7B30C,EAAMiN,KAAK,KACpB,EAEA0nC,gBAAiB,WACf,IAAI30C,EAAQ,GAAIwjB,EAAW7qB,KAAK0V,QAAQmV,WASxC,MARyB,OAArB7qB,KAAKyyC,aAAkD,SAA1BzyC,KAAKmM,mBAA6B0e,EAAW7yB,EAAI8M,KAAKwzB,cAAczN,IAErGxjB,EAAMliB,KAAK6a,KAAK0V,QAAQ4U,QACxBjjB,EAAMliB,KAAK0lC,GACXxjB,EAAMliB,KAAK6a,KAAK0V,QAAQpN,UACxBjB,EAAMliB,KAAK6a,KAAKm7C,mBAAqB,MACrC9zC,EAAMliB,KAAK6a,KAAKg7C,iBAChB3zC,EAAMliB,KAAK6a,KAAKi8C,sBACT50C,EAAMiN,KAAK,KACpB,EAEA6mC,iBAAkB,WAChB,IAAI3iC,EAAU,GACdxgB,EAAI8M,KAAK+D,KAAK5hB,KAAK+Y,KAAMA,KAAK0V,QAAQ8C,SAAS,SAAU5yB,EAAK21C,GAC5D/iB,EAAQrzB,KAAK,CAACS,EAAK21C,GACrB,IACA/iB,EAAQggB,MAAK,SAAUr3B,EAAGC,GACxB,OAAOD,EAAE,GAAGrC,cAAgBsC,EAAE,GAAGtC,eAAiB,EAAI,CACxD,IACA,IAAIuI,EAAQ,GAcZ,OAbArP,EAAI8M,KAAK2L,UAAUxpB,KAAK+Y,KAAMwY,GAAS,SAAU+iB,GAC/C,IAAI31C,EAAM21C,EAAK,GAAGz8B,cAClB,GAAIkB,KAAK27C,iBAAiB/1D,GAAM,CAC9B,IAAIW,EAAQg1C,EAAK,GACjB,GAAqB,qBAAVh1C,GAAmC,OAAVA,GAA4C,oBAAnBA,EAAMgC,SACjE,MAAMyP,EAAI8M,KAAKvP,MAAM,IAAIlL,MAAM,UAAYzE,EAAM,2BAA4B,CAC3EujB,KAAM,kBAGV9B,EAAMliB,KAAKS,EAAM,IACfoa,KAAKk8C,sBAAsB31D,EAAMgC,YACrC,CACF,IACO8e,EAAMiN,KAAK,KACpB,EAEA4nC,sBAAuB,SAA+B/gC,GACpD,OAAOA,EAAOlV,QAAQ,OAAQ,KAAKA,QAAQ,aAAc,GAC3D,EAEA+0C,cAAe,WACb,IAAIr2D,EAAO,GAKX,OAJAqT,EAAI8M,KAAK+D,KAAK5hB,KAAK+Y,KAAMA,KAAK0V,QAAQ8C,SAAS,SAAU5yB,GACvDA,EAAMA,EAAIkZ,cACNkB,KAAK27C,iBAAiB/1D,IAAMjB,EAAKQ,KAAKS,EAC5C,IACOjB,EAAK6zC,OAAOlkB,KAAK,IAC1B,EAEAmnC,iBAAkB,SAA0BX,GAC1C,OAAOjM,EAAciH,YACnBgF,EAASh4B,OAAO,EAAG,GACnB9iB,KAAK0V,QAAQ7K,OACb7K,KAAKyyC,YAET,EAEAsJ,eAAgB,SAAclxD,GAC5B,OAAOmN,EAAI8M,KAAKC,OAAOq2C,OAAOvwD,EAAQ,MACxC,EAEAoxD,mBAAoB,WAClB,IAAIvmC,EAAU1V,KAAK0V,QACnB,OAAI1V,KAAKoZ,eAAkB,CAAC,KAAM,oBAAoBvyB,QAAQmZ,KAAKyyC,cAAgB,IAAO/8B,EAAQuK,KACzF,mBACEvK,EAAQ8C,QAAQ,wBAClB9C,EAAQ8C,QAAQ,wBAEhBxY,KAAK+7C,eAAe/7C,KAAK0V,QAAQuK,MAAQ,GAEpD,EAEAk8B,kBAAmB,CACjB,gBACA,eACA,iBACA,aACAjD,EACA,SACA,mBAGFyC,iBAAkB,SAA0B/1D,GAC1C,OAA4C,IAAxCA,EAAIkZ,cAAcjY,QAAQ,WACvBmZ,KAAKm8C,kBAAkBt1D,QAAQjB,GAAO,CAC/C,EAEAwzB,YAAa,WACX,QAAOpZ,KAAK0V,QAAQ8C,QAAQ0gC,EAC9B,IAOFxgD,EAAOpU,QAAU0T,EAAIsW,QAAQsW,oBCtN7B,IAAI5sB,EAAMD,EAAQ,OAKdqkD,EAAe,CAAC,EAKhBC,EAAa,GAUbC,EAAe,eAKnB5jD,EAAOpU,QAAU,CASfwxD,YAAa,SAAqB9lC,EAAMnF,EAAQ4nC,GAC9C,MAAO,CACLziC,EAAK8S,OAAO,EAAG,GACfjY,EACA4nC,EACA6J,GACAhoC,KAAK,IACT,EAYA8hC,cAAe,SACbptC,EACAgH,EACAnF,EACA6G,EACA6qC,GAEA,IAEI7lC,EAAW,CAFO1e,EAAI8M,KAAKC,OAC5BoxC,KAAKntC,EAAYM,gBAAiBN,EAAYK,YAAa,UAC7B2G,EAAMnF,EAAQ6G,GAAS4C,KAAK,KAE7D,IADAioC,GAA8B,IAAhBA,IACM7lC,KAAY0lC,EAC9B,OAAOA,EAAa1lC,GAGtB,IAAI8lC,EAAQxkD,EAAI8M,KAAKC,OAAOoxC,KAC1B,OAASntC,EAAYM,gBACrB0G,EACA,UAEEysC,EAAUzkD,EAAI8M,KAAKC,OAAOoxC,KAAKqG,EAAO3xC,EAAQ,UAC9C6xC,EAAW1kD,EAAI8M,KAAKC,OAAOoxC,KAAKsG,EAAS/qC,EAAS,UAElDoqC,EAAa9jD,EAAI8M,KAAKC,OAAOoxC,KAAKuG,EAAUJ,EAAc,UAU9D,OATIC,IACFH,EAAa1lC,GAAYolC,EACzBO,EAAWl3D,KAAKuxB,GACZ2lC,EAAW52D,OAjEC,WAmEP22D,EAAaC,EAAWl5C,UAI5B24C,CACT,EAQAa,WAAY,WACVP,EAAe,CAAC,EAChBC,EAAa,EACf,cClGF,SAASjgB,EAAqBmB,EAAQ18B,GACpCb,KAAK+8B,aAAel8B,GAAS,KAC7Bb,KAAKu9B,OAASA,GAAU,CAAC,CAC3B,CAEAnB,EAAqB91C,UAAUm3C,MAAQ,SAAemf,EAAY30D,EAAM40D,EAAYC,GACxD,oBAAfF,IACTE,EAAaD,EAAYA,EAAa50D,EACtCA,EAAO20D,EAAYA,EAAa,MAGlC,IAAIr+C,EAAOyB,KACPa,EAAQtC,EAAKg/B,OAAOh/B,EAAKw+B,cAC7Bl8B,EAAM8Q,GAAG1qB,KAAK41D,GAAct+C,EAAMu+C,GAAY,SAAS50D,GACrD,GAAIA,EAAK,CACP,IAAI2Y,EAAMmzB,KACL,OAAO/rC,EAAOA,EAAKhB,KAAK41D,EAAY30D,GAAO,KADhCqW,EAAKw+B,aAAel8B,EAAMmzB,IAE5C,KAAO,CACL,IAAInzB,EAAMk8C,OACL,OAAO90D,EAAOA,EAAKhB,KAAK41D,GAAc,KADzBt+C,EAAKw+B,aAAel8B,EAAMk8C,MAE9C,CACA,GAAIx+C,EAAKw+B,eAAiB6f,EACxB,OAAO30D,EAAOA,EAAKhB,KAAK41D,EAAY30D,GAAO,KAG7CqW,EAAKk/B,MAAMmf,EAAY30D,EAAM40D,EAAY30D,EAC3C,GACF,EAEAk0C,EAAqB91C,UAAU82C,SAAW,SAAkB30C,EAAMu0D,EAAaC,EAAWtrC,GASxF,MAR2B,oBAAhBqrC,GACTrrC,EAAKqrC,EAAaA,EAAc,KAAMC,EAAY,MACpB,oBAAdA,IAChBtrC,EAAKsrC,EAAWA,EAAY,MAGzBj9C,KAAK+8B,eAAc/8B,KAAK+8B,aAAet0C,GAC5CuX,KAAKu9B,OAAO90C,GAAQ,CAAEs0D,OAAQC,EAAahpB,KAAMipB,EAAWtrC,GAAIA,GACzD3R,IACT,EAKAtH,EAAOpU,QAAU83C,mBC3CjB,IAAIpkC,EAgBA8M,EAAO,CACTK,YAAa,SACb+3C,OAAQ,WACN,GAAIp4C,EAAKO,aAAoC,qBAAd83C,UAC7B,OAAOA,UAAUzyB,UAEjB,IAAIwyB,EAASz3C,QAAQ23C,SAAW,IAAM33C,QAAQ/V,QAI9C,MAHI+V,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYioB,oBACdwvB,GAAU,aAAez3C,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYioB,mBAEhCwvB,CAEX,EAEAxyB,UAAW,WACT,IAAIjiC,EAAOqc,EAAKK,YACZk4C,EAAQ,WAAa50D,EAAO,IAAMsP,EAAAA,OAAAA,QAEtC,MADa,WAATtP,IAAmB40D,GAAS,IAAMv4C,EAAKo4C,UACpCG,CACT,EAEA9kB,UAAW,SAAmB1tC,GAC5B,IAAIkxB,EAASuhC,mBAAmBzyD,GAQhC,OAJAkxB,GAHAA,EAASA,EAAO9V,QAAQ,uBAAwBs3C,SAGhCt3C,QAAQ,QAAQ,SAASu3C,GACvC,MAAO,IAAMA,EAAGC,WAAW,GAAGl1D,SAAS,IAAIkL,aAC7C,GAGF,EAEA6kC,cAAe,SAAuBztC,GACpC,IAAIwc,EAAQ,GAIZ,OAHAvC,EAAK2L,UAAU5lB,EAAOyc,MAAM,MAAM,SAAUy+B,GAC1C1+B,EAAMliB,KAAK2f,EAAKyzB,UAAUwN,GAC5B,IACO1+B,EAAMiN,KAAK,IACpB,EAEA8V,SAAU,SAAkBz6B,GAC1B,OAAOmV,EAAKnV,IAAI8X,MAAM9X,EACxB,EAEAylD,UAAW,SAAmBzlD,GAC5B,OAAOmV,EAAKnV,IAAI8Y,OAAO9Y,EACzB,EAEAm7B,iBAAkB,SAA0B4wB,GAC1C,OAAO52C,EAAKG,YAAYwC,MAAMi0C,EAChC,EAEA3wB,oBAAqB,SAA6B3Z,GAChD,IAAI6sB,EAAQ,GACRsf,EAASz4C,EAAKyzB,UACdmlB,EAAa94D,OAAOD,KAAKysB,GAAQonB,OAgBrC,OAdA1zB,EAAK2L,UAAUitC,GAAY,SAASj1D,GAClC,IAAIlC,EAAQ6qB,EAAO3oB,GACfk1D,EAAQJ,EAAO90D,GACf4G,EAASsuD,EAAQ,IACrB,GAAIn2D,MAAMC,QAAQlB,GAAQ,CACxB,IAAIq3D,EAAO,GACX94C,EAAK2L,UAAUlqB,GAAO,SAASg1C,GAAQqiB,EAAKz4D,KAAKo4D,EAAOhiB,GAAQ,IAChElsC,EAASsuD,EAAQ,IAAMC,EAAKplB,OAAOlkB,KAAK,IAAMqpC,EAAQ,IACxD,WAAqB5uD,IAAVxI,GAAiC,OAAVA,IAChC8I,EAASsuD,EAAQ,IAAMJ,EAAOh3D,IAEhC03C,EAAM94C,KAAKkK,EACb,IAEO4uC,EAAM3pB,KAAK,IACpB,EAEAnK,aAAc,SAAsBzC,GAClC,OAAI5C,EAAKO,YAAoB,KACtBtN,EAAAA,OAAAA,aAA2B2P,EAAM,QAC1C,EAEA9B,OAAQ,CACNC,OAAQ,SAAkBhb,GACxB,GAAsB,kBAAXA,EACT,MAAMia,EAAKvP,MAAM,IAAIlL,MAAM,+BAAiCQ,IAE9D,OAAe,OAAXA,GAAqC,qBAAXA,EACrBA,EAECia,EAAKnF,OAAOsc,SAASpxB,GACpBtC,SAAS,SACtB,EAEAkqC,OAAQ,SAAkB5nC,GACxB,GAAsB,kBAAXA,EACT,MAAMia,EAAKvP,MAAM,IAAIlL,MAAM,+BAAiCQ,IAE9D,OAAe,OAAXA,GAAqC,qBAAXA,EACrBA,EAEFia,EAAKnF,OAAOsc,SAASpxB,EAAQ,SACtC,GAIF8U,OAAQ,CAINsc,SAAU,SAAS1c,EAAMoB,GACvB,MAAoC,oBAArBmE,EAAK7F,OAAOvW,MAAuBoc,EAAK7F,OAAOvW,OAASgX,WAAWhX,KAChFoc,EAAK7F,OAAOvW,KAAK6W,EAAMoB,GAAY,IAAImE,EAAK7F,OAAOM,EAAMoB,EAC7D,EAEA+xB,MAAO,SAASmrB,EAAMjrB,EAAMjyB,GAC1B,GAAoB,kBAATk9C,EACT,MAAM,IAAIxzD,MAAM,0CAElB,GAAiC,oBAAtBya,EAAK7F,OAAOyzB,MACrB,OAAO5tB,EAAK7F,OAAOyzB,MAAMmrB,EAAMjrB,EAAMjyB,GAErC,IAAI6xB,EAAM,IAAI1tB,EAAK7F,OAAO4+C,GAI1B,YAHa9uD,IAAT6jC,GAA0C,oBAAbJ,EAAII,MACnCJ,EAAII,KAAKA,OAAM7jC,OAAWA,EAAW4R,GAEhC6xB,CAEX,EAEAsrB,SAAU,SAAkBn+C,GACrBmF,EAAK7F,OAAO2gB,SAASjgB,KAASA,EAAUmF,EAAKnF,OAAOsc,SAAStc,IAElE,IAAI6+B,EAAW,IAAK15B,EAAK6a,OAAOo+B,SAC5BC,EAAM,EAUV,OATAxf,EAASyf,MAAQ,SAASJ,GACxB,GAAIG,GAAOr+C,EAAOla,OAAQ,OAAO+4C,EAASr5C,KAAK,MAE/C,IAAI85C,EAAM+e,EAAMH,EACZ5e,EAAMt/B,EAAOla,SAAQw5C,EAAMt/B,EAAOla,QACtC+4C,EAASr5C,KAAKwa,EAAOnX,MAAMw1D,EAAK/e,IAChC+e,EAAM/e,CACR,EAEOT,CACT,EAKA9vC,OAAQ,SAAS44B,GACf,IAEI3nB,EAAepa,EAFfE,EAAS,EACTyd,EAAS,EAGb,IAAK3d,EAAI,EAAGA,EAAI+hC,EAAQ7hC,OAAQF,IAC9BE,GAAU6hC,EAAQ/hC,GAAGE,OAKvB,IAFAka,EAASmF,EAAKnF,OAAO+yB,MAAMjtC,GAEtBF,EAAI,EAAGA,EAAI+hC,EAAQ7hC,OAAQF,IAC9B+hC,EAAQ/hC,GAAGunB,KAAKnN,EAAQuD,GACxBA,GAAUokB,EAAQ/hC,GAAGE,OAGvB,OAAOka,CACT,GAGF9U,OAAQ,CACN2U,WAAY,SAAoB3U,GAC9B,GAAe,OAAXA,QAA8BkE,IAAXlE,EAAsB,OAAO,EAGpD,GAFsB,kBAAXA,IAAqBA,EAASia,EAAKnF,OAAOsc,SAASpxB,IAE7B,kBAAtBA,EAAO2U,WAChB,OAAO3U,EAAO2U,WACT,GAA6B,kBAAlB3U,EAAOpF,OACvB,OAAOoF,EAAOpF,OACT,GAA2B,kBAAhBoF,EAAOgzD,KACvB,OAAOhzD,EAAOgzD,KACT,GAA2B,kBAAhBhzD,EAAO6c,KACvB,OAAO3P,EAAAA,OAAAA,UAAwBlN,EAAO6c,MAAMm2C,KAE5C,MAAM/4C,EAAKvP,MAAM,IAAIlL,MAAM,8BAAgCQ,GACzD,CAAEpG,OAAQoG,GAEhB,EAEAwuC,WAAY,SAAoBxuC,GAC9B,OAAOA,EAAO,GAAG4I,cAAgB5I,EAAOi4B,OAAO,EACjD,EAEA4G,WAAY,SAAoB7+B,GAC9B,OAAOA,EAAO,GAAGiU,cAAgBjU,EAAOi4B,OAAO,EACjD,GAGFo7B,IAAK,CACHz2C,MAAO,SAAgBy2C,GACrB,IAAIC,EAAgBxjC,EAAM,CAAC,EA4B3B,OA3BA7V,EAAK2L,UAAUytC,EAAI52C,MAAM,UAAU,SAAS4hB,GAG1C,GAD4B,OAD5BA,EAAOA,EAAK5hB,MAAM,cAAc,GAAG6mC,QACd,IAAwC,MAA1BjlB,EAAKA,EAAKzjC,OAAS,IAGpD,GAAuB,eADvB04D,EAAiBj1B,EAAK2D,UAAU,EAAG3D,EAAKzjC,OAAS,KACuB,cAAlC04D,EAAe72C,MAAM,MAAM,GAC/D,MAAMxC,EAAKvP,MACT,IAAIlL,MAAM,6BAAgC8zD,EAAiB,iCAG1D,GAAIA,EAAgB,CACzB,IAAIC,EAAoBl1B,EAAKriC,QAAQ,KAEjCo4C,EAAM/V,EAAKzjC,OAAS,EAIxB,IAFyB,IAAvB24D,GAHU,IAGkBA,GAA+BA,IAAsBnf,EAEjE,CAChB,IAAIx2C,EAAOygC,EAAK2D,UAAU,EAAGuxB,GAAmBjQ,OAC5C5nD,EAAQ2iC,EAAK2D,UAAUuxB,EAAoB,GAAGjQ,OAElDxzB,EAAIwjC,GAAkBxjC,EAAIwjC,IAAmB,CAAC,EAC9CxjC,EAAIwjC,GAAgB11D,GAAQlC,CAC9B,CACF,CACF,IAEOo0B,CACT,GAGFhJ,GAAI,CACFmsB,KAAM,WAAY,EAClBl2B,SAAU,SAAU1f,GAAO,GAAIA,EAAK,MAAMA,CAAK,EAQ/C01C,UAAW,SAAmBjsB,EAAI0sC,GAChC,OAAIA,GAAgBA,GAAgB1sC,EAAGlsB,OAC9BksB,EAGF,WACL,IAAI6tB,EAAOh4C,MAAMlB,UAAUkC,MAAMvB,KAAKzB,UAAW,GAClCg6C,EAAKnI,KAEpBzvB,CADa+J,EAAGvsB,MAAM,KAAMo6C,GAE9B,CACF,GAMFxvB,KAAM,CAQJC,QAAS,WAEP,OADKjY,IAAKA,EAAMD,EAAQ,QACpBC,EAAIuV,OAAOrB,kBACN,IAAIkE,MAAK,IAAIA,MAAOF,UAAYlY,EAAIuV,OAAOrB,mBAE3C,IAAIkE,IAEf,EAKAo4B,QAAS,SAAiBx4B,GAExB,YADajhB,IAATihB,IAAsBA,EAAOlL,EAAKkL,KAAKC,WACpCD,EAAKsuC,cAAcr4C,QAAQ,YAAa,IACjD,EAKAg0C,OAAQ,SAAgBjqC,GAEtB,YADajhB,IAATihB,IAAsBA,EAAOlL,EAAKkL,KAAKC,WACpCD,EAAKujB,aACd,EAKA6lB,cAAe,SAAuBppC,GAEpC,YADajhB,IAATihB,IAAsBA,EAAOlL,EAAKkL,KAAKC,WACpCD,EAAKE,UAAY,GAC1B,EAMAxnB,KAAM,SAAgBsnB,GACpB,MAAoB,kBAATA,EACF,IAAII,KAAY,IAAPJ,GAET,IAAII,KAAKJ,EAEpB,EAYAvH,OAAQ,SAAgBuH,EAAMuuC,GAE5B,OADKA,IAAWA,EAAY,WACrBz5C,EAAKkL,KAAKuuC,GAAWz5C,EAAKkL,KAAKtnB,KAAKsnB,GAC7C,EAEAwjB,eAAgB,SAAwBjtC,GACtC,GAAqB,kBAAVA,EACT,OAAO,IAAI6pB,KAAa,IAAR7pB,GACX,GAAIA,EAAM2f,MAAM,SACrB,OAAO,IAAIkK,KAAa,IAAR7pB,GACX,GAAIA,EAAM2f,MAAM,UACrB,OAAO,IAAIkK,KAAK7pB,GACX,GAAIA,EAAM2f,MAAM,WACrB,OAAO,IAAIkK,KAAK7pB,GAEhB,MAAMue,EAAKvP,MACT,IAAIlL,MAAM,+BAAiC9D,GAC3C,CAAC4iB,KAAM,wBAEb,GAIFpE,OAAQ,CACNy5C,WAAY,CACX,EAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAEDr7B,MAAO,SAAe5jB,GACpB,IAAIk/C,EAAM35C,EAAKC,OAAOy5C,WAClBlR,GAAM,EAEU,kBAAT/tC,IACTA,EAAOuF,EAAKnF,OAAOsc,SAAS1c,IAG9B,IAAK,IAAIha,EAAI,EAAGA,EAAIga,EAAK9Z,OAAQF,IAAK,CAEpC+nD,EAAOA,IAAQ,EAAKmR,EAAmB,KAAdnR,EADd/tC,EAAKgjB,UAAUh9B,IAE5B,CACA,QAAe,EAAP+nD,KAAc,CACxB,EAEA6I,KAAM,SAAcvwD,EAAKiF,EAAQ0V,EAAQoR,GAKvC,OAJKpR,IAAQA,EAAS,UACP,WAAXA,IAAuBA,OAASxR,GAC/B4iB,IAAIA,EAAK,UACQ,kBAAX9mB,IAAqBA,EAASia,EAAKnF,OAAOsc,SAASpxB,IACvDia,EAAKC,OAAOC,IAAIjG,WAAW4S,EAAI/rB,GAAKmL,OAAOlG,GAAQ0V,OAAOA,EACnE,EAEAkkB,IAAK,SAAallB,EAAMgB,EAAQqH,GAC9B,OAAO9C,EAAKC,OAAO9E,KAAK,MAAOV,EAAMgB,EAAQqH,EAC/C,EAEAwzC,OAAQ,SAAgB77C,EAAMgB,EAAQqH,GACpC,OAAO9C,EAAKC,OAAO9E,KAAK,SAAUV,EAAMgB,EAAQqH,EAClD,EAEA3H,KAAM,SAASo7C,EAAW97C,EAAMgB,EAAQqH,GACtC,IAAI3H,EAAO6E,EAAKC,OAAOnG,WAAWy8C,GAC7B96C,IAAUA,EAAS,UACT,WAAXA,IAAuBA,OAASxR,GAChB,kBAATwQ,IAAmBA,EAAOuF,EAAKnF,OAAOsc,SAAS1c,IAC1D,IAAI0iC,EAAUn9B,EAAK2+B,aAAalkC,GAC5BqgB,EAAW9a,EAAK7F,OAAO2gB,SAASrgB,GAIpC,GAFIuF,EAAKO,aAAsC,qBAAhBnG,aAA+BK,GAAQA,EAAKI,kBAAkBT,cAAa0gB,GAAW,GAEjHhY,GAA4B,kBAATrI,GACA,oBAAZA,EAAKlT,KAAsBuzB,EACpCrgB,EAAKlT,GAAG,QAAQ,SAASu7B,GAAS3nB,EAAKlP,OAAO62B,EAAQ,IACtDroB,EAAKlT,GAAG,SAAS,SAASnE,GAAO0f,EAAS1f,EAAM,IAChDqX,EAAKlT,GAAG,OAAO,WAAaub,EAAS,KAAM3H,EAAKM,OAAOA,GAAU,QAC5D,KAAIqH,IAAYq6B,GAAYriB,GACF,qBAAf8+B,WAyBX,CACD55C,EAAKO,aAA+B,kBAAT9F,IAAsBqgB,IACnDrgB,EAAO,IAAIuF,EAAK7F,OAAO,IAAIS,WAAWH,KAExC,IAAIgD,EAAMtC,EAAKlP,OAAOwO,GAAMgB,OAAOA,GAEnC,OADIqH,GAAUA,EAAS,KAAMrF,GACtBA,CACT,CA9BE,IAAIqS,EAAQ,EACR+pC,EAAS,IAAID,WACjBC,EAAOC,QAAU,WACfh3C,EAAS,IAAIvd,MAAM,wBACrB,EACAs0D,EAAOE,OAAS,WACd,IAAIrsB,EAAM,IAAI1tB,EAAK7F,OAAO,IAAIS,WAAWi/C,EAAOtvD,SAChD4Q,EAAKlP,OAAOyhC,GACZ5d,GAAS4d,EAAI/sC,OACbk5D,EAAOG,kBACT,EACAH,EAAOG,iBAAmB,WACxB,GAAIlqC,GAASrV,EAAKs+C,KAChBj2C,EAAS,KAAM3H,EAAKM,OAAOA,QAD7B,CAKA,IAAIw+C,EAAOnqC,EAjBS,OAkBhBmqC,EAAOx/C,EAAKs+C,OAAMkB,EAAOx/C,EAAKs+C,MAClCc,EAAOK,kBAAkB/c,EAAQh7C,KAAKsY,EAAMqV,EAAOmqC,GAJnD,CAKF,EAEAJ,EAAOG,kBAQT,CACF,EAEAG,MAAO,SAAe1/C,GAEpB,IADA,IAAIgD,EAAM,GACDhd,EAAI,EAAGA,EAAIga,EAAK9Z,OAAQF,IAC/Bgd,EAAIpd,MAAM,IAAMoa,EAAKk+C,WAAWl4D,GAAGgD,SAAS,KAAKu6B,QAAQ,EAAG,IAE9D,OAAOvgB,EAAI+R,KAAK,GAClB,EAEA1V,WAAY,SAAoBy8C,GAC9B,OAAOv2C,EAAKC,OAAOC,IAAIpG,WAAWy8C,EACpC,GAOF3d,MAAO,CAAC,EAER70B,KAAM,SAAcpkB,EAAQy6D,GAC1B,IAAK,IAAIt5D,KAAOnB,EAAQ,CACtB,GAAIG,OAAO0B,UAAU4C,eAAejC,KAAKxC,EAAQmB,GAE/C,GADUs5D,EAAaj4D,KAAK+Y,KAAMpa,EAAKnB,EAAOmB,MAClCkf,EAAK44B,MAAO,KAE5B,CACF,EAEAjtB,UAAW,SAAmBhmB,EAAOy0D,GACnC,IAAK,IAAIC,KAAO10D,EAAO,CACrB,GAAI7F,OAAO0B,UAAU4C,eAAejC,KAAKwD,EAAO00D,GAE9C,GADUD,EAAaj4D,KAAK+Y,KAAMvV,EAAM00D,GAAMp+B,SAASo+B,EAAK,OAChDr6C,EAAK44B,MAAO,KAE5B,CACF,EAEA3sC,OAAQ,SAAgBquD,EAAMC,GAI5B,OAHAv6C,EAAK+D,KAAKw2C,GAAM,SAAkBz5D,EAAK21C,GACrC6jB,EAAKx5D,GAAO21C,CACd,IACO6jB,CACT,EAEAx0C,MAAO,SAAew0C,EAAMC,GAC1B,OAAOv6C,EAAK/T,OAAO+T,EAAKgI,KAAKsyC,GAAOC,EACtC,EAEAvyC,KAAM,SAAcroB,GAClB,GAAe,OAAXA,QAA8BsK,IAAXtK,EAAsB,OAAOA,EACpD,IAAI66D,EAAO,CAAC,EAEZ,IAAK,IAAI15D,KAAOnB,EACd66D,EAAK15D,GAAOnB,EAAOmB,GAErB,OAAO05D,CACT,EAEAnX,QAAS,SAAiBjiD,GACxB,IAAK,IAAIq5D,KAAQr5D,EACf,GAAItB,OAAO0B,UAAU4C,eAAejC,KAAKf,EAAKq5D,GAC5C,OAAO,EAGX,OAAO,CACT,EAEA9b,aAAc,SAAsBv9C,GAClC,IAAIyrB,EAAKzrB,EAAIsC,OAAStC,EAAIs5D,aAAet5D,EAAIu5D,SAC7C,MAAqB,oBAAP9tC,EAAoBA,EAAK,IACzC,EAEAkO,OAAQ,SAAgB35B,EAAKyN,GAG3B,MADoB,oBAATA,IAAqBA,EAAOmR,EAAKgb,SAASnsB,IAC9C/O,OAAO0B,UAAUiC,SAAStB,KAAKf,KAAS,WAAayN,EAAO,GACrE,EAEAmsB,SAAU,SAAkBnsB,GAC1B,GAAI/O,OAAO0B,UAAU4C,eAAejC,KAAK0M,EAAM,QAAS,OAAOA,EAAKlL,KACpE,IAAI8K,EAAMI,EAAKpL,WACX2d,EAAQ3S,EAAI2S,MAAM,uBACtB,OAAOA,EAAQA,EAAM,GAAK3S,CAC5B,EAEAgC,MAAO,SAAerN,EAAK+F,GACzB,IAAI+6B,EAAgB,KAkCpB,IAAK,IAAIpjC,IAjCkB,kBAAhBsC,EAAIkhB,SAAwC,KAAhBlhB,EAAIkhB,UAClB,kBAAZnb,GAAyBA,GAAWA,EAAQmb,YACrD4f,EAAgBlkB,EAAKgI,KAAK5kB,IACZkhB,QAAUlhB,EAAIkhB,SAGhClhB,EAAIkhB,QAAUlhB,EAAIkhB,SAAW,KAEN,kBAAZnb,EACT/F,EAAIkhB,QAAUnb,EACc,kBAAZA,GAAoC,OAAZA,IACxC6W,EAAK/T,OAAO7I,EAAK+F,GACbA,EAAQmb,UACVlhB,EAAIkhB,QAAUnb,EAAQmb,UACpBnb,EAAQkb,MAAQlb,EAAQxF,QAC1BP,EAAIihB,KAAOlb,EAAQkb,MAAQlb,EAAQxF,MACjCwF,EAAQyxD,QACVx3D,EAAIw3D,MAAQzxD,EAAQyxD,QAGa,oBAA1B96D,OAAOoB,iBAChBpB,OAAOoB,eAAekC,EAAK,OAAQ,CAACzB,UAAU,EAAMvB,YAAY,IAChEN,OAAOoB,eAAekC,EAAK,UAAW,CAAChD,YAAY,KAGrDgD,EAAIO,KAAO6tB,OAAOroB,GAAWA,EAAQxF,MAAQP,EAAIO,MAAQP,EAAIihB,MAAQ,SACrEjhB,EAAIy3D,KAAO,IAAIvvC,KAEX4Y,IACF9gC,EAAI8gC,cAAgBA,GAIN/6B,GAAW,CAAC,EAC1B,GAAe,MAAXrI,EAAI,IAAsC,MAAxBA,EAAIA,EAAIH,OAAS,GAAY,CAEjD,GAAY,UADZG,EAAMA,EAAI4C,MAAM,GAAI,KACU,YAAR5C,EACpB,SAEFsC,EAAI,IAAMtC,EAAM,KAAO,aAAeA,EAAM,gBAC5ChB,OAAOoB,eAAekC,EAAKtC,EAAK,CAC9BW,MAAO2B,EAAItC,IAASqI,GAAWA,EAAQrI,IAAUojC,GAAiBA,EAAcpjC,GAChFV,YAAY,EACZuB,UAAU,GAEd,CAGF,OAAOyB,CACT,EAKA4d,QAAS,SAAiB85C,EAAO5T,GAC/B,IAAI6T,EAAY,KAChB,QAAiB9wD,IAAbi9C,EACFA,EAAW4T,EACXA,EAAQh7D,OACRi7D,EAAY,CAAC,MACR,CACL,IAAIC,EAAO,WAA+B,EAC1CA,EAAKx5D,UAAYs5D,EAAMt5D,UACvBu5D,EAAY,IAAIC,CAClB,CAcA,OAXI9T,EAAS3lD,cAAgBzB,SAC3BonD,EAAS3lD,YAAc,WACrB,GAAIu5D,IAAUh7D,OACZ,OAAOg7D,EAAMx6D,MAAM4a,KAAMxa,UAE7B,GAGFwmD,EAAS3lD,YAAYC,UAAYu5D,EACjC/6C,EAAK/T,OAAOi7C,EAAS3lD,YAAYC,UAAW0lD,GAC5CA,EAAS3lD,YAAYq2B,UAAYkjC,EAC1B5T,EAAS3lD,WAClB,EAKA85C,MAAO,WAEL,IADA,IAAIyf,EAAQp6D,UAAU,GACbD,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAEpC,IAAK,IAAIg6D,KAAQ/5D,UAAUD,GAAGe,UAAW,CACvC,IAAIqrB,EAAKnsB,UAAUD,GAAGe,UAAUi5D,GACnB,gBAATA,IACFK,EAAMt5D,UAAUi5D,GAAQ5tC,EAE5B,CAEF,OAAOiuC,CACT,EAKApwC,eAAgB,SAAwBtpB,EAAK6D,GACN,oBAA1BnF,OAAOoB,gBAElB8e,EAAK2L,UAAU1mB,GAAO,SAAUnE,GAC9BhB,OAAOoB,eAAeE,EAAKN,EAAK,CAC9BV,YAAY,EAAOuB,UAAU,EAAMD,cAAc,GACrD,GACF,EAKAkkB,SAAU,SAAkBxkB,EAAKuC,EAAMlC,EAAOrB,EAAY66D,GACxD,IAAIC,EAAO,CACTx5D,cAAc,EACdtB,gBAA2B6J,IAAf7J,GAA2BA,GAEpB,oBAAVqB,GAAyBw5D,GAIlCC,EAAKz5D,MAAQA,EAAOy5D,EAAKv5D,UAAW,GAHpCu5D,EAAK1nD,IAAM/R,EAMb3B,OAAOoB,eAAeE,EAAKuC,EAAMu3D,EACnC,EAKAzwC,iBAAkB,SAA0BrpB,EAAKuC,EAAM6P,EAAKpT,GAC1D,IAAI+6D,EAAc,KAGlBn7C,EAAK4F,SAASxkB,EAAKuC,GAAM,WAIvB,OAHoB,OAAhBw3D,IACFA,EAAc3nD,KAET2nD,CACT,GAAG/6D,EACL,EASAgoD,mBAAoB,SAA4BlvB,GAC9C,IAAIN,EAAMM,EAAKtI,QACX4Q,EAAgB5I,EAAI9L,UACpBA,EAAY8L,EAAIhM,QAAQiE,IAAIE,WAAWyQ,GACvCvK,EAASnK,EAAUmK,OACvB,GAAIA,EAAO0T,UAAY7d,EAAUgV,eAAgB,CAC/C,IAAI7B,EAAgBhJ,EAAO7F,QAAQ6F,EAAO0T,SACtCywB,EAAkBliC,EAAKze,KAAKwc,EAAO0T,SACZ,cAAvB1K,EAAcpxB,MAChBmR,EAAK+D,KAAKq3C,GAAiB,SAASt6D,EAAKW,GACvCue,EAAK4F,SAASsT,EAAKze,KAAM3Z,EAAKW,GAAO,EACvC,GAEJ,CACF,EAOAs+B,cAAe,SAAuB5E,EAAMh4B,GAC1C,GAAI6c,EAAKQ,SAAU,CACjB,IAAIoa,EAAS5a,EAAK6a,OAAOD,OACrBygC,EAAKpoD,EAAQ,OACjB,GAAsB,oBAAX2nB,GAAyBO,aAAgBP,EAAQ,CAC1D,GAAyB,kBAAdO,EAAKvY,KAUd,OAAOzf,EAAK,IAAIoC,MAAM,yDATtB,IAAI+1D,EAAW,CAAC,EACU,kBAAfngC,EAAKogC,QACdD,EAASC,MAAQpgC,EAAKogC,OAEA,kBAAbpgC,EAAKgf,MACdmhB,EAASnhB,IAAMhf,EAAKgf,KAEtBhf,EAAOkgC,EAAG/hB,iBAAiBne,EAAKvY,KAAM04C,EAK1C,CACF,CAEAt7C,EAAKC,OAAOq2C,OAAOn7B,EAAM,OAAO,SAAS/3B,EAAK48B,GACxC58B,EAAKD,EAAKC,GACTD,EAAK,KAAM68B,EAClB,GACF,EAKA4C,cAAe,SAAuBD,GACpC,GAAIA,EAGF,OAFA3iB,EAAK4F,SAAS1S,EAAIuV,OAAQ,gBACxBlL,KAAKse,KAAI,IAAIvQ,MAAOF,UAAYuX,IAAe,KAAQ,GAClDzvB,EAAIuV,OAAOma,aAEtB,EAEAC,iBAAkB,SAA0BF,GACtCA,IACFzvB,EAAIuV,OAAOrB,kBAAoBub,GAAa,IAAIrX,MAAOF,UAC3D,EAKAyY,iBAAkB,SAA0B3K,GAC1C,IAAI2Z,EAAY3Z,EAAKtF,aAAaF,QAAQ,qBACzBwF,EAAKtF,aAAaF,QAAQ,qBAEtCmf,GAAa3Z,EAAKze,MAAQye,EAAKze,KAAK+gD,mBACvC3oB,EAAY3Z,EAAKze,KAAK+gD,iBAAiBC,WAGrC5oB,IACF3Z,EAAK2Z,UAAYA,GAGf3Z,EAAKzoB,QACPyoB,EAAKzoB,MAAMoiC,UAAYA,EAE3B,EAKAtqB,YAAa,SAAqBH,EAAc0D,GAC9C,IAAI4vC,GAAiB,OACKzxD,IAAtB6hB,GAAmC5Y,GAAOA,EAAIuV,SAChDqD,EAAoB5Y,EAAIuV,OAAOD,8BAEPve,IAAtB6hB,GAAsD,qBAAZzhB,UAC5CyhB,EAAoBzhB,SAEW,oBAAtByhB,IAAkC4vC,GAAiB,GACzDh5D,MAAMC,QAAQylB,KAAeA,EAAe,CAACA,IAElD,IAAK,IAAIk0B,EAAM,EAAGA,EAAMl0B,EAAaznB,OAAQ27C,IAAO,CAClD,IAAI/6C,EAAc6mB,EAAak0B,GAC3Bof,EACEn6D,EAAY2qB,yBACd3qB,EAAY2qB,0BAEL3qB,EAAYsqB,oBACrBtqB,EAAYsqB,mBAAmBC,EAEnC,CACF,EAUAE,gBAAiB,SAAyB2vC,EAAY7vC,GACpD,OAAO,WACL,IAAIrS,EAAOyB,KACPw/B,EAAOh4C,MAAMlB,UAAUkC,MAAMvB,KAAKzB,WACtC,OAAO,IAAIorB,GAAkB,SAASxhB,EAAS8wC,GAC7CV,EAAKr6C,MAAK,SAAS+C,EAAKqX,GAClBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAEZ,IACAhB,EAAKkiD,GAAYr7D,MAAMmZ,EAAMihC,EAC/B,GACF,CACF,EAKAkhB,qBAAsB,SAA8BhvC,GAClD,IAAKA,EAAS,OAAO,EACrB,IAAIoc,EAAW/1B,EAAQ,OAEvB,MADuB,kBAAZ2Z,IAAsBA,EAAUA,EAAQuH,qBAC5B,kBAAZvH,IAAyBoc,EAAS5kC,eAAewoB,OACnDoc,EAASpc,GAASivC,kBAC7B,EAKApV,oBAAqB,SAA6B/lB,EAAYnZ,EAAmBnkB,GAC1EmkB,IAAmBA,EAAoB,CAAC,GAC7C,IAAIu0C,EAAgBv0C,EAAkBu0C,eAAiB,KACvD,GAA6B,oBAAlBA,EACT,OAAOA,EAAcp7B,EAAYt9B,GAEnC,IAAIqlD,EAAyC,kBAA3BlhC,EAAkBkhC,KAAoBlhC,EAAkBkhC,KAAO,IAEjF,OADYlrC,KAAKw+C,UAAYx+C,KAAKM,IAAI,EAAG6iB,GAAc+nB,EAEzD,EAKAuT,yBAA0B,SAAkChqC,EAAa7oB,EAASnC,GAC3EmC,IAASA,EAAU,CAAC,GACzB,IAAIi5B,EAAOlvB,EAAI0uB,WAAWS,cACtBjc,EAAcjd,EAAQid,aAAe,CAAC,EACtCsa,EAAa,EAEb+F,EAAc,SAASrjC,GACzB,IAAIkjB,EAAand,EAAQmd,YAAc,EAIvC,GAHIljB,GAAoB,iBAAbA,EAAIihB,OAAyBjhB,EAAIkwB,WAAY,GAGpDlwB,GAAOA,EAAIkwB,WAAaoN,EAAapa,EAAY,CACnD,IAAImd,EAAQzjB,EAAKymC,oBAAoB/lB,EAAYv3B,EAAQoe,kBAAmBnkB,GAC5E,GAAIqgC,GAAS,EAGX,OAFA/C,SACAiD,WAAWs4B,EAAax4B,GAASrgC,EAAI84D,YAAc,GAGvD,CACAl1D,EAAG5D,EACL,EAEI64D,EAAc,WAChB,IAAIxhD,EAAO,GACX2nB,EAAKE,cAActQ,EAAa5L,GAAa,SAASwN,GACpDA,EAAarsB,GAAG,QAAQ,SAASu7B,GAASroB,GAAQqoB,EAAMr/B,UAAY,IACpEmwB,EAAarsB,GAAG,OAAO,WACrB,IAAIssB,EAAaD,EAAaC,WAC9B,GAAIA,EAAa,IACf7sB,EAAG,KAAMyT,OACJ,CACL,IAAIyhD,EAAiE,IAApDjgC,SAASrI,EAAaF,QAAQ,eAAgB,KAAc,EACzEtwB,EAAM4c,EAAKvP,MAAM,IAAIlL,MACvB,CACEsuB,WAAYA,EACZP,UAAWO,GAAc,KAAsB,MAAfA,IAGhCqoC,GAAc94D,EAAIkwB,YAAWlwB,EAAI84D,WAAaA,GAClDz1B,EAAYrjC,EACd,CACF,GACF,GAAGqjC,EACL,EAEAvzB,EAAI8M,KAAK4L,MAAMqwC,EACjB,EAKA78B,KAAM,CACJC,GAAI,WACF,OAAOpsB,EAAAA,OAAAA,IACT,GAMFk1C,uBAAwB,SAAgCjvB,GACtD,IAAIN,EAAMM,EAAKtI,QACX9D,EAAY8L,EAAI9L,UAChBwS,EAAQ1G,EAAIhM,QAAQiE,IAAIE,WAAWjE,GAAWmK,QAAU,CAAC,EACzDqI,EAAMqL,SAAWzR,EAAKze,KAAK6kB,EAAMqL,WACnCzR,EAAKze,KAAK6kB,EAAMqL,SAAWzR,EAAKze,KAAK6kB,EAAMqL,SAASlnC,WAExD,EAKAmoB,MAAO,SAAe9I,GACG,kBAAZnC,SAAoD,oBAArBA,QAAQ84B,SAChD94B,QAAQ84B,SAAS32B,GACgB,oBAAjBq5C,aAChBA,aAAar5C,GAEb6gB,WAAW7gB,EAAU,EAEzB,EAKAod,uBAAwB,SAAgCtH,GACtD,IAAI7H,EAAa6H,EAAIhM,QAAQiE,IAAIE,WACjC,GAAKA,EAAL,CACA,IAAIjE,GAAaiE,GAAc,CAAC,GAAG6H,EAAI9L,WACvC,GAAKA,GAAcA,EAAUxR,OAAUwR,EAAUxR,MAAMqvB,QACvD,OAAO7d,EAAUxR,MAAM8V,QAAQtE,EAAUxR,MAAMqvB,QAHd,CAInC,EAEAzhB,4BAA6B,SAAqCC,EAAW0L,GAC3E,IAAIunC,EAAW,CAAC,EACZC,EAAqB,CAAC,EAC1B,GAAI17C,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYX,EAAKs8C,gBACfD,EAAqBlzC,EAAUwL,SAAS,CAC1CC,UAAU,EACVC,SAAUlU,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYX,EAAK8U,uBAG/B,IAAIynC,EAAmB,CAAC,EACxB,IACMA,EAAoBpzC,EAAUwL,SAAS,CACzCE,SAAUA,GACPlU,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYX,EAAKs8C,iBAAmB37C,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYX,EAAKw8C,2BAE5D,CAAE,MAAO/rD,GAEP,IAAKkQ,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYX,EAAKs8C,gBAAiB,MAAM7rD,CAC/C,CACA,IAAK,IAAIhQ,EAAI,EAAGg8D,EAAe38D,OAAOD,KAAKw8D,GAAqB57D,EAAIg8D,EAAa97D,OAAQF,IACvF27D,EAASK,EAAah8D,IAAMi8D,EAAaN,EAASK,EAAah8D,KAAO,CAAC,EAAG47D,EAAmBI,EAAah8D,KAE5G,IAASA,EAAI,EAAGg8D,EAAe38D,OAAOD,KAAK08D,GAAoB97D,EAAIg8D,EAAa97D,OAAQF,IACtF27D,EAASK,EAAah8D,IAAMi8D,EAAaN,EAASK,EAAah8D,KAAO,CAAC,EAAG87D,EAAkBE,EAAah8D,KAE3G,OAAO27D,EAKP,SAASM,EAAal8D,EAAQI,GAC5B,IAAK,IAAIH,EAAI,EAAGZ,EAAOC,OAAOD,KAAKe,GAASH,EAAIZ,EAAKc,OAAQF,IAC3DD,EAAOX,EAAKY,IAAMG,EAAOf,EAAKY,IAEhC,OAAOD,CACT,CACF,EAKAmrD,IAAK,CACHhzB,SAAU,SAAqBlqB,GAC7B,OAAOA,GAA+B,IAAxBA,EAAI1M,QAAQ,SAAiB0M,EAAI+T,MAAM,KAAK7hB,QAAU,CACtE,EACAgiB,MAAO,SAAkBg6C,GACvB,IAAIC,EAAUD,EAAIn6C,MAAM,KACxB,MAAO,CACLq6C,UAAWD,EAAQ,GACnBhwC,QAASgwC,EAAQ,GACjB72C,OAAQ62C,EAAQ,GAChB5O,UAAW4O,EAAQ,GACnBv5C,SAAUu5C,EAAQl5D,MAAM,GAAG8rB,KAAK,KAEpC,EACA8Y,MAAO,SAAkBw0B,GACvB,QACwB7yD,IAAtB6yD,EAAUlwC,cACW3iB,IAArB6yD,EAAU/2C,aACc9b,IAAxB6yD,EAAU9O,gBACa/jD,IAAvB6yD,EAAUz5C,SACV,MAAMrD,EAAKvP,MAAM,IAAIlL,MAAM,gCAC7B,MAAO,QAASu3D,EAAUD,WAAa,OAAS,IAAMC,EAAUlwC,QAC9D,IAAMkwC,EAAU/2C,OAAS,IAAM+2C,EAAU9O,UAAY,IAAM8O,EAAUz5C,QACzE,GAMFgG,eAAgB,UAKhBizC,eAAgB,sBAKhBE,yBAA0B,8BAK1B1nC,oBAAqB,kBAKrBioC,gBAAiB,6BAMnBnpD,EAAOpU,QAAUwgB,mBC9jCjB,IAAIA,EAAO/M,EAAQ,OACfkX,EAAQlX,EAAQ,OAEpB,SAAS+pD,IAAiB,CAwE1B,SAASC,EAAoBC,EAAK/yD,GAEhC,IADA,IAAInC,EAAWk1D,EAAIC,qBAAqBhzD,GAC/B1J,EAAI,EAAG0+B,EAAOn3B,EAASrH,OAAQF,EAAI0+B,EAAM1+B,IAChD,GAAIuH,EAASvH,GAAG28D,aAAeF,EAC7B,OAAOl1D,EAASvH,EAGtB,CAEA,SAAS48D,EAASH,EAAKx2D,GAErB,OADKA,IAAOA,EAAQ,CAAC,GACbA,EAAMmI,MACZ,IAAK,YAAa,OAAOyuD,EAAeJ,EAAKx2D,GAC7C,IAAK,MAAO,OAkChB,SAAkBw2D,EAAKx2D,GACrB,IAAI+T,EAAO,CAAC,EACR8iD,EAAS72D,EAAM5F,IAAI6C,MAAQ,MAC3B65D,EAAW92D,EAAMjF,MAAMkC,MAAQ,QAC/B85D,EAAU/2D,EAAM4lC,UAAY5lC,EAAM/C,KAAO,QAEzC+5D,EAAQR,EAAIS,kBAChB,KAAOD,GAAO,CACZ,GAAIA,EAAME,WAAaH,EAAS,CAC9B,IAAI38D,EAAMm8D,EAAoBS,EAAOH,GAAQM,YACzCp8D,EAAQw7D,EAAoBS,EAAOF,GACvC/iD,EAAK3Z,GAAOu8D,EAAS57D,EAAOiF,EAAMjF,MACpC,CACAi8D,EAAQA,EAAMI,kBAChB,CACA,OAAOrjD,CACT,CAlDuBsjD,CAASb,EAAKx2D,GACjC,IAAK,OAAQ,OAmDjB,SAAmBw2D,EAAKx2D,GACtB,IAAI+T,EAAO,GACPgjD,EAAU/2D,EAAM4lC,UAAY5lC,EAAM/C,KAAQ+C,EAAM8zB,OAAO72B,MAAQ,SAE/D+5D,EAAQR,EAAIS,kBAChB,KAAOD,GACDA,EAAME,WAAaH,GACrBhjD,EAAKpa,KAAKg9D,EAASK,EAAOh3D,EAAM8zB,SAElCkjC,EAAQA,EAAMI,mBAEhB,OAAOrjD,CACT,CA/DwBujD,CAAUd,EAAKx2D,GACnC,UAAKuD,EAAW,KAAK,KAAM,OAiF/B,SAAsBizD,GACpB,QAAYjzD,IAARizD,GAA6B,OAARA,EAAc,MAAO,GAG9C,IAAKA,EAAIS,kBACP,OAAkC,OAA9BT,EAAIE,WAAWA,WAA4B,CAAC,EAClB,IAA1BF,EAAIe,WAAWt9D,OAAqB,GAC5Bu8D,EAAIW,YAIlB,IAAIn3D,EAAQ,CAACmI,KAAM,YAAauiB,QAAS,CAAC,GACtCssC,EAAQR,EAAIS,kBAChB,KAAOD,GAAO,CACZ,IAAIvzD,EAAMuzD,EAAME,SACZ99D,OAAO0B,UAAU4C,eAAejC,KAAKuE,EAAM0qB,QAASjnB,GAEtDzD,EAAM0qB,QAAQjnB,GAAK0E,KAAO,OAE1BnI,EAAM0qB,QAAQjnB,GAAO,CAACxG,KAAMwG,GAE9BuzD,EAAQA,EAAMI,kBAChB,CACA,OAAOR,EAAeJ,EAAKx2D,EAC7B,CAzGsCw3D,CAAahB,GAC/C,QAAS,OA+Db,SAAqBA,EAAKx2D,GACxB,GAAIw2D,EAAIiB,aAAc,CACpB,IAAItiD,EAAWqhD,EAAIiB,aAAa,YACf,WAAbtiD,IACFnV,EAAQ,IAAIyjB,EAAM7Z,OAAO,CAACzB,KAAMgN,IAEpC,CAEA,IAAIuiD,EAAOlB,EAAIW,YACF,KAATO,IAAaA,EAAO,MACxB,MAA4B,oBAAjB13D,EAAM+zB,OACR/zB,EAAM+zB,OAAO2jC,GAEbA,CAEX,CA9EoBC,CAAYnB,EAAKx2D,GAErC,CAEA,SAAS42D,EAAeJ,EAAKx2D,GAC3B,IAAI+T,EAAO,CAAC,EACZ,OAAY,OAARyiD,GAEJl9C,EAAK+D,KAAKrd,EAAM0qB,SAAS,SAAS+Z,EAAYha,GAC5C,GAAIA,EAAYmtC,gBACd,GAAIx+D,OAAO0B,UAAU4C,eAAejC,KAAK+6D,EAAIqB,WAAYptC,EAAYxtB,MAAO,CAC1E,IAAIlC,EAAQy7D,EAAIqB,WAAWptC,EAAYxtB,MAAMlC,MAC7CgZ,EAAK0wB,GAAckyB,EAAS,CAACQ,YAAap8D,GAAQ0vB,EACpD,MACK,CACL,IAAIqtC,EAAWrtC,EAAYmb,UAAY4wB,EACrCD,EAAoBC,EAAK/rC,EAAYxtB,MACnC66D,EACF/jD,EAAK0wB,GAAckyB,EAASmB,EAAUrtC,GAErCA,EAAYmb,WACQ,SAArBnb,EAAYtiB,MACXnI,EAAMmqB,IAAI6Y,oBACXjvB,EAAK0wB,GAAcha,EAAYtL,aAEnC,CACF,IApByBpL,CAuB3B,CAnHAuiD,EAAax7D,UAAUmhB,MAAQ,SAASu6C,EAAKx2D,GAC3C,GAAgC,KAA5Bw2D,EAAI/7C,QAAQ,OAAQ,IAAY,MAAO,CAAC,EAE5C,IAAI5W,EAAQkG,EACZ,IACE,GAAIE,OAAO8tD,UAAW,CACpB,IAEEl0D,GADa,IAAIk0D,WACDC,gBAAgBxB,EAAK,WACvC,CAAE,MAAOyB,GACP,MAAM3+C,EAAKvP,MAAM,IAAIlL,MAAM,2BACzB,CACE2+B,cAAey6B,EACft6C,KAAM,iBACNiP,WAAW,GAEjB,CAEA,GAA+B,OAA3B/oB,EAAOq0D,gBACT,MAAM5+C,EAAKvP,MAAM,IAAIlL,MAAM,gCACzB,CACE8e,KAAM,iBACNiP,WAAW,IAIjB,IAAIurC,EAAUt0D,EAAO4yD,qBAAqB,eAAe,GACzD,GAAI0B,IAAYA,EAAQzB,aAAe7yD,GACH,SAAhCs0D,EAAQzB,WAAWQ,UACnBiB,EAAQzB,WAAWA,aAAe7yD,GACS,SAA3Cs0D,EAAQzB,WAAWA,WAAWQ,UAAsB,CACtD,IAAIkB,EAAeD,EAAQ1B,qBAAqB,OAAO,IAAM0B,EAC7D,MAAM7+C,EAAKvP,MAAM,IAAIlL,MAAMu5D,EAAajB,aAAe,4BACrD,CACEx5C,KAAM,iBACNiP,WAAW,GAEjB,CACF,KAAO,KAAI3iB,OAAOouD,cAYhB,MAAM,IAAIx5D,MAAM,0BARhB,IAHAgF,EAAS,IAAIoG,OAAOouD,cAAc,qBAC3BC,OAAQ,GAEVz0D,EAAO00D,QAAQ/B,GAClB,MAAMl9C,EAAKvP,MAAM,IAAIlL,MAAM,2BACzB,CACE8e,KAAM,iBACNiP,WAAW,GAKnB,CACF,CAAE,MAAO7hB,GACPhB,EAAQgB,CACV,CAEA,GAAIlH,GAAUA,EAAOq0D,kBAAoBnuD,EAAO,CAC9C,IAAIgK,EAAO4iD,EAAS9yD,EAAOq0D,gBAAiBl4D,GACxCsiC,EAAWi0B,EAAoB1yD,EAAOq0D,gBAAiB,oBAI3D,OAHI51B,IACFvuB,EAAK+gD,iBAAmB6B,EAASr0B,EAAU,CAAC,IAEvCvuB,CACT,CAAO,GAAIhK,EACT,MAAMuP,EAAKvP,MAAMA,GAAS,IAAIlL,MAAS,CAAC8e,KAAM,iBAAkBiP,WAAW,IAE3E,MAAO,CAAC,CAEZ,EA+HA1f,EAAOpU,QAAUw9D,mBCxMjB,IAAIh9C,EAAO/M,EAAQ,OACfisD,EAAUjsD,EAAAA,OAAAA,QACVksD,EAAUlsD,EAAAA,OAAAA,QAEd,SAASmsD,IAAe,CASxB,SAASxsB,EAAUsqB,EAAKz7D,EAAOiF,GAC7B,OAAQA,EAAMmI,MACZ,IAAK,YAAa,OAOtB,SAA4BquD,EAAK5wC,EAAQ5lB,GACvCsZ,EAAK2L,UAAUjlB,EAAMmmC,aAAa,SAAS1B,GACzC,IAAIha,EAAczqB,EAAM0qB,QAAQ+Z,GAChC,GAA6B,SAAzBha,EAAY/rB,SAAhB,CAEA,IAAI3D,EAAQ6qB,EAAO6e,GACfxnC,EAAOwtB,EAAYxtB,KACvB,QAAcsG,IAAVxI,GAAiC,OAAVA,EACzB,GAAI0vB,EAAYmtC,eACdpB,EAAImC,aAAa17D,EAAMlC,QAClB,GAAI0vB,EAAYmb,UACrBsG,EAAUsqB,EAAKz7D,EAAO0vB,OACjB,CACL,IAAIhrB,EAAU,IAAI+4D,EAAQv7D,GAC1Bu5D,EAAIoC,aAAan5D,GACjBo5D,EAAgBp5D,EAASgrB,GACzByhB,EAAUzsC,EAAS1E,EAAO0vB,EAC5B,CAdyC,CAgB7C,GACF,CA3B6BujB,CAAmBwoB,EAAKz7D,EAAOiF,GACxD,IAAK,MAAO,OA4BhB,SAAsBw2D,EAAKrnC,EAAKnvB,GAC9B,IAAI62D,EAAS72D,EAAM5F,IAAI6C,MAAQ,MAC3B65D,EAAW92D,EAAMjF,MAAMkC,MAAQ,QAEnCqc,EAAK+D,KAAK8R,GAAK,SAAS/0B,EAAKW,GAC3B,IAAI8xD,EAAQ,IAAI2L,EAAQx4D,EAAM4lC,UAAY5lC,EAAM/C,KAAO,SACvDu5D,EAAIoC,aAAa/L,GAEjB,IAAIiM,EAAW,IAAIN,EAAQ3B,GACvBkC,EAAa,IAAIP,EAAQ1B,GAC7BjK,EAAM+L,aAAaE,GACnBjM,EAAM+L,aAAaG,GAEnB7sB,EAAU4sB,EAAU1+D,EAAK4F,EAAM5F,KAC/B8xC,EAAU6sB,EAAYh+D,EAAOiF,EAAMjF,MACrC,GACF,CA5CuBwzC,CAAaioB,EAAKz7D,EAAOiF,GAC5C,IAAK,OAAQ,OA6CjB,SAAuBw2D,EAAKhnC,EAAMxvB,GAC5BA,EAAM4lC,UACRtsB,EAAK2L,UAAUuK,GAAM,SAASz0B,GAC5B,IAAIkC,EAAO+C,EAAM8zB,OAAO72B,MAAQ+C,EAAM/C,KAClCwC,EAAU,IAAI+4D,EAAQv7D,GAC1Bu5D,EAAIoC,aAAan5D,GACjBysC,EAAUzsC,EAAS1E,EAAOiF,EAAM8zB,OAClC,IAEAxa,EAAK2L,UAAUuK,GAAM,SAASz0B,GAC5B,IAAIkC,EAAO+C,EAAM8zB,OAAO72B,MAAQ,SAC5BwC,EAAU,IAAI+4D,EAAQv7D,GAC1Bu5D,EAAIoC,aAAan5D,GACjBysC,EAAUzsC,EAAS1E,EAAOiF,EAAM8zB,OAClC,GAEJ,CA7DwBsa,CAAcooB,EAAKz7D,EAAOiF,GAC9C,QAAS,OA8Db,SAAyBw2D,EAAKz7D,EAAOiF,GACnCw2D,EAAIoC,aACF,IAAIH,EAAQz4D,EAAM2hC,aAAa5mC,IAEnC,CAlEoBi+D,CAAgBxC,EAAKz7D,EAAOiF,GAEhD,CAkEA,SAAS64D,EAAgBrC,EAAKx2D,EAAOi5D,GACnC,IAAIzyB,EAAKD,EAAS,QACdvmC,EAAMk5D,iBACR1yB,EAAMxmC,EAAMk5D,gBACRl5D,EAAMm5D,qBAAoB5yB,GAAU,IAAMvmC,EAAMm5D,qBAC3CF,GAAUj5D,EAAMmqB,IAAI+uC,kBAC7B1yB,EAAMxmC,EAAMmqB,IAAI+uC,iBAGd1yB,GAAKgwB,EAAImC,aAAapyB,EAAQC,EACpC,CA1FAkyB,EAAW59D,UAAU8yC,MAAQ,SAAShoB,EAAQ5lB,EAAO2tC,EAAayrB,GAChE,IAAI5C,EAAM,IAAIgC,EAAQ7qB,GAGtB,OAFAkrB,EAAgBrC,EAAKx2D,GAAO,GAC5BksC,EAAUsqB,EAAK5wC,EAAQ5lB,GAChBw2D,EAAI3xD,SAAS5K,OAAS,GAAKm/D,EAAU5C,EAAIz5D,WAAa,EAC/D,EA0FAmQ,EAAOpU,QAAU4/D,YC3FjBxrD,EAAOpU,QAAU,CACbugE,gBARJ,SAAyBt+D,GACrB,OAAOA,EAAM0f,QAAQ,KAAM,SAASA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,SAC1H,cCWAvN,EAAOpU,QAAU,CACbwgE,cAdJ,SAAuBv+D,GACnB,OAAOA,EAAM0f,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,MAAO,UACfA,QAAQ,MAAO,UACfA,QAAQ,UAAW,UACnBA,QAAQ,SAAU,WACnC,oBCXA,IAAI4+C,EAAkB9sD,EAAAA,MAAAA,gBAMtB,SAASisD,EAAQv7D,EAAM4H,QACF,IAAbA,IAAuBA,EAAW,IACtC2P,KAAKvX,KAAOA,EACZuX,KAAK3P,SAAWA,EAChB2P,KAAKqjD,WAAa,CAAC,CACvB,CACAW,EAAQ19D,UAAU69D,aAAe,SAAU17D,EAAMlC,GAE7C,OADAyZ,KAAKqjD,WAAW56D,GAAQlC,EACjByZ,IACX,EACAgkD,EAAQ19D,UAAU89D,aAAe,SAAU5B,GAEvC,OADAxiD,KAAK3P,SAASlL,KAAKq9D,GACZxiD,IACX,EACAgkD,EAAQ19D,UAAUy+D,gBAAkB,SAAUt8D,GAE1C,cADOuX,KAAKqjD,WAAW56D,GAChBuX,IACX,EACAgkD,EAAQ19D,UAAUiC,SAAW,WAKzB,IAJA,IAAIy8D,EAAc9rC,QAAQlZ,KAAK3P,SAAS5K,QACpCw/D,EAAU,IAAMjlD,KAAKvX,KAErB46D,EAAarjD,KAAKqjD,WACb99D,EAAI,EAAG2/D,EAAiBtgE,OAAOD,KAAK0+D,GAAa99D,EAAI2/D,EAAez/D,OAAQF,IAAK,CACtF,IAAI4/D,EAAgBD,EAAe3/D,GAC/B6/D,EAAY/B,EAAW8B,GACF,qBAAdC,GAA2C,OAAdA,IACpCH,GAAW,IAAME,EAAgB,KAAQN,EAAgB,GAAKO,GAAa,IAEnF,CACA,OAAOH,GAAYD,EAAqB,IAAMhlD,KAAK3P,SAASsqB,KAAI,SAAUnZ,GAAK,OAAOA,EAAEjZ,UAAY,IAAG+rB,KAAK,IAAM,KAAOtU,KAAKvX,KAAO,IAApG,KACrC,EAKAiQ,EAAOpU,QAAU,CACb0/D,QAASA,oBC3Cb,IAAIc,EAAgB/sD,EAAAA,OAAAA,cAMpB,SAASksD,EAAQ19D,GACbyZ,KAAKzZ,MAAQA,CACjB,CAEA09D,EAAQ39D,UAAUiC,SAAW,WACzB,OAAOu8D,EAAc,GAAK9kD,KAAKzZ,MACnC,EAKAmS,EAAOpU,QAAU,CACb2/D,QAASA,qCCRTr+C,EAAS7N,EAAQ,OACjBstD,EAAUttD,EAAQ,MAClBtQ,EAAUsQ,EAAQ,OAmDtB,SAASutD,IACP,OAAOrmD,EAAOsmD,oBACV,WACA,UACN,CAEA,SAASC,EAAcC,EAAMhgE,GAC3B,GAAI6/D,IAAe7/D,EACjB,MAAM,IAAIigE,WAAW,8BAcvB,OAZIzmD,EAAOsmD,qBAETE,EAAO,IAAI/lD,WAAWja,IACjBkgE,UAAY1mD,EAAO3Y,WAGX,OAATm/D,IACFA,EAAO,IAAIxmD,EAAOxZ,IAEpBggE,EAAKhgE,OAASA,GAGTggE,CACT,CAYA,SAASxmD,EAAQG,EAAKwmD,EAAkBngE,GACtC,IAAKwZ,EAAOsmD,uBAAyBvlD,gBAAgBf,GACnD,OAAO,IAAIA,EAAOG,EAAKwmD,EAAkBngE,GAI3C,GAAmB,kBAAR2Z,EAAkB,CAC3B,GAAgC,kBAArBwmD,EACT,MAAM,IAAIv7D,MACR,qEAGJ,OAAOw7D,EAAY7lD,KAAMZ,EAC3B,CACA,OAAO1W,EAAKsX,KAAMZ,EAAKwmD,EAAkBngE,EAC3C,CAUA,SAASiD,EAAM+8D,EAAMl/D,EAAOq/D,EAAkBngE,GAC5C,GAAqB,kBAAVc,EACT,MAAM,IAAIuC,UAAU,yCAGtB,MAA2B,qBAAhBoW,aAA+B3Y,aAAiB2Y,YA6H7D,SAA0BumD,EAAMh7D,EAAOmV,EAAYna,GAGjD,GAFAgF,EAAM+U,WAEFI,EAAa,GAAKnV,EAAM+U,WAAaI,EACvC,MAAM,IAAI8lD,WAAW,6BAGvB,GAAIj7D,EAAM+U,WAAaI,GAAcna,GAAU,GAC7C,MAAM,IAAIigE,WAAW,6BAIrBj7D,OADiBsE,IAAf6Q,QAAuC7Q,IAAXtJ,EACtB,IAAIia,WAAWjV,QACHsE,IAAXtJ,EACD,IAAIia,WAAWjV,EAAOmV,GAEtB,IAAIF,WAAWjV,EAAOmV,EAAYna,GAGxCwZ,EAAOsmD,qBAETE,EAAOh7D,GACFk7D,UAAY1mD,EAAO3Y,UAGxBm/D,EAAOK,EAAcL,EAAMh7D,GAE7B,OAAOg7D,CACT,CAxJWM,CAAgBN,EAAMl/D,EAAOq/D,EAAkBngE,GAGnC,kBAAVc,EAwFb,SAAqBk/D,EAAM56D,EAAQ8V,GACT,kBAAbA,GAAsC,KAAbA,IAClCA,EAAW,QAGb,IAAK1B,EAAO+mD,WAAWrlD,GACrB,MAAM,IAAI7X,UAAU,8CAGtB,IAAIrD,EAAwC,EAA/B+Z,EAAW3U,EAAQ8V,GAChC8kD,EAAOD,EAAaC,EAAMhgE,GAE1B,IAAIwgE,EAASR,EAAKpiD,MAAMxY,EAAQ8V,GAE5BslD,IAAWxgE,IAIbggE,EAAOA,EAAKj9D,MAAM,EAAGy9D,IAGvB,OAAOR,CACT,CA7GWS,CAAWT,EAAMl/D,EAAOq/D,GAsJnC,SAAqBH,EAAMv/D,GACzB,GAAI+Y,EAAO2gB,SAAS15B,GAAM,CACxB,IAAI0C,EAA4B,EAAtBu9D,EAAQjgE,EAAIT,QAGtB,OAAoB,KAFpBggE,EAAOD,EAAaC,EAAM78D,IAEjBnD,QAITS,EAAI4mB,KAAK24C,EAAM,EAAG,EAAG78D,GAHZ68D,CAKX,CAEA,GAAIv/D,EAAK,CACP,GAA4B,qBAAhBgZ,aACRhZ,EAAIyZ,kBAAkBT,aAAgB,WAAYhZ,EACpD,MAA0B,kBAAfA,EAAIT,SA+8CL8uB,EA/8CkCruB,EAAIT,UAg9CrC8uB,EA/8CFixC,EAAaC,EAAM,GAErBK,EAAcL,EAAMv/D,GAG7B,GAAiB,WAAbA,EAAIyN,MAAqBlM,EAAQvB,EAAIqZ,MACvC,OAAOumD,EAAcL,EAAMv/D,EAAIqZ,KAEnC,CAs8CF,IAAgBgV,EAp8Cd,MAAM,IAAIzrB,UAAU,qFACtB,CA/KSs9D,CAAWX,EAAMl/D,EAC1B,CA2BA,SAAS8/D,EAAYxI,GACnB,GAAoB,kBAATA,EACT,MAAM,IAAI/0D,UAAU,oCACf,GAAI+0D,EAAO,EAChB,MAAM,IAAI6H,WAAW,uCAEzB,CA0BA,SAASG,EAAaJ,EAAM5H,GAG1B,GAFAwI,EAAWxI,GACX4H,EAAOD,EAAaC,EAAM5H,EAAO,EAAI,EAAoB,EAAhBsI,EAAQtI,KAC5C5+C,EAAOsmD,oBACV,IAAK,IAAIhgE,EAAI,EAAGA,EAAIs4D,IAAQt4D,EAC1BkgE,EAAKlgE,GAAK,EAGd,OAAOkgE,CACT,CAuCA,SAASK,EAAeL,EAAMh7D,GAC5B,IAAIhF,EAASgF,EAAMhF,OAAS,EAAI,EAA4B,EAAxB0gE,EAAQ17D,EAAMhF,QAClDggE,EAAOD,EAAaC,EAAMhgE,GAC1B,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAQF,GAAK,EAC/BkgE,EAAKlgE,GAAgB,IAAXkF,EAAMlF,GAElB,OAAOkgE,CACT,CA8DA,SAASU,EAAS1gE,GAGhB,GAAIA,GAAU6/D,IACZ,MAAM,IAAII,WAAW,0DACaJ,IAAa/8D,SAAS,IAAM,UAEhE,OAAgB,EAAT9C,CACT,CAqFA,SAAS+Z,EAAY3U,EAAQ8V,GAC3B,GAAI1B,EAAO2gB,SAAS/0B,GAClB,OAAOA,EAAOpF,OAEhB,GAA2B,qBAAhByZ,aAA6D,oBAAvBA,YAAYC,SACxDD,YAAYC,OAAOtU,IAAWA,aAAkBqU,aACnD,OAAOrU,EAAO2U,WAEM,kBAAX3U,IACTA,EAAS,GAAKA,GAGhB,IAAIjC,EAAMiC,EAAOpF,OACjB,GAAY,IAARmD,EAAW,OAAO,EAItB,IADA,IAAI09D,GAAc,IAEhB,OAAQ3lD,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO/X,EACT,IAAK,OACL,IAAK,QACL,UAAKmG,EACH,OAAOw3D,EAAY17D,GAAQpF,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAANmD,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAO49D,EAAc37D,GAAQpF,OAC/B,QACE,GAAI6gE,EAAa,OAAOC,EAAY17D,GAAQpF,OAC5Ckb,GAAY,GAAKA,GAAU7B,cAC3BwnD,GAAc,EAGtB,CAGA,SAASG,EAAc9lD,EAAU0/C,EAAOphB,GACtC,IAAIqnB,GAAc,EAclB,SALcv3D,IAAVsxD,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQrgD,KAAKva,OACf,MAAO,GAOT,SAJYsJ,IAARkwC,GAAqBA,EAAMj/B,KAAKva,UAClCw5C,EAAMj/B,KAAKva,QAGTw5C,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTohB,KAAW,GAGT,MAAO,GAKT,IAFK1/C,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAO+lD,EAAS1mD,KAAMqgD,EAAOphB,GAE/B,IAAK,OACL,IAAK,QACH,OAAO0nB,EAAU3mD,KAAMqgD,EAAOphB,GAEhC,IAAK,QACH,OAAO2nB,EAAW5mD,KAAMqgD,EAAOphB,GAEjC,IAAK,SACL,IAAK,SACH,OAAO4nB,EAAY7mD,KAAMqgD,EAAOphB,GAElC,IAAK,SACH,OAAO6nB,EAAY9mD,KAAMqgD,EAAOphB,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO8nB,EAAa/mD,KAAMqgD,EAAOphB,GAEnC,QACE,GAAIqnB,EAAa,MAAM,IAAIx9D,UAAU,qBAAuB6X,GAC5DA,GAAYA,EAAW,IAAI7B,cAC3BwnD,GAAc,EAGtB,CAMA,SAASU,EAAM5lD,EAAG9Y,EAAG2+D,GACnB,IAAI1hE,EAAI6b,EAAE9Y,GACV8Y,EAAE9Y,GAAK8Y,EAAE6lD,GACT7lD,EAAE6lD,GAAK1hE,CACT,CAkIA,SAAS2hE,EAAsBvnD,EAAQ4U,EAAK3U,EAAYe,EAAUwmD,GAEhE,GAAsB,IAAlBxnD,EAAOla,OAAc,OAAQ,EAmBjC,GAhB0B,kBAAfma,GACTe,EAAWf,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAEhBA,GAAcA,EACVk/B,MAAMl/B,KAERA,EAAaunD,EAAM,EAAKxnD,EAAOla,OAAS,GAItCma,EAAa,IAAGA,EAAaD,EAAOla,OAASma,GAC7CA,GAAcD,EAAOla,OAAQ,CAC/B,GAAI0hE,EAAK,OAAQ,EACZvnD,EAAaD,EAAOla,OAAS,CACpC,MAAO,GAAIma,EAAa,EAAG,CACzB,IAAIunD,EACC,OAAQ,EADJvnD,EAAa,CAExB,CAQA,GALmB,kBAAR2U,IACTA,EAAMtV,EAAOvW,KAAK6rB,EAAK5T,IAIrB1B,EAAO2gB,SAASrL,GAElB,OAAmB,IAAfA,EAAI9uB,QACE,EAEH2hE,EAAaznD,EAAQ4U,EAAK3U,EAAYe,EAAUwmD,GAClD,GAAmB,kBAAR5yC,EAEhB,OADAA,GAAY,IACRtV,EAAOsmD,qBACiC,oBAAjC7lD,WAAWpZ,UAAUO,QAC1BsgE,EACKznD,WAAWpZ,UAAUO,QAAQI,KAAK0Y,EAAQ4U,EAAK3U,GAE/CF,WAAWpZ,UAAU+gE,YAAYpgE,KAAK0Y,EAAQ4U,EAAK3U,GAGvDwnD,EAAaznD,EAAQ,CAAE4U,GAAO3U,EAAYe,EAAUwmD,GAG7D,MAAM,IAAIr+D,UAAU,uCACtB,CAEA,SAASs+D,EAAcjgE,EAAKotB,EAAK3U,EAAYe,EAAUwmD,GACrD,IA0BI5hE,EA1BA+hE,EAAY,EACZC,EAAYpgE,EAAI1B,OAChB+hE,EAAYjzC,EAAI9uB,OAEpB,QAAiBsJ,IAAb4R,IAEe,UADjBA,EAAW2V,OAAO3V,GAAU7B,gBACY,UAAb6B,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAIxZ,EAAI1B,OAAS,GAAK8uB,EAAI9uB,OAAS,EACjC,OAAQ,EAEV6hE,EAAY,EACZC,GAAa,EACbC,GAAa,EACb5nD,GAAc,CAChB,CAGF,SAASinB,EAAM2L,EAAKjtC,GAClB,OAAkB,IAAd+hE,EACK90B,EAAIjtC,GAEJitC,EAAI7P,aAAap9B,EAAI+hE,EAEhC,CAGA,GAAIH,EAAK,CACP,IAAIM,GAAc,EAClB,IAAKliE,EAAIqa,EAAYra,EAAIgiE,EAAWhiE,IAClC,GAAIshC,EAAK1/B,EAAK5B,KAAOshC,EAAKtS,GAAqB,IAAhBkzC,EAAoB,EAAIliE,EAAIkiE,IAEzD,IADoB,IAAhBA,IAAmBA,EAAaliE,GAChCA,EAAIkiE,EAAa,IAAMD,EAAW,OAAOC,EAAaH,OAEtC,IAAhBG,IAAmBliE,GAAKA,EAAIkiE,GAChCA,GAAc,CAGpB,MAEE,IADI7nD,EAAa4nD,EAAYD,IAAW3nD,EAAa2nD,EAAYC,GAC5DjiE,EAAIqa,EAAYra,GAAK,EAAGA,IAAK,CAEhC,IADA,IAAImiE,GAAQ,EACHC,EAAI,EAAGA,EAAIH,EAAWG,IAC7B,GAAI9gC,EAAK1/B,EAAK5B,EAAIoiE,KAAO9gC,EAAKtS,EAAKozC,GAAI,CACrCD,GAAQ,EACR,KACF,CAEF,GAAIA,EAAO,OAAOniE,CACpB,CAGF,OAAQ,CACV,CAcA,SAASqiE,EAAUp1B,EAAK3nC,EAAQqY,EAAQzd,GACtCyd,EAASuX,OAAOvX,IAAW,EAC3B,IAAIwd,EAAY8R,EAAI/sC,OAASyd,EACxBzd,GAGHA,EAASg1B,OAAOh1B,IACHi7B,IACXj7B,EAASi7B,GAJXj7B,EAASi7B,EASX,IAAImnC,EAASh9D,EAAOpF,OACpB,GAAIoiE,EAAS,IAAM,EAAG,MAAM,IAAI/+D,UAAU,sBAEtCrD,EAASoiE,EAAS,IACpBpiE,EAASoiE,EAAS,GAEpB,IAAK,IAAItiE,EAAI,EAAGA,EAAIE,IAAUF,EAAG,CAC/B,IAAI+K,EAASywB,SAASl2B,EAAOi4B,OAAW,EAAJv9B,EAAO,GAAI,IAC/C,GAAIu5C,MAAMxuC,GAAS,OAAO/K,EAC1BitC,EAAItvB,EAAS3d,GAAK+K,CACpB,CACA,OAAO/K,CACT,CAEA,SAASuiE,EAAWt1B,EAAK3nC,EAAQqY,EAAQzd,GACvC,OAAOsiE,EAAWxB,EAAY17D,EAAQ2nC,EAAI/sC,OAASyd,GAASsvB,EAAKtvB,EAAQzd,EAC3E,CAEA,SAASuiE,EAAYx1B,EAAK3nC,EAAQqY,EAAQzd,GACxC,OAAOsiE,EAq6BT,SAAuBx0D,GAErB,IADA,IAAI00D,EAAY,GACP1iE,EAAI,EAAGA,EAAIgO,EAAI9N,SAAUF,EAEhC0iE,EAAU9iE,KAAyB,IAApBoO,EAAIkqD,WAAWl4D,IAEhC,OAAO0iE,CACT,CA56BoBC,CAAar9D,GAAS2nC,EAAKtvB,EAAQzd,EACvD,CAEA,SAAS0iE,EAAa31B,EAAK3nC,EAAQqY,EAAQzd,GACzC,OAAOuiE,EAAWx1B,EAAK3nC,EAAQqY,EAAQzd,EACzC,CAEA,SAAS2iE,EAAa51B,EAAK3nC,EAAQqY,EAAQzd,GACzC,OAAOsiE,EAAWvB,EAAc37D,GAAS2nC,EAAKtvB,EAAQzd,EACxD,CAEA,SAAS4iE,EAAW71B,EAAK3nC,EAAQqY,EAAQzd,GACvC,OAAOsiE,EAk6BT,SAAyBx0D,EAAK+0D,GAG5B,IAFA,IAAI9mD,EAAG+mD,EAAIC,EACPP,EAAY,GACP1iE,EAAI,EAAGA,EAAIgO,EAAI9N,WACjB6iE,GAAS,GAAK,KADa/iE,EAIhCgjE,GADA/mD,EAAIjO,EAAIkqD,WAAWl4D,KACT,EACVijE,EAAKhnD,EAAI,IACTymD,EAAU9iE,KAAKqjE,GACfP,EAAU9iE,KAAKojE,GAGjB,OAAON,CACT,CAh7BoBQ,CAAe59D,EAAQ2nC,EAAI/sC,OAASyd,GAASsvB,EAAKtvB,EAAQzd,EAC9E,CAiFA,SAASqhE,EAAat0B,EAAK6tB,EAAOphB,GAChC,OAAc,IAAVohB,GAAephB,IAAQzM,EAAI/sC,OACtBmgB,EAAO8iD,cAAcl2B,GAErB5sB,EAAO8iD,cAAcl2B,EAAIhqC,MAAM63D,EAAOphB,GAEjD,CAEA,SAAS0nB,EAAWn0B,EAAK6tB,EAAOphB,GAC9BA,EAAM58B,KAAK8tB,IAAIqC,EAAI/sC,OAAQw5C,GAI3B,IAHA,IAAIwb,EAAM,GAENl1D,EAAI86D,EACD96D,EAAI05C,GAAK,CACd,IAQM0pB,EAAYC,EAAWC,EAAYC,EARrCC,EAAYv2B,EAAIjtC,GAChByjE,EAAY,KACZC,EAAoBF,EAAY,IAAQ,EACvCA,EAAY,IAAQ,EACpBA,EAAY,IAAQ,EACrB,EAEJ,GAAIxjE,EAAI0jE,GAAoBhqB,EAG1B,OAAQgqB,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EAEyB,OAAV,KADlBJ,EAAan2B,EAAIjtC,EAAI,OAEnBujE,GAA6B,GAAZC,IAAqB,EAAoB,GAAbJ,GACzB,MAClBK,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAan2B,EAAIjtC,EAAI,GACrBqjE,EAAYp2B,EAAIjtC,EAAI,GACQ,OAAV,IAAbojE,IAAsD,OAAV,IAAZC,KACnCE,GAA6B,GAAZC,IAAoB,IAAoB,GAAbJ,IAAsB,EAAmB,GAAZC,GACrD,OAAUE,EAAgB,OAAUA,EAAgB,SACtEE,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAan2B,EAAIjtC,EAAI,GACrBqjE,EAAYp2B,EAAIjtC,EAAI,GACpBsjE,EAAar2B,EAAIjtC,EAAI,GACO,OAAV,IAAbojE,IAAsD,OAAV,IAAZC,IAAsD,OAAV,IAAbC,KAClEC,GAA6B,GAAZC,IAAoB,IAAqB,GAAbJ,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,GAClF,OAAUC,EAAgB,UAC5CE,EAAYF,GAMJ,OAAdE,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbvO,EAAIt1D,KAAK6jE,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBvO,EAAIt1D,KAAK6jE,GACTzjE,GAAK0jE,CACP,CAEA,OAQF,SAAgCC,GAC9B,IAAItgE,EAAMsgE,EAAWzjE,OACrB,GAAImD,GAAOugE,EACT,OAAO7yC,OAAO8yC,aAAahkE,MAAMkxB,OAAQ4yC,GAI3C,IAAIzO,EAAM,GACNl1D,EAAI,EACR,KAAOA,EAAIqD,GACT6xD,GAAOnkC,OAAO8yC,aAAahkE,MACzBkxB,OACA4yC,EAAW1gE,MAAMjD,EAAGA,GAAK4jE,IAG7B,OAAO1O,CACT,CAxBS4O,CAAsB5O,EAC/B,CA/8BAn2D,EAAQ,GAAS2a,EAEjB3a,EAAQ,GAAoB,GA0B5B2a,EAAOsmD,yBAAqDx2D,IAA/Bu6D,EAAAA,EAAO/D,oBAChC+D,EAAAA,EAAO/D,oBAQX,WACE,IACE,IAAIp+D,EAAM,IAAIuY,WAAW,GAEzB,OADAvY,EAAIw+D,UAAY,CAACA,UAAWjmD,WAAWpZ,UAAWijE,IAAK,WAAc,OAAO,EAAG,GAC1D,KAAdpiE,EAAIoiE,OACiB,oBAAjBpiE,EAAIqiE,UACuB,IAAlCriE,EAAIqiE,SAAS,EAAG,GAAGhqD,UACzB,CAAE,MAAOjJ,GACP,OAAO,CACT,CACF,CAjBIkzD,GAKiBnE,IAkErBrmD,EAAOyqD,SAAW,KAGlBzqD,EAAO0qD,SAAW,SAAUxiE,GAE1B,OADAA,EAAIw+D,UAAY1mD,EAAO3Y,UAChBa,CACT,EA0BA8X,EAAOvW,KAAO,SAAUnC,EAAOq/D,EAAkBngE,GAC/C,OAAOiD,EAAK,KAAMnC,EAAOq/D,EAAkBngE,EAC7C,EAEIwZ,EAAOsmD,sBACTtmD,EAAO3Y,UAAUq/D,UAAYjmD,WAAWpZ,UACxC2Y,EAAO0mD,UAAYjmD,WACG,qBAAXvZ,QAA0BA,OAAOyjE,SACxC3qD,EAAO9Y,OAAOyjE,WAAa3qD,GAE7Bra,OAAOoB,eAAeiZ,EAAQ9Y,OAAOyjE,QAAS,CAC5CrjE,MAAO,KACPC,cAAc,KAiCpByY,EAAOyzB,MAAQ,SAAUmrB,EAAMjrB,EAAMjyB,GACnC,OArBF,SAAgB8kD,EAAM5H,EAAMjrB,EAAMjyB,GAEhC,OADA0lD,EAAWxI,GACPA,GAAQ,EACH2H,EAAaC,EAAM5H,QAEf9uD,IAAT6jC,EAIyB,kBAAbjyB,EACV6kD,EAAaC,EAAM5H,GAAMjrB,KAAKA,EAAMjyB,GACpC6kD,EAAaC,EAAM5H,GAAMjrB,KAAKA,GAE7B4yB,EAAaC,EAAM5H,EAC5B,CAOSnrB,CAAM,KAAMmrB,EAAMjrB,EAAMjyB,EACjC,EAgBA1B,EAAO4mD,YAAc,SAAUhI,GAC7B,OAAOgI,EAAY,KAAMhI,EAC3B,EAIA5+C,EAAO4qD,gBAAkB,SAAUhM,GACjC,OAAOgI,EAAY,KAAMhI,EAC3B,EAgHA5+C,EAAO2gB,SAAW,SAAmBxe,GACnC,QAAe,MAALA,IAAaA,EAAE0oD,UAC3B,EAEA7qD,EAAO8qD,QAAU,SAAkB5oD,EAAGC,GACpC,IAAKnC,EAAO2gB,SAASze,KAAOlC,EAAO2gB,SAASxe,GAC1C,MAAM,IAAItY,UAAU,6BAGtB,GAAIqY,IAAMC,EAAG,OAAO,EAKpB,IAHA,IAAIpY,EAAImY,EAAE1b,OACNukE,EAAI5oD,EAAE3b,OAEDF,EAAI,EAAGqD,EAAMyZ,KAAK8tB,IAAInnC,EAAGghE,GAAIzkE,EAAIqD,IAAOrD,EAC/C,GAAI4b,EAAE5b,KAAO6b,EAAE7b,GAAI,CACjByD,EAAImY,EAAE5b,GACNykE,EAAI5oD,EAAE7b,GACN,KACF,CAGF,OAAIyD,EAAIghE,GAAW,EACfA,EAAIhhE,EAAU,EACX,CACT,EAEAiW,EAAO+mD,WAAa,SAAqBrlD,GACvC,OAAQ2V,OAAO3V,GAAU7B,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,EAEb,EAEAG,EAAOvQ,OAAS,SAAiBssB,EAAMv1B,GACrC,IAAKgC,EAAQuzB,GACX,MAAM,IAAIlyB,UAAU,+CAGtB,GAAoB,IAAhBkyB,EAAKv1B,OACP,OAAOwZ,EAAOyzB,MAAM,GAGtB,IAAIntC,EACJ,QAAewJ,IAAXtJ,EAEF,IADAA,EAAS,EACJF,EAAI,EAAGA,EAAIy1B,EAAKv1B,SAAUF,EAC7BE,GAAUu1B,EAAKz1B,GAAGE,OAItB,IAAIka,EAASV,EAAO4mD,YAAYpgE,GAC5Bu4D,EAAM,EACV,IAAKz4D,EAAI,EAAGA,EAAIy1B,EAAKv1B,SAAUF,EAAG,CAChC,IAAIitC,EAAMxX,EAAKz1B,GACf,IAAK0Z,EAAO2gB,SAAS4S,GACnB,MAAM,IAAI1pC,UAAU,+CAEtB0pC,EAAI1lB,KAAKnN,EAAQq+C,GACjBA,GAAOxrB,EAAI/sC,MACb,CACA,OAAOka,CACT,EA6CAV,EAAOO,WAAaA,EA0EpBP,EAAO3Y,UAAUwjE,WAAY,EAQ7B7qD,EAAO3Y,UAAU2jE,OAAS,WACxB,IAAIrhE,EAAMoX,KAAKva,OACf,GAAImD,EAAM,IAAM,EACd,MAAM,IAAI88D,WAAW,6CAEvB,IAAK,IAAIngE,EAAI,EAAGA,EAAIqD,EAAKrD,GAAK,EAC5ByhE,EAAKhnD,KAAMza,EAAGA,EAAI,GAEpB,OAAOya,IACT,EAEAf,EAAO3Y,UAAU4jE,OAAS,WACxB,IAAIthE,EAAMoX,KAAKva,OACf,GAAImD,EAAM,IAAM,EACd,MAAM,IAAI88D,WAAW,6CAEvB,IAAK,IAAIngE,EAAI,EAAGA,EAAIqD,EAAKrD,GAAK,EAC5ByhE,EAAKhnD,KAAMza,EAAGA,EAAI,GAClByhE,EAAKhnD,KAAMza,EAAI,EAAGA,EAAI,GAExB,OAAOya,IACT,EAEAf,EAAO3Y,UAAU6jE,OAAS,WACxB,IAAIvhE,EAAMoX,KAAKva,OACf,GAAImD,EAAM,IAAM,EACd,MAAM,IAAI88D,WAAW,6CAEvB,IAAK,IAAIngE,EAAI,EAAGA,EAAIqD,EAAKrD,GAAK,EAC5ByhE,EAAKhnD,KAAMza,EAAGA,EAAI,GAClByhE,EAAKhnD,KAAMza,EAAI,EAAGA,EAAI,GACtByhE,EAAKhnD,KAAMza,EAAI,EAAGA,EAAI,GACtByhE,EAAKhnD,KAAMza,EAAI,EAAGA,EAAI,GAExB,OAAOya,IACT,EAEAf,EAAO3Y,UAAUiC,SAAW,WAC1B,IAAI9C,EAAuB,EAAdua,KAAKva,OAClB,OAAe,IAAXA,EAAqB,GACA,IAArBD,UAAUC,OAAqBkhE,EAAU3mD,KAAM,EAAGva,GAC/CghE,EAAarhE,MAAM4a,KAAMxa,UAClC,EAEAyZ,EAAO3Y,UAAU8jE,OAAS,SAAiBhpD,GACzC,IAAKnC,EAAO2gB,SAASxe,GAAI,MAAM,IAAItY,UAAU,6BAC7C,OAAIkX,OAASoB,GACsB,IAA5BnC,EAAO8qD,QAAQ/pD,KAAMoB,EAC9B,EAEAnC,EAAO3Y,UAAU+jE,QAAU,WACzB,IAAI92D,EAAM,GACN68B,EAAM9rC,EAAQ,GAKlB,OAJI0b,KAAKva,OAAS,IAChB8N,EAAMyM,KAAKzX,SAAS,MAAO,EAAG6nC,GAAKlqB,MAAM,SAASoO,KAAK,KACnDtU,KAAKva,OAAS2qC,IAAK78B,GAAO,UAEzB,WAAaA,EAAM,GAC5B,EAEA0L,EAAO3Y,UAAUyjE,QAAU,SAAkBzkE,EAAQ+6D,EAAOphB,EAAKqrB,EAAWC,GAC1E,IAAKtrD,EAAO2gB,SAASt6B,GACnB,MAAM,IAAIwD,UAAU,6BAgBtB,QAbciG,IAAVsxD,IACFA,EAAQ,QAEEtxD,IAARkwC,IACFA,EAAM35C,EAASA,EAAOG,OAAS,QAEfsJ,IAAdu7D,IACFA,EAAY,QAEEv7D,IAAZw7D,IACFA,EAAUvqD,KAAKva,QAGb46D,EAAQ,GAAKphB,EAAM35C,EAAOG,QAAU6kE,EAAY,GAAKC,EAAUvqD,KAAKva,OACtE,MAAM,IAAIigE,WAAW,sBAGvB,GAAI4E,GAAaC,GAAWlK,GAASphB,EACnC,OAAO,EAET,GAAIqrB,GAAaC,EACf,OAAQ,EAEV,GAAIlK,GAASphB,EACX,OAAO,EAQT,GAAIj/B,OAAS1a,EAAQ,OAAO,EAS5B,IAPA,IAAI0D,GAJJuhE,KAAa,IADbD,KAAe,GAMXN,GAPJ/qB,KAAS,IADTohB,KAAW,GASPz3D,EAAMyZ,KAAK8tB,IAAInnC,EAAGghE,GAElBQ,EAAWxqD,KAAKxX,MAAM8hE,EAAWC,GACjCE,EAAanlE,EAAOkD,MAAM63D,EAAOphB,GAE5B15C,EAAI,EAAGA,EAAIqD,IAAOrD,EACzB,GAAIilE,EAASjlE,KAAOklE,EAAWllE,GAAI,CACjCyD,EAAIwhE,EAASjlE,GACbykE,EAAIS,EAAWllE,GACf,KACF,CAGF,OAAIyD,EAAIghE,GAAW,EACfA,EAAIhhE,EAAU,EACX,CACT,EA4HAiW,EAAO3Y,UAAUiI,SAAW,SAAmBgmB,EAAK3U,EAAYe,GAC9D,OAAoD,IAA7CX,KAAKnZ,QAAQ0tB,EAAK3U,EAAYe,EACvC,EAEA1B,EAAO3Y,UAAUO,QAAU,SAAkB0tB,EAAK3U,EAAYe,GAC5D,OAAOumD,EAAqBlnD,KAAMuU,EAAK3U,EAAYe,GAAU,EAC/D,EAEA1B,EAAO3Y,UAAU+gE,YAAc,SAAsB9yC,EAAK3U,EAAYe,GACpE,OAAOumD,EAAqBlnD,KAAMuU,EAAK3U,EAAYe,GAAU,EAC/D,EAiDA1B,EAAO3Y,UAAU+c,MAAQ,SAAgBxY,EAAQqY,EAAQzd,EAAQkb,GAE/D,QAAe5R,IAAXmU,EACFvC,EAAW,OACXlb,EAASua,KAAKva,OACdyd,EAAS,OAEJ,QAAenU,IAAXtJ,GAA0C,kBAAXyd,EACxCvC,EAAWuC,EACXzd,EAASua,KAAKva,OACdyd,EAAS,MAEJ,KAAIwnD,SAASxnD,GAWlB,MAAM,IAAI7Y,MACR,2EAXF6Y,GAAkB,EACdwnD,SAASjlE,IACXA,GAAkB,OACDsJ,IAAb4R,IAAwBA,EAAW,UAEvCA,EAAWlb,EACXA,OAASsJ,EAOb,CAEA,IAAI2xB,EAAY1gB,KAAKva,OAASyd,EAG9B,SAFenU,IAAXtJ,GAAwBA,EAASi7B,KAAWj7B,EAASi7B,GAEpD71B,EAAOpF,OAAS,IAAMA,EAAS,GAAKyd,EAAS,IAAOA,EAASlD,KAAKva,OACrE,MAAM,IAAIigE,WAAW,0CAGlB/kD,IAAUA,EAAW,QAG1B,IADA,IAAI2lD,GAAc,IAEhB,OAAQ3lD,GACN,IAAK,MACH,OAAOinD,EAAS5nD,KAAMnV,EAAQqY,EAAQzd,GAExC,IAAK,OACL,IAAK,QACH,OAAOqiE,EAAU9nD,KAAMnV,EAAQqY,EAAQzd,GAEzC,IAAK,QACH,OAAOuiE,EAAWhoD,KAAMnV,EAAQqY,EAAQzd,GAE1C,IAAK,SACL,IAAK,SACH,OAAO0iE,EAAYnoD,KAAMnV,EAAQqY,EAAQzd,GAE3C,IAAK,SAEH,OAAO2iE,EAAYpoD,KAAMnV,EAAQqY,EAAQzd,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO4iE,EAAUroD,KAAMnV,EAAQqY,EAAQzd,GAEzC,QACE,GAAI6gE,EAAa,MAAM,IAAIx9D,UAAU,qBAAuB6X,GAC5DA,GAAY,GAAKA,GAAU7B,cAC3BwnD,GAAc,EAGtB,EAEArnD,EAAO3Y,UAAUk4B,OAAS,WACxB,MAAO,CACL7qB,KAAM,SACN4L,KAAM/X,MAAMlB,UAAUkC,MAAMvB,KAAK+Y,KAAKnY,MAAQmY,KAAM,GAExD,EAsFA,IAAImpD,EAAuB,KAoB3B,SAASvC,EAAYp0B,EAAK6tB,EAAOphB,GAC/B,IAAI0rB,EAAM,GACV1rB,EAAM58B,KAAK8tB,IAAIqC,EAAI/sC,OAAQw5C,GAE3B,IAAK,IAAI15C,EAAI86D,EAAO96D,EAAI05C,IAAO15C,EAC7BolE,GAAOr0C,OAAO8yC,aAAsB,IAAT52B,EAAIjtC,IAEjC,OAAOolE,CACT,CAEA,SAAS9D,EAAar0B,EAAK6tB,EAAOphB,GAChC,IAAI0rB,EAAM,GACV1rB,EAAM58B,KAAK8tB,IAAIqC,EAAI/sC,OAAQw5C,GAE3B,IAAK,IAAI15C,EAAI86D,EAAO96D,EAAI05C,IAAO15C,EAC7BolE,GAAOr0C,OAAO8yC,aAAa52B,EAAIjtC,IAEjC,OAAOolE,CACT,CAEA,SAASjE,EAAUl0B,EAAK6tB,EAAOphB,GAC7B,IAAIr2C,EAAM4pC,EAAI/sC,SAET46D,GAASA,EAAQ,KAAGA,EAAQ,KAC5BphB,GAAOA,EAAM,GAAKA,EAAMr2C,KAAKq2C,EAAMr2C,GAGxC,IADA,IAAI2Z,EAAM,GACDhd,EAAI86D,EAAO96D,EAAI05C,IAAO15C,EAC7Bgd,GAAO08C,EAAMzsB,EAAIjtC,IAEnB,OAAOgd,CACT,CAEA,SAASwkD,EAAcv0B,EAAK6tB,EAAOphB,GAGjC,IAFA,IAAI1e,EAAQiS,EAAIhqC,MAAM63D,EAAOphB,GACzBwb,EAAM,GACDl1D,EAAI,EAAGA,EAAIg7B,EAAM96B,OAAQF,GAAK,EACrCk1D,GAAOnkC,OAAO8yC,aAAa7oC,EAAMh7B,GAAoB,IAAfg7B,EAAMh7B,EAAI,IAElD,OAAOk1D,CACT,CAyCA,SAASmQ,EAAa1nD,EAAQ2nD,EAAKplE,GACjC,GAAKyd,EAAS,IAAO,GAAKA,EAAS,EAAG,MAAM,IAAIwiD,WAAW,sBAC3D,GAAIxiD,EAAS2nD,EAAMplE,EAAQ,MAAM,IAAIigE,WAAW,wCAClD,CA8JA,SAASoF,EAAUt4B,EAAKjsC,EAAO2c,EAAQ2nD,EAAKz6B,EAAKD,GAC/C,IAAKlxB,EAAO2gB,SAAS4S,GAAM,MAAM,IAAI1pC,UAAU,+CAC/C,GAAIvC,EAAQ6pC,GAAO7pC,EAAQ4pC,EAAK,MAAM,IAAIu1B,WAAW,qCACrD,GAAIxiD,EAAS2nD,EAAMr4B,EAAI/sC,OAAQ,MAAM,IAAIigE,WAAW,qBACtD,CAiDA,SAASqF,EAAmBv4B,EAAKjsC,EAAO2c,EAAQ8nD,GAC1CzkE,EAAQ,IAAGA,EAAQ,MAASA,EAAQ,GACxC,IAAK,IAAIhB,EAAI,EAAGoiE,EAAItlD,KAAK8tB,IAAIqC,EAAI/sC,OAASyd,EAAQ,GAAI3d,EAAIoiE,IAAKpiE,EAC7DitC,EAAItvB,EAAS3d,IAAMgB,EAAS,KAAS,GAAKykE,EAAezlE,EAAI,EAAIA,MAClC,GAA5BylE,EAAezlE,EAAI,EAAIA,EAE9B,CA4BA,SAAS0lE,EAAmBz4B,EAAKjsC,EAAO2c,EAAQ8nD,GAC1CzkE,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5C,IAAK,IAAIhB,EAAI,EAAGoiE,EAAItlD,KAAK8tB,IAAIqC,EAAI/sC,OAASyd,EAAQ,GAAI3d,EAAIoiE,IAAKpiE,EAC7DitC,EAAItvB,EAAS3d,GAAMgB,IAAuC,GAA5BykE,EAAezlE,EAAI,EAAIA,GAAU,GAEnE,CAiJA,SAAS2lE,EAAc14B,EAAKjsC,EAAO2c,EAAQ2nD,EAAKz6B,EAAKD,GACnD,GAAIjtB,EAAS2nD,EAAMr4B,EAAI/sC,OAAQ,MAAM,IAAIigE,WAAW,sBACpD,GAAIxiD,EAAS,EAAG,MAAM,IAAIwiD,WAAW,qBACvC,CAEA,SAASyF,EAAY34B,EAAKjsC,EAAO2c,EAAQ8nD,EAAcI,GAKrD,OAJKA,GACHF,EAAa14B,EAAKjsC,EAAO2c,EAAQ,GAEnCmiD,EAAQhiD,MAAMmvB,EAAKjsC,EAAO2c,EAAQ8nD,EAAc,GAAI,GAC7C9nD,EAAS,CAClB,CAUA,SAASmoD,EAAa74B,EAAKjsC,EAAO2c,EAAQ8nD,EAAcI,GAKtD,OAJKA,GACHF,EAAa14B,EAAKjsC,EAAO2c,EAAQ,GAEnCmiD,EAAQhiD,MAAMmvB,EAAKjsC,EAAO2c,EAAQ8nD,EAAc,GAAI,GAC7C9nD,EAAS,CAClB,CAhdAjE,EAAO3Y,UAAUkC,MAAQ,SAAgB63D,EAAOphB,GAC9C,IAoBIqsB,EApBA1iE,EAAMoX,KAAKva,OAqBf,IApBA46D,IAAUA,GAGE,GACVA,GAASz3D,GACG,IAAGy3D,EAAQ,GACdA,EAAQz3D,IACjBy3D,EAAQz3D,IANVq2C,OAAclwC,IAARkwC,EAAoBr2C,IAAQq2C,GASxB,GACRA,GAAOr2C,GACG,IAAGq2C,EAAM,GACVA,EAAMr2C,IACfq2C,EAAMr2C,GAGJq2C,EAAMohB,IAAOphB,EAAMohB,GAGnBphD,EAAOsmD,qBACT+F,EAAStrD,KAAKwpD,SAASnJ,EAAOphB,IACvB0mB,UAAY1mD,EAAO3Y,cACrB,CACL,IAAIilE,EAAWtsB,EAAMohB,EACrBiL,EAAS,IAAIrsD,EAAOssD,OAAUx8D,GAC9B,IAAK,IAAIxJ,EAAI,EAAGA,EAAIgmE,IAAYhmE,EAC9B+lE,EAAO/lE,GAAKya,KAAKza,EAAI86D,EAEzB,CAEA,OAAOiL,CACT,EAUArsD,EAAO3Y,UAAUklE,WAAa,SAAqBtoD,EAAQ1D,EAAY4rD,GACrEloD,GAAkB,EAClB1D,GAA0B,EACrB4rD,GAAUR,EAAY1nD,EAAQ1D,EAAYQ,KAAKva,QAKpD,IAHA,IAAI8uB,EAAMvU,KAAKkD,GACXuoD,EAAM,EACNlmE,EAAI,IACCA,EAAIia,IAAeisD,GAAO,MACjCl3C,GAAOvU,KAAKkD,EAAS3d,GAAKkmE,EAG5B,OAAOl3C,CACT,EAEAtV,EAAO3Y,UAAUolE,WAAa,SAAqBxoD,EAAQ1D,EAAY4rD,GACrEloD,GAAkB,EAClB1D,GAA0B,EACrB4rD,GACHR,EAAY1nD,EAAQ1D,EAAYQ,KAAKva,QAKvC,IAFA,IAAI8uB,EAAMvU,KAAKkD,IAAW1D,GACtBisD,EAAM,EACHjsD,EAAa,IAAMisD,GAAO,MAC/Bl3C,GAAOvU,KAAKkD,IAAW1D,GAAcisD,EAGvC,OAAOl3C,CACT,EAEAtV,EAAO3Y,UAAUi8B,UAAY,SAAoBrf,EAAQkoD,GAEvD,OADKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QACpCua,KAAKkD,EACd,EAEAjE,EAAO3Y,UAAUqlE,aAAe,SAAuBzoD,EAAQkoD,GAE7D,OADKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QACpCua,KAAKkD,GAAWlD,KAAKkD,EAAS,IAAM,CAC7C,EAEAjE,EAAO3Y,UAAUq8B,aAAe,SAAuBzf,EAAQkoD,GAE7D,OADKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QACnCua,KAAKkD,IAAW,EAAKlD,KAAKkD,EAAS,EAC7C,EAEAjE,EAAO3Y,UAAUslE,aAAe,SAAuB1oD,EAAQkoD,GAG7D,OAFKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,SAElCua,KAAKkD,GACTlD,KAAKkD,EAAS,IAAM,EACpBlD,KAAKkD,EAAS,IAAM,IACD,SAAnBlD,KAAKkD,EAAS,EACrB,EAEAjE,EAAO3Y,UAAU08B,aAAe,SAAuB9f,EAAQkoD,GAG7D,OAFKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QAEpB,SAAfua,KAAKkD,IACTlD,KAAKkD,EAAS,IAAM,GACrBlD,KAAKkD,EAAS,IAAM,EACrBlD,KAAKkD,EAAS,GAClB,EAEAjE,EAAO3Y,UAAUulE,UAAY,SAAoB3oD,EAAQ1D,EAAY4rD,GACnEloD,GAAkB,EAClB1D,GAA0B,EACrB4rD,GAAUR,EAAY1nD,EAAQ1D,EAAYQ,KAAKva,QAKpD,IAHA,IAAI8uB,EAAMvU,KAAKkD,GACXuoD,EAAM,EACNlmE,EAAI,IACCA,EAAIia,IAAeisD,GAAO,MACjCl3C,GAAOvU,KAAKkD,EAAS3d,GAAKkmE,EAM5B,OAFIl3C,IAFJk3C,GAAO,OAESl3C,GAAOlS,KAAKM,IAAI,EAAG,EAAInD,IAEhC+U,CACT,EAEAtV,EAAO3Y,UAAUwlE,UAAY,SAAoB5oD,EAAQ1D,EAAY4rD,GACnEloD,GAAkB,EAClB1D,GAA0B,EACrB4rD,GAAUR,EAAY1nD,EAAQ1D,EAAYQ,KAAKva,QAKpD,IAHA,IAAIF,EAAIia,EACJisD,EAAM,EACNl3C,EAAMvU,KAAKkD,IAAW3d,GACnBA,EAAI,IAAMkmE,GAAO,MACtBl3C,GAAOvU,KAAKkD,IAAW3d,GAAKkmE,EAM9B,OAFIl3C,IAFJk3C,GAAO,OAESl3C,GAAOlS,KAAKM,IAAI,EAAG,EAAInD,IAEhC+U,CACT,EAEAtV,EAAO3Y,UAAUk8B,SAAW,SAAmBtf,EAAQkoD,GAErD,OADKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QACtB,IAAfua,KAAKkD,IAC0B,GAA5B,IAAOlD,KAAKkD,GAAU,GADKlD,KAAKkD,EAE3C,EAEAjE,EAAO3Y,UAAUylE,YAAc,SAAsB7oD,EAAQkoD,GACtDA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QAC3C,IAAI8uB,EAAMvU,KAAKkD,GAAWlD,KAAKkD,EAAS,IAAM,EAC9C,OAAc,MAANqR,EAAsB,WAANA,EAAmBA,CAC7C,EAEAtV,EAAO3Y,UAAUm8B,YAAc,SAAsBvf,EAAQkoD,GACtDA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QAC3C,IAAI8uB,EAAMvU,KAAKkD,EAAS,GAAMlD,KAAKkD,IAAW,EAC9C,OAAc,MAANqR,EAAsB,WAANA,EAAmBA,CAC7C,EAEAtV,EAAO3Y,UAAU0lE,YAAc,SAAsB9oD,EAAQkoD,GAG3D,OAFKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QAEnCua,KAAKkD,GACVlD,KAAKkD,EAAS,IAAM,EACpBlD,KAAKkD,EAAS,IAAM,GACpBlD,KAAKkD,EAAS,IAAM,EACzB,EAEAjE,EAAO3Y,UAAU+5B,YAAc,SAAsBnd,EAAQkoD,GAG3D,OAFKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QAEnCua,KAAKkD,IAAW,GACrBlD,KAAKkD,EAAS,IAAM,GACpBlD,KAAKkD,EAAS,IAAM,EACpBlD,KAAKkD,EAAS,EACnB,EAEAjE,EAAO3Y,UAAU2lE,YAAc,SAAsB/oD,EAAQkoD,GAE3D,OADKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QACpC4/D,EAAQx+B,KAAK7mB,KAAMkD,GAAQ,EAAM,GAAI,EAC9C,EAEAjE,EAAO3Y,UAAU4lE,YAAc,SAAsBhpD,EAAQkoD,GAE3D,OADKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QACpC4/D,EAAQx+B,KAAK7mB,KAAMkD,GAAQ,EAAO,GAAI,EAC/C,EAEAjE,EAAO3Y,UAAU6lE,aAAe,SAAuBjpD,EAAQkoD,GAE7D,OADKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QACpC4/D,EAAQx+B,KAAK7mB,KAAMkD,GAAQ,EAAM,GAAI,EAC9C,EAEAjE,EAAO3Y,UAAU8lE,aAAe,SAAuBlpD,EAAQkoD,GAE7D,OADKA,GAAUR,EAAY1nD,EAAQ,EAAGlD,KAAKva,QACpC4/D,EAAQx+B,KAAK7mB,KAAMkD,GAAQ,EAAO,GAAI,EAC/C,EAQAjE,EAAO3Y,UAAU+lE,YAAc,SAAsB9lE,EAAO2c,EAAQ1D,EAAY4rD,IAC9E7kE,GAASA,EACT2c,GAAkB,EAClB1D,GAA0B,EACrB4rD,IAEHN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ1D,EADf6C,KAAKM,IAAI,EAAG,EAAInD,GAAc,EACO,GAGtD,IAAIisD,EAAM,EACNlmE,EAAI,EAER,IADAya,KAAKkD,GAAkB,IAAR3c,IACNhB,EAAIia,IAAeisD,GAAO,MACjCzrD,KAAKkD,EAAS3d,GAAMgB,EAAQklE,EAAO,IAGrC,OAAOvoD,EAAS1D,CAClB,EAEAP,EAAO3Y,UAAUgmE,YAAc,SAAsB/lE,EAAO2c,EAAQ1D,EAAY4rD,IAC9E7kE,GAASA,EACT2c,GAAkB,EAClB1D,GAA0B,EACrB4rD,IAEHN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ1D,EADf6C,KAAKM,IAAI,EAAG,EAAInD,GAAc,EACO,GAGtD,IAAIja,EAAIia,EAAa,EACjBisD,EAAM,EAEV,IADAzrD,KAAKkD,EAAS3d,GAAa,IAARgB,IACVhB,GAAK,IAAMkmE,GAAO,MACzBzrD,KAAKkD,EAAS3d,GAAMgB,EAAQklE,EAAO,IAGrC,OAAOvoD,EAAS1D,CAClB,EAEAP,EAAO3Y,UAAUimE,WAAa,SAAqBhmE,EAAO2c,EAAQkoD,GAMhE,OALA7kE,GAASA,EACT2c,GAAkB,EACbkoD,GAAUN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ,EAAG,IAAM,GACjDjE,EAAOsmD,sBAAqBh/D,EAAQ8b,KAAKC,MAAM/b,IACpDyZ,KAAKkD,GAAmB,IAAR3c,EACT2c,EAAS,CAClB,EAUAjE,EAAO3Y,UAAUkmE,cAAgB,SAAwBjmE,EAAO2c,EAAQkoD,GAUtE,OATA7kE,GAASA,EACT2c,GAAkB,EACbkoD,GAAUN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ,EAAG,MAAQ,GACpDjE,EAAOsmD,qBACTvlD,KAAKkD,GAAmB,IAAR3c,EAChByZ,KAAKkD,EAAS,GAAM3c,IAAU,GAE9BwkE,EAAkB/qD,KAAMzZ,EAAO2c,GAAQ,GAElCA,EAAS,CAClB,EAEAjE,EAAO3Y,UAAUmmE,cAAgB,SAAwBlmE,EAAO2c,EAAQkoD,GAUtE,OATA7kE,GAASA,EACT2c,GAAkB,EACbkoD,GAAUN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ,EAAG,MAAQ,GACpDjE,EAAOsmD,qBACTvlD,KAAKkD,GAAW3c,IAAU,EAC1ByZ,KAAKkD,EAAS,GAAc,IAAR3c,GAEpBwkE,EAAkB/qD,KAAMzZ,EAAO2c,GAAQ,GAElCA,EAAS,CAClB,EASAjE,EAAO3Y,UAAUomE,cAAgB,SAAwBnmE,EAAO2c,EAAQkoD,GAYtE,OAXA7kE,GAASA,EACT2c,GAAkB,EACbkoD,GAAUN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ,EAAG,WAAY,GACxDjE,EAAOsmD,qBACTvlD,KAAKkD,EAAS,GAAM3c,IAAU,GAC9ByZ,KAAKkD,EAAS,GAAM3c,IAAU,GAC9ByZ,KAAKkD,EAAS,GAAM3c,IAAU,EAC9ByZ,KAAKkD,GAAmB,IAAR3c,GAEhB0kE,EAAkBjrD,KAAMzZ,EAAO2c,GAAQ,GAElCA,EAAS,CAClB,EAEAjE,EAAO3Y,UAAUqmE,cAAgB,SAAwBpmE,EAAO2c,EAAQkoD,GAYtE,OAXA7kE,GAASA,EACT2c,GAAkB,EACbkoD,GAAUN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ,EAAG,WAAY,GACxDjE,EAAOsmD,qBACTvlD,KAAKkD,GAAW3c,IAAU,GAC1ByZ,KAAKkD,EAAS,GAAM3c,IAAU,GAC9ByZ,KAAKkD,EAAS,GAAM3c,IAAU,EAC9ByZ,KAAKkD,EAAS,GAAc,IAAR3c,GAEpB0kE,EAAkBjrD,KAAMzZ,EAAO2c,GAAQ,GAElCA,EAAS,CAClB,EAEAjE,EAAO3Y,UAAUsmE,WAAa,SAAqBrmE,EAAO2c,EAAQ1D,EAAY4rD,GAG5E,GAFA7kE,GAASA,EACT2c,GAAkB,GACbkoD,EAAU,CACb,IAAIyB,EAAQxqD,KAAKM,IAAI,EAAG,EAAInD,EAAa,GAEzCsrD,EAAS9qD,KAAMzZ,EAAO2c,EAAQ1D,EAAYqtD,EAAQ,GAAIA,EACxD,CAEA,IAAItnE,EAAI,EACJkmE,EAAM,EACNqB,EAAM,EAEV,IADA9sD,KAAKkD,GAAkB,IAAR3c,IACNhB,EAAIia,IAAeisD,GAAO,MAC7BllE,EAAQ,GAAa,IAARumE,GAAsC,IAAzB9sD,KAAKkD,EAAS3d,EAAI,KAC9CunE,EAAM,GAER9sD,KAAKkD,EAAS3d,IAAOgB,EAAQklE,GAAQ,GAAKqB,EAAM,IAGlD,OAAO5pD,EAAS1D,CAClB,EAEAP,EAAO3Y,UAAUymE,WAAa,SAAqBxmE,EAAO2c,EAAQ1D,EAAY4rD,GAG5E,GAFA7kE,GAASA,EACT2c,GAAkB,GACbkoD,EAAU,CACb,IAAIyB,EAAQxqD,KAAKM,IAAI,EAAG,EAAInD,EAAa,GAEzCsrD,EAAS9qD,KAAMzZ,EAAO2c,EAAQ1D,EAAYqtD,EAAQ,GAAIA,EACxD,CAEA,IAAItnE,EAAIia,EAAa,EACjBisD,EAAM,EACNqB,EAAM,EAEV,IADA9sD,KAAKkD,EAAS3d,GAAa,IAARgB,IACVhB,GAAK,IAAMkmE,GAAO,MACrBllE,EAAQ,GAAa,IAARumE,GAAsC,IAAzB9sD,KAAKkD,EAAS3d,EAAI,KAC9CunE,EAAM,GAER9sD,KAAKkD,EAAS3d,IAAOgB,EAAQklE,GAAQ,GAAKqB,EAAM,IAGlD,OAAO5pD,EAAS1D,CAClB,EAEAP,EAAO3Y,UAAU0mE,UAAY,SAAoBzmE,EAAO2c,EAAQkoD,GAO9D,OANA7kE,GAASA,EACT2c,GAAkB,EACbkoD,GAAUN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ,EAAG,KAAO,KAClDjE,EAAOsmD,sBAAqBh/D,EAAQ8b,KAAKC,MAAM/b,IAChDA,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtCyZ,KAAKkD,GAAmB,IAAR3c,EACT2c,EAAS,CAClB,EAEAjE,EAAO3Y,UAAU2mE,aAAe,SAAuB1mE,EAAO2c,EAAQkoD,GAUpE,OATA7kE,GAASA,EACT2c,GAAkB,EACbkoD,GAAUN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ,EAAG,OAAS,OACrDjE,EAAOsmD,qBACTvlD,KAAKkD,GAAmB,IAAR3c,EAChByZ,KAAKkD,EAAS,GAAM3c,IAAU,GAE9BwkE,EAAkB/qD,KAAMzZ,EAAO2c,GAAQ,GAElCA,EAAS,CAClB,EAEAjE,EAAO3Y,UAAU4mE,aAAe,SAAuB3mE,EAAO2c,EAAQkoD,GAUpE,OATA7kE,GAASA,EACT2c,GAAkB,EACbkoD,GAAUN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ,EAAG,OAAS,OACrDjE,EAAOsmD,qBACTvlD,KAAKkD,GAAW3c,IAAU,EAC1ByZ,KAAKkD,EAAS,GAAc,IAAR3c,GAEpBwkE,EAAkB/qD,KAAMzZ,EAAO2c,GAAQ,GAElCA,EAAS,CAClB,EAEAjE,EAAO3Y,UAAU6mE,aAAe,SAAuB5mE,EAAO2c,EAAQkoD,GAYpE,OAXA7kE,GAASA,EACT2c,GAAkB,EACbkoD,GAAUN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ,EAAG,YAAa,YACzDjE,EAAOsmD,qBACTvlD,KAAKkD,GAAmB,IAAR3c,EAChByZ,KAAKkD,EAAS,GAAM3c,IAAU,EAC9ByZ,KAAKkD,EAAS,GAAM3c,IAAU,GAC9ByZ,KAAKkD,EAAS,GAAM3c,IAAU,IAE9B0kE,EAAkBjrD,KAAMzZ,EAAO2c,GAAQ,GAElCA,EAAS,CAClB,EAEAjE,EAAO3Y,UAAU8mE,aAAe,SAAuB7mE,EAAO2c,EAAQkoD,GAapE,OAZA7kE,GAASA,EACT2c,GAAkB,EACbkoD,GAAUN,EAAS9qD,KAAMzZ,EAAO2c,EAAQ,EAAG,YAAa,YACzD3c,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GACxC0Y,EAAOsmD,qBACTvlD,KAAKkD,GAAW3c,IAAU,GAC1ByZ,KAAKkD,EAAS,GAAM3c,IAAU,GAC9ByZ,KAAKkD,EAAS,GAAM3c,IAAU,EAC9ByZ,KAAKkD,EAAS,GAAc,IAAR3c,GAEpB0kE,EAAkBjrD,KAAMzZ,EAAO2c,GAAQ,GAElCA,EAAS,CAClB,EAeAjE,EAAO3Y,UAAU+mE,aAAe,SAAuB9mE,EAAO2c,EAAQkoD,GACpE,OAAOD,EAAWnrD,KAAMzZ,EAAO2c,GAAQ,EAAMkoD,EAC/C,EAEAnsD,EAAO3Y,UAAUgnE,aAAe,SAAuB/mE,EAAO2c,EAAQkoD,GACpE,OAAOD,EAAWnrD,KAAMzZ,EAAO2c,GAAQ,EAAOkoD,EAChD,EAUAnsD,EAAO3Y,UAAUinE,cAAgB,SAAwBhnE,EAAO2c,EAAQkoD,GACtE,OAAOC,EAAYrrD,KAAMzZ,EAAO2c,GAAQ,EAAMkoD,EAChD,EAEAnsD,EAAO3Y,UAAUknE,cAAgB,SAAwBjnE,EAAO2c,EAAQkoD,GACtE,OAAOC,EAAYrrD,KAAMzZ,EAAO2c,GAAQ,EAAOkoD,EACjD,EAGAnsD,EAAO3Y,UAAUwmB,KAAO,SAAexnB,EAAQmoE,EAAapN,EAAOphB,GAQjE,GAPKohB,IAAOA,EAAQ,GACfphB,GAAe,IAARA,IAAWA,EAAMj/B,KAAKva,QAC9BgoE,GAAenoE,EAAOG,SAAQgoE,EAAcnoE,EAAOG,QAClDgoE,IAAaA,EAAc,GAC5BxuB,EAAM,GAAKA,EAAMohB,IAAOphB,EAAMohB,GAG9BphB,IAAQohB,EAAO,OAAO,EAC1B,GAAsB,IAAlB/6D,EAAOG,QAAgC,IAAhBua,KAAKva,OAAc,OAAO,EAGrD,GAAIgoE,EAAc,EAChB,MAAM,IAAI/H,WAAW,6BAEvB,GAAIrF,EAAQ,GAAKA,GAASrgD,KAAKva,OAAQ,MAAM,IAAIigE,WAAW,6BAC5D,GAAIzmB,EAAM,EAAG,MAAM,IAAIymB,WAAW,2BAG9BzmB,EAAMj/B,KAAKva,SAAQw5C,EAAMj/B,KAAKva,QAC9BH,EAAOG,OAASgoE,EAAcxuB,EAAMohB,IACtCphB,EAAM35C,EAAOG,OAASgoE,EAAcpN,GAGtC,IACI96D,EADAqD,EAAMq2C,EAAMohB,EAGhB,GAAIrgD,OAAS1a,GAAU+6D,EAAQoN,GAAeA,EAAcxuB,EAE1D,IAAK15C,EAAIqD,EAAM,EAAGrD,GAAK,IAAKA,EAC1BD,EAAOC,EAAIkoE,GAAeztD,KAAKza,EAAI86D,QAEhC,GAAIz3D,EAAM,MAASqW,EAAOsmD,oBAE/B,IAAKhgE,EAAI,EAAGA,EAAIqD,IAAOrD,EACrBD,EAAOC,EAAIkoE,GAAeztD,KAAKza,EAAI86D,QAGrC3gD,WAAWpZ,UAAUka,IAAIvZ,KACvB3B,EACA0a,KAAKwpD,SAASnJ,EAAOA,EAAQz3D,GAC7B6kE,GAIJ,OAAO7kE,CACT,EAMAqW,EAAO3Y,UAAUssC,KAAO,SAAere,EAAK8rC,EAAOphB,EAAKt+B,GAEtD,GAAmB,kBAAR4T,EAAkB,CAS3B,GARqB,kBAAV8rC,GACT1/C,EAAW0/C,EACXA,EAAQ,EACRphB,EAAMj/B,KAAKva,QACa,kBAARw5C,IAChBt+B,EAAWs+B,EACXA,EAAMj/B,KAAKva,QAEM,IAAf8uB,EAAI9uB,OAAc,CACpB,IAAI0jB,EAAOoL,EAAIkpC,WAAW,GACtBt0C,EAAO,MACToL,EAAMpL,EAEV,CACA,QAAiBpa,IAAb4R,GAA8C,kBAAbA,EACnC,MAAM,IAAI7X,UAAU,6BAEtB,GAAwB,kBAAb6X,IAA0B1B,EAAO+mD,WAAWrlD,GACrD,MAAM,IAAI7X,UAAU,qBAAuB6X,EAE/C,KAA0B,kBAAR4T,IAChBA,GAAY,KAId,GAAI8rC,EAAQ,GAAKrgD,KAAKva,OAAS46D,GAASrgD,KAAKva,OAASw5C,EACpD,MAAM,IAAIymB,WAAW,sBAGvB,GAAIzmB,GAAOohB,EACT,OAAOrgD,KAQT,IAAIza,EACJ,GANA86D,KAAkB,EAClBphB,OAAclwC,IAARkwC,EAAoBj/B,KAAKva,OAASw5C,IAAQ,EAE3C1qB,IAAKA,EAAM,GAGG,kBAARA,EACT,IAAKhvB,EAAI86D,EAAO96D,EAAI05C,IAAO15C,EACzBya,KAAKza,GAAKgvB,MAEP,CACL,IAAIgM,EAAQthB,EAAO2gB,SAASrL,GACxBA,EACAgyC,EAAY,IAAItnD,EAAOsV,EAAK5T,GAAUpY,YACtCK,EAAM23B,EAAM96B,OAChB,IAAKF,EAAI,EAAGA,EAAI05C,EAAMohB,IAAS96D,EAC7Bya,KAAKza,EAAI86D,GAAS9/B,EAAMh7B,EAAIqD,EAEhC,CAEA,OAAOoX,IACT,EAKA,IAAI0tD,EAAoB,qBAmBxB,SAASzO,EAAO32D,GACd,OAAIA,EAAI,GAAW,IAAMA,EAAEC,SAAS,IAC7BD,EAAEC,SAAS,GACpB,CAEA,SAASg+D,EAAa17D,EAAQy9D,GAE5B,IAAIU,EADJV,EAAQA,GAASqF,IAMjB,IAJA,IAAIloE,EAASoF,EAAOpF,OAChBmoE,EAAgB,KAChBrtC,EAAQ,GAEHh7B,EAAI,EAAGA,EAAIE,IAAUF,EAAG,CAI/B,IAHAyjE,EAAYn+D,EAAO4yD,WAAWl4D,IAGd,OAAUyjE,EAAY,MAAQ,CAE5C,IAAK4E,EAAe,CAElB,GAAI5E,EAAY,MAAQ,EAEjBV,GAAS,IAAM,GAAG/nC,EAAMp7B,KAAK,IAAM,IAAM,KAC9C,QACF,CAAO,GAAII,EAAI,IAAME,EAAQ,EAEtB6iE,GAAS,IAAM,GAAG/nC,EAAMp7B,KAAK,IAAM,IAAM,KAC9C,QACF,CAGAyoE,EAAgB5E,EAEhB,QACF,CAGA,GAAIA,EAAY,MAAQ,EACjBV,GAAS,IAAM,GAAG/nC,EAAMp7B,KAAK,IAAM,IAAM,KAC9CyoE,EAAgB5E,EAChB,QACF,CAGAA,EAAkE,OAArD4E,EAAgB,OAAU,GAAK5E,EAAY,MAC1D,MAAW4E,IAEJtF,GAAS,IAAM,GAAG/nC,EAAMp7B,KAAK,IAAM,IAAM,KAMhD,GAHAyoE,EAAgB,KAGZ5E,EAAY,IAAM,CACpB,IAAKV,GAAS,GAAK,EAAG,MACtB/nC,EAAMp7B,KAAK6jE,EACb,MAAO,GAAIA,EAAY,KAAO,CAC5B,IAAKV,GAAS,GAAK,EAAG,MACtB/nC,EAAMp7B,KACJ6jE,GAAa,EAAM,IACP,GAAZA,EAAmB,IAEvB,MAAO,GAAIA,EAAY,MAAS,CAC9B,IAAKV,GAAS,GAAK,EAAG,MACtB/nC,EAAMp7B,KACJ6jE,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAEvB,KAAO,MAAIA,EAAY,SASrB,MAAM,IAAI3+D,MAAM,sBARhB,IAAKi+D,GAAS,GAAK,EAAG,MACtB/nC,EAAMp7B,KACJ6jE,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAIvB,CACF,CAEA,OAAOzoC,CACT,CA2BA,SAASimC,EAAejzD,GACtB,OAAOqS,EAAOioD,YAhIhB,SAAsBt6D,GAIpB,IAFAA,EAUF,SAAqBA,GACnB,OAAIA,EAAI46C,KAAa56C,EAAI46C,OAClB56C,EAAI0S,QAAQ,aAAc,GACnC,CAbQ6nD,CAAWv6D,GAAK0S,QAAQynD,EAAmB,KAEzCjoE,OAAS,EAAG,MAAO,GAE3B,KAAO8N,EAAI9N,OAAS,IAAM,GACxB8N,GAAY,IAEd,OAAOA,CACT,CAsH4Bw6D,CAAYx6D,GACxC,CAEA,SAASw0D,EAAYiG,EAAKC,EAAK/qD,EAAQzd,GACrC,IAAK,IAAIF,EAAI,EAAGA,EAAIE,KACbF,EAAI2d,GAAU+qD,EAAIxoE,QAAYF,GAAKyoE,EAAIvoE,UADhBF,EAE5B0oE,EAAI1oE,EAAI2d,GAAU8qD,EAAIzoE,GAExB,OAAOA,CACT,aCnuDA,SAAS8lC,IACPrrB,KAAKwd,QAAUxd,KAAKwd,SAAW,CAAC,EAChCxd,KAAKkuD,cAAgBluD,KAAKkuD,oBAAiBn/D,CAC7C,CAuQA,SAASo/D,EAAW/uD,GAClB,MAAsB,oBAARA,CAChB,CAMA,SAASgvD,EAAShvD,GAChB,MAAsB,kBAARA,GAA4B,OAARA,CACpC,CAEA,SAASivD,EAAYjvD,GACnB,YAAe,IAARA,CACT,CApRA1G,EAAOpU,QAAU+mC,EAGjBA,EAAaA,aAAeA,EAE5BA,EAAa/kC,UAAUk3B,aAAUzuB,EACjCs8B,EAAa/kC,UAAU4nE,mBAAgBn/D,EAIvCs8B,EAAaijC,oBAAsB,GAInCjjC,EAAa/kC,UAAUioE,gBAAkB,SAASjmE,GAChD,GA4PsB,kBA5PRA,GAAMA,EAAI,GAAKw2C,MAAMx2C,GACjC,MAAMQ,UAAU,+BAElB,OADAkX,KAAKkuD,cAAgB5lE,EACd0X,IACT,EAEAqrB,EAAa/kC,UAAUkgC,KAAO,SAAS7yB,GACrC,IAAI66D,EAAIC,EAAS7lE,EAAK42C,EAAMj6C,EAAG+7C,EAM/B,GAJKthC,KAAKwd,UACRxd,KAAKwd,QAAU,CAAC,GAGL,UAAT7pB,KACGqM,KAAKwd,QAAQjoB,OACb64D,EAASpuD,KAAKwd,QAAQjoB,SAAWyK,KAAKwd,QAAQjoB,MAAM9P,QAAS,CAEhE,IADA+oE,EAAKhpE,UAAU,cACG6E,MAChB,MAAMmkE,EAGN,IAAItmE,EAAM,IAAImC,MAAM,yCAA2CmkE,EAAK,KAEpE,MADAtmE,EAAI4rC,QAAU06B,EACRtmE,CAEV,CAKF,GAAImmE,EAFJI,EAAUzuD,KAAKwd,QAAQ7pB,IAGrB,OAAO,EAET,GAAIw6D,EAAWM,GACb,OAAQjpE,UAAUC,QAEhB,KAAK,EACHgpE,EAAQxnE,KAAK+Y,MACb,MACF,KAAK,EACHyuD,EAAQxnE,KAAK+Y,KAAMxa,UAAU,IAC7B,MACF,KAAK,EACHipE,EAAQxnE,KAAK+Y,KAAMxa,UAAU,GAAIA,UAAU,IAC3C,MAEF,QACEg6C,EAAOh4C,MAAMlB,UAAUkC,MAAMvB,KAAKzB,UAAW,GAC7CipE,EAAQrpE,MAAM4a,KAAMw/B,QAEnB,GAAI4uB,EAASK,GAIlB,IAHAjvB,EAAOh4C,MAAMlB,UAAUkC,MAAMvB,KAAKzB,UAAW,GAE7CoD,GADA04C,EAAYmtB,EAAQjmE,SACJ/C,OACXF,EAAI,EAAGA,EAAIqD,EAAKrD,IACnB+7C,EAAU/7C,GAAGH,MAAM4a,KAAMw/B,GAG7B,OAAO,CACT,EAEAnU,EAAa/kC,UAAU05C,YAAc,SAASrsC,EAAM8yC,GAClD,IAAIwgB,EAEJ,IAAKkH,EAAW1nB,GACd,MAAM39C,UAAU,+BA2ClB,OAzCKkX,KAAKwd,UACRxd,KAAKwd,QAAU,CAAC,GAIdxd,KAAKwd,QAAQkxC,aACf1uD,KAAKwmB,KAAK,cAAe7yB,EACfw6D,EAAW1nB,EAASA,UACpBA,EAASA,SAAWA,GAE3BzmC,KAAKwd,QAAQ7pB,GAGTy6D,EAASpuD,KAAKwd,QAAQ7pB,IAE7BqM,KAAKwd,QAAQ7pB,GAAMxO,KAAKshD,GAGxBzmC,KAAKwd,QAAQ7pB,GAAQ,CAACqM,KAAKwd,QAAQ7pB,GAAO8yC,GAN1CzmC,KAAKwd,QAAQ7pB,GAAQ8yC,EASnB2nB,EAASpuD,KAAKwd,QAAQ7pB,MAAWqM,KAAKwd,QAAQ7pB,GAAMg7D,SAIpD1H,EAHGoH,EAAYruD,KAAKkuD,eAGhB7iC,EAAaijC,oBAFbtuD,KAAKkuD,gBAKFjH,EAAI,GAAKjnD,KAAKwd,QAAQ7pB,GAAMlO,OAASwhE,IAC5CjnD,KAAKwd,QAAQ7pB,GAAMg7D,QAAS,EAC5BngE,QAAQ+G,MAAM,mIAGAyK,KAAKwd,QAAQ7pB,GAAMlO,QACJ,oBAAlB+I,QAAQogE,OAEjBpgE,QAAQogE,SAKP5uD,IACT,EAEAqrB,EAAa/kC,UAAU+F,GAAKg/B,EAAa/kC,UAAU05C,YAEnD3U,EAAa/kC,UAAUuoE,KAAO,SAASl7D,EAAM8yC,GAC3C,IAAK0nB,EAAW1nB,GACd,MAAM39C,UAAU,+BAElB,IAAIgmE,GAAQ,EAEZ,SAASC,IACP/uD,KAAKqX,eAAe1jB,EAAMo7D,GAErBD,IACHA,GAAQ,EACRroB,EAASrhD,MAAM4a,KAAMxa,WAEzB,CAKA,OAHAupE,EAAEtoB,SAAWA,EACbzmC,KAAK3T,GAAGsH,EAAMo7D,GAEP/uD,IACT,EAGAqrB,EAAa/kC,UAAU+wB,eAAiB,SAAS1jB,EAAM8yC,GACrD,IAAIzrB,EAAMlZ,EAAUrc,EAAQF,EAE5B,IAAK4oE,EAAW1nB,GACd,MAAM39C,UAAU,+BAElB,IAAKkX,KAAKwd,UAAYxd,KAAKwd,QAAQ7pB,GACjC,OAAOqM,KAMT,GAHAva,GADAu1B,EAAOhb,KAAKwd,QAAQ7pB,IACNlO,OACdqc,GAAY,EAERkZ,IAASyrB,GACR0nB,EAAWnzC,EAAKyrB,WAAazrB,EAAKyrB,WAAaA,SAC3CzmC,KAAKwd,QAAQ7pB,GAChBqM,KAAKwd,QAAQnG,gBACfrX,KAAKwmB,KAAK,iBAAkB7yB,EAAM8yC,QAE/B,GAAI2nB,EAASpzC,GAAO,CACzB,IAAKz1B,EAAIE,EAAQF,KAAM,GACrB,GAAIy1B,EAAKz1B,KAAOkhD,GACXzrB,EAAKz1B,GAAGkhD,UAAYzrB,EAAKz1B,GAAGkhD,WAAaA,EAAW,CACvD3kC,EAAWvc,EACX,KACF,CAGF,GAAIuc,EAAW,EACb,OAAO9B,KAEW,IAAhBgb,EAAKv1B,QACPu1B,EAAKv1B,OAAS,SACPua,KAAKwd,QAAQ7pB,IAEpBqnB,EAAK6rB,OAAO/kC,EAAU,GAGpB9B,KAAKwd,QAAQnG,gBACfrX,KAAKwmB,KAAK,iBAAkB7yB,EAAM8yC,EACtC,CAEA,OAAOzmC,IACT,EAEAqrB,EAAa/kC,UAAU6vC,mBAAqB,SAASxiC,GACnD,IAAI/N,EAAK07C,EAET,IAAKthC,KAAKwd,QACR,OAAOxd,KAGT,IAAKA,KAAKwd,QAAQnG,eAKhB,OAJyB,IAArB7xB,UAAUC,OACZua,KAAKwd,QAAU,CAAC,EACTxd,KAAKwd,QAAQ7pB,WACbqM,KAAKwd,QAAQ7pB,GACfqM,KAIT,GAAyB,IAArBxa,UAAUC,OAAc,CAC1B,IAAKG,KAAOoa,KAAKwd,QACH,mBAAR53B,GACJoa,KAAKm2B,mBAAmBvwC,GAI1B,OAFAoa,KAAKm2B,mBAAmB,kBACxBn2B,KAAKwd,QAAU,CAAC,EACTxd,IACT,CAIA,GAAImuD,EAFJ7sB,EAAYthC,KAAKwd,QAAQ7pB,IAGvBqM,KAAKqX,eAAe1jB,EAAM2tC,QACrB,GAAIA,EAET,KAAOA,EAAU77C,QACfua,KAAKqX,eAAe1jB,EAAM2tC,EAAUA,EAAU77C,OAAS,IAI3D,cAFOua,KAAKwd,QAAQ7pB,GAEbqM,IACT,EAEAqrB,EAAa/kC,UAAUg7C,UAAY,SAAS3tC,GAQ1C,OANKqM,KAAKwd,SAAYxd,KAAKwd,QAAQ7pB,GAE1Bw6D,EAAWnuD,KAAKwd,QAAQ7pB,IACzB,CAACqM,KAAKwd,QAAQ7pB,IAEdqM,KAAKwd,QAAQ7pB,GAAMnL,QAJnB,EAMV,EAEA6iC,EAAa/kC,UAAU0oE,cAAgB,SAASr7D,GAC9C,GAAIqM,KAAKwd,QAAS,CAChB,IAAIyxC,EAAajvD,KAAKwd,QAAQ7pB,GAE9B,GAAIw6D,EAAWc,GACb,OAAO,EACJ,GAAIA,EACP,OAAOA,EAAWxpE,MACtB,CACA,OAAO,CACT,EAEA4lC,EAAa2jC,cAAgB,SAASxjC,EAAS73B,GAC7C,OAAO63B,EAAQwjC,cAAcr7D,EAC/B,aC7RA,IAAIpL,EAAW,CAAC,EAAEA,SAElBmQ,EAAOpU,QAAUkD,MAAMC,SAAW,SAAUN,GAC1C,MAA6B,kBAAtBoB,EAAStB,KAAKE,EACvB,8BCFAvC,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAAA,aAAkB,EAQlB,IAFA,IAAI4qE,EAAY,GAEP3pE,EAAI,EAAGA,EAAI,MAAOA,EACzB2pE,EAAU3pE,IAAMA,EAAI,KAAOgD,SAAS,IAAIu6B,OAAO,GAUjD,IAAIqsC,EAPJ,SAAqB38B,EAAKtvB,GACxB,IAAI3d,EAAI2d,GAAU,EACdksD,EAAMF,EAEV,MAAO,CAACE,EAAI58B,EAAIjtC,MAAO6pE,EAAI58B,EAAIjtC,MAAO6pE,EAAI58B,EAAIjtC,MAAO6pE,EAAI58B,EAAIjtC,MAAO,IAAK6pE,EAAI58B,EAAIjtC,MAAO6pE,EAAI58B,EAAIjtC,MAAO,IAAK6pE,EAAI58B,EAAIjtC,MAAO6pE,EAAI58B,EAAIjtC,MAAO,IAAK6pE,EAAI58B,EAAIjtC,MAAO6pE,EAAI58B,EAAIjtC,MAAO,IAAK6pE,EAAI58B,EAAIjtC,MAAO6pE,EAAI58B,EAAIjtC,MAAO6pE,EAAI58B,EAAIjtC,MAAO6pE,EAAI58B,EAAIjtC,MAAO6pE,EAAI58B,EAAIjtC,MAAO6pE,EAAI58B,EAAIjtC,OAAO+uB,KAAK,GACnR,EAGAhwB,EAAAA,QAAkB6qE,gCCRlBvqE,OAAOoB,eAAe1B,EAAS,KAAM,CACnCY,YAAY,EACZoT,IAAK,WACH,OAAO+2D,EAAIC,OACb,IASF,IAAIC,EAAKC,EAAuBz3D,EAAQ,QAEpC03D,EAAMD,EAAuBz3D,EAAQ,QAErCs3D,EAAMG,EAAuBz3D,EAAQ,QAErC23D,EAAMF,EAAuBz3D,EAAQ,QAEzC,SAASy3D,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,8BCkJ9F,SAASypE,EAAQ3mE,EAAGghE,GAClB,IAAI4F,GAAW,MAAJ5mE,IAAmB,MAAJghE,GAE1B,OADWhhE,GAAK,KAAOghE,GAAK,KAAO4F,GAAO,KAC5B,GAAW,MAANA,CACrB,CAcA,SAASC,EAAO3uD,EAAGC,EAAGC,EAAGpY,EAAGqY,EAAGC,GAC7B,OAAOquD,GATcG,EASQH,EAAQA,EAAQxuD,EAAGD,GAAIyuD,EAAQ3mE,EAAGsY,OATrCyuD,EAS0C1uD,GARhDyuD,IAAQ,GAAKC,EAQuC3uD,GAT1E,IAAuB0uD,EAAKC,CAU5B,CAEA,SAASC,EAAM7uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAGqY,EAAGC,GAC/B,OAAOuuD,EAAOzuD,EAAII,GAAKJ,EAAIK,EAAGN,EAAGC,EAAGpY,EAAGqY,EAAGC,EAC5C,CAEA,SAAS2uD,EAAM9uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAGqY,EAAGC,GAC/B,OAAOuuD,EAAOzuD,EAAIK,EAAID,GAAKC,EAAGN,EAAGC,EAAGpY,EAAGqY,EAAGC,EAC5C,CAEA,SAAS4uD,EAAM/uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAGqY,EAAGC,GAC/B,OAAOuuD,EAAOzuD,EAAII,EAAIC,EAAGN,EAAGC,EAAGpY,EAAGqY,EAAGC,EACvC,CAEA,SAAS6uD,EAAMhvD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAGqY,EAAGC,GAC/B,OAAOuuD,EAAOruD,GAAKJ,GAAKK,GAAIN,EAAGC,EAAGpY,EAAGqY,EAAGC,EAC1C,CA1NA1c,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAAA,aAAkB,EAyNlB,IAAI6qE,EAnMJ,SAAa5uC,GACX,GAAoB,iBAATA,EAAmB,CAC5B,IAAIrX,EAAMknD,SAAS9S,mBAAmB/8B,IAEtCA,EAAQ,IAAI/4B,MAAM0hB,EAAIzjB,QAEtB,IAAK,IAAIF,EAAI,EAAGA,EAAI2jB,EAAIzjB,OAAQF,IAAKg7B,EAAMh7B,GAAK2jB,EAAIu0C,WAAWl4D,EACjE,CAEA,OAOF,SAA8B6a,GAC5B,IAAI7a,EACAyD,EAIAqnE,EAHAt0C,EAAS,GACTu0C,EAA0B,GAAflwD,EAAM3a,OACjB8qE,EAAS,mBAGb,IAAKhrE,EAAI,EAAGA,EAAI+qE,EAAU/qE,GAAK,EAC7ByD,EAAIoX,EAAM7a,GAAK,KAAOA,EAAI,GAAK,IAC/B8qE,EAAMtvC,SAASwvC,EAAO/8D,OAAOxK,IAAM,EAAI,IAAQunE,EAAO/8D,OAAW,GAAJxK,GAAW,IACxE+yB,EAAO52B,KAAKkrE,GAGd,OAAOt0C,CACT,CAtBSy0C,CA4BT,SAAoBxnE,EAAGJ,GAIrB,IAAIrD,EACAkrE,EACAC,EACAC,EACAC,EANJ5nE,EAAEJ,GAAO,IAAM,KAAQA,EAAM,GAC7BI,EAA0B,IAAvBJ,EAAM,KAAO,GAAK,IAAWA,EAMhC,IAAIuY,EAAI,WACJC,GAAK,UACLI,GAAK,WACLC,EAAI,UAER,IAAKlc,EAAI,EAAGA,EAAIyD,EAAEvD,OAAQF,GAAK,GAC7BkrE,EAAOtvD,EACPuvD,EAAOtvD,EACPuvD,EAAOnvD,EACPovD,EAAOnvD,EACPN,EAAI6uD,EAAM7uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,GAAI,GAAI,WAChCkc,EAAIuuD,EAAMvuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,GAAI,IAAK,WACrCic,EAAIwuD,EAAMxuD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,GAAI,GAAI,WACpC6b,EAAI4uD,EAAM5uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,GAAI,IAAK,YACrC4b,EAAI6uD,EAAM7uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,GAAI,GAAI,WACpCkc,EAAIuuD,EAAMvuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,GAAI,GAAI,YACpCic,EAAIwuD,EAAMxuD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,GAAI,IAAK,YACrC6b,EAAI4uD,EAAM5uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,GAAI,IAAK,UACrC4b,EAAI6uD,EAAM7uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,GAAI,EAAG,YACnCkc,EAAIuuD,EAAMvuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,GAAI,IAAK,YACrCic,EAAIwuD,EAAMxuD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,IAAK,IAAK,OACtC6b,EAAI4uD,EAAM5uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,IAAK,IAAK,YACtC4b,EAAI6uD,EAAM7uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,IAAK,EAAG,YACpCkc,EAAIuuD,EAAMvuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,IAAK,IAAK,UACtCic,EAAIwuD,EAAMxuD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,IAAK,IAAK,YAEtC4b,EAAI8uD,EAAM9uD,EADVC,EAAI4uD,EAAM5uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,IAAK,GAAI,YACrBic,EAAGC,EAAGzY,EAAEzD,EAAI,GAAI,GAAI,WACpCkc,EAAIwuD,EAAMxuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,GAAI,GAAI,YACpCic,EAAIyuD,EAAMzuD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,IAAK,GAAI,WACrC6b,EAAI6uD,EAAM7uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,GAAI,IAAK,WACjC4b,EAAI8uD,EAAM9uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,GAAI,GAAI,WACpCkc,EAAIwuD,EAAMxuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,IAAK,EAAG,UACpCic,EAAIyuD,EAAMzuD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,IAAK,IAAK,WACtC6b,EAAI6uD,EAAM7uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,GAAI,IAAK,WACrC4b,EAAI8uD,EAAM9uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,GAAI,EAAG,WACnCkc,EAAIwuD,EAAMxuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,IAAK,GAAI,YACrCic,EAAIyuD,EAAMzuD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,GAAI,IAAK,WACrC6b,EAAI6uD,EAAM7uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,GAAI,GAAI,YACpC4b,EAAI8uD,EAAM9uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,IAAK,GAAI,YACrCkc,EAAIwuD,EAAMxuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,GAAI,GAAI,UACpCic,EAAIyuD,EAAMzuD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,GAAI,GAAI,YAEpC4b,EAAI+uD,EAAM/uD,EADVC,EAAI6uD,EAAM7uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,IAAK,IAAK,YACtBic,EAAGC,EAAGzY,EAAEzD,EAAI,GAAI,GAAI,QACpCkc,EAAIyuD,EAAMzuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,GAAI,IAAK,YACrCic,EAAI0uD,EAAM1uD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,IAAK,GAAI,YACrC6b,EAAI8uD,EAAM9uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,IAAK,IAAK,UACtC4b,EAAI+uD,EAAM/uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,GAAI,GAAI,YACpCkc,EAAIyuD,EAAMzuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,GAAI,GAAI,YACpCic,EAAI0uD,EAAM1uD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,GAAI,IAAK,WACrC6b,EAAI8uD,EAAM9uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,IAAK,IAAK,YACtC4b,EAAI+uD,EAAM/uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,IAAK,EAAG,WACpCkc,EAAIyuD,EAAMzuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,GAAI,IAAK,WACjCic,EAAI0uD,EAAM1uD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,GAAI,IAAK,WACrC6b,EAAI8uD,EAAM9uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,GAAI,GAAI,UACpC4b,EAAI+uD,EAAM/uD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,GAAI,GAAI,WACpCkc,EAAIyuD,EAAMzuD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,IAAK,IAAK,WACtCic,EAAI0uD,EAAM1uD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,IAAK,GAAI,WAErC4b,EAAIgvD,EAAMhvD,EADVC,EAAI8uD,EAAM9uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,GAAI,IAAK,WACrBic,EAAGC,EAAGzY,EAAEzD,GAAI,GAAI,WAChCkc,EAAI0uD,EAAM1uD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,GAAI,GAAI,YACpCic,EAAI2uD,EAAM3uD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,IAAK,IAAK,YACtC6b,EAAI+uD,EAAM/uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,GAAI,IAAK,UACrC4b,EAAIgvD,EAAMhvD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,IAAK,EAAG,YACpCkc,EAAI0uD,EAAM1uD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,GAAI,IAAK,YACrCic,EAAI2uD,EAAM3uD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,IAAK,IAAK,SACtC6b,EAAI+uD,EAAM/uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,GAAI,IAAK,YACrC4b,EAAIgvD,EAAMhvD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,GAAI,EAAG,YACnCkc,EAAI0uD,EAAM1uD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,IAAK,IAAK,UACtCic,EAAI2uD,EAAM3uD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,GAAI,IAAK,YACrC6b,EAAI+uD,EAAM/uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,IAAK,GAAI,YACrC4b,EAAIgvD,EAAMhvD,EAAGC,EAAGI,EAAGC,EAAGzY,EAAEzD,EAAI,GAAI,GAAI,WACpCkc,EAAI0uD,EAAM1uD,EAAGN,EAAGC,EAAGI,EAAGxY,EAAEzD,EAAI,IAAK,IAAK,YACtCic,EAAI2uD,EAAM3uD,EAAGC,EAAGN,EAAGC,EAAGpY,EAAEzD,EAAI,GAAI,GAAI,WACpC6b,EAAI+uD,EAAM/uD,EAAGI,EAAGC,EAAGN,EAAGnY,EAAEzD,EAAI,GAAI,IAAK,WACrC4b,EAAIwuD,EAAQxuD,EAAGsvD,GACfrvD,EAAIuuD,EAAQvuD,EAAGsvD,GACflvD,EAAImuD,EAAQnuD,EAAGmvD,GACflvD,EAAIkuD,EAAQluD,EAAGmvD,GAGjB,MAAO,CAACzvD,EAAGC,EAAGI,EAAGC,EACnB,CAtH8BovD,CA6H9B,SAAsBzwD,GACpB,IAAI7a,EACAw2B,EAAS,GAGb,IAFAA,GAAQ3b,EAAM3a,QAAU,GAAK,QAAKsJ,EAE7BxJ,EAAI,EAAGA,EAAIw2B,EAAOt2B,OAAQF,GAAK,EAClCw2B,EAAOx2B,GAAK,EAGd,IAAIurE,EAAyB,EAAf1wD,EAAM3a,OAEpB,IAAKF,EAAI,EAAGA,EAAIurE,EAASvrE,GAAK,EAC5Bw2B,EAAOx2B,GAAK,KAAsB,IAAf6a,EAAM7a,EAAI,KAAcA,EAAI,GAGjD,OAAOw2B,CACT,CA7IyCg1C,CAAaxwC,GAAuB,EAAfA,EAAM96B,QACpE,EA0LAnB,EAAAA,QAAkB6qE,8BC7NlBvqE,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAAA,QASA,WACE,IAAK0sE,EACH,MAAM,IAAI3mE,MAAM,4GAGlB,OAAO2mE,EAAgBC,EACzB,EATA,IAAID,EAAmC,oBAAVjsD,QAAyBA,OAAOisD,iBAAmBjsD,OAAOisD,gBAAgBE,KAAKnsD,SAA8B,oBAAZosD,UAA8D,mBAA5BA,SAASH,iBAAiCG,SAASH,gBAAgBE,KAAKC,UACpOF,EAAQ,IAAIvxD,WAAW,gCCH3B,SAASgE,EAAErC,EAAGrY,EAAGghE,EAAGoH,GAClB,OAAQ/vD,GACN,KAAK,EACH,OAAOrY,EAAIghE,GAAKhhE,EAAIooE,EAEtB,KAAK,EAML,KAAK,EACH,OAAOpoE,EAAIghE,EAAIoH,EAJjB,KAAK,EACH,OAAOpoE,EAAIghE,EAAIhhE,EAAIooE,EAAIpH,EAAIoH,EAKjC,CAEA,SAASC,EAAKroE,EAAGV,GACf,OAAOU,GAAKV,EAAIU,IAAM,GAAKV,CAC7B,CAzBA1D,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAAA,aAAkB,EAwFlB,IAAI6qE,EAhEJ,SAAc5uC,GACZ,IAAI+wC,EAAI,CAAC,WAAY,WAAY,WAAY,YACzCC,EAAI,CAAC,WAAY,WAAY,WAAY,UAAY,YAEzD,GAAoB,iBAAThxC,EAAmB,CAC5B,IAAIrX,EAAMknD,SAAS9S,mBAAmB/8B,IAEtCA,EAAQ,IAAI/4B,MAAM0hB,EAAIzjB,QAEtB,IAAK,IAAIF,EAAI,EAAGA,EAAI2jB,EAAIzjB,OAAQF,IAAKg7B,EAAMh7B,GAAK2jB,EAAIu0C,WAAWl4D,EACjE,CAEAg7B,EAAMp7B,KAAK,KACX,IAAIyI,EAAI2yB,EAAM96B,OAAS,EAAI,EACvBi2B,EAAIrZ,KAAKwhC,KAAKj2C,EAAI,IAClBgtB,EAAI,IAAIpzB,MAAMk0B,GAElB,IAASn2B,EAAI,EAAGA,EAAIm2B,EAAGn2B,IAAK,CAC1Bq1B,EAAEr1B,GAAK,IAAIiC,MAAM,IAEjB,IAAK,IAAImgE,EAAI,EAAGA,EAAI,GAAIA,IACtB/sC,EAAEr1B,GAAGoiE,GAAKpnC,EAAU,GAAJh7B,EAAa,EAAJoiE,IAAU,GAAKpnC,EAAU,GAAJh7B,EAAa,EAAJoiE,EAAQ,IAAM,GAAKpnC,EAAU,GAAJh7B,EAAa,EAAJoiE,EAAQ,IAAM,EAAIpnC,EAAU,GAAJh7B,EAAa,EAAJoiE,EAAQ,EAEtI,CAMA,IAJA/sC,EAAEc,EAAI,GAAG,IAA2B,GAApB6E,EAAM96B,OAAS,GAAS4c,KAAKM,IAAI,EAAG,IACpDiY,EAAEc,EAAI,GAAG,IAAMrZ,KAAKC,MAAMsY,EAAEc,EAAI,GAAG,KACnCd,EAAEc,EAAI,GAAG,IAA2B,GAApB6E,EAAM96B,OAAS,GAAS,WAE/BF,EAAI,EAAGA,EAAIm2B,EAAGn2B,IAAK,CAG1B,IAFA,IAAIisE,EAAI,IAAIhqE,MAAM,IAET8Z,EAAI,EAAGA,EAAI,GAAIA,IAAKkwD,EAAElwD,GAAKsZ,EAAEr1B,GAAG+b,GAEzC,IAASA,EAAI,GAAIA,EAAI,GAAIA,IACvBkwD,EAAElwD,GAAK+vD,EAAKG,EAAElwD,EAAI,GAAKkwD,EAAElwD,EAAI,GAAKkwD,EAAElwD,EAAI,IAAMkwD,EAAElwD,EAAI,IAAK,GAG3D,IAAIH,EAAIowD,EAAE,GACNnwD,EAAImwD,EAAE,GACN/vD,EAAI+vD,EAAE,GACN9vD,EAAI8vD,EAAE,GACNh7D,EAAIg7D,EAAE,GAEV,IAASjwD,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAID,EAAIgB,KAAKC,MAAMhB,EAAI,IACnBmwD,EAAIJ,EAAKlwD,EAAG,GAAKuC,EAAErC,EAAGD,EAAGI,EAAGC,GAAKlL,EAAI+6D,EAAEjwD,GAAKmwD,EAAElwD,KAAO,EACzD/K,EAAIkL,EACJA,EAAID,EACJA,EAAI6vD,EAAKjwD,EAAG,MAAQ,EACpBA,EAAID,EACJA,EAAIswD,CACN,CAEAF,EAAE,GAAKA,EAAE,GAAKpwD,IAAM,EACpBowD,EAAE,GAAKA,EAAE,GAAKnwD,IAAM,EACpBmwD,EAAE,GAAKA,EAAE,GAAK/vD,IAAM,EACpB+vD,EAAE,GAAKA,EAAE,GAAK9vD,IAAM,EACpB8vD,EAAE,GAAKA,EAAE,GAAKh7D,IAAM,CACtB,CAEA,MAAO,CAACg7D,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GACxV,EAGAjtE,EAAAA,QAAkB6qE,gCC5FlBvqE,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAAA,aAAkB,EAElB,IAUIotE,EAEAC,EAZAC,EAAOpC,EAAuBz3D,EAAQ,QAEtC85D,EAAerC,EAAuBz3D,EAAQ,QAElD,SAASy3D,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAW9F,IAAI4rE,EAAa,EACbC,EAAa,EAkFjB,IAAI5C,EAhFJ,SAAYlhE,EAASukC,EAAKtvB,GACxB,IAAI3d,EAAIitC,GAAOtvB,GAAU,EACrB9B,EAAIoxB,GAAO,GAEXpnC,GADJ6C,EAAUA,GAAW,CAAC,GACH7C,MAAQsmE,EACvBM,OAAgCjjE,IAArBd,EAAQ+jE,SAAyB/jE,EAAQ+jE,SAAWL,EAInE,GAAY,MAARvmE,GAA4B,MAAZ4mE,EAAkB,CACpC,IAAIC,EAAYhkE,EAAQ4yD,SAAW5yD,EAAQikE,KAAON,EAAKtC,WAE3C,MAARlkE,IAEFA,EAAOsmE,EAAU,CAAgB,EAAfO,EAAU,GAAWA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,KAG3F,MAAZD,IAEFA,EAAWL,EAAiD,OAApCM,EAAU,IAAM,EAAIA,EAAU,IAE1D,CAMA,IAAIE,OAA0BpjE,IAAlBd,EAAQkkE,MAAsBlkE,EAAQkkE,OAAQ,IAAI/hD,MAAOF,UAGjEkiD,OAA0BrjE,IAAlBd,EAAQmkE,MAAsBnkE,EAAQmkE,MAAQL,EAAa,EAEnEM,EAAKF,EAAQL,GAAcM,EAAQL,GAAc,IAarD,GAXIM,EAAK,QAA0BtjE,IAArBd,EAAQ+jE,WACpBA,EAAWA,EAAW,EAAI,QAKvBK,EAAK,GAAKF,EAAQL,SAAiC/iE,IAAlBd,EAAQmkE,QAC5CA,EAAQ,GAINA,GAAS,IACX,MAAM,IAAI/nE,MAAM,mDAGlBynE,EAAaK,EACbJ,EAAaK,EACbT,EAAYK,EAIZ,IAAIM,GAA4B,KAAb,WAFnBH,GAAS,cAE+BC,GAAS,WACjDhxD,EAAE7b,KAAO+sE,IAAO,GAAK,IACrBlxD,EAAE7b,KAAO+sE,IAAO,GAAK,IACrBlxD,EAAE7b,KAAO+sE,IAAO,EAAI,IACpBlxD,EAAE7b,KAAY,IAAL+sE,EAET,IAAIC,EAAMJ,EAAQ,WAAc,IAAQ,UACxC/wD,EAAE7b,KAAOgtE,IAAQ,EAAI,IACrBnxD,EAAE7b,KAAa,IAANgtE,EAETnxD,EAAE7b,KAAOgtE,IAAQ,GAAK,GAAM,GAE5BnxD,EAAE7b,KAAOgtE,IAAQ,GAAK,IAEtBnxD,EAAE7b,KAAOysE,IAAa,EAAI,IAE1B5wD,EAAE7b,KAAkB,IAAXysE,EAET,IAAK,IAAI1pE,EAAI,EAAGA,EAAI,IAAKA,EACvB8Y,EAAE7b,EAAI+C,GAAK8C,EAAK9C,GAGlB,OAAOkqC,IAAY,EAAIq/B,EAAavC,SAASluD,EAC/C,EAGA9c,EAAAA,QAAkB6qE,gCCxGlBvqE,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAAA,aAAkB,EAElB,IAAIirE,EAAKC,EAAuBz3D,EAAQ,QAEpCy6D,EAAMhD,EAAuBz3D,EAAQ,QAEzC,SAASy3D,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAG9F,IAAIipE,GADO,EAAII,EAAGD,SAAS,KAAM,GAAMkD,EAAIlD,SAE3ChrE,EAAAA,QAAkB6qE,gCCblBvqE,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAAA,QAiCA,SAAkBmE,EAAMiH,EAAS+iE,GAC/B,IAAIC,EAAe,SAAUnsE,EAAOosE,EAAWngC,EAAKtvB,GAClD,IAAI5W,EAAMkmC,GAAOtvB,GAAU,EAG3B,GAFoB,iBAAT3c,IAAmBA,EApBlC,SAAuBgN,GACrBA,EAAM68D,SAAS9S,mBAAmB/pD,IAIlC,IAFA,IAAIgtB,EAAQ,IAAI/4B,MAAM+L,EAAI9N,QAEjBF,EAAI,EAAGA,EAAIgO,EAAI9N,OAAQF,IAC9Bg7B,EAAMh7B,GAAKgO,EAAIkqD,WAAWl4D,GAG5B,OAAOg7B,CACT,CAU0CqyC,CAAcrsE,IAC5B,iBAAbosE,IAAuBA,EA9BtC,SAAqBzuC,GAEnB,IAAI3D,EAAQ,GAIZ,OAHA2D,EAAKje,QAAQ,mBAAmB,SAAUoqD,GACxC9vC,EAAMp7B,KAAK47B,SAASsvC,EAAK,IAC3B,IACO9vC,CACT,CAuBkDsyC,CAAYF,KACrDnrE,MAAMC,QAAQlB,GAAQ,MAAMuC,UAAU,mCAC3C,IAAKtB,MAAMC,QAAQkrE,IAAmC,KAArBA,EAAUltE,OAAe,MAAMqD,UAAU,+DAE1E,IAAIy3B,EAAQkyC,EAASE,EAAUjkE,OAAOnI,IAItC,GAHAg6B,EAAM,GAAgB,GAAXA,EAAM,GAAY7wB,EAC7B6wB,EAAM,GAAgB,GAAXA,EAAM,GAAY,IAEzBiS,EACF,IAAK,IAAI2sB,EAAM,EAAGA,EAAM,KAAMA,EAC5B3sB,EAAIlmC,EAAM6yD,GAAO5+B,EAAM4+B,GAI3B,OAAO3sB,IAAO,EAAIq/B,EAAavC,SAAS/uC,EAC1C,EAGA,IACEmyC,EAAajqE,KAAOA,CACtB,CAAE,MAAOP,GAAM,CAKf,OAFAwqE,EAAaI,IAAMA,EACnBJ,EAAaK,IAAMA,EACZL,CACT,EA9DApuE,EAAQyuE,IAAMzuE,EAAQwuE,SAAM,EAE5B,IAEgC5sE,EAF5B2rE,GAE4B3rE,EAFU6R,EAAQ,SAEG7R,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,GAuBvF,MAAM4sE,EAAM,uCACZxuE,EAAQwuE,IAAMA,EACd,MAAMC,EAAM,uCACZzuE,EAAQyuE,IAAMA,gCClCdnuE,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAAA,aAAkB,EAElB,IAAIstE,EAAOpC,EAAuBz3D,EAAQ,QAEtC85D,EAAerC,EAAuBz3D,EAAQ,QAElD,SAASy3D,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CA2B9F,IAAIipE,EAzBJ,SAAYlhE,EAASukC,EAAKtvB,GACxB,IAAI3d,EAAIitC,GAAOtvB,GAAU,EAEH,iBAAXjV,IACTukC,EAAkB,WAAZvkC,EAAuB,IAAIzG,MAAM,IAAM,KAC7CyG,EAAU,MAKZ,IAAI+kE,GAFJ/kE,EAAUA,GAAW,CAAC,GAEH4yD,SAAW5yD,EAAQikE,KAAON,EAAKtC,WAMlD,GAHA0D,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBxgC,EACF,IAAK,IAAI5wB,EAAK,EAAGA,EAAK,KAAMA,EAC1B4wB,EAAIjtC,EAAIqc,GAAMoxD,EAAKpxD,GAIvB,OAAO4wB,IAAO,EAAIq/B,EAAavC,SAAS0D,EAC1C,EAGA1uE,EAAAA,QAAkB6qE,gCCrClBvqE,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAAA,aAAkB,EAElB,IAAIirE,EAAKC,EAAuBz3D,EAAQ,QAEpCk7D,EAAOzD,EAAuBz3D,EAAQ,QAE1C,SAASy3D,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAG9F,IAAIipE,GADO,EAAII,EAAGD,SAAS,KAAM,GAAM2D,EAAK3D,SAE5ChrE,EAAAA,QAAkB6qE,gCCblB,IAAI+D,EAAQn7D,EAAQ,OAKhBqX,EAA+B,WAC/B,SAASA,EAAc+jD,QACH,IAAZA,IAAsBA,EANjB,KAOTnzD,KAAKmzD,QAAUA,EACfnzD,KAAKozD,MAAQ,IAAIF,EAAMG,SAASF,EACpC,CAyDA,OAvDAvuE,OAAOoB,eAAeopB,EAAc9oB,UAAW,OAAQ,CACnDgS,IAAK,WACD,OAAO0H,KAAKozD,MAAM3tE,MACtB,EACAP,YAAY,EACZsB,cAAc,IAElB4oB,EAAc9oB,UAAUoxB,IAAM,SAAU9xB,EAAKW,GAC3C,IAAI+sE,EAA2B,kBAAR1tE,EAAmBwpB,EAAc8I,aAAatyB,GAAOA,EACtE2tE,EAAiBvzD,KAAKwzD,cAAcjtE,GACxCyZ,KAAKozD,MAAM17C,IAAI47C,EAAWC,EAC9B,EACAnkD,EAAc9oB,UAAUgS,IAAM,SAAU1S,GACtC,IAAI0tE,EAA2B,kBAAR1tE,EAAmBwpB,EAAc8I,aAAatyB,GAAOA,EACtE+0C,EAAMvqB,KAAKuqB,MACX84B,EAAUzzD,KAAKozD,MAAM96D,IAAIg7D,GAC7B,GAAIG,EAAS,CACT,IAAK,IAAIluE,EAAIkuE,EAAQhuE,OAAO,EAAGF,GAAK,EAAGA,IAAK,CAC3BkuE,EAAQluE,GACVmuE,OAAS/4B,GAChB84B,EAAQ5sB,OAAOthD,EAAG,EAE1B,CACA,GAAuB,IAAnBkuE,EAAQhuE,OAER,YADAua,KAAKozD,MAAM/6C,OAAOi7C,EAG1B,CACA,OAAOG,CACX,EACArkD,EAAc8I,aAAe,SAAUtyB,GAGnC,IAFA,IAAIgwB,EAAc,GACd+9C,EAAkB/uE,OAAOD,KAAKiB,GAAK4yC,OAC9BjzC,EAAI,EAAGA,EAAIouE,EAAgBluE,OAAQF,IAAK,CAC7C,IAAIquE,EAAiBD,EAAgBpuE,QACTwJ,IAAxBnJ,EAAIguE,IAERh+C,EAAYzwB,KAAKS,EAAIguE,GACzB,CACA,OAAOh+C,EAAYtB,KAAK,IAC5B,EACAlF,EAAc9oB,UAAUktE,cAAgB,SAAU78C,GAC9C,IAAIgkB,EAAMvqB,KAAKuqB,MACf,OAAOhkB,EAAUgE,KAAI,SAAU1P,GAAY,MAAQ,CAC/C4L,QAAS5L,EAAS4L,SAAW,GAC7B68C,OAAQ/4B,EAA6C,IAAtC1vB,EAAS0M,sBAAwB,GAAU,IAC1D,GACR,EACAvI,EAAc9oB,UAAUutE,MAAQ,WAC5B7zD,KAAKozD,MAAMS,OACf,EACAzkD,EAAc9oB,UAAU+xB,OAAS,SAAUzyB,GACzC,IAAI0tE,EAA2B,kBAAR1tE,EAAmBwpB,EAAc8I,aAAatyB,GAAOA,EAC1Eoa,KAAKozD,MAAM/6C,OAAOi7C,EACtB,EACOlkD,CACX,CA/DmC,GAgEnC9qB,EAAQ,EAAgB8qB,8BCtExBxqB,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAIutE,EACA,SAAwBluE,EAAKW,GACzByZ,KAAKpa,IAAMA,EACXoa,KAAKzZ,MAAQA,CACjB,EAGA8sE,EAA0B,WAC1B,SAASA,EAASxV,GAGd,GAFA79C,KAAK+zD,QAAU,CAAC,EAChB/zD,KAAK69C,KAAO,EACQ,kBAATA,GAAqBA,EAAO,EACnC,MAAM,IAAIxzD,MAAM,0CAEpB2V,KAAKg0D,UAAYnW,CACrB,CAuFA,OAtFAj5D,OAAOoB,eAAeqtE,EAAS/sE,UAAW,SAAU,CAChDgS,IAAK,WACD,OAAO0H,KAAK69C,IAChB,EACA34D,YAAY,EACZsB,cAAc,IAElB6sE,EAAS/sE,UAAU2tE,cAAgB,SAAU7oE,GACpC4U,KAAKk0D,YAINl0D,KAAKk0D,WAAWC,KAAO/oE,EACvBA,EAAKpD,KAAOgY,KAAKk0D,YAJjBl0D,KAAKo0D,SAAWhpE,EAMpB4U,KAAKk0D,WAAa9oE,EAClB4U,KAAK69C,MACT,EACAwV,EAAS/sE,UAAU+tE,eAAiB,WAChC,GAAKr0D,KAAKo0D,SAAV,CAGA,IAAIhpE,EAAO4U,KAAKo0D,SACZE,EAAWlpE,EAAK+oE,KAOpB,OANIG,IACAA,EAAStsE,UAAO+G,GAEpB3D,EAAK+oE,UAAOplE,EACZiR,KAAKo0D,SAAWE,EAChBt0D,KAAK69C,OACEzyD,CATP,CAUJ,EACAioE,EAAS/sE,UAAUiuE,eAAiB,SAAUnpE,GACtC4U,KAAKk0D,aAAe9oE,IACpB4U,KAAKk0D,WAAa9oE,EAAKpD,MAEvBgY,KAAKo0D,WAAahpE,IAClB4U,KAAKo0D,SAAWhpE,EAAK+oE,MAErB/oE,EAAK+oE,OACL/oE,EAAK+oE,KAAKnsE,KAAOoD,EAAKpD,MAEtBoD,EAAKpD,OACLoD,EAAKpD,KAAKmsE,KAAO/oE,EAAK+oE,MAE1B/oE,EAAKpD,UAAO+G,EACZ3D,EAAK+oE,UAAOplE,EACZiR,KAAK69C,MACT,EACAwV,EAAS/sE,UAAUgS,IAAM,SAAU1S,GAC/B,GAAIoa,KAAK+zD,QAAQnuE,GAAM,CACnB,IAAIwF,EAAO4U,KAAK+zD,QAAQnuE,GAGxB,OAFAoa,KAAKu0D,eAAenpE,GACpB4U,KAAKi0D,cAAc7oE,GACZA,EAAK7E,KAChB,CACJ,EACA8sE,EAAS/sE,UAAU+xB,OAAS,SAAUzyB,GAClC,GAAIoa,KAAK+zD,QAAQnuE,GAAM,CACnB,IAAIwF,EAAO4U,KAAK+zD,QAAQnuE,GACxBoa,KAAKu0D,eAAenpE,UACb4U,KAAK+zD,QAAQnuE,EACxB,CACJ,EACAytE,EAAS/sE,UAAUoxB,IAAM,SAAU9xB,EAAKW,GACpC,GAAIyZ,KAAK+zD,QAAQnuE,GACboa,KAAKqY,OAAOzyB,QAEX,GAAIoa,KAAK69C,OAAS79C,KAAKg0D,UAAW,CACnC,IACIQ,EADWx0D,KAAKq0D,iBACCzuE,WACdoa,KAAK+zD,QAAQS,EACxB,CACA,IAAIC,EAAU,IAAIX,EAAeluE,EAAKW,GACtCyZ,KAAK+zD,QAAQnuE,GAAO6uE,EACpBz0D,KAAKi0D,cAAcQ,EACvB,EACApB,EAAS/sE,UAAUutE,MAAQ,WAEvB,IADA,IAAIlvE,EAAOC,OAAOD,KAAKqb,KAAK+zD,SACnBxuE,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAAK,CAClC,IAAIK,EAAMjB,EAAKY,GACX6F,EAAO4U,KAAK+zD,QAAQnuE,GACxBoa,KAAKu0D,eAAenpE,UACb4U,KAAK+zD,QAAQnuE,EACxB,CACJ,EACOytE,CACX,CAhG8B,GAiG9B/uE,EAAQ+uE,SAAWA,8BCxGnB/uE,EAAQkb,WAuCR,SAAqBk1D,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,CAClD,EA3CAxwE,EAAQupE,YAiDR,SAAsB6G,GACpB,IAAI58B,EAcAvyC,EAbAovE,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvBxtE,EAAM,IAAI4tE,EAVhB,SAAsBL,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,CAClD,CAQoBE,CAAYN,EAAKG,EAAUC,IAEzCG,EAAU,EAGVrsE,EAAMksE,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAKtvE,EAAI,EAAGA,EAAIqD,EAAKrD,GAAK,EACxBuyC,EACGo9B,EAAUR,EAAIjX,WAAWl4D,KAAO,GAChC2vE,EAAUR,EAAIjX,WAAWl4D,EAAI,KAAO,GACpC2vE,EAAUR,EAAIjX,WAAWl4D,EAAI,KAAO,EACrC2vE,EAAUR,EAAIjX,WAAWl4D,EAAI,IAC/B4B,EAAI8tE,KAAcn9B,GAAO,GAAM,IAC/B3wC,EAAI8tE,KAAcn9B,GAAO,EAAK,IAC9B3wC,EAAI8tE,KAAmB,IAANn9B,EAGK,IAApBg9B,IACFh9B,EACGo9B,EAAUR,EAAIjX,WAAWl4D,KAAO,EAChC2vE,EAAUR,EAAIjX,WAAWl4D,EAAI,KAAO,EACvC4B,EAAI8tE,KAAmB,IAANn9B,GAGK,IAApBg9B,IACFh9B,EACGo9B,EAAUR,EAAIjX,WAAWl4D,KAAO,GAChC2vE,EAAUR,EAAIjX,WAAWl4D,EAAI,KAAO,EACpC2vE,EAAUR,EAAIjX,WAAWl4D,EAAI,KAAO,EACvC4B,EAAI8tE,KAAcn9B,GAAO,EAAK,IAC9B3wC,EAAI8tE,KAAmB,IAANn9B,GAGnB,OAAO3wC,CACT,EA5FA7C,EAAQokE,cAkHR,SAAwByM,GAQtB,IAPA,IAAIr9B,EACAlvC,EAAMusE,EAAM1vE,OACZ2vE,EAAaxsE,EAAM,EACnBye,EAAQ,GACRguD,EAAiB,MAGZ9vE,EAAI,EAAG+vE,EAAO1sE,EAAMwsE,EAAY7vE,EAAI+vE,EAAM/vE,GAAK8vE,EACtDhuD,EAAMliB,KAAKowE,EAAYJ,EAAO5vE,EAAIA,EAAI8vE,EAAkBC,EAAOA,EAAQ/vE,EAAI8vE,IAI1D,IAAfD,GACFt9B,EAAMq9B,EAAMvsE,EAAM,GAClBye,EAAMliB,KACJqwE,EAAO19B,GAAO,GACd09B,EAAQ19B,GAAO,EAAK,IACpB,OAEsB,IAAfs9B,IACTt9B,GAAOq9B,EAAMvsE,EAAM,IAAM,GAAKusE,EAAMvsE,EAAM,GAC1Cye,EAAMliB,KACJqwE,EAAO19B,GAAO,IACd09B,EAAQ19B,GAAO,EAAK,IACpB09B,EAAQ19B,GAAO,EAAK,IACpB,MAIJ,OAAOzwB,EAAMiN,KAAK,GACpB,EA1IA,IALA,IAAIkhD,EAAS,GACTN,EAAY,GACZH,EAA4B,qBAAfr1D,WAA6BA,WAAalY,MAEvD2hB,EAAO,mEACF5jB,EAAI,EAAsBA,EAAb4jB,KAAwB5jB,EAC5CiwE,EAAOjwE,GAAK4jB,EAAK5jB,GACjB2vE,EAAU/rD,EAAKs0C,WAAWl4D,IAAMA,EAQlC,SAASqvE,EAASF,GAChB,IAAI9rE,EAAM8rE,EAAIjvE,OAEd,GAAImD,EAAM,EAAI,EACZ,MAAM,IAAIyB,MAAM,kDAKlB,IAAIwqE,EAAWH,EAAI7tE,QAAQ,KAO3B,OANkB,IAAdguE,IAAiBA,EAAWjsE,GAMzB,CAACisE,EAJcA,IAAajsE,EAC/B,EACA,EAAKisE,EAAW,EAGtB,CAmEA,SAASU,EAAaJ,EAAO9U,EAAOphB,GAGlC,IAFA,IAAInH,EARoBg4B,EASpB/zC,EAAS,GACJx2B,EAAI86D,EAAO96D,EAAI05C,EAAK15C,GAAK,EAChCuyC,GACIq9B,EAAM5vE,IAAM,GAAM,WAClB4vE,EAAM5vE,EAAI,IAAM,EAAK,QACP,IAAf4vE,EAAM5vE,EAAI,IACbw2B,EAAO52B,KAdFqwE,GADiB1F,EAeMh4B,IAdT,GAAK,IACxB09B,EAAO1F,GAAO,GAAK,IACnB0F,EAAO1F,GAAO,EAAI,IAClB0F,EAAa,GAAN1F,IAaT,OAAO/zC,EAAOzH,KAAK,GACrB,CAlGA4gD,EAAU,IAAIzX,WAAW,IAAM,GAC/ByX,EAAU,IAAIzX,WAAW,IAAM,iCCjB/B,IAAIgY,EAAe19D,EAAQ,OAEvB29D,EAAW39D,EAAQ,OAEnB49D,EAAWD,EAASD,EAAa,6BAErC/8D,EAAOpU,QAAU,SAA4BmE,EAAMmtE,GAClD,IAAIC,EAAYJ,EAAahtE,IAAQmtE,GACrC,MAAyB,oBAAdC,GAA4BF,EAASltE,EAAM,gBAAkB,EAChEitE,EAASG,GAEVA,CACR,gCCZA,IAAI3E,EAAOn5D,EAAQ,OACf09D,EAAe19D,EAAQ,OACvB+9D,EAAoB/9D,EAAQ,OAE5Bg+D,EAAah+D,EAAQ,OACrBi+D,EAASP,EAAa,8BACtBQ,EAAQR,EAAa,6BACrBS,EAAgBT,EAAa,mBAAmB,IAASvE,EAAKjqE,KAAKgvE,EAAOD,GAE1EG,EAAkBp+D,EAAQ,OAC1Bq+D,EAAOX,EAAa,cAExB/8D,EAAOpU,QAAU,SAAkB+xE,GAClC,GAAgC,oBAArBA,EACV,MAAM,IAAIN,EAAW,0BAEtB,IAAIprE,EAAOurE,EAAchF,EAAM+E,EAAOzwE,WACtC,OAAOswE,EACNnrE,EACA,EAAIyrE,EAAK,EAAGC,EAAiB5wE,QAAUD,UAAUC,OAAS,KAC1D,EAEF,EAEA,IAAI6wE,EAAY,WACf,OAAOJ,EAAchF,EAAM8E,EAAQxwE,UACpC,EAEI2wE,EACHA,EAAgBz9D,EAAOpU,QAAS,QAAS,CAAEiC,MAAO+vE,IAElD59D,EAAOpU,QAAQc,MAAQkxE,0BC/BxB,IAAIC,EAAoB,SAA2BhwE,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,kBAAVA,CAC1B,CANQiwE,CAAgBjwE,KAQxB,SAAmBA,GAClB,IAAIkwE,EAAc7xE,OAAO0B,UAAUiC,SAAStB,KAAKV,GAEjD,MAAuB,oBAAhBkwE,GACa,kBAAhBA,GAQL,SAAwBlwE,GACvB,OAAOA,EAAMmwE,WAAaC,CAC3B,CATKC,CAAerwE,EACpB,CAbMswE,CAAUtwE,EAChB,EAeA,IACIowE,EADiC,oBAAXxwE,QAAyBA,OAAO2wE,IAClB3wE,OAAO2wE,IAAI,iBAAmB,MAUtE,SAASC,EAA8BxwE,EAAO0H,GAC7C,OAA0B,IAAlBA,EAAQ+oE,OAAmB/oE,EAAQsoE,kBAAkBhwE,GAC1D0wE,GANiB1iD,EAMKhuB,EALlBiB,MAAMC,QAAQ8sB,GAAO,GAAK,CAAC,GAKDhuB,EAAO0H,GACrC1H,EAPJ,IAAqBguB,CAQrB,CAEA,SAAS2iD,EAAkB5xE,EAAQI,EAAQuI,GAC1C,OAAO3I,EAAOoJ,OAAOhJ,GAAQi1B,KAAI,SAAS1vB,GACzC,OAAO8rE,EAA8B9rE,EAASgD,EAC/C,GACD,CAkBA,SAASkpE,EAAQ7xE,GAChB,OAAOV,OAAOD,KAAKW,GAAQoJ,OAT5B,SAAyCpJ,GACxC,OAAOV,OAAOC,sBACXD,OAAOC,sBAAsBS,GAAQP,QAAO,SAAS+F,GACtD,OAAOlG,OAAOoC,qBAAqBC,KAAK3B,EAAQwF,EACjD,IACE,EACJ,CAGmCssE,CAAgC9xE,GACnE,CAEA,SAAS+xE,EAAmB5yE,EAAQimB,GACnC,IACC,OAAOA,KAAYjmB,CACpB,CAAE,MAAM+vB,GACP,OAAO,CACR,CACD,CASA,SAAS8iD,EAAYhyE,EAAQI,EAAQuI,GACpC,IAAIspE,EAAc,CAAC,EAiBnB,OAhBItpE,EAAQsoE,kBAAkBjxE,IAC7B6xE,EAAQ7xE,GAAQK,SAAQ,SAASC,GAChC2xE,EAAY3xE,GAAOmxE,EAA8BzxE,EAAOM,GAAMqI,EAC/D,IAEDkpE,EAAQzxE,GAAQC,SAAQ,SAASC,IAblC,SAA0BN,EAAQM,GACjC,OAAOyxE,EAAmB/xE,EAAQM,MAC5BhB,OAAOsE,eAAejC,KAAK3B,EAAQM,IACpChB,OAAOoC,qBAAqBC,KAAK3B,EAAQM,GAC/C,EAUM4xE,CAAiBlyE,EAAQM,KAIzByxE,EAAmB/xE,EAAQM,IAAQqI,EAAQsoE,kBAAkB7wE,EAAOE,IACvE2xE,EAAY3xE,GAhDf,SAA0BA,EAAKqI,GAC9B,IAAKA,EAAQwpE,YACZ,OAAOR,EAER,IAAIQ,EAAcxpE,EAAQwpE,YAAY7xE,GACtC,MAA8B,oBAAhB6xE,EAA6BA,EAAcR,CAC1D,CA0CsBS,CAAiB9xE,EAAKqI,EAAtBypE,CAA+BpyE,EAAOM,GAAMF,EAAOE,GAAMqI,GAE5EspE,EAAY3xE,GAAOmxE,EAA8BrxE,EAAOE,GAAMqI,GAEhE,IACOspE,CACR,CAEA,SAASN,EAAU3xE,EAAQI,EAAQuI,IAClCA,EAAUA,GAAW,CAAC,GACd0pE,WAAa1pE,EAAQ0pE,YAAcT,EAC3CjpE,EAAQsoE,kBAAoBtoE,EAAQsoE,mBAAqBA,EAGzDtoE,EAAQ8oE,8BAAgCA,EAExC,IAAIa,EAAgBpwE,MAAMC,QAAQ/B,GAIlC,OAFgCkyE,IADZpwE,MAAMC,QAAQnC,GAKvBsyE,EACH3pE,EAAQ0pE,WAAWryE,EAAQI,EAAQuI,GAEnCqpE,EAAYhyE,EAAQI,EAAQuI,GAJ5B8oE,EAA8BrxE,EAAQuI,EAM/C,CAEAgpE,EAAUY,IAAM,SAAsBptE,EAAOwD,GAC5C,IAAKzG,MAAMC,QAAQgD,GAClB,MAAM,IAAIJ,MAAM,qCAGjB,OAAOI,EAAM2D,QAAO,SAAS+lE,EAAMnsE,GAClC,OAAOivE,EAAU9C,EAAMnsE,EAAMiG,EAC9B,GAAG,CAAC,EACL,EAEA,IAAI6pE,EAAcb,EAElBv+D,EAAOpU,QAAUwzE,gCClIjB,IAAI3B,EAAkBp+D,EAAQ,OAE1BggE,EAAehgE,EAAQ,OACvBg+D,EAAah+D,EAAQ,OAErBigE,EAAOjgE,EAAQ,OAGnBW,EAAOpU,QAAU,SAChB4B,EACAwkB,EACAnkB,GAEA,IAAKL,GAAuB,kBAARA,GAAmC,oBAARA,EAC9C,MAAM,IAAI6vE,EAAW,0CAEtB,GAAwB,kBAAbrrD,GAA6C,kBAAbA,EAC1C,MAAM,IAAIqrD,EAAW,4CAEtB,GAAIvwE,UAAUC,OAAS,GAA6B,mBAAjBD,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIuwE,EAAW,2DAEtB,GAAIvwE,UAAUC,OAAS,GAA6B,mBAAjBD,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIuwE,EAAW,yDAEtB,GAAIvwE,UAAUC,OAAS,GAA6B,mBAAjBD,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIuwE,EAAW,6DAEtB,GAAIvwE,UAAUC,OAAS,GAA6B,mBAAjBD,UAAU,GAC5C,MAAM,IAAIuwE,EAAW,2CAGtB,IAAIkC,EAAgBzyE,UAAUC,OAAS,EAAID,UAAU,GAAK,KACtD0yE,EAAc1yE,UAAUC,OAAS,EAAID,UAAU,GAAK,KACpD2yE,EAAkB3yE,UAAUC,OAAS,EAAID,UAAU,GAAK,KACxD4yE,EAAQ5yE,UAAUC,OAAS,GAAID,UAAU,GAGzC6yE,IAASL,GAAQA,EAAK9xE,EAAKwkB,GAE/B,GAAIyrD,EACHA,EAAgBjwE,EAAKwkB,EAAU,CAC9BlkB,aAAkC,OAApB2xE,GAA4BE,EAAOA,EAAK7xE,cAAgB2xE,EACtEjzE,WAA8B,OAAlB+yE,GAA0BI,EAAOA,EAAKnzE,YAAc+yE,EAChE1xE,MAAOA,EACPE,SAA0B,OAAhByxE,GAAwBG,EAAOA,EAAK5xE,UAAYyxE,QAErD,KAAIE,IAAWH,GAAkBC,GAAgBC,GAIvD,MAAM,IAAIJ,EAAa,+GAFvB7xE,EAAIwkB,GAAYnkB,CAGjB,CACD,gCCrDA,IAGI4vE,EAHep+D,EAAQ,MAGL09D,CAAa,2BAA2B,KAAS,EACvE,GAAIU,EACH,IACCA,EAAgB,CAAC,EAAG,IAAK,CAAE5vE,MAAO,GACnC,CAAE,MAAOgQ,GAER4/D,GAAkB,CACnB,CAGDz9D,EAAOpU,QAAU6xE,0BCZjBz9D,EAAOpU,QAAUg0E,kCCAjB5/D,EAAOpU,QAAU+F,6BCAjBqO,EAAOpU,QAAUohE,mCCAjBhtD,EAAOpU,QAAUi0E,uCCAjB7/D,EAAOpU,QAAUk0E,oCCAjB9/D,EAAOpU,QAAUwE,kCCAjB4P,EAAOpU,QAAUm0E,0BCH0R,IAASliE,EAAfgI,KAApO7F,EAAOpU,SAA4OiS,EAAlOwB,EAAQ,OAAmO,MAAM,IAAIuJ,EAAE,CAAC,GAAG,CAAC/K,EAAE+K,EAAEnZ,KAAK,aAAaA,EAAE0F,EAAEyT,GAAGnZ,EAAEsZ,EAAEH,EAAE,CAACo3D,cAAcA,IAAI9qE,EAAE+qE,wBAAwBA,IAAIj1D,IAAI,IAAIpb,EAAEH,EAAE,KAAK0F,EAAE1F,EAAEG,EAAEA,GAAG/C,EAAE4C,EAAE,KAAKkZ,EAAElZ,EAAEG,EAAE/C,GAAG,MAAM4b,EAAEA,KAAK,IAAI5K,GAAE,EAAG,IAAIA,KAAKd,OAAO0nD,WAAW1nD,OAAO0nD,UAAUyb,YAAYzb,UAAUzyB,UAAUxkB,MAAM,UAAUi3C,UAAUzyB,UAAUxkB,MAAM,WAAW,CAAC,MAAM3P,GAAG,CAAC,OAAOA,CAAC,EAAEiL,EAAErR,IAAkY,IAAhY0oE,MAAMtiE,EAAEuiE,OAAOx3D,EAAEy3D,SAAS5wE,EAAEyf,SAAS/Z,EAAEmrE,UAAUzzE,EAAE,KAAKswD,MAAMx0C,EAAE,uBAAuB43D,aAAaz3D,GAAE,EAAG03D,SAAStrE,EAAE,GAAGynD,OAAO5zC,EAAE,OAAO03D,SAAS10D,EAAEtD,IAAIi4D,sBAAsBC,GAAE,EAAGC,YAAY51D,GAAG,oBAAoBjO,OAAOA,OAAOvL,SAASuhC,KAAK,KAAK5qB,MAAMkuD,EAAE,iBAAiBpiC,aAAavrB,EAAE,OAAOm4D,SAASvP,EAAE,QAAQwP,WAAWvS,GAAE,EAAGwS,MAAMh2D,GAAE,EAAGi2D,OAAO/1D,GAAE,EAAGjU,QAAQwrD,EAAE,MAAM3mD,QAAQukC,EAAE,MAAK3oC,EAAI,MAAMnH,EAAEyyB,IAAG,EAAGnzB,EAAEmI,WAAU,IAAK+jB,EAAEmlD,IAAG,EAAGrxE,EAAEmI,WAAU,GAAIkrB,GAAE,EAAGrzB,EAAE2D,SAAQ,GAAIwlE,EAAEl7D,IAAI,IAAI+K,EAAEqa,EAAExvB,SAASwtE,GAAE,GAAIpjE,EAAEqjE,cAAct4D,EAAE/K,EAAEqjE,aAAankE,OAAOokE,GAAGlkD,IAAI,MAAM,CAACmkD,OAAO,KAAKzkB,OAAO5zC,IAAIlL,IAAI3R,OAAOsyC,OAAO3gC,EAAE+K,GAAGzT,EAAE0I,EAAE,KAAKhR,EAAEA,EAAE,CAACgkC,OAAOhzB,EAAEgzB,SAAS17B,EAAE,CAAC07B,OAAOhzB,EAAEgzB,QAAQ,EAAEwwC,EAAExjE,IAAI,cAAcA,EAAEgzB,OAAOkoC,EAAEl7D,GAAGd,OAAOokE,GAAGG,OAAOzjE,GAAGk7D,EAAEl7D,KAAI,EAAG,GAAE,EAAGjO,EAAE4D,YAAY,KAAK,GAAGyvB,EAAExvB,SAAQ,EAAGslC,SAASwoC,eAAe,kBAAkB,YAAYx+C,GAAE,GAAIhmB,OAAOykE,YAAY,KAAKzkE,OAAOokE,GAAGM,KAAK,CAACzqE,QAAO,IAAAhB,OAAKwsD,GAAI2d,MAAMtiE,EAAEkjE,MAAMh2D,EAAEi2D,OAAO/1D,IAAIgY,EAAExvB,SAASsvB,GAAE,IAAKtzB,GAAG,MAAM,MAAMoO,EAAE,IAAI6jE,gBAAgB3kE,OAAOvL,SAASoe,QAAQ,MAAM,mBAAmB/R,EAAE+B,IAAI,WAAW/B,EAAE+B,IAAI,SAAS/B,EAAE+B,IAAI,kBAAmB,EAA5I,KAAkJ7C,OAAOokE,GAAGQ,eAAeN,EAAE,EAAE,EAAExjE,EAAE+K,EAAEnZ,KAAK,MAAMG,EAAEiO,EAAE0rD,qBAAqB3gD,GAAG,GAAGzT,EAAEvF,EAAE,IAAI/C,EAAE+C,EAAEiO,EAAE0jE,eAAe9xE,KAAK5C,EAAEgR,EAAEvF,cAAcsQ,GAAG/b,EAAEuO,GAAG3L,EAAE5C,EAAEyoE,IAAG,gCAAAt/D,OAAiCs7D,EAAC,WAAUn8D,EAAEq0D,WAAWoY,aAAa/0E,EAAEsI,GAAI,EAA/L,CAAiM4jC,SAAS,SAAS,kBAAkB,IAAInwB,EAAEmwB,SAASwoC,eAAe,WAAW,OAAO34D,IAAIA,EAAEmwB,SAASzgC,cAAc,OAAOsQ,EAAExN,GAAG,UAAU29B,SAASxR,KAAKs6C,YAAYj5D,IAAI,KAAKqa,EAAExvB,SAAQ,CAAE,CAAC,GAAG,KAAI,EAAG7D,EAAE4D,YAAY,KAAKlD,GAAGb,GAAGsN,OAAOokE,GAAGQ,eAAeN,EAAE,GAAG,CAAC5xE,IAAI,MAAMw/D,EAAE,CAACpzD,QAAQ+M,IAAI,GAAGtY,IAAIwrB,IAAIyyC,EAAE,GAAG0S,GAAE,GAAI7gC,IAAIA,EAAEx3B,GAAGA,EAAEk5D,kBAAkBb,GAAE,QAAS,GAAGl1D,IAAI40D,EAAE,CAAC,MAAM/3D,EAAE,IAAI84D,gBAAgB,CAACK,UAAUlkE,EAAEmkE,aAAah3D,EAAE7C,MAAMkuD,EAAE4L,cAAcn5D,EAAEq0C,MAAMx0C,EAAEu5D,cAAcx5D,EAAEy5D,UAAUjtE,IAAIrF,WAAWkN,OAAOvL,SAASuhC,KAAI,yCAAA/8B,OAA0C4S,EAAG,KAAK,CAAC,IAAI7L,OAAOokE,GAAG,YAAYt0E,GAAGA,EAAE,CAACgkC,OAAO,uBAAuB9zB,OAAOokE,GAAGQ,gBAAgB9jE,IAAI,cAAcA,EAAEgzB,OAAOkoC,EAAEl7D,GAAGd,OAAOokE,GAAGG,MAAMvI,EAAE,CAAC5b,MAAMx0C,EAAEs5D,cAAcn5D,EAAEq5D,UAAUjtE,GAAG,GAAG,GAAG4rE,WAAWvS,EAAE6T,aAAatmD,EAAEumD,YAAY/xE,GAAG,IAAIsY,EAAE,MAAM,IAAIjX,MAAM,yDAAyD,OAAOiX,EAAEqmD,EAAE,EAAEnmD,EAAEjY,UAAU,CAACsvE,MAAMx3D,IAAIxW,OAAON,WAAWuuE,OAAOz3D,IAAI1W,KAAKJ,WAAWwuE,SAAS13D,IAAI3W,KAAKH,WAAWqd,SAASvG,IAAI1W,KAAKJ,WAAWyuE,UAAU33D,IAAI1W,KAAKkrD,MAAMx0C,IAAIxW,OAAOouE,aAAa53D,IAAI3W,KAAKwuE,SAAS73D,IAAIxW,OAAOwqD,OAAOh0C,IAAIxW,OAAOsuE,SAAS93D,IAAI3W,KAAK0uE,sBAAsB/3D,IAAI3W,KAAK4uE,YAAYj4D,IAAIxW,OAAOgW,MAAMQ,IAAIxW,OAAO8hC,aAAatrB,IAAIxW,OAAO0uE,SAASl4D,IAAIxW,OAAO2uE,WAAWn4D,IAAI3W,KAAK+uE,MAAMp4D,IAAI3W,KAAKgvE,OAAOr4D,IAAI3W,KAAKgF,QAAQ2R,IAAIxW,OAAO0J,QAAQ8M,IAAI1W,MAAM,MAAMiD,EAAE4T,EAAE,IAAIC,EAAEtZ,EAAE,KAAK,SAASsc,IAAI,OAAOA,EAAE7f,OAAOsyC,QAAQ,SAAS3gC,GAAG,IAAI,IAAI+K,EAAE,EAAEA,EAAE9b,UAAUC,OAAO6b,IAAI,CAAC,IAAInZ,EAAE3C,UAAU8b,GAAG,IAAI,IAAIhZ,KAAKH,EAAEvD,OAAO0B,UAAU4C,eAAejC,KAAKkB,EAAEG,KAAKiO,EAAEjO,GAAGH,EAAEG,GAAG,CAAC,OAAOiO,CAAC,GAAGnR,MAAM4a,KAAKxa,UAAU,CAAC,MAAM6zE,EAAE9iE,IAAI,MAAM+K,EAAEA,IAAI,uBAAuB/K,EAAEykE,UAAUntE,IAAImD,cAAc,QAAQ,CAACiqE,wBAAwB,CAACC,OAAOz5D,EAAE05D,KAAKhzE,EAAEA,IAAI,MAAM2yE,aAAaxyE,EAAEyyE,YAAYltE,EAAE2rE,WAAWj0E,GAAG4C,EAAE,OAAOG,IAAIuF,GAAGtI,KAAK+b,EAAE85D,QAAQ,IAAIx2E,OAAOsyC,OAAO,CAAC0F,WAAW,gBAAgBrmC,EAAE8kE,eAAe,EAAE,OAAOxtE,IAAImD,cAAcpD,EAAE6W,EAAE,CAAC,EAAElO,EAAE,CAACuiE,OAAOxwE,GAAG,CAACA,IAAI,MAAM0yE,SAASz1E,EAAEs4D,KAAKx8C,EAAEi6D,KAAKn6D,EAAEo6D,WAAW/5D,EAAEg6D,WAAW5tE,EAAE6tE,YAAYh6D,GAAGlL,GAAGhC,QAAQ8kE,EAAEG,WAAW91D,GAAGpb,EAAEymE,EAAE,iBAAiB5tD,EAAEC,EAAE,CAAC,EAAE,IAAI4oD,EAAE,OAAOtmD,IAAIsmD,EAAEzzD,EAAEtH,IAAI,CAAC,SAAS,QAAQ,SAAS,WAAW,WAAW,SAAS,YAAYpI,QAAQmjE,EAAElrD,gBAAgB,KAAKsC,EAAEs6D,UAAS,GAAI7tE,IAAImD,cAAc,OAAO,CAAC2qE,MAAMxzE,EAAEG,IAAIymE,GAAGlhE,IAAImD,cAAc,OAAO,CAAC4qE,IAAI,aAAanwC,KAAK,gFAAgF59B,IAAImD,cAAcuF,EAAEtH,IAAIwV,EAAE,CAAC9Q,KAAK/F,EAAEmG,UAAS,GAAArF,OAAInJ,EAAC,KAAAmJ,OAAI2S,GAAIs6D,MAAMl6D,EAAElN,QAAQ8kE,GAAGj4D,GAAGD,GAAG4tD,GAAGlhE,IAAImD,cAAc,IAAI,CAAC+C,UAAS,MAAArF,OAAOyS,KAAMA,IAAI4tD,GAAG5tD,EAAEK,GAAGF,IAAK,EAA5kB,CAA8kBhZ,KAAK,EAAE+wE,EAAEwC,aAAa,CAACN,WAAW,sBAAsBC,WAAW,SAAS3d,KAAK,QAAQxI,OAAO,OAAO2lB,SAAS,qBAAqB/rE,IAAI,SAASwsE,YAAY,CAAC,EAAEJ,eAAe,CAAC,EAAEC,KAAK,MAAMjC,EAAE9vE,UAAU,CAACgyE,WAAWl6D,IAAIxW,OAAO2wE,WAAWn6D,IAAIxW,OAAOgzD,KAAKx8C,IAAIxW,OAAOmwE,SAAS35D,IAAIxW,OAAOywE,KAAKj6D,IAAItW,IAAIsqD,OAAOh0C,IAAIxW,OAAOwwE,eAAeh6D,IAAIhW,SAASgW,IAAItW,KAAK0wE,YAAYp6D,IAAIhW,SAASgW,IAAItW,KAAKkE,IAAIoS,IAAI9V,UAAU,CAAC8V,IAAIjW,KAAKiW,IAAI1W,QAAQ,MAAM+Y,EAAE21D,CAAC,EAAE,IAAI,CAAC9iE,EAAE+K,EAAEnZ,KAAK,aAAaA,EAAEsZ,EAAEH,EAAE,CAAC65D,EAAEA,IAAI51E,IAAI,IAAI+C,EAAEH,EAAE,KAAK0F,EAAE1F,EAAEG,EAAEA,EAAJH,IAAU,SAASoO,GAAG,OAAOA,EAAE,EAAE,IAAI1I,EAAE1I,KAAK,CAACoR,EAAEzC,GAAG,izBAAizB,KAAK,MAAMvO,EAAEsI,CAAC,EAAE,IAAI0I,IAAI,aAAaA,EAAEjS,QAAQ,SAASiS,GAAG,IAAI+K,EAAE,GAAG,OAAOA,EAAE/Y,SAAS,WAAW,OAAOyX,KAAK2a,KAAK,SAASrZ,GAAG,IAAInZ,EAAEoO,EAAE+K,GAAG,OAAOA,EAAE,GAAG,UAAU5S,OAAO4S,EAAE,GAAG,MAAM5S,OAAOvG,EAAE,KAAKA,CAAC,IAAImsB,KAAK,GAAG,EAAEhT,EAAE/b,EAAE,SAASgR,EAAEpO,EAAEG,GAAG,iBAAiBiO,IAAIA,EAAE,CAAC,CAAC,KAAKA,EAAE,MAAM,IAAI1I,EAAE,CAAC,EAAE,GAAGvF,EAAE,IAAI,IAAI/C,EAAE,EAAEA,EAAEya,KAAKva,OAAOF,IAAI,CAAC,IAAI8b,EAAErB,KAAKza,GAAG,GAAG,MAAM8b,IAAIxT,EAAEwT,IAAG,EAAG,CAAC,IAAI,IAAIF,EAAE,EAAEA,EAAE5K,EAAE9Q,OAAO0b,IAAI,CAAC,IAAIK,EAAE,GAAG9S,OAAO6H,EAAE4K,IAAI7Y,GAAGuF,EAAE2T,EAAE,MAAMrZ,IAAIqZ,EAAE,GAAGA,EAAE,GAAG,GAAG9S,OAAOvG,EAAE,SAASuG,OAAO8S,EAAE,IAAIA,EAAE,GAAGrZ,GAAGmZ,EAAEnc,KAAKqc,GAAG,CAAC,EAAEF,CAAC,CAAC,EAAE,IAAI,CAAC/K,EAAE+K,EAAEnZ,KAAK,aAAa,IAAIG,EAAEH,EAAE,KAAK,SAAS0F,IAAI,CAAC,SAAStI,IAAI,CAACA,EAAEsE,kBAAkBgE,EAAE0I,EAAEjS,QAAQ,WAAW,SAASiS,EAAEA,EAAE+K,EAAEnZ,EAAE0F,EAAEtI,EAAE8b,GAAG,GAAGA,IAAI/Y,EAAE,CAAC,IAAI6Y,EAAE,IAAI9W,MAAM,mLAAmL,MAAM8W,EAAE1Y,KAAK,sBAAsB0Y,CAAC,CAAC,CAAC,SAASG,IAAI,OAAO/K,CAAC,CAACA,EAAEhM,WAAWgM,EAAE,IAAIpO,EAAE,CAACsC,MAAM8L,EAAE7L,KAAK6L,EAAE5L,KAAK4L,EAAE3L,OAAO2L,EAAE9R,OAAO8R,EAAE1L,OAAO0L,EAAEzL,OAAOyL,EAAExL,IAAIwL,EAAEvL,QAAQsW,EAAErW,QAAQsL,EAAErL,YAAYqL,EAAEpL,WAAWmW,EAAElW,KAAKmL,EAAElL,SAASiW,EAAEhW,MAAMgW,EAAE/V,UAAU+V,EAAE9V,MAAM8V,EAAE7V,MAAM6V,EAAE5V,eAAenG,EAAEsE,kBAAkBgE,GAAG,OAAO1F,EAAEwD,UAAUxD,EAAEA,CAAC,CAAC,EAAE,IAAI,CAACoO,EAAE+K,EAAEnZ,KAAKoO,EAAEjS,QAAQ6D,EAAE,IAAFA,EAAQ,EAAE,IAAIoO,IAAI,aAAaA,EAAEjS,QAAQ,8CAA8C,EAAE,IAAIgd,IAAI,aAAaA,EAAEhd,QAAQiS,CAAC,GAAGpO,EAAE,CAAC,EAAE,SAASG,EAAEiO,GAAG,GAAGpO,EAAEoO,GAAG,OAAOpO,EAAEoO,GAAGjS,QAAQ,IAAIuJ,EAAE1F,EAAEoO,GAAG,CAACzC,GAAGyC,EAAEjS,QAAQ,CAAC,GAAG,OAAOgd,EAAE/K,GAAG1I,EAAEA,EAAEvJ,QAAQgE,GAAGuF,EAAEvJ,OAAO,CAAC,OAAOgE,EAAEA,EAAEiO,IAAI,IAAI+K,EAAE/K,GAAGA,EAAEtN,WAAW,IAAIsN,EAAE+4D,QAAQ,IAAI/4D,EAAE,OAAOjO,EAAEmZ,EAAEH,EAAE,CAACH,EAAEG,IAAIA,CAAC,EAAEhZ,EAAEmZ,EAAE,CAAClL,EAAE+K,KAAK,IAAI,IAAInZ,KAAKmZ,EAAEhZ,EAAEH,EAAEmZ,EAAEnZ,KAAKG,EAAEH,EAAEoO,EAAEpO,IAAIvD,OAAOoB,eAAeuQ,EAAEpO,EAAE,CAACjD,YAAW,EAAGoT,IAAIgJ,EAAEnZ,IAAI,EAAEG,EAAEH,EAAE,CAACoO,EAAE+K,IAAI1c,OAAO0B,UAAU4C,eAAejC,KAAKsP,EAAE+K,GAAGhZ,EAAEuF,EAAE0I,IAAI,oBAAoBpQ,QAAQA,OAAO21E,aAAal3E,OAAOoB,eAAeuQ,EAAEpQ,OAAO21E,YAAY,CAACv1E,MAAM,WAAW3B,OAAOoB,eAAeuQ,EAAE,aAAa,CAAChQ,OAAM,GAAI,EAAE+B,EAAE,GAAI,EAAtiO,kCCE7T,IAAIyzE,EAAahkE,EAAQ,OAErBikE,EAAQp3E,OAAO0B,UAAUiC,SACzBW,EAAiBtE,OAAO0B,UAAU4C,eAwDtCwP,EAAOpU,QAnBO,SAAiB02B,EAAM50B,EAAU61E,GAC3C,IAAKF,EAAW31E,GACZ,MAAM,IAAI0C,UAAU,+BAGxB,IAAIozE,EACA12E,UAAUC,QAAU,IACpBy2E,EAAWD,GAGU,mBAArBD,EAAM/0E,KAAK+zB,GA7CA,SAAsBvwB,EAAOrE,EAAU81E,GACtD,IAAK,IAAI32E,EAAI,EAAGqD,EAAM6B,EAAMhF,OAAQF,EAAIqD,EAAKrD,IACrC2D,EAAejC,KAAKwD,EAAOlF,KACX,MAAZ22E,EACA91E,EAASqE,EAAMlF,GAAIA,EAAGkF,GAEtBrE,EAASa,KAAKi1E,EAAUzxE,EAAMlF,GAAIA,EAAGkF,GAIrD,CAoCQ0xE,CAAanhD,EAAM50B,EAAU81E,GACN,kBAATlhD,EAnCF,SAAuBnwB,EAAQzE,EAAU81E,GACzD,IAAK,IAAI32E,EAAI,EAAGqD,EAAMiC,EAAOpF,OAAQF,EAAIqD,EAAKrD,IAE1B,MAAZ22E,EACA91E,EAASyE,EAAO2I,OAAOjO,GAAIA,EAAGsF,GAE9BzE,EAASa,KAAKi1E,EAAUrxE,EAAO2I,OAAOjO,GAAIA,EAAGsF,EAGzD,CA2BQuxE,CAAcphD,EAAM50B,EAAU81E,GAzBlB,SAAuBz3E,EAAQ2B,EAAU81E,GACzD,IAAK,IAAIv4D,KAAKlf,EACNyE,EAAejC,KAAKxC,EAAQkf,KACZ,MAAZu4D,EACA91E,EAAS3B,EAAOkf,GAAIA,EAAGlf,GAEvB2B,EAASa,KAAKi1E,EAAUz3E,EAAOkf,GAAIA,EAAGlf,GAItD,CAiBQ43E,CAAcrhD,EAAM50B,EAAU81E,EAEtC,0BCvDA,IACIF,EAAQp3E,OAAO0B,UAAUiC,SACzB6nC,EAAM/tB,KAAK+tB,IAGXksC,EAAW,SAAkBn7D,EAAGC,GAGhC,IAFA,IAAIja,EAAM,GAED5B,EAAI,EAAGA,EAAI4b,EAAE1b,OAAQF,GAAK,EAC/B4B,EAAI5B,GAAK4b,EAAE5b,GAEf,IAAK,IAAIoiE,EAAI,EAAGA,EAAIvmD,EAAE3b,OAAQkiE,GAAK,EAC/BxgE,EAAIwgE,EAAIxmD,EAAE1b,QAAU2b,EAAEumD,GAG1B,OAAOxgE,CACX,EAqBAuR,EAAOpU,QAAU,SAAcmhE,GAC3B,IAAIngE,EAAS0a,KACb,GAAsB,oBAAX1a,GApCA,sBAoCyB02E,EAAM52E,MAAME,GAC5C,MAAM,IAAIwD,UAxCE,kDAwCwBxD,GAyBxC,IAvBA,IAEIi3E,EAFA/8B,EAxBI,SAAeg9B,EAASt5D,GAEhC,IADA,IAAI/b,EAAM,GACD5B,EAAI2d,GAAU,EAAGykD,EAAI,EAAGpiE,EAAIi3E,EAAQ/2E,OAAQF,GAAK,EAAGoiE,GAAK,EAC9DxgE,EAAIwgE,GAAK6U,EAAQj3E,GAErB,OAAO4B,CACX,CAkBes1E,CAAMj3E,UAAW,GAqBxBk3E,EAActsC,EAAI,EAAG9qC,EAAOG,OAAS+5C,EAAK/5C,QAC1Ck3E,EAAY,GACPp3E,EAAI,EAAGA,EAAIm3E,EAAan3E,IAC7Bo3E,EAAUp3E,GAAK,IAAMA,EAKzB,GAFAg3E,EAAQK,SAAS,SAAU,oBA3CnB,SAAUz1E,EAAK01E,GAEvB,IADA,IAAItpE,EAAM,GACDhO,EAAI,EAAGA,EAAI4B,EAAI1B,OAAQF,GAAK,EACjCgO,GAAOpM,EAAI5B,GACPA,EAAI,EAAI4B,EAAI1B,SACZ8N,GAAOspE,GAGf,OAAOtpE,CACX,CAkCqDupE,CAAMH,EAAW,KAAO,4CAAjEC,EAxBK,WACT,GAAI58D,gBAAgBu8D,EAAO,CACvB,IAAIltE,EAAS/J,EAAOF,MAChB4a,KACAs8D,EAAS98B,EAAMh6C,YAEnB,OAAIZ,OAAOyK,KAAYA,EACZA,EAEJ2Q,IACX,CACA,OAAO1a,EAAOF,MACVqgE,EACA6W,EAAS98B,EAAMh6C,WAGvB,IAUIF,EAAOgB,UAAW,CAClB,IAAIy2E,EAAQ,WAAkB,EAC9BA,EAAMz2E,UAAYhB,EAAOgB,UACzBi2E,EAAMj2E,UAAY,IAAIy2E,EACtBA,EAAMz2E,UAAY,IACtB,CAEA,OAAOi2E,CACX,gCCjFA,IAAIS,EAAiBjlE,EAAQ,OAE7BW,EAAOpU,QAAUs4E,SAASt2E,UAAU4qE,MAAQ8L,gCCF5C,IAAIjuE,EAEAkuE,EAASllE,EAAQ,OACjBmlE,EAAanlE,EAAQ,OACrBolE,EAAcplE,EAAQ,MACtBqlE,EAAkBrlE,EAAQ,OAC1BggE,EAAehgE,EAAQ,OACvBg+D,EAAah+D,EAAQ,OACrBslE,EAAYtlE,EAAQ,OAEpBulE,EAAYV,SAGZW,EAAwB,SAAUC,GACrC,IACC,OAAOF,EAAU,yBAA2BE,EAAmB,iBAAxDF,EACR,CAAE,MAAO/mE,GAAI,CACd,EAEIknE,EAAQ74E,OAAOK,yBACnB,GAAIw4E,EACH,IACCA,EAAM,CAAC,EAAG,GACX,CAAE,MAAOlnE,GACRknE,EAAQ,IACT,CAGD,IAAIC,EAAiB,WACpB,MAAM,IAAI3H,CACX,EACI4H,EAAiBF,EACjB,WACF,IAGC,OAAOC,CACR,CAAE,MAAOE,GACR,IAEC,OAAOH,EAAMj4E,UAAW,UAAU8S,GACnC,CAAE,MAAOulE,GACR,OAAOH,CACR,CACD,CACD,CAbG,GAcDA,EAECI,EAAa/lE,EAAQ,MAARA,GACbgmE,EAAWhmE,EAAQ,MAARA,GAEXimE,EAAWp5E,OAAOioD,iBACrBkxB,EACG,SAAU/0E,GAAK,OAAOA,EAAE28D,SAAW,EACnC,MAGAsY,EAAY,CAAC,EAEbC,EAAmC,qBAAfx+D,YAA+Bs+D,EAAuBA,EAASt+D,YAArB3Q,EAE9DovE,EAAa,CAChBxY,UAAW,KACX,mBAA8C,qBAAnByY,eAAiCrvE,EAAYqvE,eACxE,UAAW52E,MACX,gBAAwC,qBAAhB0X,YAA8BnQ,EAAYmQ,YAClE,2BAA4B4+D,GAAcE,EAAWA,EAAS,GAAG73E,OAAOC,aAAe2I,EACvF,mCAAoCA,EACpC,kBAAmBkvE,EACnB,mBAAoBA,EACpB,2BAA4BA,EAC5B,2BAA4BA,EAC5B,YAAgC,qBAAZI,QAA0BtvE,EAAYsvE,QAC1D,WAA8B,qBAAXC,OAAyBvvE,EAAYuvE,OACxD,kBAA4C,qBAAlBC,cAAgCxvE,EAAYwvE,cACtE,mBAA8C,qBAAnBC,eAAiCzvE,EAAYyvE,eACxE,YAAatlD,QACb,aAAkC,qBAAbpY,SAA2B/R,EAAY+R,SAC5D,SAAUsP,KACV,cAAequD,UACf,uBAAwBjkB,mBACxB,cAAekkB,UACf,uBAAwBphB,mBACxB,UAAW2f,EACX,SAAU0B,KACV,cAAezB,EACf,iBAA0C,qBAAjB0B,aAA+B7vE,EAAY6vE,aACpE,iBAA0C,qBAAjBC,aAA+B9vE,EAAY8vE,aACpE,yBAA0D,qBAAzBC,qBAAuC/vE,EAAY+vE,qBACpF,aAAcxB,EACd,sBAAuBW,EACvB,cAAoC,qBAAdc,UAA4BhwE,EAAYgwE,UAC9D,eAAsC,qBAAfC,WAA6BjwE,EAAYiwE,WAChE,eAAsC,qBAAfj7D,WAA6BhV,EAAYgV,WAChE,aAAc2mD,SACd,UAAW5rB,MACX,sBAAuBg/B,GAAcE,EAAWA,EAASA,EAAS,GAAG73E,OAAOC,cAAgB2I,EAC5F,SAA0B,kBAAT2X,KAAoBA,KAAO3X,EAC5C,QAAwB,qBAARkwE,IAAsBlwE,EAAYkwE,IAClD,yBAAyC,qBAARA,KAAwBnB,GAAeE,EAAuBA,GAAS,IAAIiB,KAAM94E,OAAOC,aAAtC2I,EACnF,SAAUsT,KACV,WAAYoY,OACZ,WAAY71B,OACZ,eAAgB6uC,WAChB,aAAc1S,SACd,YAAgC,qBAAZ5xB,QAA0BJ,EAAYI,QAC1D,UAA4B,qBAAV+vE,MAAwBnwE,EAAYmwE,MACtD,eAAgB/B,EAChB,mBAAoBC,EACpB,YAAgC,qBAAZ+B,QAA0BpwE,EAAYowE,QAC1D,WAAYp7C,OACZ,QAAwB,qBAARq7C,IAAsBrwE,EAAYqwE,IAClD,yBAAyC,qBAARA,KAAwBtB,GAAeE,EAAuBA,GAAS,IAAIoB,KAAMj5E,OAAOC,aAAtC2I,EACnF,sBAAoD,qBAAtBswE,kBAAoCtwE,EAAYswE,kBAC9E,WAAY/oD,OACZ,4BAA6BwnD,GAAcE,EAAWA,EAAS,GAAG73E,OAAOC,aAAe2I,EACxF,WAAY+uE,EAAa33E,OAAS4I,EAClC,gBAAiBgpE,EACjB,mBAAoB4F,EACpB,eAAgBO,EAChB,cAAenI,EACf,eAAsC,qBAAfr2D,WAA6B3Q,EAAY2Q,WAChE,sBAAoD,qBAAtB4/D,kBAAoCvwE,EAAYuwE,kBAC9E,gBAAwC,qBAAhBC,YAA8BxwE,EAAYwwE,YAClE,gBAAwC,qBAAhB78D,YAA8B3T,EAAY2T,YAClE,aAAc26D,EACd,YAAgC,qBAAZmC,QAA0BzwE,EAAYywE,QAC1D,YAAgC,qBAAZC,QAA0B1wE,EAAY0wE,QAC1D,YAAgC,qBAAZC,QAA0B3wE,EAAY2wE,SAG3D,GAAI1B,EACH,IACC,KAAKzoE,KACN,CAAE,MAAOgB,GAER,IAAIopE,EAAa3B,EAASA,EAASznE,IACnC4nE,EAAW,qBAAuBwB,CACnC,CAGD,IAAIC,EAAS,SAASA,EAAOn3E,GAC5B,IAAIlC,EACJ,GAAa,oBAATkC,EACHlC,EAAQg3E,EAAsB,6BACxB,GAAa,wBAAT90E,EACVlC,EAAQg3E,EAAsB,wBACxB,GAAa,6BAAT90E,EACVlC,EAAQg3E,EAAsB,8BACxB,GAAa,qBAAT90E,EAA6B,CACvC,IAAIkpB,EAAKiuD,EAAO,4BACZjuD,IACHprB,EAAQorB,EAAGrrB,UAEb,MAAO,GAAa,6BAATmC,EAAqC,CAC/C,IAAIo3E,EAAMD,EAAO,oBACbC,GAAO7B,IACVz3E,EAAQy3E,EAAS6B,EAAIv5E,WAEvB,CAIA,OAFA63E,EAAW11E,GAAQlC,EAEZA,CACR,EAEIu5E,EAAiB,CACpBna,UAAW,KACX,yBAA0B,CAAC,cAAe,aAC1C,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,QAAS,YAAa,WAC/C,uBAAwB,CAAC,QAAS,YAAa,WAC/C,oBAAqB,CAAC,QAAS,YAAa,QAC5C,sBAAuB,CAAC,QAAS,YAAa,UAC9C,2BAA4B,CAAC,gBAAiB,aAC9C,mBAAoB,CAAC,yBAA0B,aAC/C,4BAA6B,CAAC,yBAA0B,YAAa,aACrE,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,WAAY,aACpC,kBAAmB,CAAC,OAAQ,aAC5B,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,YAAa,aACtC,0BAA2B,CAAC,eAAgB,aAC5C,0BAA2B,CAAC,eAAgB,aAC5C,sBAAuB,CAAC,WAAY,aACpC,cAAe,CAAC,oBAAqB,aACrC,uBAAwB,CAAC,oBAAqB,YAAa,aAC3D,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,wBAAyB,CAAC,aAAc,aACxC,cAAe,CAAC,OAAQ,SACxB,kBAAmB,CAAC,OAAQ,aAC5B,iBAAkB,CAAC,MAAO,aAC1B,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,sBAAuB,CAAC,SAAU,YAAa,YAC/C,qBAAsB,CAAC,SAAU,YAAa,WAC9C,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,UAAW,YAAa,QAChD,gBAAiB,CAAC,UAAW,OAC7B,mBAAoB,CAAC,UAAW,UAChC,oBAAqB,CAAC,UAAW,WACjC,wBAAyB,CAAC,aAAc,aACxC,4BAA6B,CAAC,iBAAkB,aAChD,oBAAqB,CAAC,SAAU,aAChC,iBAAkB,CAAC,MAAO,aAC1B,+BAAgC,CAAC,oBAAqB,aACtD,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,yBAA0B,CAAC,cAAe,aAC1C,wBAAyB,CAAC,aAAc,aACxC,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,+BAAgC,CAAC,oBAAqB,aACtD,yBAA0B,CAAC,cAAe,aAC1C,yBAA0B,CAAC,cAAe,aAC1C,sBAAuB,CAAC,WAAY,aACpC,qBAAsB,CAAC,UAAW,aAClC,qBAAsB,CAAC,UAAW,cAG/BuL,EAAOn5D,EAAQ,OACfgoE,EAAShoE,EAAQ,OACjBioE,EAAU9O,EAAKjqE,KAAK21E,SAAS31E,KAAMO,MAAMlB,UAAUoI,QACnDuxE,EAAe/O,EAAKjqE,KAAK21E,SAASx3E,MAAOoC,MAAMlB,UAAUugD,QACzDq5B,EAAWhP,EAAKjqE,KAAK21E,SAAS31E,KAAMqvB,OAAOhwB,UAAU2f,SACrDk6D,EAAYjP,EAAKjqE,KAAK21E,SAAS31E,KAAMqvB,OAAOhwB,UAAUkC,OACtD43E,EAAQlP,EAAKjqE,KAAK21E,SAAS31E,KAAM88B,OAAOz9B,UAAUywD,MAGlDspB,EAAa,qGACbC,EAAe,WAiBfC,EAAmB,SAA0B93E,EAAMmtE,GACtD,IACI4K,EADAC,EAAgBh4E,EAOpB,GALIs3E,EAAOD,EAAgBW,KAE1BA,EAAgB,KADhBD,EAAQV,EAAeW,IACK,GAAK,KAG9BV,EAAO5B,EAAYsC,GAAgB,CACtC,IAAIl6E,EAAQ43E,EAAWsC,GAIvB,GAHIl6E,IAAU03E,IACb13E,EAAQq5E,EAAOa,IAEK,qBAAVl6E,IAA0BqvE,EACpC,MAAM,IAAIG,EAAW,aAAettE,EAAO,wDAG5C,MAAO,CACN+3E,MAAOA,EACP/3E,KAAMg4E,EACNl6E,MAAOA,EAET,CAEA,MAAM,IAAIwxE,EAAa,aAAetvE,EAAO,mBAC9C,EAEAiQ,EAAOpU,QAAU,SAAsBmE,EAAMmtE,GAC5C,GAAoB,kBAATntE,GAAqC,IAAhBA,EAAKhD,OACpC,MAAM,IAAIswE,EAAW,6CAEtB,GAAIvwE,UAAUC,OAAS,GAA6B,mBAAjBmwE,EAClC,MAAM,IAAIG,EAAW,6CAGtB,GAAmC,OAA/BqK,EAAM,cAAe33E,GACxB,MAAM,IAAIsvE,EAAa,sFAExB,IAAI1wD,EAtDc,SAAsBxc,GACxC,IAAI61E,EAAQP,EAAUt1E,EAAQ,EAAG,GAC7B81E,EAAOR,EAAUt1E,GAAS,GAC9B,GAAc,MAAV61E,GAA0B,MAATC,EACpB,MAAM,IAAI5I,EAAa,kDACjB,GAAa,MAAT4I,GAA0B,MAAVD,EAC1B,MAAM,IAAI3I,EAAa,kDAExB,IAAI1oE,EAAS,GAIb,OAHA6wE,EAASr1E,EAAQw1E,GAAY,SAAUn6D,EAAOtb,EAAQg2E,EAAOC,GAC5DxxE,EAAOA,EAAO5J,QAAUm7E,EAAQV,EAASW,EAAWP,EAAc,MAAQ11E,GAAUsb,CACrF,IACO7W,CACR,CAyCayxE,CAAar4E,GACrBs4E,EAAoB15D,EAAM5hB,OAAS,EAAI4hB,EAAM,GAAK,GAElDwuD,EAAY0K,EAAiB,IAAMQ,EAAoB,IAAKnL,GAC5DoL,EAAoBnL,EAAUptE,KAC9BlC,EAAQsvE,EAAUtvE,MAClB06E,GAAqB,EAErBT,EAAQ3K,EAAU2K,MAClBA,IACHO,EAAoBP,EAAM,GAC1BP,EAAa54D,EAAO24D,EAAQ,CAAC,EAAG,GAAIQ,KAGrC,IAAK,IAAIj7E,EAAI,EAAG27E,GAAQ,EAAM37E,EAAI8hB,EAAM5hB,OAAQF,GAAK,EAAG,CACvD,IAAIwgD,EAAO1+B,EAAM9hB,GACbm7E,EAAQP,EAAUp6B,EAAM,EAAG,GAC3B46B,EAAOR,EAAUp6B,GAAO,GAC5B,IAEa,MAAV26B,GAA2B,MAAVA,GAA2B,MAAVA,GACtB,MAATC,GAAyB,MAATA,GAAyB,MAATA,IAElCD,IAAUC,EAEb,MAAM,IAAI5I,EAAa,wDASxB,GAPa,gBAAThyB,GAA2Bm7B,IAC9BD,GAAqB,GAMlBlB,EAAO5B,EAFX6C,EAAoB,KADpBD,GAAqB,IAAMh7B,GACmB,KAG7Cx/C,EAAQ43E,EAAW6C,QACb,GAAa,MAATz6E,EAAe,CACzB,KAAMw/C,KAAQx/C,GAAQ,CACrB,IAAKqvE,EACJ,MAAM,IAAIG,EAAW,sBAAwBttE,EAAO,+CAErD,MACD,CACA,GAAIg1E,GAAUl4E,EAAI,GAAM8hB,EAAM5hB,OAAQ,CACrC,IAAI4yE,EAAOoF,EAAMl3E,EAAOw/C,GAWvBx/C,GAVD26E,IAAU7I,IASG,QAASA,KAAU,kBAAmBA,EAAK//D,KAC/C+/D,EAAK//D,IAEL/R,EAAMw/C,EAEhB,MACCm7B,EAAQnB,EAAOx5E,EAAOw/C,GACtBx/C,EAAQA,EAAMw/C,GAGXm7B,IAAUD,IACb9C,EAAW6C,GAAqBz6E,EAElC,CACD,CACA,OAAOA,CACR,gCCpWA,IAEIk3E,EAFe1lE,EAAQ,MAEf09D,CAAa,qCAAqC,GAE9D,GAAIgI,EACH,IACCA,EAAM,GAAI,SACX,CAAE,MAAOlnE,GAERknE,EAAQ,IACT,CAGD/kE,EAAOpU,QAAUm5E,gCCbjB,IAAItH,EAAkBp+D,EAAQ,OAE1BopE,EAAyB,WAC5B,QAAShL,CACV,EAEAgL,EAAuBC,wBAA0B,WAEhD,IAAKjL,EACJ,OAAO,KAER,IACC,OAA8D,IAAvDA,EAAgB,GAAI,SAAU,CAAE5vE,MAAO,IAAKd,MACpD,CAAE,MAAO8Q,GAER,OAAO,CACR,CACD,EAEAmC,EAAOpU,QAAU68E,0BCnBjB,IAAIx4E,EAAO,CACVg9D,UAAW,KACX4D,IAAK,CAAC,GAGH8X,EAAUz8E,OAGd8T,EAAOpU,QAAU,WAEhB,MAAO,CAAEqhE,UAAWh9D,GAAO4gE,MAAQ5gE,EAAK4gE,OAClC5gE,aAAgB04E,EACvB,gCCZA,IAAIC,EAA+B,qBAAXn7E,QAA0BA,OAC9Co7E,EAAgBxpE,EAAQ,OAE5BW,EAAOpU,QAAU,WAChB,MAA0B,oBAAfg9E,IACW,oBAAXn7E,SACsB,kBAAtBm7E,EAAW,SACO,kBAAlBn7E,OAAO,QAEXo7E,MACR,0BCTA7oE,EAAOpU,QAAU,WAChB,GAAsB,oBAAX6B,QAAiE,oBAAjCvB,OAAOC,sBAAwC,OAAO,EACjG,GAA+B,kBAApBsB,OAAOC,SAAyB,OAAO,EAElD,IAAIF,EAAM,CAAC,EACPlB,EAAMmB,OAAO,QACbq7E,EAAS58E,OAAOI,GACpB,GAAmB,kBAARA,EAAoB,OAAO,EAEtC,GAA4C,oBAAxCJ,OAAO0B,UAAUiC,SAAStB,KAAKjC,GAA8B,OAAO,EACxE,GAA+C,oBAA3CJ,OAAO0B,UAAUiC,SAAStB,KAAKu6E,GAAiC,OAAO,EAY3E,IAAKx8E,KADLkB,EAAIlB,GADS,GAEDkB,EAAO,OAAO,EAC1B,GAA2B,oBAAhBtB,OAAOD,MAAmD,IAA5BC,OAAOD,KAAKuB,GAAKT,OAAgB,OAAO,EAEjF,GAA0C,oBAA/Bb,OAAO68E,qBAAiF,IAA3C78E,OAAO68E,oBAAoBv7E,GAAKT,OAAgB,OAAO,EAE/G,IAAIi8E,EAAO98E,OAAOC,sBAAsBqB,GACxC,GAAoB,IAAhBw7E,EAAKj8E,QAAgBi8E,EAAK,KAAO18E,EAAO,OAAO,EAEnD,IAAKJ,OAAO0B,UAAUU,qBAAqBC,KAAKf,EAAKlB,GAAQ,OAAO,EAEpE,GAA+C,oBAApCJ,OAAOK,yBAAyC,CAC1D,IAAIkwC,EAAavwC,OAAOK,yBAAyBiB,EAAKlB,GACtD,GAdY,KAcRmwC,EAAW5uC,QAA8C,IAA1B4uC,EAAWjwC,WAAuB,OAAO,CAC7E,CAEA,OAAO,CACR,gCCvCA,IAAI44E,EAAa/lE,EAAQ,OAGzBW,EAAOpU,QAAU,WAChB,OAAOw5E,OAAkB33E,OAAO21E,WACjC,gCCLA,IAAI70E,EAAO21E,SAASt2E,UAAUW,KAC1B06E,EAAU/8E,OAAO0B,UAAU4C,eAC3BgoE,EAAOn5D,EAAQ,OAGnBW,EAAOpU,QAAU4sE,EAAKjqE,KAAKA,EAAM06E,iBCPjCr9E,EAAQuiC,KAAO,SAAUlnB,EAAQuD,EAAQ0+D,EAAMC,EAAMC,GACnD,IAAIvrE,EAAG0wD,EACH8a,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACT38E,EAAIq8E,EAAQE,EAAS,EAAK,EAC1BrgE,EAAImgE,GAAQ,EAAI,EAChBvgE,EAAI1B,EAAOuD,EAAS3d,GAOxB,IALAA,GAAKkc,EAELlL,EAAI8K,GAAM,IAAO6gE,GAAU,EAC3B7gE,KAAQ6gE,EACRA,GAASH,EACFG,EAAQ,EAAG3rE,EAAS,IAAJA,EAAWoJ,EAAOuD,EAAS3d,GAAIA,GAAKkc,EAAGygE,GAAS,GAKvE,IAHAjb,EAAI1wD,GAAM,IAAO2rE,GAAU,EAC3B3rE,KAAQ2rE,EACRA,GAASL,EACFK,EAAQ,EAAGjb,EAAS,IAAJA,EAAWtnD,EAAOuD,EAAS3d,GAAIA,GAAKkc,EAAGygE,GAAS,GAEvE,GAAU,IAAN3rE,EACFA,EAAI,EAAI0rE,MACH,IAAI1rE,IAAMyrE,EACf,OAAO/a,EAAIkb,IAAsBxU,KAAdtsD,GAAK,EAAI,GAE5B4lD,GAAQ5kD,KAAKM,IAAI,EAAGk/D,GACpBtrE,GAAQ0rE,CACV,CACA,OAAQ5gE,GAAK,EAAI,GAAK4lD,EAAI5kD,KAAKM,IAAI,EAAGpM,EAAIsrE,EAC5C,EAEAv9E,EAAQ+e,MAAQ,SAAU1D,EAAQpZ,EAAO2c,EAAQ0+D,EAAMC,EAAMC,GAC3D,IAAIvrE,EAAG0wD,EAAGzlD,EACNugE,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBI,EAAe,KAATP,EAAcx/D,KAAKM,IAAI,GAAI,IAAMN,KAAKM,IAAI,GAAI,IAAM,EAC1Dpd,EAAIq8E,EAAO,EAAKE,EAAS,EACzBrgE,EAAImgE,EAAO,GAAK,EAChBvgE,EAAI9a,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ8b,KAAKse,IAAIp6B,GAEbu4C,MAAMv4C,IAAUA,IAAUonE,KAC5B1G,EAAInoB,MAAMv4C,GAAS,EAAI,EACvBgQ,EAAIyrE,IAEJzrE,EAAI8L,KAAKC,MAAMD,KAAKunB,IAAIrjC,GAAS8b,KAAKggE,KAClC97E,GAASib,EAAIa,KAAKM,IAAI,GAAIpM,IAAM,IAClCA,IACAiL,GAAK,IAGLjb,GADEgQ,EAAI0rE,GAAS,EACNG,EAAK5gE,EAEL4gE,EAAK//D,KAAKM,IAAI,EAAG,EAAIs/D,IAEpBzgE,GAAK,IACfjL,IACAiL,GAAK,GAGHjL,EAAI0rE,GAASD,GACf/a,EAAI,EACJ1wD,EAAIyrE,GACKzrE,EAAI0rE,GAAS,GACtBhb,GAAM1gE,EAAQib,EAAK,GAAKa,KAAKM,IAAI,EAAGk/D,GACpCtrE,GAAQ0rE,IAERhb,EAAI1gE,EAAQ8b,KAAKM,IAAI,EAAGs/D,EAAQ,GAAK5/D,KAAKM,IAAI,EAAGk/D,GACjDtrE,EAAI,IAIDsrE,GAAQ,EAAGliE,EAAOuD,EAAS3d,GAAS,IAAJ0hE,EAAU1hE,GAAKkc,EAAGwlD,GAAK,IAAK4a,GAAQ,GAI3E,IAFAtrE,EAAKA,GAAKsrE,EAAQ5a,EAClB8a,GAAQF,EACDE,EAAO,EAAGpiE,EAAOuD,EAAS3d,GAAS,IAAJgR,EAAUhR,GAAKkc,EAAGlL,GAAK,IAAKwrE,GAAQ,GAE1EpiE,EAAOuD,EAAS3d,EAAIkc,IAAU,IAAJJ,CAC5B,aCnF6B,oBAAlBzc,OAAOwQ,OAEhBsD,EAAOpU,QAAU,SAAkBw7D,EAAMwiB,GACnCA,IACFxiB,EAAKyiB,OAASD,EACdxiB,EAAKx5D,UAAY1B,OAAOwQ,OAAOktE,EAAUh8E,UAAW,CAClDD,YAAa,CACXE,MAAOu5D,EACP56D,YAAY,EACZuB,UAAU,EACVD,cAAc,KAItB,EAGAkS,EAAOpU,QAAU,SAAkBw7D,EAAMwiB,GACvC,GAAIA,EAAW,CACbxiB,EAAKyiB,OAASD,EACd,IAAIE,EAAW,WAAa,EAC5BA,EAASl8E,UAAYg8E,EAAUh8E,UAC/Bw5D,EAAKx5D,UAAY,IAAIk8E,EACrB1iB,EAAKx5D,UAAUD,YAAcy5D,CAC/B,CACF,gCCvBF,IAAI2iB,EAAiB1qE,EAAQ,MAARA,GAGjB2qE,EAFY3qE,EAAQ,MAER4qE,CAAU,6BAEtBC,EAAsB,SAAqBr8E,GAC9C,QAAIk8E,GAAkBl8E,GAA0B,kBAAVA,GAAsBJ,OAAO21E,eAAev1E,IAGtD,uBAArBm8E,EAAUn8E,EAClB,EAEIs8E,EAAoB,SAAqBt8E,GAC5C,QAAIq8E,EAAoBr8E,IAGP,OAAVA,GACW,kBAAVA,GACiB,kBAAjBA,EAAMd,QACbc,EAAMd,QAAU,GACK,mBAArBi9E,EAAUn8E,IACkB,sBAA5Bm8E,EAAUn8E,EAAMu8E,OAClB,EAEIC,EAA6B,WAChC,OAAOH,EAAoBp9E,UAC5B,CAFiC,GAIjCo9E,EAAoBC,kBAAoBA,EAExCnqE,EAAOpU,QAAUy+E,EAA4BH,EAAsBC,0BC9BnE,IAEIG,EACAC,EAHAC,EAAUtG,SAASt2E,UAAUiC,SAC7B46E,EAAkC,kBAAZhE,SAAoC,OAAZA,SAAoBA,QAAQ/5E,MAG9E,GAA4B,oBAAjB+9E,GAAgE,oBAA1Bv+E,OAAOoB,eACvD,IACCg9E,EAAep+E,OAAOoB,eAAe,CAAC,EAAG,SAAU,CAClDsS,IAAK,WACJ,MAAM2qE,CACP,IAEDA,EAAmB,CAAC,EAEpBE,GAAa,WAAc,MAAM,EAAI,GAAG,KAAMH,EAC/C,CAAE,MAAOxuD,GACJA,IAAMyuD,IACTE,EAAe,KAEjB,MAEAA,EAAe,KAGhB,IAAIC,EAAmB,cACnBC,EAAe,SAA4B98E,GAC9C,IACC,IAAI+8E,EAAQJ,EAAQj8E,KAAKV,GACzB,OAAO68E,EAAiBz6E,KAAK26E,EAC9B,CAAE,MAAO/sE,GACR,OAAO,CACR,CACD,EAEIgtE,EAAoB,SAA0Bh9E,GACjD,IACC,OAAI88E,EAAa98E,KACjB28E,EAAQj8E,KAAKV,IACN,EACR,CAAE,MAAOgQ,GACR,OAAO,CACR,CACD,EACIylE,EAAQp3E,OAAO0B,UAAUiC,SAOzBk6E,EAAmC,oBAAXt8E,UAA2BA,OAAO21E,YAE1D0H,IAAW,IAAK,CAAC,IAEjBC,EAAQ,WAA8B,OAAO,CAAO,EACxD,GAAwB,kBAAbhyC,SAAuB,CAEjC,IAAIomC,EAAMpmC,SAASomC,IACfmE,EAAM/0E,KAAK4wE,KAASmE,EAAM/0E,KAAKwqC,SAASomC,OAC3C4L,EAAQ,SAA0Bl9E,GAGjC,IAAKi9E,IAAWj9E,KAA4B,qBAAVA,GAA0C,kBAAVA,GACjE,IACC,IAAIgN,EAAMyoE,EAAM/0E,KAAKV,GACrB,OAlBU,+BAmBTgN,GAlBU,qCAmBPA,GAlBO,4BAmBPA,GAxBS,oBAyBTA,IACc,MAAbhN,EAAM,GACZ,CAAE,MAAOgQ,GAAS,CAEnB,OAAO,CACR,EAEF,CAEAmC,EAAOpU,QAAU6+E,EACd,SAAoB58E,GACrB,GAAIk9E,EAAMl9E,GAAU,OAAO,EAC3B,IAAKA,EAAS,OAAO,EACrB,GAAqB,oBAAVA,GAAyC,kBAAVA,EAAsB,OAAO,EACvE,IACC48E,EAAa58E,EAAO,KAAMy8E,EAC3B,CAAE,MAAOzsE,GACR,GAAIA,IAAM0sE,EAAoB,OAAO,CACtC,CACA,OAAQI,EAAa98E,IAAUg9E,EAAkBh9E,EAClD,EACE,SAAoBA,GACrB,GAAIk9E,EAAMl9E,GAAU,OAAO,EAC3B,IAAKA,EAAS,OAAO,EACrB,GAAqB,oBAAVA,GAAyC,kBAAVA,EAAsB,OAAO,EACvE,GAAIk8E,EAAkB,OAAOc,EAAkBh9E,GAC/C,GAAI88E,EAAa98E,GAAU,OAAO,EAClC,IAAIm9E,EAAW1H,EAAM/0E,KAAKV,GAC1B,QApDY,sBAoDRm9E,GAnDS,+BAmDeA,IAA2B,iBAAkB/6E,KAAK+6E,KACvEH,EAAkBh9E,EAC1B,gCClGD,IAcIo9E,EAdA3H,EAAQp3E,OAAO0B,UAAUiC,SACzB26E,EAAUtG,SAASt2E,UAAUiC,SAC7Bq7E,EAAY,sBACZnB,EAAiB1qE,EAAQ,MAARA,GACjBimE,EAAWp5E,OAAOioD,eAYtBn0C,EAAOpU,QAAU,SAA6BqtB,GAC7C,GAAkB,oBAAPA,EACV,OAAO,EAER,GAAIiyD,EAAUj7E,KAAKu6E,EAAQj8E,KAAK0qB,IAC/B,OAAO,EAER,IAAK8wD,EAEJ,MAAe,+BADLzG,EAAM/0E,KAAK0qB,GAGtB,IAAKqsD,EACJ,OAAO,EAER,GAAiC,qBAAtB2F,EAAmC,CAC7C,IAAIE,EA1BiB,WACtB,IAAKpB,EACJ,OAAO,EAER,IACC,OAAO7F,SAAS,wBAATA,EACR,CAAE,MAAOrmE,GACT,CACD,CAkBsButE,GACpBH,IAAoBE,GAAgB7F,EAAS6F,EAC9C,CACA,OAAO7F,EAASrsD,KAAQgyD,CACzB,gCCnCA,IAAII,EAAkBhsE,EAAQ,OAG9BW,EAAOpU,QAAU,SAAsBiC,GACtC,QAASw9E,EAAgBx9E,EAC1B,kBCPA,SAAUjC,GACR,aAEA,SAASmD,EAAQvB,GACf,OAAY,OAARA,GAC6C,mBAAxCtB,OAAO0B,UAAUiC,SAAStB,KAAKf,EAI1C,CAEA,SAASkoE,EAASloE,GAChB,OAAY,OAARA,GAC6C,oBAAxCtB,OAAO0B,UAAUiC,SAAStB,KAAKf,EAI1C,CAEA,SAAS86C,EAAgB0/B,EAAOsD,GAE9B,GAAItD,IAAUsD,EACZ,OAAO,EAKT,GADgBp/E,OAAO0B,UAAUiC,SAAStB,KAAKy5E,KAC7B97E,OAAO0B,UAAUiC,SAAStB,KAAK+8E,GAC/C,OAAO,EAIT,IAAuB,IAAnBv8E,EAAQi5E,GAAiB,CAE3B,GAAIA,EAAMj7E,SAAWu+E,EAAOv+E,OAC1B,OAAO,EAET,IAAK,IAAIF,EAAI,EAAGA,EAAIm7E,EAAMj7E,OAAQF,IAChC,IAA6C,IAAzCy7C,EAAgB0/B,EAAMn7E,GAAIy+E,EAAOz+E,IACnC,OAAO,EAGX,OAAO,CACT,CACA,IAAwB,IAApB6oE,EAASsS,GAAiB,CAE5B,IAAIuD,EAAW,CAAC,EAChB,IAAK,IAAIr+E,KAAO86E,EACd,GAAIx3E,eAAejC,KAAKy5E,EAAO96E,GAAM,CACnC,IAAiD,IAA7Co7C,EAAgB0/B,EAAM96E,GAAMo+E,EAAOp+E,IACrC,OAAO,EAETq+E,EAASr+E,IAAO,CAClB,CAIF,IAAK,IAAIs+E,KAAQF,EACf,GAAI96E,eAAejC,KAAK+8E,EAAQE,KACP,IAAnBD,EAASC,GACX,OAAO,EAIb,OAAO,CACT,CACA,OAAO,CACT,CAEA,SAASC,EAAQj+E,GAUf,GAAY,KAARA,IAAsB,IAARA,GAAyB,OAARA,EAC/B,OAAO,EACJ,GAAIuB,EAAQvB,IAAuB,IAAfA,EAAIT,OAE3B,OAAO,EACJ,GAAI2oE,EAASloE,GAAM,CAEtB,IAAK,IAAIN,KAAOM,EAIZ,GAAIA,EAAIgD,eAAetD,GACrB,OAAO,EAGb,OAAO,CACX,CACI,OAAO,CAEb,CAsBA,IAAIw+E,EAEFA,EADuC,oBAA9B9tD,OAAOhwB,UAAU89E,SACf,SAAS7wE,GAClB,OAAOA,EAAI6wE,UACb,EAEW,SAAS7wE,GAClB,OAAOA,EAAI2S,MAAM,YAAY,EAC/B,EAIF,IAAIm+D,EAAc,EACdC,EAAW,EACXC,EAAc,EACdC,EAAa,EACbC,EAAc,EAEdC,EAAc,EAEdC,EAAoB,EACpBC,EAAoB,EACpBC,EAAkB,CACpB,EAAG,SACH,EAAG,MACH,EAAG,SACH,EAAG,QACH,EAAG,SACH,EAAG,UACH,EAAG,aACH,EAAG,OACH,EAAG,gBACH,EAAG,iBAGDC,EAAU,MACVC,EAAyB,qBACzBC,EAAuB,mBACvBC,EAAe,WACfC,EAAa,SACbC,EAAY,QACZC,EAAY,QACZC,EAAa,SACbC,EAAa,SACbC,EAAc,UACdC,EAAa,SACbC,EAAW,OACXC,EAAS,KACTC,EAAU,MACVC,EAAS,KACTC,EAAS,KACTC,EAAS,KACTC,EAAU,MACVC,EAAU,MACVC,EAAS,KACTC,EAAc,UACdC,EAAW,OACXC,EAAa,SACbC,EAAU,MACVC,EAAU,MACVC,EAAa,SACbC,EAAe,WACfC,EAAY,SACZC,EAAa,UAQbC,EAAc,CAChB,IAAKN,EACL,IAAKF,EACL,IAAKhB,EACL,IAAKC,EACL,IAAKmB,EACL,IAAKlB,EACL,IAAKJ,EACL,IAAKwB,EACL,IAAKvB,EACL,IAAKK,GAGHqB,EAAqB,CACrB,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GAGLC,EAAY,CACZ,KAAK,EACL,MAAM,EACN,MAAM,GAUV,SAASC,EAAMtpB,GACX,OAAQA,GAAM,KAAOA,GAAM,KACb,MAAPA,CACX,CAQA,SAASupB,IACT,CACAA,EAAMzgF,UAAY,CACd0gF,SAAU,SAASrnD,GACf,IAEI0gC,EACAlU,EACAxiC,EAzBK6zC,EAqBLypB,EAAS,GAKb,IAJAjnE,KAAKknE,SAAW,EAITlnE,KAAKknE,SAAWvnD,EAAOl6B,QAC1B,IA3BK+3D,EA2BO79B,EAAO3f,KAAKknE,YA1BlB,KAAO1pB,GAAM,KACnBA,GAAM,KAAOA,GAAM,KACb,MAAPA,EAyBK6C,EAAQrgD,KAAKknE,SACb/6B,EAAansC,KAAKmnE,2BAA2BxnD,GAC7CsnD,EAAO9hF,KAAK,CAACwO,KAAMoxE,EACNx+E,MAAO4lD,EACPkU,MAAOA,SACjB,QAA2CtxD,IAAvC43E,EAAYhnD,EAAO3f,KAAKknE,WAC/BD,EAAO9hF,KAAK,CAACwO,KAAMgzE,EAAYhnD,EAAO3f,KAAKknE,WAC/B3gF,MAAOo5B,EAAO3f,KAAKknE,UACnB7mB,MAAOrgD,KAAKknE,WACxBlnE,KAAKknE,gBACF,GAAIJ,EAAMnnD,EAAO3f,KAAKknE,WACzBv9D,EAAQ3J,KAAKonE,eAAeznD,GAC5BsnD,EAAO9hF,KAAKwkB,QACT,GAA8B,MAA1BgW,EAAO3f,KAAKknE,UAGnBv9D,EAAQ3J,KAAKqnE,iBAAiB1nD,GAC9BsnD,EAAO9hF,KAAKwkB,QACT,GAA8B,MAA1BgW,EAAO3f,KAAKknE,UACnB7mB,EAAQrgD,KAAKknE,SACb/6B,EAAansC,KAAKsnE,yBAAyB3nD,GAC3CsnD,EAAO9hF,KAAK,CAACwO,KAAMqxE,EACNz+E,MAAO4lD,EACPkU,MAAOA,SACjB,GAA8B,MAA1B1gC,EAAO3f,KAAKknE,UACnB7mB,EAAQrgD,KAAKknE,SACb/6B,EAAansC,KAAKunE,yBAAyB5nD,GAC3CsnD,EAAO9hF,KAAK,CAACwO,KAAM+yE,EACNngF,MAAO4lD,EACPkU,MAAOA,SACjB,GAA8B,MAA1B1gC,EAAO3f,KAAKknE,UAAmB,CACtC7mB,EAAQrgD,KAAKknE,SACb,IAAIM,EAAUxnE,KAAKynE,gBAAgB9nD,GACnCsnD,EAAO9hF,KAAK,CAACwO,KAAM+yE,EACNngF,MAAOihF,EACPnnB,MAAOA,GACxB,MAAO,QAAkDtxD,IAA9C63E,EAAmBjnD,EAAO3f,KAAKknE,WACtCD,EAAO9hF,KAAK6a,KAAK0nE,iBAAiB/nD,SAC/B,QAAyC5wB,IAArC83E,EAAUlnD,EAAO3f,KAAKknE,WAE7BlnE,KAAKknE,gBACF,GAA8B,MAA1BvnD,EAAO3f,KAAKknE,UACnB7mB,EAAQrgD,KAAKknE,SACblnE,KAAKknE,WACyB,MAA1BvnD,EAAO3f,KAAKknE,WACZlnE,KAAKknE,WACLD,EAAO9hF,KAAK,CAACwO,KAAMgyE,EAASp/E,MAAO,KAAM85D,MAAOA,KAEhD4mB,EAAO9hF,KAAK,CAACwO,KAAM6xE,EAAYj/E,MAAO,IAAK85D,MAAOA,QAEnD,IAA8B,MAA1B1gC,EAAO3f,KAAKknE,UAShB,CACH,IAAI3xE,EAAQ,IAAIlL,MAAM,qBAAuBs1B,EAAO3f,KAAKknE,WAEzD,MADA3xE,EAAM9M,KAAO,aACP8M,CACV,CAZI8qD,EAAQrgD,KAAKknE,SACblnE,KAAKknE,WACyB,MAA1BvnD,EAAO3f,KAAKknE,WACZlnE,KAAKknE,WACLD,EAAO9hF,KAAK,CAACwO,KAAM+xE,EAAQn/E,MAAO,KAAM85D,MAAOA,KAE/C4mB,EAAO9hF,KAAK,CAACwO,KAAM8xE,EAAUl/E,MAAO,IAAK85D,MAAOA,GAMxD,CAEJ,OAAO4mB,CACX,EAEAE,2BAA4B,SAASxnD,GACjC,IAvFY69B,EAuFR6C,EAAQrgD,KAAKknE,SAEjB,IADAlnE,KAAKknE,WACElnE,KAAKknE,SAAWvnD,EAAOl6B,UAzFlB+3D,EAyFuC79B,EAAO3f,KAAKknE,YAxFrD,KAAO1pB,GAAM,KACnBA,GAAM,KAAOA,GAAM,KACnBA,GAAM,KAAOA,GAAM,KACb,MAAPA,IAsFCx9C,KAAKknE,WAET,OAAOvnD,EAAOn3B,MAAM63D,EAAOrgD,KAAKknE,SACpC,EAEAI,yBAA0B,SAAS3nD,GAC/B,IAAI0gC,EAAQrgD,KAAKknE,SACjBlnE,KAAKknE,WAEL,IADA,IAAIS,EAAYhoD,EAAOl6B,OACU,MAA1Bk6B,EAAO3f,KAAKknE,WAAsBlnE,KAAKknE,SAAWS,GAAW,CAEhE,IAAIx7E,EAAU6T,KAAKknE,SACK,OAApBvnD,EAAOxzB,IAA8C,OAAxBwzB,EAAOxzB,EAAU,IACO,MAAxBwzB,EAAOxzB,EAAU,GAG9CA,IAFAA,GAAW,EAIf6T,KAAKknE,SAAW/6E,CACpB,CAEA,OADA6T,KAAKknE,WACExgE,KAAKe,MAAMkY,EAAOn3B,MAAM63D,EAAOrgD,KAAKknE,UAC/C,EAEAK,yBAA0B,SAAS5nD,GAC/B,IAAI0gC,EAAQrgD,KAAKknE,SACjBlnE,KAAKknE,WAEL,IADA,IAAIS,EAAYhoD,EAAOl6B,OACU,MAA1Bk6B,EAAO3f,KAAKknE,WAAqBlnE,KAAKknE,SAAWS,GAAW,CAE/D,IAAIx7E,EAAU6T,KAAKknE,SACK,OAApBvnD,EAAOxzB,IAA8C,OAAxBwzB,EAAOxzB,EAAU,IACO,MAAxBwzB,EAAOxzB,EAAU,GAG9CA,IAFAA,GAAW,EAIf6T,KAAKknE,SAAW/6E,CACpB,CAGA,OAFA6T,KAAKknE,WACSvnD,EAAOn3B,MAAM63D,EAAQ,EAAGrgD,KAAKknE,SAAW,GACvCjhE,QAAQ,MAAO,IAClC,EAEAmhE,eAAgB,SAASznD,GACrB,IAAI0gC,EAAQrgD,KAAKknE,SACjBlnE,KAAKknE,WAEL,IADA,IAAIS,EAAYhoD,EAAOl6B,OAChBqhF,EAAMnnD,EAAO3f,KAAKknE,YAAclnE,KAAKknE,SAAWS,GACnD3nE,KAAKknE,WAET,IAAI3gF,EAAQw6B,SAASpB,EAAOn3B,MAAM63D,EAAOrgD,KAAKknE,WAC9C,MAAO,CAACvzE,KAAM2xE,EAAY/+E,MAAOA,EAAO85D,MAAOA,EACnD,EAEAgnB,iBAAkB,SAAS1nD,GACvB,IAAI0gC,EAAQrgD,KAAKknE,SAEjB,OADAlnE,KAAKknE,WACyB,MAA1BvnD,EAAO3f,KAAKknE,WACZlnE,KAAKknE,WACE,CAACvzE,KAAMyyE,EAAY7/E,MAAO,KAAM85D,MAAOA,IACb,MAA1B1gC,EAAO3f,KAAKknE,WACnBlnE,KAAKknE,WACE,CAACvzE,KAAMuyE,EAAa3/E,MAAO,KAAM85D,MAAOA,IAExC,CAAC1sD,KAAM6yE,EAAcjgF,MAAO,IAAK85D,MAAOA,EAEvD,EAEAqnB,iBAAkB,SAAS/nD,GACvB,IAAI0gC,EAAQrgD,KAAKknE,SACbU,EAAejoD,EAAO0gC,GAE1B,OADArgD,KAAKknE,WACgB,MAAjBU,EAC8B,MAA1BjoD,EAAO3f,KAAKknE,WACZlnE,KAAKknE,WACE,CAACvzE,KAAMsyE,EAAQ1/E,MAAO,KAAM85D,MAAOA,IAErC,CAAC1sD,KAAM2yE,EAAS//E,MAAO,IAAK85D,MAAOA,GAEpB,MAAjBunB,EACuB,MAA1BjoD,EAAO3f,KAAKknE,WACZlnE,KAAKknE,WACE,CAACvzE,KAAMqyE,EAASz/E,MAAO,KAAM85D,MAAOA,IAEpC,CAAC1sD,KAAMmyE,EAAQv/E,MAAO,IAAK85D,MAAOA,GAErB,MAAjBunB,EACuB,MAA1BjoD,EAAO3f,KAAKknE,WACZlnE,KAAKknE,WACE,CAACvzE,KAAMoyE,EAASx/E,MAAO,KAAM85D,MAAOA,IAEpC,CAAC1sD,KAAMkyE,EAAQt/E,MAAO,IAAK85D,MAAOA,GAErB,MAAjBunB,GACuB,MAA1BjoD,EAAO3f,KAAKknE,WACZlnE,KAAKknE,WACE,CAACvzE,KAAMiyE,EAAQr/E,MAAO,KAAM85D,MAAOA,SAH3C,CAMX,EAEAonB,gBAAiB,SAAS9nD,GACtB3f,KAAKknE,WAIL,IAHA,IAEIM,EAFAnnB,EAAQrgD,KAAKknE,SACbS,EAAYhoD,EAAOl6B,OAES,MAA1Bk6B,EAAO3f,KAAKknE,WAAqBlnE,KAAKknE,SAAWS,GAAW,CAE9D,IAAIx7E,EAAU6T,KAAKknE,SACK,OAApBvnD,EAAOxzB,IAA8C,OAAxBwzB,EAAOxzB,EAAU,IACO,MAAxBwzB,EAAOxzB,EAAU,GAG9CA,IAFAA,GAAW,EAIf6T,KAAKknE,SAAW/6E,CACpB,CACA,IAAI07E,EAAgBzD,EAASzkD,EAAOn3B,MAAM63D,EAAOrgD,KAAKknE,WAUtD,OATAW,EAAgBA,EAAc5hE,QAAQ,MAAO,KAEzCuhE,EADAxnE,KAAK8nE,eAAeD,GACVnhE,KAAKe,MAAMogE,GAGXnhE,KAAKe,MAAM,IAAOogE,EAAgB,KAGhD7nE,KAAKknE,WACEM,CACX,EAEAM,eAAgB,SAASD,GAKrB,GAAsB,KAAlBA,EACA,OAAO,EACJ,GANa,MAMKhhF,QAAQghF,EAAc,KAAO,EAClD,OAAO,EACJ,GAPY,CAAC,OAAQ,QAAS,QAObhhF,QAAQghF,IAAkB,EAC9C,OAAO,EACJ,KARa,cAQKhhF,QAAQghF,EAAc,KAAO,GAQlD,OAAO,EAPP,IAEI,OADAnhE,KAAKe,MAAMogE,IACJ,CACX,CAAE,MAAOE,GACL,OAAO,CACX,CAIR,GAGA,IAAIC,EAAe,CAAC,EA6BxB,SAASxiE,IACT,CAoWA,SAASyiE,EAAgBC,GACvBloE,KAAKkoE,QAAUA,CACjB,CAuQA,SAASC,EAAQC,GACfpoE,KAAKqoE,aAAeD,EACpBpoE,KAAKsoE,cAAgB,CAcjB3nD,IAAK,CAAC4nD,MAAOvoE,KAAKwoE,aAAcC,WAAY,CAAC,CAAChpD,MAAO,CAAC4kD,MACtDqE,IAAK,CAACH,MAAOvoE,KAAK2oE,aAAcF,WAAY,CAAC,CAAChpD,MAAO,CAACklD,MACtD9gC,KAAM,CAAC0kC,MAAOvoE,KAAK4oE,cAAeH,WAAY,CAAC,CAAChpD,MAAO,CAAC4kD,MACxDwE,SAAU,CACNN,MAAOvoE,KAAK8oE,kBACZL,WAAY,CAAC,CAAChpD,MAAO,CAAC8kD,EAAaC,IACvB,CAAC/kD,MAAO,CAAC6kD,MACzB,UAAa,CACTiE,MAAOvoE,KAAK+oE,kBACZN,WAAY,CAAC,CAAChpD,MAAO,CAAC8kD,IAAe,CAAC9kD,MAAO,CAAC8kD,MAClDjiE,MAAO,CAACimE,MAAOvoE,KAAKgpE,eAAgBP,WAAY,CAAC,CAAChpD,MAAO,CAAC4kD,MAC1D5+E,OAAQ,CACJ8iF,MAAOvoE,KAAKipE,gBACZR,WAAY,CAAC,CAAChpD,MAAO,CAAC8kD,EAAaC,EAAYC,MACnD9pD,IAAK,CACD4tD,MAAOvoE,KAAKkpE,aACZT,WAAY,CAAC,CAAChpD,MAAO,CAACilD,IAAe,CAACjlD,MAAO,CAAC+kD,MAClDp0C,IAAK,CACDm4C,MAAOvoE,KAAKmpE,aACZV,WAAY,CAAC,CAAChpD,MAAO,CAACklD,EAAmBC,MAC7C,MAAS,CACL2D,MAAOvoE,KAAKopE,eACZX,WAAY,CAAC,CAAChpD,MAAO,CAACglD,GAAc4E,UAAU,KAElD,OAAU,CACRd,MAAOvoE,KAAKspE,eACZb,WAAY,CAAC,CAAChpD,MAAO,CAAC+kD,IAAc,CAAC/kD,MAAO,CAACilD,MAE/C6E,IAAK,CAAChB,MAAOvoE,KAAKwpE,aAAcf,WAAY,CAAC,CAAChpD,MAAO,CAACklD,MACtD,YAAe,CACX4D,MAAOvoE,KAAKypE,oBACZhB,WAAY,CAAC,CAAChpD,MAAO,CAAC8kD,IAAe,CAAC9kD,MAAO,CAAC8kD,MAClDp0C,IAAK,CACDo4C,MAAOvoE,KAAK0pE,aACZjB,WAAY,CAAC,CAAChpD,MAAO,CAACklD,EAAmBC,MAC7C,OAAU,CACR2D,MAAOvoE,KAAK2pE,eACZlB,WAAY,CAAC,CAAChpD,MAAO,CAAC+kD,IAAc,CAAC/kD,MAAO,CAACilD,MAE/C/wE,KAAM,CAAC40E,MAAOvoE,KAAK4pE,cAAenB,WAAY,CAAC,CAAChpD,MAAO,CAAC6kD,MACxD3/E,KAAM,CAAC4jF,MAAOvoE,KAAK6pE,cAAepB,WAAY,CAAC,CAAChpD,MAAO,CAACglD,MACxDtpD,OAAQ,CAACotD,MAAOvoE,KAAK8pE,gBAAiBrB,WAAY,CAAC,CAAChpD,MAAO,CAACglD,MAC5DjsC,KAAM,CAAC+vC,MAAOvoE,KAAK+pE,cAAetB,WAAY,CAAC,CAAChpD,MAAO,CAACmlD,EAAmBD,MAC3E,QAAW,CACT4D,MAAOvoE,KAAKgqE,gBACZvB,WAAY,CAAC,CAAChpD,MAAO,CAAC+kD,IAAc,CAAC/kD,MAAO,CAACilD,MAE/CpwD,KAAM,CACFi0D,MAAOvoE,KAAKiqE,cACZxB,WAAY,CACR,CAAChpD,MAAO,CAAC8kD,IACT,CAAC9kD,MAAO,CAACmlD,MAGjBsF,QAAS,CACL3B,MAAOvoE,KAAKmqE,iBACZ1B,WAAY,CAAC,CAAChpD,MAAO,CAAC8kD,EAAaC,MACvC,SAAY,CAAC+D,MAAOvoE,KAAKoqE,iBAAkB3B,WAAY,CAAC,CAAChpD,MAAO,CAAC6kD,MACjE,UAAa,CAACiE,MAAOvoE,KAAKqqE,kBAAmB5B,WAAY,CAAC,CAAChpD,MAAO,CAAC6kD,MACnE,UAAa,CAACiE,MAAOvoE,KAAKsqE,kBAAmB7B,WAAY,CAAC,CAAChpD,MAAO,CAAC6kD,MACnE,SAAY,CACRiE,MAAOvoE,KAAKuqE,iBACZ9B,WAAY,CAAC,CAAChpD,MAAO,CAAC6kD,GAAW+E,UAAU,KAGrD,CA3tBIrB,EAAalD,GAAW,EACxBkD,EAAajD,GAA0B,EACvCiD,EAAahD,GAAwB,EACrCgD,EAAa/C,GAAgB,EAC7B+C,EAAa9C,GAAc,EAC3B8C,EAAa7C,GAAa,EAC1B6C,EAAa3C,GAAc,EAC3B2C,EAAa1C,GAAc,EAC3B0C,EAAazC,GAAe,EAC5ByC,EAAaxC,GAAc,EAC3BwC,EAAavC,GAAY,EACzBuC,EAAatC,GAAU,EACvBsC,EAAarC,GAAW,EACxBqC,EAAapC,GAAU,EACvBoC,EAAanC,GAAU,EACvBmC,EAAalC,GAAU,EACvBkC,EAAajC,GAAW,EACxBiC,EAAahC,GAAW,EACxBgC,EAAa/B,GAAU,EACvB+B,EAAa9B,GAAe,EAC5B8B,EAAa7B,GAAY,GACzB6B,EAAa5B,GAAc,GAC3B4B,EAAa3B,GAAW,GACxB2B,EAAa1B,GAAW,GACxB0B,EAAazB,GAAc,GAC3ByB,EAAaxB,GAAgB,GAC7BwB,EAAavB,GAAc,GAK/BjhE,EAAOlf,UAAY,CACfmhB,MAAO,SAAS+iE,GACZxqE,KAAKyqE,YAAYD,GACjBxqE,KAAK4U,MAAQ,EACb,IAAI81D,EAAM1qE,KAAKwqE,WAAW,GAC1B,GAAIxqE,KAAK2qE,WAAW,KAAO7F,EAAS,CAChC,IAAIxjE,EAAItB,KAAK4qE,gBAAgB,GACzBr1E,EAAQ,IAAIlL,MACZ,0BAA4BiX,EAAE3N,KAAO,YAAc2N,EAAE/a,OAEzD,MADAgP,EAAM9M,KAAO,cACP8M,CACV,CACA,OAAOm1E,CACX,EAEAD,YAAa,SAASD,GAClB,IACIvD,GADQ,IAAIF,GACGC,SAASwD,GAC5BvD,EAAO9hF,KAAK,CAACwO,KAAMmxE,EAASv+E,MAAO,GAAI85D,MAAOmqB,EAAW/kF,SACzDua,KAAKinE,OAASA,CAClB,EAEAuD,WAAY,SAASK,GACjB,IAAIC,EAAY9qE,KAAK4qE,gBAAgB,GACrC5qE,KAAK+qE,WAGL,IAFA,IAAI39E,EAAO4S,KAAKgrE,IAAIF,GAChBG,EAAejrE,KAAK2qE,WAAW,GAC5BE,EAAM7C,EAAaiD,IACtBjrE,KAAK+qE,WACL39E,EAAO4S,KAAKkrE,IAAID,EAAc79E,GAC9B69E,EAAejrE,KAAK2qE,WAAW,GAEnC,OAAOv9E,CACX,EAEAu9E,WAAY,SAAS//E,GACjB,OAAOoV,KAAKinE,OAAOjnE,KAAK4U,MAAQhqB,GAAQ+I,IAC5C,EAEAi3E,gBAAiB,SAAShgF,GACtB,OAAOoV,KAAKinE,OAAOjnE,KAAK4U,MAAQhqB,EACpC,EAEAmgF,SAAU,WACN/qE,KAAK4U,OACT,EAEAo2D,IAAK,SAASrhE,GACZ,IACItc,EACAm9E,EACJ,OAAQ7gE,EAAMhW,MACZ,KAAK+yE,EACH,MAAO,CAAC/yE,KAAM,UAAWpN,MAAOojB,EAAMpjB,OACxC,KAAKw+E,EACH,MAAO,CAACpxE,KAAM,QAASlL,KAAMkhB,EAAMpjB,OACrC,KAAKy+E,EACH,IAAI55E,EAAO,CAACuI,KAAM,QAASlL,KAAMkhB,EAAMpjB,OACvC,GAAIyZ,KAAK2qE,WAAW,KAAOlE,EACvB,MAAM,IAAIp8E,MAAM,qDAEpB,OAAOe,EACT,KAAKk7E,EAEH,MAAO,CAAC3yE,KAAM,gBAAiBtD,SAAU,CADzChD,EAAQ2S,KAAKwqE,WAAWxC,EAAamD,OAEvC,KAAKhF,EAUH,OARA94E,EAAQ,KAQD,CAACsG,KAAM,kBAAmBtD,SAAU,CATpC,CAACsD,KAAM,YAKVtG,EAHA2S,KAAK2qE,WAAW,KAAO1F,EAGf,CAACtxE,KAAM,YAEPqM,KAAKorE,oBAAoBpD,EAAaqD,QAGpD,KAAKjF,EACH,OAAOpmE,KAAKkrE,IAAIvhE,EAAMhW,KAAM,CAACA,KAAM,aACrC,KAAK4yE,EACH,OAAOvmE,KAAKsrE,wBACd,KAAKpF,EAGH,MAAO,CAACvyE,KAAM,aAActD,SAAU,CAF/B,CAACsD,KAAMuyE,EAAa71E,SAAU,CAAC,CAACsD,KAAM,cAC7CtG,EAAQ2S,KAAKorE,oBAAoBpD,EAAauD,WAEhD,KAAK/E,EACH,OAAIxmE,KAAK2qE,WAAW,KAAOrF,GAActlE,KAAK2qE,WAAW,KAAOvF,GAC5D/3E,EAAQ2S,KAAKwrE,wBACNxrE,KAAKyrE,gBAAgB,CAAC93E,KAAM,YAAatG,IACzC2S,KAAK2qE,WAAW,KAAOxE,GACvBnmE,KAAK2qE,WAAW,KAAO1F,GAC9BjlE,KAAK+qE,WACL/qE,KAAK+qE,WAEE,CAACp3E,KAAM,aACNtD,SAAU,CAAC,CAACsD,KAAM,YAF1BtG,EAAQ2S,KAAKorE,oBAAoBpD,EAAaqD,SAI3CrrE,KAAK0rE,wBACd,KAAKnG,EACH,MAAO,CAAC5xE,KAAM4xE,GAChB,KAAKC,EAEH,MAAO,CAAC7xE,KAAM,sBAAuBtD,SAAU,CAD/Cm6E,EAAaxqE,KAAKwqE,WAAWxC,EAAa2D,UAE5C,KAAKlF,EAEH,IADA,IAAIjnC,EAAO,GACJx/B,KAAK2qE,WAAW,KAAOzF,GACxBllE,KAAK2qE,WAAW,KAAOpF,GACzBiF,EAAa,CAAC72E,KAAM4xE,GACpBvlE,KAAK+qE,YAELP,EAAaxqE,KAAKwqE,WAAW,GAE/BhrC,EAAKr6C,KAAKqlF,GAGZ,OADAxqE,KAAK4rE,OAAO1G,GACL1lC,EAAK,GACd,QACEx/B,KAAK6rE,YAAYliE,GAEvB,EAEAuhE,IAAK,SAASY,EAAW1+E,GACvB,IAAIC,EACJ,OAAOy+E,GACL,KAAKzF,EACH,IAAIwE,EAAM7C,EAAa+D,IACvB,OAAI/rE,KAAK2qE,WAAW,KAAOxE,EAEhB,CAACxyE,KAAM,gBAAiBtD,SAAU,CAACjD,EAD1CC,EAAQ2S,KAAKgsE,aAAanB,MAI9B7qE,KAAK+qE,WAEE,CAACp3E,KAAM,kBAAmBtD,SAAU,CAACjD,EAD5CC,EAAQ2S,KAAKorE,oBAAoBP,MAEnC,KAAKpF,EAEH,OADAp4E,EAAQ2S,KAAKwqE,WAAWxC,EAAaiE,MAC9B,CAACt4E,KAAM8xE,EAAUp1E,SAAU,CAACjD,EAAMC,IAC3C,KAAKq4E,EAEH,MAAO,CAAC/xE,KAAM,eAAgBtD,SAAU,CAACjD,EADzCC,EAAQ2S,KAAKwqE,WAAWxC,EAAakE,MAEvC,KAAKvG,EAEH,MAAO,CAAChyE,KAAM,gBAAiBtD,SAAU,CAACjD,EAD1CC,EAAQ2S,KAAKwqE,WAAWxC,EAAamE,OAEvC,KAAK1F,EAIH,IAHA,IAEI+D,EAFA/hF,EAAO2E,EAAK3E,KACZ+2C,EAAO,GAEJx/B,KAAK2qE,WAAW,KAAOzF,GACxBllE,KAAK2qE,WAAW,KAAOpF,GACzBiF,EAAa,CAAC72E,KAAM4xE,GACpBvlE,KAAK+qE,YAELP,EAAaxqE,KAAKwqE,WAAW,GAE3BxqE,KAAK2qE,WAAW,KAAOxF,GACzBnlE,KAAK4rE,OAAOzG,GAEd3lC,EAAKr6C,KAAKqlF,GAIZ,OAFAxqE,KAAK4rE,OAAO1G,GACL,CAACvxE,KAAM,WAAYlL,KAAMA,EAAM4H,SAAUmvC,GAElD,KAAK4mC,EACH,IAAInwB,EAAYj2C,KAAKwqE,WAAW,GAOhC,OANAxqE,KAAK4rE,OAAO3G,GAML,CAACtxE,KAAM,mBAAoBtD,SAAU,CAACjD,EAJ3CC,EADE2S,KAAK2qE,WAAW,KAAOzE,EACjB,CAACvyE,KAAM,YAEPqM,KAAKorE,oBAAoBpD,EAAaoE,QAEUn2B,IAC5D,KAAKiwB,EAGH,MAAO,CAACvyE,KAAM,aAActD,SAAU,CAFvB,CAACsD,KAAMuyE,EAAa71E,SAAU,CAACjD,IAC9B4S,KAAKorE,oBAAoBpD,EAAauD,WAExD,KAAK3F,EACL,KAAKK,EACL,KAAKJ,EACL,KAAKE,EACL,KAAKD,EACL,KAAKE,EACH,OAAOhmE,KAAKqsE,iBAAiBj/E,EAAM0+E,GACrC,KAAKtF,EACH,IAAI78D,EAAQ3J,KAAK4qE,gBAAgB,GACjC,OAAIjhE,EAAMhW,OAAS2xE,GAAc37D,EAAMhW,OAASyxE,GAC5C/3E,EAAQ2S,KAAKwrE,wBACNxrE,KAAKyrE,gBAAgBr+E,EAAMC,KAEtC2S,KAAK4rE,OAAOzF,GACZnmE,KAAK4rE,OAAO3G,GAEL,CAACtxE,KAAM,aAActD,SAAU,CAACjD,EADvCC,EAAQ2S,KAAKorE,oBAAoBpD,EAAaqD,SAEhD,QACErrE,KAAK6rE,YAAY7rE,KAAK4qE,gBAAgB,IAE5C,EAEAgB,OAAQ,SAASU,GACb,GAAItsE,KAAK2qE,WAAW,KAAO2B,EAEpB,CACH,IAAIhrE,EAAItB,KAAK4qE,gBAAgB,GACzBr1E,EAAQ,IAAIlL,MAAM,YAAciiF,EAAY,UAAYhrE,EAAE3N,MAE9D,MADA4B,EAAM9M,KAAO,cACP8M,CACV,CANIyK,KAAK+qE,UAOb,EAEAc,YAAa,SAASliE,GAClB,IAAIpU,EAAQ,IAAIlL,MAAM,kBACAsf,EAAMhW,KAAO,OACbgW,EAAMpjB,MAAQ,KAEpC,MADAgP,EAAM9M,KAAO,cACP8M,CACV,EAGAi2E,sBAAuB,WACnB,GAAIxrE,KAAK2qE,WAAW,KAAOvF,GAAaplE,KAAK2qE,WAAW,KAAOvF,EAC3D,OAAOplE,KAAKusE,wBAEZ,IAAInhF,EAAO,CACPuI,KAAM,QACNpN,MAAOyZ,KAAK4qE,gBAAgB,GAAGrkF,OAGnC,OAFAyZ,KAAK+qE,WACL/qE,KAAK4rE,OAAO3G,GACL75E,CAEf,EAEAqgF,gBAAiB,SAASr+E,EAAMC,GAC5B,IAAIm/E,EAAY,CAAC74E,KAAM,kBAAmBtD,SAAU,CAACjD,EAAMC,IAC3D,MAAmB,UAAfA,EAAMsG,KACC,CACHA,KAAM,aACNtD,SAAU,CAACm8E,EAAWxsE,KAAKorE,oBAAoBpD,EAAaqD,QAGzDmB,CAEf,EAEAD,sBAAuB,WAMnB,IAHA,IAAIllE,EAAQ,CAAC,KAAM,KAAM,MACrBuN,EAAQ,EACRq2D,EAAejrE,KAAK2qE,WAAW,GAC5BM,IAAiBhG,GAAgBrwD,EAAQ,GAAG,CAC/C,GAAIq2D,IAAiB7F,EACjBxwD,IACA5U,KAAK+qE,eACF,IAAIE,IAAiB3F,EAGrB,CACH,IAAIhkE,EAAItB,KAAK2qE,WAAW,GACpBp1E,EAAQ,IAAIlL,MAAM,mCACAiX,EAAE/a,MAAQ,IAAM+a,EAAE3N,KAAO,KAE/C,MADA4B,EAAM9M,KAAO,cACP8M,CACV,CARI8R,EAAMuN,GAAS5U,KAAK4qE,gBAAgB,GAAGrkF,MACvCyZ,KAAK+qE,UAOT,CACAE,EAAejrE,KAAK2qE,WAAW,EACnC,CAEA,OADA3qE,KAAK4rE,OAAO3G,GACL,CACHtxE,KAAM,QACNtD,SAAUgX,EAElB,EAEAglE,iBAAkB,SAASj/E,EAAMq/E,GAE/B,MAAO,CAAC94E,KAAM,aAAclL,KAAMgkF,EAAYp8E,SAAU,CAACjD,EAD7C4S,KAAKwqE,WAAWxC,EAAayE,KAE3C,EAEAT,aAAc,SAASnB,GACnB,IAAI6B,EAAY1sE,KAAK2qE,WAAW,GAEhC,MADiB,CAAC5F,EAAwBC,EAAsBmB,GACjDt/E,QAAQ6lF,IAAc,EAC1B1sE,KAAKwqE,WAAWK,GAChB6B,IAAclG,GACrBxmE,KAAK4rE,OAAOpF,GACLxmE,KAAK0rE,yBACLgB,IAAcnG,GACrBvmE,KAAK4rE,OAAOrF,GACLvmE,KAAKsrE,8BAFT,CAIX,EAEAF,oBAAqB,SAASP,GAC1B,IAAIx9E,EACJ,GAAI26E,EAAahoE,KAAK2qE,WAAW,IAAM,GACnCt9E,EAAQ,CAACsG,KAAM,iBACZ,GAAIqM,KAAK2qE,WAAW,KAAOnE,EAC9Bn5E,EAAQ2S,KAAKwqE,WAAWK,QACrB,GAAI7qE,KAAK2qE,WAAW,KAAOvE,EAC9B/4E,EAAQ2S,KAAKwqE,WAAWK,OACrB,IAAI7qE,KAAK2qE,WAAW,KAAOtE,EAG3B,CACH,IAAI/kE,EAAItB,KAAK4qE,gBAAgB,GACzBr1E,EAAQ,IAAIlL,MAAM,mCACAiX,EAAE/a,MAAQ,IAAM+a,EAAE3N,KAAO,KAE/C,MADA4B,EAAM9M,KAAO,cACP8M,CACV,CARIyK,KAAK4rE,OAAOvF,GACZh5E,EAAQ2S,KAAKgsE,aAAanB,EAO9B,CACA,OAAOx9E,CACX,EAEAq+E,sBAAuB,WAEnB,IADA,IAAIiB,EAAc,GACX3sE,KAAK2qE,WAAW,KAAO1F,GAAc,CACxC,IAAIuF,EAAaxqE,KAAKwqE,WAAW,GAEjC,GADAmC,EAAYxnF,KAAKqlF,GACbxqE,KAAK2qE,WAAW,KAAOxF,IACvBnlE,KAAK4rE,OAAOzG,GACRnlE,KAAK2qE,WAAW,KAAO1F,GACzB,MAAM,IAAI56E,MAAM,4BAG1B,CAEA,OADA2V,KAAK4rE,OAAO3G,GACL,CAACtxE,KAAM,kBAAmBtD,SAAUs8E,EAC/C,EAEArB,sBAAuB,WAIrB,IAHA,IAEIsB,EAAU/yC,EAAgBzuC,EAF1ByhF,EAAQ,GACRC,EAAkB,CAAC/H,EAAwBC,KAEtC,CAEP,GADA4H,EAAW5sE,KAAK4qE,gBAAgB,GAC5BkC,EAAgBjmF,QAAQ+lF,EAASj5E,MAAQ,EAC3C,MAAM,IAAItJ,MAAM,uCACAuiF,EAASj5E,MAQ3B,GANAkmC,EAAU+yC,EAASrmF,MACnByZ,KAAK+qE,WACL/qE,KAAK4rE,OAAOxG,GAEZh6E,EAAO,CAACuI,KAAM,eAAgBlL,KAAMoxC,EAAStzC,MADrCyZ,KAAKwqE,WAAW,IAExBqC,EAAM1nF,KAAKiG,GACP4U,KAAK2qE,WAAW,KAAOxF,EACzBnlE,KAAK4rE,OAAOzG,QACP,GAAInlE,KAAK2qE,WAAW,KAAOtF,EAAY,CAC5CrlE,KAAK4rE,OAAOvG,GACZ,KACF,CACF,CACA,MAAO,CAAC1xE,KAAM,kBAAmBtD,SAAUw8E,EAC7C,GAQJ5E,EAAgB3hF,UAAY,CACxBgiB,OAAQ,SAASld,EAAM7E,GACnB,OAAOyZ,KAAK+sE,MAAM3hF,EAAM7E,EAC5B,EAEAwmF,MAAO,SAAS3hF,EAAM7E,GAClB,IAAIm7D,EAASv1D,EAASkD,EAAQqxE,EAAOsD,EAAQhuB,EAAO5oD,EAAa4/E,EAAWznF,EAC5E,OAAQ6F,EAAKuI,MACX,IAAK,QACH,OAAc,OAAVpN,GAAkB6nE,EAAS7nE,QAEbwI,KADdinD,EAAQzvD,EAAM6E,EAAK3C,OAER,KAEAutD,EAGR,KACT,IAAK,gBAEH,IADA3mD,EAAS2Q,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,GACjChB,EAAI,EAAGA,EAAI6F,EAAKiF,SAAS5K,OAAQF,IAElC,GAAe,QADf8J,EAAS2Q,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAIhB,IAElC,OAAO,KAGf,OAAOA,EACT,IAAK,kBAGH,OAFAjC,EAAO4S,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,GAC5ByZ,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAIjD,GAEvC,IAAK,QACH,IAAK3F,EAAQlB,GACX,OAAO,KAET,IAAIquB,EAAQxpB,EAAK7E,MAQjB,OAPIquB,EAAQ,IACVA,EAAQruB,EAAMd,OAASmvB,QAGV7lB,KADfM,EAAS9I,EAAMquB,MAEbvlB,EAAS,MAEJA,EACT,IAAK,QACH,IAAK5H,EAAQlB,GACX,OAAO,KAET,IAAI0mF,EAAc7hF,EAAKiF,SAAS7H,MAAM,GAClC0kF,EAAWltE,KAAKmtE,mBAAmB5mF,EAAMd,OAAQwnF,GACjD5sB,EAAQ6sB,EAAS,GACjBE,EAAOF,EAAS,GAChBG,EAAOH,EAAS,GAEpB,GADA79E,EAAS,GACLg+E,EAAO,EACP,IAAK9nF,EAAI86D,EAAO96D,EAAI6nF,EAAM7nF,GAAK8nF,EAC3Bh+E,EAAOlK,KAAKoB,EAAMhB,SAGtB,IAAKA,EAAI86D,EAAO96D,EAAI6nF,EAAM7nF,GAAK8nF,EAC3Bh+E,EAAOlK,KAAKoB,EAAMhB,IAG1B,OAAO8J,EACT,IAAK,aAEH,IAAIk+C,EAAOvtC,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,GACxC,IAAKkB,EAAQ8lD,GACX,OAAO,KAGT,IADAy/B,EAAY,GACPznF,EAAI,EAAGA,EAAIgoD,EAAK9nD,OAAQF,IAEX,QADhB4G,EAAU6T,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAIk9C,EAAKhoD,MAE1CynF,EAAU7nF,KAAKgH,GAGnB,OAAO6gF,EACT,IAAK,kBAGH,IAAK5e,EADL7gB,EAAOvtC,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,IAElC,OAAO,KAETymF,EAAY,GACZ,IAAI7xD,EAh1BhB,SAAmBj1B,GAGjB,IAFA,IAAIvB,EAAOC,OAAOD,KAAKuB,GACnBi1B,EAAS,GACJ51B,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAC/B41B,EAAOh2B,KAAKe,EAAIvB,EAAKY,KAEvB,OAAO41B,CACT,CAy0ByBmyD,CAAU//B,GACvB,IAAKhoD,EAAI,EAAGA,EAAI41B,EAAO11B,OAAQF,IAEb,QADhB4G,EAAU6T,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI8qB,EAAO51B,MAE5CynF,EAAU7nF,KAAKgH,GAGnB,OAAO6gF,EACT,IAAK,mBAEH,IAAKvlF,EADL8lD,EAAOvtC,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,IAElC,OAAO,KAET,IAAIgnF,EAAW,GACXC,EAAe,GACnB,IAAKjoF,EAAI,EAAGA,EAAIgoD,EAAK9nD,OAAQF,IAEtB4+E,EADLziB,EAAU1hD,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAIk9C,EAAKhoD,MAE1CgoF,EAASpoF,KAAKooD,EAAKhoD,IAGvB,IAAK,IAAIoiE,EAAI,EAAGA,EAAI4lB,EAAS9nF,OAAQkiE,IAEnB,QADhBx7D,EAAU6T,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAIk9E,EAAS5lB,MAE9C6lB,EAAaroF,KAAKgH,GAGtB,OAAOqhF,EACT,IAAK,aAGH,OAFA9M,EAAQ1gE,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,GACrCy9E,EAAShkE,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,GAC/B6E,EAAK3C,MACV,KAAKm9E,EACHv2E,EAAS2xC,EAAgB0/B,EAAOsD,GAChC,MACF,KAAKiC,EACH52E,GAAU2xC,EAAgB0/B,EAAOsD,GACjC,MACF,KAAK6B,EACHx2E,EAASqxE,EAAQsD,EACjB,MACF,KAAK+B,EACH12E,EAASqxE,GAASsD,EAClB,MACF,KAAK8B,EACHz2E,EAASqxE,EAAQsD,EACjB,MACF,KAAKgC,EACH32E,EAASqxE,GAASsD,EAClB,MACF,QACE,MAAM,IAAI35E,MAAM,uBAAyBe,EAAK3C,MAElD,OAAO4G,EACT,KAAK62E,EACH,IAAIuH,EAAWztE,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,GAC5C,IAAKkB,EAAQgmF,GACX,OAAO,KAET,IAAIC,EAAS,GACb,IAAKnoF,EAAI,EAAGA,EAAIkoF,EAAShoF,OAAQF,IAE3BkC,EADJ0E,EAAUshF,EAASloF,IAEjBmoF,EAAOvoF,KAAKC,MAAMsoF,EAAQvhF,GAE1BuhF,EAAOvoF,KAAKgH,GAGhB,OAAOuhF,EACT,IAAK,WACH,OAAOnnF,EACT,IAAK,kBACH,GAAc,OAAVA,EACF,OAAO,KAGT,IADAymF,EAAY,GACPznF,EAAI,EAAGA,EAAI6F,EAAKiF,SAAS5K,OAAQF,IAClCynF,EAAU7nF,KAAK6a,KAAK+sE,MAAM3hF,EAAKiF,SAAS9K,GAAIgB,IAEhD,OAAOymF,EACT,IAAK,kBACH,GAAc,OAAVzmF,EACF,OAAO,KAGT,IAAIi8D,EACJ,IAFAwqB,EAAY,CAAC,EAERznF,EAAI,EAAGA,EAAI6F,EAAKiF,SAAS5K,OAAQF,IAEpCynF,GADAxqB,EAAQp3D,EAAKiF,SAAS9K,IACNkD,MAAQuX,KAAK+sE,MAAMvqB,EAAMj8D,MAAOA,GAElD,OAAOymF,EACT,IAAK,eAKH,OAHI7I,EADJziB,EAAU1hD,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,MAEnCm7D,EAAU1hD,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,IAEpCm7D,EACT,IAAK,gBAGH,OAAuB,IAAnByiB,EAFJzD,EAAQ1gE,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,IAG5Bm6E,EAEF1gE,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,GACtC,IAAK,gBAEH,OAAO49E,EADPzD,EAAQ1gE,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,IAEvC,IAAK,UACH,OAAO6E,EAAK7E,MACd,KAAKk/E,EAEH,OADAr4E,EAAO4S,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAI9J,GAC7ByZ,KAAK+sE,MAAM3hF,EAAKiF,SAAS,GAAIjD,GACtC,KAAKm4E,EACH,OAAOh/E,EACT,IAAK,WACH,IAAIonF,EAAe,GACnB,IAAKpoF,EAAI,EAAGA,EAAI6F,EAAKiF,SAAS5K,OAAQF,IAClCooF,EAAaxoF,KAAK6a,KAAK+sE,MAAM3hF,EAAKiF,SAAS9K,GAAIgB,IAEnD,OAAOyZ,KAAKkoE,QAAQ0F,aAAaxiF,EAAK3C,KAAMklF,GAC9C,IAAK,sBACH,IAAIE,EAAUziF,EAAKiF,SAAS,GAI5B,OADAw9E,EAAQC,aAAetI,EAChBqI,EACT,QACE,MAAM,IAAIxjF,MAAM,sBAAwBe,EAAKuI,MAErD,EAEAw5E,mBAAoB,SAASY,EAAad,GACxC,IAAI5sB,EAAQ4sB,EAAY,GACpBG,EAAOH,EAAY,GACnBI,EAAOJ,EAAY,GACnBC,EAAW,CAAC,KAAM,KAAM,MAC5B,GAAa,OAATG,EACFA,EAAO,OACF,GAAa,IAATA,EAAY,CACrB,IAAI93E,EAAQ,IAAIlL,MAAM,mCAEtB,MADAkL,EAAM9M,KAAO,eACP8M,CACR,CACA,IAAIy4E,EAAoBX,EAAO,EAgB/B,OAbIhtB,EADU,OAAVA,EACQ2tB,EAAoBD,EAAc,EAAI,EAEtC/tE,KAAKiuE,cAAcF,EAAa1tB,EAAOgtB,GAI/CD,EADS,OAATA,EACOY,GAAqB,EAAID,EAEzB/tE,KAAKiuE,cAAcF,EAAaX,EAAMC,GAEjDH,EAAS,GAAK7sB,EACd6sB,EAAS,GAAKE,EACdF,EAAS,GAAKG,EACPH,CACT,EAEAe,cAAe,SAASF,EAAaG,EAAab,GAS9C,OARIa,EAAc,GACdA,GAAeH,GACG,IACdG,EAAcb,EAAO,GAAK,EAAI,GAE3Ba,GAAeH,IACtBG,EAAcb,EAAO,EAAIU,EAAc,EAAIA,GAExCG,CACX,GAuFJ/F,EAAQ7hF,UAAY,CAClBsnF,aAAc,SAASnlF,EAAMklF,GAC3B,IAAIQ,EAAgBnuE,KAAKsoE,cAAc7/E,GACvC,QAAsBsG,IAAlBo/E,EACA,MAAM,IAAI9jF,MAAM,qBAAuB5B,EAAO,MAGlD,OADAuX,KAAKouE,cAAc3lF,EAAMklF,EAAcQ,EAAc1F,YAC9C0F,EAAc5F,MAAMthF,KAAK+Y,KAAM2tE,EACxC,EAEAS,cAAe,SAAS3lF,EAAM+2C,EAAMga,GAMhC,IAAI60B,EAcAC,EACAC,EACAC,EAfJ,GAAIh1B,EAAUA,EAAU/zD,OAAS,GAAG4jF,UAChC,GAAI7pC,EAAK/5C,OAAS+zD,EAAU/zD,OAExB,MADA4oF,EAAkC,IAArB70B,EAAU/zD,OAAe,YAAc,aAC9C,IAAI4E,MAAM,kBAAoB5B,EAApB,oBACmB+wD,EAAU/zD,OAAS4oF,EACtC,iBAAmB7uC,EAAK/5C,aAEzC,GAAI+5C,EAAK/5C,SAAW+zD,EAAU/zD,OAEjC,MADA4oF,EAAkC,IAArB70B,EAAU/zD,OAAe,YAAc,aAC9C,IAAI4E,MAAM,kBAAoB5B,EAApB,YACW+wD,EAAU/zD,OAAS4oF,EAC9B,iBAAmB7uC,EAAK/5C,QAK5C,IAAK,IAAIF,EAAI,EAAGA,EAAIi0D,EAAU/zD,OAAQF,IAAK,CACvCipF,GAAc,EACdF,EAAc90B,EAAUj0D,GAAGk6B,MAC3B8uD,EAAavuE,KAAKyuE,aAAajvC,EAAKj6C,IACpC,IAAK,IAAIoiE,EAAI,EAAGA,EAAI2mB,EAAY7oF,OAAQkiE,IACpC,GAAI3nD,KAAK0uE,aAAaH,EAAYD,EAAY3mB,GAAInoB,EAAKj6C,IAAK,CACxDipF,GAAc,EACd,KACJ,CAEJ,IAAKA,EAAa,CACd,IAAI7tC,EAAW2tC,EACV3zD,KAAI,SAASg0D,GACV,OAAO9J,EAAgB8J,EAC3B,IACCr6D,KAAK,KACV,MAAM,IAAIjqB,MAAM,cAAgB5B,EAAhB,yBACwBlD,EAAI,GAC5B,eAAiBo7C,EACjB,sBACAkkC,EAAgB0J,GAAc,YAClD,CACJ,CACJ,EAEAG,aAAc,SAASzoB,EAAQtlB,EAAUiuC,GACrC,GAAIjuC,IAAa2jC,EACb,OAAO,EAEX,GAAI3jC,IAAaikC,GACbjkC,IAAagkC,GACbhkC,IAAa6jC,EA0Bb,OAAOve,IAAWtlB,EArBlB,GAAIA,IAAa6jC,EACb,OAAOve,IAAWue,EACf,GAAIve,IAAWue,EAAY,CAG9B,IAAIqK,EACAluC,IAAagkC,EACfkK,EAAUxK,EACD1jC,IAAaikC,IACtBiK,EAAUtK,GAEZ,IAAK,IAAIh/E,EAAI,EAAGA,EAAIqpF,EAASnpF,OAAQF,IACjC,IAAKya,KAAK0uE,aACF1uE,KAAKyuE,aAAaG,EAASrpF,IAAKspF,EACfD,EAASrpF,IAC9B,OAAO,EAGf,OAAO,CACX,CAIR,EACAkpF,aAAc,SAASvoF,GACnB,OAAQtB,OAAO0B,UAAUiC,SAAStB,KAAKf,IACnC,IAAK,kBACH,OAAOq+E,EACT,IAAK,kBACH,OAAOF,EACT,IAAK,iBACH,OAAOG,EACT,IAAK,mBACH,OAppCO,EAqpCT,IAAK,gBACH,OAppCI,EAqpCN,IAAK,kBAGH,OAAIt+E,EAAI4nF,eAAiBtI,EAChBd,EAEAD,EAGnB,EAEAgF,oBAAqB,SAASkE,GAC1B,OAAwD,IAAjDA,EAAa,GAAGtmB,YAAYsmB,EAAa,GACpD,EAEA5E,kBAAmB,SAAS4E,GACxB,IAAImB,EAAYnB,EAAa,GACzBh0C,EAASg0C,EAAa,GAC1B,OAAwE,IAAjEmB,EAAUjoF,QAAQ8yC,EAAQm1C,EAAUrpF,OAASk0C,EAAOl0C,OAC/D,EAEA0kF,iBAAkB,SAASwD,GAEvB,GADe3tE,KAAKyuE,aAAad,EAAa,MAC7BpJ,EAAa,CAG5B,IAFA,IAAIwK,EAAcpB,EAAa,GAC3BqB,EAAc,GACTzpF,EAAIwpF,EAAYtpF,OAAS,EAAGF,GAAK,EAAGA,IACzCypF,GAAeD,EAAYxpF,GAE/B,OAAOypF,CACT,CACE,IAAIC,EAAgBtB,EAAa,GAAGnlF,MAAM,GAE1C,OADAymF,EAAc/E,UACP+E,CAEb,EAEAzG,aAAc,SAASmF,GACrB,OAAOtrE,KAAKse,IAAIgtD,EAAa,GAC/B,EAEA/E,cAAe,SAAS+E,GACpB,OAAOtrE,KAAKwhC,KAAK8pC,EAAa,GAClC,EAEAhF,aAAc,SAASgF,GAGnB,IAFA,IAAIpE,EAAM,EACN2F,EAAavB,EAAa,GACrBpoF,EAAI,EAAGA,EAAI2pF,EAAWzpF,OAAQF,IACnCgkF,GAAO2F,EAAW3pF,GAEtB,OAAOgkF,EAAM2F,EAAWzpF,MAC5B,EAEAqjF,kBAAmB,SAAS6E,GACxB,OAAOA,EAAa,GAAG9mF,QAAQ8mF,EAAa,KAAO,CACvD,EAEA3E,eAAgB,SAAS2E,GACrB,OAAOtrE,KAAKC,MAAMqrE,EAAa,GACnC,EAEA1E,gBAAiB,SAAS0E,GACvB,OAAKvf,EAASuf,EAAa,IAKlB/oF,OAAOD,KAAKgpF,EAAa,IAAIloF,OAJ7BkoF,EAAa,GAAGloF,MAM5B,EAEAyjF,aAAc,SAASyE,GAKrB,IAJA,IAAIwB,EAAS,GACT/G,EAAcpoE,KAAKqoE,aACnB+G,EAAazB,EAAa,GAC1B7gF,EAAW6gF,EAAa,GACnBpoF,EAAI,EAAGA,EAAIuH,EAASrH,OAAQF,IACjC4pF,EAAOhqF,KAAKijF,EAAY2E,MAAMqC,EAAYtiF,EAASvH,KAEvD,OAAO4pF,CACT,EAEA/F,eAAgB,SAASuE,GAEvB,IADA,IAAID,EAAS,CAAC,EACLnoF,EAAI,EAAGA,EAAIooF,EAAaloF,OAAQF,IAAK,CAC5C,IAAI4G,EAAUwhF,EAAapoF,GAC3B,IAAK,IAAIK,KAAOuG,EACduhF,EAAO9nF,GAAOuG,EAAQvG,EAE1B,CACA,OAAO8nF,CACT,EAEAvE,aAAc,SAASwE,GACrB,GAAIA,EAAa,GAAGloF,OAAS,EAAG,CAE9B,GADeua,KAAKyuE,aAAad,EAAa,GAAG,MAChCtJ,EACf,OAAOhiE,KAAK+tB,IAAIhrC,MAAMid,KAAMsrE,EAAa,IAIzC,IAFA,IAAI7gF,EAAW6gF,EAAa,GACxB0B,EAAaviF,EAAS,GACjBvH,EAAI,EAAGA,EAAIuH,EAASrH,OAAQF,IAC7B8pF,EAAWC,cAAcxiF,EAASvH,IAAM,IACxC8pF,EAAaviF,EAASvH,IAG9B,OAAO8pF,CAEX,CACI,OAAO,IAEb,EAEA3F,aAAc,SAASiE,GACrB,GAAIA,EAAa,GAAGloF,OAAS,EAAG,CAE9B,GADeua,KAAKyuE,aAAad,EAAa,GAAG,MAChCtJ,EACf,OAAOhiE,KAAK8tB,IAAI/qC,MAAMid,KAAMsrE,EAAa,IAIzC,IAFA,IAAI7gF,EAAW6gF,EAAa,GACxB4B,EAAaziF,EAAS,GACjBvH,EAAI,EAAGA,EAAIuH,EAASrH,OAAQF,IAC7BuH,EAASvH,GAAG+pF,cAAcC,GAAc,IACxCA,EAAaziF,EAASvH,IAG9B,OAAOgqF,CAEX,CACE,OAAO,IAEX,EAEA/F,aAAc,SAASmE,GAGrB,IAFA,IAAIpE,EAAM,EACNiG,EAAY7B,EAAa,GACpBpoF,EAAI,EAAGA,EAAIiqF,EAAU/pF,OAAQF,IACpCgkF,GAAOiG,EAAUjqF,GAEnB,OAAOgkF,CACT,EAEAK,cAAe,SAAS+D,GACpB,OAAQ3tE,KAAKyuE,aAAad,EAAa,KACrC,KAAKtJ,EACH,MAAO,SACT,KAAKE,EACH,MAAO,SACT,KAAKC,EACH,MAAO,QACT,KAAKC,EACH,MAAO,SACT,KAhzCW,EAizCT,MAAO,UACT,KAAKC,EACH,MAAO,SACT,KAlzCQ,EAmzCN,MAAO,OAEf,EAEAmF,cAAe,SAAS8D,GACpB,OAAO/oF,OAAOD,KAAKgpF,EAAa,GACpC,EAEA7D,gBAAiB,SAAS6D,GAItB,IAHA,IAAIznF,EAAMynF,EAAa,GACnBhpF,EAAOC,OAAOD,KAAKuB,GACnBi1B,EAAS,GACJ51B,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAC7B41B,EAAOh2B,KAAKe,EAAIvB,EAAKY,KAEzB,OAAO41B,CACX,EAEA8uD,cAAe,SAAS0D,GACpB,IAAI8B,EAAW9B,EAAa,GAE5B,OADeA,EAAa,GACZr5D,KAAKm7D,EACzB,EAEArF,iBAAkB,SAASuD,GACvB,OAAI3tE,KAAKyuE,aAAad,EAAa,MAAQnJ,EAChCmJ,EAAa,GAEb,CAACA,EAAa,GAE7B,EAEAtD,kBAAmB,SAASsD,GACxB,OAAI3tE,KAAKyuE,aAAad,EAAa,MAAQpJ,EAChCoJ,EAAa,GAEbjnE,KAAKC,UAAUgnE,EAAa,GAE3C,EAEArD,kBAAmB,SAASqD,GACxB,IACI+B,EADA5vD,EAAW9f,KAAKyuE,aAAad,EAAa,IAE9C,OAAI7tD,IAAaukD,EACNsJ,EAAa,GACb7tD,IAAaykD,IACpBmL,GAAkB/B,EAAa,GAC1B7uC,MAAM4wC,IAIR,KAHQA,CAInB,EAEAnF,iBAAkB,SAASoD,GACvB,IAAK,IAAIpoF,EAAI,EAAGA,EAAIooF,EAAaloF,OAAQF,IACrC,GA32CM,IA22CFya,KAAKyuE,aAAad,EAAapoF,IAC/B,OAAOooF,EAAapoF,GAG5B,OAAO,IACX,EAEAwkF,cAAe,SAAS4D,GACpB,IAAIgC,EAAchC,EAAa,GAAGnlF,MAAM,GAExC,OADAmnF,EAAYn3C,OACLm3C,CACX,EAEA3F,gBAAiB,SAAS2D,GACtB,IAAIgC,EAAchC,EAAa,GAAGnlF,MAAM,GACxC,GAA2B,IAAvBmnF,EAAYlqF,OACZ,OAAOkqF,EAEX,IAAIvH,EAAcpoE,KAAKqoE,aACnB+G,EAAazB,EAAa,GAC1BiC,EAAe5vE,KAAKyuE,aACpBrG,EAAY2E,MAAMqC,EAAYO,EAAY,KAC9C,GAAI,CAACtL,EAAaE,GAAa19E,QAAQ+oF,GAAgB,EACnD,MAAM,IAAIvlF,MAAM,aAWpB,IATA,IAAIo7D,EAAOzlD,KAQP6vE,EAAY,GACPtqF,EAAI,EAAGA,EAAIoqF,EAAYlqF,OAAQF,IACtCsqF,EAAU1qF,KAAK,CAACI,EAAGoqF,EAAYpqF,KAEjCsqF,EAAUr3C,MAAK,SAASr3B,EAAGC,GACzB,IAAI0uE,EAAQ1H,EAAY2E,MAAMqC,EAAYjuE,EAAE,IACxC4uE,EAAQ3H,EAAY2E,MAAMqC,EAAYhuE,EAAE,IAC5C,GAAIqkD,EAAKgpB,aAAaqB,KAAWF,EAC7B,MAAM,IAAIvlF,MACN,uBAAyBulF,EAAe,cACxCnqB,EAAKgpB,aAAaqB,IACnB,GAAIrqB,EAAKgpB,aAAasB,KAAWH,EACpC,MAAM,IAAIvlF,MACN,uBAAyBulF,EAAe,cACxCnqB,EAAKgpB,aAAasB,IAE1B,OAAID,EAAQC,EACH,EACED,EAAQC,GACT,EAKD5uE,EAAE,GAAKC,EAAE,EAEpB,IAEA,IAAK,IAAIumD,EAAI,EAAGA,EAAIkoB,EAAUpqF,OAAQkiE,IACpCgoB,EAAYhoB,GAAKkoB,EAAUloB,GAAG,GAEhC,OAAOgoB,CACX,EAEArG,eAAgB,SAASqE,GAOvB,IANA,IAIIqC,EACA7jF,EALAijF,EAAazB,EAAa,GAC1BsC,EAAgBtC,EAAa,GAC7BuC,EAAclwE,KAAKmwE,kBAAkBf,EAAY,CAAC/K,EAAaE,IAC/D6L,GAAaziB,IAGRpoE,EAAI,EAAGA,EAAI0qF,EAAcxqF,OAAQF,KACxC4G,EAAU+jF,EAAYD,EAAc1qF,KACtB6qF,IACZA,EAAYjkF,EACZ6jF,EAAYC,EAAc1qF,IAG9B,OAAOyqF,CACT,EAEArG,eAAgB,SAASgE,GAOvB,IANA,IAII0C,EACAlkF,EALAijF,EAAazB,EAAa,GAC1BsC,EAAgBtC,EAAa,GAC7BuC,EAAclwE,KAAKmwE,kBAAkBf,EAAY,CAAC/K,EAAaE,IAC/D+L,EAAY3iB,IAGPpoE,EAAI,EAAGA,EAAI0qF,EAAcxqF,OAAQF,KACxC4G,EAAU+jF,EAAYD,EAAc1qF,KACtB+qF,IACZA,EAAYnkF,EACZkkF,EAAYJ,EAAc1qF,IAG9B,OAAO8qF,CACT,EAEAF,kBAAmB,SAASf,EAAYmB,GACtC,IAAI9qB,EAAOzlD,KACPooE,EAAcpoE,KAAKqoE,aAUvB,OATc,SAASr/E,GACrB,IAAImD,EAAUi8E,EAAY2E,MAAMqC,EAAYpmF,GAC5C,GAAIunF,EAAa1pF,QAAQ4+D,EAAKgpB,aAAatiF,IAAY,EAAG,CACxD,IAAI+c,EAAM,8BAAgCqnE,EAChC,cAAgB9qB,EAAKgpB,aAAatiF,GAC5C,MAAM,IAAI9B,MAAM6e,EAClB,CACA,OAAO/c,CACT,CAEF,GA2BF7H,EAAQ0iF,SAjBR,SAAkBrnD,GAEd,OADY,IAAIonD,GACHC,SAASrnD,EAC1B,EAeAr7B,EAAQksF,QAxBR,SAAiB7wD,GAGf,OAFa,IAAIna,GACAiC,MAAMkY,EAEzB,EAqBAr7B,EAAQgkB,OAdR,SAAgB/I,EAAMirE,GAClB,IAAItqD,EAAS,IAAI1a,EAIb0iE,EAAU,IAAIC,EACdC,EAAc,IAAIH,EAAgBC,GACtCA,EAAQG,aAAeD,EACvB,IAAIh9E,EAAO80B,EAAOzY,MAAM+iE,GACxB,OAAOpC,EAAY9/D,OAAOld,EAAMmU,EACpC,EAKAjb,EAAQ08C,gBAAkBA,CAC3B,CAvoDD,CAuoDyD18C,cC1lDzD,SAASmsF,EAAUC,EAAQ5kF,GACzB4kF,EAAO7xB,OAAS,WACd7+C,KAAK4+C,QAAU5+C,KAAK6+C,OAAS,KAC7B/yD,EAAG,KAAM4kF,EACX,EACAA,EAAO9xB,QAAU,WAGf5+C,KAAK4+C,QAAU5+C,KAAK6+C,OAAS,KAC7B/yD,EAAG,IAAIzB,MAAM,kBAAoB2V,KAAKguD,KAAM0iB,EAC9C,CACF,CAEA,SAASC,EAASD,EAAQ5kF,GACxB4kF,EAAOE,mBAAqB,WACH,YAAnB5wE,KAAK8rB,YAA+C,UAAnB9rB,KAAK8rB,aAC1C9rB,KAAK4wE,mBAAqB,KAC1B9kF,EAAG,KAAM4kF,GACX,CACF,CA/DAh4E,EAAOpU,QAAU,SAAe0pE,EAAKhO,EAAMl0D,GACzC,IAAI+kF,EAAOp/C,SAASo/C,MAAQp/C,SAASwwB,qBAAqB,QAAQ,GAC9DyuB,EAASj/C,SAASzgC,cAAc,UAEhB,oBAATgvD,IACTl0D,EAAKk0D,EACLA,EAAO,CAAC,GAGVA,EAAOA,GAAQ,CAAC,EAChBl0D,EAAKA,GAAM,WAAY,EAEvB4kF,EAAO/8E,KAAOqsD,EAAKrsD,MAAQ,kBAC3B+8E,EAAOI,QAAU9wB,EAAK8wB,SAAW,OACjCJ,EAAO5sB,QAAQ,UAAW9D,MAASA,EAAK8D,MACxC4sB,EAAO1iB,IAAMA,EAEThO,EAAK+wB,OAqBX,SAAuBL,EAAQK,GAC7B,IAAK,IAAIC,KAAQD,EACfL,EAAOO,aAAaD,EAAMD,EAAMC,GAEpC,CAxBIE,CAAcR,EAAQ1wB,EAAK+wB,OAGzB/wB,EAAKkD,OACPwtB,EAAOxtB,KAAO,GAAKlD,EAAKkD,OAGd,WAAYwtB,EAASD,EAAWE,GACtCD,EAAQ5kF,GAKT4kF,EAAO7xB,QACV4xB,EAASC,EAAQ5kF,GAGnB+kF,EAAKtW,YAAYmW,EACnB,mBCrCA,IAII5vE,EAJY/I,EAAQ,MAITo5E,CAHJp5E,EAAQ,OAGY,YAE/BW,EAAOpU,QAAUwc,mBCNjB,IAAIswE,EAAYr5E,EAAQ,OACpBs5E,EAAat5E,EAAQ,OACrBu5E,EAAUv5E,EAAQ,OAClBw5E,EAAUx5E,EAAQ,OAClBy5E,EAAUz5E,EAAQ,OAStB,SAAS05E,EAAKv5B,GACZ,IAAItjC,GAAS,EACTnvB,EAAoB,MAAXyyD,EAAkB,EAAIA,EAAQzyD,OAG3C,IADAua,KAAKkK,UACI0K,EAAQnvB,GAAQ,CACvB,IAAI4yD,EAAQH,EAAQtjC,GACpB5U,KAAKQ,IAAI63C,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAo5B,EAAKnrF,UAAU4jB,MAAQknE,EACvBK,EAAKnrF,UAAkB,OAAI+qF,EAC3BI,EAAKnrF,UAAUgS,IAAMg5E,EACrBG,EAAKnrF,UAAUorF,IAAMH,EACrBE,EAAKnrF,UAAUka,IAAMgxE,EAErB94E,EAAOpU,QAAUmtF,mBC/BjB,IAAIE,EAAiB55E,EAAQ,OACzB65E,EAAkB75E,EAAQ,OAC1B85E,EAAe95E,EAAQ,OACvB+5E,EAAe/5E,EAAQ,OACvBg6E,EAAeh6E,EAAQ,OAS3B,SAASi6E,EAAU95B,GACjB,IAAItjC,GAAS,EACTnvB,EAAoB,MAAXyyD,EAAkB,EAAIA,EAAQzyD,OAG3C,IADAua,KAAKkK,UACI0K,EAAQnvB,GAAQ,CACvB,IAAI4yD,EAAQH,EAAQtjC,GACpB5U,KAAKQ,IAAI63C,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGA25B,EAAU1rF,UAAU4jB,MAAQynE,EAC5BK,EAAU1rF,UAAkB,OAAIsrF,EAChCI,EAAU1rF,UAAUgS,IAAMu5E,EAC1BG,EAAU1rF,UAAUorF,IAAMI,EAC1BE,EAAU1rF,UAAUka,IAAMuxE,EAE1Br5E,EAAOpU,QAAU0tF,mBC/BjB,IAII/S,EAJYlnE,EAAQ,MAIdo5E,CAHCp5E,EAAQ,OAGO,OAE1BW,EAAOpU,QAAU26E,mBCNjB,IAAIgT,EAAgBl6E,EAAQ,OACxBm6E,EAAiBn6E,EAAQ,OACzBo6E,EAAcp6E,EAAQ,OACtBq6E,EAAcr6E,EAAQ,OACtBs6E,EAAct6E,EAAQ,OAS1B,SAASu6E,EAASp6B,GAChB,IAAItjC,GAAS,EACTnvB,EAAoB,MAAXyyD,EAAkB,EAAIA,EAAQzyD,OAG3C,IADAua,KAAKkK,UACI0K,EAAQnvB,GAAQ,CACvB,IAAI4yD,EAAQH,EAAQtjC,GACpB5U,KAAKQ,IAAI63C,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAi6B,EAAShsF,UAAU4jB,MAAQ+nE,EAC3BK,EAAShsF,UAAkB,OAAI4rF,EAC/BI,EAAShsF,UAAUgS,IAAM65E,EACzBG,EAAShsF,UAAUorF,IAAMU,EACzBE,EAAShsF,UAAUka,IAAM6xE,EAEzB35E,EAAOpU,QAAUguF,mBC/BjB,IAIInjF,EAJY4I,EAAQ,MAIVo5E,CAHHp5E,EAAQ,OAGW,WAE9BW,EAAOpU,QAAU6K,mBCNjB,IAIIiwE,EAJYrnE,EAAQ,MAIdo5E,CAHCp5E,EAAQ,OAGO,OAE1BW,EAAOpU,QAAU86E,mBCNjB,IAAIkT,EAAWv6E,EAAQ,OACnBw6E,EAAcx6E,EAAQ,OACtBy6E,EAAcz6E,EAAQ,OAU1B,SAAS06E,EAASt3D,GAChB,IAAIvG,GAAS,EACTnvB,EAAmB,MAAV01B,EAAiB,EAAIA,EAAO11B,OAGzC,IADAua,KAAK0yE,SAAW,IAAIJ,IACX19D,EAAQnvB,GACfua,KAAK2jB,IAAIxI,EAAOvG,GAEpB,CAGA69D,EAASnsF,UAAUq9B,IAAM8uD,EAASnsF,UAAUnB,KAAOotF,EACnDE,EAASnsF,UAAUorF,IAAMc,EAEzB95E,EAAOpU,QAAUmuF,kBC1BjB,IAAIT,EAAYj6E,EAAQ,OACpB46E,EAAa56E,EAAQ,OACrB66E,EAAc76E,EAAQ,OACtB86E,EAAW96E,EAAQ,OACnB+6E,EAAW/6E,EAAQ,MACnBg7E,EAAWh7E,EAAQ,OASvB,SAASi7E,EAAM96B,GACb,IAAI34C,EAAOS,KAAK0yE,SAAW,IAAIV,EAAU95B,GACzCl4C,KAAK69C,KAAOt+C,EAAKs+C,IACnB,CAGAm1B,EAAM1sF,UAAU4jB,MAAQyoE,EACxBK,EAAM1sF,UAAkB,OAAIssF,EAC5BI,EAAM1sF,UAAUgS,IAAMu6E,EACtBG,EAAM1sF,UAAUorF,IAAMoB,EACtBE,EAAM1sF,UAAUka,IAAMuyE,EAEtBr6E,EAAOpU,QAAU0uF,kBC1BjB,IAGI7sF,EAHO4R,EAAQ,OAGD5R,OAElBuS,EAAOpU,QAAU6B,mBCLjB,IAGIuZ,EAHO3H,EAAQ,OAGG2H,WAEtBhH,EAAOpU,QAAUob,mBCLjB,IAII8/D,EAJYznE,EAAQ,MAIVo5E,CAHHp5E,EAAQ,OAGW,WAE9BW,EAAOpU,QAAUk7E,aCkBjB9mE,EAAOpU,QAfP,SAAqBmG,EAAOwoF,GAM1B,IALA,IAAIr+D,GAAS,EACTnvB,EAAkB,MAATgF,EAAgB,EAAIA,EAAMhF,OACnCytF,EAAW,EACX7jF,EAAS,KAEJulB,EAAQnvB,GAAQ,CACvB,IAAIc,EAAQkE,EAAMmqB,GACdq+D,EAAU1sF,EAAOquB,EAAOnqB,KAC1B4E,EAAO6jF,KAAc3sF,EAEzB,CACA,OAAO8I,CACT,mBCtBA,IAAI8jF,EAAYp7E,EAAQ,MACpBq7E,EAAcr7E,EAAQ,OACtBtQ,EAAUsQ,EAAQ,OAClB6nB,EAAW7nB,EAAQ,OACnBs7E,EAAUt7E,EAAQ,OAClBu7E,EAAev7E,EAAQ,OAMvB7O,EAHctE,OAAO0B,UAGQ4C,eAqCjCwP,EAAOpU,QA3BP,SAAuBiC,EAAOgtF,GAC5B,IAAIC,EAAQ/rF,EAAQlB,GAChBktF,GAASD,GAASJ,EAAY7sF,GAC9BmtF,GAAUF,IAAUC,GAAS7zD,EAASr5B,GACtCs5B,GAAU2zD,IAAUC,IAAUC,GAAUJ,EAAa/sF,GACrDotF,EAAcH,GAASC,GAASC,GAAU7zD,EAC1CxwB,EAASskF,EAAcR,EAAU5sF,EAAMd,OAAQ6wB,QAAU,GACzD7wB,EAAS4J,EAAO5J,OAEpB,IAAK,IAAIG,KAAOW,GACTgtF,IAAarqF,EAAejC,KAAKV,EAAOX,IACvC+tF,IAEQ,UAAP/tF,GAEC8tF,IAAkB,UAAP9tF,GAA0B,UAAPA,IAE9Bi6B,IAAkB,UAAPj6B,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDytF,EAAQztF,EAAKH,KAElB4J,EAAOlK,KAAKS,GAGhB,OAAOyJ,CACT,aC3BAqJ,EAAOpU,QAXP,SAAmBmG,EAAO0wB,GAKxB,IAJA,IAAIvG,GAAS,EACTnvB,EAAS01B,EAAO11B,OAChByd,EAASzY,EAAMhF,SAEVmvB,EAAQnvB,GACfgF,EAAMyY,EAAS0R,GAASuG,EAAOvG,GAEjC,OAAOnqB,CACT,aCKAiO,EAAOpU,QAZP,SAAmBmG,EAAOwoF,GAIxB,IAHA,IAAIr+D,GAAS,EACTnvB,EAAkB,MAATgF,EAAgB,EAAIA,EAAMhF,SAE9BmvB,EAAQnvB,GACf,GAAIwtF,EAAUxoF,EAAMmqB,GAAQA,EAAOnqB,GACjC,OAAO,EAGX,OAAO,CACT,mBCpBA,IAAImpF,EAAK77E,EAAQ,OAoBjBW,EAAOpU,QAVP,SAAsBmG,EAAO7E,GAE3B,IADA,IAAIH,EAASgF,EAAMhF,OACZA,KACL,GAAImuF,EAAGnpF,EAAMhF,GAAQ,GAAIG,GACvB,OAAOH,EAGX,OAAQ,CACV,kBClBA,IAAIouF,EAAY97E,EAAQ,OACpBtQ,EAAUsQ,EAAQ,OAkBtBW,EAAOpU,QALP,SAAwBG,EAAQqvF,EAAUC,GACxC,IAAI1kF,EAASykF,EAASrvF,GACtB,OAAOgD,EAAQhD,GAAU4K,EAASwkF,EAAUxkF,EAAQ0kF,EAAYtvF,GAClE,mBCjBA,IAAI0B,EAAS4R,EAAQ,MACjBi8E,EAAYj8E,EAAQ,OACpBk8E,EAAiBl8E,EAAQ,OAOzBm8E,EAAiB/tF,EAASA,EAAO21E,iBAAc/sE,EAkBnD2J,EAAOpU,QATP,SAAoBiC,GAClB,OAAa,MAATA,OACewI,IAAVxI,EAdQ,qBADL,gBAiBJ2tF,GAAkBA,KAAkBtvF,OAAO2B,GAC/CytF,EAAUztF,GACV0tF,EAAe1tF,EACrB,mBCzBA,IAAI4tF,EAAap8E,EAAQ,OACrBq8E,EAAer8E,EAAQ,OAgB3BW,EAAOpU,QAJP,SAAyBiC,GACvB,OAAO6tF,EAAa7tF,IAVR,sBAUkB4tF,EAAW5tF,EAC3C,mBCfA,IAAI8tF,EAAkBt8E,EAAQ,OAC1Bq8E,EAAer8E,EAAQ,OA0B3BW,EAAOpU,QAVP,SAASgwF,EAAY/tF,EAAOguF,EAAOC,EAASC,EAAY/0B,GACtD,OAAIn5D,IAAUguF,IAGD,MAAThuF,GAA0B,MAATguF,IAAmBH,EAAa7tF,KAAW6tF,EAAaG,GACpEhuF,IAAUA,GAASguF,IAAUA,EAE/BF,EAAgB9tF,EAAOguF,EAAOC,EAASC,EAAYH,EAAa50B,GACzE,mBCzBA,IAAIszB,EAAQj7E,EAAQ,MAChB28E,EAAc38E,EAAQ,OACtB48E,EAAa58E,EAAQ,OACrB68E,EAAe78E,EAAQ,OACvB88E,EAAS98E,EAAQ,OACjBtQ,EAAUsQ,EAAQ,OAClB6nB,EAAW7nB,EAAQ,OACnBu7E,EAAev7E,EAAQ,OAMvB+8E,EAAU,qBACVC,EAAW,iBACXC,EAAY,kBAMZ9rF,EAHctE,OAAO0B,UAGQ4C,eA6DjCwP,EAAOpU,QA7CP,SAAyBG,EAAQ8vF,EAAOC,EAASC,EAAYQ,EAAWv1B,GACtE,IAAIw1B,EAAWztF,EAAQhD,GACnB0wF,EAAW1tF,EAAQ8sF,GACnBa,EAASF,EAAWH,EAAWF,EAAOpwF,GACtC4wF,EAASF,EAAWJ,EAAWF,EAAON,GAKtCe,GAHJF,EAASA,GAAUN,EAAUE,EAAYI,IAGhBJ,EACrBO,GAHJF,EAASA,GAAUP,EAAUE,EAAYK,IAGhBL,EACrBQ,EAAYJ,GAAUC,EAE1B,GAAIG,GAAa51D,EAASn7B,GAAS,CACjC,IAAKm7B,EAAS20D,GACZ,OAAO,EAETW,GAAW,EACXI,GAAW,CACb,CACA,GAAIE,IAAcF,EAEhB,OADA51B,IAAUA,EAAQ,IAAIszB,GACdkC,GAAY5B,EAAa7uF,GAC7BiwF,EAAYjwF,EAAQ8vF,EAAOC,EAASC,EAAYQ,EAAWv1B,GAC3Di1B,EAAWlwF,EAAQ8vF,EAAOa,EAAQZ,EAASC,EAAYQ,EAAWv1B,GAExE,KArDyB,EAqDnB80B,GAAiC,CACrC,IAAIiB,EAAeH,GAAYpsF,EAAejC,KAAKxC,EAAQ,eACvDixF,EAAeH,GAAYrsF,EAAejC,KAAKstF,EAAO,eAE1D,GAAIkB,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAehxF,EAAO8B,QAAU9B,EAC/CmxF,EAAeF,EAAenB,EAAMhuF,QAAUguF,EAGlD,OADA70B,IAAUA,EAAQ,IAAIszB,GACfiC,EAAUU,EAAcC,EAAcpB,EAASC,EAAY/0B,EACpE,CACF,CACA,QAAK81B,IAGL91B,IAAUA,EAAQ,IAAIszB,GACf4B,EAAanwF,EAAQ8vF,EAAOC,EAASC,EAAYQ,EAAWv1B,GACrE,mBChFA,IAAIyO,EAAap2D,EAAQ,OACrB89E,EAAW99E,EAAQ,OACnBq2D,EAAWr2D,EAAQ,OACnB+9E,EAAW/9E,EAAQ,OASnBg+E,EAAe,8BAGfC,EAAYpZ,SAASt2E,UACrB2vF,EAAcrxF,OAAO0B,UAGrB4vF,EAAeF,EAAUztF,SAGzBW,EAAiB+sF,EAAY/sF,eAG7BitF,EAAapyD,OAAO,IACtBmyD,EAAajvF,KAAKiC,GAAgB+c,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhFvN,EAAOpU,QARP,SAAsBiC,GACpB,SAAK6nE,EAAS7nE,IAAUsvF,EAAStvF,MAGnB4nE,EAAW5nE,GAAS4vF,EAAaJ,GAChCptF,KAAKmtF,EAASvvF,GAC/B,mBC5CA,IAAI4tF,EAAap8E,EAAQ,OACrBq+E,EAAWr+E,EAAQ,OACnBq8E,EAAer8E,EAAQ,OA8BvBs+E,EAAiB,CAAC,EACtBA,EAZiB,yBAYYA,EAXZ,yBAYjBA,EAXc,sBAWYA,EAVX,uBAWfA,EAVe,uBAUYA,EATZ,uBAUfA,EATsB,8BASYA,EARlB,wBAShBA,EARgB,yBAQY,EAC5BA,EAjCc,sBAiCYA,EAhCX,kBAiCfA,EApBqB,wBAoBYA,EAhCnB,oBAiCdA,EApBkB,qBAoBYA,EAhChB,iBAiCdA,EAhCe,kBAgCYA,EA/Bb,qBAgCdA,EA/Ba,gBA+BYA,EA9BT,mBA+BhBA,EA9BgB,mBA8BYA,EA7BZ,mBA8BhBA,EA7Ba,gBA6BYA,EA5BT,mBA6BhBA,EA5BiB,qBA4BY,EAc7B39E,EAAOpU,QALP,SAA0BiC,GACxB,OAAO6tF,EAAa7tF,IAClB6vF,EAAS7vF,EAAMd,WAAa4wF,EAAelC,EAAW5tF,GAC1D,mBCzDA,IAAI+vF,EAAcv+E,EAAQ,OACtBw+E,EAAax+E,EAAQ,OAMrB7O,EAHctE,OAAO0B,UAGQ4C,eAsBjCwP,EAAOpU,QAbP,SAAkBG,GAChB,IAAK6xF,EAAY7xF,GACf,OAAO8xF,EAAW9xF,GAEpB,IAAI4K,EAAS,GACb,IAAK,IAAIzJ,KAAOhB,OAAOH,GACjByE,EAAejC,KAAKxC,EAAQmB,IAAe,eAAPA,GACtCyJ,EAAOlK,KAAKS,GAGhB,OAAOyJ,CACT,YCRAqJ,EAAOpU,QAVP,SAAmBgE,EAAGkuF,GAIpB,IAHA,IAAI5hE,GAAS,EACTvlB,EAAS7H,MAAMc,KAEVssB,EAAQtsB,GACf+G,EAAOulB,GAAS4hE,EAAS5hE,GAE3B,OAAOvlB,CACT,aCJAqJ,EAAOpU,QANP,SAAmBqG,GACjB,OAAO,SAASpE,GACd,OAAOoE,EAAKpE,EACd,CACF,aCCAmS,EAAOpU,QAJP,SAAkB8uE,EAAOxtE,GACvB,OAAOwtE,EAAMse,IAAI9rF,EACnB,mBCVA,IAGI6wF,EAHO1+E,EAAQ,OAGG,sBAEtBW,EAAOpU,QAAUmyF,mBCLjB,IAAIhE,EAAW16E,EAAQ,OACnB2+E,EAAY3+E,EAAQ,OACpB4+E,EAAW5+E,EAAQ,OAiFvBW,EAAOpU,QA9DP,SAAqBmG,EAAO8pF,EAAOC,EAASC,EAAYQ,EAAWv1B,GACjE,IAAIk3B,EAjBqB,EAiBTpC,EACZjtB,EAAY98D,EAAMhF,OAClBoxF,EAAYtC,EAAM9uF,OAEtB,GAAI8hE,GAAasvB,KAAeD,GAAaC,EAAYtvB,GACvD,OAAO,EAGT,IAAIuvB,EAAap3B,EAAMpnD,IAAI7N,GACvBssF,EAAar3B,EAAMpnD,IAAIi8E,GAC3B,GAAIuC,GAAcC,EAChB,OAAOD,GAAcvC,GAASwC,GAActsF,EAE9C,IAAImqB,GAAS,EACTvlB,GAAS,EACT2nF,EA/BuB,EA+BfxC,EAAoC,IAAI/B,OAAW1jF,EAM/D,IAJA2wD,EAAMl/C,IAAI/V,EAAO8pF,GACjB70B,EAAMl/C,IAAI+zE,EAAO9pF,KAGRmqB,EAAQ2yC,GAAW,CAC1B,IAAI0vB,EAAWxsF,EAAMmqB,GACjBsiE,EAAW3C,EAAM3/D,GAErB,GAAI6/D,EACF,IAAI0C,EAAWP,EACXnC,EAAWyC,EAAUD,EAAUriE,EAAO2/D,EAAO9pF,EAAOi1D,GACpD+0B,EAAWwC,EAAUC,EAAUtiE,EAAOnqB,EAAO8pF,EAAO70B,GAE1D,QAAiB3wD,IAAbooF,EAAwB,CAC1B,GAAIA,EACF,SAEF9nF,GAAS,EACT,KACF,CAEA,GAAI2nF,GACF,IAAKN,EAAUnC,GAAO,SAAS2C,EAAUE,GACnC,IAAKT,EAASK,EAAMI,KACfH,IAAaC,GAAYjC,EAAUgC,EAAUC,EAAU1C,EAASC,EAAY/0B,IAC/E,OAAOs3B,EAAK7xF,KAAKiyF,EAErB,IAAI,CACN/nF,GAAS,EACT,KACF,OACK,GACD4nF,IAAaC,IACXjC,EAAUgC,EAAUC,EAAU1C,EAASC,EAAY/0B,GACpD,CACLrwD,GAAS,EACT,KACF,CACF,CAGA,OAFAqwD,EAAc,OAAEj1D,GAChBi1D,EAAc,OAAE60B,GACTllF,CACT,mBCjFA,IAAIlJ,EAAS4R,EAAQ,MACjB2H,EAAa3H,EAAQ,OACrB67E,EAAK77E,EAAQ,OACb28E,EAAc38E,EAAQ,OACtBs/E,EAAat/E,EAAQ,OACrBu/E,EAAav/E,EAAQ,OAqBrBw/E,EAAcpxF,EAASA,EAAOG,eAAYyI,EAC1CyoF,EAAgBD,EAAcA,EAAY12D,aAAU9xB,EAoFxD2J,EAAOpU,QAjEP,SAAoBG,EAAQ8vF,EAAOtlF,EAAKulF,EAASC,EAAYQ,EAAWv1B,GACtE,OAAQzwD,GACN,IAzBc,oBA0BZ,GAAKxK,EAAO+a,YAAc+0E,EAAM/0E,YAC3B/a,EAAOmb,YAAc20E,EAAM30E,WAC9B,OAAO,EAETnb,EAASA,EAAOkb,OAChB40E,EAAQA,EAAM50E,OAEhB,IAlCiB,uBAmCf,QAAKlb,EAAO+a,YAAc+0E,EAAM/0E,aAC3By1E,EAAU,IAAIv1E,EAAWjb,GAAS,IAAIib,EAAW60E,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAOX,GAAInvF,GAAS8vF,GAEtB,IAxDW,iBAyDT,OAAO9vF,EAAOgE,MAAQ8rF,EAAM9rF,MAAQhE,EAAO2kB,SAAWmrE,EAAMnrE,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAO3kB,GAAW8vF,EAAQ,GAE5B,IAjES,eAkEP,IAAI11D,EAAUw4D,EAEhB,IAjES,eAkEP,IAAIT,EA5EiB,EA4ELpC,EAGhB,GAFA31D,IAAYA,EAAUy4D,GAElB7yF,EAAOo5D,MAAQ02B,EAAM12B,OAAS+4B,EAChC,OAAO,EAGT,IAAIa,EAAU/3B,EAAMpnD,IAAI7T,GACxB,GAAIgzF,EACF,OAAOA,GAAWlD,EAEpBC,GAtFuB,EAyFvB90B,EAAMl/C,IAAI/b,EAAQ8vF,GAClB,IAAIllF,EAASqlF,EAAY71D,EAAQp6B,GAASo6B,EAAQ01D,GAAQC,EAASC,EAAYQ,EAAWv1B,GAE1F,OADAA,EAAc,OAAEj7D,GACT4K,EAET,IAnFY,kBAoFV,GAAImoF,EACF,OAAOA,EAAcvwF,KAAKxC,IAAW+yF,EAAcvwF,KAAKstF,GAG9D,OAAO,CACT,mBC7GA,IAAImD,EAAa3/E,EAAQ,OASrB7O,EAHctE,OAAO0B,UAGQ4C,eAgFjCwP,EAAOpU,QAjEP,SAAsBG,EAAQ8vF,EAAOC,EAASC,EAAYQ,EAAWv1B,GACnE,IAAIk3B,EAtBqB,EAsBTpC,EACZmD,EAAWD,EAAWjzF,GACtBmzF,EAAYD,EAASlyF,OAIzB,GAAImyF,GAHWF,EAAWnD,GACD9uF,SAEMmxF,EAC7B,OAAO,EAGT,IADA,IAAIhiE,EAAQgjE,EACLhjE,KAAS,CACd,IAAIhvB,EAAM+xF,EAAS/iE,GACnB,KAAMgiE,EAAYhxF,KAAO2uF,EAAQrrF,EAAejC,KAAKstF,EAAO3uF,IAC1D,OAAO,CAEX,CAEA,IAAIiyF,EAAan4B,EAAMpnD,IAAI7T,GACvBsyF,EAAar3B,EAAMpnD,IAAIi8E,GAC3B,GAAIsD,GAAcd,EAChB,OAAOc,GAActD,GAASwC,GAActyF,EAE9C,IAAI4K,GAAS,EACbqwD,EAAMl/C,IAAI/b,EAAQ8vF,GAClB70B,EAAMl/C,IAAI+zE,EAAO9vF,GAGjB,IADA,IAAIqzF,EAAWlB,IACNhiE,EAAQgjE,GAAW,CAE1B,IAAIG,EAAWtzF,EADfmB,EAAM+xF,EAAS/iE,IAEXsiE,EAAW3C,EAAM3uF,GAErB,GAAI6uF,EACF,IAAI0C,EAAWP,EACXnC,EAAWyC,EAAUa,EAAUnyF,EAAK2uF,EAAO9vF,EAAQi7D,GACnD+0B,EAAWsD,EAAUb,EAAUtxF,EAAKnB,EAAQ8vF,EAAO70B,GAGzD,UAAmB3wD,IAAbooF,EACGY,IAAab,GAAYjC,EAAU8C,EAAUb,EAAU1C,EAASC,EAAY/0B,GAC7Ey3B,GACD,CACL9nF,GAAS,EACT,KACF,CACAyoF,IAAaA,EAAkB,eAAPlyF,EAC1B,CACA,GAAIyJ,IAAWyoF,EAAU,CACvB,IAAIE,EAAUvzF,EAAO4B,YACjB4xF,EAAU1D,EAAMluF,YAGhB2xF,GAAWC,KACV,gBAAiBxzF,MAAU,gBAAiB8vF,IACzB,mBAAXyD,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvD5oF,GAAS,EAEb,CAGA,OAFAqwD,EAAc,OAAEj7D,GAChBi7D,EAAc,OAAE60B,GACTllF,CACT,mBCtFA,IAAI6oF,EAA8B,iBAAV5uB,EAAAA,GAAsBA,EAAAA,GAAUA,EAAAA,EAAO1kE,SAAWA,QAAU0kE,EAAAA,EAEpF5wD,EAAOpU,QAAU4zF,mBCHjB,IAAIC,EAAiBpgF,EAAQ,MACzBqgF,EAAargF,EAAQ,OACrBpT,EAAOoT,EAAQ,OAanBW,EAAOpU,QAJP,SAAoBG,GAClB,OAAO0zF,EAAe1zF,EAAQE,EAAMyzF,EACtC,mBCbA,IAAIC,EAAYtgF,EAAQ,OAiBxBW,EAAOpU,QAPP,SAAoBq2B,EAAK/0B,GACvB,IAAI2Z,EAAOob,EAAI+3D,SACf,OAAO2F,EAAUzyF,GACb2Z,EAAmB,iBAAP3Z,EAAkB,SAAW,QACzC2Z,EAAKob,GACX,mBCfA,IAAI29D,EAAevgF,EAAQ,OACvBwgF,EAAWxgF,EAAQ,OAevBW,EAAOpU,QALP,SAAmBG,EAAQmB,GACzB,IAAIW,EAAQgyF,EAAS9zF,EAAQmB,GAC7B,OAAO0yF,EAAa/xF,GAASA,OAAQwI,CACvC,mBCdA,IAAI5I,EAAS4R,EAAQ,MAGjBk+E,EAAcrxF,OAAO0B,UAGrB4C,EAAiB+sF,EAAY/sF,eAO7BsvF,EAAuBvC,EAAY1tF,SAGnC2rF,EAAiB/tF,EAASA,EAAO21E,iBAAc/sE,EA6BnD2J,EAAOpU,QApBP,SAAmBiC,GACjB,IAAI26E,EAAQh4E,EAAejC,KAAKV,EAAO2tF,GACnCjlF,EAAM1I,EAAM2tF,GAEhB,IACE3tF,EAAM2tF,QAAkBnlF,EACxB,IAAI0pF,GAAW,CACjB,CAAE,MAAOliF,GAAI,CAEb,IAAIlH,EAASmpF,EAAqBvxF,KAAKV,GAQvC,OAPIkyF,IACEvX,EACF36E,EAAM2tF,GAAkBjlF,SAEjB1I,EAAM2tF,IAGV7kF,CACT,mBC3CA,IAAIqpF,EAAc3gF,EAAQ,OACtB4gF,EAAY5gF,EAAQ,OAMpB/Q,EAHcpC,OAAO0B,UAGcU,qBAGnC4xF,EAAmBh0F,OAAOC,sBAS1BuzF,EAAcQ,EAA+B,SAASn0F,GACxD,OAAc,MAAVA,EACK,IAETA,EAASG,OAAOH,GACTi0F,EAAYE,EAAiBn0F,IAAS,SAASqG,GACpD,OAAO9D,EAAqBC,KAAKxC,EAAQqG,EAC3C,IACF,EARqC6tF,EAUrCjgF,EAAOpU,QAAU8zF,mBC7BjB,IAAIt3E,EAAW/I,EAAQ,OACnBknE,EAAMlnE,EAAQ,OACd5I,EAAU4I,EAAQ,OAClBqnE,EAAMrnE,EAAQ,OACdynE,EAAUznE,EAAQ,OAClBo8E,EAAap8E,EAAQ,OACrB+9E,EAAW/9E,EAAQ,OAGnB8gF,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,EAAqBpD,EAASh1E,GAC9Bq4E,EAAgBrD,EAAS7W,GACzBma,EAAoBtD,EAAS3mF,GAC7BkqF,EAAgBvD,EAAS1W,GACzBka,EAAoBxD,EAAStW,GAS7BqV,EAASV,GAGRrzE,GAAY+zE,EAAO,IAAI/zE,EAAS,IAAI5B,YAAY,MAAQ+5E,GACxDha,GAAO4V,EAAO,IAAI5V,IAAQ4Z,GAC1B1pF,GAAW0lF,EAAO1lF,EAAQC,YAAc0pF,GACxC1Z,GAAOyV,EAAO,IAAIzV,IAAQ2Z,GAC1BvZ,GAAWqV,EAAO,IAAIrV,IAAYwZ,KACrCnE,EAAS,SAAStuF,GAChB,IAAI8I,EAAS8kF,EAAW5tF,GACpBgzF,EA/BQ,mBA+BDlqF,EAAsB9I,EAAMF,iBAAc0I,EACjDyqF,EAAaD,EAAOzD,EAASyD,GAAQ,GAEzC,GAAIC,EACF,OAAQA,GACN,KAAKN,EAAoB,OAAOD,EAChC,KAAKE,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAC/B,KAAKO,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAGnC,OAAO3pF,CACT,GAGFqJ,EAAOpU,QAAUuwF,aC7CjBn8E,EAAOpU,QAJP,SAAkBG,EAAQmB,GACxB,OAAiB,MAAVnB,OAAiBsK,EAAYtK,EAAOmB,EAC7C,mBCVA,IAAI6zF,EAAe1hF,EAAQ,OAc3BW,EAAOpU,QALP,WACE0b,KAAK0yE,SAAW+G,EAAeA,EAAa,MAAQ,CAAC,EACrDz5E,KAAK69C,KAAO,CACd,aCIAnlD,EAAOpU,QANP,SAAoBsB,GAClB,IAAIyJ,EAAS2Q,KAAK0xE,IAAI9rF,WAAeoa,KAAK0yE,SAAS9sF,GAEnD,OADAoa,KAAK69C,MAAQxuD,EAAS,EAAI,EACnBA,CACT,mBCdA,IAAIoqF,EAAe1hF,EAAQ,OASvB7O,EAHctE,OAAO0B,UAGQ4C,eAoBjCwP,EAAOpU,QATP,SAAiBsB,GACf,IAAI2Z,EAAOS,KAAK0yE,SAChB,GAAI+G,EAAc,CAChB,IAAIpqF,EAASkQ,EAAK3Z,GAClB,MArBiB,8BAqBVyJ,OAA4BN,EAAYM,CACjD,CACA,OAAOnG,EAAejC,KAAKsY,EAAM3Z,GAAO2Z,EAAK3Z,QAAOmJ,CACtD,mBC3BA,IAAI0qF,EAAe1hF,EAAQ,OAMvB7O,EAHctE,OAAO0B,UAGQ4C,eAgBjCwP,EAAOpU,QALP,SAAiBsB,GACf,IAAI2Z,EAAOS,KAAK0yE,SAChB,OAAO+G,OAA8B1qF,IAAdwQ,EAAK3Z,GAAsBsD,EAAejC,KAAKsY,EAAM3Z,EAC9E,mBCpBA,IAAI6zF,EAAe1hF,EAAQ,OAsB3BW,EAAOpU,QAPP,SAAiBsB,EAAKW,GACpB,IAAIgZ,EAAOS,KAAK0yE,SAGhB,OAFA1yE,KAAK69C,MAAQ79C,KAAK0xE,IAAI9rF,GAAO,EAAI,EACjC2Z,EAAK3Z,GAAQ6zF,QAA0B1qF,IAAVxI,EAfV,4BAekDA,EAC9DyZ,IACT,aCnBA,IAGI05E,EAAW,mBAoBfhhF,EAAOpU,QAVP,SAAiBiC,EAAOd,GACtB,IAAIkO,SAAcpN,EAGlB,SAFAd,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARkO,GACU,UAARA,GAAoB+lF,EAAS/wF,KAAKpC,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQd,CACjD,aCRAiT,EAAOpU,QAPP,SAAmBiC,GACjB,IAAIoN,SAAcpN,EAClB,MAAgB,UAARoN,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAVpN,EACU,OAAVA,CACP,mBCZA,IAAIkwF,EAAa1+E,EAAQ,OAGrB4hF,EAAc,WAChB,IAAIC,EAAM,SAAS7iC,KAAK0/B,GAAcA,EAAW9xF,MAAQ8xF,EAAW9xF,KAAKk1F,UAAY,IACrF,OAAOD,EAAO,iBAAmBA,EAAO,EAC1C,CAHkB,GAgBlBlhF,EAAOpU,QAJP,SAAkBqG,GAChB,QAASgvF,GAAeA,KAAchvF,CACxC,aChBA,IAAIsrF,EAAcrxF,OAAO0B,UAgBzBoS,EAAOpU,QAPP,SAAqBiC,GACnB,IAAIgzF,EAAOhzF,GAASA,EAAMF,YAG1B,OAAOE,KAFqB,mBAARgzF,GAAsBA,EAAKjzF,WAAc2vF,EAG/D,aCHAv9E,EAAOpU,QALP,WACE0b,KAAK0yE,SAAW,GAChB1yE,KAAK69C,KAAO,CACd,mBCVA,IAAIi8B,EAAe/hF,EAAQ,OAMvB8uC,EAHar/C,MAAMlB,UAGCugD,OA4BxBnuC,EAAOpU,QAjBP,SAAyBsB,GACvB,IAAI2Z,EAAOS,KAAK0yE,SACZ99D,EAAQklE,EAAav6E,EAAM3Z,GAE/B,QAAIgvB,EAAQ,KAIRA,GADYrV,EAAK9Z,OAAS,EAE5B8Z,EAAK83B,MAELwP,EAAO5/C,KAAKsY,EAAMqV,EAAO,KAEzB5U,KAAK69C,MACA,EACT,mBChCA,IAAIi8B,EAAe/hF,EAAQ,OAkB3BW,EAAOpU,QAPP,SAAsBsB,GACpB,IAAI2Z,EAAOS,KAAK0yE,SACZ99D,EAAQklE,EAAav6E,EAAM3Z,GAE/B,OAAOgvB,EAAQ,OAAI7lB,EAAYwQ,EAAKqV,GAAO,EAC7C,mBChBA,IAAIklE,EAAe/hF,EAAQ,OAe3BW,EAAOpU,QAJP,SAAsBsB,GACpB,OAAOk0F,EAAa95E,KAAK0yE,SAAU9sF,IAAQ,CAC7C,mBCbA,IAAIk0F,EAAe/hF,EAAQ,OAyB3BW,EAAOpU,QAbP,SAAsBsB,EAAKW,GACzB,IAAIgZ,EAAOS,KAAK0yE,SACZ99D,EAAQklE,EAAav6E,EAAM3Z,GAQ/B,OANIgvB,EAAQ,KACR5U,KAAK69C,KACPt+C,EAAKpa,KAAK,CAACS,EAAKW,KAEhBgZ,EAAKqV,GAAO,GAAKruB,EAEZyZ,IACT,mBCvBA,IAAIyxE,EAAO15E,EAAQ,OACfi6E,EAAYj6E,EAAQ,OACpBknE,EAAMlnE,EAAQ,OAkBlBW,EAAOpU,QATP,WACE0b,KAAK69C,KAAO,EACZ79C,KAAK0yE,SAAW,CACd,KAAQ,IAAIjB,EACZ,IAAO,IAAKxS,GAAO+S,GACnB,OAAU,IAAIP,EAElB,mBClBA,IAAIsI,EAAahiF,EAAQ,OAiBzBW,EAAOpU,QANP,SAAwBsB,GACtB,IAAIyJ,EAAS0qF,EAAW/5E,KAAMpa,GAAa,OAAEA,GAE7C,OADAoa,KAAK69C,MAAQxuD,EAAS,EAAI,EACnBA,CACT,mBCfA,IAAI0qF,EAAahiF,EAAQ,OAezBW,EAAOpU,QAJP,SAAqBsB,GACnB,OAAOm0F,EAAW/5E,KAAMpa,GAAK0S,IAAI1S,EACnC,mBCbA,IAAIm0F,EAAahiF,EAAQ,OAezBW,EAAOpU,QAJP,SAAqBsB,GACnB,OAAOm0F,EAAW/5E,KAAMpa,GAAK8rF,IAAI9rF,EACnC,mBCbA,IAAIm0F,EAAahiF,EAAQ,OAqBzBW,EAAOpU,QATP,SAAqBsB,EAAKW,GACxB,IAAIgZ,EAAOw6E,EAAW/5E,KAAMpa,GACxBi4D,EAAOt+C,EAAKs+C,KAIhB,OAFAt+C,EAAKiB,IAAI5a,EAAKW,GACdyZ,KAAK69C,MAAQt+C,EAAKs+C,MAAQA,EAAO,EAAI,EAC9B79C,IACT,aCFAtH,EAAOpU,QAVP,SAAoBq2B,GAClB,IAAI/F,GAAS,EACTvlB,EAAS7H,MAAMmzB,EAAIkjC,MAKvB,OAHAljC,EAAIh1B,SAAQ,SAASY,EAAOX,GAC1ByJ,IAASulB,GAAS,CAAChvB,EAAKW,EAC1B,IACO8I,CACT,mBCfA,IAGIoqF,EAHY1hF,EAAQ,MAGLo5E,CAAUvsF,OAAQ,UAErC8T,EAAOpU,QAAUm1F,mBCLjB,IAGIlD,EAHUx+E,EAAQ,MAGLiiF,CAAQp1F,OAAOD,KAAMC,QAEtC8T,EAAOpU,QAAUiyF,8BCLjB,IAAI2B,EAAangF,EAAQ,OAGrBkiF,EAA4C31F,IAAYA,EAAQ41F,UAAY51F,EAG5E61F,EAAaF,GAA4CvhF,IAAWA,EAAOwhF,UAAYxhF,EAMvF0hF,EAHgBD,GAAcA,EAAW71F,UAAY21F,GAGtB/B,EAAWzyE,QAG1C40E,EAAY,WACd,IAEE,IAAI56D,EAAQ06D,GAAcA,EAAWpiF,SAAWoiF,EAAWpiF,QAAQ,QAAQ0nB,MAE3E,OAAIA,GAKG26D,GAAeA,EAAYE,SAAWF,EAAYE,QAAQ,OACnE,CAAE,MAAO/jF,GAAI,CACf,CAZgB,GAchBmC,EAAOpU,QAAU+1F,aC5BjB,IAOI7B,EAPc5zF,OAAO0B,UAOciC,SAavCmQ,EAAOpU,QAJP,SAAwBiC,GACtB,OAAOiyF,EAAqBvxF,KAAKV,EACnC,aCLAmS,EAAOpU,QANP,SAAiBqG,EAAM4vF,GACrB,OAAO,SAASn7E,GACd,OAAOzU,EAAK4vF,EAAUn7E,GACxB,CACF,mBCZA,IAAI84E,EAAangF,EAAQ,OAGrByiF,EAA0B,iBAARj8E,MAAoBA,MAAQA,KAAK3Z,SAAWA,QAAU2Z,KAGxEk8E,EAAOvC,GAAcsC,GAAY5d,SAAS,cAATA,GAErClkE,EAAOpU,QAAUm2F,aCUjB/hF,EAAOpU,QALP,SAAqBiC,GAEnB,OADAyZ,KAAK0yE,SAASlyE,IAAIja,EAbC,6BAcZyZ,IACT,aCHAtH,EAAOpU,QAJP,SAAqBiC,GACnB,OAAOyZ,KAAK0yE,SAAShB,IAAInrF,EAC3B,aCMAmS,EAAOpU,QAVP,SAAoBkc,GAClB,IAAIoU,GAAS,EACTvlB,EAAS7H,MAAMgZ,EAAIq9C,MAKvB,OAHAr9C,EAAI7a,SAAQ,SAASY,GACnB8I,IAASulB,GAASruB,CACpB,IACO8I,CACT,mBCfA,IAAI2iF,EAAYj6E,EAAQ,OAcxBW,EAAOpU,QALP,WACE0b,KAAK0yE,SAAW,IAAIV,EACpBhyE,KAAK69C,KAAO,CACd,aCKAnlD,EAAOpU,QARP,SAAqBsB,GACnB,IAAI2Z,EAAOS,KAAK0yE,SACZrjF,EAASkQ,EAAa,OAAE3Z,GAG5B,OADAoa,KAAK69C,KAAOt+C,EAAKs+C,KACVxuD,CACT,aCFAqJ,EAAOpU,QAJP,SAAkBsB,GAChB,OAAOoa,KAAK0yE,SAASp6E,IAAI1S,EAC3B,YCEA8S,EAAOpU,QAJP,SAAkBsB,GAChB,OAAOoa,KAAK0yE,SAAShB,IAAI9rF,EAC3B,mBCXA,IAAIosF,EAAYj6E,EAAQ,OACpBknE,EAAMlnE,EAAQ,OACdu6E,EAAWv6E,EAAQ,OA+BvBW,EAAOpU,QAhBP,SAAkBsB,EAAKW,GACrB,IAAIgZ,EAAOS,KAAK0yE,SAChB,GAAInzE,aAAgByyE,EAAW,CAC7B,IAAInF,EAAQttE,EAAKmzE,SACjB,IAAKzT,GAAQ4N,EAAMpnF,OAASi1F,IAG1B,OAFA7N,EAAM1nF,KAAK,CAACS,EAAKW,IACjByZ,KAAK69C,OAASt+C,EAAKs+C,KACZ79C,KAETT,EAAOS,KAAK0yE,SAAW,IAAIJ,EAASzF,EACtC,CAGA,OAFAttE,EAAKiB,IAAI5a,EAAKW,GACdyZ,KAAK69C,KAAOt+C,EAAKs+C,KACV79C,IACT,aC9BA,IAGIk2E,EAHYtZ,SAASt2E,UAGIiC,SAqB7BmQ,EAAOpU,QAZP,SAAkBqG,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOurF,EAAajvF,KAAK0D,EAC3B,CAAE,MAAO4L,GAAI,CACb,IACE,OAAQ5L,EAAO,EACjB,CAAE,MAAO4L,GAAI,CACf,CACA,MAAO,EACT,aCaAmC,EAAOpU,QAJP,SAAYiC,EAAOguF,GACjB,OAAOhuF,IAAUguF,GAAUhuF,IAAUA,GAASguF,IAAUA,CAC1D,mBClCA,IAAIoG,EAAkB5iF,EAAQ,OAC1Bq8E,EAAer8E,EAAQ,OAGvBk+E,EAAcrxF,OAAO0B,UAGrB4C,EAAiB+sF,EAAY/sF,eAG7BlC,EAAuBivF,EAAYjvF,qBAoBnCosF,EAAcuH,EAAgB,WAAa,OAAOn1F,SAAW,CAA/B,IAAsCm1F,EAAkB,SAASp0F,GACjG,OAAO6tF,EAAa7tF,IAAU2C,EAAejC,KAAKV,EAAO,YACtDS,EAAqBC,KAAKV,EAAO,SACtC,EAEAmS,EAAOpU,QAAU8uF,aCZjB,IAAI3rF,EAAUD,MAAMC,QAEpBiR,EAAOpU,QAAUmD,kBCzBjB,IAAI0mE,EAAap2D,EAAQ,OACrBq+E,EAAWr+E,EAAQ,OA+BvBW,EAAOpU,QAJP,SAAqBiC,GACnB,OAAgB,MAATA,GAAiB6vF,EAAS7vF,EAAMd,UAAY0oE,EAAW5nE,EAChE,8BC9BA,IAAIk0F,EAAO1iF,EAAQ,OACf6iF,EAAY7iF,EAAQ,OAGpBkiF,EAA4C31F,IAAYA,EAAQ41F,UAAY51F,EAG5E61F,EAAaF,GAA4CvhF,IAAWA,EAAOwhF,UAAYxhF,EAMvFuG,EAHgBk7E,GAAcA,EAAW71F,UAAY21F,EAG5BQ,EAAKx7E,YAASlQ,EAsBvC6wB,GAnBiB3gB,EAASA,EAAO2gB,cAAW7wB,IAmBf6rF,EAEjCliF,EAAOpU,QAAUs7B,mBCrCjB,IAAI00D,EAAcv8E,EAAQ,OAkC1BW,EAAOpU,QAJP,SAAiBiC,EAAOguF,GACtB,OAAOD,EAAY/tF,EAAOguF,EAC5B,mBChCA,IAAIJ,EAAap8E,EAAQ,OACrBq2D,EAAWr2D,EAAQ,OAmCvBW,EAAOpU,QAVP,SAAoBiC,GAClB,IAAK6nE,EAAS7nE,GACZ,OAAO,EAIT,IAAI0I,EAAMklF,EAAW5tF,GACrB,MA5BY,qBA4BL0I,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,CAC/D,aCAAyJ,EAAOpU,QALP,SAAkBiC,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,gBA+BvB,aCFAmS,EAAOpU,QALP,SAAkBiC,GAChB,IAAIoN,SAAcpN,EAClB,OAAgB,MAATA,IAA0B,UAARoN,GAA4B,YAARA,EAC/C,aCAA+E,EAAOpU,QAJP,SAAsBiC,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CACjC,mBC1BA,IAAIs0F,EAAmB9iF,EAAQ,OAC3B+iF,EAAY/iF,EAAQ,OACpBsiF,EAAWtiF,EAAQ,OAGnBgjF,EAAmBV,GAAYA,EAAS/G,aAmBxCA,EAAeyH,EAAmBD,EAAUC,GAAoBF,EAEpEniF,EAAOpU,QAAUgvF,mBC1BjB,IAAI0H,EAAgBjjF,EAAQ,OACxBkjF,EAAWljF,EAAQ,OACnBmjF,EAAcnjF,EAAQ,MAkC1BW,EAAOpU,QAJP,SAAcG,GACZ,OAAOy2F,EAAYz2F,GAAUu2F,EAAcv2F,GAAUw2F,EAASx2F,EAChE,aCZAiU,EAAOpU,QAJP,WACE,MAAO,EACT,aCHAoU,EAAOpU,QAJP,WACE,OAAO,CACT,8DCfA,IAAI62F,EAAY1gE,OAAOqkB,OACnB,SAAkBv4C,GACd,MAAwB,kBAAVA,GAAsBA,IAAUA,CAClD,EAUJ,SAAS60F,EAAeC,EAAWC,GAC/B,GAAID,EAAU51F,SAAW61F,EAAW71F,OAChC,OAAO,EAEX,IAAK,IAAIF,EAAI,EAAGA,EAAI81F,EAAU51F,OAAQF,IAClC,GAdSm7E,EAcI2a,EAAU91F,GAdPy+E,EAcWsX,EAAW/1F,KAbtCm7E,IAAUsD,GAGVmX,EAAUza,IAAUya,EAAUnX,IAW1B,OAAO,EAfnB,IAAiBtD,EAAOsD,EAkBpB,OAAO,CACX,CAyBA,QAvBA,SAAoBuX,EAAUpuF,GAE1B,IAAIquF,OADY,IAAZruF,IAAsBA,EAAUiuF,GAEpC,IACIK,EADAC,EAAW,GAEXC,GAAa,EAejB,OAdA,WAEI,IADA,IAAIC,EAAU,GACLl0F,EAAK,EAAGA,EAAKlC,UAAUC,OAAQiC,IACpCk0F,EAAQl0F,GAAMlC,UAAUkC,GAE5B,OAAIi0F,GAAcH,IAAax7E,MAAQ7S,EAAQyuF,EAASF,KAGxDD,EAAaF,EAASn2F,MAAM4a,KAAM47E,GAClCD,GAAa,EACbH,EAAWx7E,KACX07E,EAAWE,GALAH,CAOf,CAEJ,0BC3CA/iF,EAAOpU,QAAU,CAChB,eACA,eACA,YACA,aACA,aACA,aACA,oBACA,cACA,cACA,gBACA,gDCLD,IAAIoF,EAAuBqO,EAAQ,OAEnC,SAASpO,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3C+O,EAAOpU,QAAU,WACf,SAASwF,EAAKC,EAAOC,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GAAIA,IAAWV,EAAf,CAIA,IAAIxB,EAAM,IAAImC,MACZ,mLAKF,MADAnC,EAAIO,KAAO,sBACLP,CAPN,CAQF,CAEA,SAASoC,IACP,OAAOR,CACT,CAHAA,EAAKS,WAAaT,EAMlB,IAAIU,EAAiB,CACnBC,MAAOX,EACP+xF,OAAQ/xF,EACRY,KAAMZ,EACNa,KAAMb,EACNc,OAAQd,EACRrF,OAAQqF,EACRe,OAAQf,EACRgB,OAAQhB,EAERiB,IAAKjB,EACLkB,QAASV,EACTW,QAASnB,EACToB,YAAapB,EACbqB,WAAYb,EACZc,KAAMtB,EACNuB,SAAUf,EACVgB,MAAOhB,EACPiB,UAAWjB,EACXkB,MAAOlB,EACPmB,MAAOnB,EAEPoB,eAAgB9B,EAChBC,kBAAmBF,GAKrB,OAFAa,EAAemB,UAAYnB,EAEpBA,CACT,mBC/CEkO,EAAOpU,QAAUyT,EAAQ,MAARA,2BCNnBW,EAAOpU,QAFoB,uECiB3B,SAAS4E,EAAehD,EAAKq5D,GAC3B,OAAO36D,OAAO0B,UAAU4C,eAAejC,KAAKf,EAAKq5D,EACnD,CAEA7mD,EAAOpU,QAAU,SAASo3D,EAAIG,EAAK+3B,EAAI3lF,GACrC4tD,EAAMA,GAAO,IACb+3B,EAAKA,GAAM,IACX,IAAI1tF,EAAM,CAAC,EAEX,GAAkB,kBAAPw1D,GAAiC,IAAdA,EAAGj2D,OAC/B,OAAOS,EAGT,IAAI41F,EAAS,MACbpgC,EAAKA,EAAGp0C,MAAMu0C,GAEd,IAAIkgC,EAAU,IACV9tF,GAAsC,kBAApBA,EAAQ8tF,UAC5BA,EAAU9tF,EAAQ8tF,SAGpB,IAAInzF,EAAM8yD,EAAGj2D,OAETs2F,EAAU,GAAKnzF,EAAMmzF,IACvBnzF,EAAMmzF,GAGR,IAAK,IAAIx2F,EAAI,EAAGA,EAAIqD,IAAOrD,EAAG,CAC5B,IAEIy2F,EAAMC,EAAMt4E,EAAGm1B,EAFf9vC,EAAI0yD,EAAGn2D,GAAG0gB,QAAQ61E,EAAQ,OAC1B38B,EAAMn2D,EAAEnC,QAAQ+sF,GAGhBz0B,GAAO,GACT68B,EAAOhzF,EAAE85B,OAAO,EAAGq8B,GACnB88B,EAAOjzF,EAAE85B,OAAOq8B,EAAM,KAEtB68B,EAAOhzF,EACPizF,EAAO,IAGTt4E,EAAI62C,mBAAmBwhC,GACvBljD,EAAI0hB,mBAAmByhC,GAElB/yF,EAAehD,EAAKyd,GAEdnc,MAAMC,QAAQvB,EAAIyd,IAC3Bzd,EAAIyd,GAAGxe,KAAK2zC,GAEZ5yC,EAAIyd,GAAK,CAACzd,EAAIyd,GAAIm1B,GAJlB5yC,EAAIyd,GAAKm1B,CAMb,CAEA,OAAO5yC,CACT,0BCxDA,IAAIg2F,EAAqB,SAASpjD,GAChC,cAAeA,GACb,IAAK,SACH,OAAOA,EAET,IAAK,UACH,OAAOA,EAAI,OAAS,QAEtB,IAAK,SACH,OAAO4xB,SAAS5xB,GAAKA,EAAI,GAE3B,QACE,MAAO,GAEb,EAEApgC,EAAOpU,QAAU,SAAS4B,EAAK21D,EAAK+3B,EAAInrF,GAOtC,OANAozD,EAAMA,GAAO,IACb+3B,EAAKA,GAAM,IACC,OAAR1tF,IACFA,OAAM6I,GAGW,kBAAR7I,EACFtB,OAAOD,KAAKuB,GAAKy0B,KAAI,SAAShX,GACnC,IAAIw4E,EAAK7+B,mBAAmB4+B,EAAmBv4E,IAAMiwE,EACrD,OAAIpsF,MAAMC,QAAQvB,EAAIyd,IACbzd,EAAIyd,GAAGgX,KAAI,SAASme,GACzB,OAAOqjD,EAAK7+B,mBAAmB4+B,EAAmBpjD,GACpD,IAAGxkB,KAAKunC,GAEDsgC,EAAK7+B,mBAAmB4+B,EAAmBh2F,EAAIyd,IAE1D,IAAG2Q,KAAKunC,GAILpzD,EACE60D,mBAAmB4+B,EAAmBzzF,IAASmrF,EAC/Ct2B,mBAAmB4+B,EAAmBh2F,IAF3B,EAGpB,gCC7DA5B,EAAQmuC,OAASnuC,EAAQmjB,MAAQ,EAAhBnjB,OACjBA,EAAQuhB,OAASvhB,EAAQqiB,UAAY,EAApBriB,qCCSJ,IAAI83F,EAAGrkF,EAAQ,OAASskF,EAAGtkF,EAAQ,OAAa,SAASshE,EAAEl4D,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAEK,EAAE,EAAEA,EAAEhc,UAAUC,OAAO+b,IAAIJ,GAAG,WAAWk8C,mBAAmB93D,UAAUgc,IAAI,MAAM,yBAAyBL,EAAE,WAAWC,EAAE,gHAAgH,CAAC,IAAIk7E,EAAG,IAAIld,IAAImd,EAAG,CAAC,EAAE,SAASC,EAAGr7E,EAAEC,GAAGq7E,EAAGt7E,EAAEC,GAAGq7E,EAAGt7E,EAAE,UAAUC,EAAE,CACxb,SAASq7E,EAAGt7E,EAAEC,GAAW,IAARm7E,EAAGp7E,GAAGC,EAAMD,EAAE,EAAEA,EAAEC,EAAE3b,OAAO0b,IAAIm7E,EAAG34D,IAAIviB,EAAED,GAAG,CAC5D,IAAIu7E,IAAK,qBAAqBjnF,QAAQ,qBAAqBA,OAAOg8B,UAAU,qBAAqBh8B,OAAOg8B,SAASzgC,eAAe2rF,EAAG/3F,OAAO0B,UAAU4C,eAAe0zF,EAAG,8VAA8VC,EACpgB,CAAC,EAAEC,EAAG,CAAC,EACiN,SAAShkD,EAAE33B,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,EAAEqrD,GAAG/uD,KAAK+8E,gBAAgB,IAAI37E,GAAG,IAAIA,GAAG,IAAIA,EAAEpB,KAAKmlD,cAAc1jD,EAAEzB,KAAKg9E,mBAAmBzmF,EAAEyJ,KAAKi9E,gBAAgBz7E,EAAExB,KAAKk9E,aAAa/7E,EAAEnB,KAAKrM,KAAKyN,EAAEpB,KAAKm9E,YAAYz5E,EAAE1D,KAAKo9E,kBAAkBruB,CAAC,CAAC,IAAIqC,EAAE,CAAC,EACpb,uIAAuI9pD,MAAM,KAAK3hB,SAAQ,SAASwb,GAAGiwD,EAAEjwD,GAAG,IAAI23B,EAAE33B,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAexb,SAAQ,SAASwb,GAAG,IAAIC,EAAED,EAAE,GAAGiwD,EAAEhwD,GAAG,IAAI03B,EAAE13B,EAAE,GAAE,EAAGD,EAAE,GAAG,MAAK,GAAG,EAAG,IAAG,CAAC,kBAAkB,YAAY,aAAa,SAASxb,SAAQ,SAASwb,GAAGiwD,EAAEjwD,GAAG,IAAI23B,EAAE33B,EAAE,GAAE,EAAGA,EAAErC,cAAc,MAAK,GAAG,EAAG,IAC1e,CAAC,cAAc,4BAA4B,YAAY,iBAAiBnZ,SAAQ,SAASwb,GAAGiwD,EAAEjwD,GAAG,IAAI23B,EAAE33B,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,8OAA8OmG,MAAM,KAAK3hB,SAAQ,SAASwb,GAAGiwD,EAAEjwD,GAAG,IAAI23B,EAAE33B,EAAE,GAAE,EAAGA,EAAErC,cAAc,MAAK,GAAG,EAAG,IACxb,CAAC,UAAU,WAAW,QAAQ,YAAYnZ,SAAQ,SAASwb,GAAGiwD,EAAEjwD,GAAG,IAAI23B,EAAE33B,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,YAAYxb,SAAQ,SAASwb,GAAGiwD,EAAEjwD,GAAG,IAAI23B,EAAE33B,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,OAAO,OAAO,OAAO,QAAQxb,SAAQ,SAASwb,GAAGiwD,EAAEjwD,GAAG,IAAI23B,EAAE33B,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,SAASxb,SAAQ,SAASwb,GAAGiwD,EAAEjwD,GAAG,IAAI23B,EAAE33B,EAAE,GAAE,EAAGA,EAAErC,cAAc,MAAK,GAAG,EAAG,IAAG,IAAIu+E,EAAG,gBAAgB,SAASC,EAAGn8E,GAAG,OAAOA,EAAE,GAAG1N,aAAa,CAIxZ,SAAS8pF,EAAGp8E,EAAEC,EAAEI,EAAEC,GAAG,IAAIlL,EAAE66D,EAAEloE,eAAekY,GAAGgwD,EAAEhwD,GAAG,MAAQ,OAAO7K,EAAE,IAAIA,EAAE5C,KAAK8N,KAAK,EAAEL,EAAE3b,SAAS,MAAM2b,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,MAP9I,SAAYD,EAAEC,EAAEI,EAAEC,GAAG,GAAG,OAAOL,GAAG,qBAAqBA,GADqE,SAAYD,EAAEC,EAAEI,EAAEC,GAAG,GAAG,OAAOD,GAAG,IAAIA,EAAE7N,KAAK,OAAM,EAAG,cAAcyN,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAGK,IAAc,OAAOD,GAASA,EAAEu7E,gBAAmD,WAAnC57E,EAAEA,EAAErC,cAActW,MAAM,EAAE,KAAsB,UAAU2Y,GAAE,QAAQ,OAAM,EAAG,CAC/Tq8E,CAAGr8E,EAAEC,EAAEI,EAAEC,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAOD,EAAE,OAAOA,EAAE7N,MAAM,KAAK,EAAE,OAAOyN,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAO09B,MAAM19B,GAAG,KAAK,EAAE,OAAO09B,MAAM19B,IAAI,EAAEA,EAAE,OAAM,CAAE,CAOtEq8E,CAAGr8E,EAAEI,EAAEjL,EAAEkL,KAAKD,EAAE,MAAMC,GAAG,OAAOlL,EARxK,SAAY4K,GAAG,QAAGw7E,EAAG11F,KAAK61F,EAAG37E,KAAew7E,EAAG11F,KAAK41F,EAAG17E,KAAey7E,EAAGj0F,KAAKwY,GAAU27E,EAAG37E,IAAG,GAAG07E,EAAG17E,IAAG,GAAS,GAAE,CAQwDu8E,CAAGt8E,KAAK,OAAOI,EAAEL,EAAE4jD,gBAAgB3jD,GAAGD,EAAE8vE,aAAa7vE,EAAE,GAAGI,IAAIjL,EAAE0mF,gBAAgB97E,EAAE5K,EAAE2mF,cAAc,OAAO17E,EAAE,IAAIjL,EAAE5C,MAAQ,GAAG6N,GAAGJ,EAAE7K,EAAE4uD,cAAc1jD,EAAElL,EAAEymF,mBAAmB,OAAOx7E,EAAEL,EAAE4jD,gBAAgB3jD,IAAaI,EAAE,KAAXjL,EAAEA,EAAE5C,OAAc,IAAI4C,IAAG,IAAKiL,EAAE,GAAG,GAAGA,EAAEC,EAAEN,EAAEw8E,eAAel8E,EAAEL,EAAEI,GAAGL,EAAE8vE,aAAa7vE,EAAEI,KAAI,CAHjd,0jCAA0jC8F,MAAM,KAAK3hB,SAAQ,SAASwb,GAAG,IAAIC,EAAED,EAAE8E,QAAQo3E,EACzmCC,GAAIlsB,EAAEhwD,GAAG,IAAI03B,EAAE13B,EAAE,GAAE,EAAGD,EAAE,MAAK,GAAG,EAAG,IAAG,2EAA2EmG,MAAM,KAAK3hB,SAAQ,SAASwb,GAAG,IAAIC,EAAED,EAAE8E,QAAQo3E,EAAGC,GAAIlsB,EAAEhwD,GAAG,IAAI03B,EAAE13B,EAAE,GAAE,EAAGD,EAAE,gCAA+B,GAAG,EAAG,IAAG,CAAC,WAAW,WAAW,aAAaxb,SAAQ,SAASwb,GAAG,IAAIC,EAAED,EAAE8E,QAAQo3E,EAAGC,GAAIlsB,EAAEhwD,GAAG,IAAI03B,EAAE13B,EAAE,GAAE,EAAGD,EAAE,wCAAuC,GAAG,EAAG,IAAG,CAAC,WAAW,eAAexb,SAAQ,SAASwb,GAAGiwD,EAAEjwD,GAAG,IAAI23B,EAAE33B,EAAE,GAAE,EAAGA,EAAErC,cAAc,MAAK,GAAG,EAAG,IACldsyD,EAAEwsB,UAAU,IAAI9kD,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAcnzC,SAAQ,SAASwb,GAAGiwD,EAAEjwD,GAAG,IAAI23B,EAAE33B,EAAE,GAAE,EAAGA,EAAErC,cAAc,MAAK,GAAG,EAAG,IAE5L,IAAI++E,EAAGzB,EAAG0B,mDAAmDC,EAAG53F,OAAO2wE,IAAI,iBAAiBknB,EAAG73F,OAAO2wE,IAAI,gBAAgBmnB,EAAG93F,OAAO2wE,IAAI,kBAAkBonB,EAAG/3F,OAAO2wE,IAAI,qBAAqBqnB,EAAGh4F,OAAO2wE,IAAI,kBAAkBsnB,EAAGj4F,OAAO2wE,IAAI,kBAAkBunB,EAAGl4F,OAAO2wE,IAAI,iBAAiBwnB,EAAGn4F,OAAO2wE,IAAI,qBAAqBynB,EAAGp4F,OAAO2wE,IAAI,kBAAkB0nB,EAAGr4F,OAAO2wE,IAAI,uBAAuB2nB,EAAGt4F,OAAO2wE,IAAI,cAAc4nB,EAAGv4F,OAAO2wE,IAAI,cAAc3wE,OAAO2wE,IAAI,eAAe3wE,OAAO2wE,IAAI,0BACje,IAAI6nB,EAAGx4F,OAAO2wE,IAAI,mBAAmB3wE,OAAO2wE,IAAI,uBAAuB3wE,OAAO2wE,IAAI,eAAe3wE,OAAO2wE,IAAI,wBAAwB,IAAI8nB,EAAGz4F,OAAOC,SAAS,SAASy4F,EAAG19E,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEy9E,GAAIz9E,EAAEy9E,IAAKz9E,EAAE,eAA0CA,EAAE,IAAI,CAAC,IAAoB29E,EAAhBC,EAAEn6F,OAAOsyC,OAAU,SAAS8nD,EAAG79E,GAAG,QAAG,IAAS29E,EAAG,IAAI,MAAMz0F,OAAQ,CAAC,MAAMmX,GAAG,IAAIJ,EAAEI,EAAEk+C,MAAMvR,OAAOjoC,MAAM,gBAAgB44E,EAAG19E,GAAGA,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK09E,EAAG39E,CAAC,CAAC,IAAI89E,GAAG,EACzb,SAASC,EAAG/9E,EAAEC,GAAG,IAAID,GAAG89E,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAIz9E,EAAEnX,MAAM80F,kBAAkB90F,MAAM80F,uBAAkB,EAAO,IAAI,GAAG/9E,EAAE,GAAGA,EAAE,WAAW,MAAM/W,OAAQ,EAAEzF,OAAOoB,eAAeob,EAAE9a,UAAU,QAAQ,CAACka,IAAI,WAAW,MAAMnW,OAAQ,IAAI,kBAAkB80E,SAASA,QAAQigB,UAAU,CAAC,IAAIjgB,QAAQigB,UAAUh+E,EAAE,GAAG,CAAC,MAAMxT,GAAG,IAAI6T,EAAE7T,CAAC,CAACuxE,QAAQigB,UAAUj+E,EAAE,GAAGC,EAAE,KAAK,CAAC,IAAIA,EAAEna,MAAM,CAAC,MAAM2G,GAAG6T,EAAE7T,CAAC,CAACuT,EAAEla,KAAKma,EAAE9a,UAAU,KAAK,CAAC,IAAI,MAAM+D,OAAQ,CAAC,MAAMuD,GAAG6T,EAAE7T,CAAC,CAACuT,GAAG,CAAC,CAAC,MAAMvT,GAAG,GAAGA,GAAG6T,GAAG,kBAAkB7T,EAAE8xD,MAAM,CAAC,IAAI,IAAInpD,EAAE3I,EAAE8xD,MAAMp4C,MAAM,MACnf5D,EAAEjC,EAAEi+C,MAAMp4C,MAAM,MAAMynD,EAAEx4D,EAAE9Q,OAAO,EAAEy1D,EAAEx3C,EAAEje,OAAO,EAAE,GAAGspE,GAAG,GAAG7T,GAAG3kD,EAAEw4D,KAAKrrD,EAAEw3C,IAAIA,IAAI,KAAK,GAAG6T,GAAG,GAAG7T,EAAE6T,IAAI7T,IAAI,GAAG3kD,EAAEw4D,KAAKrrD,EAAEw3C,GAAG,CAAC,GAAG,IAAI6T,GAAG,IAAI7T,EAAG,MAAM6T,IAAQ,IAAJ7T,GAAS3kD,EAAEw4D,KAAKrrD,EAAEw3C,GAAG,CAAC,IAAIv3C,EAAE,KAAKpN,EAAEw4D,GAAG9oD,QAAQ,WAAW,QAA6F,OAArF9E,EAAErR,aAAa6T,EAAEpV,SAAS,iBAAiBoV,EAAEA,EAAEsC,QAAQ,cAAc9E,EAAErR,cAAqB6T,CAAC,QAAO,GAAGorD,GAAG,GAAG7T,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ+jC,GAAG,EAAG50F,MAAM80F,kBAAkB39E,CAAC,CAAC,OAAOL,EAAEA,EAAEA,EAAErR,aAAaqR,EAAE1Y,KAAK,IAAIu2F,EAAG79E,GAAG,EAAE,CAC9Z,SAASk+E,EAAGl+E,GAAG,OAAOA,EAAElS,KAAK,KAAK,EAAE,OAAO+vF,EAAG79E,EAAExN,MAAM,KAAK,GAAG,OAAOqrF,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO79E,EAAE+9E,EAAG/9E,EAAExN,MAAK,GAAM,KAAK,GAAG,OAAOwN,EAAE+9E,EAAG/9E,EAAExN,KAAKmlE,QAAO,GAAM,KAAK,EAAE,OAAO33D,EAAE+9E,EAAG/9E,EAAExN,MAAK,GAAM,QAAQ,MAAM,GAAG,CACxR,SAAS2rF,EAAGn+E,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAErR,aAAaqR,EAAE1Y,MAAM,KAAK,GAAG,kBAAkB0Y,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAK88E,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,SAAS,KAAKG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKK,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,kBAAkBr9E,EAAE,OAAOA,EAAEu1D,UAAU,KAAK2nB,EAAG,OAAOl9E,EAAErR,aAAa,WAAW,YAAY,KAAKsuF,EAAG,OAAOj9E,EAAEo+E,SAASzvF,aAAa,WAAW,YAAY,KAAKwuF,EAAG,IAAIl9E,EAAED,EAAE23D,OAC7Z,OADoa33D,EAAEA,EAAErR,eACndqR,EAAE,MADieA,EAAEC,EAAEtR,aAClfsR,EAAE3Y,MAAM,IAAY,cAAc0Y,EAAE,IAAI,cAAqBA,EAAE,KAAKs9E,EAAG,OAA6B,QAAtBr9E,EAAED,EAAErR,aAAa,MAAcsR,EAAEk+E,EAAGn+E,EAAExN,OAAO,OAAO,KAAK+qF,EAAGt9E,EAAED,EAAEq+E,SAASr+E,EAAEA,EAAEs+E,MAAM,IAAI,OAAOH,EAAGn+E,EAAEC,GAAG,CAAC,MAAMI,GAAG,EAAE,OAAO,IAAI,CAC3M,SAASk+E,EAAGv+E,GAAG,IAAIC,EAAED,EAAExN,KAAK,OAAOwN,EAAElS,KAAK,KAAK,GAAG,MAAM,QAAQ,KAAK,EAAE,OAAOmS,EAAEtR,aAAa,WAAW,YAAY,KAAK,GAAG,OAAOsR,EAAEm+E,SAASzvF,aAAa,WAAW,YAAY,KAAK,GAAG,MAAM,qBAAqB,KAAK,GAAG,OAAkBqR,GAAXA,EAAEC,EAAE03D,QAAWhpE,aAAaqR,EAAE1Y,MAAM,GAAG2Y,EAAEtR,cAAc,KAAKqR,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAK,EAAE,MAAM,WAAW,KAAK,EAAE,OAAOC,EAAE,KAAK,EAAE,MAAM,SAAS,KAAK,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,OAAO,KAAK,GAAG,OAAOk+E,EAAGl+E,GAAG,KAAK,EAAE,OAAOA,IAAI88E,EAAG,aAAa,OAAO,KAAK,GAAG,MAAM,YACtf,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,QAAQ,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,eAAe,KAAK,GAAG,MAAM,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,GAAG,oBAAoB98E,EAAE,OAAOA,EAAEtR,aAAasR,EAAE3Y,MAAM,KAAK,GAAG,kBAAkB2Y,EAAE,OAAOA,EAAE,OAAO,IAAI,CAAC,SAASu+E,EAAGx+E,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,YAAqB,IAAK,SAAS,OAAOA,EAAE,QAAQ,MAAM,GAAG,CACra,SAASy+E,EAAGz+E,GAAG,IAAIC,EAAED,EAAExN,KAAK,OAAOwN,EAAEA,EAAEuhD,WAAW,UAAUvhD,EAAErC,gBAAgB,aAAasC,GAAG,UAAUA,EAAE,CAEtF,SAASy+E,EAAG1+E,GAAGA,EAAE2+E,gBAAgB3+E,EAAE2+E,cADvD,SAAY3+E,GAAG,IAAIC,EAAEw+E,EAAGz+E,GAAG,UAAU,QAAQK,EAAE5c,OAAOK,yBAAyBkc,EAAE9a,YAAYC,UAAU8a,GAAGK,EAAE,GAAGN,EAAEC,GAAG,IAAID,EAAEjY,eAAekY,IAAI,qBAAqBI,GAAG,oBAAoBA,EAAElJ,KAAK,oBAAoBkJ,EAAEhB,IAAI,CAAC,IAAIjK,EAAEiL,EAAElJ,IAAIoL,EAAElC,EAAEhB,IAAiL,OAA7K5b,OAAOoB,eAAemb,EAAEC,EAAE,CAAC5a,cAAa,EAAG8R,IAAI,WAAW,OAAO/B,EAAEtP,KAAK+Y,KAAK,EAAEQ,IAAI,SAASW,GAAGM,EAAE,GAAGN,EAAEuC,EAAEzc,KAAK+Y,KAAKmB,EAAE,IAAIvc,OAAOoB,eAAemb,EAAEC,EAAE,CAAClc,WAAWsc,EAAEtc,aAAmB,CAACqzF,SAAS,WAAW,OAAO92E,CAAC,EAAEs+E,SAAS,SAAS5+E,GAAGM,EAAE,GAAGN,CAAC,EAAE6+E,aAAa,WAAW7+E,EAAE2+E,cACxf,YAAY3+E,EAAEC,EAAE,EAAE,CAAC,CAAkD6+E,CAAG9+E,GAAG,CAAC,SAAS++E,EAAG/+E,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAE2+E,cAAc,IAAI1+E,EAAE,OAAM,EAAG,IAAII,EAAEJ,EAAEm3E,WAAe92E,EAAE,GAAqD,OAAlDN,IAAIM,EAAEm+E,EAAGz+E,GAAGA,EAAEglD,QAAQ,OAAO,QAAQhlD,EAAE5a,QAAO4a,EAAEM,KAAaD,IAAGJ,EAAE2+E,SAAS5+E,IAAG,EAAM,CAAC,SAASg/E,EAAGh/E,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBswB,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOtwB,EAAEi/E,eAAej/E,EAAE8e,IAAI,CAAC,MAAM7e,GAAG,OAAOD,EAAE8e,IAAI,CAAC,CACpa,SAASogE,EAAGl/E,EAAEC,GAAG,IAAII,EAAEJ,EAAE+kD,QAAQ,OAAO44B,EAAE,CAAC,EAAE39E,EAAE,CAACk/E,oBAAe,EAAO31E,kBAAa,EAAOpkB,WAAM,EAAO4/D,QAAQ,MAAM3kD,EAAEA,EAAEL,EAAEo/E,cAAcC,gBAAgB,CAAC,SAASC,EAAGt/E,EAAEC,GAAG,IAAII,EAAE,MAAMJ,EAAEuJ,aAAa,GAAGvJ,EAAEuJ,aAAalJ,EAAE,MAAML,EAAE+kD,QAAQ/kD,EAAE+kD,QAAQ/kD,EAAEk/E,eAAe9+E,EAAEm+E,EAAG,MAAMv+E,EAAE7a,MAAM6a,EAAE7a,MAAMib,GAAGL,EAAEo/E,cAAc,CAACC,eAAe/+E,EAAEi/E,aAAal/E,EAAEm/E,WAAW,aAAav/E,EAAEzN,MAAM,UAAUyN,EAAEzN,KAAK,MAAMyN,EAAE+kD,QAAQ,MAAM/kD,EAAE7a,MAAM,CAAC,SAASumC,EAAG3rB,EAAEC,GAAe,OAAZA,EAAEA,EAAE+kD,UAAiBo3B,EAAGp8E,EAAE,UAAUC,GAAE,EAAG,CAC9d,SAASw/E,EAAGz/E,EAAEC,GAAG0rB,EAAG3rB,EAAEC,GAAG,IAAII,EAAEm+E,EAAGv+E,EAAE7a,OAAOkb,EAAEL,EAAEzN,KAAK,GAAG,MAAM6N,EAAK,WAAWC,GAAM,IAAID,GAAG,KAAKL,EAAE5a,OAAO4a,EAAE5a,OAAOib,KAAEL,EAAE5a,MAAM,GAAGib,GAAOL,EAAE5a,QAAQ,GAAGib,IAAIL,EAAE5a,MAAM,GAAGib,QAAQ,GAAG,WAAWC,GAAG,UAAUA,EAA8B,YAA3BN,EAAE4jD,gBAAgB,SAAgB3jD,EAAElY,eAAe,SAAS4C,GAAGqV,EAAEC,EAAEzN,KAAK6N,GAAGJ,EAAElY,eAAe,iBAAiB4C,GAAGqV,EAAEC,EAAEzN,KAAKgsF,EAAGv+E,EAAEuJ,eAAe,MAAMvJ,EAAE+kD,SAAS,MAAM/kD,EAAEk/E,iBAAiBn/E,EAAEm/E,iBAAiBl/E,EAAEk/E,eAAe,CACla,SAASO,EAAG1/E,EAAEC,EAAEI,GAAG,GAAGJ,EAAElY,eAAe,UAAUkY,EAAElY,eAAe,gBAAgB,CAAC,IAAIuY,EAAEL,EAAEzN,KAAK,KAAK,WAAW8N,GAAG,UAAUA,QAAG,IAASL,EAAE7a,OAAO,OAAO6a,EAAE7a,OAAO,OAAO6a,EAAE,GAAGD,EAAEo/E,cAAcG,aAAal/E,GAAGJ,IAAID,EAAE5a,QAAQ4a,EAAE5a,MAAM6a,GAAGD,EAAEwJ,aAAavJ,CAAC,CAAU,MAATI,EAAEL,EAAE1Y,QAAc0Y,EAAE1Y,KAAK,IAAI0Y,EAAEm/E,iBAAiBn/E,EAAEo/E,cAAcC,eAAe,KAAKh/E,IAAIL,EAAE1Y,KAAK+Y,EAAE,CACzV,SAAS1V,GAAGqV,EAAEC,EAAEI,GAAM,WAAWJ,GAAG++E,EAAGh/E,EAAE2/E,iBAAiB3/E,IAAE,MAAMK,EAAEL,EAAEwJ,aAAa,GAAGxJ,EAAEo/E,cAAcG,aAAav/E,EAAEwJ,eAAe,GAAGnJ,IAAIL,EAAEwJ,aAAa,GAAGnJ,GAAE,CAAC,IAAIu/E,GAAGv5F,MAAMC,QAC7K,SAASu5F,GAAG7/E,EAAEC,EAAEI,EAAEC,GAAe,GAAZN,EAAEA,EAAElT,QAAWmT,EAAE,CAACA,EAAE,CAAC,EAAE,IAAI,IAAI7K,EAAE,EAAEA,EAAEiL,EAAE/b,OAAO8Q,IAAI6K,EAAE,IAAII,EAAEjL,KAAI,EAAG,IAAIiL,EAAE,EAAEA,EAAEL,EAAE1b,OAAO+b,IAAIjL,EAAE6K,EAAElY,eAAe,IAAIiY,EAAEK,GAAGjb,OAAO4a,EAAEK,GAAGy/E,WAAW1qF,IAAI4K,EAAEK,GAAGy/E,SAAS1qF,GAAGA,GAAGkL,IAAIN,EAAEK,GAAG0/E,iBAAgB,EAAG,KAAK,CAAmB,IAAlB1/E,EAAE,GAAGm+E,EAAGn+E,GAAGJ,EAAE,KAAS7K,EAAE,EAAEA,EAAE4K,EAAE1b,OAAO8Q,IAAI,CAAC,GAAG4K,EAAE5K,GAAGhQ,QAAQib,EAAiD,OAA9CL,EAAE5K,GAAG0qF,UAAS,OAAGx/E,IAAIN,EAAE5K,GAAG2qF,iBAAgB,IAAW,OAAO9/E,GAAGD,EAAE5K,GAAGmlE,WAAWt6D,EAAED,EAAE5K,GAAG,CAAC,OAAO6K,IAAIA,EAAE6/E,UAAS,EAAG,CAAC,CACxY,SAASE,GAAGhgF,EAAEC,GAAG,GAAG,MAAMA,EAAE65D,wBAAwB,MAAM5wE,MAAMgvE,EAAE,KAAK,OAAO0lB,EAAE,CAAC,EAAE39E,EAAE,CAAC7a,WAAM,EAAOokB,kBAAa,EAAOta,SAAS,GAAG8Q,EAAEo/E,cAAcG,cAAc,CAAC,SAASU,GAAGjgF,EAAEC,GAAG,IAAII,EAAEJ,EAAE7a,MAAM,GAAG,MAAMib,EAAE,CAA+B,GAA9BA,EAAEJ,EAAE/Q,SAAS+Q,EAAEA,EAAEuJ,aAAgB,MAAMnJ,EAAE,CAAC,GAAG,MAAMJ,EAAE,MAAM/W,MAAMgvE,EAAE,KAAK,GAAG0nB,GAAGv/E,GAAG,CAAC,GAAG,EAAEA,EAAE/b,OAAO,MAAM4E,MAAMgvE,EAAE,KAAK73D,EAAEA,EAAE,EAAE,CAACJ,EAAEI,CAAC,CAAC,MAAMJ,IAAIA,EAAE,IAAII,EAAEJ,CAAC,CAACD,EAAEo/E,cAAc,CAACG,aAAaf,EAAGn+E,GAAG,CACnY,SAAS6/E,GAAGlgF,EAAEC,GAAG,IAAII,EAAEm+E,EAAGv+E,EAAE7a,OAAOkb,EAAEk+E,EAAGv+E,EAAEuJ,cAAc,MAAMnJ,KAAIA,EAAE,GAAGA,KAAML,EAAE5a,QAAQ4a,EAAE5a,MAAMib,GAAG,MAAMJ,EAAEuJ,cAAcxJ,EAAEwJ,eAAenJ,IAAIL,EAAEwJ,aAAanJ,IAAI,MAAMC,IAAIN,EAAEwJ,aAAa,GAAGlJ,EAAE,CAAC,SAAS6/E,GAAGngF,GAAG,IAAIC,EAAED,EAAEwhD,YAAYvhD,IAAID,EAAEo/E,cAAcG,cAAc,KAAKt/E,GAAG,OAAOA,IAAID,EAAE5a,MAAM6a,EAAE,CAAC,SAASmgF,GAAGpgF,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,+BAA+B,CAC7c,SAASqgF,GAAGrgF,EAAEC,GAAG,OAAO,MAAMD,GAAG,iCAAiCA,EAAEogF,GAAGngF,GAAG,+BAA+BD,GAAG,kBAAkBC,EAAE,+BAA+BD,CAAC,CAChK,IAAIsgF,GAAetgF,GAAZugF,IAAYvgF,GAAsJ,SAASA,EAAEC,GAAG,GAAG,+BAA+BD,EAAEwgF,cAAc,cAAcxgF,EAAEA,EAAEygF,UAAUxgF,MAAM,CAA2F,KAA1FqgF,GAAGA,IAAIhwD,SAASzgC,cAAc,QAAU4wF,UAAU,QAAQxgF,EAAEyf,UAAUt4B,WAAW,SAAa6Y,EAAEqgF,GAAGI,WAAW1gF,EAAE0gF,YAAY1gF,EAAE2gF,YAAY3gF,EAAE0gF,YAAY,KAAKzgF,EAAEygF,YAAY1gF,EAAEo5D,YAAYn5D,EAAEygF,WAAW,CAAC,EAAvb,qBAAqBE,OAAOA,MAAMC,wBAAwB,SAAS5gF,EAAEI,EAAEC,EAAElL,GAAGwrF,MAAMC,yBAAwB,WAAW,OAAO7gF,GAAEC,EAAEI,EAAM,GAAE,EAAEL,IACtK,SAAS8gF,GAAG9gF,EAAEC,GAAG,GAAGA,EAAE,CAAC,IAAII,EAAEL,EAAE0gF,WAAW,GAAGrgF,GAAGA,IAAIL,EAAE+gF,WAAW,IAAI1gF,EAAE04E,SAAwB,YAAd14E,EAAE2gF,UAAU/gF,EAAS,CAACD,EAAEwhD,YAAYvhD,CAAC,CACtH,IAAIghF,GAAG,CAACC,yBAAwB,EAAGC,aAAY,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGC,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGC,YAAW,EAAG5oB,SAAQ,EAAG6oB,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAClfC,MAAK,EAAGC,aAAY,EAAGC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGC,aAAY,GAAIC,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAG7jF,EAAEC,EAAEI,GAAG,OAAO,MAAMJ,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGI,GAAG,kBAAkBJ,GAAG,IAAIA,GAAGghF,GAAGl5F,eAAeiY,IAAIihF,GAAGjhF,IAAI,GAAGC,GAAG+sC,OAAO/sC,EAAE,IAAI,CACzb,SAAS6jF,GAAG9jF,EAAEC,GAAa,IAAI,IAAII,KAAlBL,EAAEA,EAAEw6D,MAAmBv6D,EAAE,GAAGA,EAAElY,eAAesY,GAAG,CAAC,IAAIC,EAAE,IAAID,EAAE3a,QAAQ,MAAM0P,EAAEyuF,GAAGxjF,EAAEJ,EAAEI,GAAGC,GAAG,UAAUD,IAAIA,EAAE,YAAYC,EAAEN,EAAE+jF,YAAY1jF,EAAEjL,GAAG4K,EAAEK,GAAGjL,CAAC,CAAC,CADY3R,OAAOD,KAAKy9F,IAAIz8F,SAAQ,SAASwb,GAAG4jF,GAAGp/F,SAAQ,SAASyb,GAAGA,EAAEA,EAAED,EAAE3N,OAAO,GAAGC,cAAc0N,EAAE0rB,UAAU,GAAGu1D,GAAGhhF,GAAGghF,GAAGjhF,EAAE,GAAE,IAChI,IAAIgkF,GAAGpG,EAAE,CAACqG,UAAS,GAAI,CAACC,MAAK,EAAG93C,MAAK,EAAG+3C,IAAG,EAAGC,KAAI,EAAGC,OAAM,EAAGC,IAAG,EAAGC,KAAI,EAAGtlF,OAAM,EAAGulF,QAAO,EAAGC,MAAK,EAAGC,MAAK,EAAGvxD,OAAM,EAAG5uC,QAAO,EAAGogG,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAG7kF,EAAEC,GAAG,GAAGA,EAAE,CAAC,GAAG+jF,GAAGhkF,KAAK,MAAMC,EAAE/Q,UAAU,MAAM+Q,EAAE65D,yBAAyB,MAAM5wE,MAAMgvE,EAAE,IAAIl4D,IAAI,GAAG,MAAMC,EAAE65D,wBAAwB,CAAC,GAAG,MAAM75D,EAAE/Q,SAAS,MAAMhG,MAAMgvE,EAAE,KAAK,GAAG,kBAAkBj4D,EAAE65D,2BAA2B,WAAW75D,EAAE65D,yBAAyB,MAAM5wE,MAAMgvE,EAAE,IAAK,CAAC,GAAG,MAAMj4D,EAAEu6D,OAAO,kBAAkBv6D,EAAEu6D,MAAM,MAAMtxE,MAAMgvE,EAAE,IAAK,CAAC,CAClW,SAAS4sB,GAAG9kF,EAAEC,GAAG,IAAI,IAAID,EAAEta,QAAQ,KAAK,MAAM,kBAAkBua,EAAE8kF,GAAG,OAAO/kF,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,IAAIglF,GAAG,KAAK,SAASC,GAAGjlF,GAA6F,OAA1FA,EAAEA,EAAE7b,QAAQ6b,EAAEklF,YAAY5wF,QAAS6wF,0BAA0BnlF,EAAEA,EAAEmlF,yBAAgC,IAAInlF,EAAE+4E,SAAS/4E,EAAE+gD,WAAW/gD,CAAC,CAAC,IAAIolF,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACpc,SAASC,GAAGvlF,GAAG,GAAGA,EAAEwlF,GAAGxlF,GAAG,CAAC,GAAG,oBAAoBolF,GAAG,MAAMl8F,MAAMgvE,EAAE,MAAM,IAAIj4D,EAAED,EAAEylF,UAAUxlF,IAAIA,EAAEylF,GAAGzlF,GAAGmlF,GAAGplF,EAAEylF,UAAUzlF,EAAExN,KAAKyN,GAAG,CAAC,CAAC,SAAS0lF,GAAG3lF,GAAGqlF,GAAGC,GAAGA,GAAGthG,KAAKgc,GAAGslF,GAAG,CAACtlF,GAAGqlF,GAAGrlF,CAAC,CAAC,SAAS4lF,KAAK,GAAGP,GAAG,CAAC,IAAIrlF,EAAEqlF,GAAGplF,EAAEqlF,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAGvlF,GAAMC,EAAE,IAAID,EAAE,EAAEA,EAAEC,EAAE3b,OAAO0b,IAAIulF,GAAGtlF,EAAED,GAAG,CAAC,CAAC,SAAS6lF,GAAG7lF,EAAEC,GAAG,OAAOD,EAAEC,EAAE,CAAC,SAAS6lF,KAAK,CAAC,IAAIC,IAAG,EAAG,SAASC,GAAGhmF,EAAEC,EAAEI,GAAG,GAAG0lF,GAAG,OAAO/lF,EAAEC,EAAEI,GAAG0lF,IAAG,EAAG,IAAI,OAAOF,GAAG7lF,EAAEC,EAAEI,EAAE,CAAC,QAAW0lF,IAAG,GAAG,OAAOV,IAAI,OAAOC,MAAGQ,KAAKF,KAAI,CAAC,CAChb,SAASK,GAAGjmF,EAAEC,GAAG,IAAII,EAAEL,EAAEylF,UAAU,GAAG,OAAOplF,EAAE,OAAO,KAAK,IAAIC,EAAEolF,GAAGrlF,GAAG,GAAG,OAAOC,EAAE,OAAO,KAAKD,EAAEC,EAAEL,GAAGD,EAAE,OAAOC,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgBK,GAAGA,EAAEi6D,YAAqBj6D,IAAI,YAAbN,EAAEA,EAAExN,OAAuB,UAAUwN,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAGM,EAAE,MAAMN,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGK,GAAG,oBACleA,EAAE,MAAMnX,MAAMgvE,EAAE,IAAIj4D,SAASI,IAAI,OAAOA,CAAC,CAAC,IAAI6lF,IAAG,EAAG,GAAG3K,EAAG,IAAI,IAAI4K,GAAG,CAAC,EAAE1iG,OAAOoB,eAAeshG,GAAG,UAAU,CAAChvF,IAAI,WAAW+uF,IAAG,CAAE,IAAI5xF,OAAOo2B,iBAAiB,OAAOy7D,GAAGA,IAAI7xF,OAAO8xF,oBAAoB,OAAOD,GAAGA,GAAG,CAAC,MAAMnmF,IAAGkmF,IAAG,CAAE,CAAC,SAASG,GAAGrmF,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,EAAEqrD,EAAE7T,EAAEv3C,GAAG,IAAI/V,EAAEpG,MAAMlB,UAAUkC,MAAMvB,KAAKzB,UAAU,GAAG,IAAI4b,EAAEhc,MAAMoc,EAAE5T,EAAE,CAAC,MAAMq5D,GAAGjnD,KAAKynF,QAAQxgC,EAAE,CAAC,CAAC,IAAIygC,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAACL,QAAQ,SAAStmF,GAAGumF,IAAG,EAAGC,GAAGxmF,CAAC,GAAG,SAAS4mF,GAAG5mF,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,EAAEqrD,EAAE7T,EAAEv3C,GAAG+jF,IAAG,EAAGC,GAAG,KAAKH,GAAGpiG,MAAM0iG,GAAGtiG,UAAU,CACjW,SAASwiG,GAAG7mF,GAAG,IAAIC,EAAED,EAAEK,EAAEL,EAAE,GAAGA,EAAE8mF,UAAU,KAAK7mF,EAAE8mF,QAAQ9mF,EAAEA,EAAE8mF,WAAW,CAAC/mF,EAAEC,EAAE,GAAO,KAAa,MAAjBA,EAAED,GAASgnF,SAAc3mF,EAAEJ,EAAE8mF,QAAQ/mF,EAAEC,EAAE8mF,aAAa/mF,EAAE,CAAC,OAAO,IAAIC,EAAEnS,IAAIuS,EAAE,IAAI,CAAC,SAAS4mF,GAAGjnF,GAAG,GAAG,KAAKA,EAAElS,IAAI,CAAC,IAAImS,EAAED,EAAEknF,cAAsE,GAAxD,OAAOjnF,IAAkB,QAAdD,EAAEA,EAAE8mF,aAAqB7mF,EAAED,EAAEknF,gBAAmB,OAAOjnF,EAAE,OAAOA,EAAEknF,UAAU,CAAC,OAAO,IAAI,CAAC,SAASC,GAAGpnF,GAAG,GAAG6mF,GAAG7mF,KAAKA,EAAE,MAAM9W,MAAMgvE,EAAE,KAAM,CAE1S,SAASmvB,GAAGrnF,GAAW,OAAO,QAAfA,EADtN,SAAYA,GAAG,IAAIC,EAAED,EAAE8mF,UAAU,IAAI7mF,EAAE,CAAS,GAAG,QAAXA,EAAE4mF,GAAG7mF,IAAe,MAAM9W,MAAMgvE,EAAE,MAAM,OAAOj4D,IAAID,EAAE,KAAKA,CAAC,CAAC,IAAI,IAAIK,EAAEL,EAAEM,EAAEL,IAAI,CAAC,IAAI7K,EAAEiL,EAAE0mF,OAAO,GAAG,OAAO3xF,EAAE,MAAM,IAAImN,EAAEnN,EAAE0xF,UAAU,GAAG,OAAOvkF,EAAE,CAAY,GAAG,QAAdjC,EAAElL,EAAE2xF,QAAmB,CAAC1mF,EAAEC,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAGlL,EAAEisD,QAAQ9+C,EAAE8+C,MAAM,CAAC,IAAI9+C,EAAEnN,EAAEisD,MAAM9+C,GAAG,CAAC,GAAGA,IAAIlC,EAAE,OAAO+mF,GAAGhyF,GAAG4K,EAAE,GAAGuC,IAAIjC,EAAE,OAAO8mF,GAAGhyF,GAAG6K,EAAEsC,EAAEA,EAAE+kF,OAAO,CAAC,MAAMp+F,MAAMgvE,EAAE,KAAM,CAAC,GAAG73D,EAAE0mF,SAASzmF,EAAEymF,OAAO1mF,EAAEjL,EAAEkL,EAAEiC,MAAM,CAAC,IAAI,IAAIqrD,GAAE,EAAG7T,EAAE3kD,EAAEisD,MAAMtH,GAAG,CAAC,GAAGA,IAAI15C,EAAE,CAACutD,GAAE,EAAGvtD,EAAEjL,EAAEkL,EAAEiC,EAAE,KAAK,CAAC,GAAGw3C,IAAIz5C,EAAE,CAACstD,GAAE,EAAGttD,EAAElL,EAAEiL,EAAEkC,EAAE,KAAK,CAACw3C,EAAEA,EAAEutC,OAAO,CAAC,IAAI15B,EAAE,CAAC,IAAI7T,EAAEx3C,EAAE8+C,MAAMtH,GAAG,CAAC,GAAGA,IAC5f15C,EAAE,CAACutD,GAAE,EAAGvtD,EAAEkC,EAAEjC,EAAElL,EAAE,KAAK,CAAC,GAAG2kD,IAAIz5C,EAAE,CAACstD,GAAE,EAAGttD,EAAEiC,EAAElC,EAAEjL,EAAE,KAAK,CAAC2kD,EAAEA,EAAEutC,OAAO,CAAC,IAAI15B,EAAE,MAAM1kE,MAAMgvE,EAAE,KAAM,CAAC,CAAC,GAAG73D,EAAEymF,YAAYxmF,EAAE,MAAMpX,MAAMgvE,EAAE,KAAM,CAAC,GAAG,IAAI73D,EAAEvS,IAAI,MAAM5E,MAAMgvE,EAAE,MAAM,OAAO73D,EAAEolF,UAAUz6F,UAAUqV,EAAEL,EAAEC,CAAC,CAAkBsnF,CAAGvnF,IAAmBwnF,GAAGxnF,GAAG,IAAI,CAAC,SAASwnF,GAAGxnF,GAAG,GAAG,IAAIA,EAAElS,KAAK,IAAIkS,EAAElS,IAAI,OAAOkS,EAAE,IAAIA,EAAEA,EAAEqhD,MAAM,OAAOrhD,GAAG,CAAC,IAAIC,EAAEunF,GAAGxnF,GAAG,GAAG,OAAOC,EAAE,OAAOA,EAAED,EAAEA,EAAEsnF,OAAO,CAAC,OAAO,IAAI,CAC1X,IAAIG,GAAGvM,EAAGwM,0BAA0BC,GAAGzM,EAAG0M,wBAAwBC,GAAG3M,EAAG4M,qBAAqBC,GAAG7M,EAAG8M,sBAAsBxtE,GAAE0gE,EAAG+M,aAAaC,GAAGhN,EAAGiN,iCAAiCC,GAAGlN,EAAGmN,2BAA2BC,GAAGpN,EAAGqN,8BAA8BC,GAAGtN,EAAGuN,wBAAwBC,GAAGxN,EAAGyN,qBAAqBC,GAAG1N,EAAG2N,sBAAsBC,GAAG,KAAKC,GAAG,KACvV,IAAIC,GAAG9nF,KAAK+nF,MAAM/nF,KAAK+nF,MAAiC,SAAYjpF,GAAU,OAAPA,KAAK,EAAS,IAAIA,EAAE,GAAG,IAAIkpF,GAAGlpF,GAAGmpF,GAAG,GAAG,CAAC,EAA/ED,GAAGhoF,KAAKunB,IAAI0gE,GAAGjoF,KAAKggE,IAA4D,IAAIkoB,GAAG,GAAGC,GAAG,QAC7H,SAASC,GAAGtpF,GAAG,OAAOA,GAAGA,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAS,QAAFA,EAAU,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,OAAS,UAAFA,EAAY,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,WAAW,OAAO,WACzgB,QAAQ,OAAOA,EAAE,CAAC,SAASupF,GAAGvpF,EAAEC,GAAG,IAAII,EAAEL,EAAEwpF,aAAa,GAAG,IAAInpF,EAAE,OAAO,EAAE,IAAIC,EAAE,EAAElL,EAAE4K,EAAEypF,eAAelnF,EAAEvC,EAAE0pF,YAAY97B,EAAI,UAAFvtD,EAAY,GAAG,IAAIutD,EAAE,CAAC,IAAI7T,EAAE6T,GAAGx4D,EAAE,IAAI2kD,EAAEz5C,EAAEgpF,GAAGvvC,GAAS,KAALx3C,GAAGqrD,KAAUttD,EAAEgpF,GAAG/mF,GAAI,MAAa,KAAPqrD,EAAEvtD,GAAGjL,GAAQkL,EAAEgpF,GAAG17B,GAAG,IAAIrrD,IAAIjC,EAAEgpF,GAAG/mF,IAAI,GAAG,IAAIjC,EAAE,OAAO,EAAE,GAAG,IAAIL,GAAGA,IAAIK,GAAG,KAAKL,EAAE7K,MAAKA,EAAEkL,GAAGA,KAAEiC,EAAEtC,GAAGA,IAAQ,KAAK7K,GAAG,KAAO,QAAFmN,IAAY,OAAOtC,EAA0C,GAAxC,KAAO,EAAFK,KAAOA,GAAK,GAAFD,GAA4B,KAAtBJ,EAAED,EAAE2pF,gBAAwB,IAAI3pF,EAAEA,EAAE4pF,cAAc3pF,GAAGK,EAAE,EAAEL,GAAc7K,EAAE,IAAbiL,EAAE,GAAG2oF,GAAG/oF,IAAUK,GAAGN,EAAEK,GAAGJ,IAAI7K,EAAE,OAAOkL,CAAC,CACvc,SAASupF,GAAG7pF,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAOC,EAAE,IAAI,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAOA,EAAE,IAAuJ,QAAQ,OAAO,EAAE,CACrN,SAAS6pF,GAAG9pF,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAEwpF,cAAsCxpF,EAAI,WAAFA,EAAa,WAAW,CAAC,CAAC,SAAS+pF,KAAK,IAAI/pF,EAAEopF,GAAoC,OAA1B,KAAQ,SAAfA,KAAK,MAAqBA,GAAG,IAAWppF,CAAC,CAAC,SAASgqF,GAAGhqF,GAAG,IAAI,IAAIC,EAAE,GAAGI,EAAE,EAAE,GAAGA,EAAEA,IAAIJ,EAAEjc,KAAKgc,GAAG,OAAOC,CAAC,CAC3a,SAASgqF,GAAGjqF,EAAEC,EAAEI,GAAGL,EAAEwpF,cAAcvpF,EAAE,YAAYA,IAAID,EAAEypF,eAAe,EAAEzpF,EAAE0pF,YAAY,IAAG1pF,EAAEA,EAAEkqF,YAAWjqF,EAAE,GAAG+oF,GAAG/oF,IAAQI,CAAC,CACzH,SAAS8pF,GAAGnqF,EAAEC,GAAG,IAAII,EAAEL,EAAE2pF,gBAAgB1pF,EAAE,IAAID,EAAEA,EAAE4pF,cAAcvpF,GAAG,CAAC,IAAIC,EAAE,GAAG0oF,GAAG3oF,GAAGjL,EAAE,GAAGkL,EAAElL,EAAE6K,EAAED,EAAEM,GAAGL,IAAID,EAAEM,IAAIL,GAAGI,IAAIjL,CAAC,CAAC,CAAC,IAAIg1F,GAAE,EAAE,SAASC,GAAGrqF,GAAS,OAAO,GAAbA,IAAIA,GAAa,EAAEA,EAAE,KAAO,UAAFA,GAAa,GAAG,UAAU,EAAE,CAAC,CAAC,IAAIsqF,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAIltB,IAAImtB,GAAG,IAAIntB,IAAIotB,GAAG,GAAGC,GAAG,6PAA6PhlF,MAAM,KAChiB,SAASilF,GAAGprF,EAAEC,GAAG,OAAOD,GAAG,IAAK,UAAU,IAAK,WAAW6qF,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGlvE,OAAO7b,EAAEorF,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBJ,GAAGnvE,OAAO7b,EAAEorF,WAAW,CACnT,SAASC,GAAGtrF,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,GAAG,OAAG,OAAOvC,GAAGA,EAAEurF,cAAchpF,GAASvC,EAAE,CAACwrF,UAAUvrF,EAAEwrF,aAAaprF,EAAEqrF,iBAAiBprF,EAAEirF,YAAYhpF,EAAEopF,iBAAiB,CAACv2F,IAAI,OAAO6K,IAAY,QAARA,EAAEulF,GAAGvlF,KAAasqF,GAAGtqF,IAAID,IAAEA,EAAE0rF,kBAAkBprF,EAAEL,EAAED,EAAE2rF,iBAAiB,OAAOv2F,IAAI,IAAI6K,EAAEva,QAAQ0P,IAAI6K,EAAEjc,KAAKoR,GAAU4K,EAAC,CAEpR,SAAS4rF,GAAG5rF,GAAG,IAAIC,EAAE4rF,GAAG7rF,EAAE7b,QAAQ,GAAG,OAAO8b,EAAE,CAAC,IAAII,EAAEwmF,GAAG5mF,GAAG,GAAG,OAAOI,EAAE,GAAW,MAARJ,EAAEI,EAAEvS,MAAY,GAAW,QAARmS,EAAEgnF,GAAG5mF,IAA4D,OAA/CL,EAAEwrF,UAAUvrF,OAAEyqF,GAAG1qF,EAAE8rF,UAAS,WAAWtB,GAAGnqF,EAAE,SAAgB,GAAG,IAAIJ,GAAGI,EAAEolF,UAAUz6F,QAAQk8F,cAAc6E,aAAmE,YAArD/rF,EAAEwrF,UAAU,IAAInrF,EAAEvS,IAAIuS,EAAEolF,UAAUuG,cAAc,KAAY,CAAChsF,EAAEwrF,UAAU,IAAI,CAClT,SAASS,GAAGjsF,GAAG,GAAG,OAAOA,EAAEwrF,UAAU,OAAM,EAAG,IAAI,IAAIvrF,EAAED,EAAE2rF,iBAAiB,EAAE1rF,EAAE3b,QAAQ,CAAC,IAAI+b,EAAE6rF,GAAGlsF,EAAEyrF,aAAazrF,EAAE0rF,iBAAiBzrF,EAAE,GAAGD,EAAEurF,aAAa,GAAG,OAAOlrF,EAAiG,OAAe,QAARJ,EAAEulF,GAAGnlF,KAAakqF,GAAGtqF,GAAGD,EAAEwrF,UAAUnrF,GAAE,EAA3H,IAAIC,EAAE,IAAtBD,EAAEL,EAAEurF,aAAwBrmG,YAAYmb,EAAE7N,KAAK6N,GAAG2kF,GAAG1kF,EAAED,EAAElc,OAAOgoG,cAAc7rF,GAAG0kF,GAAG,KAA0D/kF,EAAE+B,OAAO,CAAC,OAAM,CAAE,CAAC,SAASoqF,GAAGpsF,EAAEC,EAAEI,GAAG4rF,GAAGjsF,IAAIK,EAAEyb,OAAO7b,EAAE,CAAC,SAASosF,KAAK1B,IAAG,EAAG,OAAOE,IAAIoB,GAAGpB,MAAMA,GAAG,MAAM,OAAOC,IAAImB,GAAGnB,MAAMA,GAAG,MAAM,OAAOC,IAAIkB,GAAGlB,MAAMA,GAAG,MAAMC,GAAGxmG,QAAQ4nG,IAAInB,GAAGzmG,QAAQ4nG,GAAG,CACnf,SAASE,GAAGtsF,EAAEC,GAAGD,EAAEwrF,YAAYvrF,IAAID,EAAEwrF,UAAU,KAAKb,KAAKA,IAAG,EAAGzP,EAAGwM,0BAA0BxM,EAAGuN,wBAAwB4D,KAAK,CAC5H,SAASE,GAAGvsF,GAAG,SAASC,EAAEA,GAAG,OAAOqsF,GAAGrsF,EAAED,EAAE,CAAC,GAAG,EAAE4qF,GAAGtmG,OAAO,CAACgoG,GAAG1B,GAAG,GAAG5qF,GAAG,IAAI,IAAIK,EAAE,EAAEA,EAAEuqF,GAAGtmG,OAAO+b,IAAI,CAAC,IAAIC,EAAEsqF,GAAGvqF,GAAGC,EAAEkrF,YAAYxrF,IAAIM,EAAEkrF,UAAU,KAAK,CAAC,CAAyF,IAAxF,OAAOX,IAAIyB,GAAGzB,GAAG7qF,GAAG,OAAO8qF,IAAIwB,GAAGxB,GAAG9qF,GAAG,OAAO+qF,IAAIuB,GAAGvB,GAAG/qF,GAAGgrF,GAAGxmG,QAAQyb,GAAGgrF,GAAGzmG,QAAQyb,GAAOI,EAAE,EAAEA,EAAE6qF,GAAG5mG,OAAO+b,KAAIC,EAAE4qF,GAAG7qF,IAAKmrF,YAAYxrF,IAAIM,EAAEkrF,UAAU,MAAM,KAAK,EAAEN,GAAG5mG,QAAiB,QAAR+b,EAAE6qF,GAAG,IAAYM,WAAYI,GAAGvrF,GAAG,OAAOA,EAAEmrF,WAAWN,GAAGlpF,OAAO,CAAC,IAAIwqF,GAAG9P,EAAG+P,wBAAwBC,IAAG,EAC5a,SAASC,GAAG3sF,EAAEC,EAAEI,EAAEC,GAAG,IAAIlL,EAAEg1F,GAAE7nF,EAAEiqF,GAAG/wD,WAAW+wD,GAAG/wD,WAAW,KAAK,IAAI2uD,GAAE,EAAEwC,GAAG5sF,EAAEC,EAAEI,EAAEC,EAAE,CAAC,QAAQ8pF,GAAEh1F,EAAEo3F,GAAG/wD,WAAWl5B,CAAC,CAAC,CAAC,SAASsqF,GAAG7sF,EAAEC,EAAEI,EAAEC,GAAG,IAAIlL,EAAEg1F,GAAE7nF,EAAEiqF,GAAG/wD,WAAW+wD,GAAG/wD,WAAW,KAAK,IAAI2uD,GAAE,EAAEwC,GAAG5sF,EAAEC,EAAEI,EAAEC,EAAE,CAAC,QAAQ8pF,GAAEh1F,EAAEo3F,GAAG/wD,WAAWl5B,CAAC,CAAC,CACjO,SAASqqF,GAAG5sF,EAAEC,EAAEI,EAAEC,GAAG,GAAGosF,GAAG,CAAC,IAAIt3F,EAAE82F,GAAGlsF,EAAEC,EAAEI,EAAEC,GAAG,GAAG,OAAOlL,EAAE03F,GAAG9sF,EAAEC,EAAEK,EAAE3N,GAAG0N,GAAG+qF,GAAGprF,EAAEM,QAAQ,GANtF,SAAYN,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,OAAO6K,GAAG,IAAK,UAAU,OAAO4qF,GAAGS,GAAGT,GAAG7qF,EAAEC,EAAEI,EAAEC,EAAElL,IAAG,EAAG,IAAK,YAAY,OAAO01F,GAAGQ,GAAGR,GAAG9qF,EAAEC,EAAEI,EAAEC,EAAElL,IAAG,EAAG,IAAK,YAAY,OAAO21F,GAAGO,GAAGP,GAAG/qF,EAAEC,EAAEI,EAAEC,EAAElL,IAAG,EAAG,IAAK,cAAc,IAAImN,EAAEnN,EAAEi2F,UAAkD,OAAxCL,GAAG3rF,IAAIkD,EAAE+oF,GAAGN,GAAG7zF,IAAIoL,IAAI,KAAKvC,EAAEC,EAAEI,EAAEC,EAAElL,KAAU,EAAG,IAAK,oBAAoB,OAAOmN,EAAEnN,EAAEi2F,UAAUJ,GAAG5rF,IAAIkD,EAAE+oF,GAAGL,GAAG9zF,IAAIoL,IAAI,KAAKvC,EAAEC,EAAEI,EAAEC,EAAElL,KAAI,EAAG,OAAM,CAAE,CAM1Q23F,CAAG33F,EAAE4K,EAAEC,EAAEI,EAAEC,GAAGA,EAAE0sF,uBAAuB,GAAG5B,GAAGprF,EAAEM,GAAK,EAAFL,IAAM,EAAEkrF,GAAGzlG,QAAQsa,GAAG,CAAC,KAAK,OAAO5K,GAAG,CAAC,IAAImN,EAAEijF,GAAGpwF,GAA0D,GAAvD,OAAOmN,GAAG+nF,GAAG/nF,GAAiB,QAAdA,EAAE2pF,GAAGlsF,EAAEC,EAAEI,EAAEC,KAAawsF,GAAG9sF,EAAEC,EAAEK,EAAE3N,GAAG0N,GAAMkC,IAAInN,EAAE,MAAMA,EAAEmN,CAAC,CAAC,OAAOnN,GAAGkL,EAAE0sF,iBAAiB,MAAMF,GAAG9sF,EAAEC,EAAEK,EAAE,KAAKD,EAAE,CAAC,CAAC,IAAI1N,GAAG,KACpU,SAASu5F,GAAGlsF,EAAEC,EAAEI,EAAEC,GAA2B,GAAxB3N,GAAG,KAAwB,QAAXqN,EAAE6rF,GAAV7rF,EAAEilF,GAAG3kF,KAAuB,GAAW,QAARL,EAAE4mF,GAAG7mF,IAAYA,EAAE,UAAU,GAAW,MAARK,EAAEJ,EAAEnS,KAAW,CAAS,GAAG,QAAXkS,EAAEinF,GAAGhnF,IAAe,OAAOD,EAAEA,EAAE,IAAI,MAAM,GAAG,IAAIK,EAAE,CAAC,GAAGJ,EAAEwlF,UAAUz6F,QAAQk8F,cAAc6E,aAAa,OAAO,IAAI9rF,EAAEnS,IAAImS,EAAEwlF,UAAUuG,cAAc,KAAKhsF,EAAE,IAAI,MAAMC,IAAID,IAAIA,EAAE,MAAW,OAALrN,GAAGqN,EAAS,IAAI,CAC7S,SAASitF,GAAGjtF,GAAG,OAAOA,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,QAAQ,IAAK,cAAc,IAAK,OAAO,IAAK,MAAM,IAAK,WAAW,IAAK,WAAW,IAAK,UAAU,IAAK,YAAY,IAAK,OAAO,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,UAAU,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,YAAY,IAAK,UAAU,IAAK,QAAQ,IAAK,QAAQ,IAAK,OAAO,IAAK,gBAAgB,IAAK,cAAc,IAAK,YAAY,IAAK,aAAa,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,cAAc,IAAK,WAAW,IAAK,aAAa,IAAK,eAAe,IAAK,SAAS,IAAK,kBAAkB,IAAK,YAAY,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,oBAAoB,IAAK,aAAa,IAAK,YAAY,IAAK,cAAc,IAAK,OAAO,IAAK,mBAAmB,IAAK,QAAQ,IAAK,aAAa,IAAK,WAAW,IAAK,SAAS,IAAK,cAAc,OAAO,EAAE,IAAK,OAAO,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,IAAK,QAAQ,IAAK,aAAa,IAAK,aAAa,IAAK,eAAe,IAAK,eAAe,OAAO,EACpqC,IAAK,UAAU,OAAOkoF,MAAM,KAAKE,GAAG,OAAO,EAAE,KAAKE,GAAG,OAAO,EAAE,KAAKE,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,UAAU,QAAQ,OAAO,GAAG,QAAQ,OAAO,GAAG,CAAC,IAAIsE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAIptF,EAAkBM,EAAhBL,EAAEktF,GAAG9sF,EAAEJ,EAAE3b,OAAS8Q,EAAE,UAAU83F,GAAGA,GAAG9nG,MAAM8nG,GAAG1rC,YAAYj/C,EAAEnN,EAAE9Q,OAAO,IAAI0b,EAAE,EAAEA,EAAEK,GAAGJ,EAAED,KAAK5K,EAAE4K,GAAGA,KAAK,IAAI4tD,EAAEvtD,EAAEL,EAAE,IAAIM,EAAE,EAAEA,GAAGstD,GAAG3tD,EAAEI,EAAEC,KAAKlL,EAAEmN,EAAEjC,GAAGA,KAAK,OAAO8sF,GAAGh4F,EAAE/N,MAAM2Y,EAAE,EAAEM,EAAE,EAAEA,OAAE,EAAO,CACxY,SAASgtF,GAAGttF,GAAG,IAAIC,EAAED,EAAEutF,QAA+E,MAAvE,aAAavtF,EAAgB,KAAbA,EAAEA,EAAEwtF,WAAgB,KAAKvtF,IAAID,EAAE,IAAKA,EAAEC,EAAE,KAAKD,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,CAAC,CAAC,SAASytF,KAAK,OAAM,CAAE,CAAC,SAASC,KAAK,OAAM,CAAE,CAC5K,SAASC,GAAG3tF,GAAG,SAASC,EAAEA,EAAEK,EAAElL,EAAEmN,EAAEqrD,GAA6G,IAAI,IAAIvtD,KAAlHxB,KAAK+uF,WAAW3tF,EAAEpB,KAAKgvF,YAAYz4F,EAAEyJ,KAAKrM,KAAK8N,EAAEzB,KAAK0sF,YAAYhpF,EAAE1D,KAAK1a,OAAOypE,EAAE/uD,KAAKivF,cAAc,KAAkB9tF,EAAEA,EAAEjY,eAAesY,KAAKJ,EAAED,EAAEK,GAAGxB,KAAKwB,GAAGJ,EAAEA,EAAEsC,GAAGA,EAAElC,IAAgI,OAA5HxB,KAAKkvF,oBAAoB,MAAMxrF,EAAE82D,iBAAiB92D,EAAE82D,kBAAiB,IAAK92D,EAAEyrF,aAAaP,GAAGC,GAAG7uF,KAAKovF,qBAAqBP,GAAU7uF,IAAI,CAC9E,OAD+E++E,EAAE39E,EAAE9a,UAAU,CAAC+oG,eAAe,WAAWrvF,KAAKw6D,kBAAiB,EAAG,IAAIr5D,EAAEnB,KAAK0sF,YAAYvrF,IAAIA,EAAEkuF,eAAeluF,EAAEkuF,iBAAiB,mBAAmBluF,EAAEguF,cAC7ehuF,EAAEguF,aAAY,GAAInvF,KAAKkvF,mBAAmBN,GAAG,EAAET,gBAAgB,WAAW,IAAIhtF,EAAEnB,KAAK0sF,YAAYvrF,IAAIA,EAAEgtF,gBAAgBhtF,EAAEgtF,kBAAkB,mBAAmBhtF,EAAEmuF,eAAenuF,EAAEmuF,cAAa,GAAItvF,KAAKovF,qBAAqBR,GAAG,EAAEW,QAAQ,WAAW,EAAEC,aAAaZ,KAAYxtF,CAAC,CACjR,IAAoLquF,GAAGC,GAAGC,GAAtLC,GAAG,CAACC,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,SAAS7uF,GAAG,OAAOA,EAAE6uF,WAAW5/E,KAAKuqB,KAAK,EAAE6/B,iBAAiB,EAAEy1B,UAAU,GAAGC,GAAGpB,GAAGc,IAAIO,GAAGpR,EAAE,CAAC,EAAE6Q,GAAG,CAAC7iE,KAAK,EAAEqjE,OAAO,IAAIC,GAAGvB,GAAGqB,IAAaG,GAAGvR,EAAE,CAAC,EAAEoR,GAAG,CAACI,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,iBAAiBC,GAAGC,OAAO,EAAEC,QAAQ,EAAEC,cAAc,SAASlwF,GAAG,YAAO,IAASA,EAAEkwF,cAAclwF,EAAEmwF,cAAcnwF,EAAEklF,WAAWllF,EAAEowF,UAAUpwF,EAAEmwF,YAAYnwF,EAAEkwF,aAAa,EAAEG,UAAU,SAASrwF,GAAG,MAAG,cAC3eA,EAASA,EAAEqwF,WAAUrwF,IAAIwuF,KAAKA,IAAI,cAAcxuF,EAAExN,MAAM87F,GAAGtuF,EAAEovF,QAAQZ,GAAGY,QAAQb,GAAGvuF,EAAEqvF,QAAQb,GAAGa,SAASd,GAAGD,GAAG,EAAEE,GAAGxuF,GAAUsuF,GAAE,EAAEgC,UAAU,SAAStwF,GAAG,MAAM,cAAcA,EAAEA,EAAEswF,UAAU/B,EAAE,IAAIgC,GAAG5C,GAAGwB,IAAiCqB,GAAG7C,GAA7B/P,EAAE,CAAC,EAAEuR,GAAG,CAACsB,aAAa,KAA4CC,GAAG/C,GAA9B/P,EAAE,CAAC,EAAEoR,GAAG,CAACkB,cAAc,KAA0ES,GAAGhD,GAA5D/P,EAAE,CAAC,EAAE6Q,GAAG,CAACmC,cAAc,EAAEC,YAAY,EAAEC,cAAc,KAAc35C,GAAGymC,EAAE,CAAC,EAAE6Q,GAAG,CAACsC,cAAc,SAAS/wF,GAAG,MAAM,kBAAkBA,EAAEA,EAAE+wF,cAAcz8F,OAAOy8F,aAAa,IAAIC,GAAGrD,GAAGx2C,IAAyB85C,GAAGtD,GAArB/P,EAAE,CAAC,EAAE6Q,GAAG,CAACrwF,KAAK,KAAc8yF,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAGryF,GAAG,IAAIC,EAAEpB,KAAK0sF,YAAY,OAAOtrF,EAAE6vF,iBAAiB7vF,EAAE6vF,iBAAiB9vF,MAAIA,EAAEgyF,GAAGhyF,OAAMC,EAAED,EAAK,CAAC,SAAS+vF,KAAK,OAAOsC,EAAE,CAChS,IAAIC,GAAG1U,EAAE,CAAC,EAAEoR,GAAG,CAACvqG,IAAI,SAASub,GAAG,GAAGA,EAAEvb,IAAI,CAAC,IAAIwb,EAAEixF,GAAGlxF,EAAEvb,MAAMub,EAAEvb,IAAI,GAAG,iBAAiBwb,EAAE,OAAOA,CAAC,CAAC,MAAM,aAAaD,EAAExN,KAAc,MAARwN,EAAEstF,GAAGttF,IAAU,QAAQmV,OAAO8yC,aAAajoD,GAAI,YAAYA,EAAExN,MAAM,UAAUwN,EAAExN,KAAKu/F,GAAG/xF,EAAEutF,UAAU,eAAe,EAAE,EAAEvlF,KAAK,EAAEjf,SAAS,EAAE2mG,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAE0C,OAAO,EAAE55B,OAAO,EAAEm3B,iBAAiBC,GAAGvC,SAAS,SAASxtF,GAAG,MAAM,aAAaA,EAAExN,KAAK86F,GAAGttF,GAAG,CAAC,EAAEutF,QAAQ,SAASvtF,GAAG,MAAM,YAAYA,EAAExN,MAAM,UAAUwN,EAAExN,KAAKwN,EAAEutF,QAAQ,CAAC,EAAEiF,MAAM,SAASxyF,GAAG,MAAM,aAC7eA,EAAExN,KAAK86F,GAAGttF,GAAG,YAAYA,EAAExN,MAAM,UAAUwN,EAAExN,KAAKwN,EAAEutF,QAAQ,CAAC,IAAIkF,GAAG9E,GAAG2E,IAAiII,GAAG/E,GAA7H/P,EAAE,CAAC,EAAEuR,GAAG,CAAC9D,UAAU,EAAEsH,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAGzF,GAArH/P,EAAE,CAAC,EAAEoR,GAAG,CAACqE,QAAQ,EAAEC,cAAc,EAAEC,eAAe,EAAE3D,OAAO,EAAEC,QAAQ,EAAEH,QAAQ,EAAEC,SAAS,EAAEG,iBAAiBC,MAA0EyD,GAAG7F,GAA3D/P,EAAE,CAAC,EAAE6Q,GAAG,CAAC1S,aAAa,EAAE8U,YAAY,EAAEC,cAAc,KAAc2C,GAAG7V,EAAE,CAAC,EAAEuR,GAAG,CAACuE,OAAO,SAAS1zF,GAAG,MAAM,WAAWA,EAAEA,EAAE0zF,OAAO,gBAAgB1zF,GAAGA,EAAE2zF,YAAY,CAAC,EACnfC,OAAO,SAAS5zF,GAAG,MAAM,WAAWA,EAAEA,EAAE4zF,OAAO,gBAAgB5zF,GAAGA,EAAE6zF,YAAY,eAAe7zF,GAAGA,EAAE8zF,WAAW,CAAC,EAAEC,OAAO,EAAEC,UAAU,IAAIC,GAAGtG,GAAG8F,IAAIS,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAG5Y,GAAI,qBAAqBjnF,OAAO8/F,GAAG,KAAK7Y,GAAI,iBAAiBjrD,WAAW8jE,GAAG9jE,SAAS+jE,cAAc,IAAIC,GAAG/Y,GAAI,cAAcjnF,SAAS8/F,GAAGG,GAAGhZ,KAAM4Y,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAII,GAAGr/E,OAAO8yC,aAAa,IAAIwsC,IAAG,EAC1W,SAASC,GAAG10F,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAQ,OAAO,IAAIk0F,GAAGxuG,QAAQua,EAAEstF,SAAS,IAAK,UAAU,OAAO,MAAMttF,EAAEstF,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,SAASoH,GAAG30F,GAAc,MAAM,kBAAjBA,EAAEA,EAAEivF,SAAkC,SAASjvF,EAAEA,EAAE5B,KAAK,IAAI,CAAC,IAAIw2F,IAAG,EAE9Q,IAAIC,GAAG,CAACC,OAAM,EAAGjmF,MAAK,EAAG8qC,UAAS,EAAG,kBAAiB,EAAGo7C,OAAM,EAAGC,OAAM,EAAGvrG,QAAO,EAAGwrG,UAAS,EAAGC,OAAM,EAAG/tF,QAAO,EAAGguF,KAAI,EAAGpzC,MAAK,EAAGvD,MAAK,EAAGhwD,KAAI,EAAG4mG,MAAK,GAAI,SAASC,GAAGr1F,GAAG,IAAIC,EAAED,GAAGA,EAAEuhD,UAAUvhD,EAAEuhD,SAAS5jD,cAAc,MAAM,UAAUsC,IAAI40F,GAAG70F,EAAExN,MAAM,aAAayN,CAAO,CAAC,SAASq1F,GAAGt1F,EAAEC,EAAEI,EAAEC,GAAGqlF,GAAGrlF,GAAsB,GAAnBL,EAAEs1F,GAAGt1F,EAAE,aAAgB3b,SAAS+b,EAAE,IAAI0uF,GAAG,WAAW,SAAS,KAAK1uF,EAAEC,GAAGN,EAAEhc,KAAK,CAAC0G,MAAM2V,EAAE8/B,UAAUlgC,IAAI,CAAC,IAAIu1F,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAG11F,GAAG21F,GAAG31F,EAAE,EAAE,CAAC,SAAS41F,GAAG51F,GAAe,GAAG++E,EAAT8W,GAAG71F,IAAY,OAAOA,CAAC,CACpe,SAAS81F,GAAG91F,EAAEC,GAAG,GAAG,WAAWD,EAAE,OAAOC,CAAC,CAAC,IAAI81F,IAAG,EAAG,GAAGxa,EAAG,CAAC,IAAIya,GAAG,GAAGza,EAAG,CAAC,IAAI0a,GAAG,YAAY3lE,SAAS,IAAI2lE,GAAG,CAAC,IAAIC,GAAG5lE,SAASzgC,cAAc,OAAOqmG,GAAGpmB,aAAa,UAAU,WAAWmmB,GAAG,oBAAoBC,GAAGC,OAAO,CAACH,GAAGC,EAAE,MAAMD,IAAG,EAAGD,GAAGC,MAAM1lE,SAAS+jE,cAAc,EAAE/jE,SAAS+jE,aAAa,CAAC,SAAS+B,KAAKZ,KAAKA,GAAGa,YAAY,mBAAmBC,IAAIb,GAAGD,GAAG,KAAK,CAAC,SAASc,GAAGt2F,GAAG,GAAG,UAAUA,EAAE+7E,cAAc6Z,GAAGH,IAAI,CAAC,IAAIx1F,EAAE,GAAGq1F,GAAGr1F,EAAEw1F,GAAGz1F,EAAEilF,GAAGjlF,IAAIgmF,GAAG0P,GAAGz1F,EAAE,CAAC,CAC/b,SAASs2F,GAAGv2F,EAAEC,EAAEI,GAAG,YAAYL,GAAGo2F,KAAUX,GAAGp1F,GAARm1F,GAAGv1F,GAAUu2F,YAAY,mBAAmBF,KAAK,aAAat2F,GAAGo2F,IAAI,CAAC,SAASK,GAAGz2F,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAO41F,GAAGH,GAAG,CAAC,SAASiB,GAAG12F,EAAEC,GAAG,GAAG,UAAUD,EAAE,OAAO41F,GAAG31F,EAAE,CAAC,SAAS02F,GAAG32F,EAAEC,GAAG,GAAG,UAAUD,GAAG,WAAWA,EAAE,OAAO41F,GAAG31F,EAAE,CAAiE,IAAI22F,GAAG,oBAAoBnzG,OAAOshG,GAAGthG,OAAOshG,GAA5G,SAAY/kF,EAAEC,GAAG,OAAOD,IAAIC,IAAI,IAAID,GAAG,EAAEA,IAAI,EAAEC,IAAID,IAAIA,GAAGC,IAAIA,CAAC,EACtW,SAAS42F,GAAG72F,EAAEC,GAAG,GAAG22F,GAAG52F,EAAEC,GAAG,OAAM,EAAG,GAAG,kBAAkBD,GAAG,OAAOA,GAAG,kBAAkBC,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAII,EAAE5c,OAAOD,KAAKwc,GAAGM,EAAE7c,OAAOD,KAAKyc,GAAG,GAAGI,EAAE/b,SAASgc,EAAEhc,OAAO,OAAM,EAAG,IAAIgc,EAAE,EAAEA,EAAED,EAAE/b,OAAOgc,IAAI,CAAC,IAAIlL,EAAEiL,EAAEC,GAAG,IAAIk7E,EAAG11F,KAAKma,EAAE7K,KAAKwhG,GAAG52F,EAAE5K,GAAG6K,EAAE7K,IAAI,OAAM,CAAE,CAAC,OAAM,CAAE,CAAC,SAAS0hG,GAAG92F,GAAG,KAAKA,GAAGA,EAAE0gF,YAAY1gF,EAAEA,EAAE0gF,WAAW,OAAO1gF,CAAC,CACtU,SAAS+2F,GAAG/2F,EAAEC,GAAG,IAAwBK,EAApBD,EAAEy2F,GAAG92F,GAAO,IAAJA,EAAE,EAAYK,GAAG,CAAC,GAAG,IAAIA,EAAE04E,SAAS,CAA0B,GAAzBz4E,EAAEN,EAAEK,EAAEmhD,YAAYl9D,OAAU0b,GAAGC,GAAGK,GAAGL,EAAE,MAAM,CAAChW,KAAKoW,EAAE0B,OAAO9B,EAAED,GAAGA,EAAEM,CAAC,CAACN,EAAE,CAAC,KAAKK,GAAG,CAAC,GAAGA,EAAE22F,YAAY,CAAC32F,EAAEA,EAAE22F,YAAY,MAAMh3F,CAAC,CAACK,EAAEA,EAAE0gD,UAAU,CAAC1gD,OAAE,CAAM,CAACA,EAAEy2F,GAAGz2F,EAAE,CAAC,CAAC,SAAS42F,GAAGj3F,EAAEC,GAAG,SAAOD,IAAGC,KAAED,IAAIC,KAAKD,GAAG,IAAIA,EAAE+4E,YAAY94E,GAAG,IAAIA,EAAE84E,SAASke,GAAGj3F,EAAEC,EAAE8gD,YAAY,aAAa/gD,EAAEA,EAAE0nE,SAASznE,KAAGD,EAAEk3F,4BAAwD,GAA7Bl3F,EAAEk3F,wBAAwBj3F,KAAY,CAC9Z,SAASk3F,KAAK,IAAI,IAAIn3F,EAAE1L,OAAO2L,EAAE++E,IAAK/+E,aAAaD,EAAEo3F,mBAAmB,CAAC,IAAI,IAAI/2F,EAAE,kBAAkBJ,EAAEo3F,cAActuG,SAASuhC,IAAI,CAAC,MAAMhqB,GAAGD,GAAE,CAAE,CAAC,IAAGA,EAAyB,MAAMJ,EAAE++E,GAA/Bh/E,EAAEC,EAAEo3F,eAAgC/mE,SAAS,CAAC,OAAOrwB,CAAC,CAAC,SAASq3F,GAAGt3F,GAAG,IAAIC,EAAED,GAAGA,EAAEuhD,UAAUvhD,EAAEuhD,SAAS5jD,cAAc,OAAOsC,IAAI,UAAUA,IAAI,SAASD,EAAExN,MAAM,WAAWwN,EAAExN,MAAM,QAAQwN,EAAExN,MAAM,QAAQwN,EAAExN,MAAM,aAAawN,EAAExN,OAAO,aAAayN,GAAG,SAASD,EAAEu3F,gBAAgB,CACxa,SAASC,GAAGx3F,GAAG,IAAIC,EAAEk3F,KAAK92F,EAAEL,EAAEy3F,YAAYn3F,EAAEN,EAAE03F,eAAe,GAAGz3F,IAAII,GAAGA,GAAGA,EAAEs/E,eAAesX,GAAG52F,EAAEs/E,cAAcp9B,gBAAgBliD,GAAG,CAAC,GAAG,OAAOC,GAAGg3F,GAAGj3F,GAAG,GAAGJ,EAAEK,EAAE4+C,WAAc,KAARl/C,EAAEM,EAAEw9B,OAAiB99B,EAAEC,GAAG,mBAAmBI,EAAEA,EAAEs3F,eAAe13F,EAAEI,EAAEu3F,aAAa12F,KAAK8tB,IAAIhvB,EAAEK,EAAEjb,MAAMd,aAAa,IAAG0b,GAAGC,EAAEI,EAAEs/E,eAAervD,WAAWrwB,EAAE43F,aAAavjG,QAASwjG,aAAa,CAAC93F,EAAEA,EAAE83F,eAAe,IAAI1iG,EAAEiL,EAAEmhD,YAAYl9D,OAAOie,EAAErB,KAAK8tB,IAAI1uB,EAAE4+C,MAAM9pD,GAAGkL,OAAE,IAASA,EAAEw9B,IAAIv7B,EAAErB,KAAK8tB,IAAI1uB,EAAEw9B,IAAI1oC,IAAI4K,EAAE+3F,QAAQx1F,EAAEjC,IAAIlL,EAAEkL,EAAEA,EAAEiC,EAAEA,EAAEnN,GAAGA,EAAE2hG,GAAG12F,EAAEkC,GAAG,IAAIqrD,EAAEmpC,GAAG12F,EACvfC,GAAGlL,GAAGw4D,IAAI,IAAI5tD,EAAEg4F,YAAYh4F,EAAEi4F,aAAa7iG,EAAEnL,MAAM+V,EAAEk4F,eAAe9iG,EAAE2M,QAAQ/B,EAAEm4F,YAAYvqC,EAAE3jE,MAAM+V,EAAEo4F,cAAcxqC,EAAE7rD,WAAU9B,EAAEA,EAAEo4F,eAAgBC,SAASljG,EAAEnL,KAAKmL,EAAE2M,QAAQ/B,EAAEu4F,kBAAkBh2F,EAAEjC,GAAGN,EAAEw4F,SAASv4F,GAAGD,EAAE+3F,OAAOnqC,EAAE3jE,KAAK2jE,EAAE7rD,UAAU9B,EAAEw4F,OAAO7qC,EAAE3jE,KAAK2jE,EAAE7rD,QAAQ/B,EAAEw4F,SAASv4F,IAAI,CAAM,IAALA,EAAE,GAAOD,EAAEK,EAAEL,EAAEA,EAAE+gD,YAAY,IAAI/gD,EAAE+4E,UAAU94E,EAAEjc,KAAK,CAAC8F,QAAQkW,EAAE/T,KAAK+T,EAAE04F,WAAWC,IAAI34F,EAAE44F,YAAmD,IAAvC,oBAAoBv4F,EAAEw4F,OAAOx4F,EAAEw4F,QAAYx4F,EAAE,EAAEA,EAAEJ,EAAE3b,OAAO+b,KAAIL,EAAEC,EAAEI,IAAKvW,QAAQ4uG,WAAW14F,EAAE/T,KAAK+T,EAAElW,QAAQ8uG,UAAU54F,EAAE24F,GAAG,CAAC,CACzf,IAAIG,GAAGvd,GAAI,iBAAiBjrD,UAAU,IAAIA,SAAS+jE,aAAa0E,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAGn5F,EAAEC,EAAEI,GAAG,IAAIC,EAAED,EAAE/L,SAAS+L,EAAEA,EAAEiwB,SAAS,IAAIjwB,EAAE04E,SAAS14E,EAAEA,EAAEs/E,cAAcuZ,IAAI,MAAMH,IAAIA,KAAK/Z,EAAG1+E,KAAU,mBAALA,EAAEy4F,KAAyBzB,GAAGh3F,GAAGA,EAAE,CAAC4+C,MAAM5+C,EAAEq3F,eAAe75D,IAAIx9B,EAAEs3F,cAAuFt3F,EAAE,CAAC23F,YAA3E33F,GAAGA,EAAEq/E,eAAer/E,EAAEq/E,cAAckY,aAAavjG,QAAQwjG,gBAA+BG,WAAWC,aAAa53F,EAAE43F,aAAaC,UAAU73F,EAAE63F,UAAUC,YAAY93F,EAAE83F,aAAca,IAAIpC,GAAGoC,GAAG34F,KAAK24F,GAAG34F,EAAsB,GAApBA,EAAEi1F,GAAGyD,GAAG,aAAgB10G,SAAS2b,EAAE,IAAI8uF,GAAG,WAAW,SAAS,KAAK9uF,EAAEI,GAAGL,EAAEhc,KAAK,CAAC0G,MAAMuV,EAAEkgC,UAAU7/B,IAAIL,EAAE9b,OAAO40G,KAAK,CACtf,SAASK,GAAGp5F,EAAEC,GAAG,IAAII,EAAE,CAAC,EAAiF,OAA/EA,EAAEL,EAAErC,eAAesC,EAAEtC,cAAc0C,EAAE,SAASL,GAAG,SAASC,EAAEI,EAAE,MAAML,GAAG,MAAMC,EAASI,CAAC,CAAC,IAAIg5F,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,CAAC,EAAEC,GAAG,CAAC,EACpF,SAASC,GAAG55F,GAAG,GAAG05F,GAAG15F,GAAG,OAAO05F,GAAG15F,GAAG,IAAIq5F,GAAGr5F,GAAG,OAAOA,EAAE,IAAYK,EAARJ,EAAEo5F,GAAGr5F,GAAK,IAAIK,KAAKJ,EAAE,GAAGA,EAAElY,eAAesY,IAAIA,KAAKs5F,GAAG,OAAOD,GAAG15F,GAAGC,EAAEI,GAAG,OAAOL,CAAC,CAA/Xu7E,IAAKoe,GAAGrpE,SAASzgC,cAAc,OAAO2qE,MAAM,mBAAmBlmE,gBAAgB+kG,GAAGC,aAAaO,iBAAiBR,GAAGE,mBAAmBM,iBAAiBR,GAAGG,eAAeK,WAAW,oBAAoBvlG,eAAe+kG,GAAGI,cAAch+D,YAAwJ,IAAIq+D,GAAGF,GAAG,gBAAgBG,GAAGH,GAAG,sBAAsBI,GAAGJ,GAAG,kBAAkBK,GAAGL,GAAG,iBAAiBM,GAAG,IAAIp8B,IAAIq8B,GAAG,smBAAsmBh0F,MAAM,KAC/lC,SAAS/F,GAAGJ,EAAEC,GAAGi6F,GAAG76F,IAAIW,EAAEC,GAAGo7E,EAAGp7E,EAAE,CAACD,GAAG,CAAC,IAAI,IAAIo6F,GAAG,EAAEA,GAAGD,GAAG71G,OAAO81G,KAAK,CAAC,IAAIC,GAAGF,GAAGC,IAA2Dh6F,GAApDi6F,GAAG18F,cAAuD,MAAtC08F,GAAG,GAAG/nG,cAAc+nG,GAAGhzG,MAAM,IAAiB,CAAC+Y,GAAG05F,GAAG,kBAAkB15F,GAAG25F,GAAG,wBAAwB35F,GAAG45F,GAAG,oBAAoB55F,GAAG,WAAW,iBAAiBA,GAAG,UAAU,WAAWA,GAAG,WAAW,UAAUA,GAAG65F,GAAG,mBAAmB3e,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAC7cA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBD,EAAG,WAAW,oEAAoEl1E,MAAM,MAAMk1E,EAAG,WAAW,uFAAuFl1E,MAAM,MAAMk1E,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2Dl1E,MAAM,MAAMk1E,EAAG,qBAAqB,6DAA6Dl1E,MAAM,MAC/fk1E,EAAG,sBAAsB,8DAA8Dl1E,MAAM,MAAM,IAAIm0F,GAAG,6NAA6Nn0F,MAAM,KAAKo0F,GAAG,IAAIt8B,IAAI,0CAA0C93D,MAAM,KAAK5Y,OAAO+sG,KACzZ,SAASE,GAAGx6F,EAAEC,EAAEI,GAAG,IAAIC,EAAEN,EAAExN,MAAM,gBAAgBwN,EAAE8tF,cAAcztF,EAlDjE,SAAYL,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,EAAEqrD,EAAE7T,EAAEv3C,GAA4B,GAAzBokF,GAAG3iG,MAAM4a,KAAKxa,WAAckiG,GAAG,CAAC,IAAGA,GAAgC,MAAMr9F,MAAMgvE,EAAE,MAA1C,IAAIzrE,EAAE+5F,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAGj6F,EAAE,CAAC,CAkDpEguG,CAAGn6F,EAAEL,OAAE,EAAOD,GAAGA,EAAE8tF,cAAc,IAAI,CACxG,SAAS6H,GAAG31F,EAAEC,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAII,EAAE,EAAEA,EAAEL,EAAE1b,OAAO+b,IAAI,CAAC,IAAIC,EAAEN,EAAEK,GAAGjL,EAAEkL,EAAE5V,MAAM4V,EAAEA,EAAE6/B,UAAUngC,EAAE,CAAC,IAAIuC,OAAE,EAAO,GAAGtC,EAAE,IAAI,IAAI2tD,EAAEttD,EAAEhc,OAAO,EAAE,GAAGspE,EAAEA,IAAI,CAAC,IAAI7T,EAAEz5C,EAAEstD,GAAGprD,EAAEu3C,EAAE2gD,SAASjuG,EAAEstD,EAAE+zC,cAA2B,GAAb/zC,EAAEA,EAAEzU,SAAY9iC,IAAID,GAAGnN,EAAE64F,uBAAuB,MAAMjuF,EAAEw6F,GAAGplG,EAAE2kD,EAAEttD,GAAG8V,EAAEC,CAAC,MAAM,IAAIorD,EAAE,EAAEA,EAAEttD,EAAEhc,OAAOspE,IAAI,CAAoD,GAA5CprD,GAAPu3C,EAAEz5C,EAAEstD,IAAO8sC,SAASjuG,EAAEstD,EAAE+zC,cAAc/zC,EAAEA,EAAEzU,SAAY9iC,IAAID,GAAGnN,EAAE64F,uBAAuB,MAAMjuF,EAAEw6F,GAAGplG,EAAE2kD,EAAEttD,GAAG8V,EAAEC,CAAC,CAAC,CAAC,CAAC,GAAGikF,GAAG,MAAMzmF,EAAE0mF,GAAGD,IAAG,EAAGC,GAAG,KAAK1mF,CAAE,CAC5a,SAAS26F,GAAE36F,EAAEC,GAAG,IAAII,EAAEJ,EAAE26F,SAAI,IAASv6F,IAAIA,EAAEJ,EAAE26F,IAAI,IAAI38B,KAAK,IAAI39D,EAAEN,EAAE,WAAWK,EAAEkwE,IAAIjwE,KAAKu6F,GAAG56F,EAAED,EAAE,GAAE,GAAIK,EAAEmiB,IAAIliB,GAAG,CAAC,SAASw6F,GAAG96F,EAAEC,EAAEI,GAAG,IAAIC,EAAE,EAAEL,IAAIK,GAAG,GAAGu6F,GAAGx6F,EAAEL,EAAEM,EAAEL,EAAE,CAAC,IAAI86F,GAAG,kBAAkB75F,KAAKw+C,SAASt4D,SAAS,IAAIC,MAAM,GAAG,SAAS2zG,GAAGh7F,GAAG,IAAIA,EAAE+6F,IAAI,CAAC/6F,EAAE+6F,KAAI,EAAG5f,EAAG32F,SAAQ,SAASyb,GAAG,oBAAoBA,IAAIs6F,GAAGhqB,IAAItwE,IAAI66F,GAAG76F,GAAE,EAAGD,GAAG86F,GAAG76F,GAAE,EAAGD,GAAG,IAAG,IAAIC,EAAE,IAAID,EAAE+4E,SAAS/4E,EAAEA,EAAE2/E,cAAc,OAAO1/E,GAAGA,EAAE86F,MAAM96F,EAAE86F,KAAI,EAAGD,GAAG,mBAAkB,EAAG76F,GAAG,CAAC,CACjb,SAAS46F,GAAG76F,EAAEC,EAAEI,EAAEC,GAAG,OAAO2sF,GAAGhtF,IAAI,KAAK,EAAE,IAAI7K,EAAEu3F,GAAG,MAAM,KAAK,EAAEv3F,EAAEy3F,GAAG,MAAM,QAAQz3F,EAAEw3F,GAAGvsF,EAAEjL,EAAE26D,KAAK,KAAK9vD,EAAEI,EAAEL,GAAG5K,OAAE,GAAQ8wF,IAAI,eAAejmF,GAAG,cAAcA,GAAG,UAAUA,IAAI7K,GAAE,GAAIkL,OAAE,IAASlL,EAAE4K,EAAE0qB,iBAAiBzqB,EAAEI,EAAE,CAAC46F,SAAQ,EAAGC,QAAQ9lG,IAAI4K,EAAE0qB,iBAAiBzqB,EAAEI,GAAE,QAAI,IAASjL,EAAE4K,EAAE0qB,iBAAiBzqB,EAAEI,EAAE,CAAC66F,QAAQ9lG,IAAI4K,EAAE0qB,iBAAiBzqB,EAAEI,GAAE,EAAG,CAClV,SAASysF,GAAG9sF,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,IAAImN,EAAEjC,EAAE,GAAG,KAAO,EAAFL,IAAM,KAAO,EAAFA,IAAM,OAAOK,EAAEN,EAAE,OAAO,CAAC,GAAG,OAAOM,EAAE,OAAO,IAAIstD,EAAEttD,EAAExS,IAAI,GAAG,IAAI8/D,GAAG,IAAIA,EAAE,CAAC,IAAI7T,EAAEz5C,EAAEmlF,UAAUuG,cAAc,GAAGjyC,IAAI3kD,GAAG,IAAI2kD,EAAEg/B,UAAUh/B,EAAEgH,aAAa3rD,EAAE,MAAM,GAAG,IAAIw4D,EAAE,IAAIA,EAAEttD,EAAEymF,OAAO,OAAOn5B,GAAG,CAAC,IAAIprD,EAAEorD,EAAE9/D,IAAI,IAAG,IAAI0U,GAAG,IAAIA,MAAKA,EAAEorD,EAAE63B,UAAUuG,iBAAkB52F,GAAG,IAAIoN,EAAEu2E,UAAUv2E,EAAEu+C,aAAa3rD,GAAE,OAAOw4D,EAAEA,EAAEm5B,MAAM,CAAC,KAAK,OAAOhtC,GAAG,CAAS,GAAG,QAAX6T,EAAEi+B,GAAG9xC,IAAe,OAAe,GAAG,KAAXv3C,EAAEorD,EAAE9/D,MAAc,IAAI0U,EAAE,CAAClC,EAAEiC,EAAEqrD,EAAE,SAAS5tD,CAAC,CAAC+5C,EAAEA,EAAEgH,UAAU,CAAC,CAACzgD,EAAEA,EAAEymF,MAAM,CAACf,IAAG,WAAW,IAAI1lF,EAAEiC,EAAEnN,EAAE6vF,GAAG5kF,GAAGutD,EAAE,GACpf5tD,EAAE,CAAC,IAAI+5C,EAAEmgD,GAAG/iG,IAAI6I,GAAG,QAAG,IAAS+5C,EAAE,CAAC,IAAIv3C,EAAEusF,GAAG5nG,EAAE6Y,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIstF,GAAGjtF,GAAG,MAAML,EAAE,IAAK,UAAU,IAAK,QAAQwC,EAAEiwF,GAAG,MAAM,IAAK,UAAUtrG,EAAE,QAAQqb,EAAEkuF,GAAG,MAAM,IAAK,WAAWvpG,EAAE,OAAOqb,EAAEkuF,GAAG,MAAM,IAAK,aAAa,IAAK,YAAYluF,EAAEkuF,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAIrwF,EAAE2vF,OAAO,MAAMhwF,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcwC,EAAE+tF,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO/tF,EAC1iBguF,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAahuF,EAAE4wF,GAAG,MAAM,KAAK0G,GAAG,KAAKC,GAAG,KAAKC,GAAGx3F,EAAEmuF,GAAG,MAAM,KAAKsJ,GAAGz3F,EAAEgxF,GAAG,MAAM,IAAK,SAAShxF,EAAE0sF,GAAG,MAAM,IAAK,QAAQ1sF,EAAEyxF,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQzxF,EAAEwuF,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYxuF,EAAEkwF,GAAG,IAAIvyF,EAAE,KAAO,EAAFF,GAAKk7F,GAAGh7F,GAAG,WAAWH,EAAEnY,EAAEsY,EAAE,OAAO45C,EAAEA,EAAE,UAAU,KAAKA,EAAE55C,EAAE,GAAG,IAAI,IAAQmD,EAAJhB,EAAEhC,EAAI,OAC/egC,GAAG,CAAK,IAAI84F,GAAR93F,EAAEhB,GAAUmjF,UAAsF,GAA5E,IAAIniF,EAAExV,KAAK,OAAOstG,IAAI93F,EAAE83F,EAAE,OAAOvzG,IAAc,OAAVuzG,EAAEnV,GAAG3jF,EAAEza,KAAYsY,EAAEnc,KAAKq3G,GAAG/4F,EAAE84F,EAAE93F,MAAS63F,EAAE,MAAM74F,EAAEA,EAAEykF,MAAM,CAAC,EAAE5mF,EAAE7b,SAASy1D,EAAE,IAAIv3C,EAAEu3C,EAAE5yD,EAAE,KAAKkZ,EAAEjL,GAAGw4D,EAAE5pE,KAAK,CAAC0G,MAAMqvD,EAAE5Z,UAAUhgC,IAAI,CAAC,CAAC,GAAG,KAAO,EAAFF,GAAK,CAA4E,GAAnCuC,EAAE,aAAaxC,GAAG,eAAeA,KAAtE+5C,EAAE,cAAc/5C,GAAG,gBAAgBA,IAA2CK,IAAI2kF,MAAK79F,EAAEkZ,EAAE6vF,eAAe7vF,EAAE8vF,eAAetE,GAAG1kG,KAAIA,EAAEm0G,OAAgB94F,GAAGu3C,KAAGA,EAAE3kD,EAAEd,SAASc,EAAEA,GAAG2kD,EAAE3kD,EAAEuqF,eAAe5lC,EAAE89C,aAAa99C,EAAEwhD,aAAajnG,OAAUkO,GAAqCA,EAAElC,EAAiB,QAAfnZ,GAAnCA,EAAEkZ,EAAE6vF,eAAe7vF,EAAE+vF,WAAkBvE,GAAG1kG,GAAG,QAC9dA,KAARg0G,EAAEtU,GAAG1/F,KAAU,IAAIA,EAAE2G,KAAK,IAAI3G,EAAE2G,OAAK3G,EAAE,QAAUqb,EAAE,KAAKrb,EAAEmZ,GAAKkC,IAAIrb,GAAE,CAAgU,GAA/TgZ,EAAEowF,GAAG6K,EAAE,eAAevzG,EAAE,eAAeya,EAAE,QAAW,eAAetC,GAAG,gBAAgBA,IAAEG,EAAEuyF,GAAG0I,EAAE,iBAAiBvzG,EAAE,iBAAiBya,EAAE,WAAU64F,EAAE,MAAM34F,EAAEu3C,EAAE87C,GAAGrzF,GAAGc,EAAE,MAAMnc,EAAE4yD,EAAE87C,GAAG1uG,IAAG4yD,EAAE,IAAI55C,EAAEi7F,EAAE94F,EAAE,QAAQE,EAAEnC,EAAEjL,IAAKjR,OAAOg3G,EAAEphD,EAAEm2C,cAAc5sF,EAAE83F,EAAE,KAAKvP,GAAGz2F,KAAKkL,KAAIH,EAAE,IAAIA,EAAEtY,EAAEya,EAAE,QAAQnb,EAAEkZ,EAAEjL,IAAKjR,OAAOmf,EAAEnD,EAAE+vF,cAAciL,EAAEC,EAAEj7F,GAAGg7F,EAAEC,EAAK54F,GAAGrb,EAAE8Y,EAAE,CAAa,IAARpY,EAAEV,EAAEmb,EAAE,EAAMgB,EAAhBnD,EAAEqC,EAAkBc,EAAEA,EAAEk4F,GAAGl4F,GAAGhB,IAAQ,IAAJgB,EAAE,EAAM83F,EAAEvzG,EAAEuzG,EAAEA,EAAEI,GAAGJ,GAAG93F,IAAI,KAAK,EAAEhB,EAAEgB,GAAGnD,EAAEq7F,GAAGr7F,GAAGmC,IAAI,KAAK,EAAEgB,EAAEhB,GAAGza,EACpf2zG,GAAG3zG,GAAGyb,IAAI,KAAKhB,KAAK,CAAC,GAAGnC,IAAItY,GAAG,OAAOA,GAAGsY,IAAItY,EAAEi/F,UAAU,MAAM7mF,EAAEE,EAAEq7F,GAAGr7F,GAAGtY,EAAE2zG,GAAG3zG,EAAE,CAACsY,EAAE,IAAI,MAAMA,EAAE,KAAK,OAAOqC,GAAGi5F,GAAG7tC,EAAE7T,EAAEv3C,EAAErC,GAAE,GAAI,OAAOhZ,GAAG,OAAOg0G,GAAGM,GAAG7tC,EAAEutC,EAAEh0G,EAAEgZ,GAAE,EAAG,CAA8D,GAAG,YAA1CqC,GAAjBu3C,EAAEz5C,EAAEu1F,GAAGv1F,GAAGhM,QAAWitD,UAAUxH,EAAEwH,SAAS5jD,gBAA+B,UAAU6E,GAAG,SAASu3C,EAAEvnD,KAAK,IAAIkpG,EAAG5F,QAAQ,GAAGT,GAAGt7C,GAAG,GAAGg8C,GAAG2F,EAAG/E,OAAO,CAAC+E,EAAGjF,GAAG,IAAIkF,EAAGpF,EAAE,MAAM/zF,EAAEu3C,EAAEwH,WAAW,UAAU/+C,EAAE7E,gBAAgB,aAAao8C,EAAEvnD,MAAM,UAAUunD,EAAEvnD,QAAQkpG,EAAGhF,IACrV,OAD4VgF,IAAKA,EAAGA,EAAG17F,EAAEM,IAAKg1F,GAAG1nC,EAAE8tC,EAAGr7F,EAAEjL,IAAWumG,GAAIA,EAAG37F,EAAE+5C,EAAEz5C,GAAG,aAAaN,IAAI27F,EAAG5hD,EAAEqlC,gBAClfuc,EAAGnc,YAAY,WAAWzlC,EAAEvnD,MAAM7H,GAAGovD,EAAE,SAASA,EAAE30D,QAAOu2G,EAAGr7F,EAAEu1F,GAAGv1F,GAAGhM,OAAc0L,GAAG,IAAK,WAAaq1F,GAAGsG,IAAK,SAASA,EAAGpE,mBAAgBwB,GAAG4C,EAAG3C,GAAG14F,EAAE24F,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAGvrC,EAAEvtD,EAAEjL,GAAG,MAAM,IAAK,kBAAkB,GAAG0jG,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAGvrC,EAAEvtD,EAAEjL,GAAG,IAAIwmG,EAAG,GAAGzH,GAAGl0F,EAAE,CAAC,OAAOD,GAAG,IAAK,mBAAmB,IAAI67F,EAAG,qBAAqB,MAAM57F,EAAE,IAAK,iBAAiB47F,EAAG,mBACpe,MAAM57F,EAAE,IAAK,oBAAoB47F,EAAG,sBAAsB,MAAM57F,EAAE47F,OAAG,CAAM,MAAMjH,GAAGF,GAAG10F,EAAEK,KAAKw7F,EAAG,oBAAoB,YAAY77F,GAAG,MAAMK,EAAEktF,UAAUsO,EAAG,sBAAsBA,IAAKtH,IAAI,OAAOl0F,EAAEs4D,SAASi8B,IAAI,uBAAuBiH,EAAG,qBAAqBA,GAAIjH,KAAKgH,EAAGvO,OAAYF,GAAG,UAARD,GAAG93F,GAAkB83F,GAAG9nG,MAAM8nG,GAAG1rC,YAAYozC,IAAG,IAAiB,GAAZ+G,EAAGpG,GAAGj1F,EAAEu7F,IAASv3G,SAASu3G,EAAG,IAAI5K,GAAG4K,EAAG77F,EAAE,KAAKK,EAAEjL,GAAGw4D,EAAE5pE,KAAK,CAAC0G,MAAMmxG,EAAG17D,UAAUw7D,IAAKC,EAAGC,EAAGz9F,KAAKw9F,EAAa,QAATA,EAAGjH,GAAGt0F,MAAew7F,EAAGz9F,KAAKw9F,MAAUA,EAAGtH,GA5BhM,SAAYt0F,EAAEC,GAAG,OAAOD,GAAG,IAAK,iBAAiB,OAAO20F,GAAG10F,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAEuyF,MAAa,MAAKiC,IAAG,EAAUD,IAAG,IAAK,YAAY,OAAOx0F,EAAEC,EAAE7B,QAASo2F,IAAIC,GAAG,KAAKz0F,EAAE,QAAQ,OAAO,KAAK,CA4BE87F,CAAG97F,EAAEK,GA3Bzd,SAAYL,EAAEC,GAAG,GAAG20F,GAAG,MAAM,mBAAmB50F,IAAIm0F,IAAIO,GAAG10F,EAAEC,IAAID,EAAEqtF,KAAKD,GAAGD,GAAGD,GAAG,KAAK0H,IAAG,EAAG50F,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKC,EAAEyvF,SAASzvF,EAAE2vF,QAAQ3vF,EAAE4vF,UAAU5vF,EAAEyvF,SAASzvF,EAAE2vF,OAAO,CAAC,GAAG3vF,EAAE87F,MAAM,EAAE97F,EAAE87F,KAAKz3G,OAAO,OAAO2b,EAAE87F,KAAK,GAAG97F,EAAEuyF,MAAM,OAAOr9E,OAAO8yC,aAAahoD,EAAEuyF,MAAM,CAAC,OAAO,KAAK,IAAK,iBAAiB,OAAO+B,IAAI,OAAOt0F,EAAE04D,OAAO,KAAK14D,EAAE7B,KAAyB,CA2BqF49F,CAAGh8F,EAAEK,MACje,GADoeC,EAAEi1F,GAAGj1F,EAAE,kBACvehc,SAAS8Q,EAAE,IAAI67F,GAAG,gBAAgB,cAAc,KAAK5wF,EAAEjL,GAAGw4D,EAAE5pE,KAAK,CAAC0G,MAAM0K,EAAE+qC,UAAU7/B,IAAIlL,EAAEgJ,KAAKw9F,GAAG,CAACjG,GAAG/nC,EAAE3tD,EAAE,GAAE,CAAC,SAASo7F,GAAGr7F,EAAEC,EAAEI,GAAG,MAAM,CAACq6F,SAAS16F,EAAEslC,SAASrlC,EAAE6tF,cAAcztF,EAAE,CAAC,SAASk1F,GAAGv1F,EAAEC,GAAG,IAAI,IAAII,EAAEJ,EAAE,UAAUK,EAAE,GAAG,OAAON,GAAG,CAAC,IAAI5K,EAAE4K,EAAEuC,EAAEnN,EAAEqwF,UAAU,IAAIrwF,EAAEtH,KAAK,OAAOyU,IAAInN,EAAEmN,EAAY,OAAVA,EAAE0jF,GAAGjmF,EAAEK,KAAYC,EAAEgJ,QAAQ+xF,GAAGr7F,EAAEuC,EAAEnN,IAAc,OAAVmN,EAAE0jF,GAAGjmF,EAAEC,KAAYK,EAAEtc,KAAKq3G,GAAGr7F,EAAEuC,EAAEnN,KAAK4K,EAAEA,EAAE+mF,MAAM,CAAC,OAAOzmF,CAAC,CAAC,SAASk7F,GAAGx7F,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAE+mF,aAAa/mF,GAAG,IAAIA,EAAElS,KAAK,OAAOkS,GAAI,IAAI,CACnd,SAASy7F,GAAGz7F,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,IAAI,IAAImN,EAAEtC,EAAE2tF,WAAWhgC,EAAE,GAAG,OAAOvtD,GAAGA,IAAIC,GAAG,CAAC,IAAIy5C,EAAE15C,EAAEmC,EAAEu3C,EAAE+sC,UAAUr6F,EAAEstD,EAAE0rC,UAAU,GAAG,OAAOjjF,GAAGA,IAAIlC,EAAE,MAAM,IAAIy5C,EAAEjsD,KAAK,OAAOrB,IAAIstD,EAAEttD,EAAE2I,EAAa,OAAVoN,EAAEyjF,GAAG5lF,EAAEkC,KAAYqrD,EAAEtkD,QAAQ+xF,GAAGh7F,EAAEmC,EAAEu3C,IAAK3kD,GAAc,OAAVoN,EAAEyjF,GAAG5lF,EAAEkC,KAAYqrD,EAAE5pE,KAAKq3G,GAAGh7F,EAAEmC,EAAEu3C,KAAM15C,EAAEA,EAAE0mF,MAAM,CAAC,IAAIn5B,EAAEtpE,QAAQ0b,EAAEhc,KAAK,CAAC0G,MAAMuV,EAAEkgC,UAAUytB,GAAG,CAAC,IAAIquC,GAAG,SAASC,GAAG,iBAAiB,SAASC,GAAGn8F,GAAG,OAAO,kBAAkBA,EAAEA,EAAE,GAAGA,GAAG8E,QAAQm3F,GAAG,MAAMn3F,QAAQo3F,GAAG,GAAG,CAAC,SAASE,GAAGp8F,EAAEC,EAAEI,GAAW,GAARJ,EAAEk8F,GAAGl8F,GAAMk8F,GAAGn8F,KAAKC,GAAGI,EAAE,MAAMnX,MAAMgvE,EAAE,KAAM,CAAC,SAASmkC,KAAK,CAC9e,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGx8F,EAAEC,GAAG,MAAM,aAAaD,GAAG,aAAaA,GAAG,kBAAkBC,EAAE/Q,UAAU,kBAAkB+Q,EAAE/Q,UAAU,kBAAkB+Q,EAAE65D,yBAAyB,OAAO75D,EAAE65D,yBAAyB,MAAM75D,EAAE65D,wBAAwBC,MAAM,CAC5P,IAAI0iC,GAAG,oBAAoBn1E,WAAWA,gBAAW,EAAOo1E,GAAG,oBAAoBC,aAAaA,kBAAa,EAAOC,GAAG,oBAAoB5uG,QAAQA,aAAQ,EAAO6uG,GAAG,oBAAoBC,eAAeA,eAAe,qBAAqBF,GAAG,SAAS58F,GAAG,OAAO48F,GAAG3uG,QAAQ,MAAMxC,KAAKuU,GAAG+8F,MAAMC,GAAG,EAAEP,GAAG,SAASO,GAAGh9F,GAAGsnB,YAAW,WAAW,MAAMtnB,CAAE,GAAE,CACpV,SAASi9F,GAAGj9F,EAAEC,GAAG,IAAII,EAAEJ,EAAEK,EAAE,EAAE,EAAE,CAAC,IAAIlL,EAAEiL,EAAE22F,YAA6B,GAAjBh3F,EAAE2gF,YAAYtgF,GAAMjL,GAAG,IAAIA,EAAE2jF,SAAS,GAAY,QAAT14E,EAAEjL,EAAEgJ,MAAc,CAAC,GAAG,IAAIkC,EAA0B,OAAvBN,EAAE2gF,YAAYvrF,QAAGm3F,GAAGtsF,GAAUK,GAAG,KAAK,MAAMD,GAAG,OAAOA,GAAG,OAAOA,GAAGC,IAAID,EAAEjL,CAAC,OAAOiL,GAAGksF,GAAGtsF,EAAE,CAAC,SAASi9F,GAAGl9F,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAEg3F,YAAY,CAAC,IAAI/2F,EAAED,EAAE+4E,SAAS,GAAG,IAAI94E,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAIA,EAAE,CAAU,GAAG,OAAZA,EAAED,EAAE5B,OAAiB,OAAO6B,GAAG,OAAOA,EAAE,MAAM,GAAG,OAAOA,EAAE,OAAO,IAAI,CAAC,CAAC,OAAOD,CAAC,CACjY,SAASm9F,GAAGn9F,GAAGA,EAAEA,EAAEo9F,gBAAgB,IAAI,IAAIn9F,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAE+4E,SAAS,CAAC,IAAI14E,EAAEL,EAAE5B,KAAK,GAAG,MAAMiC,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAIJ,EAAE,OAAOD,EAAEC,GAAG,KAAK,OAAOI,GAAGJ,GAAG,CAACD,EAAEA,EAAEo9F,eAAe,CAAC,OAAO,IAAI,CAAC,IAAIC,GAAGn8F,KAAKw+C,SAASt4D,SAAS,IAAIC,MAAM,GAAGi2G,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAG/B,GAAG,oBAAoB+B,GAAGzC,GAAG,iBAAiByC,GAAGG,GAAG,oBAAoBH,GAAGI,GAAG,kBAAkBJ,GAClX,SAASxR,GAAG7rF,GAAG,IAAIC,EAAED,EAAEs9F,IAAI,GAAGr9F,EAAE,OAAOA,EAAE,IAAI,IAAII,EAAEL,EAAE+gD,WAAW1gD,GAAG,CAAC,GAAGJ,EAAEI,EAAEi7F,KAAKj7F,EAAEi9F,IAAI,CAAe,GAAdj9F,EAAEJ,EAAE6mF,UAAa,OAAO7mF,EAAEohD,OAAO,OAAOhhD,GAAG,OAAOA,EAAEghD,MAAM,IAAIrhD,EAAEm9F,GAAGn9F,GAAG,OAAOA,GAAG,CAAC,GAAGK,EAAEL,EAAEs9F,IAAI,OAAOj9F,EAAEL,EAAEm9F,GAAGn9F,EAAE,CAAC,OAAOC,CAAC,CAAKI,GAAJL,EAAEK,GAAM0gD,UAAU,CAAC,OAAO,IAAI,CAAC,SAASykC,GAAGxlF,GAAkB,QAAfA,EAAEA,EAAEs9F,KAAKt9F,EAAEs7F,MAAc,IAAIt7F,EAAElS,KAAK,IAAIkS,EAAElS,KAAK,KAAKkS,EAAElS,KAAK,IAAIkS,EAAElS,IAAI,KAAKkS,CAAC,CAAC,SAAS61F,GAAG71F,GAAG,GAAG,IAAIA,EAAElS,KAAK,IAAIkS,EAAElS,IAAI,OAAOkS,EAAEylF,UAAU,MAAMv8F,MAAMgvE,EAAE,IAAK,CAAC,SAASwtB,GAAG1lF,GAAG,OAAOA,EAAEu9F,KAAK,IAAI,CAAC,IAAIG,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAG59F,GAAG,MAAM,CAAChV,QAAQgV,EAAE,CACve,SAAS44D,GAAE54D,GAAG,EAAE29F,KAAK39F,EAAEhV,QAAQ0yG,GAAGC,IAAID,GAAGC,IAAI,KAAKA,KAAK,CAAC,SAASE,GAAE79F,EAAEC,GAAG09F,KAAKD,GAAGC,IAAI39F,EAAEhV,QAAQgV,EAAEhV,QAAQiV,CAAC,CAAC,IAAI69F,GAAG,CAAC,EAAE1tC,GAAEwtC,GAAGE,IAAIC,GAAGH,IAAG,GAAII,GAAGF,GAAG,SAASG,GAAGj+F,EAAEC,GAAG,IAAII,EAAEL,EAAExN,KAAK0rG,aAAa,IAAI79F,EAAE,OAAOy9F,GAAG,IAAIx9F,EAAEN,EAAEylF,UAAU,GAAGnlF,GAAGA,EAAE69F,8CAA8Cl+F,EAAE,OAAOK,EAAE89F,0CAA0C,IAAS77F,EAALnN,EAAE,CAAC,EAAI,IAAImN,KAAKlC,EAAEjL,EAAEmN,GAAGtC,EAAEsC,GAAoH,OAAjHjC,KAAIN,EAAEA,EAAEylF,WAAY0Y,4CAA4Cl+F,EAAED,EAAEo+F,0CAA0ChpG,GAAUA,CAAC,CAC9d,SAASipG,GAAGr+F,GAAyB,OAAO,QAA7BA,EAAEA,EAAEs+F,yBAAmC,IAASt+F,CAAC,CAAC,SAASu+F,KAAK3lC,GAAEmlC,IAAInlC,GAAExI,GAAE,CAAC,SAASouC,GAAGx+F,EAAEC,EAAEI,GAAG,GAAG+vD,GAAEplE,UAAU8yG,GAAG,MAAM50G,MAAMgvE,EAAE,MAAM2lC,GAAEztC,GAAEnwD,GAAG49F,GAAEE,GAAG19F,EAAE,CAAC,SAASo+F,GAAGz+F,EAAEC,EAAEI,GAAG,IAAIC,EAAEN,EAAEylF,UAAgC,GAAtBxlF,EAAEA,EAAEq+F,kBAAqB,oBAAoBh+F,EAAEo+F,gBAAgB,OAAOr+F,EAAwB,IAAI,IAAIjL,KAA9BkL,EAAEA,EAAEo+F,kBAAiC,KAAKtpG,KAAK6K,GAAG,MAAM/W,MAAMgvE,EAAE,IAAIqmB,EAAGv+E,IAAI,UAAU5K,IAAI,OAAOwoF,EAAE,CAAC,EAAEv9E,EAAEC,EAAE,CACxX,SAASq+F,GAAG3+F,GAA2G,OAAxGA,GAAGA,EAAEA,EAAEylF,YAAYzlF,EAAE4+F,2CAA2Cd,GAAGE,GAAG5tC,GAAEplE,QAAQ6yG,GAAEztC,GAAEpwD,GAAG69F,GAAEE,GAAGA,GAAG/yG,UAAe,CAAE,CAAC,SAAS6zG,GAAG7+F,EAAEC,EAAEI,GAAG,IAAIC,EAAEN,EAAEylF,UAAU,IAAInlF,EAAE,MAAMpX,MAAMgvE,EAAE,MAAM73D,GAAGL,EAAEy+F,GAAGz+F,EAAEC,EAAE+9F,IAAI19F,EAAEs+F,0CAA0C5+F,EAAE44D,GAAEmlC,IAAInlC,GAAExI,IAAGytC,GAAEztC,GAAEpwD,IAAI44D,GAAEmlC,IAAIF,GAAEE,GAAG19F,EAAE,CAAC,IAAIy+F,GAAG,KAAKC,IAAG,EAAGx+F,IAAG,EAAG,SAASy+F,GAAGh/F,GAAG,OAAO8+F,GAAGA,GAAG,CAAC9+F,GAAG8+F,GAAG96G,KAAKgc,EAAE,CAChW,SAASi/F,KAAK,IAAI1+F,IAAI,OAAOu+F,GAAG,CAACv+F,IAAG,EAAG,IAAIP,EAAE,EAAEC,EAAEmqF,GAAE,IAAI,IAAI/pF,EAAEy+F,GAAG,IAAI1U,GAAE,EAAEpqF,EAAEK,EAAE/b,OAAO0b,IAAI,CAAC,IAAIM,EAAED,EAAEL,GAAG,GAAGM,EAAEA,GAAE,SAAU,OAAOA,EAAE,CAACw+F,GAAG,KAAKC,IAAG,CAAE,CAAC,MAAM3pG,GAAG,MAAM,OAAO0pG,KAAKA,GAAGA,GAAGz3G,MAAM2Y,EAAE,IAAIynF,GAAGW,GAAG6W,IAAI7pG,CAAE,CAAC,QAAQg1F,GAAEnqF,EAAEM,IAAG,CAAE,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI2+F,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAG,SAASC,GAAG3/F,EAAEC,GAAGi/F,GAAGC,MAAME,GAAGH,GAAGC,MAAMC,GAAGA,GAAGp/F,EAAEq/F,GAAGp/F,CAAC,CACjV,SAAS2/F,GAAG5/F,EAAEC,EAAEI,GAAGi/F,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGA,GAAGx/F,EAAE,IAAIM,EAAEm/F,GAAGz/F,EAAE0/F,GAAG,IAAItqG,EAAE,GAAG4zF,GAAG1oF,GAAG,EAAEA,KAAK,GAAGlL,GAAGiL,GAAG,EAAE,IAAIkC,EAAE,GAAGymF,GAAG/oF,GAAG7K,EAAE,GAAG,GAAGmN,EAAE,CAAC,IAAIqrD,EAAEx4D,EAAEA,EAAE,EAAEmN,GAAGjC,GAAG,GAAGstD,GAAG,GAAGxmE,SAAS,IAAIkZ,IAAIstD,EAAEx4D,GAAGw4D,EAAE6xC,GAAG,GAAG,GAAGzW,GAAG/oF,GAAG7K,EAAEiL,GAAGjL,EAAEkL,EAAEo/F,GAAGn9F,EAAEvC,CAAC,MAAMy/F,GAAG,GAAGl9F,EAAElC,GAAGjL,EAAEkL,EAAEo/F,GAAG1/F,CAAC,CAAC,SAAS6/F,GAAG7/F,GAAG,OAAOA,EAAE+mF,SAAS4Y,GAAG3/F,EAAE,GAAG4/F,GAAG5/F,EAAE,EAAE,GAAG,CAAC,SAAS8/F,GAAG9/F,GAAG,KAAKA,IAAIo/F,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,KAAK,KAAKn/F,IAAIw/F,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKG,GAAGJ,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,IAAI,CAAC,IAAIQ,GAAG,KAAKC,GAAG,KAAKC,IAAE,EAAGC,GAAG,KACje,SAASC,GAAGngG,EAAEC,GAAG,IAAII,EAAE+/F,GAAG,EAAE,KAAK,KAAK,GAAG//F,EAAEtW,YAAY,UAAUsW,EAAEolF,UAAUxlF,EAAEI,EAAE0mF,OAAO/mF,EAAgB,QAAdC,EAAED,EAAEqgG,YAAoBrgG,EAAEqgG,UAAU,CAAChgG,GAAGL,EAAEgnF,OAAO,IAAI/mF,EAAEjc,KAAKqc,EAAE,CACxJ,SAASigG,GAAGtgG,EAAEC,GAAG,OAAOD,EAAElS,KAAK,KAAK,EAAE,IAAIuS,EAAEL,EAAExN,KAAyE,OAAO,QAA3EyN,EAAE,IAAIA,EAAE84E,UAAU14E,EAAE1C,gBAAgBsC,EAAEshD,SAAS5jD,cAAc,KAAKsC,KAAmBD,EAAEylF,UAAUxlF,EAAE8/F,GAAG//F,EAAEggG,GAAG9C,GAAGj9F,EAAEygF,aAAY,GAAO,KAAK,EAAE,OAAoD,QAA7CzgF,EAAE,KAAKD,EAAEugG,cAAc,IAAItgG,EAAE84E,SAAS,KAAK94E,KAAYD,EAAEylF,UAAUxlF,EAAE8/F,GAAG//F,EAAEggG,GAAG,MAAK,GAAO,KAAK,GAAG,OAA+B,QAAxB//F,EAAE,IAAIA,EAAE84E,SAAS,KAAK94E,KAAYI,EAAE,OAAOm/F,GAAG,CAAC7sG,GAAG8sG,GAAGe,SAASd,IAAI,KAAK1/F,EAAEknF,cAAc,CAACC,WAAWlnF,EAAEwgG,YAAYpgG,EAAEqgG,UAAU,aAAYrgG,EAAE+/F,GAAG,GAAG,KAAK,KAAK,IAAK3a,UAAUxlF,EAAEI,EAAE0mF,OAAO/mF,EAAEA,EAAEqhD,MAAMhhD,EAAE0/F,GAAG//F,EAAEggG,GAClf,MAAK,GAAO,QAAQ,OAAM,EAAG,CAAC,SAASW,GAAG3gG,GAAG,OAAO,KAAY,EAAPA,EAAE2d,OAAS,KAAa,IAAR3d,EAAEgnF,MAAU,CAAC,SAAS4Z,GAAG5gG,GAAG,GAAGigG,GAAE,CAAC,IAAIhgG,EAAE+/F,GAAG,GAAG//F,EAAE,CAAC,IAAII,EAAEJ,EAAE,IAAIqgG,GAAGtgG,EAAEC,GAAG,CAAC,GAAG0gG,GAAG3gG,GAAG,MAAM9W,MAAMgvE,EAAE,MAAMj4D,EAAEi9F,GAAG78F,EAAE22F,aAAa,IAAI12F,EAAEy/F,GAAG9/F,GAAGqgG,GAAGtgG,EAAEC,GAAGkgG,GAAG7/F,EAAED,IAAIL,EAAEgnF,OAAe,KAAThnF,EAAEgnF,MAAY,EAAEiZ,IAAE,EAAGF,GAAG//F,EAAE,CAAC,KAAK,CAAC,GAAG2gG,GAAG3gG,GAAG,MAAM9W,MAAMgvE,EAAE,MAAMl4D,EAAEgnF,OAAe,KAAThnF,EAAEgnF,MAAY,EAAEiZ,IAAE,EAAGF,GAAG//F,CAAC,CAAC,CAAC,CAAC,SAAS6gG,GAAG7gG,GAAG,IAAIA,EAAEA,EAAE+mF,OAAO,OAAO/mF,GAAG,IAAIA,EAAElS,KAAK,IAAIkS,EAAElS,KAAK,KAAKkS,EAAElS,KAAKkS,EAAEA,EAAE+mF,OAAOgZ,GAAG//F,CAAC,CACha,SAAS8gG,GAAG9gG,GAAG,GAAGA,IAAI+/F,GAAG,OAAM,EAAG,IAAIE,GAAE,OAAOY,GAAG7gG,GAAGigG,IAAE,GAAG,EAAG,IAAIhgG,EAAkG,IAA/FA,EAAE,IAAID,EAAElS,QAAQmS,EAAE,IAAID,EAAElS,OAAgBmS,EAAE,UAAXA,EAAED,EAAExN,OAAmB,SAASyN,IAAIu8F,GAAGx8F,EAAExN,KAAKwN,EAAE+gG,gBAAmB9gG,IAAIA,EAAE+/F,IAAI,CAAC,GAAGW,GAAG3gG,GAAG,MAAMghG,KAAK93G,MAAMgvE,EAAE,MAAM,KAAKj4D,GAAGkgG,GAAGngG,EAAEC,GAAGA,EAAEi9F,GAAGj9F,EAAE+2F,YAAY,CAAO,GAAN6J,GAAG7gG,GAAM,KAAKA,EAAElS,IAAI,CAAgD,KAA7BkS,EAAE,QAApBA,EAAEA,EAAEknF,eAAyBlnF,EAAEmnF,WAAW,MAAW,MAAMj+F,MAAMgvE,EAAE,MAAMl4D,EAAE,CAAiB,IAAhBA,EAAEA,EAAEg3F,YAAgB/2F,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAE+4E,SAAS,CAAC,IAAI14E,EAAEL,EAAE5B,KAAK,GAAG,OAAOiC,EAAE,CAAC,GAAG,IAAIJ,EAAE,CAAC+/F,GAAG9C,GAAGl9F,EAAEg3F,aAAa,MAAMh3F,CAAC,CAACC,GAAG,KAAK,MAAMI,GAAG,OAAOA,GAAG,OAAOA,GAAGJ,GAAG,CAACD,EAAEA,EAAEg3F,WAAW,CAACgJ,GACjgB,IAAI,CAAC,MAAMA,GAAGD,GAAG7C,GAAGl9F,EAAEylF,UAAUuR,aAAa,KAAK,OAAM,CAAE,CAAC,SAASgK,KAAK,IAAI,IAAIhhG,EAAEggG,GAAGhgG,GAAGA,EAAEk9F,GAAGl9F,EAAEg3F,YAAY,CAAC,SAASiK,KAAKjB,GAAGD,GAAG,KAAKE,IAAE,CAAE,CAAC,SAASiB,GAAGlhG,GAAG,OAAOkgG,GAAGA,GAAG,CAAClgG,GAAGkgG,GAAGl8G,KAAKgc,EAAE,CAAC,IAAImhG,GAAGzkB,EAAG+P,wBAAwB,SAAS2U,GAAGphG,EAAEC,GAAG,GAAGD,GAAGA,EAAE06D,aAAa,CAA4B,IAAI,IAAIr6D,KAAnCJ,EAAE29E,EAAE,CAAC,EAAE39E,GAAGD,EAAEA,EAAE06D,kBAA4B,IAASz6D,EAAEI,KAAKJ,EAAEI,GAAGL,EAAEK,IAAI,OAAOJ,CAAC,CAAC,OAAOA,CAAC,CAAC,IAAIohG,GAAGzD,GAAG,MAAM0D,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,IAAI,CAAC,SAASI,GAAG1hG,GAAG,IAAIC,EAAEohG,GAAGr2G,QAAQ4tE,GAAEyoC,IAAIrhG,EAAE2hG,cAAc1hG,CAAC,CACjd,SAAS2hG,GAAG5hG,EAAEC,EAAEI,GAAG,KAAK,OAAOL,GAAG,CAAC,IAAIM,EAAEN,EAAE8mF,UAA+H,IAApH9mF,EAAE6hG,WAAW5hG,KAAKA,GAAGD,EAAE6hG,YAAY5hG,EAAE,OAAOK,IAAIA,EAAEuhG,YAAY5hG,IAAI,OAAOK,IAAIA,EAAEuhG,WAAW5hG,KAAKA,IAAIK,EAAEuhG,YAAY5hG,GAAMD,IAAIK,EAAE,MAAML,EAAEA,EAAE+mF,MAAM,CAAC,CAAC,SAAS+a,GAAG9hG,EAAEC,GAAGqhG,GAAGthG,EAAEwhG,GAAGD,GAAG,KAAsB,QAAjBvhG,EAAEA,EAAE+hG,eAAuB,OAAO/hG,EAAEgiG,eAAe,KAAKhiG,EAAEiiG,MAAMhiG,KAAKiiG,IAAG,GAAIliG,EAAEgiG,aAAa,KAAK,CACtU,SAASG,GAAGniG,GAAG,IAAIC,EAAED,EAAE2hG,cAAc,GAAGH,KAAKxhG,EAAE,GAAGA,EAAE,CAAC2yB,QAAQ3yB,EAAEoiG,cAAcniG,EAAEpZ,KAAK,MAAM,OAAO06G,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAMp4G,MAAMgvE,EAAE,MAAMqpC,GAAGvhG,EAAEshG,GAAGS,aAAa,CAACE,MAAM,EAAED,aAAahiG,EAAE,MAAMuhG,GAAGA,GAAG16G,KAAKmZ,EAAE,OAAOC,CAAC,CAAC,IAAIoiG,GAAG,KAAK,SAASC,GAAGtiG,GAAG,OAAOqiG,GAAGA,GAAG,CAACriG,GAAGqiG,GAAGr+G,KAAKgc,EAAE,CAAC,SAASuiG,GAAGviG,EAAEC,EAAEI,EAAEC,GAAG,IAAIlL,EAAE6K,EAAEuiG,YAA+E,OAAnE,OAAOptG,GAAGiL,EAAExZ,KAAKwZ,EAAEiiG,GAAGriG,KAAKI,EAAExZ,KAAKuO,EAAEvO,KAAKuO,EAAEvO,KAAKwZ,GAAGJ,EAAEuiG,YAAYniG,EAASoiG,GAAGziG,EAAEM,EAAE,CAChY,SAASmiG,GAAGziG,EAAEC,GAAGD,EAAEiiG,OAAOhiG,EAAE,IAAII,EAAEL,EAAE8mF,UAAqC,IAA3B,OAAOzmF,IAAIA,EAAE4hG,OAAOhiG,GAAGI,EAAEL,EAAMA,EAAEA,EAAE+mF,OAAO,OAAO/mF,GAAGA,EAAE6hG,YAAY5hG,EAAgB,QAAdI,EAAEL,EAAE8mF,aAAqBzmF,EAAEwhG,YAAY5hG,GAAGI,EAAEL,EAAEA,EAAEA,EAAE+mF,OAAO,OAAO,IAAI1mF,EAAEvS,IAAIuS,EAAEolF,UAAU,IAAI,CAAC,IAAIid,IAAG,EAAG,SAASC,GAAG3iG,GAAGA,EAAE4iG,YAAY,CAACC,UAAU7iG,EAAEknF,cAAc4b,gBAAgB,KAAKC,eAAe,KAAKC,OAAO,CAACC,QAAQ,KAAKT,YAAY,KAAKP,MAAM,GAAGiB,QAAQ,KAAK,CACpX,SAASC,GAAGnjG,EAAEC,GAAGD,EAAEA,EAAE4iG,YAAY3iG,EAAE2iG,cAAc5iG,IAAIC,EAAE2iG,YAAY,CAACC,UAAU7iG,EAAE6iG,UAAUC,gBAAgB9iG,EAAE8iG,gBAAgBC,eAAe/iG,EAAE+iG,eAAeC,OAAOhjG,EAAEgjG,OAAOE,QAAQljG,EAAEkjG,SAAS,CAAC,SAAS7mD,GAAGr8C,EAAEC,GAAG,MAAM,CAACmjG,UAAUpjG,EAAEqjG,KAAKpjG,EAAEnS,IAAI,EAAEwgC,QAAQ,KAAK7nB,SAAS,KAAK5f,KAAK,KAAK,CACtR,SAASy8G,GAAGtjG,EAAEC,EAAEI,GAAG,IAAIC,EAAEN,EAAE4iG,YAAY,GAAG,OAAOtiG,EAAE,OAAO,KAAgB,GAAXA,EAAEA,EAAE0iG,OAAU,KAAO,EAAF7yC,IAAK,CAAC,IAAI/6D,EAAEkL,EAAE2iG,QAA+D,OAAvD,OAAO7tG,EAAE6K,EAAEpZ,KAAKoZ,GAAGA,EAAEpZ,KAAKuO,EAAEvO,KAAKuO,EAAEvO,KAAKoZ,GAAGK,EAAE2iG,QAAQhjG,EAASwiG,GAAGziG,EAAEK,EAAE,CAAoF,OAAnE,QAAhBjL,EAAEkL,EAAEkiG,cAAsBviG,EAAEpZ,KAAKoZ,EAAEqiG,GAAGhiG,KAAKL,EAAEpZ,KAAKuO,EAAEvO,KAAKuO,EAAEvO,KAAKoZ,GAAGK,EAAEkiG,YAAYviG,EAASwiG,GAAGziG,EAAEK,EAAE,CAAC,SAASkjG,GAAGvjG,EAAEC,EAAEI,GAAmB,GAAG,QAAnBJ,EAAEA,EAAE2iG,eAA0B3iG,EAAEA,EAAE+iG,OAAO,KAAO,QAAF3iG,IAAY,CAAC,IAAIC,EAAEL,EAAEgiG,MAAwB5hG,GAAlBC,GAAGN,EAAEwpF,aAAkBvpF,EAAEgiG,MAAM5hG,EAAE8pF,GAAGnqF,EAAEK,EAAE,CAAC,CACrZ,SAASmjG,GAAGxjG,EAAEC,GAAG,IAAII,EAAEL,EAAE4iG,YAAYtiG,EAAEN,EAAE8mF,UAAU,GAAG,OAAOxmF,GAAoBD,KAAhBC,EAAEA,EAAEsiG,aAAmB,CAAC,IAAIxtG,EAAE,KAAKmN,EAAE,KAAyB,GAAG,QAAvBlC,EAAEA,EAAEyiG,iBAA4B,CAAC,EAAE,CAAC,IAAIl1C,EAAE,CAACw1C,UAAU/iG,EAAE+iG,UAAUC,KAAKhjG,EAAEgjG,KAAKv1G,IAAIuS,EAAEvS,IAAIwgC,QAAQjuB,EAAEiuB,QAAQ7nB,SAASpG,EAAEoG,SAAS5f,KAAK,MAAM,OAAO0b,EAAEnN,EAAEmN,EAAEqrD,EAAErrD,EAAEA,EAAE1b,KAAK+mE,EAAEvtD,EAAEA,EAAExZ,IAAI,OAAO,OAAOwZ,GAAG,OAAOkC,EAAEnN,EAAEmN,EAAEtC,EAAEsC,EAAEA,EAAE1b,KAAKoZ,CAAC,MAAM7K,EAAEmN,EAAEtC,EAAiH,OAA/GI,EAAE,CAACwiG,UAAUviG,EAAEuiG,UAAUC,gBAAgB1tG,EAAE2tG,eAAexgG,EAAEygG,OAAO1iG,EAAE0iG,OAAOE,QAAQ5iG,EAAE4iG,cAASljG,EAAE4iG,YAAYviG,EAAQ,CAAoB,QAAnBL,EAAEK,EAAE0iG,gBAAwB1iG,EAAEyiG,gBAAgB7iG,EAAED,EAAEnZ,KACnfoZ,EAAEI,EAAE0iG,eAAe9iG,CAAC,CACpB,SAASwjG,GAAGzjG,EAAEC,EAAEI,EAAEC,GAAG,IAAIlL,EAAE4K,EAAE4iG,YAAYF,IAAG,EAAG,IAAIngG,EAAEnN,EAAE0tG,gBAAgBl1C,EAAEx4D,EAAE2tG,eAAehpD,EAAE3kD,EAAE4tG,OAAOC,QAAQ,GAAG,OAAOlpD,EAAE,CAAC3kD,EAAE4tG,OAAOC,QAAQ,KAAK,IAAIzgG,EAAEu3C,EAAEttD,EAAE+V,EAAE3b,KAAK2b,EAAE3b,KAAK,KAAK,OAAO+mE,EAAErrD,EAAE9V,EAAEmhE,EAAE/mE,KAAK4F,EAAEmhE,EAAEprD,EAAE,IAAIsjD,EAAE9lD,EAAE8mF,UAAU,OAAOhhC,KAAoB/L,GAAhB+L,EAAEA,EAAE88C,aAAgBG,kBAAmBn1C,IAAI,OAAO7T,EAAE+L,EAAEg9C,gBAAgBr2G,EAAEstD,EAAElzD,KAAK4F,EAAEq5D,EAAEi9C,eAAevgG,GAAG,CAAC,GAAG,OAAOD,EAAE,CAAC,IAAIxC,EAAE3K,EAAEytG,UAA6B,IAAnBj1C,EAAE,EAAE9H,EAAEr5D,EAAE+V,EAAE,KAAKu3C,EAAEx3C,IAAI,CAAC,IAAI7V,EAAEqtD,EAAEspD,KAAKx6C,EAAE9O,EAAEqpD,UAAU,IAAI9iG,EAAE5T,KAAKA,EAAE,CAAC,OAAOo5D,IAAIA,EAAEA,EAAEj/D,KAAK,CAACu8G,UAAUv6C,EAAEw6C,KAAK,EAAEv1G,IAAIisD,EAAEjsD,IAAIwgC,QAAQyrB,EAAEzrB,QAAQ7nB,SAASszC,EAAEtzC,SACvf5f,KAAK,OAAOmZ,EAAE,CAAC,IAAI7Y,EAAE6Y,EAAEG,EAAE45C,EAAU,OAARrtD,EAAEuT,EAAE4oD,EAAExoD,EAASF,EAAErS,KAAK,KAAK,EAAc,GAAG,oBAAf3G,EAAEgZ,EAAEmuB,SAAiC,CAACvuB,EAAE5Y,EAAErB,KAAK+iE,EAAE9oD,EAAErT,GAAG,MAAMsT,CAAC,CAACD,EAAE5Y,EAAE,MAAM6Y,EAAE,KAAK,EAAE7Y,EAAE6/F,OAAe,MAAT7/F,EAAE6/F,MAAa,IAAI,KAAK,EAAsD,GAAG,QAA3Ct6F,EAAE,oBAAdvF,EAAEgZ,EAAEmuB,SAAgCnnC,EAAErB,KAAK+iE,EAAE9oD,EAAErT,GAAGvF,SAAe,IAASuF,EAAE,MAAMsT,EAAED,EAAE69E,EAAE,CAAC,EAAE79E,EAAErT,GAAG,MAAMsT,EAAE,KAAK,EAAE0iG,IAAG,EAAG,CAAC,OAAO3oD,EAAEtzC,UAAU,IAAIszC,EAAEspD,OAAOrjG,EAAEgnF,OAAO,GAAe,QAAZt6F,EAAE0I,EAAE8tG,SAAiB9tG,EAAE8tG,QAAQ,CAACnpD,GAAGrtD,EAAE1I,KAAK+1D,GAAG,MAAM8O,EAAE,CAACu6C,UAAUv6C,EAAEw6C,KAAK32G,EAAEoB,IAAIisD,EAAEjsD,IAAIwgC,QAAQyrB,EAAEzrB,QAAQ7nB,SAASszC,EAAEtzC,SAAS5f,KAAK,MAAM,OAAOi/D,GAAGr5D,EAAEq5D,EAAE+C,EAAErmD,EAAEzC,GAAG+lD,EAAEA,EAAEj/D,KAAKgiE,EAAE+E,GAAGlhE,EAC3e,GAAG,QAAZqtD,EAAEA,EAAElzD,MAAiB,IAAsB,QAAnBkzD,EAAE3kD,EAAE4tG,OAAOC,SAAiB,MAAelpD,GAAJrtD,EAAEqtD,GAAMlzD,KAAK6F,EAAE7F,KAAK,KAAKuO,EAAE2tG,eAAer2G,EAAE0I,EAAE4tG,OAAOC,QAAQ,IAAI,EAAsG,GAA5F,OAAOn9C,IAAItjD,EAAEzC,GAAG3K,EAAEytG,UAAUrgG,EAAEpN,EAAE0tG,gBAAgBr2G,EAAE2I,EAAE2tG,eAAej9C,EAA4B,QAA1B7lD,EAAE7K,EAAE4tG,OAAOR,aAAwB,CAACptG,EAAE6K,EAAE,GAAG2tD,GAAGx4D,EAAEiuG,KAAKjuG,EAAEA,EAAEvO,WAAWuO,IAAI6K,EAAE,MAAM,OAAOsC,IAAInN,EAAE4tG,OAAOf,MAAM,GAAGzhG,IAAIotD,EAAE5tD,EAAEiiG,MAAMr0C,EAAE5tD,EAAEknF,cAAcnnF,CAAC,CAAC,CAC9V,SAAS2jG,GAAG1jG,EAAEC,EAAEI,GAA8B,GAA3BL,EAAEC,EAAEijG,QAAQjjG,EAAEijG,QAAQ,KAAQ,OAAOljG,EAAE,IAAIC,EAAE,EAAEA,EAAED,EAAE1b,OAAO2b,IAAI,CAAC,IAAIK,EAAEN,EAAEC,GAAG7K,EAAEkL,EAAEmG,SAAS,GAAG,OAAOrR,EAAE,CAAqB,GAApBkL,EAAEmG,SAAS,KAAKnG,EAAED,EAAK,oBAAoBjL,EAAE,MAAMlM,MAAMgvE,EAAE,IAAI9iE,IAAIA,EAAEtP,KAAKwa,EAAE,CAAC,CAAC,CAAC,IAAIqjG,IAAI,IAAI1oB,EAAG2oB,WAAWC,KAAK,SAASC,GAAG9jG,EAAEC,EAAEI,EAAEC,GAA8BD,EAAE,QAAXA,EAAEA,EAAEC,EAAtBL,EAAED,EAAEknF,sBAAmC,IAAS7mF,EAAEJ,EAAE29E,EAAE,CAAC,EAAE39E,EAAEI,GAAGL,EAAEknF,cAAc7mF,EAAE,IAAIL,EAAEiiG,QAAQjiG,EAAE4iG,YAAYC,UAAUxiG,EAAE,CAClX,IAAI0jG,GAAG,CAACv0G,UAAU,SAASwQ,GAAG,SAAOA,EAAEA,EAAEgkG,kBAAiBnd,GAAG7mF,KAAKA,CAAI,EAAEikG,gBAAgB,SAASjkG,EAAEC,EAAEI,GAAGL,EAAEA,EAAEgkG,gBAAgB,IAAI1jG,EAAEwZ,KAAI1kB,EAAE8uG,GAAGlkG,GAAGuC,EAAE85C,GAAG/7C,EAAElL,GAAGmN,EAAE+rB,QAAQruB,OAAE,IAASI,GAAG,OAAOA,IAAIkC,EAAEkE,SAASpG,GAAe,QAAZJ,EAAEqjG,GAAGtjG,EAAEuC,EAAEnN,MAAc+uG,GAAGlkG,EAAED,EAAE5K,EAAEkL,GAAGijG,GAAGtjG,EAAED,EAAE5K,GAAG,EAAEgvG,oBAAoB,SAASpkG,EAAEC,EAAEI,GAAGL,EAAEA,EAAEgkG,gBAAgB,IAAI1jG,EAAEwZ,KAAI1kB,EAAE8uG,GAAGlkG,GAAGuC,EAAE85C,GAAG/7C,EAAElL,GAAGmN,EAAEzU,IAAI,EAAEyU,EAAE+rB,QAAQruB,OAAE,IAASI,GAAG,OAAOA,IAAIkC,EAAEkE,SAASpG,GAAe,QAAZJ,EAAEqjG,GAAGtjG,EAAEuC,EAAEnN,MAAc+uG,GAAGlkG,EAAED,EAAE5K,EAAEkL,GAAGijG,GAAGtjG,EAAED,EAAE5K,GAAG,EAAEivG,mBAAmB,SAASrkG,EAAEC,GAAGD,EAAEA,EAAEgkG,gBAAgB,IAAI3jG,EAAEyZ,KAAIxZ,EACnf4jG,GAAGlkG,GAAG5K,EAAEinD,GAAGh8C,EAAEC,GAAGlL,EAAEtH,IAAI,OAAE,IAASmS,GAAG,OAAOA,IAAI7K,EAAEqR,SAASxG,GAAe,QAAZA,EAAEqjG,GAAGtjG,EAAE5K,EAAEkL,MAAc6jG,GAAGlkG,EAAED,EAAEM,EAAED,GAAGkjG,GAAGtjG,EAAED,EAAEM,GAAG,GAAG,SAASgkG,GAAGtkG,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,EAAEqrD,GAAiB,MAAM,oBAApB5tD,EAAEA,EAAEylF,WAAsC8e,sBAAsBvkG,EAAEukG,sBAAsBjkG,EAAEiC,EAAEqrD,IAAG3tD,EAAE9a,YAAW8a,EAAE9a,UAAUq/G,wBAAsB3N,GAAGx2F,EAAEC,KAAKu2F,GAAGzhG,EAAEmN,GAAK,CAC1S,SAASkiG,GAAGzkG,EAAEC,EAAEI,GAAG,IAAIC,GAAE,EAAGlL,EAAE0oG,GAAOv7F,EAAEtC,EAAEykG,YAA2W,MAA/V,kBAAkBniG,GAAG,OAAOA,EAAEA,EAAE4/F,GAAG5/F,IAAInN,EAAEipG,GAAGp+F,GAAG+9F,GAAG5tC,GAAEplE,QAAyBuX,GAAGjC,EAAE,QAAtBA,EAAEL,EAAEi+F,oBAA4B,IAAS59F,GAAG29F,GAAGj+F,EAAE5K,GAAG0oG,IAAI79F,EAAE,IAAIA,EAAEI,EAAEkC,GAAGvC,EAAEknF,cAAc,OAAOjnF,EAAEP,YAAO,IAASO,EAAEP,MAAMO,EAAEP,MAAM,KAAKO,EAAE0kG,QAAQZ,GAAG/jG,EAAEylF,UAAUxlF,EAAEA,EAAE+jG,gBAAgBhkG,EAAEM,KAAIN,EAAEA,EAAEylF,WAAY0Y,4CAA4C/oG,EAAE4K,EAAEo+F,0CAA0C77F,GAAUtC,CAAC,CAC5Z,SAAS2kG,GAAG5kG,EAAEC,EAAEI,EAAEC,GAAGN,EAAEC,EAAEP,MAAM,oBAAoBO,EAAE4kG,2BAA2B5kG,EAAE4kG,0BAA0BxkG,EAAEC,GAAG,oBAAoBL,EAAE6kG,kCAAkC7kG,EAAE6kG,iCAAiCzkG,EAAEC,GAAGL,EAAEP,QAAQM,GAAG+jG,GAAGK,oBAAoBnkG,EAAEA,EAAEP,MAAM,KAAK,CACpQ,SAASqlG,GAAG/kG,EAAEC,EAAEI,EAAEC,GAAG,IAAIlL,EAAE4K,EAAEylF,UAAUrwF,EAAExM,MAAMyX,EAAEjL,EAAEsK,MAAMM,EAAEknF,cAAc9xF,EAAEyuG,KAAKF,GAAGhB,GAAG3iG,GAAG,IAAIuC,EAAEtC,EAAEykG,YAAY,kBAAkBniG,GAAG,OAAOA,EAAEnN,EAAEu9B,QAAQwvE,GAAG5/F,IAAIA,EAAE87F,GAAGp+F,GAAG+9F,GAAG5tC,GAAEplE,QAAQoK,EAAEu9B,QAAQsrE,GAAGj+F,EAAEuC,IAAInN,EAAEsK,MAAMM,EAAEknF,cAA2C,oBAA7B3kF,EAAEtC,EAAE+kG,4BAAiDlB,GAAG9jG,EAAEC,EAAEsC,EAAElC,GAAGjL,EAAEsK,MAAMM,EAAEknF,eAAe,oBAAoBjnF,EAAE+kG,0BAA0B,oBAAoB5vG,EAAE6vG,yBAAyB,oBAAoB7vG,EAAE8vG,2BAA2B,oBAAoB9vG,EAAE+vG,qBAAqBllG,EAAE7K,EAAEsK,MACrf,oBAAoBtK,EAAE+vG,oBAAoB/vG,EAAE+vG,qBAAqB,oBAAoB/vG,EAAE8vG,2BAA2B9vG,EAAE8vG,4BAA4BjlG,IAAI7K,EAAEsK,OAAOqkG,GAAGK,oBAAoBhvG,EAAEA,EAAEsK,MAAM,MAAM+jG,GAAGzjG,EAAEK,EAAEjL,EAAEkL,GAAGlL,EAAEsK,MAAMM,EAAEknF,eAAe,oBAAoB9xF,EAAEgwG,oBAAoBplG,EAAEgnF,OAAO,QAAQ,CACpS,SAASqe,GAAGrlG,EAAEC,EAAEI,GAAW,GAAG,QAAXL,EAAEK,EAAEhV,MAAiB,oBAAoB2U,GAAG,kBAAkBA,EAAE,CAAC,GAAGK,EAAEilG,OAAO,CAAY,GAAXjlG,EAAEA,EAAEilG,OAAY,CAAC,GAAG,IAAIjlG,EAAEvS,IAAI,MAAM5E,MAAMgvE,EAAE,MAAM,IAAI53D,EAAED,EAAEolF,SAAS,CAAC,IAAInlF,EAAE,MAAMpX,MAAMgvE,EAAE,IAAIl4D,IAAI,IAAI5K,EAAEkL,EAAEiC,EAAE,GAAGvC,EAAE,OAAG,OAAOC,GAAG,OAAOA,EAAE5U,KAAK,oBAAoB4U,EAAE5U,KAAK4U,EAAE5U,IAAIk6G,aAAahjG,EAAStC,EAAE5U,KAAI4U,EAAE,SAASD,GAAG,IAAIC,EAAE7K,EAAEyuG,KAAK5jG,IAAI0jG,KAAK1jG,EAAE7K,EAAEyuG,KAAK,CAAC,GAAG,OAAO7jG,SAASC,EAAEsC,GAAGtC,EAAEsC,GAAGvC,CAAC,EAAEC,EAAEslG,WAAWhjG,EAAStC,EAAC,CAAC,GAAG,kBAAkBD,EAAE,MAAM9W,MAAMgvE,EAAE,MAAM,IAAI73D,EAAEilG,OAAO,MAAMp8G,MAAMgvE,EAAE,IAAIl4D,GAAI,CAAC,OAAOA,CAAC,CACre,SAASwlG,GAAGxlG,EAAEC,GAAuC,MAApCD,EAAEvc,OAAO0B,UAAUiC,SAAStB,KAAKma,GAAS/W,MAAMgvE,EAAE,GAAG,oBAAoBl4D,EAAE,qBAAqBvc,OAAOD,KAAKyc,GAAGkT,KAAK,MAAM,IAAInT,GAAI,CAAC,SAASylG,GAAGzlG,GAAiB,OAAOC,EAAfD,EAAEs+E,OAAet+E,EAAEq+E,SAAS,CACrM,SAASqnB,GAAG1lG,GAAG,SAASC,EAAEA,EAAEI,GAAG,GAAGL,EAAE,CAAC,IAAIM,EAAEL,EAAEogG,UAAU,OAAO//F,GAAGL,EAAEogG,UAAU,CAAChgG,GAAGJ,EAAE+mF,OAAO,IAAI1mF,EAAEtc,KAAKqc,EAAE,CAAC,CAAC,SAASA,EAAEA,EAAEC,GAAG,IAAIN,EAAE,OAAO,KAAK,KAAK,OAAOM,GAAGL,EAAEI,EAAEC,GAAGA,EAAEA,EAAEgnF,QAAQ,OAAO,IAAI,CAAC,SAAShnF,EAAEN,EAAEC,GAAG,IAAID,EAAE,IAAI89D,IAAI,OAAO79D,GAAG,OAAOA,EAAExb,IAAIub,EAAEX,IAAIY,EAAExb,IAAIwb,GAAGD,EAAEX,IAAIY,EAAEwT,MAAMxT,GAAGA,EAAEA,EAAEqnF,QAAQ,OAAOtnF,CAAC,CAAC,SAAS5K,EAAE4K,EAAEC,GAAsC,OAAnCD,EAAE2lG,GAAG3lG,EAAEC,IAAKwT,MAAM,EAAEzT,EAAEsnF,QAAQ,KAAYtnF,CAAC,CAAC,SAASuC,EAAEtC,EAAEI,EAAEC,GAAa,OAAVL,EAAEwT,MAAMnT,EAAMN,EAA6C,QAAjBM,EAAEL,EAAE6mF,YAA6BxmF,EAAEA,EAAEmT,OAAQpT,GAAGJ,EAAE+mF,OAAO,EAAE3mF,GAAGC,GAAEL,EAAE+mF,OAAO,EAAS3mF,IAArGJ,EAAE+mF,OAAO,QAAQ3mF,EAAqF,CAAC,SAASutD,EAAE3tD,GACzd,OAD4dD,GAC7f,OAAOC,EAAE6mF,YAAY7mF,EAAE+mF,OAAO,GAAU/mF,CAAC,CAAC,SAAS85C,EAAE/5C,EAAEC,EAAEI,EAAEC,GAAG,OAAG,OAAOL,GAAG,IAAIA,EAAEnS,MAAWmS,EAAE2lG,GAAGvlG,EAAEL,EAAE2d,KAAKrd,IAAKymF,OAAO/mF,EAAEC,KAAEA,EAAE7K,EAAE6K,EAAEI,IAAK0mF,OAAO/mF,EAASC,EAAC,CAAC,SAASuC,EAAExC,EAAEC,EAAEI,EAAEC,GAAG,IAAIiC,EAAElC,EAAE7N,KAAK,OAAG+P,IAAIu6E,EAAUh3B,EAAE9lD,EAAEC,EAAEI,EAAEzX,MAAMsG,SAASoR,EAAED,EAAE5b,KAAQ,OAAOwb,IAAIA,EAAElW,cAAcwY,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEgzD,WAAWgoB,GAAIkoB,GAAGljG,KAAKtC,EAAEzN,QAAa8N,EAAElL,EAAE6K,EAAEI,EAAEzX,QAASyC,IAAIg6G,GAAGrlG,EAAEC,EAAEI,GAAGC,EAAEymF,OAAO/mF,EAAEM,KAAEA,EAAEulG,GAAGxlG,EAAE7N,KAAK6N,EAAE5b,IAAI4b,EAAEzX,MAAM,KAAKoX,EAAE2d,KAAKrd,IAAKjV,IAAIg6G,GAAGrlG,EAAEC,EAAEI,GAAGC,EAAEymF,OAAO/mF,EAASM,EAAC,CAAC,SAAS7T,EAAEuT,EAAEC,EAAEI,EAAEC,GAAG,OAAG,OAAOL,GAAG,IAAIA,EAAEnS,KACjfmS,EAAEwlF,UAAUuG,gBAAgB3rF,EAAE2rF,eAAe/rF,EAAEwlF,UAAU5pB,iBAAiBx7D,EAAEw7D,iBAAsB57D,EAAE6lG,GAAGzlG,EAAEL,EAAE2d,KAAKrd,IAAKymF,OAAO/mF,EAAEC,KAAEA,EAAE7K,EAAE6K,EAAEI,EAAEnR,UAAU,KAAM63F,OAAO/mF,EAASC,EAAC,CAAC,SAAS6lD,EAAE9lD,EAAEC,EAAEI,EAAEC,EAAEiC,GAAG,OAAG,OAAOtC,GAAG,IAAIA,EAAEnS,MAAWmS,EAAE8lG,GAAG1lG,EAAEL,EAAE2d,KAAKrd,EAAEiC,IAAKwkF,OAAO/mF,EAAEC,KAAEA,EAAE7K,EAAE6K,EAAEI,IAAK0mF,OAAO/mF,EAASC,EAAC,CAAC,SAASF,EAAEC,EAAEC,EAAEI,GAAG,GAAG,kBAAkBJ,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAOA,EAAE2lG,GAAG,GAAG3lG,EAAED,EAAE2d,KAAKtd,IAAK0mF,OAAO/mF,EAAEC,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEs1D,UAAU,KAAKqnB,EAAG,OAAOv8E,EAAEwlG,GAAG5lG,EAAEzN,KAAKyN,EAAExb,IAAIwb,EAAErX,MAAM,KAAKoX,EAAE2d,KAAKtd,IACjfhV,IAAIg6G,GAAGrlG,EAAE,KAAKC,GAAGI,EAAE0mF,OAAO/mF,EAAEK,EAAE,KAAKw8E,EAAG,OAAO58E,EAAE6lG,GAAG7lG,EAAED,EAAE2d,KAAKtd,IAAK0mF,OAAO/mF,EAAEC,EAAE,KAAKs9E,EAAiB,OAAOx9E,EAAEC,GAAEM,EAAnBL,EAAEq+E,OAAmBr+E,EAAEo+E,UAAUh+E,GAAG,GAAGu/E,GAAG3/E,IAAIy9E,EAAGz9E,GAAG,OAAOA,EAAE8lG,GAAG9lG,EAAED,EAAE2d,KAAKtd,EAAE,OAAQ0mF,OAAO/mF,EAAEC,EAAEulG,GAAGxlG,EAAEC,EAAE,CAAC,OAAO,IAAI,CAAC,SAASvT,EAAEsT,EAAEC,EAAEI,EAAEC,GAAG,IAAIlL,EAAE,OAAO6K,EAAEA,EAAExb,IAAI,KAAK,GAAG,kBAAkB4b,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAO,OAAOjL,EAAE,KAAK2kD,EAAE/5C,EAAEC,EAAE,GAAGI,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEk1D,UAAU,KAAKqnB,EAAG,OAAOv8E,EAAE5b,MAAM2Q,EAAEoN,EAAExC,EAAEC,EAAEI,EAAEC,GAAG,KAAK,KAAKu8E,EAAG,OAAOx8E,EAAE5b,MAAM2Q,EAAE3I,EAAEuT,EAAEC,EAAEI,EAAEC,GAAG,KAAK,KAAKi9E,EAAG,OAAiB7wF,EAAEsT,EACpfC,GADwe7K,EAAEiL,EAAEi+E,OACxej+E,EAAEg+E,UAAU/9E,GAAG,GAAGs/E,GAAGv/E,IAAIq9E,EAAGr9E,GAAG,OAAO,OAAOjL,EAAE,KAAK0wD,EAAE9lD,EAAEC,EAAEI,EAAEC,EAAE,MAAMklG,GAAGxlG,EAAEK,EAAE,CAAC,OAAO,IAAI,CAAC,SAASwoD,EAAE7oD,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,GAAG,kBAAkBkL,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAwBy5C,EAAE95C,EAAnBD,EAAEA,EAAE7I,IAAIkJ,IAAI,KAAW,GAAGC,EAAElL,GAAG,GAAG,kBAAkBkL,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEi1D,UAAU,KAAKqnB,EAAG,OAA2Cp6E,EAAEvC,EAAtCD,EAAEA,EAAE7I,IAAI,OAAOmJ,EAAE7b,IAAI4b,EAAEC,EAAE7b,MAAM,KAAW6b,EAAElL,GAAG,KAAKynF,EAAG,OAA2CpwF,EAAEwT,EAAtCD,EAAEA,EAAE7I,IAAI,OAAOmJ,EAAE7b,IAAI4b,EAAEC,EAAE7b,MAAM,KAAW6b,EAAElL,GAAG,KAAKmoF,EAAiB,OAAO10B,EAAE7oD,EAAEC,EAAEI,GAAEkC,EAAvBjC,EAAEg+E,OAAuBh+E,EAAE+9E,UAAUjpF,GAAG,GAAGwqF,GAAGt/E,IAAIo9E,EAAGp9E,GAAG,OAAwBwlD,EAAE7lD,EAAnBD,EAAEA,EAAE7I,IAAIkJ,IAAI,KAAWC,EAAElL,EAAE,MAAMowG,GAAGvlG,EAAEK,EAAE,CAAC,OAAO,IAAI,CAC9f,SAASnZ,EAAEiO,EAAEw4D,EAAE7T,EAAEv3C,GAAG,IAAI,IAAI/V,EAAE,KAAKq5D,EAAE,KAAKxiD,EAAEsqD,EAAEtrD,EAAEsrD,EAAE,EAAE/lE,EAAE,KAAK,OAAOyb,GAAGhB,EAAEy3C,EAAEz1D,OAAOge,IAAI,CAACgB,EAAEmQ,MAAMnR,GAAGza,EAAEyb,EAAEA,EAAE,MAAMzb,EAAEyb,EAAEgkF,QAAQ,IAAIngG,EAAEuF,EAAE0I,EAAEkO,EAAEy2C,EAAEz3C,GAAGE,GAAG,GAAG,OAAOrb,EAAE,CAAC,OAAOmc,IAAIA,EAAEzb,GAAG,KAAK,CAACmY,GAAGsD,GAAG,OAAOnc,EAAE2/F,WAAW7mF,EAAE7K,EAAEkO,GAAGsqD,EAAErrD,EAAEpb,EAAEymE,EAAEtrD,GAAG,OAAOwjD,EAAEr5D,EAAEtF,EAAE2+D,EAAEwhC,QAAQngG,EAAE2+D,EAAE3+D,EAAEmc,EAAEzb,CAAC,CAAC,GAAGya,IAAIy3C,EAAEz1D,OAAO,OAAO+b,EAAEjL,EAAEkO,GAAG28F,IAAGN,GAAGvqG,EAAEkN,GAAG7V,EAAE,GAAG,OAAO6W,EAAE,CAAC,KAAKhB,EAAEy3C,EAAEz1D,OAAOge,IAAkB,QAAdgB,EAAEvD,EAAE3K,EAAE2kD,EAAEz3C,GAAGE,MAAcorD,EAAErrD,EAAEe,EAAEsqD,EAAEtrD,GAAG,OAAOwjD,EAAEr5D,EAAE6W,EAAEwiD,EAAEwhC,QAAQhkF,EAAEwiD,EAAExiD,GAAc,OAAX28F,IAAGN,GAAGvqG,EAAEkN,GAAU7V,CAAC,CAAC,IAAI6W,EAAEhD,EAAElL,EAAEkO,GAAGhB,EAAEy3C,EAAEz1D,OAAOge,IAAsB,QAAlBza,EAAEghE,EAAEvlD,EAAElO,EAAEkN,EAAEy3C,EAAEz3C,GAAGE,MAAcxC,GAAG,OAAOnY,EAAEi/F,WAAWxjF,EAAEwY,OAAO,OACvfj0B,EAAEpD,IAAI6d,EAAEza,EAAEpD,KAAKmpE,EAAErrD,EAAE1a,EAAE+lE,EAAEtrD,GAAG,OAAOwjD,EAAEr5D,EAAE5E,EAAEi+D,EAAEwhC,QAAQz/F,EAAEi+D,EAAEj+D,GAAuD,OAApDmY,GAAGsD,EAAE9e,SAAQ,SAASwb,GAAG,OAAOC,EAAE7K,EAAE4K,EAAE,IAAGigG,IAAGN,GAAGvqG,EAAEkN,GAAU7V,CAAC,CAAC,SAAS0T,EAAE/K,EAAEw4D,EAAE7T,EAAEv3C,GAAG,IAAI/V,EAAEixF,EAAG3jC,GAAG,GAAG,oBAAoBttD,EAAE,MAAMvD,MAAMgvE,EAAE,MAAkB,GAAG,OAAfne,EAAEttD,EAAE3G,KAAKi0D,IAAc,MAAM7wD,MAAMgvE,EAAE,MAAM,IAAI,IAAI50D,EAAE7W,EAAE,KAAKq5D,EAAE8H,EAAEtrD,EAAEsrD,EAAE,EAAE/lE,EAAE,KAAKV,EAAE4yD,EAAElzD,OAAO,OAAOi/D,IAAI3+D,EAAEL,KAAKwb,IAAInb,EAAE4yD,EAAElzD,OAAO,CAACi/D,EAAEryC,MAAMnR,GAAGza,EAAEi+D,EAAEA,EAAE,MAAMj+D,EAAEi+D,EAAEwhC,QAAQ,IAAInnF,EAAEzT,EAAE0I,EAAE0wD,EAAE3+D,EAAE/B,MAAMod,GAAG,GAAG,OAAOrC,EAAE,CAAC,OAAO2lD,IAAIA,EAAEj+D,GAAG,KAAK,CAACmY,GAAG8lD,GAAG,OAAO3lD,EAAE2mF,WAAW7mF,EAAE7K,EAAE0wD,GAAG8H,EAAErrD,EAAEpC,EAAEytD,EAAEtrD,GAAG,OAAOgB,EAAE7W,EAAE0T,EAAEmD,EAAEgkF,QAAQnnF,EAAEmD,EAAEnD,EAAE2lD,EAAEj+D,CAAC,CAAC,GAAGV,EAAEL,KAAK,OAAOuZ,EAAEjL,EACzf0wD,GAAGm6C,IAAGN,GAAGvqG,EAAEkN,GAAG7V,EAAE,GAAG,OAAOq5D,EAAE,CAAC,MAAM3+D,EAAEL,KAAKwb,IAAInb,EAAE4yD,EAAElzD,OAAwB,QAAjBM,EAAE4Y,EAAE3K,EAAEjO,EAAE/B,MAAMod,MAAcorD,EAAErrD,EAAEpb,EAAEymE,EAAEtrD,GAAG,OAAOgB,EAAE7W,EAAEtF,EAAEmc,EAAEgkF,QAAQngG,EAAEmc,EAAEnc,GAAc,OAAX84G,IAAGN,GAAGvqG,EAAEkN,GAAU7V,CAAC,CAAC,IAAIq5D,EAAExlD,EAAElL,EAAE0wD,IAAI3+D,EAAEL,KAAKwb,IAAInb,EAAE4yD,EAAElzD,OAA4B,QAArBM,EAAE0hE,EAAE/C,EAAE1wD,EAAEkN,EAAEnb,EAAE/B,MAAMod,MAAcxC,GAAG,OAAO7Y,EAAE2/F,WAAWhhC,EAAEhqC,OAAO,OAAO30B,EAAE1C,IAAI6d,EAAEnb,EAAE1C,KAAKmpE,EAAErrD,EAAEpb,EAAEymE,EAAEtrD,GAAG,OAAOgB,EAAE7W,EAAEtF,EAAEmc,EAAEgkF,QAAQngG,EAAEmc,EAAEnc,GAAuD,OAApD6Y,GAAG8lD,EAAEthE,SAAQ,SAASwb,GAAG,OAAOC,EAAE7K,EAAE4K,EAAE,IAAGigG,IAAGN,GAAGvqG,EAAEkN,GAAU7V,CAAC,CAG3T,OAH4T,SAAS0uG,EAAEn7F,EAAEM,EAAEiC,EAAEw3C,GAAkF,GAA/E,kBAAkBx3C,GAAG,OAAOA,GAAGA,EAAE/P,OAAOsqF,GAAI,OAAOv6E,EAAE9d,MAAM8d,EAAEA,EAAE3Z,MAAMsG,UAAa,kBAAkBqT,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEgzD,UAAU,KAAKqnB,EAAG58E,EAAE,CAAC,IAAI,IAAIwC,EAC7hBD,EAAE9d,IAAIgI,EAAE6T,EAAE,OAAO7T,GAAG,CAAC,GAAGA,EAAEhI,MAAM+d,EAAE,CAAU,IAATA,EAAED,EAAE/P,QAAYsqF,GAAI,GAAG,IAAIrwF,EAAEqB,IAAI,CAACuS,EAAEL,EAAEvT,EAAE66F,UAAShnF,EAAElL,EAAE3I,EAAE8V,EAAE3Z,MAAMsG,WAAY63F,OAAO/mF,EAAEA,EAAEM,EAAE,MAAMN,CAAC,OAAO,GAAGvT,EAAE1C,cAAcyY,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAE+yD,WAAWgoB,GAAIkoB,GAAGjjG,KAAK/V,EAAE+F,KAAK,CAAC6N,EAAEL,EAAEvT,EAAE66F,UAAShnF,EAAElL,EAAE3I,EAAE8V,EAAE3Z,QAASyC,IAAIg6G,GAAGrlG,EAAEvT,EAAE8V,GAAGjC,EAAEymF,OAAO/mF,EAAEA,EAAEM,EAAE,MAAMN,CAAC,CAACK,EAAEL,EAAEvT,GAAG,KAAK,CAAMwT,EAAED,EAAEvT,GAAGA,EAAEA,EAAE66F,OAAO,CAAC/kF,EAAE/P,OAAOsqF,IAAIx8E,EAAEylG,GAAGxjG,EAAE3Z,MAAMsG,SAAS8Q,EAAE2d,KAAKo8B,EAAEx3C,EAAE9d,MAAOsiG,OAAO/mF,EAAEA,EAAEM,KAAIy5C,EAAE8rD,GAAGtjG,EAAE/P,KAAK+P,EAAE9d,IAAI8d,EAAE3Z,MAAM,KAAKoX,EAAE2d,KAAKo8B,IAAK1uD,IAAIg6G,GAAGrlG,EAAEM,EAAEiC,GAAGw3C,EAAEgtC,OAAO/mF,EAAEA,EAAE+5C,EAAE,CAAC,OAAO6T,EAAE5tD,GAAG,KAAK68E,EAAG78E,EAAE,CAAC,IAAIvT,EAAE8V,EAAE9d,IAAI,OACzf6b,GAAG,CAAC,GAAGA,EAAE7b,MAAMgI,EAAC,CAAC,GAAG,IAAI6T,EAAExS,KAAKwS,EAAEmlF,UAAUuG,gBAAgBzpF,EAAEypF,eAAe1rF,EAAEmlF,UAAU5pB,iBAAiBt5D,EAAEs5D,eAAe,CAACx7D,EAAEL,EAAEM,EAAEgnF,UAAShnF,EAAElL,EAAEkL,EAAEiC,EAAErT,UAAU,KAAM63F,OAAO/mF,EAAEA,EAAEM,EAAE,MAAMN,CAAC,CAAMK,EAAEL,EAAEM,GAAG,KAAM,CAAKL,EAAED,EAAEM,GAAGA,EAAEA,EAAEgnF,OAAO,EAAChnF,EAAEwlG,GAAGvjG,EAAEvC,EAAE2d,KAAKo8B,IAAKgtC,OAAO/mF,EAAEA,EAAEM,CAAC,CAAC,OAAOstD,EAAE5tD,GAAG,KAAKu9E,EAAG,OAAiB4d,EAAEn7F,EAAEM,GAAd7T,EAAE8V,EAAE+7E,OAAc/7E,EAAE87E,UAAUtkC,GAAG,GAAG6lC,GAAGr9E,GAAG,OAAOpb,EAAE6Y,EAAEM,EAAEiC,EAAEw3C,GAAG,GAAG2jC,EAAGn7E,GAAG,OAAOpC,EAAEH,EAAEM,EAAEiC,EAAEw3C,GAAGyrD,GAAGxlG,EAAEuC,EAAE,CAAC,MAAM,kBAAkBA,GAAG,KAAKA,GAAG,kBAAkBA,GAAGA,EAAE,GAAGA,EAAE,OAAOjC,GAAG,IAAIA,EAAExS,KAAKuS,EAAEL,EAAEM,EAAEgnF,UAAShnF,EAAElL,EAAEkL,EAAEiC,IAAKwkF,OAAO/mF,EAAEA,EAAEM,IACnfD,EAAEL,EAAEM,IAAGA,EAAEslG,GAAGrjG,EAAEvC,EAAE2d,KAAKo8B,IAAKgtC,OAAO/mF,EAAEA,EAAEM,GAAGstD,EAAE5tD,IAAIK,EAAEL,EAAEM,EAAE,CAAS,CAAC,IAAI0lG,GAAGN,IAAG,GAAIO,GAAGP,IAAG,GAAIQ,GAAG,CAAC,EAAEC,GAAGvI,GAAGsI,IAAIE,GAAGxI,GAAGsI,IAAIG,GAAGzI,GAAGsI,IAAI,SAASI,GAAGtmG,GAAG,GAAGA,IAAIkmG,GAAG,MAAMh9G,MAAMgvE,EAAE,MAAM,OAAOl4D,CAAC,CAAC,SAASumG,GAAGvmG,EAAEC,GAAyC,OAAtC49F,GAAEwI,GAAGpmG,GAAG49F,GAAEuI,GAAGpmG,GAAG69F,GAAEsI,GAAGD,IAAIlmG,EAAEC,EAAE84E,UAAmB,KAAK,EAAE,KAAK,GAAG94E,GAAGA,EAAEA,EAAEsiD,iBAAiBtiD,EAAEugF,aAAaH,GAAG,KAAK,IAAI,MAAM,QAAkEpgF,EAAEogF,GAArCpgF,GAAvBD,EAAE,IAAIA,EAAEC,EAAE8gD,WAAW9gD,GAAMugF,cAAc,KAAKxgF,EAAEA,EAAEohD,SAAkBwX,GAAEutC,IAAItI,GAAEsI,GAAGlmG,EAAE,CAAC,SAASumG,KAAK5tC,GAAEutC,IAAIvtC,GAAEwtC,IAAIxtC,GAAEytC,GAAG,CACnb,SAASI,GAAGzmG,GAAGsmG,GAAGD,GAAGr7G,SAAS,IAAIiV,EAAEqmG,GAAGH,GAAGn7G,SAAaqV,EAAEggF,GAAGpgF,EAAED,EAAExN,MAAMyN,IAAII,IAAIw9F,GAAEuI,GAAGpmG,GAAG69F,GAAEsI,GAAG9lG,GAAG,CAAC,SAASqmG,GAAG1mG,GAAGomG,GAAGp7G,UAAUgV,IAAI44D,GAAEutC,IAAIvtC,GAAEwtC,IAAI,CAAC,IAAI3sF,GAAEmkF,GAAG,GACrJ,SAAS+I,GAAG3mG,GAAG,IAAI,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAG,KAAKA,EAAEnS,IAAI,CAAC,IAAIuS,EAAEJ,EAAEinF,cAAc,GAAG,OAAO7mF,IAAmB,QAAfA,EAAEA,EAAE8mF,aAAqB,OAAO9mF,EAAEjC,MAAM,OAAOiC,EAAEjC,MAAM,OAAO6B,CAAC,MAAM,GAAG,KAAKA,EAAEnS,UAAK,IAASmS,EAAE8gG,cAAc6F,aAAa,GAAG,KAAa,IAAR3mG,EAAE+mF,OAAW,OAAO/mF,OAAO,GAAG,OAAOA,EAAEohD,MAAM,CAACphD,EAAEohD,MAAM0lC,OAAO9mF,EAAEA,EAAEA,EAAEohD,MAAM,QAAQ,CAAC,GAAGphD,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAEqnF,SAAS,CAAC,GAAG,OAAOrnF,EAAE8mF,QAAQ9mF,EAAE8mF,SAAS/mF,EAAE,OAAO,KAAKC,EAAEA,EAAE8mF,MAAM,CAAC9mF,EAAEqnF,QAAQP,OAAO9mF,EAAE8mF,OAAO9mF,EAAEA,EAAEqnF,OAAO,CAAC,OAAO,IAAI,CAAC,IAAIuf,GAAG,GACrc,SAASC,KAAK,IAAI,IAAI9mG,EAAE,EAAEA,EAAE6mG,GAAGviH,OAAO0b,IAAI6mG,GAAG7mG,GAAG+mG,8BAA8B,KAAKF,GAAGviH,OAAO,CAAC,CAAC,IAAI0iH,GAAGtqB,EAAGuqB,uBAAuBC,GAAGxqB,EAAG+P,wBAAwB0a,GAAG,EAAE5sF,GAAE,KAAKi+C,GAAE,KAAK4uC,GAAE,KAAKC,IAAG,EAAGC,IAAG,EAAGC,GAAG,EAAEC,GAAG,EAAE,SAASC,KAAI,MAAMv+G,MAAMgvE,EAAE,KAAM,CAAC,SAASwvC,GAAG1nG,EAAEC,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAII,EAAE,EAAEA,EAAEJ,EAAE3b,QAAQ+b,EAAEL,EAAE1b,OAAO+b,IAAI,IAAIu2F,GAAG52F,EAAEK,GAAGJ,EAAEI,IAAI,OAAM,EAAG,OAAM,CAAE,CAChW,SAASsnG,GAAG3nG,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,GAAyH,GAAtH4kG,GAAG5kG,EAAEgY,GAAEta,EAAEA,EAAEinF,cAAc,KAAKjnF,EAAE2iG,YAAY,KAAK3iG,EAAEgiG,MAAM,EAAE+E,GAAGh8G,QAAQ,OAAOgV,GAAG,OAAOA,EAAEknF,cAAc0gB,GAAGC,GAAG7nG,EAAEK,EAAEC,EAAElL,GAAMkyG,GAAG,CAAC/kG,EAAE,EAAE,EAAE,CAAY,GAAX+kG,IAAG,EAAGC,GAAG,EAAK,IAAIhlG,EAAE,MAAMrZ,MAAMgvE,EAAE,MAAM31D,GAAG,EAAE6kG,GAAE5uC,GAAE,KAAKv4D,EAAE2iG,YAAY,KAAKoE,GAAGh8G,QAAQ88G,GAAG9nG,EAAEK,EAAEC,EAAElL,EAAE,OAAOkyG,GAAG,CAA+D,GAA9DN,GAAGh8G,QAAQ+8G,GAAG9nG,EAAE,OAAOu4D,IAAG,OAAOA,GAAE3xE,KAAKsgH,GAAG,EAAEC,GAAE5uC,GAAEj+C,GAAE,KAAK8sF,IAAG,EAAMpnG,EAAE,MAAM/W,MAAMgvE,EAAE,MAAM,OAAOl4D,CAAC,CAAC,SAASgoG,KAAK,IAAIhoG,EAAE,IAAIunG,GAAQ,OAALA,GAAG,EAASvnG,CAAC,CAC/Y,SAASioG,KAAK,IAAIjoG,EAAE,CAACknF,cAAc,KAAK2b,UAAU,KAAKqF,UAAU,KAAKC,MAAM,KAAKthH,KAAK,MAA8C,OAAxC,OAAOugH,GAAE7sF,GAAE2sE,cAAckgB,GAAEpnG,EAAEonG,GAAEA,GAAEvgH,KAAKmZ,EAASonG,EAAC,CAAC,SAASgB,KAAK,GAAG,OAAO5vC,GAAE,CAAC,IAAIx4D,EAAEua,GAAEusE,UAAU9mF,EAAE,OAAOA,EAAEA,EAAEknF,cAAc,IAAI,MAAMlnF,EAAEw4D,GAAE3xE,KAAK,IAAIoZ,EAAE,OAAOmnG,GAAE7sF,GAAE2sE,cAAckgB,GAAEvgH,KAAK,GAAG,OAAOoZ,EAAEmnG,GAAEnnG,EAAEu4D,GAAEx4D,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAM9W,MAAMgvE,EAAE,MAAUl4D,EAAE,CAACknF,eAAP1uB,GAAEx4D,GAAqBknF,cAAc2b,UAAUrqC,GAAEqqC,UAAUqF,UAAU1vC,GAAE0vC,UAAUC,MAAM3vC,GAAE2vC,MAAMthH,KAAK,MAAM,OAAOugH,GAAE7sF,GAAE2sE,cAAckgB,GAAEpnG,EAAEonG,GAAEA,GAAEvgH,KAAKmZ,CAAC,CAAC,OAAOonG,EAAC,CACje,SAASiB,GAAGroG,EAAEC,GAAG,MAAM,oBAAoBA,EAAEA,EAAED,GAAGC,CAAC,CACnD,SAASqoG,GAAGtoG,GAAG,IAAIC,EAAEmoG,KAAK/nG,EAAEJ,EAAEkoG,MAAM,GAAG,OAAO9nG,EAAE,MAAMnX,MAAMgvE,EAAE,MAAM73D,EAAEkoG,oBAAoBvoG,EAAE,IAAIM,EAAEk4D,GAAEpjE,EAAEkL,EAAE4nG,UAAU3lG,EAAElC,EAAE4iG,QAAQ,GAAG,OAAO1gG,EAAE,CAAC,GAAG,OAAOnN,EAAE,CAAC,IAAIw4D,EAAEx4D,EAAEvO,KAAKuO,EAAEvO,KAAK0b,EAAE1b,KAAK0b,EAAE1b,KAAK+mE,CAAC,CAACttD,EAAE4nG,UAAU9yG,EAAEmN,EAAElC,EAAE4iG,QAAQ,IAAI,CAAC,GAAG,OAAO7tG,EAAE,CAACmN,EAAEnN,EAAEvO,KAAKyZ,EAAEA,EAAEuiG,UAAU,IAAI9oD,EAAE6T,EAAE,KAAKprD,EAAE,KAAK/V,EAAE8V,EAAE,EAAE,CAAC,IAAIujD,EAAEr5D,EAAE42G,KAAK,IAAI8D,GAAGrhD,KAAKA,EAAE,OAAOtjD,IAAIA,EAAEA,EAAE3b,KAAK,CAACw8G,KAAK,EAAEmF,OAAO/7G,EAAE+7G,OAAOC,cAAch8G,EAAEg8G,cAAcC,WAAWj8G,EAAEi8G,WAAW7hH,KAAK,OAAOyZ,EAAE7T,EAAEg8G,cAAch8G,EAAEi8G,WAAW1oG,EAAEM,EAAE7T,EAAE+7G,YAAY,CAAC,IAAIzoG,EAAE,CAACsjG,KAAKv9C,EAAE0iD,OAAO/7G,EAAE+7G,OAAOC,cAAch8G,EAAEg8G,cACngBC,WAAWj8G,EAAEi8G,WAAW7hH,KAAK,MAAM,OAAO2b,GAAGu3C,EAAEv3C,EAAEzC,EAAE6tD,EAAEttD,GAAGkC,EAAEA,EAAE3b,KAAKkZ,EAAEwa,GAAE0nF,OAAOn8C,EAAEtlD,IAAIslD,CAAC,CAACr5D,EAAEA,EAAE5F,IAAI,OAAO,OAAO4F,GAAGA,IAAI8V,GAAG,OAAOC,EAAEorD,EAAEttD,EAAEkC,EAAE3b,KAAKkzD,EAAE68C,GAAGt2F,EAAEL,EAAEinF,iBAAiBgb,IAAG,GAAIjiG,EAAEinF,cAAc5mF,EAAEL,EAAE4iG,UAAUj1C,EAAE3tD,EAAEioG,UAAU1lG,EAAEnC,EAAEsoG,kBAAkBroG,CAAC,CAAiB,GAAG,QAAnBN,EAAEK,EAAEmiG,aAAwB,CAACptG,EAAE4K,EAAE,GAAGuC,EAAEnN,EAAEiuG,KAAK9oF,GAAE0nF,OAAO1/F,EAAE/B,IAAI+B,EAAEnN,EAAEA,EAAEvO,WAAWuO,IAAI4K,EAAE,MAAM,OAAO5K,IAAIiL,EAAE4hG,MAAM,GAAG,MAAM,CAAChiG,EAAEinF,cAAc7mF,EAAEuoG,SAAS,CAC9X,SAASC,GAAG7oG,GAAG,IAAIC,EAAEmoG,KAAK/nG,EAAEJ,EAAEkoG,MAAM,GAAG,OAAO9nG,EAAE,MAAMnX,MAAMgvE,EAAE,MAAM73D,EAAEkoG,oBAAoBvoG,EAAE,IAAIM,EAAED,EAAEuoG,SAASxzG,EAAEiL,EAAE4iG,QAAQ1gG,EAAEtC,EAAEinF,cAAc,GAAG,OAAO9xF,EAAE,CAACiL,EAAE4iG,QAAQ,KAAK,IAAIr1C,EAAEx4D,EAAEA,EAAEvO,KAAK,GAAG0b,EAAEvC,EAAEuC,EAAEqrD,EAAE46C,QAAQ56C,EAAEA,EAAE/mE,WAAW+mE,IAAIx4D,GAAGwhG,GAAGr0F,EAAEtC,EAAEinF,iBAAiBgb,IAAG,GAAIjiG,EAAEinF,cAAc3kF,EAAE,OAAOtC,EAAEioG,YAAYjoG,EAAE4iG,UAAUtgG,GAAGlC,EAAEsoG,kBAAkBpmG,CAAC,CAAC,MAAM,CAACA,EAAEjC,EAAE,CAAC,SAAS8mD,KAAK,CACpW,SAAS3mD,GAAGT,EAAEC,GAAG,IAAII,EAAEka,GAAEja,EAAE8nG,KAAKhzG,EAAE6K,IAAIsC,GAAGq0F,GAAGt2F,EAAE4mF,cAAc9xF,GAAsE,GAAnEmN,IAAIjC,EAAE4mF,cAAc9xF,EAAE8sG,IAAG,GAAI5hG,EAAEA,EAAE6nG,MAAMW,GAAGC,GAAGh5C,KAAK,KAAK1vD,EAAEC,EAAEN,GAAG,CAACA,IAAOM,EAAE0oG,cAAc/oG,GAAGsC,GAAG,OAAO6kG,IAAuB,EAApBA,GAAElgB,cAAcp5F,IAAM,CAAuD,GAAtDuS,EAAE2mF,OAAO,KAAKiiB,GAAG,EAAEC,GAAGn5C,KAAK,KAAK1vD,EAAEC,EAAElL,EAAE6K,QAAG,EAAO,MAAS,OAAOkpG,GAAE,MAAMjgH,MAAMgvE,EAAE,MAAM,KAAQ,GAAHivC,KAAQiC,GAAG/oG,EAAEJ,EAAE7K,EAAE,CAAC,OAAOA,CAAC,CAAC,SAASg0G,GAAGppG,EAAEC,EAAEI,GAAGL,EAAEgnF,OAAO,MAAMhnF,EAAE,CAACgpG,YAAY/oG,EAAE7a,MAAMib,GAAmB,QAAhBJ,EAAEsa,GAAEqoF,cAAsB3iG,EAAE,CAACopG,WAAW,KAAKC,OAAO,MAAM/uF,GAAEqoF,YAAY3iG,EAAEA,EAAEqpG,OAAO,CAACtpG,IAAgB,QAAXK,EAAEJ,EAAEqpG,QAAgBrpG,EAAEqpG,OAAO,CAACtpG,GAAGK,EAAErc,KAAKgc,EAAG,CAClf,SAASkpG,GAAGlpG,EAAEC,EAAEI,EAAEC,GAAGL,EAAE7a,MAAMib,EAAEJ,EAAE+oG,YAAY1oG,EAAEipG,GAAGtpG,IAAIupG,GAAGxpG,EAAE,CAAC,SAAS+oG,GAAG/oG,EAAEC,EAAEI,GAAG,OAAOA,GAAE,WAAWkpG,GAAGtpG,IAAIupG,GAAGxpG,EAAE,GAAE,CAAC,SAASupG,GAAGvpG,GAAG,IAAIC,EAAED,EAAEgpG,YAAYhpG,EAAEA,EAAE5a,MAAM,IAAI,IAAIib,EAAEJ,IAAI,OAAO22F,GAAG52F,EAAEK,EAAE,CAAC,MAAMC,GAAG,OAAM,CAAE,CAAC,CAAC,SAASkpG,GAAGxpG,GAAG,IAAIC,EAAEwiG,GAAGziG,EAAE,GAAG,OAAOC,GAAGkkG,GAAGlkG,EAAED,EAAE,GAAG,EAAE,CAClQ,SAASypG,GAAGzpG,GAAG,IAAIC,EAAEgoG,KAA8M,MAAzM,oBAAoBjoG,IAAIA,EAAEA,KAAKC,EAAEinF,cAAcjnF,EAAE4iG,UAAU7iG,EAAEA,EAAE,CAACijG,QAAQ,KAAKT,YAAY,KAAKP,MAAM,EAAE2G,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkB3oG,GAAGC,EAAEkoG,MAAMnoG,EAAEA,EAAEA,EAAE4oG,SAASc,GAAG35C,KAAK,KAAKx1C,GAAEva,GAAS,CAACC,EAAEinF,cAAclnF,EAAE,CAC5P,SAASipG,GAAGjpG,EAAEC,EAAEI,EAAEC,GAA8O,OAA3ON,EAAE,CAAClS,IAAIkS,EAAE/L,OAAOgM,EAAE9L,QAAQkM,EAAEspG,KAAKrpG,EAAEzZ,KAAK,MAAsB,QAAhBoZ,EAAEsa,GAAEqoF,cAAsB3iG,EAAE,CAACopG,WAAW,KAAKC,OAAO,MAAM/uF,GAAEqoF,YAAY3iG,EAAEA,EAAEopG,WAAWrpG,EAAEnZ,KAAKmZ,GAAmB,QAAfK,EAAEJ,EAAEopG,YAAoBppG,EAAEopG,WAAWrpG,EAAEnZ,KAAKmZ,GAAGM,EAAED,EAAExZ,KAAKwZ,EAAExZ,KAAKmZ,EAAEA,EAAEnZ,KAAKyZ,EAAEL,EAAEopG,WAAWrpG,GAAWA,CAAC,CAAC,SAAS4pG,KAAK,OAAOxB,KAAKlhB,aAAa,CAAC,SAAS2iB,GAAG7pG,EAAEC,EAAEI,EAAEC,GAAG,IAAIlL,EAAE6yG,KAAK1tF,GAAEysE,OAAOhnF,EAAE5K,EAAE8xF,cAAc+hB,GAAG,EAAEhpG,EAAEI,OAAE,OAAO,IAASC,EAAE,KAAKA,EAAE,CAC9Y,SAASwpG,GAAG9pG,EAAEC,EAAEI,EAAEC,GAAG,IAAIlL,EAAEgzG,KAAK9nG,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIiC,OAAE,EAAO,GAAG,OAAOi2D,GAAE,CAAC,IAAI5K,EAAE4K,GAAE0uB,cAA0B,GAAZ3kF,EAAEqrD,EAAEz5D,QAAW,OAAOmM,GAAGonG,GAAGpnG,EAAEstD,EAAE+7C,MAAmC,YAA5Bv0G,EAAE8xF,cAAc+hB,GAAGhpG,EAAEI,EAAEkC,EAAEjC,GAAU,CAACia,GAAEysE,OAAOhnF,EAAE5K,EAAE8xF,cAAc+hB,GAAG,EAAEhpG,EAAEI,EAAEkC,EAAEjC,EAAE,CAAC,SAASypG,GAAG/pG,EAAEC,GAAG,OAAO4pG,GAAG,QAAQ,EAAE7pG,EAAEC,EAAE,CAAC,SAAS6oG,GAAG9oG,EAAEC,GAAG,OAAO6pG,GAAG,KAAK,EAAE9pG,EAAEC,EAAE,CAAC,SAAS+pG,GAAGhqG,EAAEC,GAAG,OAAO6pG,GAAG,EAAE,EAAE9pG,EAAEC,EAAE,CAAC,SAASgqG,GAAGjqG,EAAEC,GAAG,OAAO6pG,GAAG,EAAE,EAAE9pG,EAAEC,EAAE,CAChX,SAASiqG,GAAGlqG,EAAEC,GAAG,MAAG,oBAAoBA,GAASD,EAAEA,IAAIC,EAAED,GAAG,WAAWC,EAAE,KAAK,GAAK,OAAOA,QAAG,IAASA,GAASD,EAAEA,IAAIC,EAAEjV,QAAQgV,EAAE,WAAWC,EAAEjV,QAAQ,IAAI,QAA1E,CAA2E,CAAC,SAASm/G,GAAGnqG,EAAEC,EAAEI,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE9S,OAAO,CAACyS,IAAI,KAAY8pG,GAAG,EAAE,EAAEI,GAAGn6C,KAAK,KAAK9vD,EAAED,GAAGK,EAAE,CAAC,SAAS+pG,KAAK,CAAC,SAASC,GAAGrqG,EAAEC,GAAG,IAAII,EAAE+nG,KAAKnoG,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIK,EAAED,EAAE6mF,cAAc,OAAG,OAAO5mF,GAAG,OAAOL,GAAGynG,GAAGznG,EAAEK,EAAE,IAAWA,EAAE,IAAGD,EAAE6mF,cAAc,CAAClnF,EAAEC,GAAUD,EAAC,CAC7Z,SAASsqG,GAAGtqG,EAAEC,GAAG,IAAII,EAAE+nG,KAAKnoG,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIK,EAAED,EAAE6mF,cAAc,OAAG,OAAO5mF,GAAG,OAAOL,GAAGynG,GAAGznG,EAAEK,EAAE,IAAWA,EAAE,IAAGN,EAAEA,IAAIK,EAAE6mF,cAAc,CAAClnF,EAAEC,GAAUD,EAAC,CAAC,SAASuqG,GAAGvqG,EAAEC,EAAEI,GAAG,OAAG,KAAQ,GAAH8mG,KAAcnnG,EAAE6iG,YAAY7iG,EAAE6iG,WAAU,EAAGX,IAAG,GAAIliG,EAAEknF,cAAc7mF,IAAEu2F,GAAGv2F,EAAEJ,KAAKI,EAAE0pF,KAAKxvE,GAAE0nF,OAAO5hG,EAAEG,IAAIH,EAAEL,EAAE6iG,WAAU,GAAW5iG,EAAC,CAAC,SAASuqG,GAAGxqG,EAAEC,GAAG,IAAII,EAAE+pF,GAAEA,GAAE,IAAI/pF,GAAG,EAAEA,EAAEA,EAAE,EAAEL,GAAE,GAAI,IAAIM,EAAE4mG,GAAGzrE,WAAWyrE,GAAGzrE,WAAW,CAAC,EAAE,IAAIz7B,GAAE,GAAIC,GAAG,CAAC,QAAQmqF,GAAE/pF,EAAE6mG,GAAGzrE,WAAWn7B,CAAC,CAAC,CAAC,SAASmqG,KAAK,OAAOrC,KAAKlhB,aAAa,CAC1d,SAASwjB,GAAG1qG,EAAEC,EAAEI,GAAG,IAAIC,EAAE4jG,GAAGlkG,GAAkE,GAA/DK,EAAE,CAACgjG,KAAK/iG,EAAEkoG,OAAOnoG,EAAEooG,eAAc,EAAGC,WAAW,KAAK7hH,KAAK,MAAS8jH,GAAG3qG,GAAG4qG,GAAG3qG,EAAEI,QAAQ,GAAiB,QAAdA,EAAEkiG,GAAGviG,EAAEC,EAAEI,EAAEC,IAAY,CAAW6jG,GAAG9jG,EAAEL,EAAEM,EAAXwZ,MAAgB+wF,GAAGxqG,EAAEJ,EAAEK,EAAE,CAAC,CAC/K,SAASopG,GAAG1pG,EAAEC,EAAEI,GAAG,IAAIC,EAAE4jG,GAAGlkG,GAAG5K,EAAE,CAACiuG,KAAK/iG,EAAEkoG,OAAOnoG,EAAEooG,eAAc,EAAGC,WAAW,KAAK7hH,KAAK,MAAM,GAAG8jH,GAAG3qG,GAAG4qG,GAAG3qG,EAAE7K,OAAO,CAAC,IAAImN,EAAEvC,EAAE8mF,UAAU,GAAG,IAAI9mF,EAAEiiG,QAAQ,OAAO1/F,GAAG,IAAIA,EAAE0/F,QAAiC,QAAxB1/F,EAAEtC,EAAEsoG,qBAA8B,IAAI,IAAI36C,EAAE3tD,EAAE0oG,kBAAkB5uD,EAAEx3C,EAAEqrD,EAAEvtD,GAAqC,GAAlCjL,EAAEqzG,eAAc,EAAGrzG,EAAEszG,WAAW3uD,EAAK68C,GAAG78C,EAAE6T,GAAG,CAAC,IAAIprD,EAAEvC,EAAEuiG,YAA+E,OAAnE,OAAOhgG,GAAGpN,EAAEvO,KAAKuO,EAAEktG,GAAGriG,KAAK7K,EAAEvO,KAAK2b,EAAE3b,KAAK2b,EAAE3b,KAAKuO,QAAG6K,EAAEuiG,YAAYptG,EAAQ,CAAC,CAAC,MAAM3I,GAAG,CAAwB,QAAd4T,EAAEkiG,GAAGviG,EAAEC,EAAE7K,EAAEkL,MAAoB6jG,GAAG9jG,EAAEL,EAAEM,EAAblL,EAAE0kB,MAAgB+wF,GAAGxqG,EAAEJ,EAAEK,GAAG,CAAC,CAC/c,SAASqqG,GAAG3qG,GAAG,IAAIC,EAAED,EAAE8mF,UAAU,OAAO9mF,IAAIua,IAAG,OAAOta,GAAGA,IAAIsa,EAAC,CAAC,SAASqwF,GAAG5qG,EAAEC,GAAGqnG,GAAGD,IAAG,EAAG,IAAIhnG,EAAEL,EAAEijG,QAAQ,OAAO5iG,EAAEJ,EAAEpZ,KAAKoZ,GAAGA,EAAEpZ,KAAKwZ,EAAExZ,KAAKwZ,EAAExZ,KAAKoZ,GAAGD,EAAEijG,QAAQhjG,CAAC,CAAC,SAAS4qG,GAAG7qG,EAAEC,EAAEI,GAAG,GAAG,KAAO,QAAFA,GAAW,CAAC,IAAIC,EAAEL,EAAEgiG,MAAwB5hG,GAAlBC,GAAGN,EAAEwpF,aAAkBvpF,EAAEgiG,MAAM5hG,EAAE8pF,GAAGnqF,EAAEK,EAAE,CAAC,CAC9P,IAAI0nG,GAAG,CAAC+C,YAAY3I,GAAG4I,YAAYtD,GAAEx3G,WAAWw3G,GAAE18G,UAAU08G,GAAEuD,oBAAoBvD,GAAEwD,mBAAmBxD,GAAE1zG,gBAAgB0zG,GAAEr4G,QAAQq4G,GAAEyD,WAAWzD,GAAE38G,OAAO28G,GAAEn4G,SAASm4G,GAAE0D,cAAc1D,GAAE2D,iBAAiB3D,GAAE4D,cAAc5D,GAAE6D,iBAAiB7D,GAAE8D,qBAAqB9D,GAAE+D,MAAM/D,GAAEgE,0BAAyB,GAAI7D,GAAG,CAACkD,YAAY3I,GAAG4I,YAAY,SAAS/qG,EAAEC,GAA4C,OAAzCgoG,KAAK/gB,cAAc,CAAClnF,OAAE,IAASC,EAAE,KAAKA,GAAUD,CAAC,EAAE/P,WAAWkyG,GAAGp3G,UAAUg/G,GAAGiB,oBAAoB,SAAShrG,EAAEC,EAAEI,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE9S,OAAO,CAACyS,IAAI,KAAY6pG,GAAG,QAC3f,EAAEK,GAAGn6C,KAAK,KAAK9vD,EAAED,GAAGK,EAAE,EAAEtM,gBAAgB,SAASiM,EAAEC,GAAG,OAAO4pG,GAAG,QAAQ,EAAE7pG,EAAEC,EAAE,EAAEgrG,mBAAmB,SAASjrG,EAAEC,GAAG,OAAO4pG,GAAG,EAAE,EAAE7pG,EAAEC,EAAE,EAAE7Q,QAAQ,SAAS4Q,EAAEC,GAAG,IAAII,EAAE4nG,KAAqD,OAAhDhoG,OAAE,IAASA,EAAE,KAAKA,EAAED,EAAEA,IAAIK,EAAE6mF,cAAc,CAAClnF,EAAEC,GAAUD,CAAC,EAAEkrG,WAAW,SAASlrG,EAAEC,EAAEI,GAAG,IAAIC,EAAE2nG,KAAkM,OAA7LhoG,OAAE,IAASI,EAAEA,EAAEJ,GAAGA,EAAEK,EAAE4mF,cAAc5mF,EAAEuiG,UAAU5iG,EAAED,EAAE,CAACijG,QAAQ,KAAKT,YAAY,KAAKP,MAAM,EAAE2G,SAAS,KAAKL,oBAAoBvoG,EAAE2oG,kBAAkB1oG,GAAGK,EAAE6nG,MAAMnoG,EAAEA,EAAEA,EAAE4oG,SAAS8B,GAAG36C,KAAK,KAAKx1C,GAAEva,GAAS,CAACM,EAAE4mF,cAAclnF,EAAE,EAAElV,OAAO,SAASkV,GAC3d,OAAdA,EAAE,CAAChV,QAAQgV,GAAhBioG,KAA4B/gB,cAAclnF,CAAC,EAAE1Q,SAASm6G,GAAG0B,cAAcf,GAAGgB,iBAAiB,SAASprG,GAAG,OAAOioG,KAAK/gB,cAAclnF,CAAC,EAAEqrG,cAAc,WAAW,IAAIrrG,EAAEypG,IAAG,GAAIxpG,EAAED,EAAE,GAA6C,OAA1CA,EAAEwqG,GAAGz6C,KAAK,KAAK/vD,EAAE,IAAIioG,KAAK/gB,cAAclnF,EAAQ,CAACC,EAAED,EAAE,EAAEsrG,iBAAiB,WAAW,EAAEC,qBAAqB,SAASvrG,EAAEC,EAAEI,GAAG,IAAIC,EAAEia,GAAEnlB,EAAE6yG,KAAK,GAAGhI,GAAE,CAAC,QAAG,IAAS5/F,EAAE,MAAMnX,MAAMgvE,EAAE,MAAM73D,EAAEA,GAAG,KAAK,CAAO,GAANA,EAAEJ,IAAO,OAAOkpG,GAAE,MAAMjgH,MAAMgvE,EAAE,MAAM,KAAQ,GAAHivC,KAAQiC,GAAG9oG,EAAEL,EAAEI,EAAE,CAACjL,EAAE8xF,cAAc7mF,EAAE,IAAIkC,EAAE,CAACnd,MAAMib,EAAE2oG,YAAY/oG,GACvZ,OAD0Z7K,EAAE+yG,MAAM5lG,EAAEwnG,GAAGhB,GAAGh5C,KAAK,KAAKzvD,EACpfiC,EAAEvC,GAAG,CAACA,IAAIM,EAAE0mF,OAAO,KAAKiiB,GAAG,EAAEC,GAAGn5C,KAAK,KAAKzvD,EAAEiC,EAAElC,EAAEJ,QAAG,EAAO,MAAaI,CAAC,EAAEmrG,MAAM,WAAW,IAAIxrG,EAAEioG,KAAKhoG,EAAEkpG,GAAEuC,iBAAiB,GAAGzL,GAAE,CAAC,IAAI5/F,EAAEq/F,GAAkDz/F,EAAE,IAAIA,EAAE,KAA9CI,GAAHo/F,KAAU,GAAG,GAAGzW,GAAhByW,IAAsB,IAAIr4G,SAAS,IAAIiZ,GAAuB,GAAPA,EAAEknG,QAAWtnG,GAAG,IAAII,EAAEjZ,SAAS,KAAK6Y,GAAG,GAAG,MAAaA,EAAE,IAAIA,EAAE,KAAfI,EAAEmnG,MAAmBpgH,SAAS,IAAI,IAAI,OAAO4Y,EAAEknF,cAAcjnF,CAAC,EAAEwrG,0BAAyB,GAAI5D,GAAG,CAACiD,YAAY3I,GAAG4I,YAAYV,GAAGp6G,WAAWkyG,GAAGp3G,UAAU+9G,GAAGkC,oBAAoBb,GAAGc,mBAAmBjB,GAAGj2G,gBAAgBk2G,GAAG76G,QAAQk7G,GAAGY,WAAW5C,GAAGx9G,OAAO8+G,GAAGt6G,SAAS,WAAW,OAAOg5G,GAAGD,GAAG,EACrhB8C,cAAcf,GAAGgB,iBAAiB,SAASprG,GAAc,OAAOuqG,GAAZnC,KAAiB5vC,GAAE0uB,cAAclnF,EAAE,EAAEqrG,cAAc,WAAgD,MAAM,CAArC/C,GAAGD,IAAI,GAAKD,KAAKlhB,cAAyB,EAAEokB,iBAAiBlkD,GAAGmkD,qBAAqB9qG,GAAG+qG,MAAMf,GAAGgB,0BAAyB,GAAI3D,GAAG,CAACgD,YAAY3I,GAAG4I,YAAYV,GAAGp6G,WAAWkyG,GAAGp3G,UAAU+9G,GAAGkC,oBAAoBb,GAAGc,mBAAmBjB,GAAGj2G,gBAAgBk2G,GAAG76G,QAAQk7G,GAAGY,WAAWrC,GAAG/9G,OAAO8+G,GAAGt6G,SAAS,WAAW,OAAOu5G,GAAGR,GAAG,EAAE8C,cAAcf,GAAGgB,iBAAiB,SAASprG,GAAG,IAAIC,EAAEmoG,KAAK,OAAO,OACzf5vC,GAAEv4D,EAAEinF,cAAclnF,EAAEuqG,GAAGtqG,EAAEu4D,GAAE0uB,cAAclnF,EAAE,EAAEqrG,cAAc,WAAgD,MAAM,CAArCxC,GAAGR,IAAI,GAAKD,KAAKlhB,cAAyB,EAAEokB,iBAAiBlkD,GAAGmkD,qBAAqB9qG,GAAG+qG,MAAMf,GAAGgB,0BAAyB,GAAI,SAASE,GAAG3rG,EAAEC,GAAG,IAAI,IAAII,EAAE,GAAGC,EAAEL,EAAE,GAAGI,GAAG69E,EAAG59E,GAAGA,EAAEA,EAAEymF,aAAazmF,GAAG,IAAIlL,EAAEiL,CAAC,CAAC,MAAMkC,GAAGnN,EAAE,6BAA6BmN,EAAE0F,QAAQ,KAAK1F,EAAEg8C,KAAK,CAAC,MAAM,CAACn5D,MAAM4a,EAAEzb,OAAO0b,EAAEs+C,MAAMnpD,EAAEgK,OAAO,KAAK,CAAC,SAASwsG,GAAG5rG,EAAEC,EAAEI,GAAG,MAAM,CAACjb,MAAM4a,EAAEzb,OAAO,KAAKg6D,MAAM,MAAMl+C,EAAEA,EAAE,KAAKjB,OAAO,MAAMa,EAAEA,EAAE,KAAK,CACzd,SAAS4rG,GAAG7rG,EAAEC,GAAG,IAAI5S,QAAQ+G,MAAM6L,EAAE7a,MAAM,CAAC,MAAMib,GAAGinB,YAAW,WAAW,MAAMjnB,CAAE,GAAE,CAAC,CAAC,IAAIyrG,GAAG,oBAAoBztC,QAAQA,QAAQP,IAAI,SAASiuC,GAAG/rG,EAAEC,EAAEI,IAAGA,EAAEg8C,IAAI,EAAEh8C,IAAKvS,IAAI,EAAEuS,EAAEiuB,QAAQ,CAACxkC,QAAQ,MAAM,IAAIwW,EAAEL,EAAE7a,MAAsD,OAAhDib,EAAEoG,SAAS,WAAWulG,KAAKA,IAAG,EAAGC,GAAG3rG,GAAGurG,GAAG7rG,EAAEC,EAAE,EAASI,CAAC,CAC3Q,SAAS6rG,GAAGlsG,EAAEC,EAAEI,IAAGA,EAAEg8C,IAAI,EAAEh8C,IAAKvS,IAAI,EAAE,IAAIwS,EAAEN,EAAExN,KAAK25G,yBAAyB,GAAG,oBAAoB7rG,EAAE,CAAC,IAAIlL,EAAE6K,EAAE7a,MAAMib,EAAEiuB,QAAQ,WAAW,OAAOhuB,EAAElL,EAAE,EAAEiL,EAAEoG,SAAS,WAAWolG,GAAG7rG,EAAEC,EAAE,CAAC,CAAC,IAAIsC,EAAEvC,EAAEylF,UAA8O,OAApO,OAAOljF,GAAG,oBAAoBA,EAAE6pG,oBAAoB/rG,EAAEoG,SAAS,WAAWolG,GAAG7rG,EAAEC,GAAG,oBAAoBK,IAAI,OAAO+rG,GAAGA,GAAG,IAAIpuC,IAAI,CAACp/D,OAAOwtG,GAAG7pF,IAAI3jB,OAAO,IAAIwB,EAAEJ,EAAEs+C,MAAM1/C,KAAKutG,kBAAkBnsG,EAAE7a,MAAM,CAACknH,eAAe,OAAOjsG,EAAEA,EAAE,IAAI,GAAUA,CAAC,CACnb,SAASksG,GAAGvsG,EAAEC,EAAEI,GAAG,IAAIC,EAAEN,EAAEwsG,UAAU,GAAG,OAAOlsG,EAAE,CAACA,EAAEN,EAAEwsG,UAAU,IAAIV,GAAG,IAAI12G,EAAE,IAAI6oE,IAAI39D,EAAEjB,IAAIY,EAAE7K,EAAE,WAAiB,KAAXA,EAAEkL,EAAEnJ,IAAI8I,MAAgB7K,EAAE,IAAI6oE,IAAI39D,EAAEjB,IAAIY,EAAE7K,IAAIA,EAAEm7E,IAAIlwE,KAAKjL,EAAEotB,IAAIniB,GAAGL,EAAEysG,GAAG18C,KAAK,KAAK/vD,EAAEC,EAAEI,GAAGJ,EAAExU,KAAKuU,EAAEA,GAAG,CAAC,SAAS0sG,GAAG1sG,GAAG,EAAE,CAAC,IAAIC,EAA4E,IAAvEA,EAAE,KAAKD,EAAElS,OAAsBmS,EAAE,QAApBA,EAAED,EAAEknF,gBAAyB,OAAOjnF,EAAEknF,YAAuBlnF,EAAE,OAAOD,EAAEA,EAAEA,EAAE+mF,MAAM,OAAO,OAAO/mF,GAAG,OAAO,IAAI,CAChW,SAAS2sG,GAAG3sG,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,OAAG,KAAY,EAAP4K,EAAE2d,OAAe3d,IAAIC,EAAED,EAAEgnF,OAAO,OAAOhnF,EAAEgnF,OAAO,IAAI3mF,EAAE2mF,OAAO,OAAO3mF,EAAE2mF,QAAQ,MAAM,IAAI3mF,EAAEvS,MAAM,OAAOuS,EAAEymF,UAAUzmF,EAAEvS,IAAI,KAAImS,EAAEo8C,IAAI,EAAE,IAAKvuD,IAAI,EAAEw1G,GAAGjjG,EAAEJ,EAAE,KAAKI,EAAE4hG,OAAO,GAAGjiG,IAAEA,EAAEgnF,OAAO,MAAMhnF,EAAEiiG,MAAM7sG,EAAS4K,EAAC,CAAC,IAAI4sG,GAAGlwB,EAAGmwB,kBAAkB3K,IAAG,EAAG,SAAS4K,GAAG9sG,EAAEC,EAAEI,EAAEC,GAAGL,EAAEohD,MAAM,OAAOrhD,EAAEimG,GAAGhmG,EAAE,KAAKI,EAAEC,GAAG0lG,GAAG/lG,EAAED,EAAEqhD,MAAMhhD,EAAEC,EAAE,CACnV,SAASysG,GAAG/sG,EAAEC,EAAEI,EAAEC,EAAElL,GAAGiL,EAAEA,EAAEs3D,OAAO,IAAIp1D,EAAEtC,EAAE5U,IAAqC,OAAjCy2G,GAAG7hG,EAAE7K,GAAGkL,EAAEqnG,GAAG3nG,EAAEC,EAAEI,EAAEC,EAAEiC,EAAEnN,GAAGiL,EAAE2nG,KAAQ,OAAOhoG,GAAIkiG,IAA2EjC,IAAG5/F,GAAGw/F,GAAG5/F,GAAGA,EAAE+mF,OAAO,EAAE8lB,GAAG9sG,EAAEC,EAAEK,EAAElL,GAAU6K,EAAEohD,QAA7GphD,EAAE2iG,YAAY5iG,EAAE4iG,YAAY3iG,EAAE+mF,QAAQ,KAAKhnF,EAAEiiG,QAAQ7sG,EAAE43G,GAAGhtG,EAAEC,EAAE7K,GAAoD,CACzN,SAAS63G,GAAGjtG,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,GAAG,OAAO4K,EAAE,CAAC,IAAIuC,EAAElC,EAAE7N,KAAK,MAAG,oBAAoB+P,GAAI2qG,GAAG3qG,SAAI,IAASA,EAAEm4D,cAAc,OAAOr6D,EAAEuoD,cAAS,IAASvoD,EAAEq6D,eAAoD16D,EAAE6lG,GAAGxlG,EAAE7N,KAAK,KAAK8N,EAAEL,EAAEA,EAAE0d,KAAKvoB,IAAK/J,IAAI4U,EAAE5U,IAAI2U,EAAE+mF,OAAO9mF,EAASA,EAAEohD,MAAMrhD,IAArGC,EAAEnS,IAAI,GAAGmS,EAAEzN,KAAK+P,EAAE4qG,GAAGntG,EAAEC,EAAEsC,EAAEjC,EAAElL,GAAyE,CAAW,GAAVmN,EAAEvC,EAAEqhD,MAAS,KAAKrhD,EAAEiiG,MAAM7sG,GAAG,CAAC,IAAIw4D,EAAErrD,EAAEw+F,cAA0C,IAAhB1gG,EAAE,QAAdA,EAAEA,EAAEuoD,SAAmBvoD,EAAEw2F,IAAQjpC,EAAEttD,IAAIN,EAAE3U,MAAM4U,EAAE5U,IAAI,OAAO2hH,GAAGhtG,EAAEC,EAAE7K,EAAE,CAA6C,OAA5C6K,EAAE+mF,OAAO,GAAEhnF,EAAE2lG,GAAGpjG,EAAEjC,IAAKjV,IAAI4U,EAAE5U,IAAI2U,EAAE+mF,OAAO9mF,EAASA,EAAEohD,MAAMrhD,CAAC,CAC1b,SAASmtG,GAAGntG,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,GAAG,OAAO4K,EAAE,CAAC,IAAIuC,EAAEvC,EAAE+gG,cAAc,GAAGlK,GAAGt0F,EAAEjC,IAAIN,EAAE3U,MAAM4U,EAAE5U,IAAI,IAAG62G,IAAG,EAAGjiG,EAAEsgG,aAAajgG,EAAEiC,EAAE,KAAKvC,EAAEiiG,MAAM7sG,GAAsC,OAAO6K,EAAEgiG,MAAMjiG,EAAEiiG,MAAM+K,GAAGhtG,EAAEC,EAAE7K,GAAjE,KAAa,OAAR4K,EAAEgnF,SAAgBkb,IAAG,EAAyC,EAAC,OAAOkL,GAAGptG,EAAEC,EAAEI,EAAEC,EAAElL,EAAE,CACxN,SAASi4G,GAAGrtG,EAAEC,EAAEI,GAAG,IAAIC,EAAEL,EAAEsgG,aAAanrG,EAAEkL,EAAEpR,SAASqT,EAAE,OAAOvC,EAAEA,EAAEknF,cAAc,KAAK,GAAG,WAAW5mF,EAAEqd,KAAK,GAAG,KAAY,EAAP1d,EAAE0d,MAAQ1d,EAAEinF,cAAc,CAAComB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAM3P,GAAE4P,GAAGC,IAAIA,IAAIrtG,MAAM,CAAC,GAAG,KAAO,WAAFA,GAAc,OAAOL,EAAE,OAAOuC,EAAEA,EAAE+qG,UAAUjtG,EAAEA,EAAEJ,EAAEgiG,MAAMhiG,EAAE4hG,WAAW,WAAW5hG,EAAEinF,cAAc,CAAComB,UAAUttG,EAAEutG,UAAU,KAAKC,YAAY,MAAMvtG,EAAE2iG,YAAY,KAAK/E,GAAE4P,GAAGC,IAAIA,IAAI1tG,EAAE,KAAKC,EAAEinF,cAAc,CAAComB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAMltG,EAAE,OAAOiC,EAAEA,EAAE+qG,UAAUjtG,EAAEw9F,GAAE4P,GAAGC,IAAIA,IAAIptG,CAAC,MAAM,OACtfiC,GAAGjC,EAAEiC,EAAE+qG,UAAUjtG,EAAEJ,EAAEinF,cAAc,MAAM5mF,EAAED,EAAEw9F,GAAE4P,GAAGC,IAAIA,IAAIptG,EAAc,OAAZwsG,GAAG9sG,EAAEC,EAAE7K,EAAEiL,GAAUJ,EAAEohD,KAAK,CAAC,SAASssD,GAAG3tG,EAAEC,GAAG,IAAII,EAAEJ,EAAE5U,KAAO,OAAO2U,GAAG,OAAOK,GAAG,OAAOL,GAAGA,EAAE3U,MAAMgV,KAAEJ,EAAE+mF,OAAO,IAAI/mF,EAAE+mF,OAAO,QAAO,CAAC,SAASomB,GAAGptG,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,IAAImN,EAAE87F,GAAGh+F,GAAG29F,GAAG5tC,GAAEplE,QAAmD,OAA3CuX,EAAE07F,GAAGh+F,EAAEsC,GAAGu/F,GAAG7hG,EAAE7K,GAAGiL,EAAEsnG,GAAG3nG,EAAEC,EAAEI,EAAEC,EAAEiC,EAAEnN,GAAGkL,EAAE0nG,KAAQ,OAAOhoG,GAAIkiG,IAA2EjC,IAAG3/F,GAAGu/F,GAAG5/F,GAAGA,EAAE+mF,OAAO,EAAE8lB,GAAG9sG,EAAEC,EAAEI,EAAEjL,GAAU6K,EAAEohD,QAA7GphD,EAAE2iG,YAAY5iG,EAAE4iG,YAAY3iG,EAAE+mF,QAAQ,KAAKhnF,EAAEiiG,QAAQ7sG,EAAE43G,GAAGhtG,EAAEC,EAAE7K,GAAoD,CACla,SAASw4G,GAAG5tG,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,GAAGipG,GAAGh+F,GAAG,CAAC,IAAIkC,GAAE,EAAGo8F,GAAG1+F,EAAE,MAAMsC,GAAE,EAAW,GAARu/F,GAAG7hG,EAAE7K,GAAM,OAAO6K,EAAEwlF,UAAUooB,GAAG7tG,EAAEC,GAAGwkG,GAAGxkG,EAAEI,EAAEC,GAAGykG,GAAG9kG,EAAEI,EAAEC,EAAElL,GAAGkL,GAAE,OAAQ,GAAG,OAAON,EAAE,CAAC,IAAI4tD,EAAE3tD,EAAEwlF,UAAU1rC,EAAE95C,EAAE8gG,cAAcnzC,EAAEhlE,MAAMmxD,EAAE,IAAIv3C,EAAEorD,EAAEj7B,QAAQlmC,EAAE4T,EAAEqkG,YAAY,kBAAkBj4G,GAAG,OAAOA,EAAEA,EAAE01G,GAAG11G,GAAyBA,EAAEwxG,GAAGh+F,EAA1BxT,EAAE4xG,GAAGh+F,GAAG29F,GAAG5tC,GAAEplE,SAAmB,IAAI86D,EAAEzlD,EAAE2kG,yBAAyBjlG,EAAE,oBAAoB+lD,GAAG,oBAAoB8H,EAAEq3C,wBAAwBllG,GAAG,oBAAoB6tD,EAAEk3C,kCAAkC,oBAAoBl3C,EAAEi3C,4BAC1d9qD,IAAIz5C,GAAGkC,IAAI/V,IAAIm4G,GAAG3kG,EAAE2tD,EAAEttD,EAAE7T,GAAGi2G,IAAG,EAAG,IAAIh2G,EAAEuT,EAAEinF,cAAct5B,EAAEluD,MAAMhT,EAAE+2G,GAAGxjG,EAAEK,EAAEstD,EAAEx4D,GAAGoN,EAAEvC,EAAEinF,cAAcntC,IAAIz5C,GAAG5T,IAAI8V,GAAGu7F,GAAG/yG,SAAS03G,IAAI,oBAAoB58C,IAAIg+C,GAAG7jG,EAAEI,EAAEylD,EAAExlD,GAAGkC,EAAEvC,EAAEinF,gBAAgBntC,EAAE2oD,IAAI4B,GAAGrkG,EAAEI,EAAE05C,EAAEz5C,EAAE5T,EAAE8V,EAAE/V,KAAKsT,GAAG,oBAAoB6tD,EAAEs3C,2BAA2B,oBAAoBt3C,EAAEu3C,qBAAqB,oBAAoBv3C,EAAEu3C,oBAAoBv3C,EAAEu3C,qBAAqB,oBAAoBv3C,EAAEs3C,2BAA2Bt3C,EAAEs3C,6BAA6B,oBAAoBt3C,EAAEw3C,oBAAoBnlG,EAAE+mF,OAAO,WAClf,oBAAoBp5B,EAAEw3C,oBAAoBnlG,EAAE+mF,OAAO,SAAS/mF,EAAE8gG,cAAczgG,EAAEL,EAAEinF,cAAc1kF,GAAGorD,EAAEhlE,MAAM0X,EAAEstD,EAAEluD,MAAM8C,EAAEorD,EAAEj7B,QAAQlmC,EAAE6T,EAAEy5C,IAAI,oBAAoB6T,EAAEw3C,oBAAoBnlG,EAAE+mF,OAAO,SAAS1mF,GAAE,EAAG,KAAK,CAACstD,EAAE3tD,EAAEwlF,UAAU0d,GAAGnjG,EAAEC,GAAG85C,EAAE95C,EAAE8gG,cAAct0G,EAAEwT,EAAEzN,OAAOyN,EAAElW,YAAYgwD,EAAEqnD,GAAGnhG,EAAEzN,KAAKunD,GAAG6T,EAAEhlE,MAAM6D,EAAEsT,EAAEE,EAAEsgG,aAAa7zG,EAAEkhE,EAAEj7B,QAAwB,kBAAhBnwB,EAAEnC,EAAEqkG,cAAiC,OAAOliG,EAAEA,EAAE2/F,GAAG3/F,GAAyBA,EAAEy7F,GAAGh+F,EAA1BuC,EAAE67F,GAAGh+F,GAAG29F,GAAG5tC,GAAEplE,SAAmB,IAAI69D,EAAExoD,EAAE2kG,0BAA0Bl/C,EAAE,oBAAoB+C,GAAG,oBAAoB+E,EAAEq3C,0BAC9e,oBAAoBr3C,EAAEk3C,kCAAkC,oBAAoBl3C,EAAEi3C,4BAA4B9qD,IAAIh6C,GAAGrT,IAAI8V,IAAIoiG,GAAG3kG,EAAE2tD,EAAEttD,EAAEkC,GAAGkgG,IAAG,EAAGh2G,EAAEuT,EAAEinF,cAAct5B,EAAEluD,MAAMhT,EAAE+2G,GAAGxjG,EAAEK,EAAEstD,EAAEx4D,GAAG,IAAIjO,EAAE8Y,EAAEinF,cAAcntC,IAAIh6C,GAAGrT,IAAIvF,GAAG42G,GAAG/yG,SAAS03G,IAAI,oBAAoB75C,IAAIi7C,GAAG7jG,EAAEI,EAAEwoD,EAAEvoD,GAAGnZ,EAAE8Y,EAAEinF,gBAAgBz6F,EAAEi2G,IAAI4B,GAAGrkG,EAAEI,EAAE5T,EAAE6T,EAAE5T,EAAEvF,EAAEqb,KAAI,IAAKsjD,GAAG,oBAAoB8H,EAAEkgD,4BAA4B,oBAAoBlgD,EAAEmgD,sBAAsB,oBAAoBngD,EAAEmgD,qBAAqBngD,EAAEmgD,oBAAoBztG,EAAEnZ,EAAEqb,GAAG,oBAAoBorD,EAAEkgD,4BAC5flgD,EAAEkgD,2BAA2BxtG,EAAEnZ,EAAEqb,IAAI,oBAAoBorD,EAAEogD,qBAAqB/tG,EAAE+mF,OAAO,GAAG,oBAAoBp5B,EAAEq3C,0BAA0BhlG,EAAE+mF,OAAO,QAAQ,oBAAoBp5B,EAAEogD,oBAAoBj0D,IAAI/5C,EAAE+gG,eAAer0G,IAAIsT,EAAEknF,gBAAgBjnF,EAAE+mF,OAAO,GAAG,oBAAoBp5B,EAAEq3C,yBAAyBlrD,IAAI/5C,EAAE+gG,eAAer0G,IAAIsT,EAAEknF,gBAAgBjnF,EAAE+mF,OAAO,MAAM/mF,EAAE8gG,cAAczgG,EAAEL,EAAEinF,cAAc//F,GAAGymE,EAAEhlE,MAAM0X,EAAEstD,EAAEluD,MAAMvY,EAAEymE,EAAEj7B,QAAQnwB,EAAElC,EAAE7T,IAAI,oBAAoBmhE,EAAEogD,oBAAoBj0D,IAAI/5C,EAAE+gG,eAAer0G,IACjfsT,EAAEknF,gBAAgBjnF,EAAE+mF,OAAO,GAAG,oBAAoBp5B,EAAEq3C,yBAAyBlrD,IAAI/5C,EAAE+gG,eAAer0G,IAAIsT,EAAEknF,gBAAgBjnF,EAAE+mF,OAAO,MAAM1mF,GAAE,EAAG,CAAC,OAAO2tG,GAAGjuG,EAAEC,EAAEI,EAAEC,EAAEiC,EAAEnN,EAAE,CACnK,SAAS64G,GAAGjuG,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,GAAGorG,GAAG3tG,EAAEC,GAAG,IAAI2tD,EAAE,KAAa,IAAR3tD,EAAE+mF,OAAW,IAAI1mF,IAAIstD,EAAE,OAAOx4D,GAAGypG,GAAG5+F,EAAEI,GAAE,GAAI2sG,GAAGhtG,EAAEC,EAAEsC,GAAGjC,EAAEL,EAAEwlF,UAAUmnB,GAAG5hH,QAAQiV,EAAE,IAAI85C,EAAE6T,GAAG,oBAAoBvtD,EAAE8rG,yBAAyB,KAAK7rG,EAAEq3D,SAAwI,OAA/H13D,EAAE+mF,OAAO,EAAE,OAAOhnF,GAAG4tD,GAAG3tD,EAAEohD,MAAM2kD,GAAG/lG,EAAED,EAAEqhD,MAAM,KAAK9+C,GAAGtC,EAAEohD,MAAM2kD,GAAG/lG,EAAE,KAAK85C,EAAEx3C,IAAIuqG,GAAG9sG,EAAEC,EAAE85C,EAAEx3C,GAAGtC,EAAEinF,cAAc5mF,EAAEZ,MAAMtK,GAAGypG,GAAG5+F,EAAEI,GAAE,GAAWJ,EAAEohD,KAAK,CAAC,SAAS6sD,GAAGluG,GAAG,IAAIC,EAAED,EAAEylF,UAAUxlF,EAAEkuG,eAAe3P,GAAGx+F,EAAEC,EAAEkuG,eAAeluG,EAAEkuG,iBAAiBluG,EAAE0yB,SAAS1yB,EAAE0yB,SAAS6rE,GAAGx+F,EAAEC,EAAE0yB,SAAQ,GAAI4zE,GAAGvmG,EAAEC,EAAE+rF,cAAc,CAC5e,SAASoiB,GAAGpuG,EAAEC,EAAEI,EAAEC,EAAElL,GAAuC,OAApC6rG,KAAKC,GAAG9rG,GAAG6K,EAAE+mF,OAAO,IAAI8lB,GAAG9sG,EAAEC,EAAEI,EAAEC,GAAUL,EAAEohD,KAAK,CAAC,IAaqLgtD,GAAGC,GAAGC,GAAGC,GAb1LC,GAAG,CAACtnB,WAAW,KAAKsZ,YAAY,KAAKC,UAAU,GAAG,SAASgO,GAAG1uG,GAAG,MAAM,CAACstG,UAAUttG,EAAEutG,UAAU,KAAKC,YAAY,KAAK,CAClM,SAASmB,GAAG3uG,EAAEC,EAAEI,GAAG,IAA0D05C,EAAtDz5C,EAAEL,EAAEsgG,aAAanrG,EAAEqkB,GAAEzuB,QAAQuX,GAAE,EAAGqrD,EAAE,KAAa,IAAR3tD,EAAE+mF,OAAqJ,IAAvIjtC,EAAE6T,KAAK7T,GAAE,OAAO/5C,GAAG,OAAOA,EAAEknF,gBAAiB,KAAO,EAAF9xF,IAAS2kD,GAAEx3C,GAAE,EAAGtC,EAAE+mF,QAAQ,KAAY,OAAOhnF,GAAG,OAAOA,EAAEknF,gBAAc9xF,GAAG,GAAEyoG,GAAEpkF,GAAI,EAAFrkB,GAAQ,OAAO4K,EAA2B,OAAxB4gG,GAAG3gG,GAAwB,QAArBD,EAAEC,EAAEinF,gBAA2C,QAAflnF,EAAEA,EAAEmnF,aAA4B,KAAY,EAAPlnF,EAAE0d,MAAQ1d,EAAEgiG,MAAM,EAAE,OAAOjiG,EAAE5B,KAAK6B,EAAEgiG,MAAM,EAAEhiG,EAAEgiG,MAAM,WAAW,OAAKr0C,EAAEttD,EAAEpR,SAAS8Q,EAAEM,EAAEsuG,SAAgBrsG,GAAGjC,EAAEL,EAAE0d,KAAKpb,EAAEtC,EAAEohD,MAAMuM,EAAE,CAACjwC,KAAK,SAASzuB,SAAS0+D,GAAG,KAAO,EAAFttD,IAAM,OAAOiC,GAAGA,EAAEs/F,WAAW,EAAEt/F,EAAEg+F,aAC7e3yC,GAAGrrD,EAAEssG,GAAGjhD,EAAEttD,EAAE,EAAE,MAAMN,EAAE+lG,GAAG/lG,EAAEM,EAAED,EAAE,MAAMkC,EAAEwkF,OAAO9mF,EAAED,EAAE+mF,OAAO9mF,EAAEsC,EAAE+kF,QAAQtnF,EAAEC,EAAEohD,MAAM9+C,EAAEtC,EAAEohD,MAAM6lC,cAAcwnB,GAAGruG,GAAGJ,EAAEinF,cAAcunB,GAAGzuG,GAAG8uG,GAAG7uG,EAAE2tD,IAAqB,GAAG,QAArBx4D,EAAE4K,EAAEknF,gBAA2C,QAAfntC,EAAE3kD,EAAE+xF,YAAqB,OAGpM,SAAYnnF,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,EAAEqrD,GAAG,GAAGvtD,EAAG,OAAW,IAARJ,EAAE+mF,OAAiB/mF,EAAE+mF,QAAQ,IAAwB+nB,GAAG/uG,EAAEC,EAAE2tD,EAA3BttD,EAAEsrG,GAAG1iH,MAAMgvE,EAAE,SAAsB,OAAOj4D,EAAEinF,eAAqBjnF,EAAEohD,MAAMrhD,EAAEqhD,MAAMphD,EAAE+mF,OAAO,IAAI,OAAKzkF,EAAEjC,EAAEsuG,SAASx5G,EAAE6K,EAAE0d,KAAKrd,EAAEuuG,GAAG,CAAClxF,KAAK,UAAUzuB,SAASoR,EAAEpR,UAAUkG,EAAE,EAAE,OAAMmN,EAAEwjG,GAAGxjG,EAAEnN,EAAEw4D,EAAE,OAAQo5B,OAAO,EAAE1mF,EAAEymF,OAAO9mF,EAAEsC,EAAEwkF,OAAO9mF,EAAEK,EAAEgnF,QAAQ/kF,EAAEtC,EAAEohD,MAAM/gD,EAAE,KAAY,EAAPL,EAAE0d,OAASqoF,GAAG/lG,EAAED,EAAEqhD,MAAM,KAAKuM,GAAG3tD,EAAEohD,MAAM6lC,cAAcwnB,GAAG9gD,GAAG3tD,EAAEinF,cAAcunB,GAAUlsG,GAAE,GAAG,KAAY,EAAPtC,EAAE0d,MAAQ,OAAOoxF,GAAG/uG,EAAEC,EAAE2tD,EAAE,MAAM,GAAG,OAAOx4D,EAAEgJ,KAAK,CAChd,GADidkC,EAAElL,EAAE4hG,aAAa5hG,EAAE4hG,YAAYgY,QAC3e,IAAIj1D,EAAEz5C,EAAE2uG,KAA0C,OAArC3uG,EAAEy5C,EAA0Cg1D,GAAG/uG,EAAEC,EAAE2tD,EAA/BttD,EAAEsrG,GAAlBrpG,EAAErZ,MAAMgvE,EAAE,MAAa53D,OAAE,GAA0B,CAAwB,GAAvBy5C,EAAE,KAAK6T,EAAE5tD,EAAE6hG,YAAeK,IAAInoD,EAAE,CAAK,GAAG,QAAPz5C,EAAE6oG,IAAc,CAAC,OAAOv7C,GAAGA,GAAG,KAAK,EAAEx4D,EAAE,EAAE,MAAM,KAAK,GAAGA,EAAE,EAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAASA,EAAE,GAAG,MAAM,KAAK,UAAUA,EAAE,UAAU,MAAM,QAAQA,EAAE,EAChd,KADkdA,EAAE,KAAKA,GAAGkL,EAAEmpF,eAAe77B,IAAI,EAAEx4D,IAC5eA,IAAImN,EAAEm+F,YAAYn+F,EAAEm+F,UAAUtrG,EAAEqtG,GAAGziG,EAAE5K,GAAG+uG,GAAG7jG,EAAEN,EAAE5K,GAAG,GAAG,CAA0B,OAAzB85G,KAAgCH,GAAG/uG,EAAEC,EAAE2tD,EAAlCttD,EAAEsrG,GAAG1iH,MAAMgvE,EAAE,OAAyB,CAAC,MAAG,OAAO9iE,EAAEgJ,MAAY6B,EAAE+mF,OAAO,IAAI/mF,EAAEohD,MAAMrhD,EAAEqhD,MAAMphD,EAAEkvG,GAAGp/C,KAAK,KAAK/vD,GAAG5K,EAAEg6G,YAAYnvG,EAAE,OAAKD,EAAEuC,EAAEk+F,YAAYT,GAAG9C,GAAG9nG,EAAE4hG,aAAa+I,GAAG9/F,EAAEggG,IAAE,EAAGC,GAAG,KAAK,OAAOlgG,IAAIs/F,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGC,GAAGz/F,EAAErN,GAAG+sG,GAAG1/F,EAAEwgG,SAAShB,GAAGv/F,GAAGA,EAAE6uG,GAAG7uG,EAAEK,EAAEpR,UAAU+Q,EAAE+mF,OAAO,KAAY/mF,EAAC,CALrKovG,CAAGrvG,EAAEC,EAAE2tD,EAAEttD,EAAEy5C,EAAE3kD,EAAEiL,GAAG,GAAGkC,EAAE,CAACA,EAAEjC,EAAEsuG,SAAShhD,EAAE3tD,EAAE0d,KAAeo8B,GAAV3kD,EAAE4K,EAAEqhD,OAAUimC,QAAQ,IAAI9kF,EAAE,CAACmb,KAAK,SAASzuB,SAASoR,EAAEpR,UAChF,OAD0F,KAAO,EAAF0+D,IAAM3tD,EAAEohD,QAAQjsD,IAAGkL,EAAEL,EAAEohD,OAAQwgD,WAAW,EAAEvhG,EAAEigG,aAAa/9F,EAAEvC,EAAEogG,UAAU,OAAO//F,EAAEqlG,GAAGvwG,EAAEoN,IAAK8sG,aAA4B,SAAfl6G,EAAEk6G,aAAuB,OAAOv1D,EAAEx3C,EAAEojG,GAAG5rD,EAAEx3C,IAAIA,EAAEwjG,GAAGxjG,EAAEqrD,EAAEvtD,EAAE,OAAQ2mF,OAAO,EAAGzkF,EAAEwkF,OACnf9mF,EAAEK,EAAEymF,OAAO9mF,EAAEK,EAAEgnF,QAAQ/kF,EAAEtC,EAAEohD,MAAM/gD,EAAEA,EAAEiC,EAAEA,EAAEtC,EAAEohD,MAA8BuM,EAAE,QAA1BA,EAAE5tD,EAAEqhD,MAAM6lC,eAAyBwnB,GAAGruG,GAAG,CAACitG,UAAU1/C,EAAE0/C,UAAUjtG,EAAEktG,UAAU,KAAKC,YAAY5/C,EAAE4/C,aAAajrG,EAAE2kF,cAAct5B,EAAErrD,EAAEs/F,WAAW7hG,EAAE6hG,YAAYxhG,EAAEJ,EAAEinF,cAAcunB,GAAUnuG,CAAC,CAAoO,OAAzNN,GAAVuC,EAAEvC,EAAEqhD,OAAUimC,QAAQhnF,EAAEqlG,GAAGpjG,EAAE,CAACob,KAAK,UAAUzuB,SAASoR,EAAEpR,WAAW,KAAY,EAAP+Q,EAAE0d,QAAUrd,EAAE2hG,MAAM5hG,GAAGC,EAAEymF,OAAO9mF,EAAEK,EAAEgnF,QAAQ,KAAK,OAAOtnF,IAAkB,QAAdK,EAAEJ,EAAEogG,YAAoBpgG,EAAEogG,UAAU,CAACrgG,GAAGC,EAAE+mF,OAAO,IAAI3mF,EAAErc,KAAKgc,IAAIC,EAAEohD,MAAM/gD,EAAEL,EAAEinF,cAAc,KAAY5mF,CAAC,CACnd,SAASwuG,GAAG9uG,EAAEC,GAA8D,OAA3DA,EAAE4uG,GAAG,CAAClxF,KAAK,UAAUzuB,SAAS+Q,GAAGD,EAAE2d,KAAK,EAAE,OAAQopE,OAAO/mF,EAASA,EAAEqhD,MAAMphD,CAAC,CAAC,SAAS8uG,GAAG/uG,EAAEC,EAAEI,EAAEC,GAAwG,OAArG,OAAOA,GAAG4gG,GAAG5gG,GAAG0lG,GAAG/lG,EAAED,EAAEqhD,MAAM,KAAKhhD,IAAGL,EAAE8uG,GAAG7uG,EAAEA,EAAEsgG,aAAarxG,WAAY83F,OAAO,EAAE/mF,EAAEinF,cAAc,KAAYlnF,CAAC,CAGkJ,SAASuvG,GAAGvvG,EAAEC,EAAEI,GAAGL,EAAEiiG,OAAOhiG,EAAE,IAAIK,EAAEN,EAAE8mF,UAAU,OAAOxmF,IAAIA,EAAE2hG,OAAOhiG,GAAG2hG,GAAG5hG,EAAE+mF,OAAO9mF,EAAEI,EAAE,CACxc,SAASmvG,GAAGxvG,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,IAAImN,EAAEvC,EAAEknF,cAAc,OAAO3kF,EAAEvC,EAAEknF,cAAc,CAACuoB,YAAYxvG,EAAEyvG,UAAU,KAAKC,mBAAmB,EAAEnwC,KAAKl/D,EAAEsvG,KAAKvvG,EAAEwvG,SAASz6G,IAAImN,EAAEktG,YAAYxvG,EAAEsC,EAAEmtG,UAAU,KAAKntG,EAAEotG,mBAAmB,EAAEptG,EAAEi9D,KAAKl/D,EAAEiC,EAAEqtG,KAAKvvG,EAAEkC,EAAEstG,SAASz6G,EAAE,CAC3O,SAAS06G,GAAG9vG,EAAEC,EAAEI,GAAG,IAAIC,EAAEL,EAAEsgG,aAAanrG,EAAEkL,EAAEsmG,YAAYrkG,EAAEjC,EAAEsvG,KAAsC,GAAjC9C,GAAG9sG,EAAEC,EAAEK,EAAEpR,SAASmR,GAAkB,KAAO,GAAtBC,EAAEmZ,GAAEzuB,UAAqBsV,EAAI,EAAFA,EAAI,EAAEL,EAAE+mF,OAAO,QAAQ,CAAC,GAAG,OAAOhnF,GAAG,KAAa,IAARA,EAAEgnF,OAAWhnF,EAAE,IAAIA,EAAEC,EAAEohD,MAAM,OAAOrhD,GAAG,CAAC,GAAG,KAAKA,EAAElS,IAAI,OAAOkS,EAAEknF,eAAeqoB,GAAGvvG,EAAEK,EAAEJ,QAAQ,GAAG,KAAKD,EAAElS,IAAIyhH,GAAGvvG,EAAEK,EAAEJ,QAAQ,GAAG,OAAOD,EAAEqhD,MAAM,CAACrhD,EAAEqhD,MAAM0lC,OAAO/mF,EAAEA,EAAEA,EAAEqhD,MAAM,QAAQ,CAAC,GAAGrhD,IAAIC,EAAE,MAAMD,EAAE,KAAK,OAAOA,EAAEsnF,SAAS,CAAC,GAAG,OAAOtnF,EAAE+mF,QAAQ/mF,EAAE+mF,SAAS9mF,EAAE,MAAMD,EAAEA,EAAEA,EAAE+mF,MAAM,CAAC/mF,EAAEsnF,QAAQP,OAAO/mF,EAAE+mF,OAAO/mF,EAAEA,EAAEsnF,OAAO,CAAChnF,GAAG,CAAC,CAAQ,GAAPu9F,GAAEpkF,GAAEnZ,GAAM,KAAY,EAAPL,EAAE0d,MAAQ1d,EAAEinF,cAC/e,UAAU,OAAO9xF,GAAG,IAAK,WAAqB,IAAViL,EAAEJ,EAAEohD,MAAUjsD,EAAE,KAAK,OAAOiL,GAAiB,QAAdL,EAAEK,EAAEymF,YAAoB,OAAO6f,GAAG3mG,KAAK5K,EAAEiL,GAAGA,EAAEA,EAAEinF,QAAY,QAAJjnF,EAAEjL,IAAYA,EAAE6K,EAAEohD,MAAMphD,EAAEohD,MAAM,OAAOjsD,EAAEiL,EAAEinF,QAAQjnF,EAAEinF,QAAQ,MAAMkoB,GAAGvvG,GAAE,EAAG7K,EAAEiL,EAAEkC,GAAG,MAAM,IAAK,YAA6B,IAAjBlC,EAAE,KAAKjL,EAAE6K,EAAEohD,MAAUphD,EAAEohD,MAAM,KAAK,OAAOjsD,GAAG,CAAe,GAAG,QAAjB4K,EAAE5K,EAAE0xF,YAAuB,OAAO6f,GAAG3mG,GAAG,CAACC,EAAEohD,MAAMjsD,EAAE,KAAK,CAAC4K,EAAE5K,EAAEkyF,QAAQlyF,EAAEkyF,QAAQjnF,EAAEA,EAAEjL,EAAEA,EAAE4K,CAAC,CAACwvG,GAAGvvG,GAAE,EAAGI,EAAE,KAAKkC,GAAG,MAAM,IAAK,WAAWitG,GAAGvvG,GAAE,EAAG,KAAK,UAAK,GAAQ,MAAM,QAAQA,EAAEinF,cAAc,KAAK,OAAOjnF,EAAEohD,KAAK,CAC7d,SAASwsD,GAAG7tG,EAAEC,GAAG,KAAY,EAAPA,EAAE0d,OAAS,OAAO3d,IAAIA,EAAE8mF,UAAU,KAAK7mF,EAAE6mF,UAAU,KAAK7mF,EAAE+mF,OAAO,EAAE,CAAC,SAASgmB,GAAGhtG,EAAEC,EAAEI,GAAyD,GAAtD,OAAOL,IAAIC,EAAE8hG,aAAa/hG,EAAE+hG,cAAcvhG,IAAIP,EAAEgiG,MAAS,KAAK5hG,EAAEJ,EAAE4hG,YAAY,OAAO,KAAK,GAAG,OAAO7hG,GAAGC,EAAEohD,QAAQrhD,EAAEqhD,MAAM,MAAMn4D,MAAMgvE,EAAE,MAAM,GAAG,OAAOj4D,EAAEohD,MAAM,CAA4C,IAAjChhD,EAAEslG,GAAZ3lG,EAAEC,EAAEohD,MAAarhD,EAAEugG,cAActgG,EAAEohD,MAAMhhD,EAAMA,EAAE0mF,OAAO9mF,EAAE,OAAOD,EAAEsnF,SAAStnF,EAAEA,EAAEsnF,SAAQjnF,EAAEA,EAAEinF,QAAQqe,GAAG3lG,EAAEA,EAAEugG,eAAgBxZ,OAAO9mF,EAAEI,EAAEinF,QAAQ,IAAI,CAAC,OAAOrnF,EAAEohD,KAAK,CAO9a,SAAS0uD,GAAG/vG,EAAEC,GAAG,IAAIggG,GAAE,OAAOjgG,EAAE6vG,UAAU,IAAK,SAAS5vG,EAAED,EAAE4vG,KAAK,IAAI,IAAIvvG,EAAE,KAAK,OAAOJ,GAAG,OAAOA,EAAE6mF,YAAYzmF,EAAEJ,GAAGA,EAAEA,EAAEqnF,QAAQ,OAAOjnF,EAAEL,EAAE4vG,KAAK,KAAKvvG,EAAEinF,QAAQ,KAAK,MAAM,IAAK,YAAYjnF,EAAEL,EAAE4vG,KAAK,IAAI,IAAItvG,EAAE,KAAK,OAAOD,GAAG,OAAOA,EAAEymF,YAAYxmF,EAAED,GAAGA,EAAEA,EAAEinF,QAAQ,OAAOhnF,EAAEL,GAAG,OAAOD,EAAE4vG,KAAK5vG,EAAE4vG,KAAK,KAAK5vG,EAAE4vG,KAAKtoB,QAAQ,KAAKhnF,EAAEgnF,QAAQ,KAAK,CAC5U,SAAShtE,GAAEta,GAAG,IAAIC,EAAE,OAAOD,EAAE8mF,WAAW9mF,EAAE8mF,UAAUzlC,QAAQrhD,EAAEqhD,MAAMhhD,EAAE,EAAEC,EAAE,EAAE,GAAGL,EAAE,IAAI,IAAI7K,EAAE4K,EAAEqhD,MAAM,OAAOjsD,GAAGiL,GAAGjL,EAAE6sG,MAAM7sG,EAAEysG,WAAWvhG,GAAkB,SAAflL,EAAEk6G,aAAsBhvG,GAAW,SAARlL,EAAE4xF,MAAe5xF,EAAE2xF,OAAO/mF,EAAE5K,EAAEA,EAAEkyF,aAAa,IAAIlyF,EAAE4K,EAAEqhD,MAAM,OAAOjsD,GAAGiL,GAAGjL,EAAE6sG,MAAM7sG,EAAEysG,WAAWvhG,GAAGlL,EAAEk6G,aAAahvG,GAAGlL,EAAE4xF,MAAM5xF,EAAE2xF,OAAO/mF,EAAE5K,EAAEA,EAAEkyF,QAAyC,OAAjCtnF,EAAEsvG,cAAchvG,EAAEN,EAAE6hG,WAAWxhG,EAASJ,CAAC,CAC7V,SAAS+vG,GAAGhwG,EAAEC,EAAEI,GAAG,IAAIC,EAAEL,EAAEsgG,aAAmB,OAANT,GAAG7/F,GAAUA,EAAEnS,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAOwsB,GAAEra,GAAG,KAAK,KAAK,EAUtD,KAAK,GAAG,OAAOo+F,GAAGp+F,EAAEzN,OAAO+rG,KAAKjkF,GAAEra,GAAG,KAVqD,KAAK,EAA2Q,OAAzQK,EAAEL,EAAEwlF,UAAU+gB,KAAK5tC,GAAEmlC,IAAInlC,GAAExI,IAAG02C,KAAKxmG,EAAE6tG,iBAAiB7tG,EAAEqyB,QAAQryB,EAAE6tG,eAAe7tG,EAAE6tG,eAAe,MAAS,OAAOnuG,GAAG,OAAOA,EAAEqhD,QAAMy/C,GAAG7gG,GAAGA,EAAE+mF,OAAO,EAAE,OAAOhnF,GAAGA,EAAEknF,cAAc6E,cAAc,KAAa,IAAR9rF,EAAE+mF,SAAa/mF,EAAE+mF,OAAO,KAAK,OAAOkZ,KAAK+P,GAAG/P,IAAIA,GAAG,QAAOoO,GAAGtuG,EAAEC,GAAGqa,GAAEra,GAAU,KAAK,KAAK,EAAEymG,GAAGzmG,GAAG,IAAI7K,EAAEkxG,GAAGD,GAAGr7G,SAC7e,GAATqV,EAAEJ,EAAEzN,KAAQ,OAAOwN,GAAG,MAAMC,EAAEwlF,UAAU8oB,GAAGvuG,EAAEC,EAAEI,EAAEC,EAAElL,GAAG4K,EAAE3U,MAAM4U,EAAE5U,MAAM4U,EAAE+mF,OAAO,IAAI/mF,EAAE+mF,OAAO,aAAa,CAAC,IAAI1mF,EAAE,CAAC,GAAG,OAAOL,EAAEwlF,UAAU,MAAMv8F,MAAMgvE,EAAE,MAAW,OAAL59C,GAAEra,GAAU,IAAI,CAAkB,GAAjBD,EAAEsmG,GAAGH,GAAGn7G,SAAY81G,GAAG7gG,GAAG,CAACK,EAAEL,EAAEwlF,UAAUplF,EAAEJ,EAAEzN,KAAK,IAAI+P,EAAEtC,EAAE8gG,cAA+C,OAAjCzgG,EAAEg9F,IAAIr9F,EAAEK,EAAEi9F,IAAIh7F,EAAEvC,EAAE,KAAY,EAAPC,EAAE0d,MAAetd,GAAG,IAAK,SAASs6F,GAAE,SAASr6F,GAAGq6F,GAAE,QAAQr6F,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQq6F,GAAE,OAAOr6F,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIlL,EAAE,EAAEA,EAAEklG,GAAGh2G,OAAO8Q,IAAIulG,GAAEL,GAAGllG,GAAGkL,GAAG,MAAM,IAAK,SAASq6F,GAAE,QAAQr6F,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOq6F,GAAE,QACnhBr6F,GAAGq6F,GAAE,OAAOr6F,GAAG,MAAM,IAAK,UAAUq6F,GAAE,SAASr6F,GAAG,MAAM,IAAK,QAAQg/E,EAAGh/E,EAAEiC,GAAGo4F,GAAE,UAAUr6F,GAAG,MAAM,IAAK,SAASA,EAAE8+E,cAAc,CAAC8wB,cAAc3tG,EAAE4tG,UAAUxV,GAAE,UAAUr6F,GAAG,MAAM,IAAK,WAAW2/E,GAAG3/E,EAAEiC,GAAGo4F,GAAE,UAAUr6F,GAAkB,IAAI,IAAIstD,KAAvBi3B,GAAGxkF,EAAEkC,GAAGnN,EAAE,KAAkBmN,EAAE,GAAGA,EAAExa,eAAe6lE,GAAG,CAAC,IAAI7T,EAAEx3C,EAAEqrD,GAAG,aAAaA,EAAE,kBAAkB7T,EAAEz5C,EAAEkhD,cAAczH,KAAI,IAAKx3C,EAAE6tG,0BAA0BhU,GAAG97F,EAAEkhD,YAAYzH,EAAE/5C,GAAG5K,EAAE,CAAC,WAAW2kD,IAAI,kBAAkBA,GAAGz5C,EAAEkhD,cAAc,GAAGzH,KAAI,IAAKx3C,EAAE6tG,0BAA0BhU,GAAG97F,EAAEkhD,YAC1ezH,EAAE/5C,GAAG5K,EAAE,CAAC,WAAW,GAAG2kD,IAAIqhC,EAAGrzF,eAAe6lE,IAAI,MAAM7T,GAAG,aAAa6T,GAAG+sC,GAAE,SAASr6F,EAAE,CAAC,OAAOD,GAAG,IAAK,QAAQq+E,EAAGp+E,GAAGo/E,EAAGp/E,EAAEiC,GAAE,GAAI,MAAM,IAAK,WAAWm8E,EAAGp+E,GAAG6/E,GAAG7/E,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBiC,EAAEnP,UAAUkN,EAAE+vG,QAAQhU,IAAI/7F,EAAElL,EAAE6K,EAAE2iG,YAAYtiG,EAAE,OAAOA,IAAIL,EAAE+mF,OAAO,EAAE,KAAK,CAACp5B,EAAE,IAAIx4D,EAAE2jF,SAAS3jF,EAAEA,EAAEuqF,cAAc,iCAAiC3/E,IAAIA,EAAEogF,GAAG//E,IAAI,iCAAiCL,EAAE,WAAWK,IAAGL,EAAE4tD,EAAE/9D,cAAc,QAAS4wF,UAAU,qBAAuBzgF,EAAEA,EAAE2gF,YAAY3gF,EAAE0gF,aAC/f,kBAAkBpgF,EAAEykF,GAAG/kF,EAAE4tD,EAAE/9D,cAAcwQ,EAAE,CAAC0kF,GAAGzkF,EAAEykF,MAAM/kF,EAAE4tD,EAAE/9D,cAAcwQ,GAAG,WAAWA,IAAIutD,EAAE5tD,EAAEM,EAAE6vG,SAASviD,EAAEuiD,UAAS,EAAG7vG,EAAEo8C,OAAOkR,EAAElR,KAAKp8C,EAAEo8C,QAAQ18C,EAAE4tD,EAAE0iD,gBAAgBtwG,EAAEK,GAAGL,EAAEs9F,IAAIr9F,EAAED,EAAEu9F,IAAIj9F,EAAE+tG,GAAGruG,EAAEC,GAAE,GAAG,GAAIA,EAAEwlF,UAAUzlF,EAAEA,EAAE,CAAW,OAAV4tD,EAAEk3B,GAAGzkF,EAAEC,GAAUD,GAAG,IAAK,SAASs6F,GAAE,SAAS36F,GAAG26F,GAAE,QAAQ36F,GAAG5K,EAAEkL,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQq6F,GAAE,OAAO36F,GAAG5K,EAAEkL,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIlL,EAAE,EAAEA,EAAEklG,GAAGh2G,OAAO8Q,IAAIulG,GAAEL,GAAGllG,GAAG4K,GAAG5K,EAAEkL,EAAE,MAAM,IAAK,SAASq6F,GAAE,QAAQ36F,GAAG5K,EAAEkL,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOq6F,GAAE,QAClf36F,GAAG26F,GAAE,OAAO36F,GAAG5K,EAAEkL,EAAE,MAAM,IAAK,UAAUq6F,GAAE,SAAS36F,GAAG5K,EAAEkL,EAAE,MAAM,IAAK,QAAQg/E,EAAGt/E,EAAEM,GAAGlL,EAAE8pF,EAAGl/E,EAAEM,GAAGq6F,GAAE,UAAU36F,GAAG,MAAM,IAAK,SAAiL,QAAQ5K,EAAEkL,QAAxK,IAAK,SAASN,EAAEo/E,cAAc,CAAC8wB,cAAc5vG,EAAE6vG,UAAU/6G,EAAEwoF,EAAE,CAAC,EAAEt9E,EAAE,CAAClb,WAAM,IAASu1G,GAAE,UAAU36F,GAAG,MAAM,IAAK,WAAWigF,GAAGjgF,EAAEM,GAAGlL,EAAE4qF,GAAGhgF,EAAEM,GAAGq6F,GAAE,UAAU36F,GAAiC,IAAIuC,KAAhBsiF,GAAGxkF,EAAEjL,GAAG2kD,EAAE3kD,EAAa,GAAG2kD,EAAEhyD,eAAewa,GAAG,CAAC,IAAIC,EAAEu3C,EAAEx3C,GAAG,UAAUA,EAAEuhF,GAAG9jF,EAAEwC,GAAG,4BAA4BD,EAAuB,OAApBC,EAAEA,EAAEA,EAAEu3D,YAAO,IAAgBwmB,GAAGvgF,EAAEwC,GAAI,aAAaD,EAAE,kBAAkBC,GAAG,aAC7enC,GAAG,KAAKmC,IAAIs+E,GAAG9gF,EAAEwC,GAAG,kBAAkBA,GAAGs+E,GAAG9gF,EAAE,GAAGwC,GAAG,mCAAmCD,GAAG,6BAA6BA,GAAG,cAAcA,IAAI64E,EAAGrzF,eAAewa,GAAG,MAAMC,GAAG,aAAaD,GAAGo4F,GAAE,SAAS36F,GAAG,MAAMwC,GAAG45E,EAAGp8E,EAAEuC,EAAEC,EAAEorD,GAAG,CAAC,OAAOvtD,GAAG,IAAK,QAAQq+E,EAAG1+E,GAAG0/E,EAAG1/E,EAAEM,GAAE,GAAI,MAAM,IAAK,WAAWo+E,EAAG1+E,GAAGmgF,GAAGngF,GAAG,MAAM,IAAK,SAAS,MAAMM,EAAElb,OAAO4a,EAAE8vE,aAAa,QAAQ,GAAG0O,EAAGl+E,EAAElb,QAAQ,MAAM,IAAK,SAAS4a,EAAEmwG,WAAW7vG,EAAE6vG,SAAmB,OAAV5tG,EAAEjC,EAAElb,OAAcy6F,GAAG7/E,IAAIM,EAAE6vG,SAAS5tG,GAAE,GAAI,MAAMjC,EAAEkJ,cAAcq2E,GAAG7/E,IAAIM,EAAE6vG,SAAS7vG,EAAEkJ,cAClf,GAAI,MAAM,QAAQ,oBAAoBpU,EAAEhC,UAAU4M,EAAEqwG,QAAQhU,IAAI,OAAOh8F,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWC,IAAIA,EAAEiwG,UAAU,MAAMvwG,EAAE,IAAK,MAAMM,GAAE,EAAG,MAAMN,EAAE,QAAQM,GAAE,EAAG,CAACA,IAAIL,EAAE+mF,OAAO,EAAE,CAAC,OAAO/mF,EAAE5U,MAAM4U,EAAE+mF,OAAO,IAAI/mF,EAAE+mF,OAAO,QAAQ,CAAM,OAAL1sE,GAAEra,GAAU,KAAK,KAAK,EAAE,GAAGD,GAAG,MAAMC,EAAEwlF,UAAU+oB,GAAGxuG,EAAEC,EAAED,EAAE+gG,cAAczgG,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAOL,EAAEwlF,UAAU,MAAMv8F,MAAMgvE,EAAE,MAAsC,GAAhC73D,EAAEimG,GAAGD,GAAGr7G,SAASs7G,GAAGH,GAAGn7G,SAAY81G,GAAG7gG,GAAG,CAAyC,GAAxCK,EAAEL,EAAEwlF,UAAUplF,EAAEJ,EAAE8gG,cAAczgG,EAAEg9F,IAAIr9F,GAAKsC,EAAEjC,EAAE0gF,YAAY3gF,IAC/e,QADofL,EACvf+/F,IAAY,OAAO//F,EAAElS,KAAK,KAAK,EAAEsuG,GAAG97F,EAAE0gF,UAAU3gF,EAAE,KAAY,EAAPL,EAAE2d,OAAS,MAAM,KAAK,GAAE,IAAK3d,EAAE+gG,cAAcqP,0BAA0BhU,GAAG97F,EAAE0gF,UAAU3gF,EAAE,KAAY,EAAPL,EAAE2d,OAASpb,IAAItC,EAAE+mF,OAAO,EAAE,MAAM1mF,GAAG,IAAID,EAAE04E,SAAS14E,EAAEA,EAAEs/E,eAAe6wB,eAAelwG,IAAKg9F,IAAIr9F,EAAEA,EAAEwlF,UAAUnlF,CAAC,CAAM,OAALga,GAAEra,GAAU,KAAK,KAAK,GAA0B,GAAvB24D,GAAEn/C,IAAGnZ,EAAEL,EAAEinF,cAAiB,OAAOlnF,GAAG,OAAOA,EAAEknF,eAAe,OAAOlnF,EAAEknF,cAAcC,WAAW,CAAC,GAAG8Y,IAAG,OAAOD,IAAI,KAAY,EAAP//F,EAAE0d,OAAS,KAAa,IAAR1d,EAAE+mF,OAAWga,KAAKC,KAAKhhG,EAAE+mF,OAAO,MAAMzkF,GAAE,OAAQ,GAAGA,EAAEu+F,GAAG7gG,GAAG,OAAOK,GAAG,OAAOA,EAAE6mF,WAAW,CAAC,GAAG,OAC5fnnF,EAAE,CAAC,IAAIuC,EAAE,MAAMrZ,MAAMgvE,EAAE,MAAqD,KAA7B31D,EAAE,QAApBA,EAAEtC,EAAEinF,eAAyB3kF,EAAE4kF,WAAW,MAAW,MAAMj+F,MAAMgvE,EAAE,MAAM31D,EAAE+6F,IAAIr9F,CAAC,MAAMghG,KAAK,KAAa,IAARhhG,EAAE+mF,SAAa/mF,EAAEinF,cAAc,MAAMjnF,EAAE+mF,OAAO,EAAE1sE,GAAEra,GAAGsC,GAAE,CAAE,MAAM,OAAO29F,KAAK+P,GAAG/P,IAAIA,GAAG,MAAM39F,GAAE,EAAG,IAAIA,EAAE,OAAe,MAARtC,EAAE+mF,MAAY/mF,EAAE,IAAI,CAAC,OAAG,KAAa,IAARA,EAAE+mF,QAAkB/mF,EAAEgiG,MAAM5hG,EAAEJ,KAAEK,EAAE,OAAOA,MAAO,OAAON,GAAG,OAAOA,EAAEknF,gBAAgB5mF,IAAIL,EAAEohD,MAAM2lC,OAAO,KAAK,KAAY,EAAP/mF,EAAE0d,QAAU,OAAO3d,GAAG,KAAe,EAAVyZ,GAAEzuB,SAAW,IAAIslE,KAAIA,GAAE,GAAG4+C,OAAO,OAAOjvG,EAAE2iG,cAAc3iG,EAAE+mF,OAAO,GAAG1sE,GAAEra,GAAU,MAAK,KAAK,EAAE,OAAOumG,KACrf8H,GAAGtuG,EAAEC,GAAG,OAAOD,GAAGg7F,GAAG/6F,EAAEwlF,UAAUuG,eAAe1xE,GAAEra,GAAG,KAAK,KAAK,GAAG,OAAOyhG,GAAGzhG,EAAEzN,KAAK4rF,UAAU9jE,GAAEra,GAAG,KAA+C,KAAK,GAA0B,GAAvB24D,GAAEn/C,IAAwB,QAArBlX,EAAEtC,EAAEinF,eAA0B,OAAO5sE,GAAEra,GAAG,KAAuC,GAAlCK,EAAE,KAAa,IAARL,EAAE+mF,OAA4B,QAAjBp5B,EAAErrD,EAAEmtG,WAAsB,GAAGpvG,EAAEyvG,GAAGxtG,GAAE,OAAQ,CAAC,GAAG,IAAI+tD,IAAG,OAAOtwD,GAAG,KAAa,IAARA,EAAEgnF,OAAW,IAAIhnF,EAAEC,EAAEohD,MAAM,OAAOrhD,GAAG,CAAS,GAAG,QAAX4tD,EAAE+4C,GAAG3mG,IAAe,CAAmG,IAAlGC,EAAE+mF,OAAO,IAAI+oB,GAAGxtG,GAAE,GAAoB,QAAhBjC,EAAEstD,EAAEg1C,eAAuB3iG,EAAE2iG,YAAYtiG,EAAEL,EAAE+mF,OAAO,GAAG/mF,EAAEqvG,aAAa,EAAEhvG,EAAED,EAAMA,EAAEJ,EAAEohD,MAAM,OAAOhhD,GAAOL,EAAEM,GAANiC,EAAElC,GAAQ2mF,OAAO,SAC/d,QAAdp5B,EAAErrD,EAAEukF,YAAoBvkF,EAAEs/F,WAAW,EAAEt/F,EAAE0/F,MAAMjiG,EAAEuC,EAAE8+C,MAAM,KAAK9+C,EAAE+sG,aAAa,EAAE/sG,EAAEw+F,cAAc,KAAKx+F,EAAE2kF,cAAc,KAAK3kF,EAAEqgG,YAAY,KAAKrgG,EAAEw/F,aAAa,KAAKx/F,EAAEkjF,UAAU,OAAOljF,EAAEs/F,WAAWj0C,EAAEi0C,WAAWt/F,EAAE0/F,MAAMr0C,EAAEq0C,MAAM1/F,EAAE8+C,MAAMuM,EAAEvM,MAAM9+C,EAAE+sG,aAAa,EAAE/sG,EAAE89F,UAAU,KAAK99F,EAAEw+F,cAAcnzC,EAAEmzC,cAAcx+F,EAAE2kF,cAAct5B,EAAEs5B,cAAc3kF,EAAEqgG,YAAYh1C,EAAEg1C,YAAYrgG,EAAE/P,KAAKo7D,EAAEp7D,KAAKwN,EAAE4tD,EAAEm0C,aAAax/F,EAAEw/F,aAAa,OAAO/hG,EAAE,KAAK,CAACiiG,MAAMjiG,EAAEiiG,MAAMD,aAAahiG,EAAEgiG,eAAe3hG,EAAEA,EAAEinF,QAA2B,OAAnBuW,GAAEpkF,GAAY,EAAVA,GAAEzuB,QAAU,GAAUiV,EAAEohD,KAAK,CAACrhD,EAClgBA,EAAEsnF,OAAO,CAAC,OAAO/kF,EAAEqtG,MAAMp1F,KAAIi2F,KAAKxwG,EAAE+mF,OAAO,IAAI1mF,GAAE,EAAGyvG,GAAGxtG,GAAE,GAAItC,EAAEgiG,MAAM,QAAQ,KAAK,CAAC,IAAI3hG,EAAE,GAAW,QAARN,EAAE2mG,GAAG/4C,KAAa,GAAG3tD,EAAE+mF,OAAO,IAAI1mF,GAAE,EAAmB,QAAhBD,EAAEL,EAAE4iG,eAAuB3iG,EAAE2iG,YAAYviG,EAAEJ,EAAE+mF,OAAO,GAAG+oB,GAAGxtG,GAAE,GAAI,OAAOA,EAAEqtG,MAAM,WAAWrtG,EAAEstG,WAAWjiD,EAAEk5B,YAAYmZ,GAAE,OAAO3lF,GAAEra,GAAG,UAAU,EAAEua,KAAIjY,EAAEotG,mBAAmBc,IAAI,aAAapwG,IAAIJ,EAAE+mF,OAAO,IAAI1mF,GAAE,EAAGyvG,GAAGxtG,GAAE,GAAItC,EAAEgiG,MAAM,SAAS1/F,EAAEktG,aAAa7hD,EAAE05B,QAAQrnF,EAAEohD,MAAMphD,EAAEohD,MAAMuM,IAAa,QAATvtD,EAAEkC,EAAEi9D,MAAcn/D,EAAEinF,QAAQ15B,EAAE3tD,EAAEohD,MAAMuM,EAAErrD,EAAEi9D,KAAK5R,EAAE,CAAC,OAAG,OAAOrrD,EAAEqtG,MAAY3vG,EAAEsC,EAAEqtG,KAAKrtG,EAAEmtG,UAC9ezvG,EAAEsC,EAAEqtG,KAAK3vG,EAAEqnF,QAAQ/kF,EAAEotG,mBAAmBn1F,KAAIva,EAAEqnF,QAAQ,KAAKjnF,EAAEoZ,GAAEzuB,QAAQ6yG,GAAEpkF,GAAEnZ,EAAI,EAAFD,EAAI,EAAI,EAAFA,GAAKJ,IAAEqa,GAAEra,GAAU,MAAK,KAAK,GAAG,KAAK,GAAG,OAAOywG,KAAKpwG,EAAE,OAAOL,EAAEinF,cAAc,OAAOlnF,GAAG,OAAOA,EAAEknF,gBAAgB5mF,IAAIL,EAAE+mF,OAAO,MAAM1mF,GAAG,KAAY,EAAPL,EAAE0d,MAAQ,KAAQ,WAAH+vF,MAAiBpzF,GAAEra,GAAkB,EAAfA,EAAEqvG,eAAiBrvG,EAAE+mF,OAAO,OAAO1sE,GAAEra,GAAG,KAAK,KAAK,GAAe,KAAK,GAAG,OAAO,KAAK,MAAM/W,MAAMgvE,EAAE,IAAIj4D,EAAEnS,KAAM,CAClX,SAAS6iH,GAAG3wG,EAAEC,GAAS,OAAN6/F,GAAG7/F,GAAUA,EAAEnS,KAAK,KAAK,EAAE,OAAOuwG,GAAGp+F,EAAEzN,OAAO+rG,KAAiB,OAAZv+F,EAAEC,EAAE+mF,QAAe/mF,EAAE+mF,OAAS,MAAHhnF,EAAS,IAAIC,GAAG,KAAK,KAAK,EAAE,OAAOumG,KAAK5tC,GAAEmlC,IAAInlC,GAAExI,IAAG02C,KAAe,KAAO,OAAjB9mG,EAAEC,EAAE+mF,SAAqB,KAAO,IAAFhnF,IAAQC,EAAE+mF,OAAS,MAAHhnF,EAAS,IAAIC,GAAG,KAAK,KAAK,EAAE,OAAOymG,GAAGzmG,GAAG,KAAK,KAAK,GAA0B,GAAvB24D,GAAEn/C,IAAwB,QAArBzZ,EAAEC,EAAEinF,gBAA2B,OAAOlnF,EAAEmnF,WAAW,CAAC,GAAG,OAAOlnF,EAAE6mF,UAAU,MAAM59F,MAAMgvE,EAAE,MAAM+oC,IAAI,CAAW,OAAS,OAAnBjhG,EAAEC,EAAE+mF,QAAsB/mF,EAAE+mF,OAAS,MAAHhnF,EAAS,IAAIC,GAAG,KAAK,KAAK,GAAG,OAAO24D,GAAEn/C,IAAG,KAAK,KAAK,EAAE,OAAO+sF,KAAK,KAAK,KAAK,GAAG,OAAO9E,GAAGzhG,EAAEzN,KAAK4rF,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOsyB,KAC1gB,KAAyB,QAAQ,OAAO,KAAK,CArB7CrC,GAAG,SAASruG,EAAEC,GAAG,IAAI,IAAII,EAAEJ,EAAEohD,MAAM,OAAOhhD,GAAG,CAAC,GAAG,IAAIA,EAAEvS,KAAK,IAAIuS,EAAEvS,IAAIkS,EAAEo5D,YAAY/4D,EAAEolF,gBAAgB,GAAG,IAAIplF,EAAEvS,KAAK,OAAOuS,EAAEghD,MAAM,CAAChhD,EAAEghD,MAAM0lC,OAAO1mF,EAAEA,EAAEA,EAAEghD,MAAM,QAAQ,CAAC,GAAGhhD,IAAIJ,EAAE,MAAM,KAAK,OAAOI,EAAEinF,SAAS,CAAC,GAAG,OAAOjnF,EAAE0mF,QAAQ1mF,EAAE0mF,SAAS9mF,EAAE,OAAOI,EAAEA,EAAE0mF,MAAM,CAAC1mF,EAAEinF,QAAQP,OAAO1mF,EAAE0mF,OAAO1mF,EAAEA,EAAEinF,OAAO,CAAC,EAAEgnB,GAAG,WAAW,EACxTC,GAAG,SAASvuG,EAAEC,EAAEI,EAAEC,GAAG,IAAIlL,EAAE4K,EAAE+gG,cAAc,GAAG3rG,IAAIkL,EAAE,CAACN,EAAEC,EAAEwlF,UAAU6gB,GAAGH,GAAGn7G,SAAS,IAA4R4iE,EAAxRrrD,EAAE,KAAK,OAAOlC,GAAG,IAAK,QAAQjL,EAAE8pF,EAAGl/E,EAAE5K,GAAGkL,EAAE4+E,EAAGl/E,EAAEM,GAAGiC,EAAE,GAAG,MAAM,IAAK,SAASnN,EAAEwoF,EAAE,CAAC,EAAExoF,EAAE,CAAChQ,WAAM,IAASkb,EAAEs9E,EAAE,CAAC,EAAEt9E,EAAE,CAAClb,WAAM,IAASmd,EAAE,GAAG,MAAM,IAAK,WAAWnN,EAAE4qF,GAAGhgF,EAAE5K,GAAGkL,EAAE0/E,GAAGhgF,EAAEM,GAAGiC,EAAE,GAAG,MAAM,QAAQ,oBAAoBnN,EAAEhC,SAAS,oBAAoBkN,EAAElN,UAAU4M,EAAEqwG,QAAQhU,IAAyB,IAAI5vG,KAAzBo4F,GAAGxkF,EAAEC,GAASD,EAAE,KAAcjL,EAAE,IAAIkL,EAAEvY,eAAe0E,IAAI2I,EAAErN,eAAe0E,IAAI,MAAM2I,EAAE3I,GAAG,GAAG,UAAUA,EAAE,CAAC,IAAIstD,EAAE3kD,EAAE3I,GAAG,IAAImhE,KAAK7T,EAAEA,EAAEhyD,eAAe6lE,KACjfvtD,IAAIA,EAAE,CAAC,GAAGA,EAAEutD,GAAG,GAAG,KAAK,4BAA4BnhE,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAI2uF,EAAGrzF,eAAe0E,GAAG8V,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAIve,KAAKyI,EAAE,OAAO,IAAIA,KAAK6T,EAAE,CAAC,IAAIkC,EAAElC,EAAE7T,GAAyB,GAAtBstD,EAAE,MAAM3kD,EAAEA,EAAE3I,QAAG,EAAU6T,EAAEvY,eAAe0E,IAAI+V,IAAIu3C,IAAI,MAAMv3C,GAAG,MAAMu3C,GAAG,GAAG,UAAUttD,EAAE,GAAGstD,EAAE,CAAC,IAAI6T,KAAK7T,GAAGA,EAAEhyD,eAAe6lE,IAAIprD,GAAGA,EAAEza,eAAe6lE,KAAKvtD,IAAIA,EAAE,CAAC,GAAGA,EAAEutD,GAAG,IAAI,IAAIA,KAAKprD,EAAEA,EAAEza,eAAe6lE,IAAI7T,EAAE6T,KAAKprD,EAAEorD,KAAKvtD,IAAIA,EAAE,CAAC,GAAGA,EAAEutD,GAAGprD,EAAEorD,GAAG,MAAMvtD,IAAIkC,IAAIA,EAAE,IAAIA,EAAEve,KAAKyI,EACpf4T,IAAIA,EAAEmC,MAAM,4BAA4B/V,GAAG+V,EAAEA,EAAEA,EAAEu3D,YAAO,EAAOhgB,EAAEA,EAAEA,EAAEggB,YAAO,EAAO,MAAMv3D,GAAGu3C,IAAIv3C,IAAID,EAAEA,GAAG,IAAIve,KAAKyI,EAAE+V,IAAI,aAAa/V,EAAE,kBAAkB+V,GAAG,kBAAkBA,IAAID,EAAEA,GAAG,IAAIve,KAAKyI,EAAE,GAAG+V,GAAG,mCAAmC/V,GAAG,6BAA6BA,IAAI2uF,EAAGrzF,eAAe0E,IAAI,MAAM+V,GAAG,aAAa/V,GAAGkuG,GAAE,SAAS36F,GAAGuC,GAAGw3C,IAAIv3C,IAAID,EAAE,MAAMA,EAAEA,GAAG,IAAIve,KAAKyI,EAAE+V,GAAG,CAACnC,IAAIkC,EAAEA,GAAG,IAAIve,KAAK,QAAQqc,GAAG,IAAI5T,EAAE8V,GAAKtC,EAAE2iG,YAAYn2G,KAAEwT,EAAE+mF,OAAO,EAAC,CAAC,EAAEwnB,GAAG,SAASxuG,EAAEC,EAAEI,EAAEC,GAAGD,IAAIC,IAAIL,EAAE+mF,OAAO,EAAE,EAkBlb,IAAI4pB,IAAG,EAAGC,IAAE,EAAGC,GAAG,oBAAoBvyC,QAAQA,QAAQN,IAAI8yC,GAAE,KAAK,SAASC,GAAGhxG,EAAEC,GAAG,IAAII,EAAEL,EAAE3U,IAAI,GAAG,OAAOgV,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,KAAK,CAAC,MAAMC,GAAG+vD,GAAErwD,EAAEC,EAAEK,EAAE,MAAMD,EAAErV,QAAQ,IAAI,CAAC,SAASimH,GAAGjxG,EAAEC,EAAEI,GAAG,IAAIA,GAAG,CAAC,MAAMC,GAAG+vD,GAAErwD,EAAEC,EAAEK,EAAE,CAAC,CAAC,IAAI4wG,IAAG,EAIxR,SAASC,GAAGnxG,EAAEC,EAAEI,GAAG,IAAIC,EAAEL,EAAE2iG,YAAyC,GAAG,QAAhCtiG,EAAE,OAAOA,EAAEA,EAAE+oG,WAAW,MAAiB,CAAC,IAAIj0G,EAAEkL,EAAEA,EAAEzZ,KAAK,EAAE,CAAC,IAAIuO,EAAEtH,IAAIkS,KAAKA,EAAE,CAAC,IAAIuC,EAAEnN,EAAEjB,QAAQiB,EAAEjB,aAAQ,OAAO,IAASoO,GAAG0uG,GAAGhxG,EAAEI,EAAEkC,EAAE,CAACnN,EAAEA,EAAEvO,IAAI,OAAOuO,IAAIkL,EAAE,CAAC,CAAC,SAAS8wG,GAAGpxG,EAAEC,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAE2iG,aAAuB3iG,EAAEopG,WAAW,MAAiB,CAAC,IAAIhpG,EAAEJ,EAAEA,EAAEpZ,KAAK,EAAE,CAAC,IAAIwZ,EAAEvS,IAAIkS,KAAKA,EAAE,CAAC,IAAIM,EAAED,EAAEpM,OAAOoM,EAAElM,QAAQmM,GAAG,CAACD,EAAEA,EAAExZ,IAAI,OAAOwZ,IAAIJ,EAAE,CAAC,CAAC,SAASoxG,GAAGrxG,GAAG,IAAIC,EAAED,EAAE3U,IAAI,GAAG,OAAO4U,EAAE,CAAC,IAAII,EAAEL,EAAEylF,UAAiBzlF,EAAElS,IAA8BkS,EAAEK,EAAE,oBAAoBJ,EAAEA,EAAED,GAAGC,EAAEjV,QAAQgV,CAAC,CAAC,CAClf,SAASsxG,GAAGtxG,GAAG,IAAIC,EAAED,EAAE8mF,UAAU,OAAO7mF,IAAID,EAAE8mF,UAAU,KAAKwqB,GAAGrxG,IAAID,EAAEqhD,MAAM,KAAKrhD,EAAEqgG,UAAU,KAAKrgG,EAAEsnF,QAAQ,KAAK,IAAItnF,EAAElS,MAAoB,QAAdmS,EAAED,EAAEylF,oBAA4BxlF,EAAEq9F,WAAWr9F,EAAEs9F,WAAWt9F,EAAE26F,WAAW36F,EAAEu9F,WAAWv9F,EAAEw9F,MAAMz9F,EAAEylF,UAAU,KAAKzlF,EAAE+mF,OAAO,KAAK/mF,EAAE+hG,aAAa,KAAK/hG,EAAE+gG,cAAc,KAAK/gG,EAAEknF,cAAc,KAAKlnF,EAAEugG,aAAa,KAAKvgG,EAAEylF,UAAU,KAAKzlF,EAAE4iG,YAAY,IAAI,CAAC,SAAS2O,GAAGvxG,GAAG,OAAO,IAAIA,EAAElS,KAAK,IAAIkS,EAAElS,KAAK,IAAIkS,EAAElS,GAAG,CACna,SAAS0jH,GAAGxxG,GAAGA,EAAE,OAAO,CAAC,KAAK,OAAOA,EAAEsnF,SAAS,CAAC,GAAG,OAAOtnF,EAAE+mF,QAAQwqB,GAAGvxG,EAAE+mF,QAAQ,OAAO,KAAK/mF,EAAEA,EAAE+mF,MAAM,CAA2B,IAA1B/mF,EAAEsnF,QAAQP,OAAO/mF,EAAE+mF,OAAW/mF,EAAEA,EAAEsnF,QAAQ,IAAItnF,EAAElS,KAAK,IAAIkS,EAAElS,KAAK,KAAKkS,EAAElS,KAAK,CAAC,GAAW,EAARkS,EAAEgnF,MAAQ,SAAShnF,EAAE,GAAG,OAAOA,EAAEqhD,OAAO,IAAIrhD,EAAElS,IAAI,SAASkS,EAAOA,EAAEqhD,MAAM0lC,OAAO/mF,EAAEA,EAAEA,EAAEqhD,KAAK,CAAC,KAAa,EAARrhD,EAAEgnF,OAAS,OAAOhnF,EAAEylF,SAAS,CAAC,CACzT,SAASgsB,GAAGzxG,EAAEC,EAAEI,GAAG,IAAIC,EAAEN,EAAElS,IAAI,GAAG,IAAIwS,GAAG,IAAIA,EAAEN,EAAEA,EAAEylF,UAAUxlF,EAAE,IAAII,EAAE04E,SAAS14E,EAAE0gD,WAAWoY,aAAan5D,EAAEC,GAAGI,EAAE84D,aAAan5D,EAAEC,IAAI,IAAII,EAAE04E,UAAU94E,EAAEI,EAAE0gD,YAAaoY,aAAan5D,EAAEK,IAAKJ,EAAEI,GAAI+4D,YAAYp5D,GAA4B,QAAxBK,EAAEA,EAAEqxG,2BAA8B,IAASrxG,GAAG,OAAOJ,EAAEowG,UAAUpwG,EAAEowG,QAAQhU,UAAU,GAAG,IAAI/7F,GAAc,QAAVN,EAAEA,EAAEqhD,OAAgB,IAAIowD,GAAGzxG,EAAEC,EAAEI,GAAGL,EAAEA,EAAEsnF,QAAQ,OAAOtnF,GAAGyxG,GAAGzxG,EAAEC,EAAEI,GAAGL,EAAEA,EAAEsnF,OAAO,CAC1X,SAASqqB,GAAG3xG,EAAEC,EAAEI,GAAG,IAAIC,EAAEN,EAAElS,IAAI,GAAG,IAAIwS,GAAG,IAAIA,EAAEN,EAAEA,EAAEylF,UAAUxlF,EAAEI,EAAE84D,aAAan5D,EAAEC,GAAGI,EAAE+4D,YAAYp5D,QAAQ,GAAG,IAAIM,GAAc,QAAVN,EAAEA,EAAEqhD,OAAgB,IAAIswD,GAAG3xG,EAAEC,EAAEI,GAAGL,EAAEA,EAAEsnF,QAAQ,OAAOtnF,GAAG2xG,GAAG3xG,EAAEC,EAAEI,GAAGL,EAAEA,EAAEsnF,OAAO,CAAC,IAAIsqB,GAAE,KAAKC,IAAG,EAAG,SAASC,GAAG9xG,EAAEC,EAAEI,GAAG,IAAIA,EAAEA,EAAEghD,MAAM,OAAOhhD,GAAG0xG,GAAG/xG,EAAEC,EAAEI,GAAGA,EAAEA,EAAEinF,OAAO,CACnR,SAASyqB,GAAG/xG,EAAEC,EAAEI,GAAG,GAAG0oF,IAAI,oBAAoBA,GAAGipB,qBAAqB,IAAIjpB,GAAGipB,qBAAqBlpB,GAAGzoF,EAAE,CAAC,MAAM05C,GAAG,CAAC,OAAO15C,EAAEvS,KAAK,KAAK,EAAE+iH,IAAGG,GAAG3wG,EAAEJ,GAAG,KAAK,EAAE,IAAIK,EAAEsxG,GAAEx8G,EAAEy8G,GAAGD,GAAE,KAAKE,GAAG9xG,EAAEC,EAAEI,GAAOwxG,GAAGz8G,EAAE,QAATw8G,GAAEtxG,KAAkBuxG,IAAI7xG,EAAE4xG,GAAEvxG,EAAEA,EAAEolF,UAAU,IAAIzlF,EAAE+4E,SAAS/4E,EAAE+gD,WAAW4/B,YAAYtgF,GAAGL,EAAE2gF,YAAYtgF,IAAIuxG,GAAEjxB,YAAYtgF,EAAEolF,YAAY,MAAM,KAAK,GAAG,OAAOmsB,KAAIC,IAAI7xG,EAAE4xG,GAAEvxG,EAAEA,EAAEolF,UAAU,IAAIzlF,EAAE+4E,SAASkkB,GAAGj9F,EAAE+gD,WAAW1gD,GAAG,IAAIL,EAAE+4E,UAAUkkB,GAAGj9F,EAAEK,GAAGksF,GAAGvsF,IAAIi9F,GAAG2U,GAAEvxG,EAAEolF,YAAY,MAAM,KAAK,EAAEnlF,EAAEsxG,GAAEx8G,EAAEy8G,GAAGD,GAAEvxG,EAAEolF,UAAUuG,cAAc6lB,IAAG,EAClfC,GAAG9xG,EAAEC,EAAEI,GAAGuxG,GAAEtxG,EAAEuxG,GAAGz8G,EAAE,MAAM,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIy7G,KAAoB,QAAhBvwG,EAAED,EAAEuiG,cAAsC,QAAftiG,EAAEA,EAAE+oG,aAAsB,CAACj0G,EAAEkL,EAAEA,EAAEzZ,KAAK,EAAE,CAAC,IAAI0b,EAAEnN,EAAEw4D,EAAErrD,EAAEpO,QAAQoO,EAAEA,EAAEzU,SAAI,IAAS8/D,IAAI,KAAO,EAAFrrD,IAAe,KAAO,EAAFA,KAAf0uG,GAAG5wG,EAAEJ,EAAE2tD,GAAyBx4D,EAAEA,EAAEvO,IAAI,OAAOuO,IAAIkL,EAAE,CAACwxG,GAAG9xG,EAAEC,EAAEI,GAAG,MAAM,KAAK,EAAE,IAAIwwG,KAAIG,GAAG3wG,EAAEJ,GAAiB,oBAAdK,EAAED,EAAEolF,WAAgCwsB,sBAAsB,IAAI3xG,EAAE1X,MAAMyX,EAAE0gG,cAAczgG,EAAEZ,MAAMW,EAAE6mF,cAAc5mF,EAAE2xG,sBAAsB,CAAC,MAAMl4D,GAAGsW,GAAEhwD,EAAEJ,EAAE85C,EAAE,CAAC+3D,GAAG9xG,EAAEC,EAAEI,GAAG,MAAM,KAAK,GAAGyxG,GAAG9xG,EAAEC,EAAEI,GAAG,MAAM,KAAK,GAAU,EAAPA,EAAEsd,MAAQkzF,IAAGvwG,EAAEuwG,KAAI,OAChfxwG,EAAE6mF,cAAc4qB,GAAG9xG,EAAEC,EAAEI,GAAGwwG,GAAEvwG,GAAGwxG,GAAG9xG,EAAEC,EAAEI,GAAG,MAAM,QAAQyxG,GAAG9xG,EAAEC,EAAEI,GAAG,CAAC,SAAS6xG,GAAGlyG,GAAG,IAAIC,EAAED,EAAE4iG,YAAY,GAAG,OAAO3iG,EAAE,CAACD,EAAE4iG,YAAY,KAAK,IAAIviG,EAAEL,EAAEylF,UAAU,OAAOplF,IAAIA,EAAEL,EAAEylF,UAAU,IAAIqrB,IAAI7wG,EAAEzb,SAAQ,SAASyb,GAAG,IAAIK,EAAE6xG,GAAGpiD,KAAK,KAAK/vD,EAAEC,GAAGI,EAAEkwE,IAAItwE,KAAKI,EAAEmiB,IAAIviB,GAAGA,EAAExU,KAAK6U,EAAEA,GAAG,GAAE,CAAC,CACzQ,SAAS8xG,GAAGpyG,EAAEC,GAAG,IAAII,EAAEJ,EAAEogG,UAAU,GAAG,OAAOhgG,EAAE,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAE/b,OAAOgc,IAAI,CAAC,IAAIlL,EAAEiL,EAAEC,GAAG,IAAI,IAAIiC,EAAEvC,EAAE4tD,EAAE3tD,EAAE85C,EAAE6T,EAAE5tD,EAAE,KAAK,OAAO+5C,GAAG,CAAC,OAAOA,EAAEjsD,KAAK,KAAK,EAAE8jH,GAAE73D,EAAE0rC,UAAUosB,IAAG,EAAG,MAAM7xG,EAAE,KAAK,EAA4C,KAAK,EAAE4xG,GAAE73D,EAAE0rC,UAAUuG,cAAc6lB,IAAG,EAAG,MAAM7xG,EAAE+5C,EAAEA,EAAEgtC,MAAM,CAAC,GAAG,OAAO6qB,GAAE,MAAM1oH,MAAMgvE,EAAE,MAAM65C,GAAGxvG,EAAEqrD,EAAEx4D,GAAGw8G,GAAE,KAAKC,IAAG,EAAG,IAAIrvG,EAAEpN,EAAE0xF,UAAU,OAAOtkF,IAAIA,EAAEukF,OAAO,MAAM3xF,EAAE2xF,OAAO,IAAI,CAAC,MAAMt6F,GAAG4jE,GAAEj7D,EAAE6K,EAAExT,EAAE,CAAC,CAAC,GAAkB,MAAfwT,EAAEqvG,aAAmB,IAAIrvG,EAAEA,EAAEohD,MAAM,OAAOphD,GAAGoyG,GAAGpyG,EAAED,GAAGC,EAAEA,EAAEqnF,OAAO,CACje,SAAS+qB,GAAGryG,EAAEC,GAAG,IAAII,EAAEL,EAAE8mF,UAAUxmF,EAAEN,EAAEgnF,MAAM,OAAOhnF,EAAElS,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAiB,GAAdskH,GAAGnyG,EAAED,GAAGsyG,GAAGtyG,GAAQ,EAAFM,EAAI,CAAC,IAAI6wG,GAAG,EAAEnxG,EAAEA,EAAE+mF,QAAQqqB,GAAG,EAAEpxG,EAAE,CAAC,MAAMG,GAAGkwD,GAAErwD,EAAEA,EAAE+mF,OAAO5mF,EAAE,CAAC,IAAIgxG,GAAG,EAAEnxG,EAAEA,EAAE+mF,OAAO,CAAC,MAAM5mF,GAAGkwD,GAAErwD,EAAEA,EAAE+mF,OAAO5mF,EAAE,CAAC,CAAC,MAAM,KAAK,EAAEiyG,GAAGnyG,EAAED,GAAGsyG,GAAGtyG,GAAK,IAAFM,GAAO,OAAOD,GAAG2wG,GAAG3wG,EAAEA,EAAE0mF,QAAQ,MAAM,KAAK,EAAgD,GAA9CqrB,GAAGnyG,EAAED,GAAGsyG,GAAGtyG,GAAK,IAAFM,GAAO,OAAOD,GAAG2wG,GAAG3wG,EAAEA,EAAE0mF,QAAmB,GAAR/mF,EAAEgnF,MAAS,CAAC,IAAI5xF,EAAE4K,EAAEylF,UAAU,IAAI3E,GAAG1rF,EAAE,GAAG,CAAC,MAAM+K,GAAGkwD,GAAErwD,EAAEA,EAAE+mF,OAAO5mF,EAAE,CAAC,CAAC,GAAK,EAAFG,GAAoB,OAAdlL,EAAE4K,EAAEylF,WAAmB,CAAC,IAAIljF,EAAEvC,EAAE+gG,cAAcnzC,EAAE,OAAOvtD,EAAEA,EAAE0gG,cAAcx+F,EAAEw3C,EAAE/5C,EAAExN,KAAKgQ,EAAExC,EAAE4iG,YACje,GAAnB5iG,EAAE4iG,YAAY,KAAQ,OAAOpgG,EAAE,IAAI,UAAUu3C,GAAG,UAAUx3C,EAAE/P,MAAM,MAAM+P,EAAEjb,MAAMqkC,EAAGv2B,EAAEmN,GAAGuiF,GAAG/qC,EAAE6T,GAAG,IAAInhE,EAAEq4F,GAAG/qC,EAAEx3C,GAAG,IAAIqrD,EAAE,EAAEA,EAAEprD,EAAEle,OAAOspE,GAAG,EAAE,CAAC,IAAI9H,EAAEtjD,EAAEorD,GAAG7tD,EAAEyC,EAAEorD,EAAE,GAAG,UAAU9H,EAAEg+B,GAAG1uF,EAAE2K,GAAG,4BAA4B+lD,EAAEy6B,GAAGnrF,EAAE2K,GAAG,aAAa+lD,EAAEg7B,GAAG1rF,EAAE2K,GAAGq8E,EAAGhnF,EAAE0wD,EAAE/lD,EAAEtT,EAAE,CAAC,OAAOstD,GAAG,IAAK,QAAQ0lC,EAAGrqF,EAAEmN,GAAG,MAAM,IAAK,WAAW29E,GAAG9qF,EAAEmN,GAAG,MAAM,IAAK,SAAS,IAAI7V,EAAE0I,EAAEgqF,cAAc8wB,YAAY96G,EAAEgqF,cAAc8wB,cAAc3tG,EAAE4tG,SAAS,IAAItnD,EAAEtmD,EAAEnd,MAAM,MAAMyjE,EAAEg3B,GAAGzqF,IAAImN,EAAE4tG,SAAStnD,GAAE,GAAIn8D,MAAM6V,EAAE4tG,WAAW,MAAM5tG,EAAEiH,aAAaq2E,GAAGzqF,IAAImN,EAAE4tG,SACnf5tG,EAAEiH,cAAa,GAAIq2E,GAAGzqF,IAAImN,EAAE4tG,SAAS5tG,EAAE4tG,SAAS,GAAG,IAAG,IAAK/6G,EAAEmoG,IAAIh7F,CAAC,CAAC,MAAMpC,GAAGkwD,GAAErwD,EAAEA,EAAE+mF,OAAO5mF,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdiyG,GAAGnyG,EAAED,GAAGsyG,GAAGtyG,GAAQ,EAAFM,EAAI,CAAC,GAAG,OAAON,EAAEylF,UAAU,MAAMv8F,MAAMgvE,EAAE,MAAM9iE,EAAE4K,EAAEylF,UAAUljF,EAAEvC,EAAE+gG,cAAc,IAAI3rG,EAAE4rF,UAAUz+E,CAAC,CAAC,MAAMpC,GAAGkwD,GAAErwD,EAAEA,EAAE+mF,OAAO5mF,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdiyG,GAAGnyG,EAAED,GAAGsyG,GAAGtyG,GAAQ,EAAFM,GAAK,OAAOD,GAAGA,EAAE6mF,cAAc6E,aAAa,IAAIQ,GAAGtsF,EAAE+rF,cAAc,CAAC,MAAM7rF,GAAGkwD,GAAErwD,EAAEA,EAAE+mF,OAAO5mF,EAAE,CAAC,MAAM,KAAK,EAG4G,QAAQiyG,GAAGnyG,EACnfD,GAAGsyG,GAAGtyG,SAJ4Y,KAAK,GAAGoyG,GAAGnyG,EAAED,GAAGsyG,GAAGtyG,GAAqB,MAAlB5K,EAAE4K,EAAEqhD,OAAQ2lC,QAAazkF,EAAE,OAAOnN,EAAE8xF,cAAc9xF,EAAEqwF,UAAU8sB,SAAShwG,GAAGA,GAClf,OAAOnN,EAAE0xF,WAAW,OAAO1xF,EAAE0xF,UAAUI,gBAAgBsrB,GAAGh4F,OAAQ,EAAFla,GAAK4xG,GAAGlyG,GAAG,MAAM,KAAK,GAAsF,GAAnF8lD,EAAE,OAAOzlD,GAAG,OAAOA,EAAE6mF,cAAqB,EAAPlnF,EAAE2d,MAAQkzF,IAAGpkH,EAAEokH,KAAI/qD,EAAEssD,GAAGnyG,EAAED,GAAG6wG,GAAEpkH,GAAG2lH,GAAGnyG,EAAED,GAAGsyG,GAAGtyG,GAAQ,KAAFM,EAAO,CAA0B,GAAzB7T,EAAE,OAAOuT,EAAEknF,eAAkBlnF,EAAEylF,UAAU8sB,SAAS9lH,KAAKq5D,GAAG,KAAY,EAAP9lD,EAAE2d,MAAQ,IAAIozF,GAAE/wG,EAAE8lD,EAAE9lD,EAAEqhD,MAAM,OAAOyE,GAAG,CAAC,IAAI/lD,EAAEgxG,GAAEjrD,EAAE,OAAOirD,IAAG,CAAe,OAAVloD,GAAJn8D,EAAEqkH,IAAM1vD,MAAa30D,EAAEoB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAGqjH,GAAG,EAAEzkH,EAAEA,EAAEq6F,QAAQ,MAAM,KAAK,EAAEiqB,GAAGtkH,EAAEA,EAAEq6F,QAAQ,IAAI5/F,EAAEuF,EAAE+4F,UAAU,GAAG,oBAAoBt+F,EAAE8qH,qBAAqB,CAAC3xG,EAAE5T,EAAE2T,EAAE3T,EAAEq6F,OAAO,IAAI9mF,EAAEK,EAAEnZ,EAAEyB,MACpfqX,EAAE8gG,cAAc55G,EAAEuY,MAAMO,EAAEinF,cAAc//F,EAAE8qH,sBAAsB,CAAC,MAAM9xG,GAAGkwD,GAAE/vD,EAAED,EAAEF,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE6wG,GAAGtkH,EAAEA,EAAEq6F,QAAQ,MAAM,KAAK,GAAG,GAAG,OAAOr6F,EAAEw6F,cAAc,CAACurB,GAAG1yG,GAAG,QAAQ,EAAE,OAAO8oD,GAAGA,EAAEk+B,OAAOr6F,EAAEqkH,GAAEloD,GAAG4pD,GAAG1yG,EAAE,CAAC+lD,EAAEA,EAAEwhC,OAAO,CAACtnF,EAAE,IAAI8lD,EAAE,KAAK/lD,EAAEC,IAAI,CAAC,GAAG,IAAID,EAAEjS,KAAK,GAAG,OAAOg4D,EAAE,CAACA,EAAE/lD,EAAE,IAAI3K,EAAE2K,EAAE0lF,UAAUh5F,EAAa,oBAAV8V,EAAEnN,EAAEolE,OAA4BupB,YAAYxhF,EAAEwhF,YAAY,UAAU,OAAO,aAAaxhF,EAAEmwG,QAAQ,QAAS34D,EAAEh6C,EAAE0lF,UAAkC73B,OAAE,KAA1BprD,EAAEzC,EAAEghG,cAAcvmC,QAAoB,OAAOh4D,GAAGA,EAAEza,eAAe,WAAWya,EAAEkwG,QAAQ,KAAK34D,EAAEygB,MAAMk4C,QACzf7uB,GAAG,UAAUj2B,GAAG,CAAC,MAAMztD,GAAGkwD,GAAErwD,EAAEA,EAAE+mF,OAAO5mF,EAAE,CAAC,OAAO,GAAG,IAAIJ,EAAEjS,KAAK,GAAG,OAAOg4D,EAAE,IAAI/lD,EAAE0lF,UAAUzE,UAAUv0F,EAAE,GAAGsT,EAAEghG,aAAa,CAAC,MAAM5gG,GAAGkwD,GAAErwD,EAAEA,EAAE+mF,OAAO5mF,EAAE,OAAO,IAAI,KAAKJ,EAAEjS,KAAK,KAAKiS,EAAEjS,KAAK,OAAOiS,EAAEmnF,eAAennF,IAAIC,IAAI,OAAOD,EAAEshD,MAAM,CAACthD,EAAEshD,MAAM0lC,OAAOhnF,EAAEA,EAAEA,EAAEshD,MAAM,QAAQ,CAAC,GAAGthD,IAAIC,EAAE,MAAMA,EAAE,KAAK,OAAOD,EAAEunF,SAAS,CAAC,GAAG,OAAOvnF,EAAEgnF,QAAQhnF,EAAEgnF,SAAS/mF,EAAE,MAAMA,EAAE8lD,IAAI/lD,IAAI+lD,EAAE,MAAM/lD,EAAEA,EAAEgnF,MAAM,CAACjhC,IAAI/lD,IAAI+lD,EAAE,MAAM/lD,EAAEunF,QAAQP,OAAOhnF,EAAEgnF,OAAOhnF,EAAEA,EAAEunF,OAAO,CAAC,CAAC,MAAM,KAAK,GAAG8qB,GAAGnyG,EAAED,GAAGsyG,GAAGtyG,GAAK,EAAFM,GAAK4xG,GAAGlyG,GAAS,KAAK,IACtd,CAAC,SAASsyG,GAAGtyG,GAAG,IAAIC,EAAED,EAAEgnF,MAAM,GAAK,EAAF/mF,EAAI,CAAC,IAAID,EAAE,CAAC,IAAI,IAAIK,EAAEL,EAAE+mF,OAAO,OAAO1mF,GAAG,CAAC,GAAGkxG,GAAGlxG,GAAG,CAAC,IAAIC,EAAED,EAAE,MAAML,CAAC,CAACK,EAAEA,EAAE0mF,MAAM,CAAC,MAAM79F,MAAMgvE,EAAE,KAAM,CAAC,OAAO53D,EAAExS,KAAK,KAAK,EAAE,IAAIsH,EAAEkL,EAAEmlF,UAAkB,GAARnlF,EAAE0mF,QAAWlG,GAAG1rF,EAAE,IAAIkL,EAAE0mF,QAAQ,IAAgB2qB,GAAG3xG,EAATwxG,GAAGxxG,GAAU5K,GAAG,MAAM,KAAK,EAAE,KAAK,EAAE,IAAIw4D,EAAEttD,EAAEmlF,UAAUuG,cAAsBylB,GAAGzxG,EAATwxG,GAAGxxG,GAAU4tD,GAAG,MAAM,QAAQ,MAAM1kE,MAAMgvE,EAAE,MAAO,CAAC,MAAM11D,GAAG6tD,GAAErwD,EAAEA,EAAE+mF,OAAOvkF,EAAE,CAACxC,EAAEgnF,QAAQ,CAAC,CAAG,KAAF/mF,IAASD,EAAEgnF,QAAQ,KAAK,CAAC,SAAS2rB,GAAG3yG,EAAEC,EAAEI,GAAG0wG,GAAE/wG,EAAE4yG,GAAG5yG,EAAEC,EAAEI,EAAE,CACvb,SAASuyG,GAAG5yG,EAAEC,EAAEI,GAAG,IAAI,IAAIC,EAAE,KAAY,EAAPN,EAAE2d,MAAQ,OAAOozF,IAAG,CAAC,IAAI37G,EAAE27G,GAAExuG,EAAEnN,EAAEisD,MAAM,GAAG,KAAKjsD,EAAEtH,KAAKwS,EAAE,CAAC,IAAIstD,EAAE,OAAOx4D,EAAE8xF,eAAe0pB,GAAG,IAAIhjD,EAAE,CAAC,IAAI7T,EAAE3kD,EAAE0xF,UAAUtkF,EAAE,OAAOu3C,GAAG,OAAOA,EAAEmtC,eAAe2pB,GAAE92D,EAAE62D,GAAG,IAAInkH,EAAEokH,GAAO,GAALD,GAAGhjD,GAAMijD,GAAEruG,KAAK/V,EAAE,IAAIskH,GAAE37G,EAAE,OAAO27G,IAAOvuG,GAAJorD,EAAEmjD,IAAM1vD,MAAM,KAAKuM,EAAE9/D,KAAK,OAAO8/D,EAAEs5B,cAAc2rB,GAAGz9G,GAAG,OAAOoN,GAAGA,EAAEukF,OAAOn5B,EAAEmjD,GAAEvuG,GAAGqwG,GAAGz9G,GAAG,KAAK,OAAOmN,GAAGwuG,GAAExuG,EAAEqwG,GAAGrwG,EAAEtC,EAAEI,GAAGkC,EAAEA,EAAE+kF,QAAQypB,GAAE37G,EAAEw7G,GAAG72D,EAAE82D,GAAEpkH,CAAC,CAACqmH,GAAG9yG,EAAM,MAAM,KAAoB,KAAf5K,EAAEk6G,eAAoB,OAAO/sG,GAAGA,EAAEwkF,OAAO3xF,EAAE27G,GAAExuG,GAAGuwG,GAAG9yG,EAAM,CAAC,CACvc,SAAS8yG,GAAG9yG,GAAG,KAAK,OAAO+wG,IAAG,CAAC,IAAI9wG,EAAE8wG,GAAE,GAAG,KAAa,KAAR9wG,EAAE+mF,OAAY,CAAC,IAAI3mF,EAAEJ,EAAE6mF,UAAU,IAAI,GAAG,KAAa,KAAR7mF,EAAE+mF,OAAY,OAAO/mF,EAAEnS,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG+iH,IAAGO,GAAG,EAAEnxG,GAAG,MAAM,KAAK,EAAE,IAAIK,EAAEL,EAAEwlF,UAAU,GAAW,EAARxlF,EAAE+mF,QAAU6pB,GAAE,GAAG,OAAOxwG,EAAEC,EAAE8kG,wBAAwB,CAAC,IAAIhwG,EAAE6K,EAAElW,cAAckW,EAAEzN,KAAK6N,EAAE0gG,cAAcK,GAAGnhG,EAAEzN,KAAK6N,EAAE0gG,eAAezgG,EAAE0tG,mBAAmB54G,EAAEiL,EAAE6mF,cAAc5mF,EAAEyyG,oCAAoC,CAAC,IAAIxwG,EAAEtC,EAAE2iG,YAAY,OAAOrgG,GAAGmhG,GAAGzjG,EAAEsC,EAAEjC,GAAG,MAAM,KAAK,EAAE,IAAIstD,EAAE3tD,EAAE2iG,YAAY,GAAG,OAAOh1C,EAAE,CAAQ,GAAPvtD,EAAE,KAAQ,OAAOJ,EAAEohD,MAAM,OAAOphD,EAAEohD,MAAMvzD,KAAK,KAAK,EACvf,KAAK,EAAEuS,EAAEJ,EAAEohD,MAAMokC,UAAUie,GAAGzjG,EAAE2tD,EAAEvtD,EAAE,CAAC,MAAM,KAAK,EAAE,IAAI05C,EAAE95C,EAAEwlF,UAAU,GAAG,OAAOplF,GAAW,EAARJ,EAAE+mF,MAAQ,CAAC3mF,EAAE05C,EAAE,IAAIv3C,EAAEvC,EAAE8gG,cAAc,OAAO9gG,EAAEzN,MAAM,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWgQ,EAAE+tG,WAAWlwG,EAAEw4F,QAAQ,MAAM,IAAK,MAAMr2F,EAAEqqD,MAAMxsD,EAAEwsD,IAAIrqD,EAAEqqD,KAAK,CAAC,MAAM,KAAK,EAAQ,KAAK,EAAQ,KAAK,GAAyJ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAhM,KAAK,GAAG,GAAG,OAAO5sD,EAAEinF,cAAc,CAAC,IAAIz6F,EAAEwT,EAAE6mF,UAAU,GAAG,OAAOr6F,EAAE,CAAC,IAAIq5D,EAAEr5D,EAAEy6F,cAAc,GAAG,OAAOphC,EAAE,CAAC,IAAI/lD,EAAE+lD,EAAEqhC,WAAW,OAAOpnF,GAAGwsF,GAAGxsF,EAAE,CAAC,CAAC,CAAC,MAC5c,QAAQ,MAAM7W,MAAMgvE,EAAE,MAAO24C,IAAW,IAAR5wG,EAAE+mF,OAAWqqB,GAAGpxG,EAAE,CAAC,MAAMvT,GAAG2jE,GAAEpwD,EAAEA,EAAE8mF,OAAOr6F,EAAE,CAAC,CAAC,GAAGuT,IAAID,EAAE,CAAC+wG,GAAE,KAAK,KAAK,CAAa,GAAG,QAAf1wG,EAAEJ,EAAEqnF,SAAoB,CAACjnF,EAAE0mF,OAAO9mF,EAAE8mF,OAAOgqB,GAAE1wG,EAAE,KAAK,CAAC0wG,GAAE9wG,EAAE8mF,MAAM,CAAC,CAAC,SAAS0rB,GAAGzyG,GAAG,KAAK,OAAO+wG,IAAG,CAAC,IAAI9wG,EAAE8wG,GAAE,GAAG9wG,IAAID,EAAE,CAAC+wG,GAAE,KAAK,KAAK,CAAC,IAAI1wG,EAAEJ,EAAEqnF,QAAQ,GAAG,OAAOjnF,EAAE,CAACA,EAAE0mF,OAAO9mF,EAAE8mF,OAAOgqB,GAAE1wG,EAAE,KAAK,CAAC0wG,GAAE9wG,EAAE8mF,MAAM,CAAC,CACvS,SAAS8rB,GAAG7yG,GAAG,KAAK,OAAO+wG,IAAG,CAAC,IAAI9wG,EAAE8wG,GAAE,IAAI,OAAO9wG,EAAEnS,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAIuS,EAAEJ,EAAE8mF,OAAO,IAAIqqB,GAAG,EAAEnxG,EAAE,CAAC,MAAMuC,GAAG6tD,GAAEpwD,EAAEI,EAAEmC,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIlC,EAAEL,EAAEwlF,UAAU,GAAG,oBAAoBnlF,EAAE8kG,kBAAkB,CAAC,IAAIhwG,EAAE6K,EAAE8mF,OAAO,IAAIzmF,EAAE8kG,mBAAmB,CAAC,MAAM5iG,GAAG6tD,GAAEpwD,EAAE7K,EAAEoN,EAAE,CAAC,CAAC,IAAID,EAAEtC,EAAE8mF,OAAO,IAAIsqB,GAAGpxG,EAAE,CAAC,MAAMuC,GAAG6tD,GAAEpwD,EAAEsC,EAAEC,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIorD,EAAE3tD,EAAE8mF,OAAO,IAAIsqB,GAAGpxG,EAAE,CAAC,MAAMuC,GAAG6tD,GAAEpwD,EAAE2tD,EAAEprD,EAAE,EAAE,CAAC,MAAMA,GAAG6tD,GAAEpwD,EAAEA,EAAE8mF,OAAOvkF,EAAE,CAAC,GAAGvC,IAAID,EAAE,CAAC+wG,GAAE,KAAK,KAAK,CAAC,IAAIh3D,EAAE95C,EAAEqnF,QAAQ,GAAG,OAAOvtC,EAAE,CAACA,EAAEgtC,OAAO9mF,EAAE8mF,OAAOgqB,GAAEh3D,EAAE,KAAK,CAACg3D,GAAE9wG,EAAE8mF,MAAM,CAAC,CAC7d,IAwBkNisB,GAxB9MC,GAAG/xG,KAAKwhC,KAAKwwE,GAAGx2B,EAAGuqB,uBAAuBkM,GAAGz2B,EAAGmwB,kBAAkBuG,GAAG12B,EAAG+P,wBAAwBt8B,GAAE,EAAEg5C,GAAE,KAAKkK,GAAE,KAAKr5C,GAAE,EAAE0zC,GAAG,EAAED,GAAG7P,GAAG,GAAGttC,GAAE,EAAEgjD,GAAG,KAAK9yG,GAAG,EAAE+yG,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,GAAG,KAAKlB,GAAG,EAAE/B,GAAGjkD,IAASmnD,GAAG,KAAK3H,IAAG,EAAGC,GAAG,KAAKI,GAAG,KAAKuH,IAAG,EAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAE,SAASp6F,KAAI,OAAO,KAAO,EAAFq2C,IAAK31C,MAAK,IAAIy5F,GAAGA,GAAGA,GAAGz5F,IAAG,CAChU,SAAS0pF,GAAGlkG,GAAG,OAAG,KAAY,EAAPA,EAAE2d,MAAe,EAAK,KAAO,EAAFwyC,KAAM,IAAI6J,GAASA,IAAGA,GAAK,OAAOmnC,GAAG1lE,YAAkB,IAAIy4E,KAAKA,GAAGnqB,MAAMmqB,IAAU,KAAPl0G,EAAEoqF,IAAkBpqF,EAAiBA,OAAE,KAAjBA,EAAE1L,OAAO5J,OAAmB,GAAGuiG,GAAGjtF,EAAExN,KAAc,CAAC,SAAS2xG,GAAGnkG,EAAEC,EAAEI,EAAEC,GAAG,GAAG,GAAGyzG,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAK9qH,MAAMgvE,EAAE,MAAM+xB,GAAGjqF,EAAEK,EAAEC,GAAM,KAAO,EAAF6vD,KAAMnwD,IAAImpG,KAAEnpG,IAAImpG,KAAI,KAAO,EAAFh5C,MAAOojD,IAAIlzG,GAAG,IAAIiwD,IAAG6jD,GAAGn0G,EAAEg6D,KAAIo6C,GAAGp0G,EAAEM,GAAG,IAAID,GAAG,IAAI8vD,IAAG,KAAY,EAAPlwD,EAAE0d,QAAU8yF,GAAGj2F,KAAI,IAAIukF,IAAIE,MAAK,CAC1Y,SAASmV,GAAGp0G,EAAEC,GAAG,IAAII,EAAEL,EAAEq0G,cA5MzB,SAAYr0G,EAAEC,GAAG,IAAI,IAAII,EAAEL,EAAEypF,eAAenpF,EAAEN,EAAE0pF,YAAYt0F,EAAE4K,EAAEs0G,gBAAgB/xG,EAAEvC,EAAEwpF,aAAa,EAAEjnF,GAAG,CAAC,IAAIqrD,EAAE,GAAGo7B,GAAGzmF,GAAGw3C,EAAE,GAAG6T,EAAEprD,EAAEpN,EAAEw4D,IAAO,IAAIprD,EAAM,KAAKu3C,EAAE15C,IAAI,KAAK05C,EAAEz5C,KAAGlL,EAAEw4D,GAAGi8B,GAAG9vC,EAAE95C,IAAQuC,GAAGvC,IAAID,EAAEu0G,cAAcx6D,GAAGx3C,IAAIw3C,CAAC,CAAC,CA4MnLy6D,CAAGx0G,EAAEC,GAAG,IAAIK,EAAEipF,GAAGvpF,EAAEA,IAAImpG,GAAEnvC,GAAE,GAAG,GAAG,IAAI15D,EAAE,OAAOD,GAAGsnF,GAAGtnF,GAAGL,EAAEq0G,aAAa,KAAKr0G,EAAEy0G,iBAAiB,OAAO,GAAGx0G,EAAEK,GAAGA,EAAEN,EAAEy0G,mBAAmBx0G,EAAE,CAAgB,GAAf,MAAMI,GAAGsnF,GAAGtnF,GAAM,IAAIJ,EAAE,IAAID,EAAElS,IA7IsJ,SAAYkS,GAAG++F,IAAG,EAAGC,GAAGh/F,EAAE,CA6I5K00G,CAAGC,GAAG5kD,KAAK,KAAK/vD,IAAIg/F,GAAG2V,GAAG5kD,KAAK,KAAK/vD,IAAI68F,IAAG,WAAW,KAAO,EAAF1sC,KAAM8uC,IAAI,IAAG5+F,EAAE,SAAS,CAAC,OAAOgqF,GAAG/pF,IAAI,KAAK,EAAED,EAAE+nF,GAAG,MAAM,KAAK,EAAE/nF,EAAEioF,GAAG,MAAM,KAAK,GAAwC,QAAQjoF,EAAEmoF,SAApC,KAAK,UAAUnoF,EAAEuoF,GAAsBvoF,EAAEu0G,GAAGv0G,EAAEw0G,GAAG9kD,KAAK,KAAK/vD,GAAG,CAACA,EAAEy0G,iBAAiBx0G,EAAED,EAAEq0G,aAAah0G,CAAC,CAAC,CAC7c,SAASw0G,GAAG70G,EAAEC,GAAc,GAAXg0G,IAAI,EAAEC,GAAG,EAAK,KAAO,EAAF/jD,IAAK,MAAMjnE,MAAMgvE,EAAE,MAAM,IAAI73D,EAAEL,EAAEq0G,aAAa,GAAGS,MAAM90G,EAAEq0G,eAAeh0G,EAAE,OAAO,KAAK,IAAIC,EAAEipF,GAAGvpF,EAAEA,IAAImpG,GAAEnvC,GAAE,GAAG,GAAG,IAAI15D,EAAE,OAAO,KAAK,GAAG,KAAO,GAAFA,IAAO,KAAKA,EAAEN,EAAEu0G,eAAet0G,EAAEA,EAAE80G,GAAG/0G,EAAEM,OAAO,CAACL,EAAEK,EAAE,IAAIlL,EAAE+6D,GAAEA,IAAG,EAAE,IAAI5tD,EAAEyyG,KAAgD,IAAxC7L,KAAInpG,GAAGg6D,KAAI/5D,IAAE0zG,GAAG,KAAKlD,GAAGj2F,KAAI,IAAIy6F,GAAGj1G,EAAEC,UAAUi1G,KAAK,KAAK,CAAC,MAAMn7D,GAAGo7D,GAAGn1G,EAAE+5C,EAAE,CAAU0nD,KAAKyR,GAAGloH,QAAQuX,EAAE4tD,GAAE/6D,EAAE,OAAOi+G,GAAEpzG,EAAE,GAAGkpG,GAAE,KAAKnvC,GAAE,EAAE/5D,EAAEqwD,GAAE,CAAC,GAAG,IAAIrwD,EAAE,CAAyC,GAAxC,IAAIA,IAAY,KAAR7K,EAAE00F,GAAG9pF,MAAWM,EAAElL,EAAE6K,EAAEm1G,GAAGp1G,EAAE5K,KAAQ,IAAI6K,EAAE,MAAMI,EAAEizG,GAAG2B,GAAGj1G,EAAE,GAAGm0G,GAAGn0G,EAAEM,GAAG8zG,GAAGp0G,EAAEwa,MAAKna,EAAE,GAAG,IAAIJ,EAAEk0G,GAAGn0G,EAAEM,OAChf,CAAuB,GAAtBlL,EAAE4K,EAAEhV,QAAQ87F,UAAa,KAAO,GAAFxmF,KAGnC,SAAYN,GAAG,IAAI,IAAIC,EAAED,IAAI,CAAC,GAAW,MAARC,EAAE+mF,MAAY,CAAC,IAAI3mF,EAAEJ,EAAE2iG,YAAY,GAAG,OAAOviG,GAAe,QAAXA,EAAEA,EAAEipG,QAAiB,IAAI,IAAIhpG,EAAE,EAAEA,EAAED,EAAE/b,OAAOgc,IAAI,CAAC,IAAIlL,EAAEiL,EAAEC,GAAGiC,EAAEnN,EAAE4zG,YAAY5zG,EAAEA,EAAEhQ,MAAM,IAAI,IAAIwxG,GAAGr0F,IAAInN,GAAG,OAAM,CAAE,CAAC,MAAMw4D,GAAG,OAAM,CAAE,CAAC,CAAC,CAAW,GAAVvtD,EAAEJ,EAAEohD,MAAwB,MAAfphD,EAAEqvG,cAAoB,OAAOjvG,EAAEA,EAAE0mF,OAAO9mF,EAAEA,EAAEI,MAAM,CAAC,GAAGJ,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAEqnF,SAAS,CAAC,GAAG,OAAOrnF,EAAE8mF,QAAQ9mF,EAAE8mF,SAAS/mF,EAAE,OAAM,EAAGC,EAAEA,EAAE8mF,MAAM,CAAC9mF,EAAEqnF,QAAQP,OAAO9mF,EAAE8mF,OAAO9mF,EAAEA,EAAEqnF,OAAO,CAAC,CAAC,OAAM,CAAE,CAHvX+tB,CAAGjgH,KAAe,KAAV6K,EAAE80G,GAAG/0G,EAAEM,MAAmB,KAARiC,EAAEunF,GAAG9pF,MAAWM,EAAEiC,EAAEtC,EAAEm1G,GAAGp1G,EAAEuC,KAAK,IAAItC,GAAG,MAAMI,EAAEizG,GAAG2B,GAAGj1G,EAAE,GAAGm0G,GAAGn0G,EAAEM,GAAG8zG,GAAGp0G,EAAEwa,MAAKna,EAAqC,OAAnCL,EAAEs1G,aAAalgH,EAAE4K,EAAEu1G,cAAcj1G,EAASL,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM/W,MAAMgvE,EAAE,MAAM,KAAK,EAC8B,KAAK,EAAEs9C,GAAGx1G,EAAE0zG,GAAGC,IAAI,MAD7B,KAAK,EAAU,GAARQ,GAAGn0G,EAAEM,IAAS,UAAFA,KAAeA,GAAiB,IAAbL,EAAEuyG,GAAG,IAAIh4F,MAAU,CAAC,GAAG,IAAI+uE,GAAGvpF,EAAE,GAAG,MAAyB,KAAnB5K,EAAE4K,EAAEypF,gBAAqBnpF,KAAKA,EAAE,CAACwZ,KAAI9Z,EAAE0pF,aAAa1pF,EAAEypF,eAAer0F,EAAE,KAAK,CAAC4K,EAAEy1G,cAAchZ,GAAG+Y,GAAGzlD,KAAK,KAAK/vD,EAAE0zG,GAAGC,IAAI1zG,GAAG,KAAK,CAACu1G,GAAGx1G,EAAE0zG,GAAGC,IAAI,MAAM,KAAK,EAAU,GAARQ,GAAGn0G,EAAEM,IAAS,QAAFA,KAC9eA,EAAE,MAAqB,IAAfL,EAAED,EAAEkqF,WAAe90F,GAAG,EAAE,EAAEkL,GAAG,CAAC,IAAIstD,EAAE,GAAGo7B,GAAG1oF,GAAGiC,EAAE,GAAGqrD,GAAEA,EAAE3tD,EAAE2tD,IAAKx4D,IAAIA,EAAEw4D,GAAGttD,IAAIiC,CAAC,CAAqG,GAApGjC,EAAElL,EAAqG,IAA3FkL,GAAG,KAAXA,EAAEka,KAAIla,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAK2yG,GAAG3yG,EAAE,OAAOA,GAAU,CAACN,EAAEy1G,cAAchZ,GAAG+Y,GAAGzlD,KAAK,KAAK/vD,EAAE0zG,GAAGC,IAAIrzG,GAAG,KAAK,CAACk1G,GAAGx1G,EAAE0zG,GAAGC,IAAI,MAA+B,QAAQ,MAAMzqH,MAAMgvE,EAAE,MAAO,CAAC,CAAW,OAAVk8C,GAAGp0G,EAAEwa,MAAYxa,EAAEq0G,eAAeh0G,EAAEw0G,GAAG9kD,KAAK,KAAK/vD,GAAG,IAAI,CACrX,SAASo1G,GAAGp1G,EAAEC,GAAG,IAAII,EAAEozG,GAA2G,OAAxGzzG,EAAEhV,QAAQk8F,cAAc6E,eAAekpB,GAAGj1G,EAAEC,GAAG+mF,OAAO,KAAe,KAAVhnF,EAAE+0G,GAAG/0G,EAAEC,MAAWA,EAAEyzG,GAAGA,GAAGrzG,EAAE,OAAOJ,GAAGgwG,GAAGhwG,IAAWD,CAAC,CAAC,SAASiwG,GAAGjwG,GAAG,OAAO0zG,GAAGA,GAAG1zG,EAAE0zG,GAAG1vH,KAAKC,MAAMyvH,GAAG1zG,EAAE,CAE5L,SAASm0G,GAAGn0G,EAAEC,GAAuD,IAApDA,IAAIuzG,GAAGvzG,IAAIszG,GAAGvzG,EAAEypF,gBAAgBxpF,EAAED,EAAE0pF,cAAczpF,EAAMD,EAAEA,EAAEs0G,gBAAgB,EAAEr0G,GAAG,CAAC,IAAII,EAAE,GAAG2oF,GAAG/oF,GAAGK,EAAE,GAAGD,EAAEL,EAAEK,IAAI,EAAEJ,IAAIK,CAAC,CAAC,CAAC,SAASq0G,GAAG30G,GAAG,GAAG,KAAO,EAAFmwD,IAAK,MAAMjnE,MAAMgvE,EAAE,MAAM48C,KAAK,IAAI70G,EAAEspF,GAAGvpF,EAAE,GAAG,GAAG,KAAO,EAAFC,GAAK,OAAOm0G,GAAGp0G,EAAEwa,MAAK,KAAK,IAAIna,EAAE00G,GAAG/0G,EAAEC,GAAG,GAAG,IAAID,EAAElS,KAAK,IAAIuS,EAAE,CAAC,IAAIC,EAAEwpF,GAAG9pF,GAAG,IAAIM,IAAIL,EAAEK,EAAED,EAAE+0G,GAAGp1G,EAAEM,GAAG,CAAC,GAAG,IAAID,EAAE,MAAMA,EAAEizG,GAAG2B,GAAGj1G,EAAE,GAAGm0G,GAAGn0G,EAAEC,GAAGm0G,GAAGp0G,EAAEwa,MAAKna,EAAE,GAAG,IAAIA,EAAE,MAAMnX,MAAMgvE,EAAE,MAAiF,OAA3El4D,EAAEs1G,aAAat1G,EAAEhV,QAAQ87F,UAAU9mF,EAAEu1G,cAAct1G,EAAEu1G,GAAGx1G,EAAE0zG,GAAGC,IAAIS,GAAGp0G,EAAEwa,MAAY,IAAI,CACvd,SAASk7F,GAAG11G,EAAEC,GAAG,IAAII,EAAE8vD,GAAEA,IAAG,EAAE,IAAI,OAAOnwD,EAAEC,EAAE,CAAC,QAAY,KAAJkwD,GAAE9vD,KAAUowG,GAAGj2F,KAAI,IAAIukF,IAAIE,KAAK,CAAC,CAAC,SAAS0W,GAAG31G,GAAG,OAAO6zG,IAAI,IAAIA,GAAG/lH,KAAK,KAAO,EAAFqiE,KAAM2kD,KAAK,IAAI70G,EAAEkwD,GAAEA,IAAG,EAAE,IAAI9vD,EAAE+yG,GAAG33E,WAAWn7B,EAAE8pF,GAAE,IAAI,GAAGgpB,GAAG33E,WAAW,KAAK2uD,GAAE,EAAEpqF,EAAE,OAAOA,GAAG,CAAC,QAAQoqF,GAAE9pF,EAAE8yG,GAAG33E,WAAWp7B,EAAM,KAAO,GAAX8vD,GAAElwD,KAAag/F,IAAI,CAAC,CAAC,SAASyR,KAAKhD,GAAGD,GAAGziH,QAAQ4tE,GAAE60C,GAAG,CAChT,SAASwH,GAAGj1G,EAAEC,GAAGD,EAAEs1G,aAAa,KAAKt1G,EAAEu1G,cAAc,EAAE,IAAIl1G,EAAEL,EAAEy1G,cAAiD,IAAlC,IAAIp1G,IAAIL,EAAEy1G,eAAe,EAAE/Y,GAAGr8F,IAAO,OAAOgzG,GAAE,IAAIhzG,EAAEgzG,GAAEtsB,OAAO,OAAO1mF,GAAG,CAAC,IAAIC,EAAED,EAAQ,OAANy/F,GAAGx/F,GAAUA,EAAExS,KAAK,KAAK,EAA6B,QAA3BwS,EAAEA,EAAE9N,KAAK8rG,yBAA4B,IAASh+F,GAAGi+F,KAAK,MAAM,KAAK,EAAEiI,KAAK5tC,GAAEmlC,IAAInlC,GAAExI,IAAG02C,KAAK,MAAM,KAAK,EAAEJ,GAAGpmG,GAAG,MAAM,KAAK,EAAEkmG,KAAK,MAAM,KAAK,GAAc,KAAK,GAAG5tC,GAAEn/C,IAAG,MAAM,KAAK,GAAGioF,GAAGphG,EAAE9N,KAAK4rF,UAAU,MAAM,KAAK,GAAG,KAAK,GAAGsyB,KAAKrwG,EAAEA,EAAE0mF,MAAM,CAAqE,GAApEoiB,GAAEnpG,EAAEqzG,GAAErzG,EAAE2lG,GAAG3lG,EAAEhV,QAAQ,MAAMgvE,GAAE0zC,GAAGztG,EAAEqwD,GAAE,EAAEgjD,GAAG,KAAKE,GAAGD,GAAG/yG,GAAG,EAAEkzG,GAAGD,GAAG,KAAQ,OAAOpR,GAAG,CAAC,IAAIpiG,EAC1f,EAAEA,EAAEoiG,GAAG/9G,OAAO2b,IAAI,GAA2B,QAAhBK,GAARD,EAAEgiG,GAAGpiG,IAAOuiG,aAAqB,CAACniG,EAAEmiG,YAAY,KAAK,IAAIptG,EAAEkL,EAAEzZ,KAAK0b,EAAElC,EAAE4iG,QAAQ,GAAG,OAAO1gG,EAAE,CAAC,IAAIqrD,EAAErrD,EAAE1b,KAAK0b,EAAE1b,KAAKuO,EAAEkL,EAAEzZ,KAAK+mE,CAAC,CAACvtD,EAAE4iG,QAAQ3iG,CAAC,CAAC+hG,GAAG,IAAI,CAAC,OAAOriG,CAAC,CAC3K,SAASm1G,GAAGn1G,EAAEC,GAAG,OAAE,CAAC,IAAII,EAAEgzG,GAAE,IAAuB,GAAnB5R,KAAKuF,GAAGh8G,QAAQ+8G,GAAMV,GAAG,CAAC,IAAI,IAAI/mG,EAAEia,GAAE2sE,cAAc,OAAO5mF,GAAG,CAAC,IAAIlL,EAAEkL,EAAE6nG,MAAM,OAAO/yG,IAAIA,EAAE6tG,QAAQ,MAAM3iG,EAAEA,EAAEzZ,IAAI,CAACwgH,IAAG,CAAE,CAA4C,GAA3CF,GAAG,EAAEC,GAAE5uC,GAAEj+C,GAAE,KAAK+sF,IAAG,EAAGC,GAAG,EAAE4L,GAAGnoH,QAAQ,KAAQ,OAAOqV,GAAG,OAAOA,EAAE0mF,OAAO,CAACz2B,GAAE,EAAEgjD,GAAGrzG,EAAEozG,GAAE,KAAK,KAAK,CAACrzG,EAAE,CAAC,IAAIuC,EAAEvC,EAAE4tD,EAAEvtD,EAAE0mF,OAAOhtC,EAAE15C,EAAEmC,EAAEvC,EAAqB,GAAnBA,EAAE+5D,GAAEjgB,EAAEitC,OAAO,MAAS,OAAOxkF,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAE/W,KAAK,CAAC,IAAIgB,EAAE+V,EAAEsjD,EAAE/L,EAAEh6C,EAAE+lD,EAAEh4D,IAAI,GAAG,KAAY,EAAPg4D,EAAEnoC,QAAU,IAAI5d,GAAG,KAAKA,GAAG,KAAKA,GAAG,CAAC,IAAIrT,EAAEo5D,EAAEghC,UAAUp6F,GAAGo5D,EAAE88C,YAAYl2G,EAAEk2G,YAAY98C,EAAEohC,cAAcx6F,EAAEw6F,cACxephC,EAAEm8C,MAAMv1G,EAAEu1G,QAAQn8C,EAAE88C,YAAY,KAAK98C,EAAEohC,cAAc,KAAK,CAAC,IAAIr+B,EAAE6jD,GAAG9+C,GAAG,GAAG,OAAO/E,EAAE,CAACA,EAAEm+B,QAAQ,IAAI2lB,GAAG9jD,EAAE+E,EAAE7T,EAAEx3C,EAAEtC,GAAU,EAAP4oD,EAAElrC,MAAQ4uF,GAAGhqG,EAAE9V,EAAEwT,GAAOuC,EAAE/V,EAAE,IAAItF,GAAZ8Y,EAAE4oD,GAAc+5C,YAAY,GAAG,OAAOz7G,EAAE,CAAC,IAAIgZ,EAAE,IAAI89D,IAAI99D,EAAEqiB,IAAIhgB,GAAGvC,EAAE2iG,YAAYziG,CAAC,MAAMhZ,EAAEq7B,IAAIhgB,GAAG,MAAMxC,CAAC,CAAM,GAAG,KAAO,EAAFC,GAAK,CAACssG,GAAGhqG,EAAE9V,EAAEwT,GAAGivG,KAAK,MAAMlvG,CAAC,CAACwC,EAAEtZ,MAAMgvE,EAAE,KAAM,MAAM,GAAG+nC,IAAU,EAAPlmD,EAAEp8B,KAAO,CAAC,IAAIw9E,EAAEuR,GAAG9+C,GAAG,GAAG,OAAOutC,EAAE,CAAC,KAAa,MAARA,EAAEnU,SAAemU,EAAEnU,OAAO,KAAK2lB,GAAGxR,EAAEvtC,EAAE7T,EAAEx3C,EAAEtC,GAAGihG,GAAGyK,GAAGnpG,EAAEu3C,IAAI,MAAM/5C,CAAC,CAAC,CAACuC,EAAEC,EAAEmpG,GAAGnpG,EAAEu3C,GAAG,IAAIuW,KAAIA,GAAE,GAAG,OAAOmjD,GAAGA,GAAG,CAAClxG,GAAGkxG,GAAGzvH,KAAKue,GAAGA,EAAEqrD,EAAE,EAAE,CAAC,OAAOrrD,EAAEzU,KAAK,KAAK,EAAEyU,EAAEykF,OAAO,MACpf/mF,IAAIA,EAAEsC,EAAE0/F,OAAOhiG,EAAkBujG,GAAGjhG,EAAbwpG,GAAGxpG,EAAEC,EAAEvC,IAAW,MAAMD,EAAE,KAAK,EAAE+5C,EAAEv3C,EAAE,IAAIF,EAAEC,EAAE/P,KAAK8Q,EAAEf,EAAEkjF,UAAU,GAAG,KAAa,IAARljF,EAAEykF,SAAa,oBAAoB1kF,EAAE6pG,0BAA0B,OAAO7oG,GAAG,oBAAoBA,EAAE8oG,oBAAoB,OAAOC,KAAKA,GAAG97B,IAAIjtE,KAAK,CAACf,EAAEykF,OAAO,MAAM/mF,IAAIA,EAAEsC,EAAE0/F,OAAOhiG,EAAkBujG,GAAGjhG,EAAb2pG,GAAG3pG,EAAEw3C,EAAE95C,IAAW,MAAMD,CAAC,EAAEuC,EAAEA,EAAEwkF,MAAM,OAAO,OAAOxkF,EAAE,CAACqzG,GAAGv1G,EAAE,CAAC,MAAMq7F,GAAIz7F,EAAEy7F,EAAG2X,KAAIhzG,GAAG,OAAOA,IAAIgzG,GAAEhzG,EAAEA,EAAE0mF,QAAQ,QAAQ,CAAC,KAAK,CAAS,CAAC,SAASiuB,KAAK,IAAIh1G,EAAEkzG,GAAGloH,QAAsB,OAAdkoH,GAAGloH,QAAQ+8G,GAAU,OAAO/nG,EAAE+nG,GAAG/nG,CAAC,CACrd,SAASkvG,KAAQ,IAAI5+C,IAAG,IAAIA,IAAG,IAAIA,KAAEA,GAAE,GAAE,OAAO64C,IAAG,KAAQ,UAAH3oG,KAAe,KAAQ,UAAH+yG,KAAeY,GAAGhL,GAAEnvC,GAAE,CAAC,SAAS+6C,GAAG/0G,EAAEC,GAAG,IAAII,EAAE8vD,GAAEA,IAAG,EAAE,IAAI7vD,EAAE00G,KAAqC,IAA7B7L,KAAInpG,GAAGg6D,KAAI/5D,IAAE0zG,GAAG,KAAKsB,GAAGj1G,EAAEC,UAAU41G,KAAK,KAAK,CAAC,MAAMzgH,GAAG+/G,GAAGn1G,EAAE5K,EAAE,CAAgC,GAAtBqsG,KAAKtxC,GAAE9vD,EAAE6yG,GAAGloH,QAAQsV,EAAK,OAAO+yG,GAAE,MAAMnqH,MAAMgvE,EAAE,MAAiB,OAAXixC,GAAE,KAAKnvC,GAAE,EAAS1J,EAAC,CAAC,SAASulD,KAAK,KAAK,OAAOxC,IAAGyC,GAAGzC,GAAE,CAAC,SAAS6B,KAAK,KAAK,OAAO7B,KAAIxrB,MAAMiuB,GAAGzC,GAAE,CAAC,SAASyC,GAAG91G,GAAG,IAAIC,EAAE+yG,GAAGhzG,EAAE8mF,UAAU9mF,EAAE0tG,IAAI1tG,EAAE+gG,cAAc/gG,EAAEugG,aAAa,OAAOtgG,EAAE21G,GAAG51G,GAAGqzG,GAAEpzG,EAAEkzG,GAAGnoH,QAAQ,IAAI,CAC1d,SAAS4qH,GAAG51G,GAAG,IAAIC,EAAED,EAAE,EAAE,CAAC,IAAIK,EAAEJ,EAAE6mF,UAAqB,GAAX9mF,EAAEC,EAAE8mF,OAAU,KAAa,MAAR9mF,EAAE+mF,QAAc,GAAgB,QAAb3mF,EAAE2vG,GAAG3vG,EAAEJ,EAAEytG,KAAkB,YAAJ2F,GAAEhzG,OAAc,CAAW,GAAG,QAAbA,EAAEswG,GAAGtwG,EAAEJ,IAAmC,OAAnBI,EAAE2mF,OAAO,WAAMqsB,GAAEhzG,GAAS,GAAG,OAAOL,EAAmE,OAAXswD,GAAE,OAAE+iD,GAAE,MAA5DrzG,EAAEgnF,OAAO,MAAMhnF,EAAEsvG,aAAa,EAAEtvG,EAAEqgG,UAAU,IAA4B,CAAa,GAAG,QAAfpgG,EAAEA,EAAEqnF,SAAyB,YAAJ+rB,GAAEpzG,GAASozG,GAAEpzG,EAAED,CAAC,OAAO,OAAOC,GAAG,IAAIqwD,KAAIA,GAAE,EAAE,CAAC,SAASklD,GAAGx1G,EAAEC,EAAEI,GAAG,IAAIC,EAAE8pF,GAAEh1F,EAAEg+G,GAAG33E,WAAW,IAAI23E,GAAG33E,WAAW,KAAK2uD,GAAE,EAC3Y,SAAYpqF,EAAEC,EAAEI,EAAEC,GAAG,GAAGw0G,WAAW,OAAOjB,IAAI,GAAG,KAAO,EAAF1jD,IAAK,MAAMjnE,MAAMgvE,EAAE,MAAM73D,EAAEL,EAAEs1G,aAAa,IAAIlgH,EAAE4K,EAAEu1G,cAAc,GAAG,OAAOl1G,EAAE,OAAO,KAA2C,GAAtCL,EAAEs1G,aAAa,KAAKt1G,EAAEu1G,cAAc,EAAKl1G,IAAIL,EAAEhV,QAAQ,MAAM9B,MAAMgvE,EAAE,MAAMl4D,EAAEq0G,aAAa,KAAKr0G,EAAEy0G,iBAAiB,EAAE,IAAIlyG,EAAElC,EAAE4hG,MAAM5hG,EAAEwhG,WAA8J,GA1NtT,SAAY7hG,EAAEC,GAAG,IAAII,EAAEL,EAAEwpF,cAAcvpF,EAAED,EAAEwpF,aAAavpF,EAAED,EAAEypF,eAAe,EAAEzpF,EAAE0pF,YAAY,EAAE1pF,EAAEu0G,cAAct0G,EAAED,EAAE+1G,kBAAkB91G,EAAED,EAAE2pF,gBAAgB1pF,EAAEA,EAAED,EAAE4pF,cAAc,IAAItpF,EAAEN,EAAEkqF,WAAW,IAAIlqF,EAAEA,EAAEs0G,gBAAgB,EAAEj0G,GAAG,CAAC,IAAIjL,EAAE,GAAG4zF,GAAG3oF,GAAGkC,EAAE,GAAGnN,EAAE6K,EAAE7K,GAAG,EAAEkL,EAAElL,IAAI,EAAE4K,EAAE5K,IAAI,EAAEiL,IAAIkC,CAAC,CAAC,CA0N5GyzG,CAAGh2G,EAAEuC,GAAGvC,IAAImpG,KAAIkK,GAAElK,GAAE,KAAKnvC,GAAE,GAAG,KAAoB,KAAf35D,EAAEivG,eAAoB,KAAa,KAARjvG,EAAE2mF,QAAa4sB,KAAKA,IAAG,EAAGgB,GAAGpsB,IAAG,WAAgB,OAALssB,KAAY,IAAI,KAAIvyG,EAAE,KAAa,MAARlC,EAAE2mF,OAAgB,KAAoB,MAAf3mF,EAAEivG,eAAqB/sG,EAAE,CAACA,EAAE6wG,GAAG33E,WAAW23E,GAAG33E,WAAW,KAChf,IAAImyB,EAAEw8B,GAAEA,GAAE,EAAE,IAAIrwC,EAAEoW,GAAEA,IAAG,EAAEgjD,GAAGnoH,QAAQ,KA1CpC,SAAYgV,EAAEC,GAAgB,GAAbq8F,GAAG5P,GAAa4K,GAAVt3F,EAAEm3F,MAAc,CAAC,GAAG,mBAAmBn3F,EAAE,IAAIK,EAAE,CAAC6+C,MAAMl/C,EAAE23F,eAAe75D,IAAI99B,EAAE43F,mBAAmB53F,EAAE,CAA8C,IAAIM,GAAjDD,GAAGA,EAAEL,EAAE2/E,gBAAgBt/E,EAAEw3F,aAAavjG,QAAewjG,cAAcz3F,EAAEy3F,eAAe,GAAGx3F,GAAG,IAAIA,EAAE03F,WAAW,CAAC33F,EAAEC,EAAE23F,WAAW,IAAI7iG,EAAEkL,EAAE43F,aAAa31F,EAAEjC,EAAE63F,UAAU73F,EAAEA,EAAE83F,YAAY,IAAI/3F,EAAE04E,SAASx2E,EAAEw2E,QAAQ,CAAC,MAAMqiB,GAAG/6F,EAAE,KAAK,MAAML,CAAC,CAAC,IAAI4tD,EAAE,EAAE7T,GAAG,EAAEv3C,GAAG,EAAE/V,EAAE,EAAEq5D,EAAE,EAAE/lD,EAAEC,EAAEtT,EAAE,KAAKuT,EAAE,OAAO,CAAC,IAAI,IAAI4oD,EAAK9oD,IAAIM,GAAG,IAAIjL,GAAG,IAAI2K,EAAEg5E,WAAWh/B,EAAE6T,EAAEx4D,GAAG2K,IAAIwC,GAAG,IAAIjC,GAAG,IAAIP,EAAEg5E,WAAWv2E,EAAEorD,EAAEttD,GAAG,IAAIP,EAAEg5E,WAAWnrB,GACnf7tD,EAAEihF,UAAU18F,QAAW,QAAQukE,EAAE9oD,EAAE2gF,aAAkBh0F,EAAEqT,EAAEA,EAAE8oD,EAAE,OAAO,CAAC,GAAG9oD,IAAIC,EAAE,MAAMC,EAA8C,GAA5CvT,IAAI2T,KAAK5T,IAAI2I,IAAI2kD,EAAE6T,GAAGlhE,IAAI6V,KAAKujD,IAAIxlD,IAAIkC,EAAEorD,GAAM,QAAQ/E,EAAE9oD,EAAEi3F,aAAa,MAAUtqG,GAAJqT,EAAErT,GAAMq0D,UAAU,CAAChhD,EAAE8oD,CAAC,CAACxoD,GAAG,IAAI05C,IAAI,IAAIv3C,EAAE,KAAK,CAAC08C,MAAMnF,EAAEjc,IAAIt7B,EAAE,MAAMnC,EAAE,IAAI,CAACA,EAAEA,GAAG,CAAC6+C,MAAM,EAAEphB,IAAI,EAAE,MAAMz9B,EAAE,KAA+C,IAA1Ck8F,GAAG,CAAC9E,YAAYz3F,EAAE03F,eAAer3F,GAAGqsF,IAAG,EAAOqkB,GAAE9wG,EAAE,OAAO8wG,IAAG,GAAO/wG,GAAJC,EAAE8wG,IAAM1vD,MAAM,KAAoB,KAAfphD,EAAEqvG,eAAoB,OAAOtvG,EAAEA,EAAE+mF,OAAO9mF,EAAE8wG,GAAE/wG,OAAO,KAAK,OAAO+wG,IAAG,CAAC9wG,EAAE8wG,GAAE,IAAI,IAAI5pH,EAAE8Y,EAAE6mF,UAAU,GAAG,KAAa,KAAR7mF,EAAE+mF,OAAY,OAAO/mF,EAAEnS,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GACvK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAA3W,KAAK,EAAE,GAAG,OAAO3G,EAAE,CAAC,IAAIgZ,EAAEhZ,EAAE45G,cAAc5F,EAAEh0G,EAAE+/F,cAAcr/F,EAAEoY,EAAEwlF,UAAUnjF,EAAEza,EAAEo9G,wBAAwBhlG,EAAElW,cAAckW,EAAEzN,KAAK2N,EAAEihG,GAAGnhG,EAAEzN,KAAK2N,GAAGg7F,GAAGtzG,EAAEkrH,oCAAoCzwG,CAAC,CAAC,MAAM,KAAK,EAAE,IAAIgB,EAAErD,EAAEwlF,UAAUuG,cAAc,IAAI1oF,EAAEy1E,SAASz1E,EAAEk+C,YAAY,GAAG,IAAIl+C,EAAEy1E,UAAUz1E,EAAEi/C,iBAAiBj/C,EAAEq9E,YAAYr9E,EAAEi/C,iBAAiB,MAAyC,QAAQ,MAAMr5D,MAAMgvE,EAAE,MAAO,CAAC,MAAMkjC,GAAG/qC,GAAEpwD,EAAEA,EAAE8mF,OAAOqU,EAAE,CAAa,GAAG,QAAfp7F,EAAEC,EAAEqnF,SAAoB,CAACtnF,EAAE+mF,OAAO9mF,EAAE8mF,OAAOgqB,GAAE/wG,EAAE,KAAK,CAAC+wG,GAAE9wG,EAAE8mF,MAAM,CAAC5/F,EAAE+pH,GAAGA,IAAG,CAAW,CAwCld+E,CAAGj2G,EAAEK,GAAGgyG,GAAGhyG,EAAEL,GAAGw3F,GAAG+E,IAAI7P,KAAK4P,GAAGC,GAAGD,GAAG,KAAKt8F,EAAEhV,QAAQqV,EAAEsyG,GAAGtyG,EAAEL,EAAE5K,GAAG2yF,KAAK53B,GAAEpW,EAAEqwC,GAAEx8B,EAAEwlD,GAAG33E,WAAWl5B,CAAC,MAAMvC,EAAEhV,QAAQqV,EAAsF,GAApFuzG,KAAKA,IAAG,EAAGC,GAAG7zG,EAAE8zG,GAAG1+G,GAAGmN,EAAEvC,EAAEwpF,aAAa,IAAIjnF,IAAI8pG,GAAG,MAjOmJ,SAAYrsG,GAAG,GAAG+oF,IAAI,oBAAoBA,GAAGmtB,kBAAkB,IAAIntB,GAAGmtB,kBAAkBptB,GAAG9oF,OAAE,EAAO,OAAuB,IAAhBA,EAAEhV,QAAQg8F,OAAW,CAAC,MAAM/mF,GAAG,CAAC,CAiOxRk2G,CAAG91G,EAAEolF,WAAa2uB,GAAGp0G,EAAEwa,MAAQ,OAAOva,EAAE,IAAIK,EAAEN,EAAEo2G,mBAAmB/1G,EAAE,EAAEA,EAAEJ,EAAE3b,OAAO+b,IAAIjL,EAAE6K,EAAEI,GAAGC,EAAElL,EAAEhQ,MAAM,CAACknH,eAAel3G,EAAEmpD,MAAMn/C,OAAOhK,EAAEgK,SAAS,GAAG4sG,GAAG,MAAMA,IAAG,EAAGhsG,EAAEisG,GAAGA,GAAG,KAAKjsG,EAAE,KAAQ,EAAH8zG,KAAO,IAAI9zG,EAAElS,KAAKgnH,KAAKvyG,EAAEvC,EAAEwpF,aAAa,KAAO,EAAFjnF,GAAKvC,IAAIg0G,GAAGD,MAAMA,GAAG,EAAEC,GAAGh0G,GAAG+zG,GAAG,EAAE9U,IAAgB,CAFxFoX,CAAGr2G,EAAEC,EAAEI,EAAEC,EAAE,CAAC,QAAQ8yG,GAAG33E,WAAWrmC,EAAEg1F,GAAE9pF,CAAC,CAAC,OAAO,IAAI,CAGhc,SAASw0G,KAAK,GAAG,OAAOjB,GAAG,CAAC,IAAI7zG,EAAEqqF,GAAGypB,IAAI7zG,EAAEmzG,GAAG33E,WAAWp7B,EAAE+pF,GAAE,IAAmC,GAA/BgpB,GAAG33E,WAAW,KAAK2uD,GAAE,GAAGpqF,EAAE,GAAGA,EAAK,OAAO6zG,GAAG,IAAIvzG,GAAE,MAAO,CAAmB,GAAlBN,EAAE6zG,GAAGA,GAAG,KAAKC,GAAG,EAAK,KAAO,EAAF3jD,IAAK,MAAMjnE,MAAMgvE,EAAE,MAAM,IAAI9iE,EAAE+6D,GAAO,IAALA,IAAG,EAAM4gD,GAAE/wG,EAAEhV,QAAQ,OAAO+lH,IAAG,CAAC,IAAIxuG,EAAEwuG,GAAEnjD,EAAErrD,EAAE8+C,MAAM,GAAG,KAAa,GAAR0vD,GAAE/pB,OAAU,CAAC,IAAIjtC,EAAEx3C,EAAE89F,UAAU,GAAG,OAAOtmD,EAAE,CAAC,IAAI,IAAIv3C,EAAE,EAAEA,EAAEu3C,EAAEz1D,OAAOke,IAAI,CAAC,IAAI/V,EAAEstD,EAAEv3C,GAAG,IAAIuuG,GAAEtkH,EAAE,OAAOskH,IAAG,CAAC,IAAIjrD,EAAEirD,GAAE,OAAOjrD,EAAEh4D,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGqjH,GAAG,EAAErrD,EAAEvjD,GAAG,IAAIxC,EAAE+lD,EAAEzE,MAAM,GAAG,OAAOthD,EAAEA,EAAEgnF,OAAOjhC,EAAEirD,GAAEhxG,OAAO,KAAK,OAAOgxG,IAAG,CAAK,IAAIrkH,GAARo5D,EAAEirD,IAAUzpB,QAAQz+B,EAAE/C,EAAEihC,OAAa,GAANuqB,GAAGxrD,GAAMA,IACnfr5D,EAAE,CAACskH,GAAE,KAAK,KAAK,CAAC,GAAG,OAAOrkH,EAAE,CAACA,EAAEq6F,OAAOl+B,EAAEkoD,GAAErkH,EAAE,KAAK,CAACqkH,GAAEloD,CAAC,CAAC,CAAC,CAAC,IAAI1hE,EAAEob,EAAEukF,UAAU,GAAG,OAAO3/F,EAAE,CAAC,IAAIgZ,EAAEhZ,EAAEk6D,MAAM,GAAG,OAAOlhD,EAAE,CAAChZ,EAAEk6D,MAAM,KAAK,EAAE,CAAC,IAAI85C,EAAEh7F,EAAEmnF,QAAQnnF,EAAEmnF,QAAQ,KAAKnnF,EAAEg7F,CAAC,OAAO,OAAOh7F,EAAE,CAAC,CAAC4wG,GAAExuG,CAAC,CAAC,CAAC,GAAG,KAAoB,KAAfA,EAAE+sG,eAAoB,OAAO1hD,EAAEA,EAAEm5B,OAAOxkF,EAAEwuG,GAAEnjD,OAAO3tD,EAAE,KAAK,OAAO8wG,IAAG,CAAK,GAAG,KAAa,MAApBxuG,EAAEwuG,IAAY/pB,OAAY,OAAOzkF,EAAEzU,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGqjH,GAAG,EAAE5uG,EAAEA,EAAEwkF,QAAQ,IAAIl/F,EAAE0a,EAAE+kF,QAAQ,GAAG,OAAOz/F,EAAE,CAACA,EAAEk/F,OAAOxkF,EAAEwkF,OAAOgqB,GAAElpH,EAAE,MAAMoY,CAAC,CAAC8wG,GAAExuG,EAAEwkF,MAAM,CAAC,CAAC,IAAIzkF,EAAEtC,EAAEhV,QAAQ,IAAI+lH,GAAEzuG,EAAE,OAAOyuG,IAAG,CAAK,IAAIztG,GAARsqD,EAAEmjD,IAAU1vD,MAAM,GAAG,KAAoB,KAAfuM,EAAE0hD,eAAoB,OAClfhsG,EAAEA,EAAEyjF,OAAOn5B,EAAEmjD,GAAEztG,OAAOrD,EAAE,IAAI2tD,EAAEtrD,EAAE,OAAOyuG,IAAG,CAAK,GAAG,KAAa,MAApBh3D,EAAEg3D,IAAY/pB,OAAY,IAAI,OAAOjtC,EAAEjsD,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGsjH,GAAG,EAAEr3D,GAAG,CAAC,MAAM2hD,GAAIrrC,GAAEtW,EAAEA,EAAEgtC,OAAO2U,EAAG,CAAC,GAAG3hD,IAAI6T,EAAE,CAACmjD,GAAE,KAAK,MAAM9wG,CAAC,CAAC,IAAIm7F,EAAErhD,EAAEutC,QAAQ,GAAG,OAAO8T,EAAE,CAACA,EAAErU,OAAOhtC,EAAEgtC,OAAOgqB,GAAE3V,EAAE,MAAMn7F,CAAC,CAAC8wG,GAAEh3D,EAAEgtC,MAAM,CAAC,CAAU,GAAT52B,GAAE/6D,EAAE6pG,KAAQlW,IAAI,oBAAoBA,GAAGutB,sBAAsB,IAAIvtB,GAAGutB,sBAAsBxtB,GAAG9oF,EAAE,CAAC,MAAM07F,GAAI,CAACp7F,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQ8pF,GAAE/pF,EAAE+yG,GAAG33E,WAAWx7B,CAAC,CAAC,CAAC,OAAM,CAAE,CAAC,SAASs2G,GAAGv2G,EAAEC,EAAEI,GAAyBL,EAAEsjG,GAAGtjG,EAAjBC,EAAE8rG,GAAG/rG,EAAfC,EAAE0rG,GAAGtrG,EAAEJ,GAAY,GAAY,GAAGA,EAAE6Z,KAAI,OAAO9Z,IAAIiqF,GAAGjqF,EAAE,EAAEC,GAAGm0G,GAAGp0G,EAAEC,GAAG,CACze,SAASowD,GAAErwD,EAAEC,EAAEI,GAAG,GAAG,IAAIL,EAAElS,IAAIyoH,GAAGv2G,EAAEA,EAAEK,QAAQ,KAAK,OAAOJ,GAAG,CAAC,GAAG,IAAIA,EAAEnS,IAAI,CAACyoH,GAAGt2G,EAAED,EAAEK,GAAG,KAAK,CAAM,GAAG,IAAIJ,EAAEnS,IAAI,CAAC,IAAIwS,EAAEL,EAAEwlF,UAAU,GAAG,oBAAoBxlF,EAAEzN,KAAK25G,0BAA0B,oBAAoB7rG,EAAE8rG,oBAAoB,OAAOC,KAAKA,GAAG97B,IAAIjwE,IAAI,CAAuBL,EAAEqjG,GAAGrjG,EAAjBD,EAAEksG,GAAGjsG,EAAfD,EAAE2rG,GAAGtrG,EAAEL,GAAY,GAAY,GAAGA,EAAE8Z,KAAI,OAAO7Z,IAAIgqF,GAAGhqF,EAAE,EAAED,GAAGo0G,GAAGn0G,EAAED,IAAI,KAAK,CAAC,CAACC,EAAEA,EAAE8mF,MAAM,CAAC,CACnV,SAAS0lB,GAAGzsG,EAAEC,EAAEI,GAAG,IAAIC,EAAEN,EAAEwsG,UAAU,OAAOlsG,GAAGA,EAAEwb,OAAO7b,GAAGA,EAAE6Z,KAAI9Z,EAAE0pF,aAAa1pF,EAAEypF,eAAeppF,EAAE8oG,KAAInpG,IAAIg6D,GAAE35D,KAAKA,IAAI,IAAIiwD,IAAG,IAAIA,KAAM,UAAF0J,MAAeA,IAAG,IAAIx/C,KAAIg4F,GAAGyC,GAAGj1G,EAAE,GAAGwzG,IAAInzG,GAAG+zG,GAAGp0G,EAAEC,EAAE,CAAC,SAASu2G,GAAGx2G,EAAEC,GAAG,IAAIA,IAAI,KAAY,EAAPD,EAAE2d,MAAQ1d,EAAE,GAAGA,EAAEopF,GAAU,KAAQ,WAAfA,KAAK,MAAuBA,GAAG,WAAW,IAAIhpF,EAAEyZ,KAAc,QAAV9Z,EAAEyiG,GAAGziG,EAAEC,MAAcgqF,GAAGjqF,EAAEC,EAAEI,GAAG+zG,GAAGp0G,EAAEK,GAAG,CAAC,SAAS8uG,GAAGnvG,GAAG,IAAIC,EAAED,EAAEknF,cAAc7mF,EAAE,EAAE,OAAOJ,IAAII,EAAEJ,EAAEygG,WAAW8V,GAAGx2G,EAAEK,EAAE,CACjZ,SAAS8xG,GAAGnyG,EAAEC,GAAG,IAAII,EAAE,EAAE,OAAOL,EAAElS,KAAK,KAAK,GAAG,IAAIwS,EAAEN,EAAEylF,UAAcrwF,EAAE4K,EAAEknF,cAAc,OAAO9xF,IAAIiL,EAAEjL,EAAEsrG,WAAW,MAAM,KAAK,GAAGpgG,EAAEN,EAAEylF,UAAU,MAAM,QAAQ,MAAMv8F,MAAMgvE,EAAE,MAAO,OAAO53D,GAAGA,EAAEwb,OAAO7b,GAAGu2G,GAAGx2G,EAAEK,EAAE,CAQqK,SAASu0G,GAAG50G,EAAEC,GAAG,OAAOwnF,GAAGznF,EAAEC,EAAE,CACjZ,SAASw2G,GAAGz2G,EAAEC,EAAEI,EAAEC,GAAGzB,KAAK/Q,IAAIkS,EAAEnB,KAAKpa,IAAI4b,EAAExB,KAAKyoF,QAAQzoF,KAAKwiD,MAAMxiD,KAAKkoF,OAAOloF,KAAK4mF,UAAU5mF,KAAKrM,KAAKqM,KAAK9U,YAAY,KAAK8U,KAAK4U,MAAM,EAAE5U,KAAKxT,IAAI,KAAKwT,KAAK0hG,aAAatgG,EAAEpB,KAAKkjG,aAAaljG,KAAKqoF,cAAcroF,KAAK+jG,YAAY/jG,KAAKkiG,cAAc,KAAKliG,KAAK8e,KAAKrd,EAAEzB,KAAKywG,aAAazwG,KAAKmoF,MAAM,EAAEnoF,KAAKwhG,UAAU,KAAKxhG,KAAKgjG,WAAWhjG,KAAKojG,MAAM,EAAEpjG,KAAKioF,UAAU,IAAI,CAAC,SAASsZ,GAAGpgG,EAAEC,EAAEI,EAAEC,GAAG,OAAO,IAAIm2G,GAAGz2G,EAAEC,EAAEI,EAAEC,EAAE,CAAC,SAAS4sG,GAAGltG,GAAiB,UAAdA,EAAEA,EAAE7a,aAAuB6a,EAAE02G,iBAAiB,CAEpd,SAAS/Q,GAAG3lG,EAAEC,GAAG,IAAII,EAAEL,EAAE8mF,UACuB,OADb,OAAOzmF,IAAGA,EAAE+/F,GAAGpgG,EAAElS,IAAImS,EAAED,EAAEvb,IAAIub,EAAE2d,OAAQ5zB,YAAYiW,EAAEjW,YAAYsW,EAAE7N,KAAKwN,EAAExN,KAAK6N,EAAEolF,UAAUzlF,EAAEylF,UAAUplF,EAAEymF,UAAU9mF,EAAEA,EAAE8mF,UAAUzmF,IAAIA,EAAEkgG,aAAatgG,EAAEI,EAAE7N,KAAKwN,EAAExN,KAAK6N,EAAE2mF,MAAM,EAAE3mF,EAAEivG,aAAa,EAAEjvG,EAAEggG,UAAU,MAAMhgG,EAAE2mF,MAAc,SAARhnF,EAAEgnF,MAAe3mF,EAAEwhG,WAAW7hG,EAAE6hG,WAAWxhG,EAAE4hG,MAAMjiG,EAAEiiG,MAAM5hG,EAAEghD,MAAMrhD,EAAEqhD,MAAMhhD,EAAE0gG,cAAc/gG,EAAE+gG,cAAc1gG,EAAE6mF,cAAclnF,EAAEknF,cAAc7mF,EAAEuiG,YAAY5iG,EAAE4iG,YAAY3iG,EAAED,EAAE+hG,aAAa1hG,EAAE0hG,aAAa,OAAO9hG,EAAE,KAAK,CAACgiG,MAAMhiG,EAAEgiG,MAAMD,aAAa/hG,EAAE+hG,cAC/e3hG,EAAEinF,QAAQtnF,EAAEsnF,QAAQjnF,EAAEoT,MAAMzT,EAAEyT,MAAMpT,EAAEhV,IAAI2U,EAAE3U,IAAWgV,CAAC,CACxD,SAASwlG,GAAG7lG,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,GAAG,IAAIqrD,EAAE,EAAM,GAAJttD,EAAEN,EAAK,oBAAoBA,EAAEktG,GAAGltG,KAAK4tD,EAAE,QAAQ,GAAG,kBAAkB5tD,EAAE4tD,EAAE,OAAO5tD,EAAE,OAAOA,GAAG,KAAK88E,EAAG,OAAOipB,GAAG1lG,EAAEnR,SAASkG,EAAEmN,EAAEtC,GAAG,KAAK88E,EAAGnvB,EAAE,EAAEx4D,GAAG,EAAE,MAAM,KAAK4nF,EAAG,OAAOh9E,EAAEogG,GAAG,GAAG//F,EAAEJ,EAAI,EAAF7K,IAAOrL,YAAYizF,EAAGh9E,EAAEiiG,MAAM1/F,EAAEvC,EAAE,KAAKo9E,EAAG,OAAOp9E,EAAEogG,GAAG,GAAG//F,EAAEJ,EAAE7K,IAAKrL,YAAYqzF,EAAGp9E,EAAEiiG,MAAM1/F,EAAEvC,EAAE,KAAKq9E,EAAG,OAAOr9E,EAAEogG,GAAG,GAAG//F,EAAEJ,EAAE7K,IAAKrL,YAAYszF,EAAGr9E,EAAEiiG,MAAM1/F,EAAEvC,EAAE,KAAKw9E,EAAG,OAAOqxB,GAAGxuG,EAAEjL,EAAEmN,EAAEtC,GAAG,QAAQ,GAAG,kBAAkBD,GAAG,OAAOA,EAAE,OAAOA,EAAEu1D,UAAU,KAAK0nB,EAAGrvB,EAAE,GAAG,MAAM5tD,EAAE,KAAKk9E,EAAGtvB,EAAE,EAAE,MAAM5tD,EAAE,KAAKm9E,EAAGvvB,EAAE,GACpf,MAAM5tD,EAAE,KAAKs9E,EAAG1vB,EAAE,GAAG,MAAM5tD,EAAE,KAAKu9E,EAAG3vB,EAAE,GAAGttD,EAAE,KAAK,MAAMN,EAAE,MAAM9W,MAAMgvE,EAAE,IAAI,MAAMl4D,EAAEA,SAASA,EAAE,KAAuD,OAAjDC,EAAEmgG,GAAGxyC,EAAEvtD,EAAEJ,EAAE7K,IAAKrL,YAAYiW,EAAEC,EAAEzN,KAAK8N,EAAEL,EAAEgiG,MAAM1/F,EAAStC,CAAC,CAAC,SAAS8lG,GAAG/lG,EAAEC,EAAEI,EAAEC,GAA2B,OAAxBN,EAAEogG,GAAG,EAAEpgG,EAAEM,EAAEL,IAAKgiG,MAAM5hG,EAASL,CAAC,CAAC,SAAS6uG,GAAG7uG,EAAEC,EAAEI,EAAEC,GAAuE,OAApEN,EAAEogG,GAAG,GAAGpgG,EAAEM,EAAEL,IAAKlW,YAAYyzF,EAAGx9E,EAAEiiG,MAAM5hG,EAAEL,EAAEylF,UAAU,CAAC8sB,UAAS,GAAWvyG,CAAC,CAAC,SAAS4lG,GAAG5lG,EAAEC,EAAEI,GAA8B,OAA3BL,EAAEogG,GAAG,EAAEpgG,EAAE,KAAKC,IAAKgiG,MAAM5hG,EAASL,CAAC,CAC5W,SAAS8lG,GAAG9lG,EAAEC,EAAEI,GAA8J,OAA3JJ,EAAEmgG,GAAG,EAAE,OAAOpgG,EAAE9Q,SAAS8Q,EAAE9Q,SAAS,GAAG8Q,EAAEvb,IAAIwb,IAAKgiG,MAAM5hG,EAAEJ,EAAEwlF,UAAU,CAACuG,cAAchsF,EAAEgsF,cAAc2qB,gBAAgB,KAAK96C,eAAe77D,EAAE67D,gBAAuB57D,CAAC,CACtL,SAAS22G,GAAG52G,EAAEC,EAAEI,EAAEC,EAAElL,GAAGyJ,KAAK/Q,IAAImS,EAAEpB,KAAKmtF,cAAchsF,EAAEnB,KAAKy2G,aAAaz2G,KAAK2tG,UAAU3tG,KAAK7T,QAAQ6T,KAAK83G,gBAAgB,KAAK93G,KAAK42G,eAAe,EAAE52G,KAAKw1G,aAAax1G,KAAKsvG,eAAetvG,KAAK8zB,QAAQ,KAAK9zB,KAAK41G,iBAAiB,EAAE51G,KAAKqrF,WAAWF,GAAG,GAAGnrF,KAAKy1G,gBAAgBtqB,IAAI,GAAGnrF,KAAK8qF,eAAe9qF,KAAK02G,cAAc12G,KAAKk3G,iBAAiBl3G,KAAK01G,aAAa11G,KAAK6qF,YAAY7qF,KAAK4qF,eAAe5qF,KAAK2qF,aAAa,EAAE3qF,KAAK+qF,cAAcI,GAAG,GAAGnrF,KAAK6sG,iBAAiBprG,EAAEzB,KAAKu3G,mBAAmBhhH,EAAEyJ,KAAKg4G,gCAC/e,IAAI,CAAC,SAASC,GAAG92G,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,EAAEqrD,EAAE7T,EAAEv3C,GAAgN,OAA7MxC,EAAE,IAAI42G,GAAG52G,EAAEC,EAAEI,EAAE05C,EAAEv3C,GAAG,IAAIvC,GAAGA,EAAE,GAAE,IAAKsC,IAAItC,GAAG,IAAIA,EAAE,EAAEsC,EAAE69F,GAAG,EAAE,KAAK,KAAKngG,GAAGD,EAAEhV,QAAQuX,EAAEA,EAAEkjF,UAAUzlF,EAAEuC,EAAE2kF,cAAc,CAACp9F,QAAQwW,EAAEyrF,aAAa1rF,EAAE4xD,MAAM,KAAKu7C,YAAY,KAAKuJ,0BAA0B,MAAMpU,GAAGpgG,GAAUvC,CAAC,CACzP,SAASg3G,GAAGh3G,GAAG,IAAIA,EAAE,OAAO89F,GAAuB99F,EAAE,CAAC,GAAG6mF,GAA1B7mF,EAAEA,EAAEgkG,mBAA8BhkG,GAAG,IAAIA,EAAElS,IAAI,MAAM5E,MAAMgvE,EAAE,MAAM,IAAIj4D,EAAED,EAAE,EAAE,CAAC,OAAOC,EAAEnS,KAAK,KAAK,EAAEmS,EAAEA,EAAEwlF,UAAU9yD,QAAQ,MAAM3yB,EAAE,KAAK,EAAE,GAAGq+F,GAAGp+F,EAAEzN,MAAM,CAACyN,EAAEA,EAAEwlF,UAAUmZ,0CAA0C,MAAM5+F,CAAC,EAAEC,EAAEA,EAAE8mF,MAAM,OAAO,OAAO9mF,GAAG,MAAM/W,MAAMgvE,EAAE,KAAM,CAAC,GAAG,IAAIl4D,EAAElS,IAAI,CAAC,IAAIuS,EAAEL,EAAExN,KAAK,GAAG6rG,GAAGh+F,GAAG,OAAOo+F,GAAGz+F,EAAEK,EAAEJ,EAAE,CAAC,OAAOA,CAAC,CACpW,SAASg3G,GAAGj3G,EAAEC,EAAEI,EAAEC,EAAElL,EAAEmN,EAAEqrD,EAAE7T,EAAEv3C,GAAwK,OAArKxC,EAAE82G,GAAGz2G,EAAEC,GAAE,EAAGN,EAAE5K,EAAEmN,EAAEqrD,EAAE7T,EAAEv3C,IAAKmwB,QAAQqkF,GAAG,MAAM32G,EAAEL,EAAEhV,SAAsBuX,EAAE85C,GAAhB/7C,EAAEwZ,KAAI1kB,EAAE8uG,GAAG7jG,KAAeoG,cAAS,IAASxG,GAAG,OAAOA,EAAEA,EAAE,KAAKqjG,GAAGjjG,EAAEkC,EAAEnN,GAAG4K,EAAEhV,QAAQi3G,MAAM7sG,EAAE60F,GAAGjqF,EAAE5K,EAAEkL,GAAG8zG,GAAGp0G,EAAEM,GAAUN,CAAC,CAAC,SAASk3G,GAAGl3G,EAAEC,EAAEI,EAAEC,GAAG,IAAIlL,EAAE6K,EAAEjV,QAAQuX,EAAEuX,KAAI8zC,EAAEs2C,GAAG9uG,GAAsL,OAAnLiL,EAAE22G,GAAG32G,GAAG,OAAOJ,EAAE0yB,QAAQ1yB,EAAE0yB,QAAQtyB,EAAEJ,EAAEkuG,eAAe9tG,GAAEJ,EAAEo8C,GAAG95C,EAAEqrD,IAAKt/B,QAAQ,CAACxkC,QAAQkW,GAAuB,QAApBM,OAAE,IAASA,EAAE,KAAKA,KAAaL,EAAEwG,SAASnG,GAAe,QAAZN,EAAEsjG,GAAGluG,EAAE6K,EAAE2tD,MAAcu2C,GAAGnkG,EAAE5K,EAAEw4D,EAAErrD,GAAGghG,GAAGvjG,EAAE5K,EAAEw4D,IAAWA,CAAC,CAC3b,SAASupD,GAAGn3G,GAAe,OAAZA,EAAEA,EAAEhV,SAAcq2D,OAAyBrhD,EAAEqhD,MAAMvzD,IAAoDkS,EAAEqhD,MAAMokC,WAAhF,IAA0F,CAAC,SAAS2xB,GAAGp3G,EAAEC,GAAqB,GAAG,QAArBD,EAAEA,EAAEknF,gBAA2B,OAAOlnF,EAAEmnF,WAAW,CAAC,IAAI9mF,EAAEL,EAAE0gG,UAAU1gG,EAAE0gG,UAAU,IAAIrgG,GAAGA,EAAEJ,EAAEI,EAAEJ,CAAC,CAAC,CAAC,SAASo3G,GAAGr3G,EAAEC,GAAGm3G,GAAGp3G,EAAEC,IAAID,EAAEA,EAAE8mF,YAAYswB,GAAGp3G,EAAEC,EAAE,CAnB7S+yG,GAAG,SAAShzG,EAAEC,EAAEI,GAAG,GAAG,OAAOL,EAAE,GAAGA,EAAE+gG,gBAAgB9gG,EAAEsgG,cAAcxC,GAAG/yG,QAAQk3G,IAAG,MAAO,CAAC,GAAG,KAAKliG,EAAEiiG,MAAM5hG,IAAI,KAAa,IAARJ,EAAE+mF,OAAW,OAAOkb,IAAG,EAzE1I,SAAYliG,EAAEC,EAAEI,GAAG,OAAOJ,EAAEnS,KAAK,KAAK,EAAEogH,GAAGjuG,GAAGghG,KAAK,MAAM,KAAK,EAAEwF,GAAGxmG,GAAG,MAAM,KAAK,EAAEo+F,GAAGp+F,EAAEzN,OAAOmsG,GAAG1+F,GAAG,MAAM,KAAK,EAAEsmG,GAAGtmG,EAAEA,EAAEwlF,UAAUuG,eAAe,MAAM,KAAK,GAAG,IAAI1rF,EAAEL,EAAEzN,KAAK4rF,SAAShpF,EAAE6K,EAAE8gG,cAAc37G,MAAMy4G,GAAEwD,GAAG/gG,EAAEqhG,eAAerhG,EAAEqhG,cAAcvsG,EAAE,MAAM,KAAK,GAAqB,GAAG,QAArBkL,EAAEL,EAAEinF,eAA2B,OAAG,OAAO5mF,EAAE6mF,YAAkB0W,GAAEpkF,GAAY,EAAVA,GAAEzuB,SAAWiV,EAAE+mF,OAAO,IAAI,MAAQ,KAAK3mF,EAAEJ,EAAEohD,MAAMwgD,YAAmB8M,GAAG3uG,EAAEC,EAAEI,IAAGw9F,GAAEpkF,GAAY,EAAVA,GAAEzuB,SAA8B,QAAnBgV,EAAEgtG,GAAGhtG,EAAEC,EAAEI,IAAmBL,EAAEsnF,QAAQ,MAAKuW,GAAEpkF,GAAY,EAAVA,GAAEzuB,SAAW,MAAM,KAAK,GAC7d,GADgesV,EAAE,KAAKD,EACrfJ,EAAE4hG,YAAe,KAAa,IAAR7hG,EAAEgnF,OAAW,CAAC,GAAG1mF,EAAE,OAAOwvG,GAAG9vG,EAAEC,EAAEI,GAAGJ,EAAE+mF,OAAO,GAAG,CAA6F,GAA1E,QAAlB5xF,EAAE6K,EAAEinF,iBAAyB9xF,EAAEs6G,UAAU,KAAKt6G,EAAEw6G,KAAK,KAAKx6G,EAAEi0G,WAAW,MAAMxL,GAAEpkF,GAAEA,GAAEzuB,SAAYsV,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOL,EAAEgiG,MAAM,EAAEoL,GAAGrtG,EAAEC,EAAEI,GAAG,OAAO2sG,GAAGhtG,EAAEC,EAAEI,EAAE,CAwE7Gi3G,CAAGt3G,EAAEC,EAAEI,GAAG6hG,GAAG,KAAa,OAARliG,EAAEgnF,MAAmB,MAAMkb,IAAG,EAAGjC,IAAG,KAAa,QAARhgG,EAAE+mF,QAAgB4Y,GAAG3/F,EAAEo/F,GAAGp/F,EAAEwT,OAAiB,OAAVxT,EAAEgiG,MAAM,EAAShiG,EAAEnS,KAAK,KAAK,EAAE,IAAIwS,EAAEL,EAAEzN,KAAKq7G,GAAG7tG,EAAEC,GAAGD,EAAEC,EAAEsgG,aAAa,IAAInrG,EAAE6oG,GAAGh+F,EAAEmwD,GAAEplE,SAAS82G,GAAG7hG,EAAEI,GAAGjL,EAAEuyG,GAAG,KAAK1nG,EAAEK,EAAEN,EAAE5K,EAAEiL,GAAG,IAAIkC,EAAEylG,KACvI,OAD4I/nG,EAAE+mF,OAAO,EAAE,kBAAkB5xF,GAAG,OAAOA,GAAG,oBAAoBA,EAAEuiE,aAAQ,IAASviE,EAAEmgE,UAAUt1D,EAAEnS,IAAI,EAAEmS,EAAEinF,cAAc,KAAKjnF,EAAE2iG,YAC1e,KAAKvE,GAAG/9F,IAAIiC,GAAE,EAAGo8F,GAAG1+F,IAAIsC,GAAE,EAAGtC,EAAEinF,cAAc,OAAO9xF,EAAEsK,YAAO,IAAStK,EAAEsK,MAAMtK,EAAEsK,MAAM,KAAKijG,GAAG1iG,GAAG7K,EAAEuvG,QAAQZ,GAAG9jG,EAAEwlF,UAAUrwF,EAAEA,EAAE4uG,gBAAgB/jG,EAAE8kG,GAAG9kG,EAAEK,EAAEN,EAAEK,GAAGJ,EAAEguG,GAAG,KAAKhuG,EAAEK,GAAE,EAAGiC,EAAElC,KAAKJ,EAAEnS,IAAI,EAAEmyG,IAAG19F,GAAGs9F,GAAG5/F,GAAG6sG,GAAG,KAAK7sG,EAAE7K,EAAEiL,GAAGJ,EAAEA,EAAEohD,OAAcphD,EAAE,KAAK,GAAGK,EAAEL,EAAElW,YAAYiW,EAAE,CAAqF,OAApF6tG,GAAG7tG,EAAEC,GAAGD,EAAEC,EAAEsgG,aAAuBjgG,GAAVlL,EAAEkL,EAAEg+E,OAAUh+E,EAAE+9E,UAAUp+E,EAAEzN,KAAK8N,EAAElL,EAAE6K,EAAEnS,IAQtU,SAAYkS,GAAG,GAAG,oBAAoBA,EAAE,OAAOktG,GAAGltG,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEu1D,YAAgB4nB,EAAG,OAAO,GAAG,GAAGn9E,IAAIs9E,EAAG,OAAO,EAAE,CAAC,OAAO,CAAC,CAR2Li6B,CAAGj3G,GAAGN,EAAEohG,GAAG9gG,EAAEN,GAAU5K,GAAG,KAAK,EAAE6K,EAAEmtG,GAAG,KAAKntG,EAAEK,EAAEN,EAAEK,GAAG,MAAML,EAAE,KAAK,EAAEC,EAAE2tG,GAAG,KAAK3tG,EAAEK,EAAEN,EAAEK,GAAG,MAAML,EAAE,KAAK,GAAGC,EAAE8sG,GAAG,KAAK9sG,EAAEK,EAAEN,EAAEK,GAAG,MAAML,EAAE,KAAK,GAAGC,EAAEgtG,GAAG,KAAKhtG,EAAEK,EAAE8gG,GAAG9gG,EAAE9N,KAAKwN,GAAGK,GAAG,MAAML,EAAE,MAAM9W,MAAMgvE,EAAE,IACvgB53D,EAAE,IAAK,CAAC,OAAOL,EAAE,KAAK,EAAE,OAAOK,EAAEL,EAAEzN,KAAK4C,EAAE6K,EAAEsgG,aAA2C6M,GAAGptG,EAAEC,EAAEK,EAArClL,EAAE6K,EAAElW,cAAcuW,EAAElL,EAAEgsG,GAAG9gG,EAAElL,GAAciL,GAAG,KAAK,EAAE,OAAOC,EAAEL,EAAEzN,KAAK4C,EAAE6K,EAAEsgG,aAA2CqN,GAAG5tG,EAAEC,EAAEK,EAArClL,EAAE6K,EAAElW,cAAcuW,EAAElL,EAAEgsG,GAAG9gG,EAAElL,GAAciL,GAAG,KAAK,EAAEL,EAAE,CAAO,GAANkuG,GAAGjuG,GAAM,OAAOD,EAAE,MAAM9W,MAAMgvE,EAAE,MAAM53D,EAAEL,EAAEsgG,aAA+BnrG,GAAlBmN,EAAEtC,EAAEinF,eAAkBp9F,QAAQq5G,GAAGnjG,EAAEC,GAAGwjG,GAAGxjG,EAAEK,EAAE,KAAKD,GAAG,IAAIutD,EAAE3tD,EAAEinF,cAA0B,GAAZ5mF,EAAEstD,EAAE9jE,QAAWyY,EAAEwpF,aAAY,CAAC,GAAGxpF,EAAE,CAACzY,QAAQwW,EAAEyrF,cAAa,EAAG95B,MAAMrE,EAAEqE,MAAM8kD,0BAA0BnpD,EAAEmpD,0BAA0BvJ,YAAY5/C,EAAE4/C,aAAavtG,EAAE2iG,YAAYC,UAChftgG,EAAEtC,EAAEinF,cAAc3kF,EAAU,IAARtC,EAAE+mF,MAAU,CAAuB/mF,EAAEmuG,GAAGpuG,EAAEC,EAAEK,EAAED,EAAjCjL,EAAEu2G,GAAGziH,MAAMgvE,EAAE,MAAMj4D,IAAmB,MAAMD,CAAC,CAAM,GAAGM,IAAIlL,EAAE,CAAuB6K,EAAEmuG,GAAGpuG,EAAEC,EAAEK,EAAED,EAAjCjL,EAAEu2G,GAAGziH,MAAMgvE,EAAE,MAAMj4D,IAAmB,MAAMD,CAAC,CAAM,IAAIggG,GAAG9C,GAAGj9F,EAAEwlF,UAAUuG,cAActL,YAAYqf,GAAG9/F,EAAEggG,IAAE,EAAGC,GAAG,KAAK7/F,EAAE4lG,GAAGhmG,EAAE,KAAKK,EAAED,GAAGJ,EAAEohD,MAAMhhD,EAAEA,GAAGA,EAAE2mF,OAAe,EAAT3mF,EAAE2mF,MAAS,KAAK3mF,EAAEA,EAAEinF,OAAQ,KAAI,CAAM,GAAL2Z,KAAQ3gG,IAAIlL,EAAE,CAAC6K,EAAE+sG,GAAGhtG,EAAEC,EAAEI,GAAG,MAAML,CAAC,CAAC8sG,GAAG9sG,EAAEC,EAAEK,EAAED,EAAE,CAACJ,EAAEA,EAAEohD,KAAK,CAAC,OAAOphD,EAAE,KAAK,EAAE,OAAOwmG,GAAGxmG,GAAG,OAAOD,GAAG4gG,GAAG3gG,GAAGK,EAAEL,EAAEzN,KAAK4C,EAAE6K,EAAEsgG,aAAah+F,EAAE,OAAOvC,EAAEA,EAAE+gG,cAAc,KAAKnzC,EAAEx4D,EAAElG,SAASstG,GAAGl8F,EAAElL,GAAGw4D,EAAE,KAAK,OAAOrrD,GAAGi6F,GAAGl8F,EAAEiC,KAAKtC,EAAE+mF,OAAO,IACnf2mB,GAAG3tG,EAAEC,GAAG6sG,GAAG9sG,EAAEC,EAAE2tD,EAAEvtD,GAAGJ,EAAEohD,MAAM,KAAK,EAAE,OAAO,OAAOrhD,GAAG4gG,GAAG3gG,GAAG,KAAK,KAAK,GAAG,OAAO0uG,GAAG3uG,EAAEC,EAAEI,GAAG,KAAK,EAAE,OAAOkmG,GAAGtmG,EAAEA,EAAEwlF,UAAUuG,eAAe1rF,EAAEL,EAAEsgG,aAAa,OAAOvgG,EAAEC,EAAEohD,MAAM2kD,GAAG/lG,EAAE,KAAKK,EAAED,GAAGysG,GAAG9sG,EAAEC,EAAEK,EAAED,GAAGJ,EAAEohD,MAAM,KAAK,GAAG,OAAO/gD,EAAEL,EAAEzN,KAAK4C,EAAE6K,EAAEsgG,aAA2CwM,GAAG/sG,EAAEC,EAAEK,EAArClL,EAAE6K,EAAElW,cAAcuW,EAAElL,EAAEgsG,GAAG9gG,EAAElL,GAAciL,GAAG,KAAK,EAAE,OAAOysG,GAAG9sG,EAAEC,EAAEA,EAAEsgG,aAAalgG,GAAGJ,EAAEohD,MAAM,KAAK,EAAmD,KAAK,GAAG,OAAOyrD,GAAG9sG,EAAEC,EAAEA,EAAEsgG,aAAarxG,SAASmR,GAAGJ,EAAEohD,MAAM,KAAK,GAAGrhD,EAAE,CACxZ,GADyZM,EAAEL,EAAEzN,KAAK4rF,SAAShpF,EAAE6K,EAAEsgG,aAAah+F,EAAEtC,EAAE8gG,cAClfnzC,EAAEx4D,EAAEhQ,MAAMy4G,GAAEwD,GAAG/gG,EAAEqhG,eAAerhG,EAAEqhG,cAAc/zC,EAAK,OAAOrrD,EAAE,GAAGq0F,GAAGr0F,EAAEnd,MAAMwoE,IAAI,GAAGrrD,EAAErT,WAAWkG,EAAElG,WAAW6uG,GAAG/yG,QAAQ,CAACiV,EAAE+sG,GAAGhtG,EAAEC,EAAEI,GAAG,MAAML,CAAC,OAAO,IAAc,QAAVuC,EAAEtC,EAAEohD,SAAiB9+C,EAAEwkF,OAAO9mF,GAAG,OAAOsC,GAAG,CAAC,IAAIw3C,EAAEx3C,EAAEw/F,aAAa,GAAG,OAAOhoD,EAAE,CAAC6T,EAAErrD,EAAE8+C,MAAM,IAAI,IAAI7+C,EAAEu3C,EAAEioD,aAAa,OAAOx/F,GAAG,CAAC,GAAGA,EAAEmwB,UAAUryB,EAAE,CAAC,GAAG,IAAIiC,EAAEzU,IAAI,EAAC0U,EAAE65C,IAAI,EAAEh8C,GAAGA,IAAKvS,IAAI,EAAE,IAAIrB,EAAE8V,EAAEqgG,YAAY,GAAG,OAAOn2G,EAAE,CAAY,IAAIq5D,GAAfr5D,EAAEA,EAAEu2G,QAAeC,QAAQ,OAAOn9C,EAAEtjD,EAAE3b,KAAK2b,GAAGA,EAAE3b,KAAKi/D,EAAEj/D,KAAKi/D,EAAEj/D,KAAK2b,GAAG/V,EAAEw2G,QAAQzgG,CAAC,CAAC,CAACD,EAAE0/F,OAAO5hG,EAAgB,QAAdmC,EAAED,EAAEukF,aAAqBtkF,EAAEy/F,OAAO5hG,GAAGuhG,GAAGr/F,EAAEwkF,OAClf1mF,EAAEJ,GAAG85C,EAAEkoD,OAAO5hG,EAAE,KAAK,CAACmC,EAAEA,EAAE3b,IAAI,CAAC,MAAM,GAAG,KAAK0b,EAAEzU,IAAI8/D,EAAErrD,EAAE/P,OAAOyN,EAAEzN,KAAK,KAAK+P,EAAE8+C,WAAW,GAAG,KAAK9+C,EAAEzU,IAAI,CAAY,GAAG,QAAd8/D,EAAErrD,EAAEwkF,QAAmB,MAAM79F,MAAMgvE,EAAE,MAAMtK,EAAEq0C,OAAO5hG,EAAgB,QAAd05C,EAAE6T,EAAEk5B,aAAqB/sC,EAAEkoD,OAAO5hG,GAAGuhG,GAAGh0C,EAAEvtD,EAAEJ,GAAG2tD,EAAErrD,EAAE+kF,OAAO,MAAM15B,EAAErrD,EAAE8+C,MAAM,GAAG,OAAOuM,EAAEA,EAAEm5B,OAAOxkF,OAAO,IAAIqrD,EAAErrD,EAAE,OAAOqrD,GAAG,CAAC,GAAGA,IAAI3tD,EAAE,CAAC2tD,EAAE,KAAK,KAAK,CAAa,GAAG,QAAfrrD,EAAEqrD,EAAE05B,SAAoB,CAAC/kF,EAAEwkF,OAAOn5B,EAAEm5B,OAAOn5B,EAAErrD,EAAE,KAAK,CAACqrD,EAAEA,EAAEm5B,MAAM,CAACxkF,EAAEqrD,CAAC,CAACk/C,GAAG9sG,EAAEC,EAAE7K,EAAElG,SAASmR,GAAGJ,EAAEA,EAAEohD,KAAK,CAAC,OAAOphD,EAAE,KAAK,EAAE,OAAO7K,EAAE6K,EAAEzN,KAAK8N,EAAEL,EAAEsgG,aAAarxG,SAAS4yG,GAAG7hG,EAAEI,GAAWC,EAAEA,EAAVlL,EAAE+sG,GAAG/sG,IAAU6K,EAAE+mF,OAAO,EAAE8lB,GAAG9sG,EAAEC,EAAEK,EAAED,GACpfJ,EAAEohD,MAAM,KAAK,GAAG,OAAgBjsD,EAAEgsG,GAAX9gG,EAAEL,EAAEzN,KAAYyN,EAAEsgG,cAA6B0M,GAAGjtG,EAAEC,EAAEK,EAAtBlL,EAAEgsG,GAAG9gG,EAAE9N,KAAK4C,GAAciL,GAAG,KAAK,GAAG,OAAO8sG,GAAGntG,EAAEC,EAAEA,EAAEzN,KAAKyN,EAAEsgG,aAAalgG,GAAG,KAAK,GAAG,OAAOC,EAAEL,EAAEzN,KAAK4C,EAAE6K,EAAEsgG,aAAanrG,EAAE6K,EAAElW,cAAcuW,EAAElL,EAAEgsG,GAAG9gG,EAAElL,GAAGy4G,GAAG7tG,EAAEC,GAAGA,EAAEnS,IAAI,EAAEuwG,GAAG/9F,IAAIN,GAAE,EAAG2+F,GAAG1+F,IAAID,GAAE,EAAG8hG,GAAG7hG,EAAEI,GAAGokG,GAAGxkG,EAAEK,EAAElL,GAAG2vG,GAAG9kG,EAAEK,EAAElL,EAAEiL,GAAG4tG,GAAG,KAAKhuG,EAAEK,GAAE,EAAGN,EAAEK,GAAG,KAAK,GAAG,OAAOyvG,GAAG9vG,EAAEC,EAAEI,GAAG,KAAK,GAAG,OAAOgtG,GAAGrtG,EAAEC,EAAEI,GAAG,MAAMnX,MAAMgvE,EAAE,IAAIj4D,EAAEnS,KAAM,EAYxC,IAAI0pH,GAAG,oBAAoBC,YAAYA,YAAY,SAASz3G,GAAG3S,QAAQ+G,MAAM4L,EAAE,EAAE,SAAS03G,GAAG13G,GAAGnB,KAAK84G,cAAc33G,CAAC,CACjI,SAAS43G,GAAG53G,GAAGnB,KAAK84G,cAAc33G,CAAC,CAC5J,SAAS63G,GAAG73G,GAAG,SAASA,GAAG,IAAIA,EAAE+4E,UAAU,IAAI/4E,EAAE+4E,UAAU,KAAK/4E,EAAE+4E,SAAS,CAAC,SAAS++B,GAAG93G,GAAG,SAASA,GAAG,IAAIA,EAAE+4E,UAAU,IAAI/4E,EAAE+4E,UAAU,KAAK/4E,EAAE+4E,WAAW,IAAI/4E,EAAE+4E,UAAU,iCAAiC/4E,EAAEghF,WAAW,CAAC,SAAS+2B,KAAK,CAExa,SAASC,GAAGh4G,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,IAAImN,EAAElC,EAAEqxG,oBAAoB,GAAGnvG,EAAE,CAAC,IAAIqrD,EAAErrD,EAAE,GAAG,oBAAoBnN,EAAE,CAAC,IAAI2kD,EAAE3kD,EAAEA,EAAE,WAAW,IAAI4K,EAAEm3G,GAAGvpD,GAAG7T,EAAEj0D,KAAKka,EAAE,CAAC,CAACk3G,GAAGj3G,EAAE2tD,EAAE5tD,EAAE5K,EAAE,MAAMw4D,EADxJ,SAAY5tD,EAAEC,EAAEI,EAAEC,EAAElL,GAAG,GAAGA,EAAE,CAAC,GAAG,oBAAoBkL,EAAE,CAAC,IAAIiC,EAAEjC,EAAEA,EAAE,WAAW,IAAIN,EAAEm3G,GAAGvpD,GAAGrrD,EAAEzc,KAAKka,EAAE,CAAC,CAAC,IAAI4tD,EAAEqpD,GAAGh3G,EAAEK,EAAEN,EAAE,EAAE,MAAK,EAAG,EAAG,GAAG+3G,IAAmF,OAA/E/3G,EAAE0xG,oBAAoB9jD,EAAE5tD,EAAEs7F,IAAI1tC,EAAE5iE,QAAQgwG,GAAG,IAAIh7F,EAAE+4E,SAAS/4E,EAAE+gD,WAAW/gD,GAAG21G,KAAY/nD,CAAC,CAAC,KAAKx4D,EAAE4K,EAAE+gF,WAAW/gF,EAAE2gF,YAAYvrF,GAAG,GAAG,oBAAoBkL,EAAE,CAAC,IAAIy5C,EAAEz5C,EAAEA,EAAE,WAAW,IAAIN,EAAEm3G,GAAG30G,GAAGu3C,EAAEj0D,KAAKka,EAAE,CAAC,CAAC,IAAIwC,EAAEs0G,GAAG92G,EAAE,GAAE,EAAG,KAAK,GAAK,EAAG,EAAG,GAAG+3G,IAA0G,OAAtG/3G,EAAE0xG,oBAAoBlvG,EAAExC,EAAEs7F,IAAI94F,EAAExX,QAAQgwG,GAAG,IAAIh7F,EAAE+4E,SAAS/4E,EAAE+gD,WAAW/gD,GAAG21G,IAAG,WAAWuB,GAAGj3G,EAAEuC,EAAEnC,EAAEC,EAAE,IAAUkC,CAAC,CACpUy1G,CAAG53G,EAAEJ,EAAED,EAAE5K,EAAEkL,GAAG,OAAO62G,GAAGvpD,EAAE,CAHpLgqD,GAAGzyH,UAAUwyE,OAAO+/C,GAAGvyH,UAAUwyE,OAAO,SAAS33D,GAAG,IAAIC,EAAEpB,KAAK84G,cAAc,GAAG,OAAO13G,EAAE,MAAM/W,MAAMgvE,EAAE,MAAMg/C,GAAGl3G,EAAEC,EAAE,KAAK,KAAK,EAAE23G,GAAGzyH,UAAUgQ,QAAQuiH,GAAGvyH,UAAUgQ,QAAQ,WAAW,IAAI6K,EAAEnB,KAAK84G,cAAc,GAAG,OAAO33G,EAAE,CAACnB,KAAK84G,cAAc,KAAK,IAAI13G,EAAED,EAAEgsF,cAAc2pB,IAAG,WAAWuB,GAAG,KAAKl3G,EAAE,KAAK,KAAK,IAAGC,EAAEq7F,IAAI,IAAI,CAAC,EACzTsc,GAAGzyH,UAAU+yH,2BAA2B,SAASl4G,GAAG,GAAGA,EAAE,CAAC,IAAIC,EAAEwqF,KAAKzqF,EAAE,CAACwrF,UAAU,KAAKrnG,OAAO6b,EAAE8rF,SAAS7rF,GAAG,IAAI,IAAII,EAAE,EAAEA,EAAE6qF,GAAG5mG,QAAQ,IAAI2b,GAAGA,EAAEirF,GAAG7qF,GAAGyrF,SAASzrF,KAAK6qF,GAAGxlD,OAAOrlC,EAAE,EAAEL,GAAG,IAAIK,GAAGurF,GAAG5rF,EAAE,CAAC,EAEXsqF,GAAG,SAAStqF,GAAG,OAAOA,EAAElS,KAAK,KAAK,EAAE,IAAImS,EAAED,EAAEylF,UAAU,GAAGxlF,EAAEjV,QAAQk8F,cAAc6E,aAAa,CAAC,IAAI1rF,EAAEipF,GAAGrpF,EAAEupF,cAAc,IAAInpF,IAAI8pF,GAAGlqF,EAAI,EAAFI,GAAK+zG,GAAGn0G,EAAEua,MAAK,KAAO,EAAF21C,MAAOsgD,GAAGj2F,KAAI,IAAIykF,MAAM,CAAC,MAAM,KAAK,GAAG0W,IAAG,WAAW,IAAI11G,EAAEwiG,GAAGziG,EAAE,GAAG,GAAG,OAAOC,EAAE,CAAC,IAAII,EAAEyZ,KAAIqqF,GAAGlkG,EAAED,EAAE,EAAEK,EAAE,CAAC,IAAGg3G,GAAGr3G,EAAE,GAAG,EAC/buqF,GAAG,SAASvqF,GAAG,GAAG,KAAKA,EAAElS,IAAI,CAAC,IAAImS,EAAEwiG,GAAGziG,EAAE,WAAW,GAAG,OAAOC,EAAakkG,GAAGlkG,EAAED,EAAE,UAAX8Z,MAAwBu9F,GAAGr3G,EAAE,UAAU,CAAC,EAAEwqF,GAAG,SAASxqF,GAAG,GAAG,KAAKA,EAAElS,IAAI,CAAC,IAAImS,EAAEikG,GAAGlkG,GAAGK,EAAEoiG,GAAGziG,EAAEC,GAAG,GAAG,OAAOI,EAAa8jG,GAAG9jG,EAAEL,EAAEC,EAAX6Z,MAAgBu9F,GAAGr3G,EAAEC,EAAE,CAAC,EAAEwqF,GAAG,WAAW,OAAOL,EAAC,EAAEM,GAAG,SAAS1qF,EAAEC,GAAG,IAAII,EAAE+pF,GAAE,IAAI,OAAOA,GAAEpqF,EAAEC,GAAG,CAAC,QAAQmqF,GAAE/pF,CAAC,CAAC,EAClS+kF,GAAG,SAASplF,EAAEC,EAAEI,GAAG,OAAOJ,GAAG,IAAK,QAAyB,GAAjBw/E,EAAGz/E,EAAEK,GAAGJ,EAAEI,EAAE/Y,KAAQ,UAAU+Y,EAAE7N,MAAM,MAAMyN,EAAE,CAAC,IAAII,EAAEL,EAAEK,EAAE0gD,YAAY1gD,EAAEA,EAAE0gD,WAAsF,IAA3E1gD,EAAEA,EAAE83G,iBAAiB,cAAc5yG,KAAKC,UAAU,GAAGvF,GAAG,mBAAuBA,EAAE,EAAEA,EAAEI,EAAE/b,OAAO2b,IAAI,CAAC,IAAIK,EAAED,EAAEJ,GAAG,GAAGK,IAAIN,GAAGM,EAAE83G,OAAOp4G,EAAEo4G,KAAK,CAAC,IAAIhjH,EAAEswF,GAAGplF,GAAG,IAAIlL,EAAE,MAAMlM,MAAMgvE,EAAE,KAAK6mB,EAAGz+E,GAAGm/E,EAAGn/E,EAAElL,EAAE,CAAC,CAAC,CAAC,MAAM,IAAK,WAAW8qF,GAAGlgF,EAAEK,GAAG,MAAM,IAAK,SAAmB,OAAVJ,EAAEI,EAAEjb,QAAey6F,GAAG7/E,IAAIK,EAAE8vG,SAASlwG,GAAE,GAAI,EAAE4lF,GAAG6vB,GAAG5vB,GAAG6vB,GACpa,IAAIxkD,GAAG,CAACknD,uBAAsB,EAAGC,OAAO,CAAC9yB,GAAGqQ,GAAGnQ,GAAGC,GAAGC,GAAG8vB,KAAK6C,GAAG,CAACC,wBAAwB3sB,GAAG4sB,WAAW,EAAElqH,QAAQ,SAASmqH,oBAAoB,aAC1IC,GAAG,CAACF,WAAWF,GAAGE,WAAWlqH,QAAQgqH,GAAGhqH,QAAQmqH,oBAAoBH,GAAGG,oBAAoBE,eAAeL,GAAGK,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,gBAAgB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqB58B,EAAGuqB,uBAAuBsS,wBAAwB,SAASv5G,GAAW,OAAO,QAAfA,EAAEqnF,GAAGrnF,IAAmB,KAAKA,EAAEylF,SAAS,EAAE+yB,wBAAwBD,GAAGC,yBARjN,WAAc,OAAO,IAAI,EASpUgB,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,KAAKC,kBAAkB,kCAAkC,GAAG,qBAAqBC,+BAA+B,CAAC,IAAIC,GAAGD,+BAA+B,IAAIC,GAAG1hD,YAAY0hD,GAAGC,cAAc,IAAIlxB,GAAGixB,GAAGE,OAAOtB,IAAI5vB,GAAGgxB,EAAE,CAAC,MAAM/5G,IAAG,CAAC,CAAC7c,EAAQw5F,mDAAmDxrB,GAC9YhuE,EAAQ+2H,aAAa,SAASl6G,EAAEC,GAAG,IAAII,EAAE,EAAEhc,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIwzH,GAAG53G,GAAG,MAAM/W,MAAMgvE,EAAE,MAAM,OAbuH,SAAYl4D,EAAEC,EAAEI,GAAG,IAAIC,EAAE,EAAEjc,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACkxE,SAASsnB,EAAGp4F,IAAI,MAAM6b,EAAE,KAAK,GAAGA,EAAEpR,SAAS8Q,EAAEgsF,cAAc/rF,EAAE47D,eAAex7D,EAAE,CAa1R85G,CAAGn6G,EAAEC,EAAE,KAAKI,EAAE,EAAEld,EAAQi3H,WAAW,SAASp6G,EAAEC,GAAG,IAAI43G,GAAG73G,GAAG,MAAM9W,MAAMgvE,EAAE,MAAM,IAAI73D,GAAE,EAAGC,EAAE,GAAGlL,EAAEoiH,GAA4P,OAAzP,OAAOv3G,QAAG,IAASA,KAAI,IAAKA,EAAEo6G,sBAAsBh6G,GAAE,QAAI,IAASJ,EAAEyrG,mBAAmBprG,EAAEL,EAAEyrG,uBAAkB,IAASzrG,EAAEm2G,qBAAqBhhH,EAAE6K,EAAEm2G,qBAAqBn2G,EAAE62G,GAAG92G,EAAE,GAAE,EAAG,KAAK,EAAKK,EAAE,EAAGC,EAAElL,GAAG4K,EAAEs7F,IAAIr7F,EAAEjV,QAAQgwG,GAAG,IAAIh7F,EAAE+4E,SAAS/4E,EAAE+gD,WAAW/gD,GAAU,IAAI03G,GAAGz3G,EAAE,EACrf9c,EAAQm3H,YAAY,SAASt6G,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAE+4E,SAAS,OAAO/4E,EAAE,IAAIC,EAAED,EAAEgkG,gBAAgB,QAAG,IAAS/jG,EAAE,CAAC,GAAG,oBAAoBD,EAAE23D,OAAO,MAAMzuE,MAAMgvE,EAAE,MAAiC,MAA3Bl4D,EAAEvc,OAAOD,KAAKwc,GAAGmT,KAAK,KAAWjqB,MAAMgvE,EAAE,IAAIl4D,GAAI,CAAqC,OAA5BA,EAAE,QAAVA,EAAEqnF,GAAGpnF,IAAc,KAAKD,EAAEylF,SAAkB,EAAEtiG,EAAQo3H,UAAU,SAASv6G,GAAG,OAAO21G,GAAG31G,EAAE,EAAE7c,EAAQq3H,QAAQ,SAASx6G,EAAEC,EAAEI,GAAG,IAAIy3G,GAAG73G,GAAG,MAAM/W,MAAMgvE,EAAE,MAAM,OAAO8/C,GAAG,KAAKh4G,EAAEC,GAAE,EAAGI,EAAE,EAC/Yld,EAAQs3H,YAAY,SAASz6G,EAAEC,EAAEI,GAAG,IAAIw3G,GAAG73G,GAAG,MAAM9W,MAAMgvE,EAAE,MAAM,IAAI53D,EAAE,MAAMD,GAAGA,EAAEq6G,iBAAiB,KAAKtlH,GAAE,EAAGmN,EAAE,GAAGqrD,EAAE4pD,GAAyO,GAAtO,OAAOn3G,QAAG,IAASA,KAAI,IAAKA,EAAEg6G,sBAAsBjlH,GAAE,QAAI,IAASiL,EAAEqrG,mBAAmBnpG,EAAElC,EAAEqrG,uBAAkB,IAASrrG,EAAE+1G,qBAAqBxoD,EAAEvtD,EAAE+1G,qBAAqBn2G,EAAEg3G,GAAGh3G,EAAE,KAAKD,EAAE,EAAE,MAAMK,EAAEA,EAAE,KAAKjL,EAAE,EAAGmN,EAAEqrD,GAAG5tD,EAAEs7F,IAAIr7F,EAAEjV,QAAQgwG,GAAGh7F,GAAMM,EAAE,IAAIN,EAAE,EAAEA,EAAEM,EAAEhc,OAAO0b,IAA2B5K,GAAhBA,GAAPiL,EAAEC,EAAEN,IAAO26G,aAAgBt6G,EAAEu6G,SAAS,MAAM36G,EAAE42G,gCAAgC52G,EAAE42G,gCAAgC,CAACx2G,EAAEjL,GAAG6K,EAAE42G,gCAAgC7yH,KAAKqc,EACvhBjL,GAAG,OAAO,IAAIwiH,GAAG33G,EAAE,EAAE9c,EAAQw0E,OAAO,SAAS33D,EAAEC,EAAEI,GAAG,IAAIy3G,GAAG73G,GAAG,MAAM/W,MAAMgvE,EAAE,MAAM,OAAO8/C,GAAG,KAAKh4G,EAAEC,GAAE,EAAGI,EAAE,EAAEld,EAAQ03H,uBAAuB,SAAS76G,GAAG,IAAI83G,GAAG93G,GAAG,MAAM9W,MAAMgvE,EAAE,KAAK,QAAOl4D,EAAE0xG,sBAAqBiE,IAAG,WAAWqC,GAAG,KAAK,KAAKh4G,GAAE,GAAG,WAAWA,EAAE0xG,oBAAoB,KAAK1xG,EAAEs7F,IAAI,IAAI,GAAE,KAAG,EAAM,EAAEn4G,EAAQ23H,wBAAwBpF,GAC/UvyH,EAAQ43H,oCAAoC,SAAS/6G,EAAEC,EAAEI,EAAEC,GAAG,IAAIw3G,GAAGz3G,GAAG,MAAMnX,MAAMgvE,EAAE,MAAM,GAAG,MAAMl4D,QAAG,IAASA,EAAEgkG,gBAAgB,MAAM96G,MAAMgvE,EAAE,KAAK,OAAO8/C,GAAGh4G,EAAEC,EAAEI,GAAE,EAAGC,EAAE,EAAEnd,EAAQoL,QAAQ,+DChU7L,IAAIu3D,EAAIlvD,EAAQ,OAEdzT,EAAQi3H,WAAat0D,EAAEs0D,WACvBj3H,EAAQs3H,YAAc30D,EAAE20D,2CCH1B,SAASO,IAEP,GAC4C,qBAAnClB,gCAC4C,oBAA5CA,+BAA+BkB,SAcxC,IAEElB,+BAA+BkB,SAASA,EAC1C,CAAE,MAAOj0H,GAGPsG,QAAQ+G,MAAMrN,EAChB,CACF,CAKEi0H,GACAzjH,EAAOpU,QAAU,EAAjBoU,kBChCF,IAAI0jH,EAAoC,qBAAZvoH,QACxBwoH,EAAwB,oBAARp9C,IAChBq9C,EAAwB,oBAARl9C,IAChBm9C,EAAwC,oBAAhBr9G,eAAgCA,YAAYC,OAIxE,SAASq9G,EAAMr7G,EAAGC,GAEhB,GAAID,IAAMC,EAAG,OAAO,EAEpB,GAAID,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,CAC1D,GAAID,EAAE9a,cAAgB+a,EAAE/a,YAAa,OAAO,EAE5C,IAAIZ,EAAQF,EAAGZ,EA6BX83H,EA5BJ,GAAIj1H,MAAMC,QAAQ0Z,GAAI,CAEpB,IADA1b,EAAS0b,EAAE1b,SACG2b,EAAE3b,OAAQ,OAAO,EAC/B,IAAKF,EAAIE,EAAgB,IAARF,KACf,IAAKi3H,EAAMr7G,EAAE5b,GAAI6b,EAAE7b,IAAK,OAAO,EACjC,OAAO,CACT,CAuBA,GAAI82H,GAAWl7G,aAAa89D,KAAS79D,aAAa69D,IAAM,CACtD,GAAI99D,EAAE08C,OAASz8C,EAAEy8C,KAAM,OAAO,EAE9B,IADA4+D,EAAKt7G,EAAE+2C,YACE3yD,EAAIk3H,EAAGz0H,QAAQC,UACjBmZ,EAAEswE,IAAInsF,EAAEgB,MAAM,IAAK,OAAO,EAEjC,IADAk2H,EAAKt7G,EAAE+2C,YACE3yD,EAAIk3H,EAAGz0H,QAAQC,UACjBu0H,EAAMj3H,EAAEgB,MAAM,GAAI6a,EAAE9I,IAAI/S,EAAEgB,MAAM,KAAM,OAAO,EACpD,OAAO,CACT,CAEA,GAAI+1H,GAAWn7G,aAAai+D,KAASh+D,aAAag+D,IAAM,CACtD,GAAIj+D,EAAE08C,OAASz8C,EAAEy8C,KAAM,OAAO,EAE9B,IADA4+D,EAAKt7G,EAAE+2C,YACE3yD,EAAIk3H,EAAGz0H,QAAQC,UACjBmZ,EAAEswE,IAAInsF,EAAEgB,MAAM,IAAK,OAAO,EACjC,OAAO,CACT,CAGA,GAAIg2H,GAAkBr9G,YAAYC,OAAOgC,IAAMjC,YAAYC,OAAOiC,GAAI,CAEpE,IADA3b,EAAS0b,EAAE1b,SACG2b,EAAE3b,OAAQ,OAAO,EAC/B,IAAKF,EAAIE,EAAgB,IAARF,KACf,GAAI4b,EAAE5b,KAAO6b,EAAE7b,GAAI,OAAO,EAC5B,OAAO,CACT,CAEA,GAAI4b,EAAE9a,cAAgB09B,OAAQ,OAAO5iB,EAAEzb,SAAW0b,EAAE1b,QAAUyb,EAAEgnF,QAAU/mF,EAAE+mF,MAK5E,GAAIhnF,EAAE0f,UAAYj8B,OAAO0B,UAAUu6B,SAAgC,oBAAd1f,EAAE0f,SAA+C,oBAAdzf,EAAEyf,QAAwB,OAAO1f,EAAE0f,YAAczf,EAAEyf,UAC3I,GAAI1f,EAAE5Y,WAAa3D,OAAO0B,UAAUiC,UAAkC,oBAAf4Y,EAAE5Y,UAAiD,oBAAf6Y,EAAE7Y,SAAyB,OAAO4Y,EAAE5Y,aAAe6Y,EAAE7Y,WAKhJ,IADA9C,GADAd,EAAOC,OAAOD,KAAKwc,IACL1b,UACCb,OAAOD,KAAKyc,GAAG3b,OAAQ,OAAO,EAE7C,IAAKF,EAAIE,EAAgB,IAARF,KACf,IAAKX,OAAO0B,UAAU4C,eAAejC,KAAKma,EAAGzc,EAAKY,IAAK,OAAO,EAKhE,GAAI62H,GAAkBj7G,aAAatN,QAAS,OAAO,EAGnD,IAAKtO,EAAIE,EAAgB,IAARF,KACf,IAAiB,WAAZZ,EAAKY,IAA+B,QAAZZ,EAAKY,IAA4B,QAAZZ,EAAKY,KAAiB4b,EAAEu1D,YAarE8lD,EAAMr7G,EAAExc,EAAKY,IAAK6b,EAAEzc,EAAKY,KAAM,OAAO,EAK7C,OAAO,CACT,CAEA,OAAO4b,IAAMA,GAAKC,IAAMA,CAC1B,CAGA1I,EAAOpU,QAAU,SAAiB6c,EAAGC,GACnC,IACE,OAAOo7G,EAAMr7G,EAAGC,EAClB,CAAE,MAAO7L,GACP,IAAMA,EAAM6T,SAAW,IAAIlD,MAAM,oBAO/B,OADA1X,QAAQC,KAAK,mDACN,EAGT,MAAM8G,CACR,CACF,mBC1IA,IA2BoBmnH,EA3BhBC,EAAW/3H,OAAOwQ,OAClBwnH,EAAYh4H,OAAOoB,eACnB62H,EAAmBj4H,OAAOK,yBAC1B63H,EAAoBl4H,OAAO68E,oBAC3Bs7C,EAAen4H,OAAOioD,eACtBmwE,EAAep4H,OAAO0B,UAAU4C,eAMhC+zH,EAAcA,CAACC,EAAIx0H,EAAMy0H,EAAQ9kD,KACnC,GAAI3vE,GAAwB,kBAATA,GAAqC,oBAATA,EAC7C,IAAK,IAAI9C,KAAOk3H,EAAkBp0H,GAC3Bs0H,EAAa/1H,KAAKi2H,EAAIt3H,IAAQA,IAAQu3H,GACzCP,EAAUM,EAAIt3H,EAAK,CAAE0S,IAAKA,IAAM5P,EAAK9C,GAAMV,aAAcmzE,EAAOwkD,EAAiBn0H,EAAM9C,KAASyyE,EAAKnzE,aAE3G,OAAOg4H,CAAE,EAEPE,EAAUA,CAACV,EAAKW,EAAY/3H,KAAYA,EAAgB,MAAPo3H,EAAcC,EAASI,EAAaL,IAAQ,CAAC,EAAGO,GAKnGI,GAAeX,GAAQA,EAAIzzH,WAA8E3D,EAAjEs3H,EAAUt3H,EAAQ,UAAW,CAAEiB,MAAOm2H,EAAKx3H,YAAY,IAC/Fw3H,IAGEY,EAAgBA,CAACp3H,EAAKN,EAAKW,KAtBTg3H,EAACr3H,EAAKN,EAAKW,KAAUX,KAAOM,EAAM02H,EAAU12H,EAAKN,EAAK,CAAEV,YAAY,EAAMsB,cAAc,EAAMC,UAAU,EAAMF,UAAWL,EAAIN,GAAOW,CAAK,EAuB7Jg3H,CAAgBr3H,EAAoB,kBAARN,EAAmBA,EAAM,GAAKA,EAAKW,GACxDA,GAELi3H,EAAiB,CAAC,EAzBPC,EAACn4H,EAAQuyE,KACtB,IAAK,IAAIpvE,KAAQovE,EACf+kD,EAAUt3H,EAAQmD,EAAM,CAAE6P,IAAKu/D,EAAIpvE,GAAOvD,YAAY,GAAO,EAwBjEu4H,CAASD,EAAgB,CACvBluD,QAASA,IAAMouD,IAEjBhlH,EAAOpU,SATao4H,EASUc,EATFP,EAAYL,EAAU,CAAC,EAAG,aAAc,CAAEr2H,OAAO,IAASm2H,IAUtF,IAAIiB,EAAeP,EAAQrlH,EAAQ,QAC/B6lH,EAA4BR,EAAQrlH,EAAQ,QAC5C8lH,EAAe9lH,EAAQ,OACvB+lH,EAAe/lH,EAAQ,OAE3B,MAAM2lH,UAAeC,EAAa5Y,UAChC1+G,WAAAA,GAAc,IAAA03H,EACZC,SAASx4H,WAAUu4H,EAAA/9G,KACnBs9G,EAAct9G,KAAM,WAAW,GAC/Bs9G,EAAct9G,KAAM,WAAW,GAC/Bs9G,EAAct9G,KAAM,aAAa,GAEjCs9G,EAAct9G,KAAM,aAAa,GAEjCs9G,EAAct9G,KAAM,cAAe,MACnCs9G,EAAct9G,KAAM,eAAe,GACnCs9G,EAAct9G,KAAM,aAAc,MAClCs9G,EAAct9G,KAAM,oBAAoB,GACxCs9G,EAAct9G,KAAM,qBAAsBi+G,IACpCj+G,KAAKi+G,SAITj+G,KAAKi+G,OAASA,EACdj+G,KAAKi+G,OAAOztG,KAAKxQ,KAAKjW,MAAM4F,MAJ1BqQ,KAAK8nB,UAKQ,IAEjBw1F,EAAct9G,KAAM,qBAAsBpa,GACnCoa,KAAKi+G,OAEHj+G,KAAKi+G,OAAOr4H,GADV,OAGX03H,EAAct9G,KAAM,YAAY,KAC9B,GAAIA,KAAKjW,MAAM4F,KAAOqQ,KAAKi+G,QAAUj+G,KAAKk+G,QAAS,CACjD,MAAMC,EAAgBn+G,KAAKo+G,kBAAoB,EACzCC,EAAgBr+G,KAAKs+G,mBACrBC,EAAWv+G,KAAKw+G,cACtB,GAAID,EAAU,CACZ,MAAMz2F,EAAW,CACfq2F,gBACAM,OAAQN,EAAgBI,GAEJ,OAAlBF,IACFv2F,EAASu2F,cAAgBA,EACzBv2F,EAASC,OAASs2F,EAAgBE,GAEhCz2F,EAASq2F,gBAAkBn+G,KAAK0+G,YAAc52F,EAASu2F,gBAAkBr+G,KAAK2+G,YAChF3+G,KAAKjW,MAAM60H,WAAW92F,GAExB9nB,KAAK0+G,WAAa52F,EAASq2F,cAC3Bn+G,KAAK2+G,WAAa72F,EAASu2F,aAC7B,CACF,CACAr+G,KAAK6+G,gBAAkBp2F,WAAWzoB,KAAK8nB,SAAU9nB,KAAKjW,MAAM+0H,mBAAqB9+G,KAAKjW,MAAMg1H,iBAAiB,IAE/GzB,EAAct9G,KAAM,eAAe,KACjC,IAAKA,KAAKg/G,QACR,OACFh/G,KAAKk+G,SAAU,EACfl+G,KAAKi/G,WAAY,EACjB,MAAM,QAAE7qH,EAAO,QAAE8qH,EAAO,OAAEC,EAAM,MAAEC,GAAUp/G,KAAKjW,MACjDqK,IACKgrH,GAAoB,OAAXD,GACZn/G,KAAKi+G,OAAOoB,UAAUF,GAEpBn/G,KAAKs/G,aACPt/G,KAAKi+G,OAAOztG,KAAKxQ,KAAKs/G,aAAa,GACnCt/G,KAAKs/G,YAAc,MACVJ,GACTl/G,KAAKi+G,OAAOsB,OAEdv/G,KAAKw/G,qBAAqB,IAE5BlC,EAAct9G,KAAM,cAAc,KAChCA,KAAKy/G,WAAY,EACjBz/G,KAAKi/G,WAAY,EACjB,MAAM,QAAES,EAAO,OAAEC,EAAM,aAAEC,GAAiB5/G,KAAKjW,MAC3CiW,KAAK6/G,cACH7/G,KAAKi+G,OAAO6B,iBAAoC,IAAjBF,GACjC5/G,KAAKi+G,OAAO6B,gBAAgBF,GAE9BF,IACA1/G,KAAK6/G,aAAc,GAErBF,IACI3/G,KAAK+/G,aACP//G,KAAKggH,OAAOhgH,KAAK+/G,YACjB//G,KAAK+/G,WAAa,MAEpB//G,KAAKw/G,qBAAqB,IAE5BlC,EAAct9G,KAAM,eAAgBzJ,IAClCyJ,KAAKy/G,WAAY,EACZz/G,KAAKi/G,WACRj/G,KAAKjW,MAAMk2H,QAAQ1pH,EACrB,IAEF+mH,EAAct9G,KAAM,eAAe,KACjC,MAAM,aAAEkgH,EAAY,KAAEC,EAAI,QAAEC,GAAYpgH,KAAKjW,MACzCm2H,EAAaG,aAAeF,GAC9BngH,KAAKggH,OAAO,GAETG,IACHngH,KAAKy/G,WAAY,EACjBW,IACF,IAEF9C,EAAct9G,KAAM,eAAe,WACjC+9G,EAAKkB,WAAY,EACjBlB,EAAKh0H,MAAM09F,WAAQjiG,UACrB,IACA83H,EAAct9G,KAAM,uBAAuB,KACzC89F,aAAa99F,KAAKsgH,sBAClB,MAAM/B,EAAWv+G,KAAKw+G,cAClBD,EACGv+G,KAAKugH,mBACRvgH,KAAKjW,MAAMy2H,WAAWjC,GACtBv+G,KAAKugH,kBAAmB,GAG1BvgH,KAAKsgH,qBAAuB73F,WAAWzoB,KAAKw/G,oBAAqB,IACnE,IAEFlC,EAAct9G,KAAM,gBAAgB,KAClCA,KAAKi/G,WAAY,CAAK,GAE1B,CACA1Y,iBAAAA,GACEvmG,KAAKg/G,SAAU,CACjB,CACA5L,oBAAAA,GACEtV,aAAa99F,KAAK6+G,iBAClB/gB,aAAa99F,KAAKsgH,sBACdtgH,KAAKk+G,SAAWl+G,KAAKjW,MAAM02H,gBAC7BzgH,KAAKi+G,OAAO7wC,OACRptE,KAAKi+G,OAAOyC,YACd1gH,KAAKi+G,OAAOyC,cAGhB1gH,KAAKg/G,SAAU,CACjB,CACA7P,kBAAAA,CAAmBwR,GACjB,IAAK3gH,KAAKi+G,OACR,OAEF,MAAM,IAAEtuH,EAAG,QAAEuvH,EAAO,OAAEC,EAAM,MAAEC,EAAK,aAAEQ,EAAY,IAAEgB,EAAG,KAAET,EAAI,aAAED,EAAY,uBAAEW,GAA2B7gH,KAAKjW,MAC5G,KAAK,EAAI6zH,EAA0BtuD,SAASqxD,EAAUhxH,IAAKA,GAAM,CAC/D,GAAIqQ,KAAKi/G,YAAciB,EAAaY,YAAcD,KAA2B,EAAI/C,EAAaiD,eAAepxH,GAG3G,OAFAnB,QAAQC,KAAK,oCAADC,OAAqCiB,EAAG,wDACpDqQ,KAAKs/G,YAAc3vH,GAGrBqQ,KAAKi/G,WAAY,EACjBj/G,KAAK6/G,aAAc,EACnB7/G,KAAKugH,kBAAmB,EACxBvgH,KAAKi+G,OAAOztG,KAAK7gB,EAAKqQ,KAAKk+G,QAC7B,CACKyC,EAAUzB,UAAWA,GAAYl/G,KAAKy/G,WACzCz/G,KAAKi+G,OAAOsB,OAEVoB,EAAUzB,UAAYA,GAAWl/G,KAAKy/G,WACxCz/G,KAAKi+G,OAAO+C,SAETL,EAAUC,KAAOA,GAAO5gH,KAAKi+G,OAAOgD,WACvCjhH,KAAKi+G,OAAOgD,YAEVN,EAAUC,MAAQA,GAAO5gH,KAAKi+G,OAAOyC,YACvC1gH,KAAKi+G,OAAOyC,aAEVC,EAAUxB,SAAWA,GAAqB,OAAXA,GACjCn/G,KAAKi+G,OAAOoB,UAAUF,GAEpBwB,EAAUvB,QAAUA,IAClBA,EACFp/G,KAAKi+G,OAAOiD,QAEZlhH,KAAKi+G,OAAOkD,SACG,OAAXhC,GACF12F,YAAW,IAAMzoB,KAAKi+G,OAAOoB,UAAUF,OAIzCwB,EAAUf,eAAiBA,GAAgB5/G,KAAKi+G,OAAO6B,iBACzD9/G,KAAKi+G,OAAO6B,gBAAgBF,GAE1Be,EAAUR,OAASA,GAAQngH,KAAKi+G,OAAOmD,SACzCphH,KAAKi+G,OAAOmD,QAAQjB,EAExB,CACA3B,WAAAA,GACE,OAAKx+G,KAAKk+G,QAEHl+G,KAAKi+G,OAAOO,cADV,IAEX,CACAJ,cAAAA,GACE,OAAKp+G,KAAKk+G,QAEHl+G,KAAKi+G,OAAOG,iBADV,IAEX,CACAE,gBAAAA,GACE,OAAKt+G,KAAKk+G,QAEHl+G,KAAKi+G,OAAOK,mBADV,IAEX,CACA0B,MAAAA,CAAOqB,EAAQ1tH,EAAM2tH,GACnB,IAAKthH,KAAKk+G,QAOR,YANe,IAAXmD,IACFrhH,KAAK+/G,WAAasB,EAClB54F,YAAW,KACTzoB,KAAK+/G,WAAa,IAAI,GA7MJ,OAmNxB,GADoBpsH,EAA2C,aAATA,EAA3B0tH,EAAS,GAAKA,EAAS,EAClC,CACd,MAAM9C,EAAWv+G,KAAKi+G,OAAOO,cAC7B,OAAKD,OAILv+G,KAAKi+G,OAAO+B,OAAOzB,EAAW8C,EAAQC,QAHpC9yH,QAAQC,KAAK,kFAKjB,CACAuR,KAAKi+G,OAAO+B,OAAOqB,EAAQC,EAC7B,CACAxoD,MAAAA,GACE,MAAMyoD,EAAUvhH,KAAKjW,MAAMm2H,aAC3B,OAAKqB,EAGkB5D,EAAaruD,QAAQt+D,cAC1CuwH,EACA,IACKvhH,KAAKjW,MACRy3H,QAASxhH,KAAKyhH,kBACdrtH,QAAS4L,KAAK0hH,YACd/B,OAAQ3/G,KAAK2hH,WACb1B,QAASjgH,KAAK4hH,YACdxB,QAASpgH,KAAK6hH,YACdC,SAAU9hH,KAAK+hH,aACft6B,QAASznF,KAAK2H,cAZT,IAeX,EAEF21G,EAAcI,EAAQ,cAAe,UACrCJ,EAAcI,EAAQ,YAAaG,EAAat0H,WAChD+zH,EAAcI,EAAQ,eAAgBG,EAAahiD,+BC7RnD,IA2BoB6gD,EA3BhBC,EAAW/3H,OAAOwQ,OAClBwnH,EAAYh4H,OAAOoB,eACnB62H,EAAmBj4H,OAAOK,yBAC1B63H,EAAoBl4H,OAAO68E,oBAC3Bs7C,EAAen4H,OAAOioD,eACtBmwE,EAAep4H,OAAO0B,UAAU4C,eAMhC+zH,EAAcA,CAACC,EAAIx0H,EAAMy0H,EAAQ9kD,KACnC,GAAI3vE,GAAwB,kBAATA,GAAqC,oBAATA,EAC7C,IAAK,IAAI9C,KAAOk3H,EAAkBp0H,GAC3Bs0H,EAAa/1H,KAAKi2H,EAAIt3H,IAAQA,IAAQu3H,GACzCP,EAAUM,EAAIt3H,EAAK,CAAE0S,IAAKA,IAAM5P,EAAK9C,GAAMV,aAAcmzE,EAAOwkD,EAAiBn0H,EAAM9C,KAASyyE,EAAKnzE,aAE3G,OAAOg4H,CAAE,EAEPE,EAAUA,CAACV,EAAKW,EAAY/3H,KAAYA,EAAgB,MAAPo3H,EAAcC,EAASI,EAAaL,IAAQ,CAAC,EAAGO,GAKnGI,GAAeX,GAAQA,EAAIzzH,WAA8E3D,EAAjEs3H,EAAUt3H,EAAQ,UAAW,CAAEiB,MAAOm2H,EAAKx3H,YAAY,IAC/Fw3H,IAGEY,EAAgBA,CAACp3H,EAAKN,EAAKW,KAtBTg3H,EAACr3H,EAAKN,EAAKW,KAAUX,KAAOM,EAAM02H,EAAU12H,EAAKN,EAAK,CAAEV,YAAY,EAAMsB,cAAc,EAAMC,UAAU,EAAMF,UAAWL,EAAIN,GAAOW,CAAK,EAuB7Jg3H,CAAgBr3H,EAAoB,kBAARN,EAAmBA,EAAM,GAAKA,EAAKW,GACxDA,GAELy7H,EAAsB,CAAC,EAzBZvE,EAACn4H,EAAQuyE,KACtB,IAAK,IAAIpvE,KAAQovE,EACf+kD,EAAUt3H,EAAQmD,EAAM,CAAE6P,IAAKu/D,EAAIpvE,GAAOvD,YAAY,GAAO,EAwBjEu4H,CAASuE,EAAqB,CAC5BC,kBAAmBA,IAAMA,IAE3BvpH,EAAOpU,SATao4H,EASUsF,EATF/E,EAAYL,EAAU,CAAC,EAAG,aAAc,CAAEr2H,OAAO,IAASm2H,IAUtF,IAAIiB,EAAeP,EAAQrlH,EAAQ,QAC/BmqH,EAAmB9E,EAAQrlH,EAAQ,QACnCoqH,EAAqB/E,EAAQrlH,EAAQ,QACrC6lH,EAA4BR,EAAQrlH,EAAQ,QAC5C8lH,EAAe9lH,EAAQ,OACvB+lH,EAAe/lH,EAAQ,OACvBqqH,EAAgBhF,EAAQrlH,EAAQ,QACpC,MAAMsqH,GAAU,EAAIvE,EAAawE,OAAM,IAAM,sCAIvCC,EAA+B,qBAAX9sH,QAA0BA,OAAOg8B,UAAgC,qBAAbA,SACxE+wF,EAA8B,qBAAXl5D,EAAAA,GAA0BA,EAAAA,EAAO7zD,QAAU6zD,EAAAA,EAAO7zD,OAAOg8B,SAC5EgxF,EAAkB79H,OAAOD,KAAKk5H,EAAat0H,WAC3Cm5H,EAAoBH,GAAcC,EAAY7E,EAAagF,SAAW,IAAM,KAC5EC,EAAgB,GAChBX,EAAoBA,CAACY,EAAS9S,KAClC,IAAI9tG,EACJ,OAAOA,EAAK,cAAc07G,EAAa5Y,UACrC1+G,WAAAA,GAAc,IAAA03H,EACZC,SAASx4H,WAAUu4H,EAAA/9G,KACnBs9G,EAAct9G,KAAM,QAAS,CAC3B8iH,cAAe9iH,KAAKjW,MAAMg5H,QAG5BzF,EAAct9G,KAAM,aAAc,CAChCgjH,QAAUA,IACRhjH,KAAKgjH,QAAUA,CAAO,EAExB/E,OAASA,IACPj+G,KAAKi+G,OAASA,CAAM,IAGxBX,EAAct9G,KAAM,sBAAuBzJ,IACzCyJ,KAAKijH,SAAS,CAAEH,aAAa,IAC7B9iH,KAAKjW,MAAMm5H,eAAe3sH,EAAE,IAE9B+mH,EAAct9G,KAAM,eAAe,KACjCA,KAAKijH,SAAS,CAAEH,aAAa,GAAO,IAEtCxF,EAAct9G,KAAM,eAAe,IAC5BA,KAAKi+G,OAEHj+G,KAAKi+G,OAAOO,cADV,OAGXlB,EAAct9G,KAAM,kBAAkB,IAC/BA,KAAKi+G,OAEHj+G,KAAKi+G,OAAOG,iBADV,OAGXd,EAAct9G,KAAM,oBAAoB,IACjCA,KAAKi+G,OAEHj+G,KAAKi+G,OAAOK,mBADV,OAGXhB,EAAct9G,KAAM,qBAAqB,WAAoB,IAAnBpa,EAAGJ,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,SAC9C,OAAKu4H,EAAKE,OAEHF,EAAKE,OAAOkF,kBAAkBv9H,GAD5B,IAEX,IACA03H,EAAct9G,KAAM,UAAU,CAACojH,EAAUzvH,EAAM2tH,KAC7C,IAAKthH,KAAKi+G,OACR,OAAO,KACTj+G,KAAKi+G,OAAO+B,OAAOoD,EAAUzvH,EAAM2tH,EAAY,IAEjDhE,EAAct9G,KAAM,eAAe,KACjCA,KAAKjW,MAAMqK,QAAQ4L,KAAK,IAE1Bs9G,EAAct9G,KAAM,mBAAmB,EAAImiH,EAAmB7yD,UAAU3/D,IACtE,IAAK,MAAMsuH,IAAU,IAAI2E,KAAkBC,GACzC,GAAI5E,EAAOoF,QAAQ1zH,GACjB,OAAOsuH,EAGX,OAAIlO,GAGG,IAAI,KAEbuN,EAAct9G,KAAM,aAAa,EAAImiH,EAAmB7yD,UAAS,CAAC3/D,EAAK/J,KACrE,MAAM,OAAE2nB,GAAWvN,KAAKjW,MACxB,OAAOm4H,EAAiB5yD,QAAQuI,IAAI,CAClCgmD,EAAahiD,aAAatuD,OAC1BswG,EAAahiD,aAAatuD,OAAO3nB,IAAQ,CAAC,EAC1C2nB,EACAA,EAAO3nB,IAAQ,CAAC,GAChB,KAEJ03H,EAAct9G,KAAM,iBAAiB,EAAImiH,EAAmB7yD,UAAU3/D,IAC7D,EAAImuH,EAAawF,MAAMtjH,KAAKjW,MAAO04H,MAE5CnF,EAAct9G,KAAM,sBAAuBrQ,IACzC,IAAKA,EACH,OAAO,KACT,MAAMsuH,EAASj+G,KAAKujH,gBAAgB5zH,GACpC,IAAKsuH,EACH,OAAO,KACT,MAAM1wG,EAASvN,KAAKwjH,UAAU7zH,EAAKsuH,EAAOr4H,KAC1C,OAAuB+3H,EAAaruD,QAAQt+D,cAC1CoxH,EAAc9yD,QACd,IACKtvD,KAAKjW,MACRnE,IAAKq4H,EAAOr4H,IACZ4G,IAAKwT,KAAKyjH,WAAWxF,OACrB1wG,SACA2yG,aAAcjC,EAAOyF,YAAczF,EACnC7pH,QAAS4L,KAAK0hH,aAEjB,GAEL,CACAhc,qBAAAA,CAAsBie,EAAWC,GAC/B,QAAQ,EAAIhG,EAA0BtuD,SAAStvD,KAAKjW,MAAO45H,MAAe,EAAI/F,EAA0BtuD,SAAStvD,KAAKa,MAAO+iH,EAC/H,CACAzU,kBAAAA,CAAmBwR,GACjB,MAAM,MAAEoC,GAAU/iH,KAAKjW,OAClB42H,EAAUoC,OAASA,GACtB/iH,KAAKijH,SAAS,CAAEH,aAAa,IAE3BnC,EAAUoC,QAAUA,GACtB/iH,KAAKijH,SAAS,CAAEH,aAAa,GAEjC,CACAe,aAAAA,CAAcl0H,GACZ,IAAKA,EACH,OAAO,KACT,MAAM,MAAEozH,EAAK,SAAEe,EAAQ,gBAAEC,EAAe,UAAEC,EAAS,iBAAEC,GAAqBjkH,KAAKjW,MAC/E,OAAuB4zH,EAAaruD,QAAQt+D,cAC1CqxH,EACA,CACE1yH,MACAozH,QACAe,WACAC,kBACAE,mBACAD,YACAzvH,QAASyL,KAAKkkH,oBAGpB,CACAprD,MAAAA,GACE,MAAM,IAAEnpE,EAAG,MAAEgsE,EAAK,MAAEm4B,EAAK,OAAEC,EAAQgc,SAAUoU,EAAWnB,QAASoB,GAAYpkH,KAAKjW,OAC5E,YAAE+4H,GAAgB9iH,KAAKa,MACvBwiD,EAAarjD,KAAKqkH,cAAc10H,GAChC20H,EAAgC,kBAAZF,EAAuBpkH,KAAKyjH,WAAWT,aAAU,EAC3E,OAAuBrF,EAAaruD,QAAQt+D,cAAcozH,EAAS,CAAE53H,IAAK83H,EAAY3oD,MAAO,IAAKA,EAAOm4B,QAAOC,aAAa1wC,GAA8Bs6D,EAAaruD,QAAQt+D,cAAc0xH,EAAmB,CAAE3S,SAAUoU,GAAarB,EAAc9iH,KAAK6jH,cAAcl0H,GAAOqQ,KAAKukH,mBAAmB50H,IAC5S,GACC2tH,EAAcr7G,EAAI,cAAe,eAAgBq7G,EAAcr7G,EAAI,YAAa47G,EAAat0H,WAAY+zH,EAAcr7G,EAAI,eAAgB47G,EAAahiD,cAAeyhD,EAAcr7G,EAAI,mBAAoBg8G,IAC9M2E,EAAcz9H,KAAK84H,EAAO,IACxBX,EAAcr7G,EAAI,uBAAuB,KAC3C2gH,EAAcn9H,OAAS,CAAC,IACtB63H,EAAcr7G,EAAI,WAAYtS,IAChC,IAAK,MAAM4xH,IAAW,IAAIqB,KAAkBC,GAC1C,GAAItB,EAAQ8B,QAAQ1zH,GAClB,OAAO,EAGX,OAAO,CAAK,IACV2tH,EAAcr7G,EAAI,gBAAiBtS,IACrC,IAAK,MAAM4xH,IAAW,IAAIqB,KAAkBC,GAC1C,GAAItB,EAAQiD,cAAgBjD,EAAQiD,aAAa70H,GAC/C,OAAO,EAGX,OAAO,CAAK,IACVsS,CAAE,kBC1MR,IA0BoBy6G,EA1BhBC,EAAW/3H,OAAOwQ,OAClBwnH,EAAYh4H,OAAOoB,eACnB62H,EAAmBj4H,OAAOK,yBAC1B63H,EAAoBl4H,OAAO68E,oBAC3Bs7C,EAAen4H,OAAOioD,eACtBmwE,EAAep4H,OAAO0B,UAAU4C,eAKhC+zH,EAAcA,CAACC,EAAIx0H,EAAMy0H,EAAQ9kD,KACnC,GAAI3vE,GAAwB,kBAATA,GAAqC,oBAATA,EAC7C,IAAK,IAAI9C,KAAOk3H,EAAkBp0H,GAC3Bs0H,EAAa/1H,KAAKi2H,EAAIt3H,IAAQA,IAAQu3H,GACzCP,EAAUM,EAAIt3H,EAAK,CAAE0S,IAAKA,IAAM5P,EAAK9C,GAAMV,aAAcmzE,EAAOwkD,EAAiBn0H,EAAM9C,KAASyyE,EAAKnzE,aAE3G,OAAOg4H,CAAE,EAWPuH,EAAc,CAAC,EArBJhH,EAACn4H,EAAQuyE,KACtB,IAAK,IAAIpvE,KAAQovE,EACf+kD,EAAUt3H,EAAQmD,EAAM,CAAE6P,IAAKu/D,EAAIpvE,GAAOvD,YAAY,GAAO,EAoBjEu4H,CAASgH,EAAa,CACpBn1D,QAASA,IAAMo1D,IAEjBhsH,EAAOpU,SALao4H,EAKU+H,EALFxH,EAAYL,EAAU,CAAC,EAAG,aAAc,CAAEr2H,OAAO,IAASm2H,IAMtF,IAAIiI,EAdUvH,EAACV,EAAKW,EAAY/3H,KAAYA,EAAgB,MAAPo3H,EAAcC,EAASI,EAAaL,IAAQ,CAAC,EAAGO,GAKnGI,GAAeX,GAAQA,EAAIzzH,WAA8E3D,EAAjEs3H,EAAUt3H,EAAQ,UAAW,CAAEiB,MAAOm2H,EAAKx3H,YAAY,IAC/Fw3H,IAQmBU,CAAQrlH,EAAQ,QACjC6sH,EAAqB7sH,EAAQ,OACjC,MAAMg4G,EAAW4U,EAAer1D,QAAQq1D,EAAer1D,QAAQ7pE,OAAS,GACxE,IAAIi/H,GAAc,EAAIE,EAAmB3C,mBAAmB0C,EAAer1D,QAASygD,oBCnCpF,IAgBoB2M,EAhBhBE,EAAYh4H,OAAOoB,eACnB62H,EAAmBj4H,OAAOK,yBAC1B63H,EAAoBl4H,OAAO68E,oBAC3Bu7C,EAAep4H,OAAO0B,UAAU4C,eAchC27H,EAAmB,CAAC,EAbTpH,EAACn4H,EAAQuyE,KACtB,IAAK,IAAIpvE,KAAQovE,EACf+kD,EAAUt3H,EAAQmD,EAAM,CAAE6P,IAAKu/D,EAAIpvE,GAAOvD,YAAY,GAAO,EAYjEu4H,CAASoH,EAAkB,CACzBC,iBAAkBA,IAAMA,EACxBC,gBAAiBA,IAAMA,EACvBC,eAAgBA,IAAMA,EACtBC,eAAgBA,IAAMA,EACtBC,sBAAuBA,IAAMA,EAC7BC,mBAAoBA,IAAMA,EAC1BC,yBAA0BA,IAAMA,EAChCC,kBAAmBA,IAAMA,EACzBC,mBAAoBA,IAAMA,EAC1BC,cAAeA,IAAMA,EACrBC,qBAAsBA,IAAMA,EAC5BC,qBAAsBA,IAAMA,EAC5BC,yBAA0BA,IAAMA,EAChCC,uBAAwBA,IAAMA,EAC9BC,kBAAmBA,IAAMA,EACzBC,gBAAiBA,IAAMA,EACvBC,iBAAkBA,IAAMA,EACxBC,kBAAmBA,IAAMA,EACzBC,iBAAkBA,IAAMA,EACxB3C,QAASA,IAAMA,IAEjB3qH,EAAOpU,SAxBao4H,EAwBUmI,EAhCZ5H,EAACC,EAAIx0H,EAAMy0H,EAAQ9kD,KACnC,GAAI3vE,GAAwB,kBAATA,GAAqC,oBAATA,EAC7C,IAAK,IAAI9C,KAAOk3H,EAAkBp0H,GAC3Bs0H,EAAa/1H,KAAKi2H,EAAIt3H,IAAQA,IAAQu3H,GACzCP,EAAUM,EAAIt3H,EAAK,CAAE0S,IAAKA,IAAM5P,EAAK9C,GAAMV,aAAcmzE,EAAOwkD,EAAiBn0H,EAAM9C,KAASyyE,EAAKnzE,aAE3G,OAAOg4H,CAAE,EAEiBD,CAAYL,EAAU,CAAC,EAAG,aAAc,CAAEr2H,OAAO,IAASm2H,IAyBtF,IAAIoB,EAAe/lH,EAAQ,OAC3B,MAAMguH,EAAoB,sLACpBP,EAAuB,sCACvBK,EAAkB,yCAClBN,EAAgB,0BAChBJ,EAAqB,6EACrBC,EAA2B,6BAC3BK,EAAuB,gCACvBK,EAAmB,yEACnBH,EAAyB,iDACzBD,EAA2B,mDAC3BR,EAAwB,qIACxBI,EAAqB,gCACrBM,EAAoB,4CACpBP,EAAoB,iKACpBP,EAAmB,yEACnBkB,EAAmB,kDACnBf,EAAiB,kBACjBF,EAAkB,iBAClBC,EAAiB,iBACjBiB,EAAet2H,IACnB,GAAIA,aAAenI,MAAO,CACxB,IAAK,MAAM+zC,KAAQ5rC,EAAK,CACtB,GAAoB,kBAAT4rC,GAAqB0qF,EAAY1qF,GAC1C,OAAO,EAET,GAAI0qF,EAAY1qF,EAAKyyB,KACnB,OAAO,CAEX,CACA,OAAO,CACT,CACA,UAAI,EAAI8vD,EAAaiD,eAAepxH,MAAQ,EAAImuH,EAAaoI,WAAWv2H,MAGjEm1H,EAAiBn8H,KAAKgH,IAAQq2H,EAAiBr9H,KAAKgH,IAAQs1H,EAAet8H,KAAKgH,IAAQo1H,EAAgBp8H,KAAKgH,IAAQq1H,EAAer8H,KAAKgH,GAAI,EAEhJ0zH,EAAU,CACd8C,QAAUx2H,GACJA,aAAenI,MACVmI,EAAI5B,OAAOwtC,GAASwqF,EAAkBp9H,KAAK4yC,KAE7CwqF,EAAkBp9H,KAAKgH,GAEhCy2H,WAAaz2H,GAAQ61H,EAAqB78H,KAAKgH,KAASm1H,EAAiBn8H,KAAKgH,GAC9E02H,MAAQ12H,GAAQk2H,EAAgBl9H,KAAKgH,KAASq2H,EAAiBr9H,KAAKgH,KAASs1H,EAAet8H,KAAKgH,GACjG22H,IAAM32H,GAAQ41H,EAAc58H,KAAKgH,GACjC42H,SAAW52H,GAAQw1H,EAAmBx8H,KAAKgH,IAAQy1H,EAAyBz8H,KAAKgH,GACjF62H,WAAa72H,GAAQ81H,EAAqB98H,KAAKgH,GAC/C82H,OAAS92H,GAAQm2H,EAAiBn9H,KAAKgH,GACvC+2H,OAAS/2H,GAAQg2H,EAAuBh9H,KAAKgH,IAAQ+1H,EAAyB/8H,KAAKgH,GACnFg3H,YAAch3H,GAAQu1H,EAAsBv8H,KAAKgH,GACjDi3H,SAAWj3H,GAAQ21H,EAAmB38H,KAAKgH,GAC3Ck3H,QAAUl3H,GAAQi2H,EAAkBj9H,KAAKgH,GACzCm3H,QAAUn3H,GAAQ01H,EAAkB18H,KAAKgH,GACzCo3H,KAAMd,oBChGOrhI,OAAOwQ,OAAtB,IA0BoBsnH,EAzBhBE,EAAYh4H,OAAOoB,eACnB62H,EAAmBj4H,OAAOK,yBAC1B63H,EAAoBl4H,OAAO68E,oBAE3Bu7C,GADep4H,OAAOioD,eACPjoD,OAAO0B,UAAU4C,gBAKhC+zH,EAAcA,CAACC,EAAIx0H,EAAMy0H,EAAQ9kD,KACnC,GAAI3vE,GAAwB,kBAATA,GAAqC,oBAATA,EAC7C,IAAK,IAAI9C,KAAOk3H,EAAkBp0H,GAC3Bs0H,EAAa/1H,KAAKi2H,EAAIt3H,IAAQA,IAAQu3H,GACzCP,EAAUM,EAAIt3H,EAAK,CAAE0S,IAAKA,IAAM5P,EAAK9C,GAAMV,aAAcmzE,EAAOwkD,EAAiBn0H,EAAM9C,KAASyyE,EAAKnzE,aAE3G,OAAOg4H,CAAE,EAWP8J,EAAkB,CAAC,EArBRvJ,EAACn4H,EAAQuyE,KACtB,IAAK,IAAIpvE,KAAQovE,EACf+kD,EAAUt3H,EAAQmD,EAAM,CAAE6P,IAAKu/D,EAAIpvE,GAAOvD,YAAY,GAAO,EAoBjEu4H,CAASuJ,EAAiB,CACxB13D,QAASA,IAAM23D,IAEjBvuH,EAAOpU,SALao4H,EAKUsK,EALF/J,EAAYL,EAAU,CAAC,EAAG,aAAc,CAAEr2H,OAAO,IAASm2H,IAMtF,IAAIoB,EAAe/lH,EAAQ,OACvBmvH,EAAkBnvH,EAAQ,OAC1BkvH,EAAkB,CACpB,CACErhI,IAAK,UACL6C,KAAM,UACN46H,QAAS6D,EAAgB7D,QAAQ8C,QACjCzC,YAAY,EAAI5F,EAAawE,OAAM,IAAM,uCAK3C,CACE18H,IAAK,aACL6C,KAAM,aACN46H,QAAS6D,EAAgB7D,QAAQ+C,WACjC1C,YAAY,EAAI5F,EAAawE,OAAM,IAAM,uCAK3C,CACE18H,IAAK,QACL6C,KAAM,QACN46H,QAAS6D,EAAgB7D,QAAQgD,MACjC3C,YAAY,EAAI5F,EAAawE,OAAM,IAAM,uCAK3C,CACE18H,IAAK,MACL6C,KAAM,MACN46H,QAAS6D,EAAgB7D,QAAQiD,IACjC5C,YAAY,EAAI5F,EAAawE,OAAM,IAAM,uCAK3C,CACE18H,IAAK,WACL6C,KAAM,WACN46H,QAAS6D,EAAgB7D,QAAQkD,SACjC7C,YAAY,EAAI5F,EAAawE,OAAM,IAAM,uCAK3C,CACE18H,IAAK,aACL6C,KAAM,aACN46H,QAAS6D,EAAgB7D,QAAQmD,WACjC9C,YAAY,EAAI5F,EAAawE,OAAM,IAAM,uCAK3C,CACE18H,IAAK,SACL6C,KAAM,SACN46H,QAAS6D,EAAgB7D,QAAQoD,OACjC/C,YAAY,EAAI5F,EAAawE,OAAM,IAAM,uCAK3C,CACE18H,IAAK,SACL6C,KAAM,SACN46H,QAAS6D,EAAgB7D,QAAQqD,OACjChD,YAAY,EAAI5F,EAAawE,OAAM,IAAM,sCAK3C,CACE18H,IAAK,cACL6C,KAAM,cACN46H,QAAS6D,EAAgB7D,QAAQsD,YACjCjD,YAAY,EAAI5F,EAAawE,OAAM,IAAM,uCAK3C,CACE18H,IAAK,WACL6C,KAAM,WACN46H,QAAS6D,EAAgB7D,QAAQuD,SACjClD,YAAY,EAAI5F,EAAawE,OAAM,IAAM,uCAK3C,CACE18H,IAAK,UACL6C,KAAM,UACN46H,QAAS6D,EAAgB7D,QAAQwD,QACjCnD,YAAY,EAAI5F,EAAawE,OAAM,IAAM,uCAK3C,CACE18H,IAAK,UACL6C,KAAM,UACN46H,QAAS6D,EAAgB7D,QAAQyD,QACjCpD,YAAY,EAAI5F,EAAawE,OAAM,IAAM,uCAK3C,CACE18H,IAAK,OACL6C,KAAM,aACN46H,QAAS6D,EAAgB7D,QAAQ0D,KACjCvC,aAAe70H,GACNu3H,EAAgB7D,QAAQ0D,KAAKp3H,KAAS8hC,SAAS01F,0BAA2B,EAAIrJ,EAAasJ,qCAAuCF,EAAgBpC,iBAAiBn8H,KAAKgH,GAEjL+zH,YAAY,EAAI5F,EAAawE,OAAM,IAAM,yDCtJ7C,IA0BoB5F,EA1BhBC,EAAW/3H,OAAOwQ,OAClBwnH,EAAYh4H,OAAOoB,eACnB62H,EAAmBj4H,OAAOK,yBAC1B63H,EAAoBl4H,OAAO68E,oBAC3Bs7C,EAAen4H,OAAOioD,eACtBmwE,EAAep4H,OAAO0B,UAAU4C,eAKhC+zH,EAAcA,CAACC,EAAIx0H,EAAMy0H,EAAQ9kD,KACnC,GAAI3vE,GAAwB,kBAATA,GAAqC,oBAATA,EAC7C,IAAK,IAAI9C,KAAOk3H,EAAkBp0H,GAC3Bs0H,EAAa/1H,KAAKi2H,EAAIt3H,IAAQA,IAAQu3H,GACzCP,EAAUM,EAAIt3H,EAAK,CAAE0S,IAAKA,IAAM5P,EAAK9C,GAAMV,aAAcmzE,EAAOwkD,EAAiBn0H,EAAM9C,KAASyyE,EAAKnzE,aAE3G,OAAOg4H,CAAE,EAWPmK,EAAgB,CAAC,EArBN5J,EAACn4H,EAAQuyE,KACtB,IAAK,IAAIpvE,KAAQovE,EACf+kD,EAAUt3H,EAAQmD,EAAM,CAAE6P,IAAKu/D,EAAIpvE,GAAOvD,YAAY,GAAO,EAoBjEu4H,CAAS4J,EAAe,CACtBxrD,aAAcA,IAAMA,EACpBtyE,UAAWA,IAAMA,IAEnBmP,EAAOpU,SANao4H,EAMU2K,EANFpK,EAAYL,EAAU,CAAC,EAAG,aAAc,CAAEr2H,OAAO,IAASm2H,IAOtF,IAAI4K,EAfUlK,EAACV,EAAKW,EAAY/3H,KAAYA,EAAgB,MAAPo3H,EAAcC,EAASI,EAAaL,IAAQ,CAAC,EAAGO,GAKnGI,GAAeX,GAAQA,EAAIzzH,WAA8E3D,EAAjEs3H,EAAUt3H,EAAQ,UAAW,CAAEiB,MAAOm2H,EAAKx3H,YAAY,IAC/Fw3H,IASsBU,CAAQrlH,EAAQ,QACxC,MAAM,OAAElN,EAAM,KAAEH,EAAI,OAAEE,EAAM,MAAEH,EAAK,UAAEc,EAAS,MAAEC,EAAK,OAAE/G,EAAM,KAAEkG,EAAI,KAAES,GAASk8H,EAAkBh4D,QAC1F/lE,EAAY,CAChBoG,IAAKpE,EAAU,CAACV,EAAQJ,EAAOhG,IAC/By6H,QAASx0H,EACTy1H,KAAMz1H,EACN68H,SAAU78H,EACVy0H,OAAQv0H,EACRw0H,MAAO10H,EACPk1H,aAAch1H,EACdkpG,MAAOvoG,EAAU,CAACV,EAAQD,IAC1BmpG,OAAQxoG,EAAU,CAACV,EAAQD,IAC3B+wE,MAAOl3E,EACPs6H,iBAAkBn0H,EAClB48H,YAAa98H,EACbk2H,IAAKl2H,EACL+1H,cAAe/1H,EACfq4H,MAAOx3H,EAAU,CAACb,EAAMG,EAAQpG,IAChCq/H,SAAU14H,EACV24H,gBAAiBn5H,EACjBq5H,iBAAkBp5H,EAClBklH,SAAU3kH,EACV44H,UAAWn5H,EACXm4H,QAASz3H,EAAU,CACjBV,EACAF,EACAa,EAAM,CAAEstE,OAAQnuE,EAAKJ,eAEvBgjB,OAAQ/hB,EAAM,CACZ46H,WAAY56H,EAAM,CAChByC,QAASxJ,IAEX0hI,QAAS36H,EAAM,CACbi8H,WAAYhjI,EACZijI,aAAcjjI,EACdkjI,YAAah9H,IAEf47H,SAAU/6H,EAAM,CACdqtE,MAAOhuE,EACP6E,QAAS7E,EACT+8H,SAAU/8H,EACVw4D,WAAY5+D,IAEdkiI,YAAan7H,EAAM,CACjB4lB,OAAQ3sB,IAEV4hI,MAAO76H,EAAM,CACXq8H,cAAepjI,EACfqjI,MAAOj9H,IAETy7H,IAAK96H,EAAM,CACT63D,WAAY5+D,EACZiL,QAAS7E,IAEXk8H,KAAMv7H,EAAM,CACV63D,WAAY5+D,EACZsjI,OAAQt9H,EACRu9H,WAAYt9H,EACZu9H,WAAYv9H,EACZw9H,SAAUx9H,EACVy9H,eAAgBz9H,EAChB09H,gBAAiB19H,EACjB29H,UAAW39H,EACX49H,SAAU59H,EACV69H,WAAY9jI,EACZ+jI,WAAY39H,EACZ49H,YAAa59H,EACb69H,WAAY79H,IAEd47H,OAAQj7H,EAAM,CACZyC,QAASxJ,EACTmjI,SAAU/8H,EACV89H,eAAgBl+H,IAElBm8H,SAAUp7H,EAAM,CACdyC,QAASxJ,IAEXiiI,OAAQl7H,EAAM,CACZyC,QAASxJ,EACTmjI,SAAU/8H,IAEZg8H,QAASr7H,EAAM,CACbyC,QAASxJ,MAGb2P,QAASzJ,EACT+0H,QAAS/0H,EACTg1H,OAAQh1H,EACRs1H,QAASt1H,EACTi+H,SAAUj+H,EACVk+H,YAAal+H,EACby1H,QAASz1H,EACT88F,QAAS98F,EACT61H,WAAY71H,EACZm+H,OAAQn+H,EACRo+H,qBAAsBp+H,EACtBq+H,wBAAyBr+H,EACzBi0H,WAAYj0H,EACZu4H,eAAgBv4H,EAChBs+H,YAAat+H,EACbu+H,aAAcv+H,GAEVmzC,EAAOA,OAEP+9B,EAAe,CACnBqjD,SAAS,EACTiB,MAAM,EACNoH,UAAU,EACVpI,OAAQ,KACRC,OAAO,EACPQ,aAAc,EACd9rB,MAAO,QACPC,OAAQ,QACRp4B,MAAO,CAAC,EACRojD,iBAAkB,IAClByI,aAAa,EACb5G,KAAK,EACLH,eAAe,EACfsC,OAAO,EACPhT,SAAU,KACViT,QAAS,MACTe,gBAAiB,EACjBE,iBAAkB,GAClBD,UAAW,sCACXz2G,OAAQ,CACN64G,WAAY,CACVn4H,QAAS,CACPk7H,QAAQ,EAERC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACVC,SAAS,EACTC,eAAe,EACfC,gBAAgB,IAGpBtD,QAAS,CACPsB,WAAY,CACVD,YAAa,EACbkC,SAAU,EACV9tD,IAAK,EACL+tD,eAAgB,EAChBC,eAAgB,GAElBlC,aAAc,CAAC,EACfC,YAAa7pF,GAEfyoF,SAAU,CACR1tD,MAAO,mBACPnpE,QAAS,OACTk4H,SAAU,KACVvkE,WAAY,CAAC,GAEfsjE,YAAa,CACXv1G,OAAQ,CACNuE,IAAK,EACL,oBAAoB,IAGxB0wG,MAAO,CACLwB,cAAe,CACbgC,WAAW,EACXC,QAAQ,EACRC,UAAU,EACVjC,OAAO,GAETA,MAAO,MAETxB,IAAK,CACHjjE,WAAY,CAAC,EACb3zD,QAAS,KAEXq3H,KAAM,CACJ1jE,WAAY,CAAC,EACb0kE,OAAQ,GACRC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVG,WAAW,EACXC,UAAU,EACVC,WAAY,CAAC,EACbC,WAAY,QACZC,YAAa,QACbC,WAAY,QACZN,iBAAiB,GAEnB3B,OAAQ,CACNx4H,QAAS,CAAC,EACV25H,SAAU,KACVe,eAAgB,MAElB/B,SAAU,CACR34H,QAAS,CACP+7H,WAAY,IAGhBtD,OAAQ,CACNz4H,QAAS,CAAC,EACV25H,SAAU,MAEZf,QAAS,CACP54H,QAAS,CAAC,IAGdmG,QAAS0pC,EACT4hF,QAAS5hF,EACT6hF,OAAQ7hF,EACRmiF,QAASniF,EACT8qF,SAAU9qF,EACV+qF,YAAa/qF,EACbsiF,QAAStiF,EACT2pD,QAAS3pD,EACT0iF,WAAY1iF,EACZgrF,OAAQhrF,EACRirF,qBAAsBjrF,EACtBkrF,wBAAyBlrF,EACzB8gF,WAAY9gF,EACZolF,eAAgBplF,EAChBmrF,YAAanrF,EACborF,aAAcprF,oBC7PhB,IA0BoB4+E,EA1BhBC,EAAW/3H,OAAOwQ,OAClBwnH,EAAYh4H,OAAOoB,eACnB62H,EAAmBj4H,OAAOK,yBAC1B63H,EAAoBl4H,OAAO68E,oBAC3Bs7C,EAAen4H,OAAOioD,eACtBmwE,EAAep4H,OAAO0B,UAAU4C,eAKhC+zH,EAAcA,CAACC,EAAIx0H,EAAMy0H,EAAQ9kD,KACnC,GAAI3vE,GAAwB,kBAATA,GAAqC,oBAATA,EAC7C,IAAK,IAAI9C,KAAOk3H,EAAkBp0H,GAC3Bs0H,EAAa/1H,KAAKi2H,EAAIt3H,IAAQA,IAAQu3H,GACzCP,EAAUM,EAAIt3H,EAAK,CAAE0S,IAAKA,IAAM5P,EAAK9C,GAAMV,aAAcmzE,EAAOwkD,EAAiBn0H,EAAM9C,KAASyyE,EAAKnzE,aAE3G,OAAOg4H,CAAE,EAEPE,EAAUA,CAACV,EAAKW,EAAY/3H,KAAYA,EAAgB,MAAPo3H,EAAcC,EAASI,EAAaL,IAAQ,CAAC,EAAGO,GAKnGI,GAAeX,GAAQA,EAAIzzH,WAA8E3D,EAAjEs3H,EAAUt3H,EAAQ,UAAW,CAAEiB,MAAOm2H,EAAKx3H,YAAY,IAC/Fw3H,IAGEuN,EAAgB,CAAC,EArBNxM,EAACn4H,EAAQuyE,KACtB,IAAK,IAAIpvE,KAAQovE,EACf+kD,EAAUt3H,EAAQmD,EAAM,CAAE6P,IAAKu/D,EAAIpvE,GAAOvD,YAAY,GAAO,EAoBjEu4H,CAASwM,EAAe,CACtBC,WAAYA,IAAMA,EAClB1G,UAAWA,IAAMA,EACjB2G,OAAQA,IAAMA,EACdjE,UAAWA,IAAMA,EACjBnF,cAAeA,IAAMA,EACrBuB,KAAMA,IAAMA,EACZgB,KAAMA,IAAMA,EACZ8G,aAAcA,IAAMA,EACpBC,eAAgBA,IAAMA,EACtBlyF,YAAaA,IAAMA,EACnBmyF,aAAcA,IAAMA,EACpBlD,+BAAgCA,IAAMA,IAExC1uH,EAAOpU,SAhBao4H,EAgBUuN,EAhBFhN,EAAYL,EAAU,CAAC,EAAG,aAAc,CAAEr2H,OAAO,IAASm2H,IAiBtF,IAAIiB,EAAeP,EAAQrlH,EAAQ,QAC/BwyH,EAAqBnN,EAAQrlH,EAAQ,QACrCmqH,EAAmB9E,EAAQrlH,EAAQ,QACvC,MAAMuqH,EAAQkI,GAAsB7M,EAAaruD,QAAQgzD,MAAKx+D,UAC5D,MAAM59D,QAAYskI,IAClB,MAA8B,oBAAhBtkI,EAAIopE,QAAyBppE,EAAMA,EAAIopE,OAAO,IAExDm7D,EAAoB,+BACpBC,EAAkB,uBAClBC,EAAoB,gBACpBC,EAAgB,QACtB,SAASC,EAAel7H,EAAK0gC,GAC3B,GAAI1gC,aAAenI,MACjB,OAEF,MAAM0e,EAAQvW,EAAIuW,MAAMmqB,GACxB,GAAInqB,EAAO,CACT,MAAM4kH,EAAQ5kH,EAAM,GACpB,GAAI4kH,EAAM5kH,MAAMykH,GACd,OAQN,SAAyBG,GACvB,IAAIC,EAAU,EACVtgI,EAAQkgI,EAAkB5zE,KAAK+zE,GACnC,KAAiB,OAAVrgI,GAAgB,CACrB,MAAO,CAAEu8C,EAAOgkF,GAAUvgI,EACX,MAAXugI,IACFD,GAAiC,GAAtBhqG,SAASimB,EAAO,IAAW,IACzB,MAAXgkF,IACFD,GAAiC,GAAtBhqG,SAASimB,EAAO,KACd,MAAXgkF,IACFD,GAAWhqG,SAASimB,EAAO,KAC7Bv8C,EAAQkgI,EAAkB5zE,KAAK+zE,EACjC,CACA,OAAOC,CACT,CAtBaE,CAAgBH,GAEzB,GAAIF,EAAcjiI,KAAKmiI,GACrB,OAAO/pG,SAAS+pG,EAEpB,CAEF,CAgBA,SAAST,EAAe16H,GACtB,OAAOk7H,EAAel7H,EAAK86H,EAC7B,CACA,SAASL,EAAaz6H,GACpB,OAAOk7H,EAAel7H,EAAK+6H,EAC7B,CACA,SAASJ,IACP,OAAOjoH,KAAKw+C,SAASt4D,SAAS,IAAIu6B,OAAO,EAAG,EAC9C,CACA,SAASqV,EAAY1zC,GACnB,OAAOG,OAAOD,KAAKF,GAAQk2B,KAAK/0B,GAAG,GAAA8I,OAAQ9I,EAAG,KAAA8I,OAAIjK,EAAOmB,MAAQ0uB,KAAK,IACxE,CACA,SAAS42G,EAAUtlI,GACjB,OAAI6P,OAAO7P,GACF6P,OAAO7P,GAEZ6P,OAAOnR,SAAWmR,OAAOnR,QAAQsB,GAC5B6P,OAAOnR,QAAQsB,GAEpB6P,OAAOiD,QAAUjD,OAAOiD,OAAOpU,SAAWmR,OAAOiD,OAAOpU,QAAQsB,GAC3D6P,OAAOiD,OAAOpU,QAAQsB,GAExB,IACT,CACA,MAAMulI,EAAW,CAAC,EACZhB,EAqEN,SAAsBx4G,GAChB,EAKJ,OAAOA,CACT,CA5Eey5G,EAAa,SAAiBz7H,EAAK07H,GAA6F,IAAlFC,EAAQ9lI,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,KAAM+lI,EAAQ/lI,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,KAAM,EAAMgmI,EAAWhmI,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG+kI,EAAmBj7D,QACpI,MAAMm8D,EAAiBP,EAAUG,GACjC,OAAII,GAAkBF,EAASE,GACtBt8H,QAAQC,QAAQq8H,GAElB,IAAIt8H,SAAQ,CAACC,EAAS8wC,KAC3B,GAAIirF,EAASx7H,GAEX,YADAw7H,EAASx7H,GAAKxK,KAAK,CAAEiK,UAAS8wC,WAGhCirF,EAASx7H,GAAO,CAAC,CAAEP,UAAS8wC,WAC5B,MAAM4hF,EAAY4J,IAChBP,EAASx7H,GAAKhK,SAAS+vB,GAAYA,EAAQtmB,QAAQs8H,IAAK,EAE1D,GAAIJ,EAAU,CACZ,MAAMK,EAAkBl2H,OAAO61H,GAC/B71H,OAAO61H,GAAY,WACbK,GACFA,IACF7J,EAASoJ,EAAUG,GACrB,CACF,CACAG,EAAY77H,GAAMzH,IACZA,GACFijI,EAASx7H,GAAKhK,SAAS+vB,GAAYA,EAAQwqB,OAAOh4C,KAClDijI,EAASx7H,GAAO,MACN27H,GACVxJ,EAASoJ,EAAUG,GACrB,GACA,GAEN,IACA,SAAS7H,EAAUz5H,EAAO8xE,GACxB,OAAO,EAAIqmD,EAAiB5yD,SAASuM,EAAatuD,OAAQxjB,EAAMwjB,OAClE,CACA,SAAS+1G,EAAK7+H,GAAmB,QAAAmnI,EAAApmI,UAAAC,OAARomI,EAAM,IAAArkI,MAAAokI,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAND,EAAMC,EAAA,GAAAtmI,UAAAsmI,GAC7B,MAAMC,EAAW,GAAGr9H,UAAUm9H,GACxB9vG,EAAS,CAAC,EACVp3B,EAAOC,OAAOD,KAAKF,GACzB,IAAK,MAAMmB,KAAOjB,GACe,IAA3BonI,EAASllI,QAAQjB,KACnBm2B,EAAOn2B,GAAOnB,EAAOmB,IAGzB,OAAOm2B,CACT,CACA,SAASmuG,EAAW5/F,GAClB,IAAKtqB,KAAKi+G,SAAWj+G,KAAKi+G,OAAO3zF,GAAS,CACxC,IAAIlhB,EAAU,gBAAH1a,OAAmBsR,KAAK3Z,YAAYyJ,YAAW,6BAAApB,OAA4B47B,EAAM,cAO5F,OANKtqB,KAAKi+G,OAEEj+G,KAAKi+G,OAAO3zF,KACtBlhB,GAAW,gCAFXA,GAAW,+BAIb5a,QAAQC,KAAK2a,EAAS,oBAAqB,IACpC,IACT,CAAC,QAAA4iH,EAAAxmI,UAAAC,OAV4B+5C,EAAI,IAAAh4C,MAAAwkI,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJzsF,EAAIysF,EAAA,GAAAzmI,UAAAymI,GAWjC,OAAOjsH,KAAKi+G,OAAO3zF,MAAWkV,EAChC,CACA,SAASuhF,EAAcpxH,GACrB,MAAyB,qBAAX8F,QAAwD,qBAAvBA,OAAOy2H,aAA+Bv8H,aAAe8F,OAAOy2H,WAC7G,CACA,SAAShG,EAAUv2H,GACjB,MAAO,SAAShH,KAAKgH,EACvB,CACA,SAASy3H,IAAwE,IAAzC+E,EAAK3mI,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAGisC,SAASzgC,cAAc,SACrE,MAAMo7H,GAAwD,IAA5C,cAAczjI,KAAKw0D,UAAUzyB,WAC/C,OAAOyhG,EAAME,gCAA6E,oBAApCF,EAAMG,2BAA4CF,CAC1G,o5BC7KAG,EAAAC,EAAAz0H,EAAA,QACA00H,EAAAD,EAAAz0H,EAAA,QACA20H,EAAAF,EAAAz0H,EAAA,QAEA40H,EAAAH,EAAAz0H,EAAA,QAkFA60H,EAAA,SAAAr9E,GAyFE,SAAAq9E,EAAY7iI,GAAZ,IAAAg0H,EACExuE,EAAAtoD,KAAA,KAAM8C,IAAM,KA7Edg0H,EAAA8O,WAAwC,CACtC,UACA,UACA,SACA,QACA,YAOF9O,EAAA+O,WAAwC,CACtC,KACA,YACA,QACA,cACA,WACA,WACA,oBACA,UACA,SACA,aACA,YACA,WASF/O,EAAAl9G,MAAyB,CACvBksH,WAAY,GAqBdhP,EAAAiP,UAAmB,KA2UnBjP,EAAAkP,eAAiB,SACf1tF,EACA2tF,EACAC,EACAznI,eAEkB,gBAAd65C,EACqB,QAAvB6tF,GAAAnrH,EAAA87G,GAAKsP,0BAAkB,IAAAD,GAAAA,EAAAnmI,KAAAgb,EACrB87G,EAAKuP,OAAQ7yC,KAAKmH,UAClBsrC,EACAxnI,EACAq4H,EAAKwP,oBAEgB,qBAAdhuF,IACmB,QAA5Bx3C,GAAAylI,EAAAzP,GAAK0P,+BAAuB,IAAA1lI,GAAAA,EAAAd,KAAAumI,EAC1BN,EACAxnI,EACAq4H,EAAKwP,oBAGX,EAxUE,IAAMhnI,EAAQw3H,EAAK2P,eAAgB3jI,EAAMxD,MAAQwD,EAAM4gB,oBACvDozG,EAAKx3H,MAAa,OAALA,QAAK,IAALA,EAAAA,EAAS,IACxB,CAgYF,OA7dyBonI,EAAAf,EAAAr9E,GA+FvBq9E,EAAAtmI,UAAAsnI,cAAA,SAAc7jI,SACZ,GAAIwiI,EAAAj9D,QAAMu+D,SAAS7mF,MAAMj9C,EAAMsG,UAAY,EAAG,MAAM,IAAIhG,MACtD,0EAGF,GAAIkiI,EAAAj9D,QAAMu+D,SAAS7mF,MAAMj9C,EAAMsG,WAET,cAAX,QAAL4R,EADUsqH,EAAAj9D,QAAMu+D,SAASC,KAAK/jI,EAAMsG,iBAC/B,IAAA4R,OAAA,EAAAA,EAAEtO,MAAqB,MAAM,IAAItJ,MACxC,wEAIJ,GACE2V,KAAK+tH,oBACLhkI,EAAMxD,QAAUyZ,KAAK+tH,mBACrB,MAAM,IAAI1jI,MACV,kMAIJ,EAEAuiI,EAAAtmI,UAAAo/G,sBAAA,SAAsBie,EAA4BC,GAAlD,MAAA7F,EAAA,KAKE,GAJA/9G,KAAK4tH,cAAcjK,IAId3jH,KAAKstH,QAAUttH,KAAKa,MAAMksH,aAAenJ,EAAUmJ,WACtD,OAAO,EAIT,GAAI,UAAWpJ,EAAW,CACxB,IAAMqK,EAAehuH,KAAKiuH,oBACpBC,EAA8B,QAAlBjsH,EAAG0hH,EAAUp9H,aAAK,IAAA0b,EAAAA,EAAI,GAQnCjC,KAAKmuH,aAAaD,EAAcF,IACnChuH,KAAKouH,kBAAkBpuH,KAAKstH,OAAQY,GAUxC,OALIvK,EAAU0K,WAAaruH,KAAKjW,MAAMskI,UACpCruH,KAAKsuH,kBAAkBtuH,KAAKstH,OAAQ3J,EAAU0K,UAIzCE,EAAIvuH,KAAK8sH,WAAe9sH,KAAK6sH,YAAY2B,MAAK,SAACjvE,GACpD,OAAQmtE,EAAAp9D,QAAQq0D,EAAUpkE,GAAOw+D,EAAKh0H,MAAMw1D,GAC9C,GACF,EAEAqtE,EAAAtmI,UAAAmoI,0BAAA,SAA0B9K,GAA1B,IAAA5F,EAAA,KAEE,OAAO/9G,KAAK6sH,WAAW2B,MAAK,SAACjvE,GAC3B,OAAQmtE,EAAAp9D,QAAQq0D,EAAUpkE,GAAOw+D,EAAKh0H,MAAMw1D,GAC9C,GACF,EAEAqtE,EAAAtmI,UAAAigH,kBAAA,WACEvmG,KAAK0uH,oBACL1uH,KAAKouH,kBAAkBpuH,KAAKstH,OAASttH,KAAKiuH,oBAC5C,EAEArB,EAAAtmI,UAAA8sH,qBAAA,WACEpzG,KAAK2uH,eACP,EAEA/B,EAAAtmI,UAAA6oH,mBAAA,SAAmBwR,EAA4BiO,GAA/C,IAAA7Q,EAAA,KAKE,GAAI/9G,KAAKstH,QAAUttH,KAAKyuH,0BAA0B9N,GAAY,CAC5D,IAAMx3F,EAAQnpB,KAAKstH,OAAOuB,cACpB7B,EAAYhtH,KAAKstH,OAAOr0B,eAC9Bj5F,KAAK8uH,qBAAuB,CAAC3lG,MAAKA,EAAE6jG,UAASA,GAC7ChtH,KAAKijH,SAAS,CAAC8J,WAAY/sH,KAAKa,MAAMksH,WAAa,IACnD/sH,KAAK2uH,gBAKP,GAAI3uH,KAAKa,MAAMksH,aAAe6B,EAAU7B,WAAY,CAC5C,IAAA9qH,EAAA,KAAA6sH,qBAAQC,GAAP5lG,EAAAlnB,EAAAknB,MAAOlnB,EAAA+qH,kBACPhtH,KAAK8uH,qBACZ9uH,KAAK0uH,oBACL,IAAMM,EAAShvH,KAAKstH,OACpB0B,EAAOC,YAAY9lG,GACnB+lG,GAAS,WAAM,OAAAnR,EAAKoR,mBAAmBH,EAAQD,EAAhC,IAEnB,EAEAnC,EAAAtmI,UAAAooI,kBAAA,WACM1uH,KAAKstH,OACPttH,KAAKovH,WAAWpvH,KAAKstH,QAErBttH,KAAKstH,OAASttH,KAAKqvH,aACjBrvH,KAAKsvH,iBACLtvH,KAAKuvH,kBAGX,EAEA3C,EAAAtmI,UAAAqoI,cAAA,WACO3uH,KAAKstH,QACVttH,KAAKwvH,aAAaxvH,KAAKstH,OACzB,EAKAV,EAAAtmI,UAAAonI,aAAA,WACE,MAAO,UAAW1tH,KAAKjW,KACzB,EAEA6iI,EAAAtmI,UAAAipI,gBAAA,WACE,MAAO,CACLE,OAAQzvH,KAAKjW,MAAM0lI,OACnBC,QAAS1vH,KAAKjW,MAAM2lI,QACpBC,QAAS3vH,KAAKjW,MAAM4lI,QACpBC,YAAa5vH,KAAKjW,MAAM6lI,YACxBvB,SAAUruH,KAAKjW,MAAMskI,SACrBwB,mBAAoB7vH,KAAKjW,MAAM8lI,mBAC/BC,SAAU9vH,KAAKjW,MAAM+lI,SACrBC,MAAO/vH,KAAKjW,MAAMgmI,MAEtB,EAEAnD,EAAAtmI,UAAA0pI,UAAA,WACE,IAAKhwH,KAAKstH,OAAQ,MAAM,IAAIjjI,MAAM,qCAClC,OAAO2V,KAAKstH,MACd,EAMAV,EAAAtmI,UAAA+oI,aAAA,SAAapkI,EAAkBsiB,GAC7B,IAAM+/G,EAAS,IAAIX,EAAAr9D,QAAMrkE,EAASsiB,GAKlC,OAJuB,MAAnBA,EAAOuiH,UACT9vH,KAAKiwH,kBAAkB3C,EAAQ//G,EAAOuiH,UAExC9vH,KAAKovH,WAAW9B,GACTA,CACT,EAEAV,EAAAtmI,UAAA8oI,WAAA,SAAW9B,GAGTttH,KAAKutH,mBAAqBvtH,KAAKkwH,uBAAuB5C,GAGtDA,EAAOjhI,GAAG,gBAAiB2T,KAAKitH,eAClC,EAEAL,EAAAtmI,UAAAkpI,aAAA,SAAalC,GACXA,EAAOhhI,IAAI,gBAAiB0T,KAAKitH,eACnC,EAEAL,EAAAtmI,UAAA2nI,kBAAA,WACE,OAAOjuH,KAAKzZ,KACd,EAEAqmI,EAAAtmI,UAAA6pI,mBAAA,WACE,OAAOnwH,KAAKgtH,SACd,EAKAJ,EAAAtmI,UAAA8pI,QAAA,SAAQ7pI,GACN,OAAOA,GAASA,EAAM8pI,GACxB,EAKAzD,EAAAtmI,UAAA6nI,aAAA,SAAa5nI,EAAY+pI,GACvB,OAAItwH,KAAKowH,QAAQ7pI,IAAUyZ,KAAKowH,QAAQE,GAC/B5D,EAAAp9D,QAAQ/oE,EAAM8pI,IAAKC,EAAUD,KAE7B3D,EAAAp9D,QAAQ/oE,EAAO+pI,EAE1B,EAMA1D,EAAAtmI,UAAA8nI,kBAAA,SAAkBd,EAAe/mI,GAAjC,IAAAw3H,EAAA,KACE/9G,KAAKzZ,MAAQA,EACb,IAAMgqI,EAAMvwH,KAAKmwH,qBACI,kBAAV5pI,EACT+mI,EAAO2B,YAAY3B,EAAOkD,UAAU3xG,QAAQt4B,IAE5C+mI,EAAO2B,YAAY1oI,GAErB2oI,GAAS,WAAM,OAAAnR,EAAKoR,mBAAmB7B,EAAQiD,EAAhC,GACjB,EAEA3D,EAAAtmI,UAAA6oI,mBAAA,SAAmB7B,EAAej3B,GAEhC,GADAr2F,KAAKgtH,UAAY32B,EACbA,EAAO,CAET,IAAMo6B,EAASnD,EAAOoD,YACtBr6B,EAAMzhF,MAAQvS,KAAK+tB,IAAI,EAAG/tB,KAAK8tB,IAAIkmE,EAAMzhF,MAAO67G,EAAO,IACvDp6B,EAAM5wG,OAAS4c,KAAK+tB,IAAI,EAAG/tB,KAAK8tB,IAAIkmE,EAAM5wG,OAASgrI,EAAO,EAAKp6B,EAAMzhF,QACrE04G,EAAOqD,aAAat6B,GAExB,EAEAu2B,EAAAtmI,UAAA2pI,kBAAA,SAAkB3C,EAAewC,YACb,QAAlB1C,EAAU,QAAVnrH,EAAIqrH,SAAM,IAAArrH,OAAA,EAAAA,EAAE2uH,cAAM,IAAAxD,OAAA,EAAAA,EAAEn4H,WACjBq4H,EAAOsD,OAAO37H,QAAwB66H,SAAWA,EAEtD,EAEAlD,EAAAtmI,UAAAgoI,kBAAA,SAAkBhB,EAAe/mI,GAC3BA,EACF+mI,EAAOuD,UAEPvD,EAAOwD,QAEX,EAMAlE,EAAAtmI,UAAA4pI,uBAAA,SAAuB5C,GACrB,IAAM/2H,EAAI+2H,EACV,MAAO,CACLyD,QAAc,WAAM,OAAAx6H,EAAEkkF,KAAKmH,SAAP,EACpB8uC,UAAcn6H,EAAEm6H,UAAUx/D,KAAK36D,GAC/By6H,QAAcz6H,EAAEy6H,QAAQ9/D,KAAK36D,GAC7Bs4H,YAAct4H,EAAEs4H,YAAY39D,KAAK36D,GACjC0iG,aAAc1iG,EAAE0iG,aAAa/nC,KAAK36D,GAClC06H,UAAc16H,EAAE06H,UAAU//D,KAAK36D,GAEnC,EAEAq2H,EAAAtmI,UAAAgpI,eAAA,WACE,IAAKtvH,KAAKkxH,YACR,MAAM,IAAI7mI,MAAM,yCAElB,IAAMY,EAAUwhI,EAAAn9D,QAASmsD,YAAYz7G,KAAKkxH,aAC1C,IAAKjmI,EACH,MAAM,IAAIZ,MAAM,wCAElB,GAAyB,IAArBY,EAAQivF,SACV,MAAM,IAAI7vF,MAAM,sCAElB,OAAOY,CACT,EAKA2hI,EAAAtmI,UAAA6qI,kBAAA,eAAApT,EAAA,KACQ97G,EAAA,KAAAlY,MAACsG,EAAA4R,EAAA5R,SAAU+gI,EAAAnvH,EAAAmvH,mBAGXC,EAAa,CACjBzrI,IAHK,KAAAib,MAAAksH,WAILvgI,IAAK,SAACqvG,GACJkiB,EAAKmT,YAAcr1B,CACrB,GAGF,OAAI0wB,EAAAj9D,QAAMu+D,SAAS7mF,MAAM32C,GAChBk8H,EAAAj9D,QAAMgiE,aACX/E,EAAAj9D,QAAMu+D,SAASC,KAAKz9H,GACpBghI,GAIGD,EACL7E,EAAAj9D,QAAAt+D,cAAA,MAAAugI,EAAA,GAASF,IACT9E,EAAAj9D,QAAAt+D,cAAA,MAAAugI,EAAA,GAASF,GACb,EAEAzE,EAAAtmI,UAAAwyE,OAAA,iBACE,OACEyzD,EAAAj9D,QAAAt+D,cAAA,OACE8C,GAAIkM,KAAKjW,MAAM+J,GACf6nE,MAAO37D,KAAKjW,MAAM4xE,MAClB/1E,IAAKoa,KAAKa,MAAMksH,WAChBh5H,UAAW,UAAAkO,EAASjC,KAAKjW,MAAMgK,UAAS,OAAAkO,QAAA,IAAAA,EAAAA,EAAI,IAC5CuvH,WAAYxxH,KAAKjW,MAAMynI,WACvBC,UAAWzxH,KAAKjW,MAAM0nI,UACtBC,QAAS1xH,KAAKjW,MAAM2nI,SAEnB1xH,KAAKmxH,oBAGZ,EAwBAvE,EAAAtmI,UAAA+mI,mBAAA,SACE9mI,EACA4iC,EACAzjC,EACA4nI,WAEA,GAAKttH,KAAKstH,OAAV,CAIA,IAAMY,EAAeluH,KAAKowH,QAAQpwH,KAAKzZ,OACnC+mI,EAAOuB,cACPvB,EAAOyD,UAEP7C,IAAiBluH,KAAKiuH,sBAGxBjuH,KAAK+tH,mBAAqB5kG,EAE1BnpB,KAAKzZ,MAAQ2nI,EACM,QAAnBd,GAAAnrH,EAAAjC,KAAKjW,OAAMsK,gBAAQ,IAAA+4H,GAAAA,EAAAnmI,KAAAgb,EAAG1b,EAAO4iC,EAAOzjC,EAAQ4nI,GAdtB,CAgB1B,EAEAV,EAAAtmI,UAAAmnI,wBAAA,SACEkE,EACAjsI,EACA4nI,mBAEA,GAAKttH,KAAKstH,OAAV,CACA,IAAMsE,EAAmB5xH,KAAKmwH,qBACxB0B,GAAkBD,GAAoBD,EACtCG,EAAeF,IAAqBD,EAEtCjF,EAAAp9D,QAAQqiE,EAAeC,KAE3B5xH,KAAKgtH,UAAY2E,EACW,QAA5BvE,GAAAnrH,EAAAjC,KAAKjW,OAAMgoI,yBAAiB,IAAA3E,GAAAA,EAAAnmI,KAAAgb,EAAG0vH,EAAejsI,EAAQ4nI,GAElDuE,EACgB,QAAlB9pI,GAAAylI,EAAAxtH,KAAKjW,OAAMoK,eAAO,IAAApM,GAAAA,EAAAd,KAAAumI,EAAGmE,EAAejsI,EAAQ4nI,GACnCwE,IACQ,QAAjBE,GAAApqI,EAAAoY,KAAKjW,OAAMmK,cAAM,IAAA89H,GAAAA,EAAA/qI,KAAAW,EAAGgqI,EAAkBlsI,EAAQ4nI,IAbxB,CAe1B,EAEAV,EAAAtmI,UAAA0zG,MAAA,WACOh6F,KAAKstH,QACVttH,KAAKstH,OAAOtzB,OACd,EAEA4yB,EAAAtmI,UAAA2rI,KAAA,WACOjyH,KAAKstH,SACVttH,KAAKgtH,UAAY,KACjBhtH,KAAKstH,OAAO2E,OACd,EA1dOrF,EAAA98H,YAAc,cAKd88H,EAAAsF,MAAQvF,EAAAr9D,QAiCRs9D,EAAA/wD,aAAe,CACpBk0D,MAAO,OACPJ,QAAS,CAAC,EACVtB,UAAU,GAkbdzB,EA7dA,CAAyBL,EAAAj9D,QAAMy1C,WAke/B,SAASmqB,EAASv9G,GAChBxiB,QAAQC,UAAUxC,KAAK+kB,EACzB,CAIAjZ,EAAApU,QAASsoI,qBC7jBT,IAAiD90H,EAS9B,qBAATyG,MAAuBA,KATgBzG,EASH,WAC9C,OAAiB,SAAS63H,GAEhB,IAAIwC,EAAmB,CAAC,EAGxB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAU/tI,QAGnC,IAAIoU,EAASy5H,EAAiBE,GAAY,CACzC9sI,EAAG8sI,EACHzkI,GAAG,EACHtJ,QAAS,CAAC,GAUX,OANAqrI,EAAQ0C,GAAUprI,KAAKyR,EAAOpU,QAASoU,EAAQA,EAAOpU,QAAS8tI,GAG/D15H,EAAO9K,GAAI,EAGJ8K,EAAOpU,OACf,CAoCA,OAhCA8tI,EAAoBnrE,EAAI0oE,EAGxByC,EAAoB5wH,EAAI2wH,EAGxBC,EAAoB3wH,EAAI,SAASnd,EAASmE,EAAM6pI,GAC3CF,EAAoBjqI,EAAE7D,EAASmE,IAClC7D,OAAOoB,eAAe1B,EAASmE,EAAM,CACpCjC,cAAc,EACdtB,YAAY,EACZoT,IAAKg6H,GAGR,EAGAF,EAAoB9pI,EAAI,SAASoQ,GAChC,IAAI45H,EAAS55H,GAAUA,EAAOzP,WAC7B,WAAwB,OAAOyP,EAAgB,OAAG,EAClD,WAA8B,OAAOA,CAAQ,EAE9C,OADA05H,EAAoB3wH,EAAE6wH,EAAQ,IAAKA,GAC5BA,CACR,EAGAF,EAAoBjqI,EAAI,SAAS1D,EAAQimB,GAAY,OAAO9lB,OAAO0B,UAAU4C,eAAejC,KAAKxC,EAAQimB,EAAW,EAGpH0nH,EAAoB/4D,EAAI,GAGjB+4D,EAAoBA,EAAoB/wH,EAAI,IACpD,CA/DQ,CAiEP,CAAC,SAEK3I,EAAQpU,EAAS8tI,GAEjC,aAEAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAIgsI,EAAcH,EAAoB,IAClCI,EAAWJ,EAAoB,IAC/BK,EAASL,EAAoB,IAC7BM,EAAWN,EAAoB,IAC/BO,EAAWP,EAAoB,IAC/BQ,EAAUR,EAAoB,IAC9BS,EAAUT,EAAoB,IAC9BU,EAASV,EAAoB,IAC7BW,EAAeX,EAAoB,IACnCY,EAAUZ,EAAoB,IAC9Ba,EAAUb,EAAoB,IAC9Bc,EAAUd,EAAoB,IAC9Be,EAAWf,EAAoB,GAC/BgB,EAAY,CACZC,MAAOF,EAASE,MAChBj+H,OAAQ+9H,EAAS/9H,OACjBk+H,KAAMH,EAASG,KACf/qH,MAAO4qH,EAAS5qH,MAChBgrH,SAAUJ,EAASI,SACnBC,UAAWjB,EAAYjjE,QACvBmkE,OAAQjB,EAASljE,QACjBokE,KAAMjB,EAAOnjE,QACbqkE,MAAOd,EAAQvjE,QACf0jC,OAAQ0/B,EAASpjE,QACjBskE,MAAOhB,EAAQtjE,QACfukE,OAAQlB,EAASrjE,QACjBwkE,KAAMhB,EAAOxjE,QACbykE,WAAY,CACRC,UAAWjB,EAAazjE,QACxB2kE,MAAOjB,EAAQ1jE,QACf4kE,MAAOjB,EAAQ3jE,QACf6kE,MAAOjB,EAAQ5jE,UAGvBhrE,EAAQgrE,QAAU8jE,CAGX,WAES16H,EAAQpU,EAAS8tI,GAEjC,aAEA,IAAIzE,EAAa3tH,MAAQA,KAAK2tH,WAAe,WACzC,IAAIyG,EAAgBxvI,OAAOyvI,gBACtB,CAAE1uE,UAAW,cAAgBn+D,OAAS,SAAUia,EAAGL,GAAKK,EAAEkkD,UAAYvkD,CAAG,GAC1E,SAAUK,EAAGL,GAAK,IAAK,IAAIi4D,KAAKj4D,EAAOA,EAAElY,eAAemwE,KAAI53D,EAAE43D,GAAKj4D,EAAEi4D,GAAI,EAC7E,OAAO,SAAU53D,EAAGL,GAEhB,SAASkzH,IAAOt0H,KAAK3Z,YAAcob,CAAG,CADtC2yH,EAAc3yH,EAAGL,GAEjBK,EAAEnb,UAAkB,OAAN8a,EAAaxc,OAAOwQ,OAAOgM,IAAMkzH,EAAGhuI,UAAY8a,EAAE9a,UAAW,IAAIguI,EACnF,CACJ,CAT6C,GAU7C1vI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAIguI,EAAgC,SAAUhlF,GAE1C,SAASglF,EAAenrH,GACpB,IAAI20G,EAAQ/9G,KAKZ,OAJAoJ,EAAU,eAAiBA,GAC3B20G,EAAQxuE,EAAOtoD,KAAK+Y,KAAMoJ,IAAYpJ,MAChCoJ,QAAUA,EAChB20G,EAAMt1H,KAAOs1H,EAAM13H,YAAYoC,KACxBs1H,CACX,CACA,OATA4P,EAAU4G,EAAgBhlF,GASnBglF,CACX,CAXoC,CAWlClqI,OACF/F,EAAQiwI,eAAiBA,EACzB,IAKIlB,EALAhwE,EAAa,CAAC,EACdmxE,EAAU,CAAC,EACXhyF,EAAO,CAAC,EACR/iB,EAAQ,CAAC,EAwCb,SAASlX,EAAMA,EAAOstC,GAElB,IAAI3vC,EACJ,QAFc,IAAV2vC,IAAoBA,EAAQw9E,EAAMoB,KAEjB,kBAAVlsH,EACPrC,EAAQuZ,EAAMlX,IAAU86C,EAAW96C,QAGlC,GAAIA,aAAiBurH,MAAQvrH,EAAgB,WAAMmsH,KAAKC,UACzDzuH,EAAQuZ,EAAY,UAEnB,GAAqB,kBAAVlX,EACRA,EAAQ8qH,EAAMuB,MAAQvB,EAAMwB,MAC5B3uH,EAAQuZ,EAAa,MAEhBlX,EAAQ8qH,EAAMuB,MAAQvB,EAAMyB,SACjC5uH,EAAQuZ,EAAc,aAGzB,GAAIlX,aAAiBwsH,YAAa,CACnC,IAAIC,GAASzsH,EAAM06C,aAAa,UAAY,IAAI37C,MAAM,OACtD,IAAK,IAAI/hB,KAAKyvI,EAEV,GADA9uH,EAAQsuH,EAAQQ,EAAMzvI,IAElB,MAER2gB,EAAQA,GAASs8B,EAAKj6B,EAAMg6C,QAChC,CACA,OAAa,MAATr8C,EACO,KAEP2vC,EAAQw9E,EAAMuB,MAAQ1uH,EAAM2vC,OAASA,EAAQw9E,EAAM4B,KAAO/uH,EAAM2vC,MACzD3vC,EACJ,IACX,CAxEA5hB,EAAQ4wI,SAAW,SAEnB,SAAW7B,GACPA,EAAMA,EAAY,KAAI,GAAK,OAC3BA,EAAMA,EAAa,MAAI,IAAM,QAC7BA,EAAMA,EAAiB,UAAI,IAAM,YACjCA,EAAMA,EAAY,KAAI,IAAM,OAC5BA,EAAMA,EAAc,OAAI,GAAK,SAC7BA,EAAMA,EAAa,MAAI,IAAM,QAC7BA,EAAMA,EAAkB,WAAI,IAAM,aAClCA,EAAMA,EAAmB,YAAI,GAAK,cAClCA,EAAMA,EAAuB,gBAAI,GAAK,kBACtCA,EAAMA,EAAwB,iBAAI,GAAK,mBACvCA,EAAMA,EAAW,IAAI,IAAM,KAC9B,CAZD,CAYGA,EAAQ/uI,EAAQ+uI,QAAU/uI,EAAQ+uI,MAAQ,CAAC,IAY9C/uI,EAAQ8Q,OAXR,SAAgBgL,EAAO7Z,GACnB,IAAI2f,EAAQqC,EAAMnI,GAClB,GAAa,MAAT8F,EACA,MAAM,IAAIquH,EAAe,oBAAsBn0H,EAAQ,SAE3D,IAAI+0H,EAAYjvH,EACZ9a,EAEJgV,aAAiBs0H,MAAQt0H,EAAgB,WAAMs0H,KAAKC,UAAYv0H,EAAQ+0H,EAAU//H,OAAO7O,GACzF,OAAO,IAAI4uI,EAAU/pI,EAAM7E,EAC/B,EAaAjC,EAAQgvI,KAXR,SAASA,EAAKloI,EAAMgqI,GAEhB,YADe,IAAXA,IAAqBA,GAAS,GACtB,MAARhqI,EACO,KAEmB,MAA1BA,EAAK9G,EAAQ4wI,UACN9pI,EAAK9G,EAAQ4wI,UAAUG,KAC9BD,EACO9B,EAAKloI,EAAK82D,WAAYkzE,GAC1B,IACX,EAoCA9wI,EAAQikB,MAAQA,EA6ChBjkB,EAAQivI,SA5CR,SAASA,IAEL,IADA,IAAI+B,EAAc,GACT5tI,EAAK,EAAGA,EAAKlC,UAAUC,OAAQiC,IACpC4tI,EAAY5tI,GAAMlC,UAAUkC,GAEhC,GAAI4tI,EAAY7vI,OAAS,EACrB,OAAO6vI,EAAY36G,KAAI,SAAUlZ,GAC7B,OAAO8xH,EAAS9xH,EACpB,IAEJ,IAAI8zH,EAAaD,EAAY,GAC7B,GAAmC,kBAAxBC,EAAWC,UAAwD,kBAAxBD,EAAWE,SAC7D,MAAM,IAAIlB,EAAe,sBAExB,GAA4B,aAAxBgB,EAAWC,SAChB,MAAM,IAAIjB,EAAe,kCA2B7B,OAzBA90G,EAAM81G,EAAWC,UAAYD,EAAWE,UAAYF,EAClB,kBAAvBA,EAAW17F,QAClBwpB,EAAWkyE,EAAW17F,SAAW07F,GAGL,MAAxBA,EAAWxhI,YACXygI,EAAQe,EAAWxhI,WAAawhI,GAEV,MAAtBA,EAAWhzE,UACP/6D,MAAMC,QAAQ8tI,EAAWhzE,SACzBgzE,EAAWhzE,QAAUgzE,EAAWhzE,QAAQ5nC,KAAI,SAAU4nC,GAClD,OAAOA,EAAQ9uD,aACnB,IAGA8hI,EAAWhzE,QAAUgzE,EAAWhzE,QAAQ9uD,eAE7BjM,MAAMC,QAAQ8tI,EAAWhzE,SAAWgzE,EAAWhzE,QAAU,CAACgzE,EAAWhzE,UAC3E58D,SAAQ,SAAUsJ,GACN,MAAbuzC,EAAKvzC,IAAwC,MAAxBsmI,EAAWxhI,YAChCyuC,EAAKvzC,GAAOsmI,EAEpB,MAGDA,CACX,CAIO,WAES78H,EAAQpU,EAAS8tI,GAEjC,IAAIsD,EAAOtD,EAAoB,IAC3B5V,EAAQ4V,EAAoB,IAC5Bl5B,EAASk5B,EAAoB,GAC7BuD,EAAKvD,EAAoB,IAGzBwD,EAAiBt/G,OAAO8yC,aAAa,GAGrCysE,EAAQ,SAAUxF,GAEhB7oI,MAAMC,QAAQ4oI,GAChBrwH,KAAKqwH,IAAMA,EACK,MAAPA,GAAe7oI,MAAMC,QAAQ4oI,EAAIA,KAC1CrwH,KAAKqwH,IAAMA,EAAIA,IAEfrwH,KAAKqwH,IAAM,EAEf,EAGAwF,EAAMvvI,UAAUwvI,OAAS,SAAU5yE,EAAMG,GACvC,IAAI0yE,EAAQ,CAAC,EACb,OAAoB,IAAhB7yE,EAAKz9D,OAAqBua,MAC9B+1H,EAAMD,OAAS5yE,EACG,MAAdG,GAA4C,kBAAfA,GAA2Bz+D,OAAOD,KAAK0+D,GAAY59D,OAAS,IAC3FswI,EAAM1yE,WAAaA,GAEdrjD,KAAK7a,KAAK4wI,GACnB,EAEAF,EAAMvvI,UAAkB,OAAI,SAAUb,GACpC,OAAIA,GAAU,EAAUua,KACjBA,KAAK7a,KAAK,CAAE,OAAUM,GAC/B,EAEAowI,EAAMvvI,UAAU0vI,OAAS,SAAUvwI,EAAQ49D,GACzC,GAAI59D,GAAU,EAAG,OAAOua,KACxB,IAAI+1H,EAAQ,CAAEC,OAAQvwI,GAItB,OAHkB,MAAd49D,GAA4C,kBAAfA,GAA2Bz+D,OAAOD,KAAK0+D,GAAY59D,OAAS,IAC3FswI,EAAM1yE,WAAaA,GAEdrjD,KAAK7a,KAAK4wI,EACnB,EAEAF,EAAMvvI,UAAUnB,KAAO,SAAU4wI,GAC/B,IAAInhH,EAAQ5U,KAAKqwH,IAAI5qI,OACjBwwI,EAASj2H,KAAKqwH,IAAIz7G,EAAQ,GAE9B,GADAmhH,EAAQ78B,GAAO,EAAM,CAAC,EAAG68B,GACH,kBAAXE,EAAqB,CAC9B,GAA+B,kBAApBF,EAAc,QAA8C,kBAArBE,EAAe,OAE/D,OADAj2H,KAAKqwH,IAAIz7G,EAAQ,GAAK,CAAE,OAAUqhH,EAAe,OAAIF,EAAc,QAC5D/1H,KAIT,GAAgC,kBAArBi2H,EAAe,QAAkC,MAAhBF,EAAMD,SAChDlhH,GAAS,EAEa,kBADtBqhH,EAASj2H,KAAKqwH,IAAIz7G,EAAQ,KAGxB,OADA5U,KAAKqwH,IAAI5lH,QAAQsrH,GACV/1H,KAGX,GAAIw8G,EAAMuZ,EAAM1yE,WAAY4yE,EAAO5yE,YAAa,CAC9C,GAA4B,kBAAjB0yE,EAAMD,QAAgD,kBAAlBG,EAAOH,OAGpD,OAFA91H,KAAKqwH,IAAIz7G,EAAQ,GAAK,CAAEkhH,OAAQG,EAAOH,OAASC,EAAMD,QACtB,kBAArBC,EAAM1yE,aAAyBrjD,KAAKqwH,IAAIz7G,EAAQ,GAAGyuC,WAAa0yE,EAAM1yE,YAC1ErjD,KACF,GAA4B,kBAAjB+1H,EAAMC,QAAgD,kBAAlBC,EAAOD,OAG3D,OAFAh2H,KAAKqwH,IAAIz7G,EAAQ,GAAK,CAAEohH,OAAQC,EAAOD,OAASD,EAAMC,QACtB,kBAArBD,EAAM1yE,aAAyBrjD,KAAKqwH,IAAIz7G,EAAQ,GAAGyuC,WAAa0yE,EAAM1yE,YAC1ErjD,IAEX,CACF,CAMA,OALI4U,IAAU5U,KAAKqwH,IAAI5qI,OACrBua,KAAKqwH,IAAIlrI,KAAK4wI,GAEd/1H,KAAKqwH,IAAIxpF,OAAOjyB,EAAO,EAAGmhH,GAErB/1H,IACT,EAEA61H,EAAMvvI,UAAU4vI,KAAO,WACrB,IAAID,EAASj2H,KAAKqwH,IAAIrwH,KAAKqwH,IAAI5qI,OAAS,GAIxC,OAHIwwI,GAAUA,EAAOD,SAAWC,EAAO5yE,YACrCrjD,KAAKqwH,IAAIh5F,MAEJr3B,IACT,EAEA61H,EAAMvvI,UAAUvB,OAAS,SAAUkuF,GACjC,OAAOjzE,KAAKqwH,IAAItrI,OAAOkuF,EACzB,EAEA4iD,EAAMvvI,UAAUX,QAAU,SAAUstF,GAClCjzE,KAAKqwH,IAAI1qI,QAAQstF,EACnB,EAEA4iD,EAAMvvI,UAAUq0B,IAAM,SAAUs4D,GAC9B,OAAOjzE,KAAKqwH,IAAI11G,IAAIs4D,EACtB,EAEA4iD,EAAMvvI,UAAUq7D,UAAY,SAAUsxB,GACpC,IAAIkjD,EAAS,GAAIvzF,EAAS,GAK1B,OAJA5iC,KAAKra,SAAQ,SAASgwI,IACP1iD,EAAU0iD,GAAMQ,EAASvzF,GAC/Bz9C,KAAKwwI,EACd,IACO,CAACQ,EAAQvzF,EAClB,EAEAizF,EAAMvvI,UAAU8H,OAAS,SAAU6kF,EAAWmjD,GAC5C,OAAOp2H,KAAKqwH,IAAIjiI,OAAO6kF,EAAWmjD,EACpC,EAEAP,EAAMvvI,UAAU+vI,aAAe,WAC7B,OAAOr2H,KAAK5R,QAAO,SAAU3I,EAAQ6wI,GACnC,OAAIA,EAAKR,OACArwI,EAASkwI,EAAGlwI,OAAO6wI,GACjBA,EAAKr5G,OACPx3B,EAAS6wI,EAAKr5G,OAEhBx3B,CACT,GAAG,EACL,EAEAowI,EAAMvvI,UAAUb,OAAS,WACvB,OAAOua,KAAK5R,QAAO,SAAU3I,EAAQ6wI,GACnC,OAAO7wI,EAASkwI,EAAGlwI,OAAO6wI,EAC5B,GAAG,EACL,EAEAT,EAAMvvI,UAAUkC,MAAQ,SAAU63D,EAAOphB,GACvCohB,EAAQA,GAAS,EACE,kBAARphB,IAAkBA,EAAM0uB,KAInC,IAHA,IAAI0iE,EAAM,GACNkG,EAAOZ,EAAGvvI,SAAS4Z,KAAKqwH,KACxBz7G,EAAQ,EACLA,EAAQqqB,GAAOs3F,EAAKC,WAAW,CACpC,IAAIC,EACA7hH,EAAQyrC,EACVo2E,EAASF,EAAKvuI,KAAKq4D,EAAQzrC,IAE3B6hH,EAASF,EAAKvuI,KAAKi3C,EAAMrqB,GACzBy7G,EAAIlrI,KAAKsxI,IAEX7hH,GAAS+gH,EAAGlwI,OAAOgxI,EACrB,CACA,OAAO,IAAIZ,EAAMxF,EACnB,EAGAwF,EAAMvvI,UAAUowI,QAAU,SAAUniD,GAClC,IAAIoiD,EAAWhB,EAAGvvI,SAAS4Z,KAAKqwH,KAC5BuG,EAAYjB,EAAGvvI,SAASmuF,EAAM87C,KAC9BA,EAAM,GACNwG,EAAaD,EAAUE,OAC3B,GAAkB,MAAdD,GAAmD,kBAAtBA,EAAWb,QAAgD,MAAzBa,EAAWxzE,WAAoB,CAEhG,IADA,IAAI0zE,EAAYF,EAAWb,OACI,WAAxBW,EAASK,YAA2BL,EAASM,cAAgBF,GAClEA,GAAaJ,EAASM,aACtB5G,EAAIlrI,KAAKwxI,EAAS3uI,QAEhB6uI,EAAWb,OAASe,EAAY,GAClCH,EAAU5uI,KAAK6uI,EAAWb,OAASe,EAEvC,CAEA,IADA,IAAI5tG,EAAQ,IAAI0sG,EAAMxF,GACfsG,EAASH,WAAaI,EAAUJ,WACrC,GAA6B,WAAzBI,EAAUI,WACZ7tG,EAAMhkC,KAAKyxI,EAAU5uI,aAChB,GAA4B,WAAxB2uI,EAASK,WAClB7tG,EAAMhkC,KAAKwxI,EAAS3uI,YACf,CACL,IAAIvC,EAAS4c,KAAK8tB,IAAIwmG,EAASM,aAAcL,EAAUK,cACnDC,EAASP,EAAS3uI,KAAKvC,GACvB0xI,EAAUP,EAAU5uI,KAAKvC,GAC7B,GAA8B,kBAAnB0xI,EAAQnB,OAAqB,CACtC,IAAID,EAAQ,CAAC,EACgB,kBAAlBmB,EAAOlB,OAChBD,EAAMC,OAASvwI,EAEfswI,EAAMD,OAASoB,EAAOpB,OAGxB,IAAIzyE,EAAasyE,EAAGtyE,WAAWqzE,QAAQQ,EAAO7zE,WAAY8zE,EAAQ9zE,WAAqC,kBAAlB6zE,EAAOlB,QAK5F,GAJI3yE,IAAY0yE,EAAM1yE,WAAaA,GACnCl6B,EAAMhkC,KAAK4wI,IAGNa,EAAUJ,WAAaha,EAAMrzF,EAAMknG,IAAIlnG,EAAMknG,IAAI5qI,OAAS,GAAIswI,GAAQ,CACzE,IAAIrgG,EAAO,IAAImgG,EAAMc,EAASjhG,QAC9B,OAAOvM,EAAMz6B,OAAOgnC,GAAMwgG,MAC5B,CAIF,KAAwC,kBAAtBiB,EAAgB,QAA2C,kBAAlBD,EAAOlB,QAChE7sG,EAAMhkC,KAAKgyI,EAEf,CAEF,OAAOhuG,EAAM+sG,MACf,EAEAL,EAAMvvI,UAAUoI,OAAS,SAAU6lF,GACjC,IAAIprD,EAAQ,IAAI0sG,EAAM71H,KAAKqwH,IAAI7nI,SAK/B,OAJI+rF,EAAM87C,IAAI5qI,OAAS,IACrB0jC,EAAMhkC,KAAKovF,EAAM87C,IAAI,IACrBlnG,EAAMknG,IAAMlnG,EAAMknG,IAAI3hI,OAAO6lF,EAAM87C,IAAI7nI,MAAM,KAExC2gC,CACT,EAEA0sG,EAAMvvI,UAAUovI,KAAO,SAAUnhD,EAAO3/D,GACtC,GAAI5U,KAAKqwH,MAAQ97C,EAAM87C,IACrB,OAAO,IAAIwF,EAEb,IAAIuB,EAAU,CAACp3H,KAAMu0E,GAAO55D,KAAI,SAAUwO,GACxC,OAAOA,EAAMxO,KAAI,SAAUg7G,GACzB,GAAiB,MAAbA,EAAGG,OACL,MAA4B,kBAAdH,EAAGG,OAAsBH,EAAGG,OAASF,EAGrD,MAAM,IAAIvrI,MAAM,kBADJ8+B,IAAUorD,EAAS,KAAO,QACI,gBAC5C,IAAGjgE,KAAK,GACV,IACI6U,EAAQ,IAAI0sG,EACZwB,EAAa3B,EAAK0B,EAAQ,GAAIA,EAAQ,GAAIxiH,GAC1C+hH,EAAWhB,EAAGvvI,SAAS4Z,KAAKqwH,KAC5BuG,EAAYjB,EAAGvvI,SAASmuF,EAAM87C,KA6BlC,OA5BAgH,EAAW1xI,SAAQ,SAAU2xI,GAE3B,IADA,IAAI7xI,EAAS6xI,EAAU,GAAG7xI,OACnBA,EAAS,GAAG,CACjB,IAAI8xI,EAAW,EACf,OAAQD,EAAU,IAChB,KAAK5B,EAAK8B,OACRD,EAAWl1H,KAAK8tB,IAAIymG,EAAUK,aAAcxxI,GAC5C0jC,EAAMhkC,KAAKyxI,EAAU5uI,KAAKuvI,IAC1B,MACF,KAAK7B,EAAK+B,OACRF,EAAWl1H,KAAK8tB,IAAI1qC,EAAQkxI,EAASM,cACrCN,EAAS3uI,KAAKuvI,GACdpuG,EAAc,OAAEouG,GAChB,MACF,KAAK7B,EAAKgC,MACRH,EAAWl1H,KAAK8tB,IAAIwmG,EAASM,aAAcL,EAAUK,aAAcxxI,GACnE,IAAIyxI,EAASP,EAAS3uI,KAAKuvI,GACvBJ,EAAUP,EAAU5uI,KAAKuvI,GACzB/a,EAAM0a,EAAOpB,OAAQqB,EAAQrB,QAC/B3sG,EAAM6sG,OAAOuB,EAAU5B,EAAGtyE,WAAWqyE,KAAKwB,EAAO7zE,WAAY8zE,EAAQ9zE,aAErEl6B,EAAMhkC,KAAKgyI,GAAiB,OAAEI,GAIpC9xI,GAAU8xI,CACZ,CACF,IACOpuG,EAAM+sG,MACf,EAEAL,EAAMvvI,UAAUqxI,SAAW,SAAU1kD,EAAW2kD,GAC9CA,EAAUA,GAAW,KAIrB,IAHA,IAAIrB,EAAOZ,EAAGvvI,SAAS4Z,KAAKqwH,KACxBnnG,EAAO,IAAI2sG,EACXtwI,EAAI,EACDgxI,EAAKC,WAAW,CACrB,GAAwB,WAApBD,EAAKS,WAAyB,OAClC,IAAIE,EAASX,EAAKO,OACdz2E,EAAQs1E,EAAGlwI,OAAOyxI,GAAUX,EAAKU,aACjCriH,EAAiC,kBAAlBsiH,EAAOpB,OACxBoB,EAAOpB,OAAOjvI,QAAQ+wI,EAASv3E,GAASA,GAAS,EACnD,GAAIzrC,EAAQ,EACVsU,EAAK/jC,KAAKoxI,EAAKvuI,aACV,GAAI4sB,EAAQ,EACjBsU,EAAK/jC,KAAKoxI,EAAKvuI,KAAK4sB,QACf,CACL,IAA0D,IAAtDq+D,EAAU/pD,EAAMqtG,EAAKvuI,KAAK,GAAGq7D,YAAc,CAAC,EAAG99D,GACjD,OAEFA,GAAK,EACL2jC,EAAO,IAAI2sG,CACb,CACF,CACI3sG,EAAKzjC,SAAW,GAClBwtF,EAAU/pD,EAAM,CAAC,EAAG3jC,EAExB,EAEAswI,EAAMvvI,UAAUi0F,UAAY,SAAUhG,EAAO0Y,GAE3C,GADAA,IAAaA,EACQ,kBAAV1Y,EACT,OAAOv0E,KAAK63H,kBAAkBtjD,EAAO0Y,GAKvC,IAHA,IAAI0pC,EAAWhB,EAAGvvI,SAAS4Z,KAAKqwH,KAC5BuG,EAAYjB,EAAGvvI,SAASmuF,EAAM87C,KAC9BlnG,EAAQ,IAAI0sG,EACTc,EAASH,WAAaI,EAAUJ,WACrC,GAA4B,WAAxBG,EAASK,aAA4B/pC,GAAqC,WAAzB2pC,EAAUI,WAExD,GAA6B,WAAzBJ,EAAUI,WACnB7tG,EAAMhkC,KAAKyxI,EAAU5uI,YAChB,CACL,IAAIvC,EAAS4c,KAAK8tB,IAAIwmG,EAASM,aAAcL,EAAUK,cACnDC,EAASP,EAAS3uI,KAAKvC,GACvB0xI,EAAUP,EAAU5uI,KAAKvC,GAC7B,GAAIyxI,EAAe,OAEjB,SACSC,EAAgB,OACzBhuG,EAAMhkC,KAAKgyI,GAGXhuG,EAAM6sG,OAAOvwI,EAAQkwI,EAAGtyE,WAAWk3B,UAAU28C,EAAO7zE,WAAY8zE,EAAQ9zE,WAAY4pC,GAExF,MAhBE9jE,EAAM6sG,OAAOL,EAAGlwI,OAAOkxI,EAAS3uI,SAkBpC,OAAOmhC,EAAM+sG,MACf,EAEAL,EAAMvvI,UAAUuxI,kBAAoB,SAAUjjH,EAAOq4E,GACnDA,IAAaA,EAGb,IAFA,IAAI0pC,EAAWhB,EAAGvvI,SAAS4Z,KAAKqwH,KAC5BntH,EAAS,EACNyzH,EAASH,WAAatzH,GAAU0R,GAAO,CAC5C,IAAInvB,EAASkxI,EAASM,aAClBa,EAAWnB,EAASK,WACxBL,EAAS3uI,OACQ,WAAb8vI,GAGoB,WAAbA,IAA0B50H,EAAS0R,IAAUq4E,KACtDr4E,GAASnvB,GAEXyd,GAAUzd,GALRmvB,GAASvS,KAAK8tB,IAAI1qC,EAAQmvB,EAAQ1R,EAMtC,CACA,OAAO0R,CACT,EAGAlc,EAAOpU,QAAUuxI,CAGV,WAESn9H,EAAQpU,GAExB,aAEA,IAAIy7E,EAASn7E,OAAO0B,UAAU4C,eAC1B8yE,EAAQp3E,OAAO0B,UAAUiC,SACzBvC,EAAiBpB,OAAOoB,eACxB+xI,EAAOnzI,OAAOK,yBAEdwC,EAAU,SAAiBN,GAC9B,MAA6B,oBAAlBK,MAAMC,QACTD,MAAMC,QAAQN,GAGK,mBAApB60E,EAAM/0E,KAAKE,EACnB,EAEI6wI,EAAgB,SAAuB9xI,GAC1C,IAAKA,GAA2B,oBAApB81E,EAAM/0E,KAAKf,GACtB,OAAO,EAGR,IASIN,EATAqyI,EAAoBl4D,EAAO94E,KAAKf,EAAK,eACrCgyI,EAAmBhyI,EAAIG,aAAeH,EAAIG,YAAYC,WAAay5E,EAAO94E,KAAKf,EAAIG,YAAYC,UAAW,iBAE9G,GAAIJ,EAAIG,cAAgB4xI,IAAsBC,EAC7C,OAAO,EAMR,IAAKtyI,KAAOM,GAEZ,MAAsB,qBAARN,GAAuBm6E,EAAO94E,KAAKf,EAAKN,EACvD,EAGIs/F,EAAc,SAAqB5/F,EAAQ2I,GAC1CjI,GAAmC,cAAjBiI,EAAQxF,KAC7BzC,EAAeV,EAAQ2I,EAAQxF,KAAM,CACpCvD,YAAY,EACZsB,cAAc,EACdD,MAAO0H,EAAQkqI,SACf1xI,UAAU,IAGXnB,EAAO2I,EAAQxF,MAAQwF,EAAQkqI,QAEjC,EAGIC,EAAc,SAAqBlyI,EAAKuC,GAC3C,GAAa,cAATA,EAAsB,CACzB,IAAKs3E,EAAO94E,KAAKf,EAAKuC,GACrB,OACM,GAAIsvI,EAGV,OAAOA,EAAK7xI,EAAKuC,GAAMlC,KAEzB,CAEA,OAAOL,EAAIuC,EACZ,EAEAiQ,EAAOpU,QAAU,SAAS40G,IACzB,IAAIjrG,EAASxF,EAAMulE,EAAKlhD,EAAMurH,EAAarhE,EACvC1xE,EAASE,UAAU,GACnBD,EAAI,EACJE,EAASD,UAAUC,OACnB6yI,GAAO,EAaX,IAVsB,mBAAXhzI,IACVgzI,EAAOhzI,EACPA,EAASE,UAAU,IAAM,CAAC,EAE1BD,EAAI,IAES,MAAVD,GAAqC,kBAAXA,GAAyC,oBAAXA,KAC3DA,EAAS,CAAC,GAGJC,EAAIE,IAAUF,EAGpB,GAAe,OAFf0I,EAAUzI,UAAUD,IAInB,IAAKkD,KAAQwF,EACZ+/D,EAAMoqE,EAAY9yI,EAAQmD,GAItBnD,KAHJwnB,EAAOsrH,EAAYnqI,EAASxF,MAKvB6vI,GAAQxrH,IAASkrH,EAAclrH,KAAUurH,EAAc5wI,EAAQqlB,MAC9DurH,GACHA,GAAc,EACdrhE,EAAQhJ,GAAOvmE,EAAQumE,GAAOA,EAAM,IAEpCgJ,EAAQhJ,GAAOgqE,EAAchqE,GAAOA,EAAM,CAAC,EAI5Ck3B,EAAY5/F,EAAQ,CAAEmD,KAAMA,EAAM0vI,SAAUj/B,EAAOo/B,EAAMthE,EAAOlqD,MAGtC,qBAATA,GACjBo4E,EAAY5/F,EAAQ,CAAEmD,KAAMA,EAAM0vI,SAAUrrH,KAQjD,OAAOxnB,CACR,CAGO,WAESoT,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQgrE,QAAUhrE,EAAQi0I,WAAaj0I,EAAQk0I,mBAAgBzpI,EAE/D,IAAI0pI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAIre68D,EAAWvpE,EAFD4iE,EAAoB,IAM9B4G,EAAexpE,EAFD4iE,EAAoB,IAMlC6G,EAAczpE,EAFD4iE,EAAoB,IAMjC8G,EAAU1pE,EAFD4iE,EAAoB,KAM7B+G,EAAW3pE,EAFD4iE,EAAoB,IAM9BgH,EAAS5pE,EAFD4iE,EAAoB,IAIhC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F,SAASmzI,EAAgBx9B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAExJ,SAASwwI,EAA2B/6H,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAE/O,SAASsyI,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAE7e,IAEIlB,EAAa,SAAUmB,GAGzB,SAASnB,IAGP,OAFAc,EAAgBr5H,KAAMu4H,GAEfe,EAA2Bt5H,MAAOu4H,EAAW5yE,WAAa/gE,OAAOioD,eAAe0rF,IAAanzI,MAAM4a,KAAMxa,WAClH,CAuCA,OA7CA+zI,EAAUhB,EAAYmB,GAQtBjB,EAAaF,EAAY,CAAC,CACxB3yI,IAAK,SACLW,MAAO,WACLsyI,EAAKN,EAAWjyI,UAAUq/D,WAAa/gE,OAAOioD,eAAe0rF,EAAWjyI,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,MACzGA,KAAKqjD,WAAa,IAAI41E,EAAY3pE,QAAQykE,WAAWI,MAAMn0H,KAAK/K,QAClE,GACC,CACDrP,IAAK,QACLW,MAAO,WACL,OAAO,IAAIyyI,EAAa1pE,SAAUwmE,OAAO91H,KAAKzZ,SAAS,EAAIwyI,EAASzpE,SAAStvD,KAAK0vH,UAAW1vH,KAAKqjD,WAAWloC,UAC/G,GACC,CACDv1B,IAAK,SACLW,MAAO,SAAgBkC,EAAMlC,GAC3B,IAAI6+D,EAAY6zE,EAAY3pE,QAAQ/mD,MAAM9f,EAAMwwI,EAAY3pE,QAAQ+jE,MAAMsG,iBACzD,MAAbv0E,GACFplD,KAAKqjD,WAAW+B,UAAUA,EAAW7+D,EAEzC,GACC,CACDX,IAAK,WACLW,MAAO,SAAkBquB,EAAOnvB,EAAQgD,EAAMlC,GAC5CyZ,KAAKyI,OAAOhgB,EAAMlC,EACpB,GACC,CACDX,IAAK,WACLW,MAAO,SAAkBquB,EAAOruB,EAAOqzI,GACrC,GAAqB,kBAAVrzI,GAAsBA,EAAMw0C,SAAS,MAAO,CACrD,IAAI93B,EAAQg2H,EAAY3pE,QAAQl6D,OAAOw+H,EAAM4B,UAC7Cx1H,KAAK84H,OAAOx+D,aAAar3D,EAAiB,IAAV2R,EAAc5U,KAAOA,KAAKhY,MAC1Dib,EAAM42H,SAAS,EAAGtzI,EAAMiC,MAAM,GAAI,GACpC,MACEqwI,EAAKN,EAAWjyI,UAAUq/D,WAAa/gE,OAAOioD,eAAe0rF,EAAWjyI,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM4U,EAAOruB,EAAOqzI,EAEnI,KAGKrB,CACT,CA/CiB,CA+CfU,EAAY3pE,QAAQqkE,OAEtB4E,EAAW1iF,MAAQojF,EAAY3pE,QAAQ+jE,MAAMyG,WAI7C,IAAIlG,EAAQ,SAAUmG,GAGpB,SAASnG,EAAM3+H,GACbokI,EAAgBr5H,KAAM4zH,GAEtB,IAAIoG,EAASV,EAA2Bt5H,MAAO4zH,EAAMjuE,WAAa/gE,OAAOioD,eAAe+mF,IAAQ3sI,KAAK+Y,KAAM/K,IAG3G,OADA+kI,EAAO5mE,MAAQ,CAAC,EACT4mE,CACT,CAwHA,OAjIAT,EAAU3F,EAAOmG,GAWjBtB,EAAa7E,EAAO,CAAC,CACnBhuI,IAAK,QACLW,MAAO,WAUL,OATwB,MAApByZ,KAAKozD,MAAMjqC,QACbnpB,KAAKozD,MAAMjqC,MAAQnpB,KAAKi6H,YAAYhB,EAAY3pE,QAAQokE,MAAMtlI,QAAO,SAAU+6B,EAAO+wG,GACpF,OAAsB,IAAlBA,EAAKz0I,SACA0jC,EAEAA,EAAM2sG,OAAOoE,EAAK3zI,QAASiyI,EAAc0B,GAEpD,GAAG,IAAIlB,EAAa1pE,SAAWwmE,OAAO,KAAM0C,EAAcx4H,QAErDA,KAAKozD,MAAMjqC,KACpB,GACC,CACDvjC,IAAK,WACLW,MAAO,SAAkBquB,EAAOnvB,GAC9BozI,EAAKjF,EAAMttI,UAAUq/D,WAAa/gE,OAAOioD,eAAe+mF,EAAMttI,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM4U,EAAOnvB,GAC9Gua,KAAKozD,MAAQ,CAAC,CAChB,GACC,CACDxtE,IAAK,WACLW,MAAO,SAAkBquB,EAAOnvB,EAAQgD,EAAMlC,GACxCd,GAAU,IACVwzI,EAAY3pE,QAAQ/mD,MAAM9f,EAAMwwI,EAAY3pE,QAAQ+jE,MAAMwB,OACxDjgH,EAAQnvB,IAAWua,KAAKva,UAC1Bua,KAAKyI,OAAOhgB,EAAMlC,GAGpBsyI,EAAKjF,EAAMttI,UAAUq/D,WAAa/gE,OAAOioD,eAAe+mF,EAAMttI,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM4U,EAAOvS,KAAK8tB,IAAI1qC,EAAQua,KAAKva,SAAWmvB,EAAQ,GAAInsB,EAAMlC,GAEnKyZ,KAAKozD,MAAQ,CAAC,EAChB,GACC,CACDxtE,IAAK,WACLW,MAAO,SAAkBquB,EAAOruB,EAAOqzI,GACrC,GAAW,MAAPA,EAAa,OAAOf,EAAKjF,EAAMttI,UAAUq/D,WAAa/gE,OAAOioD,eAAe+mF,EAAMttI,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM4U,EAAOruB,EAAOqzI,GAC7I,GAAqB,IAAjBrzI,EAAMd,OAAV,CACA,IAAI00I,EAAQ5zI,EAAM+gB,MAAM,MACpB47C,EAAOi3E,EAAMh3H,QACb+/C,EAAKz9D,OAAS,IACZmvB,EAAQ5U,KAAKva,SAAW,GAA2B,MAAtBua,KAAK3P,SAAS0gH,KAC7C8nB,EAAKjF,EAAMttI,UAAUq/D,WAAa/gE,OAAOioD,eAAe+mF,EAAMttI,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAMqC,KAAK8tB,IAAIvb,EAAO5U,KAAKva,SAAW,GAAIy9D,GAE3IljD,KAAK3P,SAAS0gH,KAAK8oB,SAAS75H,KAAK3P,SAAS0gH,KAAKtrH,SAAUy9D,GAE3DljD,KAAKozD,MAAQ,CAAC,GAEhB,IAAInwD,EAAQjD,KACZm6H,EAAM/rI,QAAO,SAAUwmB,EAAOsU,GAG5B,OAFAjmB,EAAQA,EAAMqE,MAAMsN,GAAO,IACrBilH,SAAS,EAAG3wG,GACXA,EAAKzjC,MACd,GAAGmvB,EAAQsuC,EAAKz9D,OAhBc,CAiBhC,GACC,CACDG,IAAK,eACLW,MAAO,SAAsB8uI,EAAM7oI,GACjC,IAAIqkF,EAAO7wE,KAAK3P,SAASwgF,KACzBgoD,EAAKjF,EAAMttI,UAAUq/D,WAAa/gE,OAAOioD,eAAe+mF,EAAMttI,WAAY,eAAgB0Z,MAAM/Y,KAAK+Y,KAAMq1H,EAAM7oI,GAC7GqkF,aAAgBqoD,EAAQ5pE,SAC1BuhB,EAAKx4D,SAEPrY,KAAKozD,MAAQ,CAAC,CAChB,GACC,CACDxtE,IAAK,SACLW,MAAO,WAIL,OAHyB,MAArByZ,KAAKozD,MAAM3tE,SACbua,KAAKozD,MAAM3tE,OAASozI,EAAKjF,EAAMttI,UAAUq/D,WAAa/gE,OAAOioD,eAAe+mF,EAAMttI,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,MAxItG,GA0IRA,KAAKozD,MAAM3tE,MACpB,GACC,CACDG,IAAK,eACLW,MAAO,SAAsBjB,EAAQkH,GACnCqsI,EAAKjF,EAAMttI,UAAUq/D,WAAa/gE,OAAOioD,eAAe+mF,EAAMttI,WAAY,eAAgB0Z,MAAM/Y,KAAK+Y,KAAM1a,EAAQkH,GACnHwT,KAAKozD,MAAQ,CAAC,CAChB,GACC,CACDxtE,IAAK,WACLW,MAAO,SAAkButC,GACvB+kG,EAAKjF,EAAMttI,UAAUq/D,WAAa/gE,OAAOioD,eAAe+mF,EAAMttI,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM8zB,GACvG9zB,KAAKozD,MAAQ,CAAC,CAChB,GACC,CACDxtE,IAAK,OACLW,MAAO,SAAcquB,GACnB,OAAOikH,EAAKjF,EAAMttI,UAAUq/D,WAAa/gE,OAAOioD,eAAe+mF,EAAMttI,WAAY,OAAQ0Z,MAAM/Y,KAAK+Y,KAAM4U,GAAO,EACnH,GACC,CACDhvB,IAAK,cACLW,MAAO,SAAqBi8D,GAC1Bq2E,EAAKjF,EAAMttI,UAAUq/D,WAAa/gE,OAAOioD,eAAe+mF,EAAMttI,WAAY,cAAe0Z,MAAM/Y,KAAK+Y,KAAMwiD,GAC1GxiD,KAAKozD,MAAQ,CAAC,CAChB,GACC,CACDxtE,IAAK,QACLW,MAAO,SAAequB,GACpB,IAAIwlH,EAAQ50I,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,IAAmBA,UAAU,GAE3E,GAAI40I,IAAoB,IAAVxlH,GAAeA,GAAS5U,KAAKva,SAxK5B,GAwKwD,CACrE,IAAIuxE,EAAQh3D,KAAKg3D,QACjB,OAAc,IAAVpiD,GACF5U,KAAK84H,OAAOx+D,aAAatD,EAAOh3D,MACzBA,OAEPA,KAAK84H,OAAOx+D,aAAatD,EAAOh3D,KAAKhY,MAC9BgvE,EAEX,CACE,IAAIhvE,EAAO6wI,EAAKjF,EAAMttI,UAAUq/D,WAAa/gE,OAAOioD,eAAe+mF,EAAMttI,WAAY,QAAS0Z,MAAM/Y,KAAK+Y,KAAM4U,EAAOwlH,GAEtH,OADAp6H,KAAKozD,MAAQ,CAAC,EACPprE,CAEX,KAGK4rI,CACT,CAnIY,CAmIVqF,EAAY3pE,QAAQskE,OAOtB,SAAS4E,EAAcnD,GACrB,IAAI3F,EAAUlqI,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnF,OAAY,MAAR6vI,EAAqB3F,GACG,oBAAjB2F,EAAK3F,UACdA,GAAU,EAAIqJ,EAASzpE,SAASogE,EAAS2F,EAAK3F,YAE7B,MAAf2F,EAAKyD,QAA0C,UAAxBzD,EAAKyD,OAAOtD,UAAwBH,EAAKyD,OAAOuB,QAAQxkF,QAAUw/E,EAAKgF,QAAQxkF,MACjG65E,EAEF8I,EAAcnD,EAAKyD,OAAQpJ,GACpC,CAhBAkE,EAAM4B,SAAW,QACjB5B,EAAMrxE,QAAU,IAChBqxE,EAAM0G,aAAe,QACrB1G,EAAM2G,gBAAkB,CAACpB,EAAS7pE,QAAS2pE,EAAY3pE,QAAQqkE,MAAOyF,EAAO9pE,SAe7EhrE,EAAQk0I,cAAgBA,EACxBl0I,EAAQi0I,WAAaA,EACrBj0I,EAAQgrE,QAAUskE,CAEX,WAESl7H,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQgrE,QAAUhrE,EAAQk2I,SAAWl2I,EAAQm2I,kBAAe1rI,EAE5D,IAAI9I,EAA4B,oBAAXE,QAAoD,kBAApBA,OAAOC,SAAwB,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAEvQgB,EAAgb,SAAUC,EAAK5B,GAAK,GAAIiC,MAAMC,QAAQN,GAAQ,OAAOA,EAAY,GAAIhB,OAAOC,YAAYxB,OAAOuC,GAAQ,OAAxf,SAAuBA,EAAK5B,GAAK,IAAIsC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWH,OAAKmH,EAAW,IAAM,IAAK,IAAiCpH,EAA7BD,EAAKP,EAAIhB,OAAOC,cAAmB0B,GAAMH,EAAKD,EAAGM,QAAQC,QAAoBJ,EAAK1C,KAAKwC,EAAGpB,QAAYhB,GAAKsC,EAAKpC,SAAWF,GAA3DuC,GAAK,GAAkE,CAAE,MAAOI,GAAOH,GAAK,EAAMH,EAAKM,CAAK,CAAE,QAAU,KAAWJ,GAAMJ,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAAuH6yI,CAAcvzI,EAAK5B,GAAa,MAAM,IAAIuD,UAAU,uDAA2D,EAE7oB2vI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEnBtG,EAAoB,IAEpB,IAEI4G,EAAexpE,EAFD4iE,EAAoB,IAMlCuI,EAAWnrE,EAFD4iE,EAAoB,KAM9BwI,EAAYprE,EAFA4iE,EAAoB,IAMhCyI,EAAWrrE,EAFD4iE,EAAoB,IAM9B6G,EAAczpE,EAFD4iE,EAAoB,IAIjC0I,EAAa1I,EAAoB,IAEjC2I,EAAcvrE,EAAuBsrE,GAIrC/B,EAAWvpE,EAFD4iE,EAAoB,IAM9B4I,EAAWxrE,EAFD4iE,EAAoB,KAM9B6I,EAAUzrE,EAFD4iE,EAAoB,KAIjC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F,SAASL,EAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAIhN,IAAIg1I,GAAQ,EAAIF,EAAS1rE,SAAS,SAE9B4iE,EAAQ,WAqDV,SAASA,EAAMiJ,GACb,IAAInB,EAASh6H,KAET/R,EAAUzI,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAMnF,GAlEJ,SAAyBq2G,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CA8DpJuwI,CAAgBr5H,KAAMkyH,GAEtBlyH,KAAK/R,QAAUwsI,EAAaU,EAAWltI,GACvC+R,KAAKm7H,UAAYn7H,KAAK/R,QAAQktI,UACR,MAAlBn7H,KAAKm7H,UACP,OAAOD,EAAM3lI,MAAM,0BAA2B4lI,GAE5Cn7H,KAAK/R,QAAQitI,OACfhJ,EAAMgJ,MAAMl7H,KAAK/R,QAAQitI,OAE3B,IAAIE,EAAOp7H,KAAKm7H,UAAUv5C,UAAUzzC,OACpCnuC,KAAKm7H,UAAUE,UAAU13G,IAAI,gBAC7B3jB,KAAKm7H,UAAUv5C,UAAY,GAC3B5hF,KAAKm7H,UAAUG,QAAUt7H,KACzBA,KAAKy6E,KAAOz6E,KAAKu7H,aAAa,aAC9Bv7H,KAAKy6E,KAAK4gD,UAAU13G,IAAI,YACxB3jB,KAAKy6E,KAAKxJ,aAAa,cAAc,GACrCjxE,KAAK6vH,mBAAqB7vH,KAAK/R,QAAQ4hI,oBAAsB7vH,KAAKy6E,KAClEz6E,KAAKwrB,QAAU,IAAIovG,EAAUtrE,QAC7BtvD,KAAK4wH,OAASqI,EAAY3pE,QAAQl6D,OAAO4K,KAAKy6E,KAAM,CAClDjvD,QAASxrB,KAAKwrB,QACdgwG,UAAWx7H,KAAK/R,QAAQyhI,UAE1B1vH,KAAKstH,OAAS,IAAIqN,EAASrrE,QAAQtvD,KAAK4wH,QACxC5wH,KAAKgtH,UAAY,IAAI+N,EAAYzrE,QAAQtvD,KAAK4wH,OAAQ5wH,KAAKwrB,SAC3DxrB,KAAK+vH,MAAQ,IAAI/vH,KAAK/R,QAAQ8hI,MAAM/vH,KAAMA,KAAK/R,SAC/C+R,KAAKy7H,SAAWz7H,KAAK+vH,MAAM2L,UAAU,YACrC17H,KAAKwwH,UAAYxwH,KAAK+vH,MAAM2L,UAAU,aACtC17H,KAAK27H,QAAU37H,KAAK+vH,MAAM2L,UAAU,WACpC17H,KAAK+vH,MAAM51D,OACXn6D,KAAKwrB,QAAQn/B,GAAGuuI,EAAUtrE,QAAQjgD,OAAOusH,eAAe,SAAUjoI,GAC5DA,IAASinI,EAAUtrE,QAAQjgD,OAAOwsH,aACpC7B,EAAOv/C,KAAK4gD,UAAUS,OAAO,WAAY9B,EAAO1M,OAAOyO,UAE3D,IACA/7H,KAAKwrB,QAAQn/B,GAAGuuI,EAAUtrE,QAAQjgD,OAAO2sH,eAAe,SAAUt2I,EAAQu2I,GACxE,IAAI5lC,EAAQ2jC,EAAOhN,UAAUkP,UACzBtnH,EAAQyhF,GAA0B,IAAjBA,EAAM5wG,OAAe4wG,EAAMzhF,WAAQ7lB,EACxDotI,EAAOl1I,KAAK+yI,GAAQ,WAClB,OAAOA,EAAO1M,OAAOv8H,OAAO,KAAMkrI,EAAWrnH,EAC/C,GAAGlvB,EACL,IACA,IAAI02I,EAAWp8H,KAAKwwH,UAAU3xG,QAAQ,yDAA2Du8G,EAAO,qBACxGp7H,KAAKivH,YAAYmN,GACjBp8H,KAAK27H,QAAQzxH,QACTlK,KAAK/R,QAAQ2hI,aACf5vH,KAAKy6E,KAAKxJ,aAAa,mBAAoBjxE,KAAK/R,QAAQ2hI,aAEtD5vH,KAAK/R,QAAQogI,UACfruH,KAAK6wH,SAET,CAiYA,OA7eA4H,EAAavG,EAAO,KAAM,CAAC,CACzBtsI,IAAK,QACLW,MAAO,SAAesmE,IACN,IAAVA,IACFA,EAAQ,OAEVmuE,EAAS1rE,QAAQ+sE,MAAMxvE,EACzB,GACC,CACDjnE,IAAK,OACLW,MAAO,SAAc6E,GACnB,OAAOA,EAAKkwI,SAAWrC,EAAY3pE,QAAQgkE,KAAKloI,EAClD,GACC,CACDxF,IAAK,SACLW,MAAO,SAAiBkC,GAItB,OAH0B,MAAtBuX,KAAKs8H,QAAQ7zI,IACfyyI,EAAM3lI,MAAM,iBAAmB9M,EAAO,qCAEjCuX,KAAKs8H,QAAQ7zI,EACtB,GACC,CACD7C,IAAK,WACLW,MAAO,SAAkBmhB,EAAMpiB,GAC7B,IAAIy4H,EAAQ/9G,KAERu8H,EAAY/2I,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,IAAmBA,UAAU,GAE/E,GAAoB,kBAATkiB,EAAmB,CAC5B,IAAIjf,EAAOif,EAAK+tH,UAAY/tH,EAAK8tH,SACb,kBAAT/sI,EAETuX,KAAKuzH,SAAS,WAAa9qI,EAAMif,EAAMpiB,GAEvCV,OAAOD,KAAK+iB,GAAM/hB,SAAQ,SAAUC,GAClCm4H,EAAMwV,SAAS3tI,EAAK8hB,EAAK9hB,GAAMN,EACjC,GAEJ,MAC4B,MAAtB0a,KAAKs8H,QAAQ50H,IAAkB60H,GACjCrB,EAAMzsI,KAAK,eAAiBiZ,EAAO,QAASpiB,GAE9C0a,KAAKs8H,QAAQ50H,GAAQpiB,GAChBoiB,EAAKozB,WAAW,WAAapzB,EAAKozB,WAAW,cAAoC,aAApBx1C,EAAOkwI,SACvEyD,EAAY3pE,QAAQikE,SAASjuI,GACpBoiB,EAAKozB,WAAW,YAAyC,oBAApBx1C,EAAOiuI,UACrDjuI,EAAOiuI,UAGb,KA6DFkF,EAAavG,EAAO,CAAC,CACnBtsI,IAAK,eACLW,MAAO,SAAsB40I,GAC3B,IAAIttD,EAAUroF,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,KAElF,GAAyB,kBAAd21I,EAAwB,CACjC,IAAIpnI,EAAYonI,GAChBA,EAAY1pG,SAASzgC,cAAc,QACzBqqI,UAAU13G,IAAI5vB,EAC1B,CAEA,OADAiM,KAAKm7H,UAAU7gE,aAAa6gE,EAAWttD,GAChCstD,CACT,GACC,CACDv1I,IAAK,OACLW,MAAO,WACLyZ,KAAKgtH,UAAUwP,SAAS,KAC1B,GACC,CACD52I,IAAK,aACLW,MAAO,SAAoBquB,EAAOnvB,EAAQC,GACxC,IAAI+2I,EAASz8H,KAET08H,EAAYlC,EAAS5lH,EAAOnvB,EAAQC,GAEpCi3I,EAAaz1I,EAAew1I,EAAW,GAM3C,OAJA9nH,EAAQ+nH,EAAW,GACnBl3I,EAASk3I,EAAW,GACpBj3I,EAASi3I,EAAW,GAEbR,EAAOl1I,KAAK+Y,MAAM,WACvB,OAAOy8H,EAAOnP,OAAOsP,WAAWhoH,EAAOnvB,EACzC,GAAGC,EAAQkvB,GAAQ,EAAInvB,EACzB,GACC,CACDG,IAAK,UACLW,MAAO,WACLyZ,KAAK8wH,QAAO,EACd,GACC,CACDlrI,IAAK,SACLW,MAAO,WACL,IAAIgmD,IAAU/mD,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,KAAmBA,UAAU,GAE7Ewa,KAAK4wH,OAAOE,OAAOvkF,GACnBvsC,KAAKm7H,UAAUE,UAAUS,OAAO,eAAgBvvF,EAClD,GACC,CACD3mD,IAAK,QACLW,MAAO,WACL,IAAIwzG,EAAY/5F,KAAK6vH,mBAAmB91B,UACxC/5F,KAAKgtH,UAAUhzB,QACfh6F,KAAK6vH,mBAAmB91B,UAAYA,EACpC/5F,KAAK68H,gBACP,GACC,CACDj3I,IAAK,SACLW,MAAO,SAAgBkC,EAAMlC,GAC3B,IAAIu2I,EAAS98H,KAETta,EAASF,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKo1I,EAAUtrE,QAAQytE,QAAQC,IAE3G,OAAOb,EAAOl1I,KAAK+Y,MAAM,WACvB,IAAIq2F,EAAQymC,EAAO7jC,cAAa,GAC5BgkC,EAAS,IAAIjE,EAAa1pE,QAC9B,GAAa,MAAT+mC,EACF,OAAO4mC,EACF,GAAIhE,EAAY3pE,QAAQ/mD,MAAM9f,EAAMwwI,EAAY3pE,QAAQ+jE,MAAMwB,OACnEoI,EAASH,EAAOxP,OAAO4P,WAAW7mC,EAAMzhF,MAAOyhF,EAAM5wG,OAAQI,EAAgB,CAAC,EAAG4C,EAAMlC,QAClF,IAAqB,IAAjB8vG,EAAM5wG,OAEf,OADAq3I,EAAO9P,UAAUvkH,OAAOhgB,EAAMlC,GACvB02I,EAEPA,EAASH,EAAOxP,OAAO6P,WAAW9mC,EAAMzhF,MAAOyhF,EAAM5wG,OAAQI,EAAgB,CAAC,EAAG4C,EAAMlC,GACzF,CAEA,OADAu2I,EAAOnM,aAAat6B,EAAOukC,EAAUtrE,QAAQytE,QAAQK,QAC9CH,CACT,GAAGv3I,EACL,GACC,CACDE,IAAK,aACLW,MAAO,SAAoBquB,EAAOnvB,EAAQgD,EAAMlC,EAAOb,GACrD,IAEIgqI,EAFA2N,EAASr9H,KAITs9H,EAAa9C,EAAS5lH,EAAOnvB,EAAQgD,EAAMlC,EAAOb,GAElD63I,EAAar2I,EAAeo2I,EAAY,GAO5C,OALA1oH,EAAQ2oH,EAAW,GACnB93I,EAAS83I,EAAW,GACpB7N,EAAU6N,EAAW,GACrB73I,EAAS63I,EAAW,GAEbpB,EAAOl1I,KAAK+Y,MAAM,WACvB,OAAOq9H,EAAO/P,OAAO4P,WAAWtoH,EAAOnvB,EAAQiqI,EACjD,GAAGhqI,EAAQkvB,EAAO,EACpB,GACC,CACDhvB,IAAK,aACLW,MAAO,SAAoBquB,EAAOnvB,EAAQgD,EAAMlC,EAAOb,GACrD,IAEIgqI,EAFA8N,EAASx9H,KAITy9H,EAAajD,EAAS5lH,EAAOnvB,EAAQgD,EAAMlC,EAAOb,GAElDg4I,EAAax2I,EAAeu2I,EAAY,GAO5C,OALA7oH,EAAQ8oH,EAAW,GACnBj4I,EAASi4I,EAAW,GACpBhO,EAAUgO,EAAW,GACrBh4I,EAASg4I,EAAW,GAEbvB,EAAOl1I,KAAK+Y,MAAM,WACvB,OAAOw9H,EAAOlQ,OAAO6P,WAAWvoH,EAAOnvB,EAAQiqI,EACjD,GAAGhqI,EAAQkvB,EAAO,EACpB,GACC,CACDhvB,IAAK,YACLW,MAAO,SAAmBquB,GACxB,IAAInvB,EAASD,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,EAE7EiqI,OAAS,EAEXA,EADmB,kBAAV76G,EACA5U,KAAKgtH,UAAUiE,UAAUr8G,EAAOnvB,GAEhCua,KAAKgtH,UAAUiE,UAAUr8G,EAAMA,MAAOA,EAAMnvB,QAEvD,IAAIk4I,EAAkB39H,KAAKm7H,UAAUyC,wBACrC,MAAO,CACLC,OAAQpO,EAAOoO,OAASF,EAAgB7jC,IACxC/F,OAAQ07B,EAAO17B,OACf3mG,KAAMqiI,EAAOriI,KAAOuwI,EAAgBvwI,KACpCC,MAAOoiI,EAAOpiI,MAAQswI,EAAgBvwI,KACtC0sG,IAAK21B,EAAO31B,IAAM6jC,EAAgB7jC,IAClChG,MAAO27B,EAAO37B,MAElB,GACC,CACDluG,IAAK,cACLW,MAAO,WACL,IAAIquB,EAAQpvB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,EAC5EC,EAASD,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKwa,KAAK0wH,YAAc97G,EAEhGkpH,EAAatD,EAAS5lH,EAAOnvB,GAE7Bs4I,EAAa72I,EAAe42I,EAAY,GAK5C,OAHAlpH,EAAQmpH,EAAW,GACnBt4I,EAASs4I,EAAW,GAEb/9H,KAAKstH,OAAOuB,YAAYj6G,EAAOnvB,EACxC,GACC,CACDG,IAAK,YACLW,MAAO,WACL,IAAIquB,EAAQpvB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKwa,KAAKi5F,cAAa,GAC9FxzG,EAASD,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,EAEjF,MAAqB,kBAAVovB,EACF5U,KAAKstH,OAAO0Q,UAAUppH,EAAOnvB,GAE7Bua,KAAKstH,OAAO0Q,UAAUppH,EAAMA,MAAOA,EAAMnvB,OAEpD,GACC,CACDG,IAAK,WACLW,MAAO,SAAkB8uI,GACvB,OAAOA,EAAKnyH,OAAOlD,KAAK4wH,OAC1B,GACC,CACDhrI,IAAK,YACLW,MAAO,WACL,OAAOyZ,KAAK4wH,OAAOnrI,QACrB,GACC,CACDG,IAAK,UACLW,MAAO,SAAiBquB,GACtB,OAAO5U,KAAK4wH,OAAOsJ,KAAKtlH,EAC1B,GACC,CACDhvB,IAAK,UACLW,MAAO,SAAiBquB,GACtB,OAAO5U,KAAK4wH,OAAO1nG,KAAKtU,EAC1B,GACC,CACDhvB,IAAK,WACLW,MAAO,WACL,IAAIquB,EAAQpvB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,EAC5EC,EAASD,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKi1B,OAAOwjH,UAExF,MAAqB,kBAAVrpH,EACF5U,KAAK4wH,OAAOuJ,MAAMvlH,EAAMA,MAAOA,EAAMnvB,QAErCua,KAAK4wH,OAAOuJ,MAAMvlH,EAAOnvB,EAEpC,GACC,CACDG,IAAK,YACLW,MAAO,SAAmBkC,GACxB,OAAOuX,KAAK+vH,MAAMJ,QAAQlnI,EAC5B,GACC,CACD7C,IAAK,eACLW,MAAO,WAKL,OAJYf,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,IAAmBA,UAAU,IAEhEwa,KAAKg6F,QAChBh6F,KAAKjP,SACEiP,KAAKgtH,UAAUkR,WAAW,EACnC,GACC,CACDt4I,IAAK,UACLW,MAAO,WACL,IAAIquB,EAAQpvB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,EAC5EC,EAASD,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKwa,KAAK0wH,YAAc97G,EAEhGupH,EAAa3D,EAAS5lH,EAAOnvB,GAE7B24I,EAAcl3I,EAAei3I,EAAY,GAK7C,OAHAvpH,EAAQwpH,EAAY,GACpB34I,EAAS24I,EAAY,GAEdp+H,KAAKstH,OAAO0D,QAAQp8G,EAAOnvB,EACpC,GACC,CACDG,IAAK,WACLW,MAAO,WACL,OAAOyZ,KAAKgtH,UAAUqR,UACxB,GACC,CACDz4I,IAAK,cACLW,MAAO,SAAqBquB,EAAO4wE,EAAOj/F,GACxC,IAAI+3I,EAASt+H,KAETta,EAASF,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK0sI,EAAM6K,QAAQC,IAE/F,OAAOb,EAAOl1I,KAAK+Y,MAAM,WACvB,OAAOs+H,EAAOhR,OAAOiR,YAAY3pH,EAAO4wE,EAAOj/F,EACjD,GAAGb,EAAQkvB,EACb,GACC,CACDhvB,IAAK,aACLW,MAAO,SAAoBquB,EAAOsuC,EAAMz6D,EAAMlC,EAAOb,GACnD,IAEIgqI,EAFA8O,EAASx+H,KAITy+H,EAAcjE,EAAS5lH,EAAO,EAAGnsB,EAAMlC,EAAOb,GAE9Cg5I,EAAcx3I,EAAeu3I,EAAa,GAM9C,OAJA7pH,EAAQ8pH,EAAY,GACpBhP,EAAUgP,EAAY,GACtBh5I,EAASg5I,EAAY,GAEdvC,EAAOl1I,KAAK+Y,MAAM,WACvB,OAAOw+H,EAAOlR,OAAOqR,WAAW/pH,EAAOsuC,EAAMwsE,EAC/C,GAAGhqI,EAAQkvB,EAAOsuC,EAAKz9D,OACzB,GACC,CACDG,IAAK,YACLW,MAAO,WACL,OAAQyZ,KAAKm7H,UAAUE,UAAUxyD,SAAS,cAC5C,GACC,CACDjjF,IAAK,MACLW,MAAO,WACL,OAAOyZ,KAAKwrB,QAAQl/B,IAAIlH,MAAM4a,KAAKwrB,QAAShmC,UAC9C,GACC,CACDI,IAAK,KACLW,MAAO,WACL,OAAOyZ,KAAKwrB,QAAQn/B,GAAGjH,MAAM4a,KAAKwrB,QAAShmC,UAC7C,GACC,CACDI,IAAK,OACLW,MAAO,WACL,OAAOyZ,KAAKwrB,QAAQqjC,KAAKzpE,MAAM4a,KAAKwrB,QAAShmC,UAC/C,GACC,CACDI,IAAK,YACLW,MAAO,SAAmBquB,EAAOwmH,EAAM11I,GACrCsa,KAAKwwH,UAAUoO,qBAAqBhqH,EAAOwmH,EAAM11I,EACnD,GACC,CACDE,IAAK,eACLW,MAAO,SAAsBquB,EAAOnvB,EAAQC,GAC1C,IAAIm5I,EAAS7+H,KAET8+H,EAActE,EAAS5lH,EAAOnvB,EAAQC,GAEtCq5I,EAAc73I,EAAe43I,EAAa,GAM9C,OAJAlqH,EAAQmqH,EAAY,GACpBt5I,EAASs5I,EAAY,GACrBr5I,EAASq5I,EAAY,GAEd5C,EAAOl1I,KAAK+Y,MAAM,WACvB,OAAO6+H,EAAOvR,OAAO0R,aAAapqH,EAAOnvB,EAC3C,GAAGC,EAAQkvB,EACb,GACC,CACDhvB,IAAK,iBACLW,MAAO,WACLyZ,KAAKgtH,UAAU6P,eAAe78H,KAAK6vH,mBACrC,GACC,CACDjqI,IAAK,cACLW,MAAO,SAAqB4iC,GAC1B,IAAI81G,EAAUj/H,KAEVta,EAASF,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKo1I,EAAUtrE,QAAQytE,QAAQC,IAE3G,OAAOb,EAAOl1I,KAAK+Y,MAAM,WACvBmpB,EAAQ,IAAI6vG,EAAa1pE,QAAQnmC,GACjC,IAAI1jC,EAASw5I,EAAQvO,YACjBwO,EAAUD,EAAQ3R,OAAOsP,WAAW,EAAGn3I,GACvC05I,EAAUF,EAAQ3R,OAAO8R,WAAWj2G,GACpC8sG,EAASkJ,EAAQ9O,IAAI8O,EAAQ9O,IAAI5qI,OAAS,GAM9C,OALc,MAAVwwI,GAA2C,kBAAlBA,EAAOH,QAAmE,OAA5CG,EAAOH,OAAOG,EAAOH,OAAOrwI,OAAS,KAC9Fw5I,EAAQ3R,OAAOsP,WAAWqC,EAAQvO,YAAc,EAAG,GACnDyO,EAAQliH,OAAO,IAEPiiH,EAAQxI,QAAQyI,EAE5B,GAAGz5I,EACL,GACC,CACDE,IAAK,eACLW,MAAO,SAAsBquB,EAAOnvB,EAAQC,GAC1C,GAAa,MAATkvB,EACF5U,KAAKgtH,UAAUwP,SAAS,KAAM/2I,GAAUysI,EAAM6K,QAAQC,SACjD,CACL,IAAIqC,EAAc7E,EAAS5lH,EAAOnvB,EAAQC,GAEtC45I,EAAcp4I,EAAem4I,EAAa,GAE9CzqH,EAAQ0qH,EAAY,GACpB75I,EAAS65I,EAAY,GACrB55I,EAAS45I,EAAY,GAErBt/H,KAAKgtH,UAAUwP,SAAS,IAAI1B,EAAWyE,MAAM3qH,EAAOnvB,GAASC,GACzDA,IAAWk1I,EAAUtrE,QAAQytE,QAAQK,QACvCp9H,KAAKgtH,UAAU6P,eAAe78H,KAAK6vH,mBAEvC,CACF,GACC,CACDjqI,IAAK,UACLW,MAAO,SAAiB28D,GACtB,IAAIx9D,EAASF,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKo1I,EAAUtrE,QAAQytE,QAAQC,IAEvG7zG,GAAQ,IAAI6vG,EAAa1pE,SAAUwmE,OAAO5yE,GAC9C,OAAOljD,KAAKivH,YAAY9lG,EAAOzjC,EACjC,GACC,CACDE,IAAK,SACLW,MAAO,WACL,IAAIb,EAASF,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKo1I,EAAUtrE,QAAQytE,QAAQyC,KAEvGvC,EAASj9H,KAAK4wH,OAAO7/H,OAAOrL,GAEhC,OADAsa,KAAKgtH,UAAUj8H,OAAOrL,GACfu3I,CACT,GACC,CACDr3I,IAAK,iBACLW,MAAO,SAAwB4iC,GAC7B,IAAIs2G,EAAUz/H,KAEVta,EAASF,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKo1I,EAAUtrE,QAAQytE,QAAQC,IAE3G,OAAOb,EAAOl1I,KAAK+Y,MAAM,WAEvB,OADAmpB,EAAQ,IAAI6vG,EAAa1pE,QAAQnmC,GAC1Bs2G,EAAQnS,OAAO8R,WAAWj2G,EAAOzjC,EAC1C,GAAGA,GAAQ,EACb,KAGKwsI,CACT,CA/eY,GAugBZ,SAASuI,EAAaU,EAAWuE,GAS/B,IARAA,GAAa,EAAI3G,EAASzpE,UAAS,EAAM,CACvC6rE,UAAWA,EACXxL,QAAS,CACPa,WAAW,EACXiL,UAAU,EACVE,SAAS,IAEV+D,IACa3P,OAAS2P,EAAW3P,QAAUmC,EAAMyN,SAAS5P,OAI3D,GADA2P,EAAW3P,MAAQmC,EAAM0N,OAAO,UAAYF,EAAW3P,OAC/B,MAApB2P,EAAW3P,MACb,MAAM,IAAI1lI,MAAM,iBAAmBq1I,EAAW3P,MAAQ,+BAJxD2P,EAAW3P,MAAQkL,EAAQ3rE,QAO7B,IAAIuwE,GAAc,EAAI9G,EAASzpE,UAAS,EAAM,CAAC,EAAGowE,EAAW3P,MAAM4P,UACnE,CAACE,EAAaH,GAAY/5I,SAAQ,SAAU4nB,GAC1CA,EAAOoiH,QAAUpiH,EAAOoiH,SAAW,CAAC,EACpC/qI,OAAOD,KAAK4oB,EAAOoiH,SAAShqI,SAAQ,SAAU+S,IACb,IAA3B6U,EAAOoiH,QAAQj3H,KACjB6U,EAAOoiH,QAAQj3H,GAAU,CAAC,EAE9B,GACF,IACA,IACIonI,EADcl7I,OAAOD,KAAKk7I,EAAYlQ,SAASjhI,OAAO9J,OAAOD,KAAK+6I,EAAW/P,UAClDvhI,QAAO,SAAUmf,EAAQ9kB,GACtD,IAAIs3I,EAAc7N,EAAM0N,OAAO,WAAan3I,GAM5C,OALmB,MAAfs3I,EACF7E,EAAM3lI,MAAM,eAAiB9M,EAAO,4CAEpC8kB,EAAO9kB,GAAQs3I,EAAYJ,UAAY,CAAC,EAEnCpyH,CACT,GAAG,CAAC,GAmBJ,OAjB0B,MAAtBmyH,EAAW/P,SAAmB+P,EAAW/P,QAAQqQ,SAAWN,EAAW/P,QAAQqQ,QAAQ35I,cAAgBzB,SACzG86I,EAAW/P,QAAQqQ,QAAU,CAC3B7E,UAAWuE,EAAW/P,QAAQqQ,UAGlCN,GAAa,EAAI3G,EAASzpE,UAAS,EAAM,CAAC,EAAG4iE,EAAMyN,SAAU,CAAEhQ,QAASmQ,GAAgBD,EAAaH,GACrG,CAAC,SAAU,YAAa,sBAAsB/5I,SAAQ,SAAUC,GAC/B,kBAApB85I,EAAW95I,KACpB85I,EAAW95I,GAAO6rC,SAASwuG,cAAcP,EAAW95I,IAExD,IACA85I,EAAW/P,QAAU/qI,OAAOD,KAAK+6I,EAAW/P,SAASvhI,QAAO,SAAUmf,EAAQ9kB,GAI5E,OAHIi3I,EAAW/P,QAAQlnI,KACrB8kB,EAAO9kB,GAAQi3I,EAAW/P,QAAQlnI,IAE7B8kB,CACT,GAAG,CAAC,GACGmyH,CACT,CAIA,SAASvD,EAAO+D,EAAUx6I,EAAQkvB,EAAOzR,GACvC,GAAInD,KAAK/R,QAAQkyI,SAAWngI,KAAKuZ,aAAe7zB,IAAWk1I,EAAUtrE,QAAQytE,QAAQyC,KACnF,OAAO,IAAIxG,EAAa1pE,QAE1B,IAAI+mC,EAAiB,MAATzhF,EAAgB,KAAO5U,KAAKi5F,eACpCmnC,EAAWpgI,KAAKstH,OAAOnkG,MACvB8zG,EAASiD,IAUb,GATa,MAAT7pC,KACY,IAAVzhF,IAAgBA,EAAQyhF,EAAMzhF,OACrB,MAATzR,EACFkzF,EAAQgqC,EAAWhqC,EAAO4mC,EAAQv3I,GACf,IAAVyd,IACTkzF,EAAQgqC,EAAWhqC,EAAOzhF,EAAOzR,EAAOzd,IAE1Csa,KAAK2wH,aAAat6B,EAAOukC,EAAUtrE,QAAQytE,QAAQK,SAEjDH,EAAOx3I,SAAW,EAAG,CACvB,IAAI66I,EAKEC,EAHF/gG,EAAO,CAACo7F,EAAUtrE,QAAQjgD,OAAOwsH,YAAaoB,EAAQmD,EAAU16I,IACnE46I,EAAWtgI,KAAKwrB,SAAShF,KAAKphC,MAAMk7I,EAAU,CAAC1F,EAAUtrE,QAAQjgD,OAAOusH,eAAeltI,OAAO8wC,IAC3F95C,IAAWk1I,EAAUtrE,QAAQytE,QAAQK,SAGtCmD,EAAYvgI,KAAKwrB,SAAShF,KAAKphC,MAAMm7I,EAAW/gG,EAErD,CACA,OAAOy9F,CACT,CAEA,SAASzC,EAAS5lH,EAAOnvB,EAAQgD,EAAMlC,EAAOb,GAC5C,IAAIgqI,EAAU,CAAC,EAwBf,MAvB2B,kBAAhB96G,EAAMA,OAA8C,kBAAjBA,EAAMnvB,OAE5B,kBAAXA,GACTC,EAASa,EAAOA,EAAQkC,EAAMA,EAAOhD,EAAQA,EAASmvB,EAAMnvB,OAAQmvB,EAAQA,EAAMA,QAElFnvB,EAASmvB,EAAMnvB,OAAQmvB,EAAQA,EAAMA,OAEZ,kBAAXnvB,IAChBC,EAASa,EAAOA,EAAQkC,EAAMA,EAAOhD,EAAQA,EAAS,GAGY,YAA/C,qBAATgD,EAAuB,YAAcxC,EAAQwC,KACvDinI,EAAUjnI,EACV/C,EAASa,GACgB,kBAATkC,IACH,MAATlC,EACFmpI,EAAQjnI,GAAQlC,EAEhBb,EAAS+C,GAKN,CAACmsB,EAAOnvB,EAAQiqI,EADvBhqI,EAASA,GAAUk1I,EAAUtrE,QAAQytE,QAAQC,IAE/C,CAEA,SAASqD,EAAWhqC,EAAOzhF,EAAOnvB,EAAQC,GACxC,GAAa,MAAT2wG,EAAe,OAAO,KAC1B,IAAIh2C,OAAQ,EACRphB,OAAM,EACV,GAAIrqB,aAAiBokH,EAAa1pE,QAAS,CACzC,IAAIkxE,EAAO,CAACnqC,EAAMzhF,MAAOyhF,EAAMzhF,MAAQyhF,EAAM5wG,QAAQk1B,KAAI,SAAUqjC,GACjE,OAAOppC,EAAMijH,kBAAkB75E,EAAKt4D,IAAWk1I,EAAUtrE,QAAQytE,QAAQyC,KAC3E,IAEIiB,EAAQv5I,EAAes5I,EAAM,GAEjCngF,EAAQogF,EAAM,GACdxhG,EAAMwhG,EAAM,EACd,KAAO,CACL,IAAIC,EAAQ,CAACrqC,EAAMzhF,MAAOyhF,EAAMzhF,MAAQyhF,EAAM5wG,QAAQk1B,KAAI,SAAUqjC,GAClE,OAAIA,EAAMppC,GAASopC,IAAQppC,GAASlvB,IAAWk1I,EAAUtrE,QAAQytE,QAAQyC,KAAaxhF,EAClFv4D,GAAU,EACLu4D,EAAMv4D,EAEN4c,KAAK+tB,IAAIxb,EAAOopC,EAAMv4D,EAEjC,IAEIk7I,EAAQz5I,EAAew5I,EAAO,GAElCrgF,EAAQsgF,EAAM,GACd1hG,EAAM0hG,EAAM,EACd,CACA,OAAO,IAAI7F,EAAWyE,MAAMl/E,EAAOphB,EAAMohB,EAC3C,CAxKA6xE,EAAMyN,SAAW,CACflQ,OAAQ,KACRC,QAAS,KACTC,QAAS,CAAC,EACVC,YAAa,GACbvB,UAAU,EACVwB,mBAAoB,KACpBsQ,QAAQ,EACRpQ,MAAO,WAETmC,EAAM7iH,OAASurH,EAAUtrE,QAAQjgD,OACjC6iH,EAAM6K,QAAUnC,EAAUtrE,QAAQytE,QAElC7K,EAAMxiI,QAA2B,QAEjCwiI,EAAMoK,QAAU,CACd,MAAStD,EAAa1pE,QACtB,UAAa2pE,EAAY3pE,QACzB,cAAeurE,EAASvrE,QACxB,aAAc2rE,EAAQ3rE,SAuJxBhrE,EAAQm2I,aAAeA,EACvBn2I,EAAQk2I,SAAWA,EACnBl2I,EAAQgrE,QAAU4iE,CAEX,WAESx5H,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAAIkyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAIrek9D,EAAS5pE,EAFD4iE,EAAoB,IAM5B6G,EAAczpE,EAFD4iE,EAAoB,IAIrC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAQ9F,IAAI2tI,EAAS,SAAU+M,GAGrB,SAAS/M,IAGP,OAZJ,SAAyBh4B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAM6zH,GAR1B,SAAoCt1H,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAO6zH,EAAOluE,WAAa/gE,OAAOioD,eAAegnF,IAASzuI,MAAM4a,KAAMxa,WAC1G,CAyCA,OAlDF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAU1F,EAAQ+M,GAQlBnI,EAAa5E,EAAQ,CAAC,CACpBjuI,IAAK,WACLW,MAAO,SAAkBquB,EAAOnvB,EAAQgD,EAAMlC,GAC5C,GAAIstI,EAAO9pE,QAAQ/pD,KAAKq6H,QAAQ7E,SAAU/sI,GAAQ,GAAKwwI,EAAY3pE,QAAQ/mD,MAAM9f,EAAMwwI,EAAY3pE,QAAQ+jE,MAAMwN,MAAO,CACtH,IAAIxL,EAAOr1H,KAAK8gI,QAAQlsH,EAAOnvB,GAC3Bc,GACF8uI,EAAK0L,KAAKt4I,EAAMlC,EAEpB,MACEsyI,EAAKhF,EAAOvtI,UAAUq/D,WAAa/gE,OAAOioD,eAAegnF,EAAOvtI,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM4U,EAAOnvB,EAAQgD,EAAMlC,EAElI,GACC,CACDX,IAAK,WACLW,MAAO,SAAkButC,GAEvB,GADA+kG,EAAKhF,EAAOvtI,UAAUq/D,WAAa/gE,OAAOioD,eAAegnF,EAAOvtI,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM8zB,GACrG9zB,KAAK84H,kBAAkBjF,GAAUA,EAAO9pE,QAAQ/pD,KAAKq6H,QAAQ7E,SAAUx1H,KAAK84H,OAAOuB,QAAQ7E,UAAY,EAAG,CAC5G,IAAIsD,EAAS94H,KAAK84H,OAAOgI,QAAQ9gI,KAAKkD,SAAUlD,KAAKva,UACrDua,KAAKghI,aAAalI,GAClBA,EAAOiI,KAAK/gI,KACd,CACF,IACE,CAAC,CACHpa,IAAK,UACLW,MAAO,SAAiBgY,EAAMg2E,GAC5B,IAAI0sD,EAAYpN,EAAO5vC,MAAMp9F,QAAQ0X,GACjC2iI,EAAarN,EAAO5vC,MAAMp9F,QAAQ0tF,GACtC,OAAI0sD,GAAa,GAAKC,GAAc,EAC3BD,EAAYC,EACV3iI,IAASg2E,EACX,EACEh2E,EAAOg2E,GACR,EAED,CAEX,KAGKs/C,CACT,CAjDa,CAiDXoF,EAAY3pE,QAAQukE,QAEtBA,EAAO0G,gBAAkB,CAAC1G,EAAQoF,EAAY3pE,QAAQqkE,MAAOyF,EAAO9pE,SAEpEukE,EAAO5vC,MAAQ,CAAC,SAAU,SAC1B,YAAa,SAAU,SAAU,OAAQ,SAAU,OAAQ,QAG3D3/F,EAAQgrE,QAAUukE,CAEX,WAESn7H,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAIgCL,EAJ5Bi7I,EAAa/O,EAAoB,GAYjCgP,EAAW,SAAUC,GAGvB,SAASD,IAGP,OAZJ,SAAyBvlC,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMohI,GAR1B,SAAoC7iI,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAOohI,EAASz7E,WAAa/gE,OAAOioD,eAAeu0F,IAAWh8I,MAAM4a,KAAMxa,WAC9G,CAEA,OAXF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAU6H,EAAUC,GAQbD,CACT,CAVe,GARiBl7I,EAFSi7I,IAEYj7I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IAkBzEopE,QAAQwkE,MAEtBxvI,EAAQgrE,QAAU8xE,CAEX,WAES1oI,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAAIkyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAIreolE,EAAiB9xE,EAFD4iE,EAAoB,KAQxC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAQ9F,IAAIg1I,GAAQ,EAVG1rE,EAFD4iE,EAAoB,KAYT9iE,SAAS,gBAErB,CAAC,kBAAmB,YAAa,UAAW,SAElD3pE,SAAQ,SAAU45C,GACvB9N,SAAS5F,iBAAiB0T,GAAW,WACnC,IAAK,IAAIqsF,EAAOpmI,UAAUC,OAAQ+5C,EAAOh4C,MAAMokI,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3EtsF,EAAKssF,GAAQtmI,UAAUsmI,GAGzB,GAAGtjI,MAAMvB,KAAKwqC,SAAS6nF,iBAAiB,kBAAkB3zH,SAAQ,SAAUyF,GAGxE,IAAIm2I,EADFn2I,EAAKkwI,SAAWlwI,EAAKkwI,QAAQ9vG,UAG9B+1G,EAAwBn2I,EAAKkwI,QAAQ9vG,SAASg2G,UAAUp8I,MAAMm8I,EAAuB/hG,EAE1F,GACF,GACF,IAEA,IAAIiiG,EAAU,SAAUC,GAGtB,SAASD,KA9BX,SAAyB5lC,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CA+BpJuwI,CAAgBr5H,KAAMyhI,GAEtB,IAAI1jB,EA/BR,SAAoCx/G,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CA+B/NqyI,CAA2Bt5H,MAAOyhI,EAAQ97E,WAAa/gE,OAAOioD,eAAe40F,IAAUx6I,KAAK+Y,OAIxG,OAFA+9G,EAAMz8E,UAAY,CAAC,EACnBy8E,EAAM1xH,GAAG,QAAS6uI,EAAM3lI,OACjBwoH,CACT,CAkCA,OApEF,SAAmByb,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAwB3eF,CAAUkI,EAASC,GAYnBjJ,EAAagJ,EAAS,CAAC,CACrB77I,IAAK,OACLW,MAAO,WACL20I,EAAMtxG,IAAIxkC,MAAM81I,EAAO11I,WACvBqzI,EAAK4I,EAAQn7I,UAAUq/D,WAAa/gE,OAAOioD,eAAe40F,EAAQn7I,WAAY,OAAQ0Z,MAAM5a,MAAM4a,KAAMxa,UAC1G,GACC,CACDI,IAAK,YACLW,MAAO,SAAmBsF,GACxB,IAAK,IAAImgI,EAAQxmI,UAAUC,OAAQ+5C,EAAOh4C,MAAMwkI,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACpGzsF,EAAKysF,EAAQ,GAAKzmI,UAAUymI,IAG7BjsH,KAAKshC,UAAUz1C,EAAM8H,OAAS,IAAIhO,SAAQ,SAAUwK,GACnD,IAAI/E,EAAO+E,EAAK/E,KACZqjE,EAAUt+D,EAAKs+D,SAEf5iE,EAAMvG,SAAW8F,GAAQA,EAAKy9E,SAASh9E,EAAMvG,UAC/CmpE,EAAQrpE,WAAM2J,EAAW,CAAClD,GAAO6C,OAAO8wC,GAE5C,GACF,GACC,CACD55C,IAAK,YACLW,MAAO,SAAmBg5C,EAAWn0C,EAAMqjE,GACpCzuD,KAAKshC,UAAU/B,KAClBv/B,KAAKshC,UAAU/B,GAAa,IAE9Bv/B,KAAKshC,UAAU/B,GAAWp6C,KAAK,CAAEiG,KAAMA,EAAMqjE,QAASA,GACxD,KAGKgzE,CACT,CA9Cc,CA8CZH,EAAehyE,SAEjBmyE,EAAQpyH,OAAS,CACfusH,cAAe,gBACf+F,qBAAsB,uBACtBC,gBAAiB,kBACjB5F,cAAe,gBACf6F,iBAAkB,mBAClBhG,YAAa,eAEf4F,EAAQ1E,QAAU,CAChBC,IAAK,MACLI,OAAQ,SACRoC,KAAM,QAGRl7I,EAAQgrE,QAAUmyE,CAEX,WAES/oI,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAKT,IAAIu7I,EAAS,SAASA,EAAOC,GAC3B,IAAI9zI,EAAUzI,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAHrF,SAAyBq2G,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAKtJuwI,CAAgBr5H,KAAM8hI,GAEtB9hI,KAAK+hI,MAAQA,EACb/hI,KAAK/R,QAAUA,CACjB,EAEA6zI,EAAOnC,SAAW,CAAC,EAEnBr7I,EAAQgrE,QAAUwyE,CAEX,WAESppI,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAET,IAAIy7I,EAAS,CAAC,QAAS,OAAQ,MAAO,QAClC3F,EAAQ,OAEZ,SAASnB,EAAM5wG,GACb,GAAI03G,EAAOn7I,QAAQyjC,IAAW03G,EAAOn7I,QAAQw1I,GAAQ,CAGnD,IAFA,IAAI4F,EAEKrW,EAAOpmI,UAAUC,OAAQ+5C,EAAOh4C,MAAMokI,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC9FtsF,EAAKssF,EAAO,GAAKtmI,UAAUsmI,IAG5BmW,EAAWzzI,SAAS87B,GAAQllC,MAAM68I,EAAUziG,EAC/C,CACF,CAEA,SAASmzB,EAAUuvE,GACjB,OAAOF,EAAO5zI,QAAO,SAAU0c,EAAQwf,GAErC,OADAxf,EAAOwf,GAAU4wG,EAAMhqE,KAAK1iE,QAAS87B,EAAQ43G,GACtCp3H,CACT,GAAG,CAAC,EACN,CAEAowH,EAAMmB,MAAQ1pE,EAAU0pE,MAAQ,SAAU8F,GACxC9F,EAAQ8F,CACV,EAEA79I,EAAQgrE,QAAUqD,CAEX,WAESj6D,EAAQpU,EAAS8tI,GAEjC,IAAIgQ,EAAS56I,MAAMlB,UAAUkC,MACzB65I,EAAajQ,EAAoB,IACjCh/C,EAAcg/C,EAAoB,IAElCkQ,EAAY5pI,EAAOpU,QAAU,SAAU2hE,EAAQtlB,EAAUqf,GAG3D,OAFKA,IAAMA,EAAO,CAAC,GAEfiG,IAAWtlB,IAGJslB,aAAkB71C,MAAQuwB,aAAoBvwB,KAChD61C,EAAO/1C,YAAcywB,EAASzwB,WAI3B+1C,IAAWtlB,GAA6B,iBAAVslB,GAAyC,iBAAZtlB,EAC9Dqf,EAAKmgF,OAASl6E,IAAWtlB,EAAWslB,GAAUtlB,EA0BzD,SAAkBx/B,EAAGC,EAAG4+C,GACtB,IAAIz6D,EAAGK,EACP,GAAI28I,EAAkBphI,IAAMohI,EAAkBnhI,GAC5C,OAAO,EAET,GAAID,EAAE7a,YAAc8a,EAAE9a,UAAW,OAAO,EAGxC,GAAI8sF,EAAYjyE,GACd,QAAKiyE,EAAYhyE,KAGjBD,EAAIihI,EAAOn7I,KAAKka,GAChBC,EAAIghI,EAAOn7I,KAAKma,GACTkhI,EAAUnhI,EAAGC,EAAG4+C,IAEzB,GAAIpgC,EAASze,GAAI,CACf,IAAKye,EAASxe,GACZ,OAAO,EAET,GAAID,EAAE1b,SAAW2b,EAAE3b,OAAQ,OAAO,EAClC,IAAKF,EAAI,EAAGA,EAAI4b,EAAE1b,OAAQF,IACxB,GAAI4b,EAAE5b,KAAO6b,EAAE7b,GAAI,OAAO,EAE5B,OAAO,CACT,CACA,IACE,IAAIq3F,EAAKylD,EAAWlhI,GAChBogF,EAAK8gD,EAAWjhI,EACtB,CAAE,MAAO7K,GACP,OAAO,CACT,CAGA,GAAIqmF,EAAGn3F,QAAU87F,EAAG97F,OAClB,OAAO,EAKT,IAHAm3F,EAAGpkD,OACH+oD,EAAG/oD,OAEEjzC,EAAIq3F,EAAGn3F,OAAS,EAAGF,GAAK,EAAGA,IAC9B,GAAIq3F,EAAGr3F,IAAMg8F,EAAGh8F,GACd,OAAO,EAIX,IAAKA,EAAIq3F,EAAGn3F,OAAS,EAAGF,GAAK,EAAGA,IAE9B,GADAK,EAAMg3F,EAAGr3F,IACJ+8I,EAAUnhI,EAAEvb,GAAMwb,EAAExb,GAAMo6D,GAAO,OAAO,EAE/C,cAAc7+C,WAAaC,CAC7B,CApEWohI,CAASv8E,EAAQtlB,EAAUqf,GAEtC,EAEA,SAASuiF,EAAkBh8I,GACzB,OAAiB,OAAVA,QAA4BwI,IAAVxI,CAC3B,CAEA,SAASq5B,EAAU52B,GACjB,SAAKA,GAAkB,kBAANA,GAAsC,kBAAbA,EAAEvD,SACtB,oBAAXuD,EAAE8jB,MAA0C,oBAAZ9jB,EAAER,SAGzCQ,EAAEvD,OAAS,GAAqB,kBAATuD,EAAE,GAE/B,CAwDO,WAES0P,EAAQpU,EAAS8tI,GAEjC,aAEAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAI4sI,EAAWf,EAAoB,GAC/B2B,EAA4B,WAC5B,SAASA,EAAW0B,EAAU57F,EAAS5rC,QACnB,IAAZA,IAAsBA,EAAU,CAAC,GACrC+R,KAAKy1H,SAAWA,EAChBz1H,KAAK65B,QAAUA,EACf,IAAI4oG,EAAetP,EAASE,MAAM4B,KAAO9B,EAASE,MAAMqP,UACnC,MAAjBz0I,EAAQ4nD,MAER71C,KAAK61C,MAAS5nD,EAAQ4nD,MAAQs9E,EAASE,MAAMuB,MAAS6N,EAGtDziI,KAAK61C,MAAQs9E,EAASE,MAAMqP,UAEP,MAArBz0I,EAAQutI,YACRx7H,KAAKw7H,UAAYvtI,EAAQutI,UACjC,CAmCA,OAlCAzH,EAAWpvI,KAAO,SAAUyG,GACxB,MAAO,GAAGuvB,IAAI1zB,KAAKmE,EAAKi4D,YAAY,SAAU9nB,GAC1C,OAAOA,EAAK9yC,IAChB,GACJ,EACAsrI,EAAWztI,UAAUq9B,IAAM,SAAUv4B,EAAM7E,GACvC,QAAKyZ,KAAK2iI,OAAOv3I,EAAM7E,KAEvB6E,EAAK6lF,aAAajxE,KAAK65B,QAAStzC,IACzB,EACX,EACAwtI,EAAWztI,UAAUq8I,OAAS,SAAUv3I,EAAM7E,GAE1C,OAAa,MADD4sI,EAAS5qH,MAAMnd,EAAM+nI,EAASE,MAAMwN,MAAQ7gI,KAAK61C,MAAQs9E,EAASE,MAAM4B,SAG9D,MAAlBj1H,KAAKw7H,YAEY,kBAAVj1I,EACAyZ,KAAKw7H,UAAU30I,QAAQN,EAAM0f,QAAQ,QAAS,MAAQ,EAGtDjG,KAAKw7H,UAAU30I,QAAQN,IAAU,GAEhD,EACAwtI,EAAWztI,UAAU+xB,OAAS,SAAUjtB,GACpCA,EAAK25D,gBAAgB/kD,KAAK65B,QAC9B,EACAk6F,EAAWztI,UAAUC,MAAQ,SAAU6E,GACnC,IAAI7E,EAAQ6E,EAAK63D,aAAajjD,KAAK65B,SACnC,OAAI75B,KAAK2iI,OAAOv3I,EAAM7E,IAAUA,EACrBA,EAEJ,EACX,EACOwtI,CACX,CAnDgC,GAoDhCzvI,EAAQgrE,QAAUykE,CAGX,WAESr7H,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQgrE,QAAUhrE,EAAQ8yC,UAAOroC,EAEjC,IAAI7H,EAAgb,SAAUC,EAAK5B,GAAK,GAAIiC,MAAMC,QAAQN,GAAQ,OAAOA,EAAY,GAAIhB,OAAOC,YAAYxB,OAAOuC,GAAQ,OAAxf,SAAuBA,EAAK5B,GAAK,IAAIsC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWH,OAAKmH,EAAW,IAAM,IAAK,IAAiCpH,EAA7BD,EAAKP,EAAIhB,OAAOC,cAAmB0B,GAAMH,EAAKD,EAAGM,QAAQC,QAAoBJ,EAAK1C,KAAKwC,EAAGpB,QAAYhB,GAAKsC,EAAKpC,SAAWF,GAA3DuC,GAAK,GAAkE,CAAE,MAAOI,GAAOH,GAAK,EAAMH,EAAKM,CAAK,CAAE,QAAU,KAAWJ,GAAMJ,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAAuH6yI,CAAcvzI,EAAK5B,GAAa,MAAM,IAAIuD,UAAU,uDAA2D,EAE7oB2vI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAIre88D,EAAexpE,EAFD4iE,EAAoB,IAMlC6G,EAAczpE,EAFD4iE,EAAoB,IAMjCwQ,EAAUpzE,EAFD4iE,EAAoB,IAM7B+G,EAAW3pE,EAFD4iE,EAAoB,IAM9BgH,EAAS5pE,EAFD4iE,EAAoB,IAIhC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F,SAASmzI,EAAgBx9B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAExJ,SAASwwI,EAA2B/6H,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAE/O,SAASsyI,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAE7e,IAAIriG,EAAO,SAAUyrG,GAGnB,SAASzrG,IAGP,OAFAiiG,EAAgBr5H,KAAMo3B,GAEfkiG,EAA2Bt5H,MAAOo3B,EAAKuuB,WAAa/gE,OAAOioD,eAAezV,IAAOhyC,MAAM4a,KAAMxa,WACtG,CAEA,OARA+zI,EAAUniG,EAAMyrG,GAQTzrG,CACT,CAVW,CAUT+hG,EAAS7pE,SAEXl4B,EAAKo+F,SAAW,OAChBp+F,EAAKmrB,QAAU,OAEf,IAAIugF,EAAY,SAAUC,GAGxB,SAASD,IAGP,OAFAzJ,EAAgBr5H,KAAM8iI,GAEfxJ,EAA2Bt5H,MAAO8iI,EAAUn9E,WAAa/gE,OAAOioD,eAAei2F,IAAY19I,MAAM4a,KAAMxa,WAChH,CA4HA,OAlIA+zI,EAAUuJ,EAAWC,GAQrBtK,EAAaqK,EAAW,CAAC,CACvBl9I,IAAK,QACLW,MAAO,WACL,IAAIk2I,EAASz8H,KAETkjD,EAAOljD,KAAK/K,QAAQ0tD,YAKxB,OAJIO,EAAKnoB,SAAS,QAEhBmoB,EAAOA,EAAK16D,MAAM,GAAI,IAEjB06D,EAAK57C,MAAM,MAAMlZ,QAAO,SAAU+6B,EAAO65G,GAC9C,OAAO75G,EAAM2sG,OAAOkN,GAAMlN,OAAO,KAAM2G,EAAO/M,UAChD,GAAG,IAAIsJ,EAAa1pE,QACtB,GACC,CACD1pE,IAAK,SACLW,MAAO,SAAgBkC,EAAMlC,GAC3B,GAAIkC,IAASuX,KAAKq6H,QAAQ7E,WAAYjvI,EAAtC,CAEA,IAAI08I,EAAcjjI,KAAKkjI,WAAW9J,EAAO9pE,QAAStvD,KAAKva,SAAW,GAE9Dy9D,EADeh8D,EAAe+7I,EAAa,GACvB,GAEZ,MAAR//E,GACFA,EAAKigF,SAASjgF,EAAKz9D,SAAW,EAAG,GAEnCozI,EAAKiK,EAAUx8I,UAAUq/D,WAAa/gE,OAAOioD,eAAei2F,EAAUx8I,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,KAAMvX,EAAMlC,EAThE,CAUrD,GACC,CACDX,IAAK,WACLW,MAAO,SAAkBquB,EAAOnvB,EAAQgD,EAAMlC,GAC5C,GAAe,IAAXd,GACoE,MAApEwzI,EAAY3pE,QAAQ/mD,MAAM9f,EAAMwwI,EAAY3pE,QAAQ+jE,MAAMwB,SAAkBpsI,IAASuX,KAAKq6H,QAAQ7E,UAAYjvI,IAAUyZ,KAAKq6H,QAAQ3K,QAAQ1vH,KAAK/K,UAAtJ,CAGA,IAAImuI,EAAcpjI,KAAKqjI,aAAazuH,GACpC,KAAIwuH,EAAc,GAAKA,GAAexuH,EAAQnvB,GAA9C,CACA,IAAI69I,EAActjI,KAAKqjI,aAAazuH,GAAO,GAAQ,EAC/C2uH,EAAgBH,EAAcE,EAAc,EAC5CjO,EAAOr1H,KAAK8gI,QAAQwC,EAAaC,GACjCv7I,EAAOqtI,EAAKrtI,KAChBqtI,EAAK5sH,OAAOhgB,EAAMlC,GACdyB,aAAgB86I,GAClB96I,EAAKw7I,SAAS,EAAG5uH,EAAQ0uH,EAAc79I,EAAS89I,EAAe96I,EAAMlC,EAPX,CAF5D,CAWF,GACC,CACDX,IAAK,WACLW,MAAO,SAAkBquB,EAAOruB,EAAOqzI,GACrC,GAAW,MAAPA,EAAJ,CAEA,IAAI6J,EAAezjI,KAAKkjI,WAAW9J,EAAO9pE,QAAS16C,GAC/C8uH,EAAex8I,EAAeu8I,EAAc,GAC5CvgF,EAAOwgF,EAAa,GACpBxgI,EAASwgI,EAAa,GAE1BxgF,EAAK22E,SAAS32H,EAAQ3c,EAPC,CAQzB,GACC,CACDX,IAAK,SACLW,MAAO,WACL,IAAId,EAASua,KAAK/K,QAAQ0tD,YAAYl9D,OACtC,OAAKua,KAAK/K,QAAQ0tD,YAAY5nB,SAAS,MAGhCt1C,EAFEA,EAAS,CAGpB,GACC,CACDG,IAAK,eACLW,MAAO,SAAsBo9I,GAG3B,GAFcn+I,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,IAAmBA,UAAU,GAM3E,OAAOwa,KAAK/K,QAAQ0tD,YAAYn6D,MAAM,EAAGm7I,GAAat8E,YAAY,MAHlE,IAAInkD,EAASlD,KAAK/K,QAAQ0tD,YAAYn6D,MAAMm7I,GAAa98I,QAAQ,MACjE,OAAOqc,GAAU,EAAIygI,EAAczgI,GAAU,CAIjD,GACC,CACDtd,IAAK,WACLW,MAAO,SAAkButC,GAClB9zB,KAAK/K,QAAQ0tD,YAAY5nB,SAAS,OACrC/6B,KAAKu6D,YAAY0+D,EAAY3pE,QAAQl6D,OAAO,OAAQ,OAEtDyjI,EAAKiK,EAAUx8I,UAAUq/D,WAAa/gE,OAAOioD,eAAei2F,EAAUx8I,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM8zB,GAC/G,IAAI9rC,EAAOgY,KAAKhY,KACJ,MAARA,GAAgBA,EAAKmsE,OAASn0D,MAAQhY,EAAKqyI,QAAQ7E,WAAax1H,KAAKq6H,QAAQ7E,UAAYx1H,KAAKq6H,QAAQ3K,QAAQ1vH,KAAK/K,WAAajN,EAAKqyI,QAAQ3K,QAAQ1nI,EAAKiN,WAC5JjN,EAAK47I,SAAS9vG,GACd9rC,EAAKg5I,aAAahhI,MAClBhY,EAAKqwB,SAET,GACC,CACDzyB,IAAK,UACLW,MAAO,SAAiBjB,GACtBuzI,EAAKiK,EAAUx8I,UAAUq/D,WAAa/gE,OAAOioD,eAAei2F,EAAUx8I,WAAY,UAAW0Z,MAAM/Y,KAAK+Y,KAAM1a,GAC9G,GAAGkD,MAAMvB,KAAK+Y,KAAK/K,QAAQqkH,iBAAiB,MAAM3zH,SAAQ,SAAUyF,GAClE,IAAIiqI,EAAO4D,EAAY3pE,QAAQgkE,KAAKloI,GACxB,MAARiqI,EACFjqI,EAAK82D,WAAW4/B,YAAY12F,GACnBiqI,aAAgB4D,EAAY3pE,QAAQqkE,MAC7C0B,EAAKh9G,SAELg9G,EAAKwO,QAET,GACF,IACE,CAAC,CACHj+I,IAAK,SACLW,MAAO,SAAgBA,GACrB,IAAI0O,EAAU4jI,EAAKiK,EAAUn9E,WAAa/gE,OAAOioD,eAAei2F,GAAY,SAAU9iI,MAAM/Y,KAAK+Y,KAAMzZ,GAEvG,OADA0O,EAAQg8E,aAAa,cAAc,GAC5Bh8E,CACT,GACC,CACDrP,IAAK,UACLW,MAAO,WACL,OAAO,CACT,KAGKu8I,CACT,CApIgB,CAoIdF,EAAQtzE,SAEVwzE,EAAUtN,SAAW,aACrBsN,EAAUvgF,QAAU,MACpBugF,EAAUgB,IAAM,KAEhBx/I,EAAQ8yC,KAAOA,EACf9yC,EAAQgrE,QAAUwzE,CAEX,WAESpqI,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAAIN,EAA4B,oBAAXE,QAAoD,kBAApBA,OAAOC,SAAwB,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAEvQgB,EAAgb,SAAUC,EAAK5B,GAAK,GAAIiC,MAAMC,QAAQN,GAAQ,OAAOA,EAAY,GAAIhB,OAAOC,YAAYxB,OAAOuC,GAAQ,OAAxf,SAAuBA,EAAK5B,GAAK,IAAIsC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWH,OAAKmH,EAAW,IAAM,IAAK,IAAiCpH,EAA7BD,EAAKP,EAAIhB,OAAOC,cAAmB0B,GAAMH,EAAKD,EAAGM,QAAQC,QAAoBJ,EAAK1C,KAAKwC,EAAGpB,QAAYhB,GAAKsC,EAAKpC,SAAWF,GAA3DuC,GAAK,GAAkE,CAAE,MAAOI,GAAOH,GAAK,EAAMH,EAAKM,CAAK,CAAE,QAAU,KAAWJ,GAAMJ,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAAuH6yI,CAAcvzI,EAAK5B,GAAa,MAAM,IAAIuD,UAAU,uDAA2D,EAE7oB2vI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfM,EAAexpE,EAFD4iE,EAAoB,IAMlC2R,EAAOv0E,EAFD4iE,EAAoB,KAM1B6G,EAAczpE,EAFD4iE,EAAoB,IAMjC4R,EAASx0E,EAFD4iE,EAAoB,KAM5B6R,EAAWz0E,EAFD4iE,EAAoB,KAI9B8R,EAAS9R,EAAoB,GAE7BwQ,EAAUpzE,EAAuB00E,GAIjChL,EAAU1pE,EAFD4iE,EAAoB,KAM7B+R,EAAU30E,EAFD4iE,EAAoB,KAM7BgS,EAAc50E,EAFD4iE,EAAoB,KAMjC2G,EAAWvpE,EAFD4iE,EAAoB,IAIlC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAM9F,IAAIm+I,EAAQ,WAERC,EAAS,WACX,SAASA,EAAO1T,IALlB,SAAyB/0B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAMpJuwI,CAAgBr5H,KAAMskI,GAEtBtkI,KAAK4wH,OAASA,EACd5wH,KAAKmpB,MAAQnpB,KAAKukI,UACpB,CA4PA,OA1PA9L,EAAa6L,EAAQ,CAAC,CACpB1+I,IAAK,aACLW,MAAO,SAAoB4iC,GACzB,IAAI40F,EAAQ/9G,KAERwkI,GAAqB,EACzBxkI,KAAK4wH,OAAO7/H,SACZ,IAAI0zI,EAAezkI,KAAK4wH,OAAOnrI,SAoD/B,OAnDAua,KAAK4wH,OAAO8T,cACZv7G,EAoQN,SAAwBA,GACtB,OAAOA,EAAM/6B,QAAO,SAAU+6B,EAAOwsG,GACnC,GAAkB,IAAdA,EAAGG,OAAc,CACnB,IAAIzyE,GAAa,EAAI8gF,EAAQ70E,SAASqmE,EAAGtyE,YAEzC,cADOA,EAAkB,MAClBl6B,EAAM2sG,OAAO,CAAE6O,MAAOhP,EAAGtyE,WAAWshF,OAASthF,EACtD,CAUA,GATqB,MAAjBsyE,EAAGtyE,aAA8C,IAAvBsyE,EAAGtyE,WAAWroC,OAA0C,IAAzB26G,EAAGtyE,WAAWuhF,UACzEjP,GAAK,EAAIwO,EAAQ70E,SAASqmE,IACnBtyE,WAAWroC,KAChB26G,EAAGtyE,WAAWroC,KAAO,WAErB26G,EAAGtyE,WAAWroC,KAAO,gBACd26G,EAAGtyE,WAAWuhF,SAGA,kBAAdjP,EAAGG,OAAqB,CACjC,IAAI5yE,EAAOyyE,EAAGG,OAAO7vH,QAAQ,QAAS,MAAMA,QAAQ,MAAO,MAC3D,OAAOkjB,EAAM2sG,OAAO5yE,EAAMyyE,EAAGtyE,WAC/B,CACA,OAAOl6B,EAAMhkC,KAAKwwI,EACpB,GAAG,IAAIqD,EAAa1pE,QACtB,CA1Rcu1E,CAAe17G,IACjB/6B,QAAO,SAAUwmB,EAAO+gH,GAC5B,IAAIlwI,EAASkwI,EAAGK,QAAUL,EAAG14G,QAAU04G,EAAGG,OAAOrwI,QAAU,EACvD49D,EAAasyE,EAAGtyE,YAAc,CAAC,EACnC,GAAiB,MAAbsyE,EAAGG,OAAgB,CACrB,GAAyB,kBAAdH,EAAGG,OAAqB,CACjC,IAAI5yE,EAAOyyE,EAAGG,OACV5yE,EAAKnoB,SAAS,OAASypG,IACzBA,GAAqB,EACrBthF,EAAOA,EAAK16D,MAAM,GAAI,IAEpBosB,GAAS6vH,IAAiBvhF,EAAKnoB,SAAS,QAC1CypG,GAAqB,GAEvBzmB,EAAM6S,OAAOiJ,SAASjlH,EAAOsuC,GAE7B,IAAI4hF,EAAe/mB,EAAM6S,OAAO1nG,KAAKtU,GACjCmwH,EAAgB79I,EAAe49I,EAAc,GAC7C57G,EAAO67G,EAAc,GACrB7hI,EAAS6hI,EAAc,GAEvBrV,GAAU,EAAIqJ,EAASzpE,SAAS,CAAC,GAAG,EAAI40E,EAAO1L,eAAetvG,IAClE,GAAIA,aAAgB05G,EAAQtzE,QAAS,CACnC,IAAI01E,EAAmB97G,EAAKg6G,WAAWjK,EAAY3pE,QAAQokE,KAAMxwH,GAE7Dg3H,EADoBhzI,EAAe89I,EAAkB,GAC5B,GAE7BtV,GAAU,EAAIqJ,EAASzpE,SAASogE,GAAS,EAAIwU,EAAO1L,eAAe0B,GACrE,CACA72E,EAAa0gF,EAAKz0E,QAAQjM,WAAWqyE,KAAKhG,EAASrsE,IAAe,CAAC,CACrE,MAAO,GAA2B,WAAvBp9D,EAAQ0vI,EAAGG,QAAsB,CAC1C,IAAIlwI,EAAMhB,OAAOD,KAAKgxI,EAAGG,QAAQ,GACjC,GAAW,MAAPlwI,EAAa,OAAOgvB,EACxBmpG,EAAM6S,OAAOiJ,SAASjlH,EAAOhvB,EAAK+vI,EAAGG,OAAOlwI,GAC9C,CACA6+I,GAAgBh/I,CAClB,CAIA,OAHAb,OAAOD,KAAK0+D,GAAY19D,SAAQ,SAAU8C,GACxCs1H,EAAM6S,OAAO4S,SAAS5uH,EAAOnvB,EAAQgD,EAAM46D,EAAW56D,GACxD,IACOmsB,EAAQnvB,CACjB,GAAG,GACH0jC,EAAM/6B,QAAO,SAAUwmB,EAAO+gH,GAC5B,MAAyB,kBAAdA,EAAG14G,QACZ8gG,EAAM6S,OAAOuS,SAASvuH,EAAO+gH,EAAG14G,QACzBrI,GAEFA,GAAS+gH,EAAGK,QAAUL,EAAGG,OAAOrwI,QAAU,EACnD,GAAG,GACHua,KAAK4wH,OAAOqU,WACLjlI,KAAKjP,OAAOo4B,EACrB,GACC,CACDvjC,IAAK,aACLW,MAAO,SAAoBquB,EAAOnvB,GAEhC,OADAua,KAAK4wH,OAAOuS,SAASvuH,EAAOnvB,GACrBua,KAAKjP,QAAO,IAAIioI,EAAa1pE,SAAU0mE,OAAOphH,GAAOqI,OAAOx3B,GACrE,GACC,CACDG,IAAK,aACLW,MAAO,SAAoBquB,EAAOnvB,GAChC,IAAIu0I,EAASh6H,KAET0vH,EAAUlqI,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAoBnF,OAlBAwa,KAAK4wH,OAAO7/H,SACZnM,OAAOD,KAAK+qI,GAAS/pI,SAAQ,SAAU8iB,GACrC,GAA+B,MAA3BuxH,EAAOpJ,OAAO4K,WAAsBxB,EAAOpJ,OAAO4K,UAAU/yH,GAAhE,CACA,IAAI0xH,EAAQH,EAAOpJ,OAAOuJ,MAAMvlH,EAAOvS,KAAK+tB,IAAI3qC,EAAQ,IACpDy/I,EAAkBz/I,EACtB00I,EAAMx0I,SAAQ,SAAUujC,GACtB,IAAIi8G,EAAaj8G,EAAKzjC,SACtB,GAAMyjC,aAAgB86G,EAAO10E,QAEtB,CACL,IAAI81E,EAAYxwH,EAAQsU,EAAKhmB,OAAO82H,EAAOpJ,QACvCyU,EAAan8G,EAAKm6G,aAAa+B,EAAYF,GAAmBE,EAAY,EAC9El8G,EAAKs6G,SAAS4B,EAAWC,EAAY58H,EAAQinH,EAAQjnH,GACvD,MALEygB,EAAKzgB,OAAOA,EAAQinH,EAAQjnH,IAM9By8H,GAAmBC,CACrB,GAb+E,CAcjF,IACAnlI,KAAK4wH,OAAOgT,WACL5jI,KAAKjP,QAAO,IAAIioI,EAAa1pE,SAAU0mE,OAAOphH,GAAOohH,OAAOvwI,GAAQ,EAAI0+I,EAAQ70E,SAASogE,IAClG,GACC,CACD9pI,IAAK,aACLW,MAAO,SAAoBquB,EAAOnvB,GAChC,IAAIg3I,EAASz8H,KAET0vH,EAAUlqI,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAKnF,OAHAZ,OAAOD,KAAK+qI,GAAS/pI,SAAQ,SAAU8iB,GACrCg0H,EAAO7L,OAAO4S,SAAS5uH,EAAOnvB,EAAQgjB,EAAQinH,EAAQjnH,GACxD,IACOzI,KAAKjP,QAAO,IAAIioI,EAAa1pE,SAAU0mE,OAAOphH,GAAOohH,OAAOvwI,GAAQ,EAAI0+I,EAAQ70E,SAASogE,IAClG,GACC,CACD9pI,IAAK,cACLW,MAAO,SAAqBquB,EAAOnvB,GACjC,OAAOua,KAAKmpB,MAAM3gC,MAAMosB,EAAOA,EAAQnvB,EACzC,GACC,CACDG,IAAK,WACLW,MAAO,WACL,OAAOyZ,KAAK4wH,OAAOuJ,QAAQ/rI,QAAO,SAAU+6B,EAAOD,GACjD,OAAOC,EAAMz6B,OAAOw6B,EAAKC,QAC3B,GAAG,IAAI6vG,EAAa1pE,QACtB,GACC,CACD1pE,IAAK,YACLW,MAAO,SAAmBquB,GACxB,IAAInvB,EAASD,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,EAE7E20I,EAAQ,GACRmL,EAAS,GACE,IAAX7/I,EACFua,KAAK4wH,OAAOlpH,KAAKkN,GAAOjvB,SAAQ,SAAU+hB,GACxC,IACI2tH,EADQnuI,EAAewgB,EAAM,GAChB,GAEb2tH,aAAgBuN,EAAQtzE,QAC1B6qE,EAAMh1I,KAAKkwI,GACFA,aAAgB4D,EAAY3pE,QAAQokE,MAC7C4R,EAAOngJ,KAAKkwI,EAEhB,KAEA8E,EAAQn6H,KAAK4wH,OAAOuJ,MAAMvlH,EAAOnvB,GACjC6/I,EAAStlI,KAAK4wH,OAAOqJ,YAAYhB,EAAY3pE,QAAQokE,KAAM9+G,EAAOnvB,IAEpE,IAAI8/I,EAAa,CAACpL,EAAOmL,GAAQ3qH,KAAI,SAAU6qH,GAC7C,GAAqB,IAAjBA,EAAM//I,OAAc,MAAO,CAAC,EAEhC,IADA,IAAIiqI,GAAU,EAAIwU,EAAO1L,eAAegN,EAAMriI,SACvCve,OAAOD,KAAK+qI,GAASjqI,OAAS,GAAG,CACtC,IAAI4vI,EAAOmQ,EAAMriI,QACjB,GAAY,MAARkyH,EAAc,OAAO3F,EACzBA,EAAU+V,GAAe,EAAIvB,EAAO1L,eAAenD,GAAO3F,EAC5D,CACA,OAAOA,CACT,IACA,OAAOqJ,EAASzpE,QAAQlqE,MAAM2zI,EAASzpE,QAASi2E,EAClD,GACC,CACD3/I,IAAK,UACLW,MAAO,SAAiBquB,EAAOnvB,GAC7B,OAAOua,KAAK6uH,YAAYj6G,EAAOnvB,GAAQV,QAAO,SAAU4wI,GACtD,MAA4B,kBAAdA,EAAGG,MACnB,IAAGn7G,KAAI,SAAUg7G,GACf,OAAOA,EAAGG,MACZ,IAAGxhH,KAAK,GACV,GACC,CACD1uB,IAAK,cACLW,MAAO,SAAqBquB,EAAO4wE,EAAOj/F,GAExC,OADAyZ,KAAK4wH,OAAOiJ,SAASjlH,EAAO4wE,EAAOj/F,GAC5ByZ,KAAKjP,QAAO,IAAIioI,EAAa1pE,SAAU0mE,OAAOphH,GAAOkhH,OAnLlE,SAAyB5vI,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAmLvIL,CAAgB,CAAC,EAAG2/F,EAAOj/F,IAChG,GACC,CACDX,IAAK,aACLW,MAAO,SAAoBquB,EAAOsuC,GAChC,IAAI45E,EAAS98H,KAET0vH,EAAUlqI,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAOnF,OALA09D,EAAOA,EAAKj9C,QAAQ,QAAS,MAAMA,QAAQ,MAAO,MAClDjG,KAAK4wH,OAAOiJ,SAASjlH,EAAOsuC,GAC5Bt+D,OAAOD,KAAK+qI,GAAS/pI,SAAQ,SAAU8iB,GACrCq0H,EAAOlM,OAAO4S,SAAS5uH,EAAOsuC,EAAKz9D,OAAQgjB,EAAQinH,EAAQjnH,GAC7D,IACOzI,KAAKjP,QAAO,IAAIioI,EAAa1pE,SAAU0mE,OAAOphH,GAAOkhH,OAAO5yE,GAAM,EAAIihF,EAAQ70E,SAASogE,IAChG,GACC,CACD9pI,IAAK,UACLW,MAAO,WACL,GAAmC,GAA/ByZ,KAAK4wH,OAAOvgI,SAAS5K,OAAa,OAAO,EAC7C,GAAIua,KAAK4wH,OAAOvgI,SAAS5K,OAAS,EAAG,OAAO,EAC5C,IAAIwd,EAAQjD,KAAK4wH,OAAOvgI,SAASwgF,KACjC,OAAI5tE,EAAMo3H,QAAQ7E,WAAaoN,EAAQtzE,QAAQkmE,YAC3CvyH,EAAM5S,SAAS5K,OAAS,IACrBwd,EAAM5S,SAASwgF,gBAAgBqoD,EAAQ5pE,OAChD,GACC,CACD1pE,IAAK,eACLW,MAAO,SAAsBquB,EAAOnvB,GAClC,IAAIy9D,EAAOljD,KAAKgxH,QAAQp8G,EAAOnvB,GAE3BigJ,EAAgB1lI,KAAK4wH,OAAO1nG,KAAKtU,EAAQnvB,GACzCkgJ,EAAgBz+I,EAAew+I,EAAe,GAC9Cx8G,EAAOy8G,EAAc,GACrBziI,EAASyiI,EAAc,GAEvBC,EAAe,EACfjsG,EAAS,IAAIq/F,EAAa1pE,QAClB,MAARpmC,IAIA08G,EAHI18G,aAAgB86G,EAAO10E,QAGZpmC,EAAKm6G,aAAangI,GAAUA,EAAS,EAFrCgmB,EAAKzjC,SAAWyd,EAIjCy2B,EAASzQ,EAAKC,QAAQ3gC,MAAM0a,EAAQA,EAAS0iI,EAAe,GAAG9P,OAAO,OAExE,IACIJ,EADW11H,KAAK6uH,YAAYj6G,EAAOnvB,EAASmgJ,GAC5BlQ,MAAK,IAAIsD,EAAa1pE,SAAUwmE,OAAO5yE,GAAMx0D,OAAOirC,IACpExQ,GAAQ,IAAI6vG,EAAa1pE,SAAU0mE,OAAOphH,GAAOlmB,OAAOgnI,GAC5D,OAAO11H,KAAKo/H,WAAWj2G,EACzB,GACC,CACDvjC,IAAK,SACLW,MAAO,SAAgB02I,GACrB,IAAIhB,EAAYz2I,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,GAChFqgJ,EAAcrgJ,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,QAAKuJ,EAElFqxI,EAAWpgI,KAAKmpB,MACpB,GAAyB,IAArB8yG,EAAUx2I,QAAsC,kBAAtBw2I,EAAU,GAAGtoI,MAA4BsoI,EAAU,GAAG32I,OAAOia,KAAK2G,MAAMm+H,IAAUpL,EAAY3pE,QAAQgkE,KAAK2I,EAAU,GAAG32I,QAAS,CAE7J,IAAIwgJ,EAAW7M,EAAY3pE,QAAQgkE,KAAK2I,EAAU,GAAG32I,QACjDoqI,GAAU,EAAIwU,EAAO1L,eAAesN,GACpClxH,EAAQkxH,EAAS5iI,OAAOlD,KAAK4wH,QAC7BmV,EAAW9J,EAAU,GAAG8J,SAAS9/H,QAAQg+H,EAAS30E,QAAQ02E,SAAU,IACpEC,GAAU,IAAIjN,EAAa1pE,SAAUwmE,OAAOiQ,GAC5CG,GAAU,IAAIlN,EAAa1pE,SAAUwmE,OAAOgQ,EAASv/I,SAEzD02I,GADgB,IAAIjE,EAAa1pE,SAAU0mE,OAAOphH,GAAOlmB,OAAOu3I,EAAQvQ,KAAKwQ,EAASL,IACnEz3I,QAAO,SAAU+6B,EAAOwsG,GACzC,OAAIA,EAAGG,OACE3sG,EAAM2sG,OAAOH,EAAGG,OAAQpG,GAExBvmG,EAAMhkC,KAAKwwI,EAEtB,GAAG,IAAIqD,EAAa1pE,SACpBtvD,KAAKmpB,MAAQi3G,EAAS1J,QAAQuG,EAChC,MACEj9H,KAAKmpB,MAAQnpB,KAAKukI,WACbtH,IAAW,EAAImH,EAAY90E,SAAS8wE,EAAS1J,QAAQuG,GAASj9H,KAAKmpB,SACtE8zG,EAASmD,EAAS1K,KAAK11H,KAAKmpB,MAAO08G,IAGvC,OAAO5I,CACT,KAGKqH,CACT,CAnQa,GAqQb,SAASmB,EAAe/V,EAASyW,GAC/B,OAAOvhJ,OAAOD,KAAKwhJ,GAAU/3I,QAAO,SAAUs/E,EAAQjlF,GACpD,OAAqB,MAAjBinI,EAAQjnI,KACR09I,EAAS19I,KAAUinI,EAAQjnI,GAC7BilF,EAAOjlF,GAAQ09I,EAAS19I,GACfjB,MAAMC,QAAQ0+I,EAAS19I,IAC5B09I,EAAS19I,GAAM5B,QAAQ6oI,EAAQjnI,IAAS,IAC1CilF,EAAOjlF,GAAQ09I,EAAS19I,GAAMiG,OAAO,CAACghI,EAAQjnI,MAGhDilF,EAAOjlF,GAAQ,CAAC09I,EAAS19I,GAAOinI,EAAQjnI,KARRilF,CAWpC,GAAG,CAAC,EACN,CA0BAppF,EAAQgrE,QAAUg1E,CAEX,WAES5rI,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQgrE,QAAUhrE,EAAQi7I,WAAQxwI,EAElC,IAAI7H,EAAgb,SAAUC,EAAK5B,GAAK,GAAIiC,MAAMC,QAAQN,GAAQ,OAAOA,EAAY,GAAIhB,OAAOC,YAAYxB,OAAOuC,GAAQ,OAAxf,SAAuBA,EAAK5B,GAAK,IAAIsC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWH,OAAKmH,EAAW,IAAM,IAAK,IAAiCpH,EAA7BD,EAAKP,EAAIhB,OAAOC,cAAmB0B,GAAMH,EAAKD,EAAGM,QAAQC,QAAoBJ,EAAK1C,KAAKwC,EAAGpB,QAAYhB,GAAKsC,EAAKpC,SAAWF,GAA3DuC,GAAK,GAAkE,CAAE,MAAOI,GAAOH,GAAK,EAAMH,EAAKM,CAAK,CAAE,QAAU,KAAWJ,GAAMJ,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAAuH6yI,CAAcvzI,EAAK5B,GAAa,MAAM,IAAIuD,UAAU,uDAA2D,EAE7oB2vI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfO,EAAczpE,EAFD4iE,EAAoB,IAMjC+R,EAAU30E,EAFD4iE,EAAoB,KAM7BgS,EAAc50E,EAFD4iE,EAAoB,KAMjCwI,EAAYprE,EAFA4iE,EAAoB,IAQpC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F,SAASkgJ,EAAmBj/I,GAAO,GAAIK,MAAMC,QAAQN,GAAM,CAAE,IAAK,IAAI5B,EAAI,EAAGsD,EAAOrB,MAAML,EAAI1B,QAASF,EAAI4B,EAAI1B,OAAQF,IAAOsD,EAAKtD,GAAK4B,EAAI5B,GAAM,OAAOsD,CAAM,CAAS,OAAOrB,MAAMkB,KAAKvB,EAAQ,CAElM,SAASkyI,EAAgBx9B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAExJ,IAAIoyI,GAAQ,EARG1rE,EAFD4iE,EAAoB,KAUT9iE,SAAS,mBAE9BiwE,EAAQ,SAASA,EAAM3qH,GACzB,IAAInvB,EAASD,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,EAEjF6zI,EAAgBr5H,KAAMu/H,GAEtBv/H,KAAK4U,MAAQA,EACb5U,KAAKva,OAASA,CAChB,EAEI4gJ,EAAY,WACd,SAASA,EAAUzV,EAAQplG,GACzB,IAAIuyF,EAAQ/9G,KAEZq5H,EAAgBr5H,KAAMqmI,GAEtBrmI,KAAKwrB,QAAUA,EACfxrB,KAAK4wH,OAASA,EACd5wH,KAAKsmI,WAAY,EACjBtmI,KAAKumI,WAAY,EACjBvmI,KAAKy6E,KAAOz6E,KAAK4wH,OAAO37H,QACxB+K,KAAKwmI,OAASvN,EAAY3pE,QAAQl6D,OAAO,SAAU4K,MAEnDA,KAAKk8H,UAAYl8H,KAAKymI,WAAa,IAAIlH,EAAM,EAAG,GAChDv/H,KAAK0mI,oBACL1mI,KAAK2mI,iBACL3mI,KAAKwrB,QAAQo7G,UAAU,kBAAmBn1G,UAAU,WAC7CssF,EAAMwoB,WACT99G,WAAWs1F,EAAMhtH,OAAOmgE,KAAK6sD,EAAO6c,EAAUtrE,QAAQytE,QAAQyC,MAAO,EAEzE,IACAx/H,KAAKwrB,QAAQn/B,GAAGuuI,EAAUtrE,QAAQjgD,OAAOusH,eAAe,SAAUjoI,EAAMw1B,GAClEx1B,IAASinI,EAAUtrE,QAAQjgD,OAAOwsH,aAAe1yG,EAAM1jC,SAAW,GACpEs4H,EAAMhtH,OAAO6pI,EAAUtrE,QAAQytE,QAAQK,OAE3C,IACAp9H,KAAKwrB,QAAQn/B,GAAGuuI,EAAUtrE,QAAQjgD,OAAOsyH,sBAAsB,WAC7D,GAAK5jB,EAAMsgB,WAAX,CACA,IAAIwI,EAAS9oB,EAAM+oB,iBACL,MAAVD,GACAA,EAAOxmF,MAAMj1D,OAAS2yH,EAAMyoB,OAAOO,UAEvChpB,EAAMvyF,QAAQqjC,KAAK+rE,EAAUtrE,QAAQjgD,OAAO2sH,eAAe,WACzD,IACEje,EAAMipB,eAAeH,EAAOxmF,MAAMj1D,KAAMy7I,EAAOxmF,MAAMn9C,OAAQ2jI,EAAO5nG,IAAI7zC,KAAMy7I,EAAO5nG,IAAI/7B,OAC3F,CAAE,MAAO+jI,GAAU,CACrB,GAT6B,CAU/B,IACAjnI,KAAKwrB,QAAQn/B,GAAGuuI,EAAUtrE,QAAQjgD,OAAOuyH,iBAAiB,SAAU3F,EAAWnoG,GAC7E,GAAIA,EAAQuiE,MAAO,CACjB,IAAI6wC,EAAiBpzG,EAAQuiE,MACzB8wC,EAAYD,EAAeC,UAC3BC,EAAcF,EAAeE,YAC7BC,EAAUH,EAAeG,QACzBC,EAAYJ,EAAeI,UAE/BvpB,EAAMipB,eAAeG,EAAWC,EAAaC,EAASC,EACxD,CACF,IACAtnI,KAAKjP,OAAO6pI,EAAUtrE,QAAQytE,QAAQK,OACxC,CA6WA,OA3WA3E,EAAa4N,EAAW,CAAC,CACvBzgJ,IAAK,oBACLW,MAAO,WACL,IAAIyzI,EAASh6H,KAEbA,KAAKy6E,KAAK5uD,iBAAiB,oBAAoB,WAC7CmuG,EAAOsM,WAAY,CACrB,IACAtmI,KAAKy6E,KAAK5uD,iBAAiB,kBAAkB,WAE3C,GADAmuG,EAAOsM,WAAY,EACftM,EAAOwM,OAAO1N,OAAQ,CACxB,IAAIziC,EAAQ2jC,EAAOwM,OAAOe,UAC1B,IAAKlxC,EAAO,OACZ5tE,YAAW,WACTuxG,EAAOgN,eAAe3wC,EAAM8wC,UAAW9wC,EAAM+wC,YAAa/wC,EAAMgxC,QAAShxC,EAAMixC,UACjF,GAAG,EACL,CACF,GACF,GACC,CACD1hJ,IAAK,iBACLW,MAAO,WACL,IAAIk2I,EAASz8H,KAEbA,KAAKwrB,QAAQo7G,UAAU,YAAan1G,SAASxR,MAAM,WACjDw8G,EAAO8J,WAAY,CACrB,IACAvmI,KAAKwrB,QAAQo7G,UAAU,UAAWn1G,SAASxR,MAAM,WAC/Cw8G,EAAO8J,WAAY,EACnB9J,EAAO1rI,OAAO6pI,EAAUtrE,QAAQytE,QAAQyC,KAC1C,GACF,GACC,CACD55I,IAAK,QACLW,MAAO,WACDyZ,KAAKq+H,aACTr+H,KAAKy6E,KAAKuf,QACVh6F,KAAKw8H,SAASx8H,KAAKymI,YACrB,GACC,CACD7gJ,IAAK,SACLW,MAAO,SAAgBihJ,EAASjhJ,GAC9B,GAA6B,MAAzByZ,KAAK4wH,OAAO4K,WAAsBx7H,KAAK4wH,OAAO4K,UAAUgM,GAA5D,CACAxnI,KAAK4wH,OAAO7/H,SACZ,IAAI02I,EAAcznI,KAAK8mI,iBACvB,GAAmB,MAAfW,GAAwBA,EAAYZ,OAAOa,YAAazO,EAAY3pE,QAAQ/mD,MAAMi/H,EAASvO,EAAY3pE,QAAQ+jE,MAAMwB,OAAzH,CACA,GAAI4S,EAAYpnF,MAAMj1D,OAAS4U,KAAKwmI,OAAOO,SAAU,CACnD,IAAI1R,EAAO4D,EAAY3pE,QAAQgkE,KAAKmU,EAAYpnF,MAAMj1D,MAAM,GAC5D,GAAY,MAARiqI,EAAc,OAElB,GAAIA,aAAgB4D,EAAY3pE,QAAQokE,KAAM,CAC5C,IAAIiU,EAAQtS,EAAK/tH,MAAMmgI,EAAYpnF,MAAMn9C,QACzCmyH,EAAKyD,OAAOx+D,aAAat6D,KAAKwmI,OAAQmB,EACxC,MACEtS,EAAK/6D,aAAat6D,KAAKwmI,OAAQiB,EAAYpnF,MAAMj1D,MAEnD4U,KAAKwmI,OAAOoB,QACd,CACA5nI,KAAKwmI,OAAO/9H,OAAO++H,EAASjhJ,GAC5ByZ,KAAK4wH,OAAOgT,WACZ5jI,KAAKgnI,eAAehnI,KAAKwmI,OAAOO,SAAU/mI,KAAKwmI,OAAOO,SAASxnI,KAAK9Z,QACpEua,KAAKjP,QAhBkI,CAH3D,CAoB9E,GACC,CACDnL,IAAK,YACLW,MAAO,SAAmBquB,GACxB,IAAInvB,EAASD,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,EAE7Ei/I,EAAezkI,KAAK4wH,OAAOnrI,SAC/BmvB,EAAQvS,KAAK8tB,IAAIvb,EAAO6vH,EAAe,GACvCh/I,EAAS4c,KAAK8tB,IAAIvb,EAAQnvB,EAAQg/I,EAAe,GAAK7vH,EACtD,IAAIxpB,OAAO,EACPy8I,EAAe7nI,KAAK4wH,OAAOsJ,KAAKtlH,GAChCkzH,EAAgB5gJ,EAAe2gJ,EAAc,GAC7C3N,EAAO4N,EAAc,GACrB5kI,EAAS4kI,EAAc,GAC3B,GAAY,MAAR5N,EAAc,OAAO,KAEzB,IAAI6N,EAAiB7N,EAAKp4H,SAASoB,GAAQ,GAEvC8kI,EAAkB9gJ,EAAe6gJ,EAAgB,GAErD38I,EAAO48I,EAAgB,GACvB9kI,EAAS8kI,EAAgB,GAEzB,IAAI3xC,EAAQ5kE,SAAS+nE,cACrB,GAAI/zG,EAAS,EAAG,CACd4wG,EAAMoD,SAASruG,EAAM8X,GAErB,IAAI+kI,EAAgBjoI,KAAK4wH,OAAOsJ,KAAKtlH,EAAQnvB,GAEzCyiJ,EAAgBhhJ,EAAe+gJ,EAAe,GAKlD,GAHA/N,EAAOgO,EAAc,GACrBhlI,EAASglI,EAAc,GAEX,MAARhO,EAAc,OAAO,KAEzB,IAAIiO,EAAkBjO,EAAKp4H,SAASoB,GAAQ,GAExCklI,EAAkBlhJ,EAAeihJ,EAAiB,GAMtD,OAJA/8I,EAAOg9I,EAAgB,GACvBllI,EAASklI,EAAgB,GAEzB/xC,EAAMuD,OAAOxuG,EAAM8X,GACZmzF,EAAMunC,uBACf,CACE,IAAIyK,EAAO,OACPC,OAAO,EAeX,OAdIl9I,aAAgB0oI,MACd5wH,EAAS9X,EAAKmU,KAAK9Z,QACrB4wG,EAAMoD,SAASruG,EAAM8X,GACrBmzF,EAAMuD,OAAOxuG,EAAM8X,EAAS,KAE5BmzF,EAAMoD,SAASruG,EAAM8X,EAAS,GAC9BmzF,EAAMuD,OAAOxuG,EAAM8X,GACnBmlI,EAAO,SAETC,EAAOjyC,EAAMunC,0BAEb0K,EAAOpO,EAAKjlI,QAAQ2oI,wBAChB16H,EAAS,IAAGmlI,EAAO,UAElB,CACLxK,OAAQyK,EAAKxuC,IAAMwuC,EAAKv0C,OACxBA,OAAQu0C,EAAKv0C,OACb3mG,KAAMk7I,EAAKD,GACXh7I,MAAOi7I,EAAKD,GACZvuC,IAAKwuC,EAAKxuC,IACVhG,MAAO,EAGb,GACC,CACDluG,IAAK,iBACLW,MAAO,WACL,IAAIymI,EAAYv7F,SAASwnE,eACzB,GAAiB,MAAb+zB,GAAqBA,EAAU7zB,YAAc,EAAG,OAAO,KAC3D,IAAIsuC,EAAcza,EAAUub,WAAW,GACvC,GAAmB,MAAfd,EAAqB,OAAO,KAChC,IAAIpxC,EAAQr2F,KAAKwoI,gBAAgBf,GAEjC,OADAvM,EAAM10F,KAAK,iBAAkB6vD,GACtBA,CACT,GACC,CACDzwG,IAAK,WACLW,MAAO,WACL,IAAIkiJ,EAAazoI,KAAK8mI,iBACtB,OAAkB,MAAd2B,EAA2B,CAAC,KAAM,MAE/B,CADKzoI,KAAK0oI,kBAAkBD,GACpBA,EACjB,GACC,CACD7iJ,IAAK,WACLW,MAAO,WACL,OAAOkrC,SAAS2uD,gBAAkBpgF,KAAKy6E,IACzC,GACC,CACD70F,IAAK,oBACLW,MAAO,SAA2B8vG,GAChC,IAAIymC,EAAS98H,KAET2oI,EAAY,CAAC,CAACtyC,EAAMh2C,MAAMj1D,KAAMirG,EAAMh2C,MAAMn9C,SAC3CmzF,EAAMwwC,OAAOa,WAChBiB,EAAUxjJ,KAAK,CAACkxG,EAAMp3D,IAAI7zC,KAAMirG,EAAMp3D,IAAI/7B,SAE5C,IAAI0lI,EAAUD,EAAUhuH,KAAI,SAAU7Y,GACpC,IAAI+mI,EAAY3hJ,EAAe4a,EAAU,GACrC1W,EAAOy9I,EAAU,GACjB3lI,EAAS2lI,EAAU,GAEnBxT,EAAO4D,EAAY3pE,QAAQgkE,KAAKloI,GAAM,GACtCwpB,EAAQygH,EAAKnyH,OAAO45H,EAAOlM,QAC/B,OAAe,IAAX1tH,EACK0R,EACEygH,aAAgB4D,EAAY3pE,QAAQkkE,UACtC5+G,EAAQygH,EAAK5vI,SAEbmvB,EAAQygH,EAAKzgH,MAAMxpB,EAAM8X,EAEpC,IACI+7B,EAAM58B,KAAK8tB,IAAI9tB,KAAK+tB,IAAIhrC,MAAMid,KAAM+jI,EAAmBwC,IAAW5oI,KAAK4wH,OAAOnrI,SAAW,GACzF46D,EAAQh+C,KAAK8tB,IAAI/qC,MAAMid,KAAM,CAAC48B,GAAKvwC,OAAO03I,EAAmBwC,KACjE,OAAO,IAAIrJ,EAAMl/E,EAAOphB,EAAMohB,EAChC,GACC,CACDz6D,IAAK,kBACLW,MAAO,SAAyBkhJ,GAC9B,IAAK5+D,EAAS7oE,KAAKy6E,KAAMgtD,EAAYqB,kBAAoBrB,EAAYC,YAAc7+D,EAAS7oE,KAAKy6E,KAAMgtD,EAAYsB,cACjH,OAAO,KAET,IAAI1yC,EAAQ,CACVh2C,MAAO,CAAEj1D,KAAMq8I,EAAYqB,eAAgB5lI,OAAQukI,EAAYL,aAC/DnoG,IAAK,CAAE7zC,KAAMq8I,EAAYsB,aAAc7lI,OAAQukI,EAAYH,WAC3DT,OAAQY,GAkBV,MAhBA,CAACpxC,EAAMh2C,MAAOg2C,EAAMp3D,KAAKt5C,SAAQ,SAAUmc,GAGzC,IAFA,IAAI1W,EAAO0W,EAAS1W,KAChB8X,EAASpB,EAASoB,SACb9X,aAAgB0oI,OAAS1oI,EAAK23D,WAAWt9D,OAAS,GACzD,GAAI2F,EAAK23D,WAAWt9D,OAASyd,EAC3B9X,EAAOA,EAAK23D,WAAW7/C,GACvBA,EAAS,MACJ,IAAI9X,EAAK23D,WAAWt9D,SAAWyd,EAIpC,MAFAA,GADA9X,EAAOA,EAAK82F,qBACa4xC,KAAO1oI,EAAKmU,KAAK9Z,OAAS2F,EAAK23D,WAAWt9D,OAAS,CAG9E,CAEFqc,EAAS1W,KAAOA,EAAM0W,EAASoB,OAASA,CAC1C,IACOmzF,CACT,GACC,CACDzwG,IAAK,gBACLW,MAAO,SAAuB8vG,GAC5B,IAAIgnC,EAASr9H,KAET4oI,EAAUvyC,EAAMqxC,UAAY,CAACrxC,EAAMzhF,OAAS,CAACyhF,EAAMzhF,MAAOyhF,EAAMzhF,MAAQyhF,EAAM5wG,QAC9E+5C,EAAO,GACPilG,EAAezkI,KAAK4wH,OAAOnrI,SAoB/B,OAnBAmjJ,EAAQjjJ,SAAQ,SAAUivB,EAAOrvB,GAC/BqvB,EAAQvS,KAAK8tB,IAAIs0G,EAAe,EAAG7vH,GACnC,IAAIxpB,EACA49I,EAAgB3L,EAAOzM,OAAOsJ,KAAKtlH,GACnCq0H,EAAgB/hJ,EAAe8hJ,EAAe,GAC9C9O,EAAO+O,EAAc,GACrB/lI,EAAS+lI,EAAc,GACvBC,EAAkBhP,EAAKp4H,SAASoB,EAAc,IAAN3d,GAExC4jJ,EAAkBjiJ,EAAegiJ,EAAiB,GAEtD99I,EAAO+9I,EAAgB,GACvBjmI,EAASimI,EAAgB,GAEzB3pG,EAAKr6C,KAAKiG,EAAM8X,EAClB,IACIs8B,EAAK/5C,OAAS,IAChB+5C,EAAOA,EAAK9wC,OAAO8wC,IAEdA,CACT,GACC,CACD55C,IAAK,iBACLW,MAAO,SAAwBspI,GAC7B,IAAIx5B,EAAQr2F,KAAKk8H,UACjB,GAAa,MAAT7lC,EAAJ,CACA,IAAIo5B,EAASzvH,KAAKixH,UAAU56B,EAAMzhF,MAAOyhF,EAAM5wG,QAC/C,GAAc,MAAVgqI,EAAJ,CACA,IAAI5iE,EAAQ7sD,KAAK4wH,OAAOnrI,SAAW,EAE/Bq/I,EAAe9kI,KAAK4wH,OAAO1nG,KAAK7mB,KAAK8tB,IAAIkmE,EAAMzhF,MAAOi4C,IAEtD6T,EADgBx5E,EAAe49I,EAAc,GACvB,GAEtBnkE,EAAOD,EACX,GAAI21B,EAAM5wG,OAAS,EAAG,CACpB,IAAIigJ,EAAgB1lI,KAAK4wH,OAAO1nG,KAAK7mB,KAAK8tB,IAAIkmE,EAAMzhF,MAAQyhF,EAAM5wG,OAAQonE,IAI1E8T,EAFoBz5E,EAAew+I,EAAe,GAE7B,EACvB,CACA,GAAa,MAAThlE,GAAyB,MAARC,EAArB,CACA,IAAIyoE,EAAevZ,EAAmB+N,wBAClCnO,EAAO31B,IAAMsvC,EAAatvC,IAC5B+1B,EAAmB91B,WAAaqvC,EAAatvC,IAAM21B,EAAO31B,IACjD21B,EAAOoO,OAASuL,EAAavL,SACtChO,EAAmB91B,WAAa01B,EAAOoO,OAASuL,EAAavL,OALtB,CAff,CAFD,CAwB3B,GACC,CACDj4I,IAAK,iBACLW,MAAO,SAAwB4gJ,EAAWC,GACxC,IAAIC,EAAU7hJ,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK2hJ,EAC9EG,EAAY9hJ,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK4hJ,EAChFhN,EAAQ50I,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,IAAmBA,UAAU,GAG3E,GADA01I,EAAM10F,KAAK,iBAAkB2gG,EAAWC,EAAaC,EAASC,GAC7C,MAAbH,GAA8C,MAAxBnnI,KAAKy6E,KAAKv4B,YAA8C,MAAxBilF,EAAUjlF,YAA4C,MAAtBmlF,EAAQnlF,WAAlG,CAGA,IAAI8qE,EAAYv7F,SAASwnE,eACzB,GAAiB,MAAb+zB,EACJ,GAAiB,MAAbma,EAAmB,CAChBnnI,KAAKq+H,YAAYr+H,KAAKy6E,KAAKuf,QAChC,IAAI6sC,GAAU7mI,KAAK8mI,kBAAoB,CAAC,GAAGD,OAC3C,GAAc,MAAVA,GAAkBzM,GAAS+M,IAAcN,EAAOiC,gBAAkB1B,IAAgBP,EAAOO,aAAeC,IAAYR,EAAOkC,cAAgBzB,IAAcT,EAAOS,UAAW,CAEpJ,MAArBH,EAAU5kF,UACZ6kF,EAAc,GAAGvgJ,QAAQI,KAAKkgJ,EAAUjlF,WAAWa,WAAYokF,GAC/DA,EAAYA,EAAUjlF,YAED,MAAnBmlF,EAAQ9kF,UACV+kF,EAAY,GAAGzgJ,QAAQI,KAAKogJ,EAAQnlF,WAAWa,WAAYskF,GAC3DA,EAAUA,EAAQnlF,YAEpB,IAAIm0C,EAAQ5kE,SAAS+nE,cACrBnD,EAAMoD,SAAS0tC,EAAWC,GAC1B/wC,EAAMuD,OAAOytC,EAASC,GACtBta,EAAUtzB,kBACVszB,EAAUrzB,SAAStD,EACrB,CACF,MACE22B,EAAUtzB,kBACV15F,KAAKy6E,KAAKw3C,OACVxgG,SAASxR,KAAK+5E,OAzBhB,CA2BF,GACC,CACDp0G,IAAK,WACLW,MAAO,SAAkB8vG,GACvB,IAAI+jC,EAAQ50I,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,IAAmBA,UAAU,GACvEE,EAASF,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKo1I,EAAUtrE,QAAQytE,QAAQC,IAO3G,GALqB,kBAAV5C,IACT10I,EAAS00I,EACTA,GAAQ,GAEVc,EAAM10F,KAAK,WAAY6vD,GACV,MAATA,EAAe,CACjB,IAAI72D,EAAOx/B,KAAKqpI,cAAchzC,GAC9Br2F,KAAKgnI,eAAe5hJ,MAAM4a,KAAMomI,EAAmB5mG,GAAM9wC,OAAO,CAAC0rI,IACnE,MACEp6H,KAAKgnI,eAAe,MAEtBhnI,KAAKjP,OAAOrL,EACd,GACC,CACDE,IAAK,SACLW,MAAO,WACL,IAAIb,EAASF,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKo1I,EAAUtrE,QAAQytE,QAAQyC,KAEvG8J,EAAWtpI,KAAKk8H,UAEhBqN,EAAYvpI,KAAKk+H,WACjBsL,EAAatiJ,EAAeqiJ,EAAW,GACvCrN,EAAYsN,EAAW,GACvB/B,EAAc+B,EAAW,GAM7B,GAJAxpI,KAAKk8H,UAAYA,EACK,MAAlBl8H,KAAKk8H,YACPl8H,KAAKymI,WAAazmI,KAAKk8H,aAEpB,EAAIkI,EAAY90E,SAASg6E,EAAUtpI,KAAKk8H,WAAY,CACvD,IAAIoE,GAECtgI,KAAKsmI,WAA4B,MAAfmB,GAAuBA,EAAYZ,OAAOa,WAAaD,EAAYpnF,MAAMj1D,OAAS4U,KAAKwmI,OAAOO,UACnH/mI,KAAKwmI,OAAOe,UAEd,IAGMhH,EAHF/gG,EAAO,CAACo7F,EAAUtrE,QAAQjgD,OAAOwyH,kBAAkB,EAAIsC,EAAQ70E,SAAStvD,KAAKk8H,YAAY,EAAIiI,EAAQ70E,SAASg6E,GAAW5jJ,IAC5H46I,EAAWtgI,KAAKwrB,SAAShF,KAAKphC,MAAMk7I,EAAU,CAAC1F,EAAUtrE,QAAQjgD,OAAOusH,eAAeltI,OAAO8wC,IAC3F95C,IAAWk1I,EAAUtrE,QAAQytE,QAAQK,SAGtCmD,EAAYvgI,KAAKwrB,SAAShF,KAAKphC,MAAMm7I,EAAW/gG,EAErD,CACF,KAGK6mG,CACT,CAhagB,GAkahB,SAASx9D,EAASiwD,EAAQoK,GACxB,IAEEA,EAAWhhF,UACb,CAAE,MAAO3rD,GACP,OAAO,CACT,CAMA,OAHI2sI,aAAsBpP,OACxBoP,EAAaA,EAAWhhF,YAEnB42E,EAAOjwD,SAASq6D,EACzB,CAEA5+I,EAAQi7I,MAAQA,EAChBj7I,EAAQgrE,QAAU+2E,CAEX,WAES3tI,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAQgCL,EAR5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAEreilE,EAAa/O,EAAoB,GAYjCqX,EAAQ,SAAU/P,GAGpB,SAAS+P,IAGP,OAZJ,SAAyB5tC,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMypI,GAR1B,SAAoClrI,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAOypI,EAAM9jF,WAAa/gE,OAAOioD,eAAe48F,IAAQrkJ,MAAM4a,KAAMxa,WACxG,CA4BA,OArCF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAUkQ,EAAO/P,GAQjBjB,EAAagR,EAAO,CAAC,CACnB7jJ,IAAK,aACLW,MAAO,SAAoBuyI,EAAQtsI,GACF,IAA3BssI,EAAOzoI,SAAS5K,OAClBozI,EAAK4Q,EAAMnjJ,UAAUq/D,WAAa/gE,OAAOioD,eAAe48F,EAAMnjJ,WAAY,aAAc0Z,MAAM/Y,KAAK+Y,KAAM84H,EAAQtsI,GAEjHwT,KAAKqY,QAET,GACC,CACDzyB,IAAK,SACLW,MAAO,WACL,OAAO,CACT,GACC,CACDX,IAAK,QACLW,MAAO,WACL,MAAO,EACT,IACE,CAAC,CACHX,IAAK,QACLW,MAAO,WAEP,KAGKkjJ,CACT,CApCY,GARoBvjJ,EAFSi7I,IAEYj7I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IA4CzEopE,QAAQqkE,OAEtB8V,EAAMjU,SAAW,QACjBiU,EAAMlnF,QAAU,KAEhBj+D,EAAQgrE,QAAUm6E,CAEX,WAES/wI,EAAQpU,EAAS8tI,GAEjC,aAEA,IAAIzE,EAAa3tH,MAAQA,KAAK2tH,WAAe,WACzC,IAAIyG,EAAgBxvI,OAAOyvI,gBACtB,CAAE1uE,UAAW,cAAgBn+D,OAAS,SAAUia,EAAGL,GAAKK,EAAEkkD,UAAYvkD,CAAG,GAC1E,SAAUK,EAAGL,GAAK,IAAK,IAAIi4D,KAAKj4D,EAAOA,EAAElY,eAAemwE,KAAI53D,EAAE43D,GAAKj4D,EAAEi4D,GAAI,EAC7E,OAAO,SAAU53D,EAAGL,GAEhB,SAASkzH,IAAOt0H,KAAK3Z,YAAcob,CAAG,CADtC2yH,EAAc3yH,EAAGL,GAEjBK,EAAEnb,UAAkB,OAAN8a,EAAaxc,OAAOwQ,OAAOgM,IAAMkzH,EAAGhuI,UAAY8a,EAAE9a,UAAW,IAAIguI,EACnF,CACJ,CAT6C,GAU7C1vI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAImjJ,EAAgBtX,EAAoB,IACpCuX,EAAWvX,EAAoB,IAC/Be,EAAWf,EAAoB,GAC/BwX,EAA+B,SAAUr6F,GAEzC,SAASq6F,EAAc30I,GACnB,IAAI8oH,EAAQxuE,EAAOtoD,KAAK+Y,KAAM/K,IAAY+K,KAE1C,OADA+9G,EAAM3wF,QACC2wF,CACX,CAuNA,OA5NA4P,EAAUic,EAAer6F,GAMzBq6F,EAActjJ,UAAUi0E,YAAc,SAAUga,GAC5Cv0E,KAAKs6D,aAAaia,EACtB,EACAq1D,EAActjJ,UAAUshJ,OAAS,WAC7Br4F,EAAOjpD,UAAUshJ,OAAO3gJ,KAAK+Y,MAC7BA,KAAK3P,SAAS1K,SAAQ,SAAU68D,GAC5BA,EAAMolF,QACV,GACJ,EACAgC,EAActjJ,UAAU8mC,MAAQ,WAC5B,IAAI2wF,EAAQ/9G,KACZA,KAAK3P,SAAW,IAAIq5I,EAAcp6E,QAElC,GAAG9mE,MACEvB,KAAK+Y,KAAK/K,QAAQ8tD,YAClBmnB,UACAvkF,SAAQ,SAAUyF,GACnB,IACI,IAAIo3D,EAAQqnF,EAASz+I,GACrB2yH,EAAMzjD,aAAa9X,EAAOu7D,EAAM1tH,SAASwgF,WAAQ9hF,EACrD,CACA,MAAO7G,GACH,GAAIA,aAAeirI,EAASoB,eACxB,OAEA,MAAMrsI,CACd,CACJ,GACJ,EACA0hJ,EAActjJ,UAAU68I,SAAW,SAAUvuH,EAAOnvB,GAChD,GAAc,IAAVmvB,GAAenvB,IAAWua,KAAKva,SAC/B,OAAOua,KAAKqY,SAEhBrY,KAAK3P,SAASy5I,UAAUl1H,EAAOnvB,GAAQ,SAAU+8D,EAAOt/C,EAAQzd,GAC5D+8D,EAAM2gF,SAASjgI,EAAQzd,EAC3B,GACJ,EACAmkJ,EAActjJ,UAAU48I,WAAa,SAAU6G,EAAUn1H,GACrD,IAAI3S,EAAKjC,KAAK3P,SAASijI,KAAK1+G,GAAQ4tC,EAAQvgD,EAAG,GAAIiB,EAASjB,EAAG,GAC/D,OAA0B,MAArB8nI,EAASvU,UAAoBuU,EAASvnF,IACjB,MAArBunF,EAASvU,UAAoBhzE,aAAiBunF,EACxC,CAACvnF,EAAOt/C,GAEVs/C,aAAiBonF,EACfpnF,EAAM0gF,WAAW6G,EAAU7mI,GAG3B,CAAC,MAAO,EAEvB,EACA0mI,EAActjJ,UAAU2zI,YAAc,SAAU8P,EAAUn1H,EAAOnvB,QAC/C,IAAVmvB,IAAoBA,EAAQ,QACjB,IAAXnvB,IAAqBA,EAASg1B,OAAOwjH,WACzC,IAAIhE,EAAc,GACd+P,EAAavkJ,EAWjB,OAVAua,KAAK3P,SAASy5I,UAAUl1H,EAAOnvB,GAAQ,SAAU+8D,EAAO5tC,EAAOnvB,IACjC,MAArBskJ,EAASvU,UAAoBuU,EAASvnF,IACjB,MAArBunF,EAASvU,UAAoBhzE,aAAiBunF,IAC/C9P,EAAY90I,KAAKq9D,GAEjBA,aAAiBonF,IACjB3P,EAAcA,EAAYvrI,OAAO8zD,EAAMy3E,YAAY8P,EAAUn1H,EAAOo1H,KAExEA,GAAcvkJ,CAClB,IACOw0I,CACX,EACA2P,EAActjJ,UAAU2jJ,OAAS,WAC7BjqI,KAAK3P,SAAS1K,SAAQ,SAAU68D,GAC5BA,EAAMynF,QACV,IACA16F,EAAOjpD,UAAU2jJ,OAAOhjJ,KAAK+Y,KACjC,EACA4pI,EAActjJ,UAAUk9I,SAAW,SAAU5uH,EAAOnvB,EAAQgD,EAAMlC,GAC9DyZ,KAAK3P,SAASy5I,UAAUl1H,EAAOnvB,GAAQ,SAAU+8D,EAAOt/C,EAAQzd,GAC5D+8D,EAAMghF,SAAStgI,EAAQzd,EAAQgD,EAAMlC,EACzC,GACJ,EACAqjJ,EAActjJ,UAAUuzI,SAAW,SAAUjlH,EAAOruB,EAAOqzI,GACvD,IAAI33H,EAAKjC,KAAK3P,SAASijI,KAAK1+G,GAAQ4tC,EAAQvgD,EAAG,GAAIiB,EAASjB,EAAG,GAC/D,GAAIugD,EACAA,EAAMq3E,SAAS32H,EAAQ3c,EAAOqzI,OAE7B,CACD,IAAIvE,EAAc,MAAPuE,EAAczG,EAAS/9H,OAAO,OAAQ7O,GAAS4sI,EAAS/9H,OAAO7O,EAAOqzI,GACjF55H,KAAKu6D,YAAY86D,EACrB,CACJ,EACAuU,EAActjJ,UAAUg0E,aAAe,SAAU4vE,EAAWC,GACxD,GAAoC,MAAhCnqI,KAAKq6H,QAAQE,kBACZv6H,KAAKq6H,QAAQE,gBAAgB/L,MAAK,SAAUhsE,GACzC,OAAO0nF,aAAqB1nF,CAChC,IACA,MAAM,IAAI2wE,EAASoB,eAAe,iBAAmB2V,EAAU7P,QAAQ7E,SAAW,SAAWx1H,KAAKq6H,QAAQ7E,UAE9G0U,EAAUE,WAAWpqI,KAAMmqI,EAC/B,EACAP,EAActjJ,UAAUb,OAAS,WAC7B,OAAOua,KAAK3P,SAASjC,QAAO,SAAUi8I,EAAM7nF,GACxC,OAAO6nF,EAAO7nF,EAAM/8D,QACxB,GAAG,EACP,EACAmkJ,EAActjJ,UAAU06I,aAAe,SAAUsJ,EAAcz8D,GAC3D7tE,KAAK3P,SAAS1K,SAAQ,SAAU68D,GAC5B8nF,EAAahwE,aAAa9X,EAAOqrB,EACrC,GACJ,EACA+7D,EAActjJ,UAAUs9I,SAAW,SAAU9vG,GAEzC,GADAyb,EAAOjpD,UAAUs9I,SAAS38I,KAAK+Y,KAAM8zB,GACR,IAAzB9zB,KAAK3P,SAAS5K,OACd,GAAiC,MAA7Bua,KAAKq6H,QAAQC,aAAsB,CACnC,IAAI93E,EAAQ2wE,EAAS/9H,OAAO4K,KAAKq6H,QAAQC,cACzCt6H,KAAKu6D,YAAY/X,GACjBA,EAAMohF,SAAS9vG,EACnB,MAEI9zB,KAAKqY,QAGjB,EACAuxH,EAActjJ,UAAUohB,KAAO,SAAUkN,EAAO21H,QAC1B,IAAdA,IAAwBA,GAAY,GACxC,IAAItoI,EAAKjC,KAAK3P,SAASijI,KAAK1+G,EAAO21H,GAAY/nF,EAAQvgD,EAAG,GAAIiB,EAASjB,EAAG,GACtEH,EAAW,CAAC,CAAC9B,KAAM4U,IACvB,OAAI4tC,aAAiBonF,EACV9nI,EAASpT,OAAO8zD,EAAM96C,KAAKxE,EAAQqnI,KAE5B,MAAT/nF,GACL1gD,EAAS3c,KAAK,CAACq9D,EAAOt/C,IAEnBpB,EACX,EACA8nI,EAActjJ,UAAUw7F,YAAc,SAAUt/B,GAC5CxiD,KAAK3P,SAASgoB,OAAOmqC,EACzB,EACAonF,EAActjJ,UAAU2f,QAAU,SAAU3gB,GACpCA,aAAkBskJ,GAClBtkJ,EAAO07I,aAAahhI,MAExBuvC,EAAOjpD,UAAU2f,QAAQhf,KAAK+Y,KAAM1a,EACxC,EACAskJ,EAActjJ,UAAUghB,MAAQ,SAAUsN,EAAOwlH,GAE7C,QADc,IAAVA,IAAoBA,GAAQ,IAC3BA,EAAO,CACR,GAAc,IAAVxlH,EACA,OAAO5U,KACX,GAAI4U,IAAU5U,KAAKva,SACf,OAAOua,KAAKhY,IACpB,CACA,IAAI2/I,EAAQ3nI,KAAKg3D,QAMjB,OALAh3D,KAAK84H,OAAOx+D,aAAaqtE,EAAO3nI,KAAKhY,MACrCgY,KAAK3P,SAASy5I,UAAUl1H,EAAO5U,KAAKva,UAAU,SAAU+8D,EAAOt/C,EAAQzd,GACnE+8D,EAAQA,EAAMl7C,MAAMpE,EAAQk3H,GAC5BuN,EAAMptE,YAAY/X,EACtB,IACOmlF,CACX,EACAiC,EAActjJ,UAAUu9I,OAAS,WAC7B7jI,KAAKghI,aAAahhI,KAAK84H,OAAQ94H,KAAKhY,MACpCgY,KAAKqY,QACT,EACAuxH,EAActjJ,UAAUyK,OAAS,SAAUkrI,EAAWnoG,GAClD,IAAIiqF,EAAQ/9G,KACRwqI,EAAa,GACbC,EAAe,GACnBxO,EAAUt2I,SAAQ,SAAU+kJ,GACpBA,EAASplJ,SAAWy4H,EAAM9oH,SAA6B,cAAlBy1I,EAAS/2I,OAC9C62I,EAAWrlJ,KAAKC,MAAMolJ,EAAYE,EAASF,YAC3CC,EAAatlJ,KAAKC,MAAMqlJ,EAAcC,EAASD,cAEvD,IACAA,EAAa9kJ,SAAQ,SAAUyF,GAI3B,KAAuB,MAAnBA,EAAK82D,YAEY,WAAjB92D,EAAKm3D,SACL9wB,SAASxR,KAAKo4E,wBAAwBjtG,GAAQspI,KAAKiW,gCAHvD,CAMA,IAAItV,EAAOlC,EAASG,KAAKloI,GACb,MAARiqI,IAE2B,MAA3BA,EAAKpgI,QAAQitD,YAAsBmzE,EAAKpgI,QAAQitD,aAAe67D,EAAM9oH,SACrEogI,EAAK4U,SALT,CAOJ,IACAO,EACKzlJ,QAAO,SAAUqG,GAClB,OAAOA,EAAK82D,YAAc67D,EAAM9oH,OACpC,IACKujC,MAAK,SAAUr3B,EAAGC,GACnB,OAAID,IAAMC,EACC,EACPD,EAAEk3F,wBAAwBj3F,GAAKszH,KAAKkW,4BAC7B,GAEH,CACZ,IACKjlJ,SAAQ,SAAUyF,GACnB,IAAI++I,EAAU,KACU,MAApB/+I,EAAK+sG,cACLgyC,EAAUhX,EAASG,KAAKloI,EAAK+sG,cAEjC,IAAIk9B,EAAOwU,EAASz+I,GAChBiqI,EAAKrtI,MAAQmiJ,GAAwB,MAAb9U,EAAKrtI,OACV,MAAfqtI,EAAKyD,QACLzD,EAAKyD,OAAOh3C,YAAYi8B,GAE5BA,EAAMzjD,aAAa+6D,EAAM8U,QAAWp7I,GAE5C,GACJ,EACO66I,CACX,CA9NmC,CA8NjCD,EAASr6E,SACX,SAASu6E,EAASz+I,GACd,IAAIiqI,EAAOlC,EAASG,KAAKloI,GACzB,GAAY,MAARiqI,EACA,IACIA,EAAOlC,EAAS/9H,OAAOhK,EAC3B,CACA,MAAOmL,GACH8+H,EAAOlC,EAAS/9H,OAAO+9H,EAASE,MAAMyB,QACtC,GAAGtsI,MAAMvB,KAAKmE,EAAK23D,YAAYp9D,SAAQ,SAAU68D,GAE7C6yE,EAAKpgI,QAAQslE,YAAY/X,EAC7B,IACIp3D,EAAK82D,YACL92D,EAAK82D,WAAW2oF,aAAaxV,EAAKpgI,QAAS7J,GAE/CiqI,EAAKuS,QACT,CAEJ,OAAOvS,CACX,CACA/wI,EAAQgrE,QAAUs6E,CAGX,WAESlxI,EAAQpU,EAAS8tI,GAEjC,aAEA,IAAIzE,EAAa3tH,MAAQA,KAAK2tH,WAAe,WACzC,IAAIyG,EAAgBxvI,OAAOyvI,gBACtB,CAAE1uE,UAAW,cAAgBn+D,OAAS,SAAUia,EAAGL,GAAKK,EAAEkkD,UAAYvkD,CAAG,GAC1E,SAAUK,EAAGL,GAAK,IAAK,IAAIi4D,KAAKj4D,EAAOA,EAAElY,eAAemwE,KAAI53D,EAAE43D,GAAKj4D,EAAEi4D,GAAI,EAC7E,OAAO,SAAU53D,EAAGL,GAEhB,SAASkzH,IAAOt0H,KAAK3Z,YAAcob,CAAG,CADtC2yH,EAAc3yH,EAAGL,GAEjBK,EAAEnb,UAAkB,OAAN8a,EAAaxc,OAAOwQ,OAAOgM,IAAMkzH,EAAGhuI,UAAY8a,EAAE9a,UAAW,IAAIguI,EACnF,CACJ,CAT6C,GAU7C1vI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAIwsI,EAAeX,EAAoB,IACnCc,EAAUd,EAAoB,IAC9BG,EAAcH,EAAoB,IAClCe,EAAWf,EAAoB,GAC/B0Y,EAA4B,SAAUv7F,GAEtC,SAASu7F,EAAW71I,GAChB,IAAI8oH,EAAQxuE,EAAOtoD,KAAK+Y,KAAM/K,IAAY+K,KAE1C,OADA+9G,EAAM16D,WAAa,IAAI6vE,EAAQ5jE,QAAQyuD,EAAM9oH,SACtC8oH,CACX,CAkDA,OAvDA4P,EAAUmd,EAAYv7F,GAMtBu7F,EAAWpb,QAAU,SAAUz6H,GAC3B,MAA4B,kBAAjB+K,KAAKuiD,UAGP/6D,MAAMC,QAAQuY,KAAKuiD,SACjBttD,EAAQstD,QAAQzjD,mBADtB,EAIT,EACAgsI,EAAWxkJ,UAAUmiB,OAAS,SAAUhgB,EAAMlC,GAC1C,IAAIkiB,EAAS0qH,EAAS5qH,MAAM9f,GACxBggB,aAAkBsqH,EAAazjE,QAC/BtvD,KAAKqjD,WAAW+B,UAAU38C,EAAQliB,GAE7BA,IACS,MAAVkiB,GAAmBhgB,IAASuX,KAAKq6H,QAAQ7E,UAAYx1H,KAAK0vH,UAAUjnI,KAAUlC,GAC9EyZ,KAAK+qI,YAAYtiJ,EAAMlC,GAGnC,EACAukJ,EAAWxkJ,UAAUopI,QAAU,WAC3B,IAAIA,EAAU1vH,KAAKqjD,WAAWloC,SAC1B1S,EAASzI,KAAKq6H,QAAQ3K,QAAQ1vH,KAAK/K,SAIvC,OAHc,MAAVwT,IACAinH,EAAQ1vH,KAAKq6H,QAAQ7E,UAAY/sH,GAE9BinH,CACX,EACAob,EAAWxkJ,UAAUykJ,YAAc,SAAUtiJ,EAAMlC,GAC/C,IAAIykJ,EAAcz7F,EAAOjpD,UAAUykJ,YAAY9jJ,KAAK+Y,KAAMvX,EAAMlC,GAEhE,OADAyZ,KAAKqjD,WAAWv2C,KAAKk+H,GACdA,CACX,EACAF,EAAWxkJ,UAAUyK,OAAS,SAAUkrI,EAAWnoG,GAC/C,IAAIiqF,EAAQ/9G,KACZuvC,EAAOjpD,UAAUyK,OAAO9J,KAAK+Y,KAAMi8H,EAAWnoG,GAC1CmoG,EAAUzN,MAAK,SAAUkc,GACzB,OAAOA,EAASplJ,SAAWy4H,EAAM9oH,SAA6B,eAAlBy1I,EAAS/2I,IACzD,KACIqM,KAAKqjD,WAAWj2B,OAExB,EACA09G,EAAWxkJ,UAAUy6I,KAAO,SAAUt4I,EAAMlC,GACxC,IAAIy8H,EAAUzzE,EAAOjpD,UAAUy6I,KAAK95I,KAAK+Y,KAAMvX,EAAMlC,GAIrD,OAHIy8H,aAAmB8nB,GAAc9nB,EAAQqX,QAAQxkF,QAAU71C,KAAKq6H,QAAQxkF,OACxE71C,KAAKqjD,WAAW4nF,KAAKjoB,GAElBA,CACX,EACO8nB,CACX,CAzDgC,CAyD9BvY,EAAYjjE,SACdhrE,EAAQgrE,QAAUw7E,CAGX,WAESpyI,EAAQpU,EAAS8tI,GAEjC,aAEA,IAAIzE,EAAa3tH,MAAQA,KAAK2tH,WAAe,WACzC,IAAIyG,EAAgBxvI,OAAOyvI,gBACtB,CAAE1uE,UAAW,cAAgBn+D,OAAS,SAAUia,EAAGL,GAAKK,EAAEkkD,UAAYvkD,CAAG,GAC1E,SAAUK,EAAGL,GAAK,IAAK,IAAIi4D,KAAKj4D,EAAOA,EAAElY,eAAemwE,KAAI53D,EAAE43D,GAAKj4D,EAAEi4D,GAAI,EAC7E,OAAO,SAAU53D,EAAGL,GAEhB,SAASkzH,IAAOt0H,KAAK3Z,YAAcob,CAAG,CADtC2yH,EAAc3yH,EAAGL,GAEjBK,EAAEnb,UAAkB,OAAN8a,EAAaxc,OAAOwQ,OAAOgM,IAAMkzH,EAAGhuI,UAAY8a,EAAE9a,UAAW,IAAIguI,EACnF,CACJ,CAT6C,GAU7C1vI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAIojJ,EAAWvX,EAAoB,IAC/Be,EAAWf,EAAoB,GAC/B8Y,EAA0B,SAAU37F,GAEpC,SAAS27F,IACL,OAAkB,OAAX37F,GAAmBA,EAAOnqD,MAAM4a,KAAMxa,YAAcwa,IAC/D,CAsBA,OAzBA2tH,EAAUud,EAAU37F,GAIpB27F,EAAS3kJ,MAAQ,SAAU0O,GACvB,OAAO,CACX,EACAi2I,EAAS5kJ,UAAUsuB,MAAQ,SAAUxpB,EAAM8X,GACvC,OAAIlD,KAAK/K,UAAY7J,GACjB4U,KAAK/K,QAAQojG,wBAAwBjtG,GAAQspI,KAAKiW,+BAC3CtoI,KAAK8tB,IAAIjtB,EAAQ,IAEpB,CACZ,EACAgoI,EAAS5kJ,UAAUwb,SAAW,SAAU8S,EAAO21H,GAC3C,IAAIrnI,EAAS,GAAGrc,QAAQI,KAAK+Y,KAAK84H,OAAO7jI,QAAQ8tD,WAAY/iD,KAAK/K,SAGlE,OAFI2f,EAAQ,IACR1R,GAAU,GACP,CAAClD,KAAK84H,OAAO7jI,QAASiO,EACjC,EACAgoI,EAAS5kJ,UAAUC,MAAQ,WACvB,IAAI0b,EACJ,OAAOA,EAAK,CAAC,GAAMjC,KAAKq6H,QAAQ7E,UAAYx1H,KAAKq6H,QAAQ9zI,MAAMyZ,KAAK/K,WAAY,EAAMgN,CAC1F,EACAipI,EAASr1F,MAAQs9E,EAASE,MAAM8X,YACzBD,CACX,CA3B8B,CA2B5BvB,EAASr6E,SACXhrE,EAAQgrE,QAAU47E,CAGX,WAESxyI,EAAQpU,EAAS8tI,GAEjC,IAAI5V,EAAQ4V,EAAoB,IAC5Bl5B,EAASk5B,EAAoB,GAG7BptH,EAAM,CACRq+C,WAAY,CACVqzE,QAAS,SAAUv1H,EAAGC,EAAGgqI,GACN,kBAANjqI,IAAgBA,EAAI,CAAC,GACf,kBAANC,IAAgBA,EAAI,CAAC,GAChC,IAAIiiD,EAAa61C,GAAO,EAAM,CAAC,EAAG93F,GASlC,IAAK,IAAIxb,KARJwlJ,IACH/nF,EAAaz+D,OAAOD,KAAK0+D,GAAYj1D,QAAO,SAAU0e,EAAMlnB,GAI1D,OAHuB,MAAnBy9D,EAAWz9D,KACbknB,EAAKlnB,GAAOy9D,EAAWz9D,IAElBknB,CACT,GAAG,CAAC,IAEU3L,OACCpS,IAAXoS,EAAEvb,SAAiCmJ,IAAXqS,EAAExb,KAC5By9D,EAAWz9D,GAAOub,EAAEvb,IAGxB,OAAOhB,OAAOD,KAAK0+D,GAAY59D,OAAS,EAAI49D,OAAat0D,CAC3D,EAEA2mI,KAAM,SAASv0H,EAAGC,GACC,kBAAND,IAAgBA,EAAI,CAAC,GACf,kBAANC,IAAgBA,EAAI,CAAC,GAChC,IAAIiiD,EAAaz+D,OAAOD,KAAKwc,GAAGzS,OAAO9J,OAAOD,KAAKyc,IAAIhT,QAAO,SAAUi1D,EAAYz9D,GAIlF,OAHK42H,EAAMr7G,EAAEvb,GAAMwb,EAAExb,MACnBy9D,EAAWz9D,QAAkBmJ,IAAXqS,EAAExb,GAAqB,KAAOwb,EAAExb,IAE7Cy9D,CACT,GAAG,CAAC,GACJ,OAAOz+D,OAAOD,KAAK0+D,GAAY59D,OAAS,EAAI49D,OAAat0D,CAC3D,EAEAwrF,UAAW,SAAUp5E,EAAGC,EAAG6rF,GACzB,GAAiB,kBAAN9rF,EAAgB,OAAOC,EAClC,GAAiB,kBAANA,EAAX,CACA,IAAK6rF,EAAU,OAAO7rF,EACtB,IAAIiiD,EAAaz+D,OAAOD,KAAKyc,GAAGhT,QAAO,SAAUi1D,EAAYz9D,GAE3D,YADemJ,IAAXoS,EAAEvb,KAAoBy9D,EAAWz9D,GAAOwb,EAAExb,IACvCy9D,CACT,GAAG,CAAC,GACJ,OAAOz+D,OAAOD,KAAK0+D,GAAY59D,OAAS,EAAI49D,OAAat0D,CANd,CAO7C,GAGF3I,SAAU,SAAUiqI,GAClB,OAAO,IAAIgb,EAAShb,EACtB,EAEA5qI,OAAQ,SAAUkwI,GAChB,MAA4B,kBAAjBA,EAAW,OACbA,EAAW,OACY,kBAAdA,EAAGK,OACZL,EAAGK,OAEkB,kBAAdL,EAAGG,OAAsBH,EAAGG,OAAOrwI,OAAS,CAE9D,GAIF,SAAS4lJ,EAAShb,GAChBrwH,KAAKqwH,IAAMA,EACXrwH,KAAK4U,MAAQ,EACb5U,KAAKkD,OAAS,CAChB,CAEAmoI,EAAS/kJ,UAAUkwI,QAAU,WAC3B,OAAOx2H,KAAKi3H,aAAetpE,GAC7B,EAEA09E,EAAS/kJ,UAAU0B,KAAO,SAAUvC,GAC7BA,IAAQA,EAASkoE,KACtB,IAAI8oE,EAASz2H,KAAKqwH,IAAIrwH,KAAK4U,OAC3B,GAAI6hH,EAAQ,CACV,IAAIvzH,EAASlD,KAAKkD,OACdq0H,EAAWvyH,EAAIvf,OAAOgxI,GAQ1B,GAPIhxI,GAAU8xI,EAAWr0H,GACvBzd,EAAS8xI,EAAWr0H,EACpBlD,KAAK4U,OAAS,EACd5U,KAAKkD,OAAS,GAEdlD,KAAKkD,QAAUzd,EAEe,kBAArBgxI,EAAe,OACxB,MAAO,CAAE,OAAUhxI,GAEnB,IAAI6lJ,EAAQ,CAAC,EAYb,OAXI7U,EAAOpzE,aACTioF,EAAMjoF,WAAaozE,EAAOpzE,YAEC,kBAAlBozE,EAAOT,OAChBsV,EAAMtV,OAASvwI,EACmB,kBAAlBgxI,EAAOX,OACvBwV,EAAMxV,OAASW,EAAOX,OAAOhzG,OAAO5f,EAAQzd,GAG5C6lJ,EAAMxV,OAASW,EAAOX,OAEjBwV,CAEX,CACE,MAAO,CAAEtV,OAAQroE,IAErB,EAEA09E,EAAS/kJ,UAAUwwI,KAAO,WACxB,OAAO92H,KAAKqwH,IAAIrwH,KAAK4U,MACvB,EAEAy2H,EAAS/kJ,UAAU2wI,WAAa,WAC9B,OAAIj3H,KAAKqwH,IAAIrwH,KAAK4U,OAET5P,EAAIvf,OAAOua,KAAKqwH,IAAIrwH,KAAK4U,QAAU5U,KAAKkD,OAExCyqD,GAEX,EAEA09E,EAAS/kJ,UAAU0wI,SAAW,WAC5B,OAAIh3H,KAAKqwH,IAAIrwH,KAAK4U,OAC8B,kBAAnC5U,KAAKqwH,IAAIrwH,KAAK4U,OAAe,OAC/B,SACyC,kBAAhC5U,KAAKqwH,IAAIrwH,KAAK4U,OAAOohH,OAC9B,SAEA,SAGJ,QACT,EAEAqV,EAAS/kJ,UAAUovC,KAAO,WACxB,GAAK11B,KAAKw2H,UAEH,IAAoB,IAAhBx2H,KAAKkD,OACd,OAAOlD,KAAKqwH,IAAI7nI,MAAMwX,KAAK4U,OAE3B,IAAI1R,EAASlD,KAAKkD,OACd0R,EAAQ5U,KAAK4U,MACb5sB,EAAOgY,KAAKhY,OACZ0tC,EAAO11B,KAAKqwH,IAAI7nI,MAAMwX,KAAK4U,OAG/B,OAFA5U,KAAKkD,OAASA,EACdlD,KAAK4U,MAAQA,EACN,CAAC5sB,GAAM0G,OAAOgnC,EACvB,CAXE,MAAO,EAYX,EAGAh9B,EAAOpU,QAAU0gB,CAGV,WAEStM,EAAQpU,GAExB,IAAI0yE,EAAS,WACb,aAEA,SAASu0E,EAAYrlJ,EAAKyN,GACxB,OAAe,MAARA,GAAgBzN,aAAeyN,CACxC,CAEA,IAAI63I,EASAC,EAOAC,EAfJ,IACEF,EAAYvsE,GACd,CAAE,MAAMzqD,GAGNg3H,EAAY,WAAY,CAC1B,CAGA,IACEC,EAAYrsE,GACd,CAAE,MAAM5qD,GACNi3H,EAAY,WAAY,CAC1B,CAGA,IACEC,EAAgBv8I,OAClB,CAAE,MAAMqlB,GACNk3H,EAAgB,WAAY,CAC9B,CAuBA,SAAS10E,EAAM8hE,EAAQ6S,EAAUC,EAAOtlJ,EAAWulJ,GACzB,kBAAbF,IACTC,EAAQD,EAASC,MACjBtlJ,EAAYqlJ,EAASrlJ,UACrBulJ,EAAuBF,EAASE,qBAChCF,EAAWA,EAASA,UAItB,IAAIG,EAAa,GACbC,EAAc,GAEdC,EAA6B,oBAAV/sI,OA0IvB,MAxIuB,oBAAZ0sI,IACTA,GAAW,GAEO,oBAATC,IACTA,EAAQj+E,KAGV,SAASs+E,EAAOnT,EAAQ8S,GAEtB,GAAe,OAAX9S,EACF,OAAO,KAET,GAAc,IAAV8S,EACF,OAAO9S,EAET,IAAIt2E,EACA0pF,EACJ,GAAqB,iBAAVpT,EACT,OAAOA,EAGT,GAAIyS,EAAYzS,EAAQ0S,GACtBhpF,EAAQ,IAAIgpF,OACP,GAAID,EAAYzS,EAAQ2S,GAC7BjpF,EAAQ,IAAIipF,OACP,GAAIF,EAAYzS,EAAQ4S,GAC7BlpF,EAAQ,IAAIkpF,GAAc,SAAUt8I,EAAS8wC,GAC3C44F,EAAOlsI,MAAK,SAASrG,GACnB6I,EAAQ68I,EAAO1lJ,EAAOqlJ,EAAQ,GAChC,IAAG,SAAS1jJ,GACVg4C,EAAO+rG,EAAO/jJ,EAAK0jJ,EAAQ,GAC7B,GACF,SACK,GAAI50E,EAAMm1E,UAAUrT,GACzBt2E,EAAQ,QACH,GAAIwU,EAAMo1E,WAAWtT,GAC1Bt2E,EAAQ,IAAIz+B,OAAO+0G,EAAOpzI,OAAQ2mJ,EAAiBvT,IAC/CA,EAAOwT,YAAW9pF,EAAM8pF,UAAYxT,EAAOwT,gBAC1C,GAAIt1E,EAAMu1E,SAASzT,GACxBt2E,EAAQ,IAAIpyC,KAAK0oH,EAAO5oH,eACnB,IAAI87H,GAAa/sI,OAAO2gB,SAASk5G,GAStC,OANEt2E,EAFEvjD,OAAO4mD,YAED5mD,OAAO4mD,YAAYizE,EAAOrzI,QAG1B,IAAIwZ,OAAO65H,EAAOrzI,QAE5BqzI,EAAOhsH,KAAK01C,GACLA,EACE+oF,EAAYzS,EAAQzuI,OAC7Bm4D,EAAQ59D,OAAOwQ,OAAO0jI,GAEE,oBAAbxyI,GACT4lJ,EAAQtnJ,OAAOioD,eAAeisF,GAC9Bt2E,EAAQ59D,OAAOwQ,OAAO82I,KAGtB1pF,EAAQ59D,OAAOwQ,OAAO9O,GACtB4lJ,EAAQ5lJ,EAEZ,CAEA,GAAIqlJ,EAAU,CACZ,IAAI/2H,EAAQk3H,EAAWjlJ,QAAQiyI,GAE/B,IAAc,GAAVlkH,EACF,OAAOm3H,EAAYn3H,GAErBk3H,EAAW3mJ,KAAK2zI,GAChBiT,EAAY5mJ,KAAKq9D,EACnB,CAgBA,IAAK,IAAIj9D,KAdLgmJ,EAAYzS,EAAQ0S,IACtB1S,EAAOnzI,SAAQ,SAASY,EAAOX,GAC7B,IAAI4mJ,EAAWP,EAAOrmJ,EAAKgmJ,EAAQ,GAC/Ba,EAAaR,EAAO1lJ,EAAOqlJ,EAAQ,GACvCppF,EAAMhiD,IAAIgsI,EAAUC,EACtB,IAEElB,EAAYzS,EAAQ2S,IACtB3S,EAAOnzI,SAAQ,SAASY,GACtB,IAAImmJ,EAAaT,EAAO1lJ,EAAOqlJ,EAAQ,GACvCppF,EAAM7+B,IAAI+oH,EACZ,IAGY5T,EAAQ,CACpB,IAAI/nD,EACAm7D,IACFn7D,EAAQnsF,OAAOK,yBAAyBinJ,EAAO3mJ,IAG7CwrF,GAAsB,MAAbA,EAAMvwE,MAGnBgiD,EAAMj9D,GAAK0mJ,EAAOnT,EAAOvzI,GAAIqmJ,EAAQ,GACvC,CAEA,GAAIhnJ,OAAOC,sBACT,KAAIC,EAAUF,OAAOC,sBAAsBi0I,GAC3C,IAASvzI,EAAI,EAAGA,EAAIT,EAAQW,OAAQF,IAAK,CAGvC,IAAIuF,EAAShG,EAAQS,MACjB4vC,EAAavwC,OAAOK,yBAAyB6zI,EAAQhuI,KACtCqqC,EAAWjwC,YAAe2mJ,KAG7CrpF,EAAM13D,GAAUmhJ,EAAOnT,EAAOhuI,GAAS8gJ,EAAQ,GAC1Cz2G,EAAWjwC,YACdN,OAAOoB,eAAew8D,EAAO13D,EAAQ,CACnC5F,YAAY,IAGlB,CAfkD,CAkBpD,GAAI2mJ,EACF,KAAIc,EAAmB/nJ,OAAO68E,oBAAoBq3D,GAClD,IAASvzI,EAAI,EAAGA,EAAIonJ,EAAiBlnJ,OAAQF,IAAK,CAChD,IACI4vC,EADA+nD,EAAeyvD,EAAiBpnJ,IAChC4vC,EAAavwC,OAAOK,yBAAyB6zI,EAAQ57C,KACvC/nD,EAAWjwC,aAG7Bs9D,EAAM06B,GAAgB+uD,EAAOnT,EAAO57C,GAAe0uD,EAAQ,GAC3DhnJ,OAAOoB,eAAew8D,EAAO06B,EAAc,CACzCh4F,YAAY,IAEhB,CAXyD,CAc3D,OAAOs9D,CACT,CAEOypF,CAAOnT,EAAQ8S,EACxB,CAoBA,SAASgB,EAAWzkJ,GAClB,OAAOvD,OAAO0B,UAAUiC,SAAStB,KAAKkB,EACxC,CAkBA,SAASkkJ,EAAiBx1C,GACxB,IAAI1O,EAAQ,GAIZ,OAHI0O,EAAGvtC,SAAQ6+B,GAAS,KACpB0O,EAAGg2C,aAAY1kD,GAAS,KACxB0O,EAAGi2C,YAAW3kD,GAAS,KACpBA,CACT,CAGA,OAxCAnxB,EAAM+1E,eAAiB,SAAwBjU,GAC7C,GAAe,OAAXA,EACF,OAAO,KAET,IAAIt3H,EAAI,WAAa,EAErB,OADAA,EAAElb,UAAYwyI,EACP,IAAIt3H,CACb,EAOAw1D,EAAM41E,WAAaA,EAKnB51E,EAAMu1E,SAHN,SAAkBpkJ,GAChB,MAAoB,kBAANA,GAAoC,kBAAlBykJ,EAAWzkJ,EAC7C,EAMA6uE,EAAMm1E,UAHN,SAAmBhkJ,GACjB,MAAoB,kBAANA,GAAoC,mBAAlBykJ,EAAWzkJ,EAC7C,EAMA6uE,EAAMo1E,WAHN,SAAoBjkJ,GAClB,MAAoB,kBAANA,GAAoC,oBAAlBykJ,EAAWzkJ,EAC7C,EAUA6uE,EAAMq1E,iBAAmBA,EAElBr1E,CACP,CA5Pa,GA8PS,kBAAXt+D,GAAuBA,EAAOpU,UACvCoU,EAAOpU,QAAU0yE,EAIZ,WAESt+D,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAAIW,EAAgb,SAAUC,EAAK5B,GAAK,GAAIiC,MAAMC,QAAQN,GAAQ,OAAOA,EAAY,GAAIhB,OAAOC,YAAYxB,OAAOuC,GAAQ,OAAxf,SAAuBA,EAAK5B,GAAK,IAAIsC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWH,OAAKmH,EAAW,IAAM,IAAK,IAAiCpH,EAA7BD,EAAKP,EAAIhB,OAAOC,cAAmB0B,GAAMH,EAAKD,EAAGM,QAAQC,QAAoBJ,EAAK1C,KAAKwC,EAAGpB,QAAYhB,GAAKsC,EAAKpC,SAAWF,GAA3DuC,GAAK,GAAkE,CAAE,MAAOI,GAAOH,GAAK,EAAMH,EAAKM,CAAK,CAAE,QAAU,KAAWJ,GAAMJ,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAAuH6yI,CAAcvzI,EAAK5B,GAAa,MAAM,IAAIuD,UAAU,uDAA2D,EAE7oB2vI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAIre+8D,EAAczpE,EAFD4iE,EAAoB,IAMjCmO,EAAY/wE,EAFD4iE,EAAoB,IAI/B8R,EAAS9R,EAAoB,GAE7BwQ,EAAUpzE,EAAuB00E,GAIjChL,EAAU1pE,EAFD4iE,EAAoB,KAM7B4R,EAASx0E,EAFD4iE,EAAoB,KAM5B4a,EAAcx9E,EAFD4iE,EAAoB,KAIrC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAQ9F,SAAS+mJ,EAAO5X,GACd,OAAOA,aAAgBuN,EAAQtzE,SAAW+lE,aAAgB6O,EAAO3L,UACnE,CAEA,IAAIvlC,EAAS,SAAUk6C,GAGrB,SAASl6C,EAAO/9F,EAASsY,IAb3B,SAAyBsuF,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAcpJuwI,CAAgBr5H,KAAMgzF,GAEtB,IAAI+qB,EAdR,SAAoCx/G,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAc/NqyI,CAA2Bt5H,MAAOgzF,EAAOrtC,WAAa/gE,OAAOioD,eAAemmD,IAAS/rG,KAAK+Y,KAAM/K,IAa5G,OAXA8oH,EAAMvyF,QAAUje,EAAOie,QACnBhkC,MAAMC,QAAQ8lB,EAAOiuH,aACvBzd,EAAMyd,UAAYjuH,EAAOiuH,UAAUptI,QAAO,SAAUotI,EAAW/yH,GAE7D,OADA+yH,EAAU/yH,IAAU,EACb+yH,CACT,GAAG,CAAC,IAGNzd,EAAM9oH,QAAQ42B,iBAAiB,mBAAmB,WAAa,IAC/DkyF,EAAM6lB,WACN7lB,EAAM+S,SACC/S,CACT,CAyKA,OAnMF,SAAmByb,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAO3eF,CAAUvmC,EAAQk6C,GAqBlBzU,EAAazlC,EAAQ,CAAC,CACpBptG,IAAK,aACLW,MAAO,WACLyZ,KAAKmtI,OAAQ,CACf,GACC,CACDvnJ,IAAK,WACLW,MAAO,WACLyZ,KAAKmtI,OAAQ,EACbntI,KAAK4jI,UACP,GACC,CACDh+I,IAAK,WACLW,MAAO,SAAkBquB,EAAOnvB,GAC9B,IAAI2nJ,EAAQptI,KAAKkpB,KAAKtU,GAClBy4H,EAASnmJ,EAAekmJ,EAAO,GAC/B1sE,EAAQ2sE,EAAO,GACfnqI,EAASmqI,EAAO,GAEhBC,EAASttI,KAAKkpB,KAAKtU,EAAQnvB,GAE3Bk7E,EADSz5E,EAAeomJ,EAAQ,GAClB,GAGlB,GADAzU,EAAK7lC,EAAO1sG,UAAUq/D,WAAa/gE,OAAOioD,eAAemmD,EAAO1sG,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM4U,EAAOnvB,GACpG,MAARk7E,GAAgBD,IAAUC,GAAQz9D,EAAS,EAAG,CAChD,GAAIw9D,aAAiBwjE,EAAO3L,YAAc53D,aAAgBujE,EAAO3L,WAE/D,YADAv4H,KAAK4jI,WAGP,GAAIljE,aAAiBsjE,EAAO10E,QAAS,CACnC,IAAI+zE,EAAe3iE,EAAM2iE,aAAa3iE,EAAMj7E,UAAU,GACtD,GAAI49I,GAAgB,IAClB3iE,EAAQA,EAAMp5D,MAAM+7H,EAAe,MACrB1iE,EAEZ,YADA3gE,KAAK4jI,UAIX,MAAO,GAAIjjE,aAAgBqjE,EAAO10E,QAAS,CACzC,IAAIi+E,EAAgB5sE,EAAK0iE,aAAa,GAClCkK,GAAiB,GACnB5sE,EAAKr5D,MAAMimI,EAAgB,EAE/B,CACA,IAAI/gJ,EAAMm0E,EAAKtwE,SAASwgF,gBAAgBqoD,EAAQ5pE,QAAU,KAAOqR,EAAKtwE,SAASwgF,KAC/EnQ,EAAMsgE,aAAargE,EAAMn0E,GACzBk0E,EAAMroD,QACR,CACArY,KAAK4jI,UACP,GACC,CACDh+I,IAAK,SACLW,MAAO,WACL,IAAIgmD,IAAU/mD,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,KAAmBA,UAAU,GAE7Ewa,KAAK/K,QAAQg8E,aAAa,kBAAmB1kC,EAC/C,GACC,CACD3mD,IAAK,WACLW,MAAO,SAAkBquB,EAAOnvB,EAAQgjB,EAAQliB,IACxB,MAAlByZ,KAAKw7H,WAAsBx7H,KAAKw7H,UAAU/yH,MAC9CowH,EAAK7lC,EAAO1sG,UAAUq/D,WAAa/gE,OAAOioD,eAAemmD,EAAO1sG,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM4U,EAAOnvB,EAAQgjB,EAAQliB,GAChIyZ,KAAK4jI,WACP,GACC,CACDh+I,IAAK,WACLW,MAAO,SAAkBquB,EAAOruB,EAAOqzI,GACrC,GAAW,MAAPA,GAAiC,MAAlB55H,KAAKw7H,WAAsBx7H,KAAKw7H,UAAUj1I,GAA7D,CACA,GAAIquB,GAAS5U,KAAKva,SAChB,GAAW,MAAPm0I,GAAoF,MAArEX,EAAY3pE,QAAQ/mD,MAAMhiB,EAAO0yI,EAAY3pE,QAAQ+jE,MAAMwB,OAAgB,CAC5F,IAAIQ,EAAO4D,EAAY3pE,QAAQl6D,OAAO4K,KAAKq6H,QAAQC,cACnDt6H,KAAKu6D,YAAY86D,GACN,MAAPuE,GAAerzI,EAAMw0C,SAAS,QAChCx0C,EAAQA,EAAMiC,MAAM,GAAI,IAE1B6sI,EAAKwE,SAAS,EAAGtzI,EAAOqzI,EAC1B,KAAO,CACL,IAAIp0C,EAAQyzC,EAAY3pE,QAAQl6D,OAAO7O,EAAOqzI,GAC9C55H,KAAKu6D,YAAYirB,EACnB,MAEAqzC,EAAK7lC,EAAO1sG,UAAUq/D,WAAa/gE,OAAOioD,eAAemmD,EAAO1sG,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM4U,EAAOruB,EAAOqzI,GAEzH55H,KAAK4jI,UAhBsE,CAiB7E,GACC,CACDh+I,IAAK,eACLW,MAAO,SAAsB8uI,EAAM7oI,GACjC,GAAI6oI,EAAKgF,QAAQxkF,QAAUojF,EAAY3pE,QAAQ+jE,MAAM8X,YAAa,CAChE,IAAInoB,EAAUiW,EAAY3pE,QAAQl6D,OAAO4K,KAAKq6H,QAAQC,cACtDtX,EAAQzoD,YAAY86D,GACpBA,EAAOrS,CACT,CACA6V,EAAK7lC,EAAO1sG,UAAUq/D,WAAa/gE,OAAOioD,eAAemmD,EAAO1sG,WAAY,eAAgB0Z,MAAM/Y,KAAK+Y,KAAMq1H,EAAM7oI,EACrH,GACC,CACD5G,IAAK,OACLW,MAAO,SAAcquB,GACnB,OAAO5U,KAAK0H,KAAKkN,GAAOyiB,OAAS,CAAC,MAAO,EAC3C,GACC,CACDzxC,IAAK,OACLW,MAAO,SAAcquB,GACnB,OAAIA,IAAU5U,KAAKva,SACVua,KAAKkpB,KAAKtU,EAAQ,GAEpB5U,KAAKkjI,WAAW+J,EAAQr4H,EACjC,GACC,CACDhvB,IAAK,QACLW,MAAO,WAiBL,OAbe,SAASinJ,EAASnY,EAAMzgH,EAAOnvB,GAC5C,IAAI00I,EAAQ,GACR6P,EAAavkJ,EASjB,OARA4vI,EAAKhlI,SAASy5I,UAAUl1H,EAAOnvB,GAAQ,SAAU+8D,EAAO5tC,EAAOnvB,GACzDwnJ,EAAOzqF,GACT23E,EAAMh1I,KAAKq9D,GACFA,aAAiBy2E,EAAY3pE,QAAQkkE,YAC9C2G,EAAQA,EAAMzrI,OAAO8+I,EAAShrF,EAAO5tC,EAAOo1H,KAE9CA,GAAcvkJ,CAChB,IACO00I,CACT,CACOqT,CAASxtI,KAhBJxa,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,EACnEA,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKi1B,OAAOwjH,UAgB1F,GACC,CACDr4I,IAAK,WACLW,MAAO,WACL,IAAI01I,EAAYz2I,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,GAChFsuC,EAAUtuC,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAEhE,IAAfwa,KAAKmtI,QACTtU,EAAK7lC,EAAO1sG,UAAUq/D,WAAa/gE,OAAOioD,eAAemmD,EAAO1sG,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAMi8H,EAAWnoG,GAChHmoG,EAAUx2I,OAAS,GACrBua,KAAKwrB,QAAQhF,KAAK+5G,EAAUjxE,QAAQjgD,OAAOuyH,gBAAiB3F,EAAWnoG,GAE3E,GACC,CACDluC,IAAK,OACLW,MAAO,SAAcquB,GACnB,OAAOikH,EAAK7lC,EAAO1sG,UAAUq/D,WAAa/gE,OAAOioD,eAAemmD,EAAO1sG,WAAY,OAAQ0Z,MAAM/Y,KAAK+Y,KAAM4U,GAAOpsB,MAAM,EAC3H,GACC,CACD5C,IAAK,SACLW,MAAO,SAAgB01I,GACrB,IAAmB,IAAfj8H,KAAKmtI,MAAT,CACA,IAAIznJ,EAAS66I,EAAUjxE,QAAQytE,QAAQyC,KACd,kBAAdvD,IACTv2I,EAASu2I,GAENz0I,MAAMC,QAAQw0I,KACjBA,EAAYj8H,KAAKytI,SAASC,eAExBzR,EAAUx2I,OAAS,GACrBua,KAAKwrB,QAAQhF,KAAK+5G,EAAUjxE,QAAQjgD,OAAOsyH,qBAAsBj8I,EAAQu2I,GAE3EpD,EAAK7lC,EAAO1sG,UAAUq/D,WAAa/gE,OAAOioD,eAAemmD,EAAO1sG,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,KAAMi8H,EAAUvtI,OAAO,KACpHutI,EAAUx2I,OAAS,GACrBua,KAAKwrB,QAAQhF,KAAK+5G,EAAUjxE,QAAQjgD,OAAO2sH,cAAet2I,EAAQu2I,EAbrC,CAejC,KAGKjpC,CACT,CA9La,CA8LXimC,EAAY3pE,QAAQ0jC,QAEtBA,EAAOwiC,SAAW,SAClBxiC,EAAOj/F,UAAY,YACnBi/F,EAAOzwC,QAAU,MACjBywC,EAAOsnC,aAAe,QACtBtnC,EAAOunC,gBAAkB,CAACqI,EAAQtzE,QAAS40E,EAAO3L,WAAYyU,EAAY19E,SAE1EhrE,EAAQgrE,QAAU0jC,CAEX,WAESt6F,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQqpJ,SAAWrpJ,EAAQgrE,aAAUvgE,EAErC,IAAI9I,EAA4B,oBAAXE,QAAoD,kBAApBA,OAAOC,SAAwB,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAEvQgB,EAAgb,SAAUC,EAAK5B,GAAK,GAAIiC,MAAMC,QAAQN,GAAQ,OAAOA,EAAY,GAAIhB,OAAOC,YAAYxB,OAAOuC,GAAQ,OAAxf,SAAuBA,EAAK5B,GAAK,IAAIsC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWH,OAAKmH,EAAW,IAAM,IAAK,IAAiCpH,EAA7BD,EAAKP,EAAIhB,OAAOC,cAAmB0B,GAAMH,EAAKD,EAAGM,QAAQC,QAAoBJ,EAAK1C,KAAKwC,EAAGpB,QAAYhB,GAAKsC,EAAKpC,SAAWF,GAA3DuC,GAAK,GAAkE,CAAE,MAAOI,GAAOH,GAAK,EAAMH,EAAKM,CAAK,CAAE,QAAU,KAAWJ,GAAMJ,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAAuH6yI,CAAcvzI,EAAK5B,GAAa,MAAM,IAAIuD,UAAU,uDAA2D,EAE7oB2vI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfyL,EAAU30E,EAFD4iE,EAAoB,KAM7BgS,EAAc50E,EAFD4iE,EAAoB,KAMjC2G,EAAWvpE,EAFD4iE,EAAoB,IAM9B4G,EAAexpE,EAFD4iE,EAAoB,IAMlC2R,EAAOv0E,EAFD4iE,EAAoB,KAM1B6G,EAAczpE,EAFD4iE,EAAoB,IAMjCwb,EAAUp+E,EAFD4iE,EAAoB,IAM7B4I,EAAWxrE,EAFD4iE,EAAoB,KAM9ByI,EAAWrrE,EAFD4iE,EAAoB,IAIlC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F,SAASL,EAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAQhN,IAAIg1I,GAAQ,EAAIF,EAAS1rE,SAAS,kBAE9Bq+E,EAAW,OAAOhlJ,KAAKw0D,UAAUC,UAAY,UAAY,UAEzDywF,EAAW,SAAUC,GAgBvB,SAASD,EAAS9L,EAAO9zI,IA1B3B,SAAyB4tG,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CA2BpJuwI,CAAgBr5H,KAAM6tI,GAEtB,IAAI9vB,EA3BR,SAAoCx/G,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CA2B/NqyI,CAA2Bt5H,MAAO6tI,EAASloF,WAAa/gE,OAAOioD,eAAeghG,IAAW5mJ,KAAK+Y,KAAM+hI,EAAO9zI,IAyBvH,OAvBA8vH,EAAMgwB,SAAW,CAAC,EAClBnpJ,OAAOD,KAAKo5H,EAAM9vH,QAAQ8/I,UAAUpoJ,SAAQ,SAAU8C,IACvC,kBAATA,GAAsD,MAA1Bs5I,EAAMnR,OAAO4K,WAAsBuG,EAAMnR,OAAO4K,UAAgB,OAG5Fzd,EAAM9vH,QAAQ8/I,SAAStlJ,IACzBs1H,EAAMiwB,WAAWjwB,EAAM9vH,QAAQ8/I,SAAStlJ,GAE5C,IACAs1H,EAAMiwB,WAAW,CAAEpoJ,IAAKioJ,EAASlpJ,KAAKspJ,MAAOn9C,SAAU,MAAQo9C,GAC/DnwB,EAAMiwB,WAAW,CAAEpoJ,IAAKioJ,EAASlpJ,KAAKspJ,MAAOj9C,QAAS,KAAMH,QAAS,KAAME,OAAQ,OAAQ,WAAa,IACpG,WAAWpoG,KAAKw0D,UAAUzyB,YAE5BqzF,EAAMiwB,WAAW,CAAEpoJ,IAAKioJ,EAASlpJ,KAAKwpJ,WAAa,CAAEzG,WAAW,GAAQ0G,GACxErwB,EAAMiwB,WAAW,CAAEpoJ,IAAKioJ,EAASlpJ,KAAK8yI,QAAU,CAAEiQ,WAAW,GAAQ2G,KAErEtwB,EAAMiwB,WAAW,CAAEpoJ,IAAKioJ,EAASlpJ,KAAKwpJ,WAAa,CAAEzG,WAAW,EAAM31G,OAAQ,QAAUq8G,GACxFrwB,EAAMiwB,WAAW,CAAEpoJ,IAAKioJ,EAASlpJ,KAAK8yI,QAAU,CAAEiQ,WAAW,EAAM/tG,OAAQ,QAAU00G,IAEvFtwB,EAAMiwB,WAAW,CAAEpoJ,IAAKioJ,EAASlpJ,KAAKwpJ,WAAa,CAAEzG,WAAW,GAAS4G,GACzEvwB,EAAMiwB,WAAW,CAAEpoJ,IAAKioJ,EAASlpJ,KAAK8yI,QAAU,CAAEiQ,WAAW,GAAS4G,GACtEvwB,EAAMiwB,WAAW,CAAEpoJ,IAAKioJ,EAASlpJ,KAAKwpJ,UAAWp9C,OAAQ,KAAMF,QAAS,KAAMG,QAAS,KAAMF,SAAU,MAAQ,CAAE42C,WAAW,EAAMxkI,OAAQ,GAAKkrI,GAC/IrwB,EAAMwwB,SACCxwB,CACT,CA8FA,OAjJF,SAAmByb,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAO3eF,CAAUsU,EAAUC,GAEpBrV,EAAaoV,EAAU,KAAM,CAAC,CAC5BjoJ,IAAK,QACLW,MAAO,SAAe8lC,EAAKiuD,GAEzB,OADAA,EAAUk0D,EAAUl0D,IAChB,CAAC,SAAU,UAAW,UAAW,YAAYk0C,MAAK,SAAU5oI,GAC9D,QAAS00F,EAAQ10F,KAASymC,EAAIzmC,IAAyB,OAAjB00F,EAAQ10F,EAChD,KAGO00F,EAAQ10F,OAASymC,EAAIsnE,OAAStnE,EAAIqiE,QAC3C,KAkCF+pC,EAAaoV,EAAU,CAAC,CACtBjoJ,IAAK,aACLW,MAAO,SAAoBX,GACzB,IAAIkuC,EAAUtuC,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EipE,EAAUjpE,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/E80F,EAAUk0D,EAAU5oJ,GACxB,GAAe,MAAX00F,GAAkC,MAAfA,EAAQ10F,IAC7B,OAAOs1I,EAAMzsI,KAAK,4CAA6C6rF,GAE1C,oBAAZxmD,IACTA,EAAU,CAAE26B,QAAS36B,IAEA,oBAAZ26B,IACTA,EAAU,CAAEA,QAASA,IAEvB6rB,GAAU,EAAIy+C,EAASzpE,SAASgrB,EAASxmD,EAAS26B,GAClDzuD,KAAK+tI,SAASzzD,EAAQ10F,KAAOoa,KAAK+tI,SAASzzD,EAAQ10F,MAAQ,GAC3Doa,KAAK+tI,SAASzzD,EAAQ10F,KAAKT,KAAKm1F,EAClC,GACC,CACD10F,IAAK,SACLW,MAAO,WACL,IAAIyzI,EAASh6H,KAEbA,KAAK+hI,MAAMtnD,KAAK5uD,iBAAiB,WAAW,SAAUQ,GACpD,IAAIA,EAAImuC,iBAAR,CACA,IAAIm5B,EAAQtnE,EAAIsnE,OAAStnE,EAAIqiE,QACzBq/C,GAAY/T,EAAO+T,SAASp6C,IAAU,IAAI5uG,QAAO,SAAUu1F,GAC7D,OAAOuzD,EAAS3nI,MAAMmmB,EAAKiuD,EAC7B,IACA,GAAwB,IAApByzD,EAAStoJ,OAAb,CACA,IAAI4wG,EAAQ2jC,EAAO+H,MAAM9oC,eACzB,GAAa,MAAT5C,GAAkB2jC,EAAO+H,MAAM1D,WAAnC,CAEA,IAAIoQ,EAAiBzU,EAAO+H,MAAM2M,QAAQr4C,EAAMzhF,OAC5C+5H,EAAkBznJ,EAAeunJ,EAAgB,GACjDvlH,EAAOylH,EAAgB,GACvBzrI,EAASyrI,EAAgB,GAEzBC,EAAiB5U,EAAO+H,MAAM8M,QAAQx4C,EAAMzhF,OAC5Ck6H,EAAkB5nJ,EAAe0nJ,EAAgB,GACjDG,EAAYD,EAAgB,GAC5BE,EAAcF,EAAgB,GAE9B3+I,EAAwB,IAAjBkmG,EAAM5wG,OAAe,CAACspJ,EAAWC,GAAehV,EAAO+H,MAAM8M,QAAQx4C,EAAMzhF,MAAQyhF,EAAM5wG,QAChG8L,EAAQrK,EAAeiJ,EAAM,GAC7B8+I,EAAU19I,EAAM,GAChB29I,EAAY39I,EAAM,GAElB49I,EAAaJ,aAAqB9V,EAAY3pE,QAAQwkE,KAAOib,EAAUxoJ,QAAQiC,MAAM,EAAGwmJ,GAAe,GACvGI,EAAaH,aAAmBhW,EAAY3pE,QAAQwkE,KAAOmb,EAAQ1oJ,QAAQiC,MAAM0mJ,GAAa,GAC9FG,EAAa,CACf3H,UAA4B,IAAjBrxC,EAAM5wG,OACjBouE,MAAwB,IAAjBwiC,EAAM5wG,QAAgByjC,EAAKzjC,UAAY,EAC9CgjB,OAAQuxH,EAAO+H,MAAM/D,UAAU3nC,GAC/BnzF,OAAQA,EACR6uB,OAAQo9G,EACRx1G,OAAQy1G,GAEMrB,EAASvf,MAAK,SAAUl0C,GACtC,GAAyB,MAArBA,EAAQotD,WAAqBptD,EAAQotD,YAAc2H,EAAW3H,UAAW,OAAO,EACpF,GAAqB,MAAjBptD,EAAQzmB,OAAiBymB,EAAQzmB,QAAUw7E,EAAWx7E,MAAO,OAAO,EACxE,GAAsB,MAAlBymB,EAAQp3E,QAAkBo3E,EAAQp3E,SAAWmsI,EAAWnsI,OAAQ,OAAO,EAC3E,GAAI1b,MAAMC,QAAQ6yF,EAAQ7xE,SAExB,GAAI6xE,EAAQ7xE,OAAO1a,OAAM,SAAUtF,GACjC,OAAkC,MAA3B4mJ,EAAW5mI,OAAOhgB,EAC3B,IACE,OAAO,OAEJ,GAAgC,WAA5BxC,EAAQq0F,EAAQ7xE,UAEpB7jB,OAAOD,KAAK21F,EAAQ7xE,QAAQ1a,OAAM,SAAUtF,GAC/C,OAA6B,IAAzB6xF,EAAQ7xE,OAAOhgB,GAAkD,MAA3B4mJ,EAAW5mI,OAAOhgB,IAC/B,IAAzB6xF,EAAQ7xE,OAAOhgB,GAAmD,MAA3B4mJ,EAAW5mI,OAAOhgB,IACtD,EAAI27I,EAAY90E,SAASgrB,EAAQ7xE,OAAOhgB,GAAO4mJ,EAAW5mI,OAAOhgB,GAC1E,IACE,OAAO,EAGX,QAAsB,MAAlB6xF,EAAQvoD,SAAmBuoD,EAAQvoD,OAAOppC,KAAK0mJ,EAAWt9G,YACxC,MAAlBuoD,EAAQ3gD,SAAmB2gD,EAAQ3gD,OAAOhxC,KAAK0mJ,EAAW11G,WACH,IAApD2gD,EAAQ7rB,QAAQxnE,KAAK+yI,EAAQ3jC,EAAOg5C,EAC7C,KAEEhjH,EAAIgjE,gBArD+C,CAFpB,CALD,CA8DlC,GACF,KAGKw+C,CACT,CA5Ie,CA4IbhT,EAASvrE,SAqLX,SAASggF,EAAsB1pJ,EAAKkrG,GAClC,IAAIy+C,EAEAC,EAAQ5pJ,IAAQioJ,EAASlpJ,KAAK8qJ,KAAO,SAAW,SACpD,OAIG5pJ,EAJI0pJ,EAAQ,CACb3pJ,IAAKA,EACLkrG,SAAUA,EACVC,OAAQ,MACgBy+C,EAAO,MAAO3pJ,EAAgB0pJ,EAAO,WAAW,SAAiBl5C,GACzF,IAAIzhF,EAAQyhF,EAAMzhF,MACdhvB,IAAQioJ,EAASlpJ,KAAK+qJ,QACxB96H,GAASyhF,EAAM5wG,OAAS,GAG1B,IAAIkqJ,EAAkB3vI,KAAK+hI,MAAM8M,QAAQj6H,GAIzC,QAHsB1tB,EAAeyoJ,EAAiB,GAC3B,aAEL1W,EAAY3pE,QAAQqkE,SACtC/tI,IAAQioJ,EAASlpJ,KAAK8qJ,KACpB3+C,EACF9wF,KAAK+hI,MAAMpR,aAAat6B,EAAMzhF,MAAQ,EAAGyhF,EAAM5wG,OAAS,EAAGmoJ,EAAQt+E,QAAQytE,QAAQyC,MAEnFx/H,KAAK+hI,MAAMpR,aAAat6B,EAAMzhF,MAAQ,EAAGg5H,EAAQt+E,QAAQytE,QAAQyC,MAG/D1uC,EACF9wF,KAAK+hI,MAAMpR,aAAat6B,EAAMzhF,MAAOyhF,EAAM5wG,OAAS,EAAGmoJ,EAAQt+E,QAAQytE,QAAQyC,MAE/Ex/H,KAAK+hI,MAAMpR,aAAat6B,EAAMzhF,MAAQyhF,EAAM5wG,OAAS,EAAGmoJ,EAAQt+E,QAAQytE,QAAQyC,OAG7E,EACT,IAAI+P,CACN,CAEA,SAASnB,EAAgB/3C,EAAOviE,GAC9B,KAAoB,IAAhBuiE,EAAMzhF,OAAe5U,KAAK+hI,MAAMrR,aAAe,GAAnD,CAEA,IAAIkf,EAAmB5vI,KAAK+hI,MAAM2M,QAAQr4C,EAAMzhF,OAE5CsU,EADmBhiC,EAAe0oJ,EAAkB,GAC5B,GAExBlgB,EAAU,CAAC,EACf,GAAuB,IAAnB57F,EAAQ5wB,OAAc,CACxB,IAAI2sI,EAAmB7vI,KAAK+hI,MAAM2M,QAAQr4C,EAAMzhF,MAAQ,GAEpDu/C,EADmBjtE,EAAe2oJ,EAAkB,GAC5B,GAE5B,GAAY,MAAR17E,GAAgBA,EAAK1uE,SAAW,EAAG,CACrC,IAAIqqJ,EAAa5mH,EAAKwmG,UAClBqgB,EAAc/vI,KAAK+hI,MAAM/D,UAAU3nC,EAAMzhF,MAAQ,EAAG,GACxD86G,EAAUqU,EAAKz0E,QAAQjM,WAAWqyE,KAAKoa,EAAYC,IAAgB,CAAC,CACtE,CACF,CAEA,IAAItqJ,EAAS,kCAAkCkD,KAAKmrC,EAAQ/B,QAAU,EAAI,EAC1E/xB,KAAK+hI,MAAMnF,WAAWvmC,EAAMzhF,MAAQnvB,EAAQA,EAAQmoJ,EAAQt+E,QAAQytE,QAAQyC,MACxE56I,OAAOD,KAAK+qI,GAASjqI,OAAS,GAChCua,KAAK+hI,MAAM7E,WAAW7mC,EAAMzhF,MAAQnvB,EAAQA,EAAQiqI,EAASke,EAAQt+E,QAAQytE,QAAQyC,MAEvFx/H,KAAK+hI,MAAM/nC,OAxBiD,CAyB9D,CAEA,SAASq0C,EAAah4C,EAAOviE,GAE3B,IAAIruC,EAAS,kCAAkCkD,KAAKmrC,EAAQ6F,QAAU,EAAI,EAC1E,KAAI08D,EAAMzhF,OAAS5U,KAAK+hI,MAAMrR,YAAcjrI,GAA5C,CACA,IAAIiqI,EAAU,CAAC,EACXsgB,EAAa,EAEbC,EAAmBjwI,KAAK+hI,MAAM2M,QAAQr4C,EAAMzhF,OAE5CsU,EADmBhiC,EAAe+oJ,EAAkB,GAC5B,GAE5B,GAAIn8G,EAAQ5wB,QAAUgmB,EAAKzjC,SAAW,EAAG,CACvC,IAAIyqJ,EAAmBlwI,KAAK+hI,MAAM2M,QAAQr4C,EAAMzhF,MAAQ,GAEpD5sB,EADmBd,EAAegpJ,EAAkB,GAC5B,GAE5B,GAAIloJ,EAAM,CACR,IAAI8nJ,EAAa5mH,EAAKwmG,UAClBygB,EAAcnwI,KAAK+hI,MAAM/D,UAAU3nC,EAAMzhF,MAAO,GACpD86G,EAAUqU,EAAKz0E,QAAQjM,WAAWqyE,KAAKoa,EAAYK,IAAgB,CAAC,EACpEH,EAAahoJ,EAAKvC,QACpB,CACF,CACAua,KAAK+hI,MAAMnF,WAAWvmC,EAAMzhF,MAAOnvB,EAAQmoJ,EAAQt+E,QAAQytE,QAAQyC,MAC/D56I,OAAOD,KAAK+qI,GAASjqI,OAAS,GAChCua,KAAK+hI,MAAM7E,WAAW7mC,EAAMzhF,MAAQo7H,EAAa,EAAGvqJ,EAAQiqI,EAASke,EAAQt+E,QAAQytE,QAAQyC,KAtBrC,CAwB5D,CAEA,SAAS8O,EAAkBj4C,GACzB,IAAI8jC,EAAQn6H,KAAK+hI,MAAMyL,SAASn3C,GAC5Bq5B,EAAU,CAAC,EACf,GAAIyK,EAAM10I,OAAS,EAAG,CACpB,IAAI2qJ,EAAejW,EAAM,GAAGzK,UACxB2gB,EAAclW,EAAMA,EAAM10I,OAAS,GAAGiqI,UAC1CA,EAAUqU,EAAKz0E,QAAQjM,WAAWqyE,KAAK2a,EAAaD,IAAiB,CAAC,CACxE,CACApwI,KAAK+hI,MAAMnF,WAAWvmC,EAAOu3C,EAAQt+E,QAAQytE,QAAQyC,MACjD56I,OAAOD,KAAK+qI,GAASjqI,OAAS,GAChCua,KAAK+hI,MAAM7E,WAAW7mC,EAAMzhF,MAAO,EAAG86G,EAASke,EAAQt+E,QAAQytE,QAAQyC,MAEzEx/H,KAAK+hI,MAAMpR,aAAat6B,EAAMzhF,MAAOg5H,EAAQt+E,QAAQytE,QAAQK,QAC7Dp9H,KAAK+hI,MAAM/nC,OACb,CAEA,SAASk0C,EAAY73C,EAAOviE,GAC1B,IAAI2oG,EAASz8H,KAETq2F,EAAM5wG,OAAS,GACjBua,KAAK+hI,MAAMnR,OAAOuS,SAAS9sC,EAAMzhF,MAAOyhF,EAAM5wG,QAEhD,IAAI6qJ,EAAc1rJ,OAAOD,KAAKmvC,EAAQrrB,QAAQra,QAAO,SAAUkiJ,EAAa7nI,GAI1E,OAHIwwH,EAAY3pE,QAAQ/mD,MAAME,EAAQwwH,EAAY3pE,QAAQ+jE,MAAMwB,SAAWrtI,MAAMC,QAAQqsC,EAAQrrB,OAAOA,MACtG6nI,EAAY7nI,GAAUqrB,EAAQrrB,OAAOA,IAEhC6nI,CACT,GAAG,CAAC,GACJtwI,KAAK+hI,MAAMpD,WAAWtoC,EAAMzhF,MAAO,KAAM07H,EAAa1C,EAAQt+E,QAAQytE,QAAQyC,MAG9Ex/H,KAAK+hI,MAAMpR,aAAat6B,EAAMzhF,MAAQ,EAAGg5H,EAAQt+E,QAAQytE,QAAQK,QACjEp9H,KAAK+hI,MAAM/nC,QACXp1G,OAAOD,KAAKmvC,EAAQrrB,QAAQ9iB,SAAQ,SAAU8C,GACnB,MAArB6nJ,EAAY7nJ,KACZjB,MAAMC,QAAQqsC,EAAQrrB,OAAOhgB,KACpB,SAATA,GACJg0I,EAAOsF,MAAMt5H,OAAOhgB,EAAMqrC,EAAQrrB,OAAOhgB,GAAOmlJ,EAAQt+E,QAAQytE,QAAQyC,MAC1E,GACF,CAEA,SAAS+Q,EAAqBC,GAC5B,MAAO,CACL5qJ,IAAKioJ,EAASlpJ,KAAKm/I,IACnBhzC,UAAW0/C,EACX/nI,OAAQ,CAAE,cAAc,GACxBgmD,QAAS,SAAiB4nC,GACxB,IAAIysC,EAAY7J,EAAY3pE,QAAQ/mD,MAAM,cACtCqM,EAAQyhF,EAAMzhF,MACdnvB,EAAS4wG,EAAM5wG,OAEfgrJ,EAAwBzwI,KAAK+hI,MAAMnR,OAAOsS,WAAWJ,EAAWluH,GAChE87H,EAAyBxpJ,EAAeupJ,EAAuB,GAC/DxtI,EAAQytI,EAAuB,GAC/BxtI,EAASwtI,EAAuB,GAEpC,GAAa,MAATztI,EAAJ,CACA,IAAI0tI,EAAc3wI,KAAK+hI,MAAM6O,SAAS3tI,GAClCo9C,EAAQp9C,EAAMogI,aAAangI,GAAQ,GAAQ,EAC3C+7B,EAAMh8B,EAAMogI,aAAasN,EAAcztI,EAASzd,GAChD00I,EAAQl3H,EAAMhO,QAAQ0tD,YAAYn6D,MAAM63D,EAAOphB,GAAK33B,MAAM,MAC9DpE,EAAS,EACTi3H,EAAMx0I,SAAQ,SAAUujC,EAAM3jC,GACxBirJ,GACFvtI,EAAM42H,SAASx5E,EAAQn9C,EAAQ4/H,EAAUgB,KACzC5gI,GAAU4/H,EAAUgB,IAAIr+I,OACd,IAANF,EACFqvB,GAASkuH,EAAUgB,IAAIr+I,OAEvBA,GAAUq9I,EAAUgB,IAAIr+I,QAEjByjC,EAAK4R,WAAWgoG,EAAUgB,OACnC7gI,EAAMkgI,SAAS9iF,EAAQn9C,EAAQ4/H,EAAUgB,IAAIr+I,QAC7Cyd,GAAU4/H,EAAUgB,IAAIr+I,OACd,IAANF,EACFqvB,GAASkuH,EAAUgB,IAAIr+I,OAEvBA,GAAUq9I,EAAUgB,IAAIr+I,QAG5Byd,GAAUgmB,EAAKzjC,OAAS,CAC1B,IACAua,KAAK+hI,MAAMhxI,OAAO68I,EAAQt+E,QAAQytE,QAAQyC,MAC1Cx/H,KAAK+hI,MAAMpR,aAAa/7G,EAAOnvB,EAAQmoJ,EAAQt+E,QAAQytE,QAAQK,OA3BtC,CA4B3B,EAEJ,CAEA,SAASyT,EAAkBpoI,GACzB,MAAO,CACL7iB,IAAK6iB,EAAO,GAAGhV,cACfq9I,UAAU,EACVriF,QAAS,SAAiB4nC,EAAOviE,GAC/B9zB,KAAK+hI,MAAMt5H,OAAOA,GAASqrB,EAAQrrB,OAAOA,GAASmlI,EAAQt+E,QAAQytE,QAAQyC,KAC7E,EAEJ,CAEA,SAASgP,EAAUl0D,GACjB,GAAuB,kBAAZA,GAA2C,kBAAZA,EACxC,OAAOk0D,EAAU,CAAE5oJ,IAAK00F,IAK1B,GAH0E,YAAlD,qBAAZA,EAA0B,YAAcr0F,EAAQq0F,MAC1DA,GAAU,EAAI6pD,EAAQ70E,SAASgrB,GAAS,IAEf,kBAAhBA,EAAQ10F,IACjB,GAAgD,MAA5CioJ,EAASlpJ,KAAK21F,EAAQ10F,IAAI6N,eAC5B6mF,EAAQ10F,IAAMioJ,EAASlpJ,KAAK21F,EAAQ10F,IAAI6N,mBACnC,IAA2B,IAAvB6mF,EAAQ10F,IAAIH,OAGrB,OAAO,KAFP60F,EAAQ10F,IAAM00F,EAAQ10F,IAAI6N,cAAcgqD,WAAW,EAGrD,CAMF,OAJI68B,EAAQw2D,WACVx2D,EAAQqzD,GAAYrzD,EAAQw2D,gBACrBx2D,EAAQw2D,UAEVx2D,CACT,CAvYAuzD,EAASlpJ,KAAO,CACdwpJ,UAAW,EACXrK,IAAK,EACLmK,MAAO,GACP8C,OAAQ,GACRtB,KAAM,GACNuB,GAAI,GACJtB,MAAO,GACPuB,KAAM,GACNxZ,OAAQ,IAGVoW,EAASlO,SAAW,CAClBoO,SAAU,CACR,KAAQ8C,EAAkB,QAC1B,OAAUA,EAAkB,UAC5B,UAAaA,EAAkB,aAC/B,OAAU,CAERjrJ,IAAKioJ,EAASlpJ,KAAKm/I,IACnBr7H,OAAQ,CAAC,aAAc,SAAU,QACjCgmD,QAAS,SAAiB4nC,EAAOviE,GAC/B,GAAIA,EAAQ4zG,WAAgC,IAAnB5zG,EAAQ5wB,OAAc,OAAO,EACtDlD,KAAK+hI,MAAMt5H,OAAO,SAAU,KAAMmlI,EAAQt+E,QAAQytE,QAAQyC,KAC5D,GAEF,QAAW,CACT55I,IAAKioJ,EAASlpJ,KAAKm/I,IACnBhzC,UAAU,EACVroF,OAAQ,CAAC,aAAc,SAAU,QAEjCgmD,QAAS,SAAiB4nC,EAAOviE,GAC/B,GAAIA,EAAQ4zG,WAAgC,IAAnB5zG,EAAQ5wB,OAAc,OAAO,EACtDlD,KAAK+hI,MAAMt5H,OAAO,SAAU,KAAMmlI,EAAQt+E,QAAQytE,QAAQyC,KAC5D,GAEF,oBAAqB,CACnB55I,IAAKioJ,EAASlpJ,KAAKwpJ,UACnBzG,WAAW,EACX52C,SAAU,KACVE,QAAS,KACTH,QAAS,KACTE,OAAQ,KACRtoF,OAAQ,CAAC,SAAU,QACnBvF,OAAQ,EACRurD,QAAS,SAAiB4nC,EAAOviE,GACF,MAAzBA,EAAQrrB,OAAO+nI,OACjBxwI,KAAK+hI,MAAMt5H,OAAO,SAAU,KAAMmlI,EAAQt+E,QAAQytE,QAAQyC,MAC1B,MAAvB1rG,EAAQrrB,OAAOuS,MACxBhb,KAAK+hI,MAAMt5H,OAAO,QAAQ,EAAOmlI,EAAQt+E,QAAQytE,QAAQyC,KAE7D,GAEF,oBAAqB+Q,GAAqB,GAC1C,qBAAsBA,GAAqB,GAC3C,aAAc,CACZ3qJ,IAAKioJ,EAASlpJ,KAAKm/I,IACnBhzC,UAAU,EACV42C,WAAW,EACX31G,OAAQ,MACR08B,QAAS,SAAiB4nC,GACxBr2F,KAAK+hI,MAAMnF,WAAWvmC,EAAMzhF,MAAQ,EAAG,EAAGg5H,EAAQt+E,QAAQytE,QAAQyC,KACpE,GAEF,IAAO,CACL55I,IAAKioJ,EAASlpJ,KAAKm/I,IACnBr1E,QAAS,SAAiB4nC,GACxBr2F,KAAK+hI,MAAMpG,QAAQuV,SACnB,IAAI/nH,GAAQ,IAAI6vG,EAAa1pE,SAAU0mE,OAAO3/B,EAAMzhF,OAAOqI,OAAOo5E,EAAM5wG,QAAQqwI,OAAO,MACvF91H,KAAK+hI,MAAMoP,eAAehoH,EAAOykH,EAAQt+E,QAAQytE,QAAQyC,MACzDx/H,KAAK+hI,MAAMpG,QAAQuV,SACnBlxI,KAAK+hI,MAAMpR,aAAat6B,EAAMzhF,MAAQ,EAAGg5H,EAAQt+E,QAAQytE,QAAQK,OACnE,GAEF,mBAAoB,CAClBx3I,IAAKioJ,EAASlpJ,KAAKspJ,MACnBvG,WAAW,EACXj/H,OAAQ,CAAC,QACTorD,OAAO,EACPpF,QAAS,SAAiB4nC,EAAOviE,GAC/B9zB,KAAK+hI,MAAMt5H,OAAO,QAAQ,EAAOmlI,EAAQt+E,QAAQytE,QAAQyC,MACrD1rG,EAAQrrB,OAAO+nI,QACjBxwI,KAAK+hI,MAAMt5H,OAAO,UAAU,EAAOmlI,EAAQt+E,QAAQytE,QAAQyC,KAE/D,GAEF,kBAAmB,CACjB55I,IAAKioJ,EAASlpJ,KAAKspJ,MACnBvG,WAAW,EACXj/H,OAAQ,CAAEuS,KAAM,WAChByzC,QAAS,SAAiB4nC,GACxB,IAAI+6C,EAAkBpxI,KAAK+hI,MAAM2M,QAAQr4C,EAAMzhF,OAC3Cy8H,EAAkBnqJ,EAAekqJ,EAAiB,GAClDloH,EAAOmoH,EAAgB,GACvBnuI,EAASmuI,EAAgB,GAEzB3hB,GAAU,EAAIqJ,EAASzpE,SAAS,CAAC,EAAGpmC,EAAKwmG,UAAW,CAAE10G,KAAM,YAC5DmO,GAAQ,IAAI6vG,EAAa1pE,SAAU0mE,OAAO3/B,EAAMzhF,OAAOkhH,OAAO,KAAMpG,GAASsG,OAAO9sG,EAAKzjC,SAAWyd,EAAS,GAAG8yH,OAAO,EAAG,CAAEh7G,KAAM,cACtIhb,KAAK+hI,MAAMoP,eAAehoH,EAAOykH,EAAQt+E,QAAQytE,QAAQyC,MACzDx/H,KAAK+hI,MAAMpR,aAAat6B,EAAMzhF,MAAQ,EAAGg5H,EAAQt+E,QAAQytE,QAAQK,QACjEp9H,KAAK+hI,MAAMlF,gBACb,GAEF,eAAgB,CACdj3I,IAAKioJ,EAASlpJ,KAAKspJ,MACnBvG,WAAW,EACXj/H,OAAQ,CAAC,UACTkxB,OAAQ,KACR80B,QAAS,SAAiB4nC,EAAOviE,GAC/B,IAAIw9G,EAAkBtxI,KAAK+hI,MAAM2M,QAAQr4C,EAAMzhF,OAC3C28H,EAAkBrqJ,EAAeoqJ,EAAiB,GAClDpoH,EAAOqoH,EAAgB,GACvBruI,EAASquI,EAAgB,GAEzBpoH,GAAQ,IAAI6vG,EAAa1pE,SAAU0mE,OAAO3/B,EAAMzhF,OAAOkhH,OAAO,KAAMhiG,EAAQrrB,QAAQutH,OAAO9sG,EAAKzjC,SAAWyd,EAAS,GAAG8yH,OAAO,EAAG,CAAEj9F,OAAQ,OAC/I/4B,KAAK+hI,MAAMoP,eAAehoH,EAAOykH,EAAQt+E,QAAQytE,QAAQyC,MACzDx/H,KAAK+hI,MAAMpR,aAAat6B,EAAMzhF,MAAQ,EAAGg5H,EAAQt+E,QAAQytE,QAAQK,QACjEp9H,KAAK+hI,MAAMlF,gBACb,GAEF,gBAAiB,CACfj3I,IAAK,IACL8hJ,WAAW,EACXj/H,OAAQ,CAAEuS,MAAM,GAChB+W,OAAQ,kCACR08B,QAAS,SAAiB4nC,EAAOviE,GAC/B,IAAIruC,EAASquC,EAAQ/B,OAAOtsC,OAExB+rJ,EAAkBxxI,KAAK+hI,MAAM2M,QAAQr4C,EAAMzhF,OAC3C68H,EAAkBvqJ,EAAesqJ,EAAiB,GAClDtoH,EAAOuoH,EAAgB,GACvBvuI,EAASuuI,EAAgB,GAE7B,GAAIvuI,EAASzd,EAAQ,OAAO,EAC5B,IAAIc,OAAQ,EACZ,OAAQutC,EAAQ/B,OAAOoc,QACrB,IAAK,KAAK,IAAK,MACb5nD,EAAQ,YACR,MACF,IAAK,MACHA,EAAQ,UACR,MACF,IAAK,IAAI,IAAK,IACZA,EAAQ,SACR,MACF,QACEA,EAAQ,UAEZyZ,KAAK+hI,MAAMpD,WAAWtoC,EAAMzhF,MAAO,IAAKg5H,EAAQt+E,QAAQytE,QAAQyC,MAChEx/H,KAAK+hI,MAAMpG,QAAQuV,SACnB,IAAI/nH,GAAQ,IAAI6vG,EAAa1pE,SAAU0mE,OAAO3/B,EAAMzhF,MAAQ1R,GAAQ+Z,OAAOx3B,EAAS,GAAGuwI,OAAO9sG,EAAKzjC,SAAW,EAAIyd,GAAQ8yH,OAAO,EAAG,CAAEh7G,KAAMz0B,IAC5IyZ,KAAK+hI,MAAMoP,eAAehoH,EAAOykH,EAAQt+E,QAAQytE,QAAQyC,MACzDx/H,KAAK+hI,MAAMpG,QAAQuV,SACnBlxI,KAAK+hI,MAAMpR,aAAat6B,EAAMzhF,MAAQnvB,EAAQmoJ,EAAQt+E,QAAQytE,QAAQK,OACxE,GAEF,YAAa,CACXx3I,IAAKioJ,EAASlpJ,KAAKspJ,MACnBvG,WAAW,EACXj/H,OAAQ,CAAC,cACTspB,OAAQ,QACR4H,OAAQ,QACR80B,QAAS,SAAiB4nC,GACxB,IAAIq7C,EAAkB1xI,KAAK+hI,MAAM2M,QAAQr4C,EAAMzhF,OAC3C+8H,EAAmBzqJ,EAAewqJ,EAAiB,GACnDxoH,EAAOyoH,EAAiB,GACxBzuI,EAASyuI,EAAiB,GAE1BxoH,GAAQ,IAAI6vG,EAAa1pE,SAAU0mE,OAAO3/B,EAAMzhF,MAAQsU,EAAKzjC,SAAWyd,EAAS,GAAG8yH,OAAO,EAAG,CAAE,aAAc,OAAQ/4G,OAAO,GACjIjd,KAAK+hI,MAAMoP,eAAehoH,EAAOykH,EAAQt+E,QAAQytE,QAAQyC,KAC3D,GAEF,aAAc8P,EAAsBzB,EAASlpJ,KAAK8qJ,MAAM,GACxD,mBAAoBH,EAAsBzB,EAASlpJ,KAAK8qJ,MAAM,GAC9D,cAAeH,EAAsBzB,EAASlpJ,KAAK+qJ,OAAO,GAC1D,oBAAqBJ,EAAsBzB,EAASlpJ,KAAK+qJ,OAAO,KA0NpEprJ,EAAQgrE,QAAUu+E,EAClBvpJ,EAAQqpJ,SAAWA,CAEZ,WAESj1I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAAIW,EAAgb,SAAUC,EAAK5B,GAAK,GAAIiC,MAAMC,QAAQN,GAAQ,OAAOA,EAAY,GAAIhB,OAAOC,YAAYxB,OAAOuC,GAAQ,OAAxf,SAAuBA,EAAK5B,GAAK,IAAIsC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWH,OAAKmH,EAAW,IAAM,IAAK,IAAiCpH,EAA7BD,EAAKP,EAAIhB,OAAOC,cAAmB0B,GAAMH,EAAKD,EAAGM,QAAQC,QAAoBJ,EAAK1C,KAAKwC,EAAGpB,QAAYhB,GAAKsC,EAAKpC,SAAWF,GAA3DuC,GAAK,GAAkE,CAAE,MAAOI,GAAOH,GAAK,EAAMH,EAAKM,CAAK,CAAE,QAAU,KAAWJ,GAAMJ,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAAuH6yI,CAAcvzI,EAAK5B,GAAa,MAAM,IAAIuD,UAAU,uDAA2D,EAE7oB+vI,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAEreu8D,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfO,EAAczpE,EAFD4iE,EAAoB,IAMjCgH,EAAS5pE,EAFD4iE,EAAoB,IAIhC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAQ9F,IAAI0rJ,EAAS,SAAUlY,GAUrB,SAASkY,EAAO38I,EAAS+3H,IAhB3B,SAAyBnxB,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAiBpJuwI,CAAgBr5H,KAAM4xI,GAEtB,IAAI7zB,EAjBR,SAAoCx/G,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAiB/NqyI,CAA2Bt5H,MAAO4xI,EAAOjsF,WAAa/gE,OAAOioD,eAAe+kG,IAAS3qJ,KAAK+Y,KAAM/K,IAM5G,OAJA8oH,EAAMiP,UAAYA,EAClBjP,EAAMgpB,SAAWt1G,SAASkgF,eAAeigC,EAAO5L,UAChDjoB,EAAM9oH,QAAQslE,YAAYwjD,EAAMgpB,UAChChpB,EAAM8zB,QAAU,EACT9zB,CACT,CAuHA,OA7IF,SAAmByb,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAUqY,EAAQlY,GAElBjB,EAAamZ,EAAQ,KAAM,CAAC,CAC1BhsJ,IAAK,QACLW,MAAO,WAEP,KAeFkyI,EAAamZ,EAAQ,CAAC,CACpBhsJ,IAAK,SACLW,MAAO,WAEc,MAAfyZ,KAAK84H,QAAgB94H,KAAK84H,OAAOh3C,YAAY9hF,KACnD,GACC,CACDpa,IAAK,SACLW,MAAO,SAAgBkC,EAAMlC,GAC3B,GAAqB,IAAjByZ,KAAK6xI,QACP,OAAOhZ,EAAK+Y,EAAOtrJ,UAAUq/D,WAAa/gE,OAAOioD,eAAe+kG,EAAOtrJ,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,KAAMvX,EAAMlC,GAItH,IAFA,IAAIjB,EAAS0a,KACT4U,EAAQ,EACK,MAAVtvB,GAAkBA,EAAO+0I,QAAQxkF,QAAUojF,EAAY3pE,QAAQ+jE,MAAMyG,YAC1EllH,GAAStvB,EAAO4d,OAAO5d,EAAOwzI,QAC9BxzI,EAASA,EAAOwzI,OAEJ,MAAVxzI,IACF0a,KAAK6xI,QAAUD,EAAO5L,SAASvgJ,OAC/BH,EAAOs+I,WACPt+I,EAAOk+I,SAAS5uH,EAAOg9H,EAAO5L,SAASvgJ,OAAQgD,EAAMlC,GACrDyZ,KAAK6xI,QAAU,EAEnB,GACC,CACDjsJ,IAAK,QACLW,MAAO,SAAe6E,EAAM8X,GAC1B,OAAI9X,IAAS4U,KAAK+mI,SAAiB,EAC5BlO,EAAK+Y,EAAOtrJ,UAAUq/D,WAAa/gE,OAAOioD,eAAe+kG,EAAOtrJ,WAAY,QAAS0Z,MAAM/Y,KAAK+Y,KAAM5U,EAAM8X,EACrH,GACC,CACDtd,IAAK,SACLW,MAAO,WACL,OAAOyZ,KAAK6xI,OACd,GACC,CACDjsJ,IAAK,WACLW,MAAO,WACL,MAAO,CAACyZ,KAAK+mI,SAAU/mI,KAAK+mI,SAASxnI,KAAK9Z,OAC5C,GACC,CACDG,IAAK,SACLW,MAAO,WACLsyI,EAAK+Y,EAAOtrJ,UAAUq/D,WAAa/gE,OAAOioD,eAAe+kG,EAAOtrJ,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,MACjGA,KAAK84H,OAAS,IAChB,GACC,CACDlzI,IAAK,UACLW,MAAO,WACL,IAAIyZ,KAAKgtH,UAAUsZ,WAA4B,MAAftmI,KAAK84H,OAArC,CACA,IAAIiO,EAAW/mI,KAAK+mI,SAChB1wC,EAAQr2F,KAAKgtH,UAAU8Z,iBACvBgL,OAAc,EACdzxF,OAAQ,EACRphB,OAAM,EACV,GAAa,MAATo3D,GAAiBA,EAAMh2C,MAAMj1D,OAAS27I,GAAY1wC,EAAMp3D,IAAI7zC,OAAS27I,EAAU,CACjF,IAAI52I,EAAO,CAAC42I,EAAU1wC,EAAMh2C,MAAMn9C,OAAQmzF,EAAMp3D,IAAI/7B,QACpD4uI,EAAc3hJ,EAAK,GACnBkwD,EAAQlwD,EAAK,GACb8uC,EAAM9uC,EAAK,EACb,CAEA,KAAiC,MAA1B6P,KAAK/K,QAAQitF,WAAqBliF,KAAK/K,QAAQitF,YAAcliF,KAAK+mI,UACvE/mI,KAAK/K,QAAQitD,WAAWoY,aAAat6D,KAAK/K,QAAQitF,UAAWliF,KAAK/K,SAEpE,GAAI+K,KAAK+mI,SAASxnI,OAASqyI,EAAO5L,SAAU,CAC1C,IAAI9iF,EAAOljD,KAAK+mI,SAASxnI,KAAK+H,MAAMsqI,EAAO5L,UAAU1xH,KAAK,IACtDtU,KAAKhY,gBAAgBoxI,EAAO9pE,SAC9BwiF,EAAc9xI,KAAKhY,KAAKiN,QACxB+K,KAAKhY,KAAK6xI,SAAS,EAAG32E,GACtBljD,KAAK+mI,SAASxnI,KAAOqyI,EAAO5L,WAE5BhmI,KAAK+mI,SAASxnI,KAAO2jD,EACrBljD,KAAK84H,OAAOx+D,aAAa2+D,EAAY3pE,QAAQl6D,OAAO4K,KAAK+mI,UAAW/mI,MACpEA,KAAK+mI,SAAWt1G,SAASkgF,eAAeigC,EAAO5L,UAC/ChmI,KAAK/K,QAAQslE,YAAYv6D,KAAK+mI,UAElC,CAEA,GADA/mI,KAAKqY,SACQ,MAATgoC,EAAe,CACjB,IAAImgF,EAAO,CAACngF,EAAOphB,GAAKtkB,KAAI,SAAUzX,GACpC,OAAOb,KAAK+tB,IAAI,EAAG/tB,KAAK8tB,IAAI2hH,EAAYvyI,KAAK9Z,OAAQyd,EAAS,GAChE,IAEIu9H,EAAQv5I,EAAes5I,EAAM,GAKjC,OAHAngF,EAAQogF,EAAM,GACdxhG,EAAMwhG,EAAM,GAEL,CACL0G,UAAW2K,EACX1K,YAAa/mF,EACbgnF,QAASyK,EACTxK,UAAWroG,EAEf,CA9C2D,CA+C7D,GACC,CACDr5C,IAAK,SACLW,MAAO,SAAgB01I,EAAWnoG,GAChC,IAAIkmG,EAASh6H,KAEb,GAAIi8H,EAAUzN,MAAK,SAAUkc,GAC3B,MAAyB,kBAAlBA,EAAS/2I,MAA4B+2I,EAASplJ,SAAW00I,EAAO+M,QACzE,IAAI,CACF,IAAI1wC,EAAQr2F,KAAKunI,UACblxC,IAAOviE,EAAQuiE,MAAQA,EAC7B,CACF,GACC,CACDzwG,IAAK,QACLW,MAAO,WACL,MAAO,EACT,KAGKqrJ,CACT,CA5Ia,CA4IX3Y,EAAY3pE,QAAQqkE,OAEtBie,EAAOpc,SAAW,SAClBoc,EAAO79I,UAAY,YACnB69I,EAAOrvF,QAAU,OACjBqvF,EAAO5L,SAAW,SAGlB1hJ,EAAQgrE,QAAUsiF,CAEX,WAESl5I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAEI0yI,EAAczpE,EAFD4iE,EAAoB,IAIjC8R,EAAS9R,EAAoB,GAE7BwQ,EAAUpzE,EAAuB00E,GAErC,SAAS10E,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAQ9F,IAAIstI,EAAY,SAAUue,GAGxB,SAASve,IAGP,OAZJ,SAAyB33B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMwzH,GAR1B,SAAoCj1H,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAOwzH,EAAU7tE,WAAa/gE,OAAOioD,eAAe2mF,IAAYpuI,MAAM4a,KAAMxa,WAChH,CAEA,OAXF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAU/F,EAAWue,GAQdve,CACT,CAVgB,CAUdyF,EAAY3pE,QAAQkkE,WAEtBA,EAAU+G,gBAAkB,CAACqI,EAAQtzE,QAAS40E,EAAO3L,WAAY/E,GAEjElvI,EAAQgrE,QAAUkkE,CAEX,WAES96H,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQ0tJ,WAAa1tJ,EAAQ2tJ,WAAa3tJ,EAAQ4tJ,qBAAkBnjJ,EAEpE,IAQgC7I,EAR5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAEreilE,EAAa/O,EAAoB,GAEjC6G,GAE4B/yI,EAFSi7I,IAEYj7I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,GAQnFgsJ,EAAkB,SAAUC,GAG9B,SAASD,IAGP,OAZJ,SAAyBr2C,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMkyI,GAR1B,SAAoC3zI,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAOkyI,EAAgBvsF,WAAa/gE,OAAOioD,eAAeqlG,IAAkB9sJ,MAAM4a,KAAMxa,WAC5H,CAcA,OAvBF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAU2Y,EAAiBC,GAQ3B1Z,EAAayZ,EAAiB,CAAC,CAC7BtsJ,IAAK,QACLW,MAAO,SAAe0O,GACpB,IAAI1O,EAAQsyI,EAAKqZ,EAAgB5rJ,UAAUq/D,WAAa/gE,OAAOioD,eAAeqlG,EAAgB5rJ,WAAY,QAAS0Z,MAAM/Y,KAAK+Y,KAAM/K,GACpI,OAAK1O,EAAMu0C,WAAW,SACtBv0C,EAAQA,EAAM0f,QAAQ,UAAW,IAAIA,QAAQ,UAAW,IACjD,IAAM1f,EAAM+gB,MAAM,KAAKqT,KAAI,SAAU28G,GAC1C,OAAQ,KAAOv2G,SAASu2G,GAAW/uI,SAAS,KAAKC,OAAO,EAC1D,IAAG8rB,KAAK,KAJ8B/tB,CAKxC,KAGK2rJ,CACT,CAtBsB,CAsBpBjZ,EAAY3pE,QAAQykE,WAAWG,OAE7B+d,EAAa,IAAIhZ,EAAY3pE,QAAQykE,WAAWE,MAAM,QAAS,WAAY,CAC7Ep+E,MAAOojF,EAAY3pE,QAAQ+jE,MAAMyB,SAE/Bkd,EAAa,IAAIE,EAAgB,QAAS,QAAS,CACrDr8F,MAAOojF,EAAY3pE,QAAQ+jE,MAAMyB,SAGnCxwI,EAAQ4tJ,gBAAkBA,EAC1B5tJ,EAAQ2tJ,WAAaA,EACrB3tJ,EAAQ0tJ,WAAaA,CAEd,WAESt5I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQ8tJ,SAAW9tJ,EAAQgrE,aAAUvgE,EAErC,IAQgC7I,EAR5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAErem2E,EAAUjgB,EAAoB,GAY9BkgB,EAAO,SAAUzP,GAGnB,SAASyP,IAGP,OAZJ,SAAyBz2C,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMsyI,GAR1B,SAAoC/zI,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAOsyI,EAAK3sF,WAAa/gE,OAAOioD,eAAeylG,IAAOltJ,MAAM4a,KAAMxa,WACtG,CA+BA,OAxCF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAU+Y,EAAMzP,GAQhBpK,EAAa6Z,EAAM,CAAC,CAClB1sJ,IAAK,SACLW,MAAO,SAAgBkC,EAAMlC,GAC3B,GAAIkC,IAASuX,KAAKq6H,QAAQ7E,WAAajvI,EAAO,OAAOsyI,EAAKyZ,EAAKhsJ,UAAUq/D,WAAa/gE,OAAOioD,eAAeylG,EAAKhsJ,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,KAAMvX,EAAMlC,GAC9JA,EAAQyZ,KAAK3Z,YAAY+rJ,SAAS7rJ,GAClCyZ,KAAK/K,QAAQg8E,aAAa,OAAQ1qF,EACpC,IACE,CAAC,CACHX,IAAK,SACLW,MAAO,SAAgBA,GACrB,IAAI6E,EAAOytI,EAAKyZ,EAAK3sF,WAAa/gE,OAAOioD,eAAeylG,GAAO,SAAUtyI,MAAM/Y,KAAK+Y,KAAMzZ,GAK1F,OAJAA,EAAQyZ,KAAKoyI,SAAS7rJ,GACtB6E,EAAK6lF,aAAa,OAAQ1qF,GAC1B6E,EAAK6lF,aAAa,MAAO,uBACzB7lF,EAAK6lF,aAAa,SAAU,UACrB7lF,CACT,GACC,CACDxF,IAAK,UACLW,MAAO,SAAiB0O,GACtB,OAAOA,EAAQguD,aAAa,OAC9B,GACC,CACDr9D,IAAK,WACLW,MAAO,SAAkBoJ,GACvB,OAAO4iJ,EAAU5iJ,EAAKqQ,KAAKwyI,oBAAsB7iJ,EAAMqQ,KAAKyyI,aAC9D,KAGKH,CACT,CAvCW,GARqBpsJ,EAFMmsJ,IAEensJ,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IA+C5EopE,SAOX,SAASijF,EAAU5iJ,EAAK+iJ,GACtB,IAAIC,EAASlhH,SAASzgC,cAAc,KACpC2hJ,EAAOlnH,KAAO97B,EACd,IAAI06B,EAAWsoH,EAAOlnH,KAAKjjC,MAAM,EAAGmqJ,EAAOlnH,KAAK5kC,QAAQ,MACxD,OAAO6rJ,EAAU7rJ,QAAQwjC,IAAa,CACxC,CAVAioH,EAAK9c,SAAW,OAChB8c,EAAK/vF,QAAU,IACf+vF,EAAKG,cAAgB,cACrBH,EAAKE,mBAAqB,CAAC,OAAQ,QAAS,SAAU,OAStDluJ,EAAQgrE,QAAUgjF,EAClBhuJ,EAAQ8tJ,SAAWG,CAEZ,WAES75I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAAIN,EAA4B,oBAAXE,QAAoD,kBAApBA,OAAOC,SAAwB,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAEvQuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfka,EAAapjF,EAFD4iE,EAAoB,KAMhCygB,EAAarjF,EAFD4iE,EAAoB,MAIpC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAI9F,IAAI4sJ,EAAiB,EAErB,SAASC,EAAoB9nJ,EAASm6D,GACpCn6D,EAAQgmF,aAAa7rB,IAAiD,SAApCn6D,EAAQg4D,aAAamC,IACzD,CAEA,IAAI4tF,EAAS,WACX,SAASA,EAAOC,GACd,IAAIl1B,EAAQ/9G,MAVhB,SAAyB67F,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAYpJuwI,CAAgBr5H,KAAMgzI,GAEtBhzI,KAAKizI,OAASA,EACdjzI,KAAKm7H,UAAY1pG,SAASzgC,cAAc,QACxCgP,KAAKkzI,cACLlzI,KAAKizI,OAAOt3E,MAAMk4C,QAAU,OAC5B7zG,KAAKizI,OAAO/wF,WAAWoY,aAAat6D,KAAKm7H,UAAWn7H,KAAKizI,QAEzDjzI,KAAK+2B,MAAMlL,iBAAiB,aAAa,WACvCkyF,EAAMo1B,cACR,IACAnzI,KAAK+2B,MAAMlL,iBAAiB,WAAW,SAAUhgC,GAC/C,OAAQA,EAAM6iG,SAEZ,KAAKkkD,EAAWtjF,QAAQ3qE,KAAKspJ,MAC3BlwB,EAAMo1B,eACN,MAGF,KAAKP,EAAWtjF,QAAQ3qE,KAAKosJ,OAC3BhzB,EAAMxgE,SACN1xD,EAAMwjG,iBAIZ,IACArvF,KAAKizI,OAAOpnH,iBAAiB,SAAU7rB,KAAKjP,OAAOmgE,KAAKlxD,MAC1D,CA2KA,OAzKAy4H,EAAaua,EAAQ,CAAC,CACpBptJ,IAAK,eACLW,MAAO,WACLyZ,KAAKm7H,UAAUE,UAAUS,OAAO,eAEhCiX,EAAoB/yI,KAAK+2B,MAAO,iBAChCg8G,EAAoB/yI,KAAK/R,QAAS,cACpC,GACC,CACDrI,IAAK,YACLW,MAAO,SAAmB6sJ,GACxB,IAAIpZ,EAASh6H,KAETu7B,EAAO9J,SAASzgC,cAAc,QA+BlC,OA9BAuqC,EAAKu0F,SAAW,IAChBv0F,EAAK01C,aAAa,OAAQ,UAE1B11C,EAAK8/F,UAAU13G,IAAI,kBACfyvH,EAAOC,aAAa,UACtB93G,EAAK01C,aAAa,aAAcmiE,EAAOnwF,aAAa,UAElDmwF,EAAOzwF,aACTpnB,EAAK01C,aAAa,aAAcmiE,EAAOzwF,aAEzCpnB,EAAK1P,iBAAiB,SAAS,WAC7BmuG,EAAOsZ,WAAW/3G,GAAM,EAC1B,IACAA,EAAK1P,iBAAiB,WAAW,SAAUhgC,GACzC,OAAQA,EAAM6iG,SAEZ,KAAKkkD,EAAWtjF,QAAQ3qE,KAAKspJ,MAC3BjU,EAAOsZ,WAAW/3G,GAAM,GACxB1vC,EAAMwjG,iBACN,MAGF,KAAKujD,EAAWtjF,QAAQ3qE,KAAKosJ,OAC3B/W,EAAOz8E,SACP1xD,EAAMwjG,iBAIZ,IAEO9zD,CACT,GACC,CACD31C,IAAK,aACLW,MAAO,WACL,IAAIwwC,EAAQtF,SAASzgC,cAAc,QAOnC,OANA+lC,EAAMskG,UAAU13G,IAAI,mBACpBoT,EAAM6qD,UAAYixD,EAAWvjF,QAC7Bv4B,EAAM+4F,SAAW,IACjB/4F,EAAMk6C,aAAa,OAAQ,UAC3Bl6C,EAAMk6C,aAAa,gBAAiB,SACpCjxE,KAAKm7H,UAAU5gE,YAAYxjC,GACpBA,CACT,GACC,CACDnxC,IAAK,eACLW,MAAO,WACL,IAAIk2I,EAASz8H,KAET/R,EAAUwjC,SAASzgC,cAAc,QACrC/C,EAAQotI,UAAU13G,IAAI,qBAGtB11B,EAAQgjF,aAAa,cAAe,QACpChjF,EAAQ6hI,SAAW,KAGnB7hI,EAAQ6F,GAAK,qBAAuBg/I,EACpCA,GAAkB,EAClB9yI,KAAK+2B,MAAMk6C,aAAa,gBAAiBhjF,EAAQ6F,IAEjDkM,KAAK/R,QAAUA,EAEf,GAAGzF,MAAMvB,KAAK+Y,KAAKizI,OAAOhlJ,SAAStI,SAAQ,SAAUytJ,GACnD,IAAI73G,EAAOkhG,EAAO8W,UAAUH,GAC5BnlJ,EAAQssE,YAAYh/B,IACI,IAApB63G,EAAOnyD,UACTw7C,EAAO6W,WAAW/3G,EAEtB,IACAv7B,KAAKm7H,UAAU5gE,YAAYtsE,EAC7B,GACC,CACDrI,IAAK,cACLW,MAAO,WACL,IAAIu2I,EAAS98H,KAEb,GAAGxX,MAAMvB,KAAK+Y,KAAKizI,OAAO5vF,YAAY19D,SAAQ,SAAU41C,GACtDuhG,EAAO3B,UAAUlqD,aAAa11C,EAAK9yC,KAAM8yC,EAAKh1C,MAChD,IACAyZ,KAAKm7H,UAAUE,UAAU13G,IAAI,aAC7B3jB,KAAK+2B,MAAQ/2B,KAAKwzI,aAClBxzI,KAAKyzI,cACP,GACC,CACD7tJ,IAAK,SACLW,MAAO,WACL,IAAI82I,EAASr9H,KAGbA,KAAK0zI,QAGLjrH,YAAW,WACT,OAAO40G,EAAOtmG,MAAMijE,OACtB,GAAG,EACL,GACC,CACDp0G,IAAK,QACLW,MAAO,WACLyZ,KAAKm7H,UAAUE,UAAUhjH,OAAO,eAChCrY,KAAK+2B,MAAMk6C,aAAa,gBAAiB,SACzCjxE,KAAK/R,QAAQgjF,aAAa,cAAe,OAC3C,GACC,CACDrrF,IAAK,aACLW,MAAO,SAAoBg1C,GACzB,IAAIo4G,EAAUnuJ,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,IAAmBA,UAAU,GAEzEy7F,EAAWjhF,KAAKm7H,UAAU8E,cAAc,gBAC5C,GAAI1kG,IAAS0lD,IACG,MAAZA,GACFA,EAASo6C,UAAUhjH,OAAO,eAEhB,MAARkjB,IACJA,EAAK8/F,UAAU13G,IAAI,eACnB3jB,KAAKizI,OAAOW,cAAgB,GAAG/sJ,QAAQI,KAAKs0C,EAAK2mB,WAAW7xD,SAAUkrC,GAClEA,EAAK83G,aAAa,cACpBrzI,KAAK+2B,MAAMk6C,aAAa,aAAc11C,EAAK0nB,aAAa,eAExDjjD,KAAK+2B,MAAMguB,gBAAgB,cAEzBxpB,EAAK83G,aAAa,cACpBrzI,KAAK+2B,MAAMk6C,aAAa,aAAc11C,EAAK0nB,aAAa,eAExDjjD,KAAK+2B,MAAMguB,gBAAgB,cAEzB4uF,IAAS,CACX,GAAqB,oBAAVE,MACT7zI,KAAKizI,OAAO3lD,cAAc,IAAIumD,MAAM,gBAC/B,GAAsE,YAAhD,qBAAVA,MAAwB,YAAc5tJ,EAAQ4tJ,QAAsB,CAErF,IAAIhoJ,EAAQ4lC,SAASqiH,YAAY,SACjCjoJ,EAAMkoJ,UAAU,UAAU,GAAM,GAChC/zI,KAAKizI,OAAO3lD,cAAczhG,EAC5B,CACAmU,KAAK0zI,OACP,CACF,GACC,CACD9tJ,IAAK,SACLW,MAAO,WACL,IAAI6sJ,OAAS,EACb,GAAIpzI,KAAKizI,OAAOW,eAAiB,EAAG,CAClC,IAAIr4G,EAAOv7B,KAAKm7H,UAAU8E,cAAc,sBAAsB5vI,SAAS2P,KAAKizI,OAAOW,eACnFR,EAASpzI,KAAKizI,OAAOhlJ,QAAQ+R,KAAKizI,OAAOW,eACzC5zI,KAAKszI,WAAW/3G,EAClB,MACEv7B,KAAKszI,WAAW,MAElB,IAAIU,EAAqB,MAAVZ,GAAkBA,IAAWpzI,KAAKizI,OAAOhT,cAAc,oBACtEjgI,KAAK+2B,MAAMskG,UAAUS,OAAO,YAAakY,EAC3C,KAGKhB,CACT,CA3Ma,GA6Mb1uJ,EAAQgrE,QAAU0jF,CAEX,WAESt6I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAEI0yI,EAAczpE,EAFD4iE,EAAoB,IAMjCwb,EAAUp+E,EAFD4iE,EAAoB,IAI7B8R,EAAS9R,EAAoB,GAE7BwQ,EAAUpzE,EAAuB00E,GAIjChL,EAAU1pE,EAFD4iE,EAAoB,KAM7B4a,EAAcx9E,EAFD4iE,EAAoB,KAMjC6R,EAAWz0E,EAFD4iE,EAAoB,KAM9B6hB,EAAUzkF,EAFD4iE,EAAoB,KAM7B+G,EAAW3pE,EAFD4iE,EAAoB,IAM9B8hB,EAAW1kF,EAFD4iE,EAAoB,KAM9BgH,EAAS5pE,EAFD4iE,EAAoB,IAM5B+hB,EAAc3kF,EAFD4iE,EAAoB,KAMjCgiB,EAAY5kF,EAFD4iE,EAAoB,KAM/BwgB,EAAapjF,EAFD4iE,EAAoB,KAIpC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F0nJ,EAAQt+E,QAAQikE,SAAS,CACvB,cAAeqP,EAAQtzE,QACvB,oBAAqB40E,EAAO3L,WAC5B,cAAeW,EAAQ5pE,QACvB,kBAAmB09E,EAAY19E,QAC/B,eAAgB20E,EAAS30E,QACzB,cAAe2kF,EAAQ3kF,QACvB,eAAgB6pE,EAAS7pE,QACzB,eAAgB4kF,EAAS5kF,QACzB,aAAc8pE,EAAO9pE,QAErB,oBAAqB6kF,EAAY7kF,QACjC,kBAAmB8kF,EAAU9kF,QAC7B,mBAAoBsjF,EAAWtjF,UAGjC2pE,EAAY3pE,QAAQikE,SAASqP,EAAQtzE,QAAS4pE,EAAQ5pE,QAAS20E,EAAS30E,QAAS6pE,EAAS7pE,QAAS4kF,EAAS5kF,QAAS8pE,EAAO9pE,SAE5HhrE,EAAQgrE,QAAUs+E,EAAQt+E,OAEnB,WAES52D,EAAQpU,EAAS8tI,GAEjC,aAEAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAI4sI,EAAWf,EAAoB,GAC/BiiB,EAA4B,WAC5B,SAASA,EAAWp/I,GAChB+K,KAAK/K,QAAUA,EAEf+K,KAAK/K,QAAQk+H,EAAS+B,UAAY,CAAEG,KAAMr1H,KAC9C,CAiJA,OAhJApb,OAAOoB,eAAequJ,EAAW/tJ,UAAW,UAAW,CAEnDgS,IAAK,WACD,OAAO0H,KAAK3Z,WAChB,EACAnB,YAAY,EACZsB,cAAc,IAElB6tJ,EAAWj/I,OAAS,SAAU7O,GAC1B,GAAoB,MAAhByZ,KAAKuiD,QACL,MAAM,IAAI4wE,EAASoB,eAAe,mCAEtC,IAAInpI,EAwBJ,OAvBI5D,MAAMC,QAAQuY,KAAKuiD,UACE,kBAAVh8D,IACPA,EAAQA,EAAMkN,cACVstB,SAASx6B,GAAOgC,aAAehC,IAC/BA,EAAQw6B,SAASx6B,KAIrB6E,EADiB,kBAAV7E,EACAkrC,SAASzgC,cAAcgP,KAAKuiD,QAAQh8D,EAAQ,IAE9CyZ,KAAKuiD,QAAQ17D,QAAQN,IAAU,EAC7BkrC,SAASzgC,cAAczK,GAGvBkrC,SAASzgC,cAAcgP,KAAKuiD,QAAQ,KAI/Cn3D,EAAOqmC,SAASzgC,cAAcgP,KAAKuiD,SAEnCviD,KAAKjM,WACL3I,EAAKiwI,UAAU13G,IAAI3jB,KAAKjM,WAErB3I,CACX,EACAipJ,EAAW/tJ,UAAUshJ,OAAS,WACP,MAAf5nI,KAAK84H,SACL94H,KAAK4wH,OAAS5wH,KAAK84H,OAAOlI,OAElC,EACAyjB,EAAW/tJ,UAAU0wE,MAAQ,WACzB,IAAI/hE,EAAU+K,KAAK/K,QAAQq/I,WAAU,GACrC,OAAOnhB,EAAS/9H,OAAOH,EAC3B,EACAo/I,EAAW/tJ,UAAU2jJ,OAAS,WACP,MAAfjqI,KAAK84H,QACL94H,KAAK84H,OAAOh3C,YAAY9hF,aAErBA,KAAK/K,QAAQk+H,EAAS+B,SACjC,EACAmf,EAAW/tJ,UAAU68I,SAAW,SAAUvuH,EAAOnvB,GAClCua,KAAK8gI,QAAQlsH,EAAOnvB,GAC1B4yB,QACT,EACAg8H,EAAW/tJ,UAAUk9I,SAAW,SAAU5uH,EAAOnvB,EAAQgD,EAAMlC,GAC3D,IAAI8uI,EAAOr1H,KAAK8gI,QAAQlsH,EAAOnvB,GAC/B,GAAiD,MAA7C0tI,EAAS5qH,MAAM9f,EAAM0qI,EAASE,MAAMwN,OAAiBt6I,EACrD8uI,EAAK0L,KAAKt4I,EAAMlC,QAEf,GAAsD,MAAlD4sI,EAAS5qH,MAAM9f,EAAM0qI,EAASE,MAAMqP,WAAoB,CAC7D,IAAI5J,EAAS3F,EAAS/9H,OAAO4K,KAAKq6H,QAAQxkF,OAC1Cw/E,EAAK0L,KAAKjI,GACVA,EAAOrwH,OAAOhgB,EAAMlC,EACxB,CACJ,EACA8tJ,EAAW/tJ,UAAUuzI,SAAW,SAAUjlH,EAAOruB,EAAOqzI,GACpD,IAAIvE,EAAc,MAAPuE,EAAczG,EAAS/9H,OAAO,OAAQ7O,GAAS4sI,EAAS/9H,OAAO7O,EAAOqzI,GAC7EptI,EAAMwT,KAAKsH,MAAMsN,GACrB5U,KAAK84H,OAAOx+D,aAAa+6D,EAAM7oI,EACnC,EACA6nJ,EAAW/tJ,UAAU8jJ,WAAa,SAAUmK,EAAYpK,QACpC,IAAZA,IAAsBA,EAAU,MACjB,MAAfnqI,KAAK84H,QACL94H,KAAK84H,OAAOzoI,SAASgoB,OAAOrY,MAEhC,IAAIw0I,EAAa,KACjBD,EAAWlkJ,SAASiqE,aAAat6D,KAAMmqI,GACxB,MAAXA,IACAqK,EAAarK,EAAQl1I,SAErB+K,KAAK/K,QAAQitD,YAAcqyF,EAAWt/I,SACtC+K,KAAK/K,QAAQkjG,aAAeq8C,GAC5BD,EAAWt/I,QAAQqlE,aAAat6D,KAAK/K,QAASu/I,GAElDx0I,KAAK84H,OAASyb,EACdv0I,KAAK4nI,QACT,EACAyM,EAAW/tJ,UAAUw6I,QAAU,SAAUlsH,EAAOnvB,GAC5C,IAAIH,EAAS0a,KAAKsH,MAAMsN,GAExB,OADAtvB,EAAOgiB,MAAM7hB,GACNH,CACX,EACA+uJ,EAAW/tJ,UAAUb,OAAS,WAC1B,OAAO,CACX,EACA4uJ,EAAW/tJ,UAAU4c,OAAS,SAAUu3E,GAEpC,YADa,IAATA,IAAmBA,EAAOz6E,KAAK84H,QAChB,MAAf94H,KAAK84H,QAAkB94H,MAAQy6E,EACxB,EACJz6E,KAAK84H,OAAOzoI,SAAS6S,OAAOlD,MAAQA,KAAK84H,OAAO51H,OAAOu3E,EAClE,EACA45D,EAAW/tJ,UAAUs9I,SAAW,SAAU9vG,GAGC,MAAnC9zB,KAAK/K,QAAQk+H,EAAS+B,kBAEfl1H,KAAK/K,QAAQk+H,EAAS+B,UAAU+G,SAE/C,EACAoY,EAAW/tJ,UAAU+xB,OAAS,WACK,MAA3BrY,KAAK/K,QAAQitD,YACbliD,KAAK/K,QAAQitD,WAAW4/B,YAAY9hF,KAAK/K,SAE7C+K,KAAKiqI,QACT,EACAoK,EAAW/tJ,UAAU2f,QAAU,SAAU3gB,GAChB,MAAjBA,EAAOwzI,SAEXxzI,EAAOwzI,OAAOx+D,aAAat6D,KAAM1a,EAAO0C,MACxC1C,EAAO+yB,SACX,EACAg8H,EAAW/tJ,UAAUykJ,YAAc,SAAUtiJ,EAAMlC,GAC/C,IAAIykJ,EAA8B,kBAATviJ,EAAoB0qI,EAAS/9H,OAAO3M,EAAMlC,GAASkC,EAE5E,OADAuiJ,EAAY/kI,QAAQjG,MACbgrI,CACX,EACAqJ,EAAW/tJ,UAAUghB,MAAQ,SAAUsN,EAAOwlH,GAC1C,OAAiB,IAAVxlH,EAAc5U,KAAOA,KAAKhY,IACrC,EACAqsJ,EAAW/tJ,UAAUyK,OAAS,SAAUkrI,EAAWnoG,GAC/C,EAEJugH,EAAW/tJ,UAAUy6I,KAAO,SAAUt4I,EAAMlC,GACxC,IAAIy8H,EAA0B,kBAATv6H,EAAoB0qI,EAAS/9H,OAAO3M,EAAMlC,GAASkC,EAKxE,OAJmB,MAAfuX,KAAK84H,QACL94H,KAAK84H,OAAOx+D,aAAa0oD,EAAShjH,KAAKhY,MAE3Cg7H,EAAQzoD,YAAYv6D,MACbgjH,CACX,EACAqxB,EAAW7e,SAAW,WACf6e,CACX,CAvJgC,GAwJhC/vJ,EAAQgrE,QAAU+kF,CAGX,WAES37I,EAAQpU,EAAS8tI,GAEjC,aAEAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAIwsI,EAAeX,EAAoB,IACnCY,EAAUZ,EAAoB,IAC9Ba,EAAUb,EAAoB,IAC9Be,EAAWf,EAAoB,GAC/BqiB,EAAiC,WACjC,SAASA,EAAgBx/I,GACrB+K,KAAKqjD,WAAa,CAAC,EACnBrjD,KAAK/K,QAAUA,EACf+K,KAAKotB,OACT,CAwDA,OAvDAqnH,EAAgBnuJ,UAAU8+D,UAAY,SAAUA,EAAW7+D,GAEnDA,EACI6+D,EAAUzhC,IAAI3jB,KAAK/K,QAAS1O,KACS,MAAjC6+D,EAAU7+D,MAAMyZ,KAAK/K,SACrB+K,KAAKqjD,WAAW+B,EAAUqwE,UAAYrwE,SAG/BplD,KAAKqjD,WAAW+B,EAAUqwE,YAKzCrwE,EAAU/sC,OAAOrY,KAAK/K,gBACf+K,KAAKqjD,WAAW+B,EAAUqwE,UAEzC,EACAgf,EAAgBnuJ,UAAU8mC,MAAQ,WAC9B,IAAI2wF,EAAQ/9G,KACZA,KAAKqjD,WAAa,CAAC,EACnB,IAAIA,EAAa0vE,EAAazjE,QAAQ3qE,KAAKqb,KAAK/K,SAC5Cu/H,EAAUxB,EAAQ1jE,QAAQ3qE,KAAKqb,KAAK/K,SACpCy/I,EAASzhB,EAAQ3jE,QAAQ3qE,KAAKqb,KAAK/K,SACvCouD,EACK30D,OAAO8lI,GACP9lI,OAAOgmJ,GACP/uJ,SAAQ,SAAU8C,GACnB,IAAIuoF,EAAOmiD,EAAS5qH,MAAM9f,EAAM0qI,EAASE,MAAMqP,WAC3C1xD,aAAgB+hD,EAAazjE,UAC7ByuD,EAAM16D,WAAW2tB,EAAKykD,UAAYzkD,EAE1C,GACJ,EACAyjE,EAAgBnuJ,UAAUwmB,KAAO,SAAUxnB,GACvC,IAAIy4H,EAAQ/9G,KACZpb,OAAOD,KAAKqb,KAAKqjD,YAAY19D,SAAQ,SAAUC,GAC3C,IAAIW,EAAQw3H,EAAM16D,WAAWz9D,GAAKW,MAAMw3H,EAAM9oH,SAC9C3P,EAAOmjB,OAAO7iB,EAAKW,EACvB,GACJ,EACAkuJ,EAAgBnuJ,UAAU2kJ,KAAO,SAAU3lJ,GACvC,IAAIy4H,EAAQ/9G,KACZA,KAAK8M,KAAKxnB,GACVV,OAAOD,KAAKqb,KAAKqjD,YAAY19D,SAAQ,SAAUC,GAC3Cm4H,EAAM16D,WAAWz9D,GAAKyyB,OAAO0lG,EAAM9oH,QACvC,IACA+K,KAAKqjD,WAAa,CAAC,CACvB,EACAoxF,EAAgBnuJ,UAAU60B,OAAS,WAC/B,IAAI4iG,EAAQ/9G,KACZ,OAAOpb,OAAOD,KAAKqb,KAAKqjD,YAAYj1D,QAAO,SAAUi1D,EAAY56D,GAE7D,OADA46D,EAAW56D,GAAQs1H,EAAM16D,WAAW56D,GAAMlC,MAAMw3H,EAAM9oH,SAC/CouD,CACX,GAAG,CAAC,EACR,EACOoxF,CACX,CA9DqC,GA+DrCnwJ,EAAQgrE,QAAUmlF,CAGX,WAES/7I,EAAQpU,EAAS8tI,GAEjC,aAEA,IAAIzE,EAAa3tH,MAAQA,KAAK2tH,WAAe,WACzC,IAAIyG,EAAgBxvI,OAAOyvI,gBACtB,CAAE1uE,UAAW,cAAgBn+D,OAAS,SAAUia,EAAGL,GAAKK,EAAEkkD,UAAYvkD,CAAG,GAC1E,SAAUK,EAAGL,GAAK,IAAK,IAAIi4D,KAAKj4D,EAAOA,EAAElY,eAAemwE,KAAI53D,EAAE43D,GAAKj4D,EAAEi4D,GAAI,EAC7E,OAAO,SAAU53D,EAAGL,GAEhB,SAASkzH,IAAOt0H,KAAK3Z,YAAcob,CAAG,CADtC2yH,EAAc3yH,EAAGL,GAEjBK,EAAEnb,UAAkB,OAAN8a,EAAaxc,OAAOwQ,OAAOgM,IAAMkzH,EAAGhuI,UAAY8a,EAAE9a,UAAW,IAAIguI,EACnF,CACJ,CAT6C,GAY7C,SAASpuH,EAAM9a,EAAM2mC,GAEjB,OADgB3mC,EAAK63D,aAAa,UAAY,IAC7B37C,MAAM,OAAOviB,QAAO,SAAU0D,GAC3C,OAAsC,IAA/BA,EAAK5B,QAAQkrC,EAAS,IACjC,GACJ,CAPAntC,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IAQtD,IAAIouJ,EAAiC,SAAUplG,GAE3C,SAASolG,IACL,OAAkB,OAAXplG,GAAmBA,EAAOnqD,MAAM4a,KAAMxa,YAAcwa,IAC/D,CA8BA,OAjCA2tH,EAAUgnB,EAAiBplG,GAI3BolG,EAAgBhwJ,KAAO,SAAUyG,GAC7B,OAAQA,EAAK63D,aAAa,UAAY,IAAI37C,MAAM,OAAOqT,KAAI,SAAUlyB,GACjE,OAAOA,EACF6e,MAAM,KACN9e,MAAM,GAAI,GACV8rB,KAAK,IACd,GACJ,EACAqgI,EAAgBruJ,UAAUq9B,IAAM,SAAUv4B,EAAM7E,GAC5C,QAAKyZ,KAAK2iI,OAAOv3I,EAAM7E,KAEvByZ,KAAKqY,OAAOjtB,GACZA,EAAKiwI,UAAU13G,IAAI3jB,KAAK65B,QAAU,IAAMtzC,IACjC,EACX,EACAouJ,EAAgBruJ,UAAU+xB,OAAS,SAAUjtB,GAC3B8a,EAAM9a,EAAM4U,KAAK65B,SACvBl0C,SAAQ,SAAU8C,GACtB2C,EAAKiwI,UAAUhjH,OAAO5vB,EAC1B,IAC8B,IAA1B2C,EAAKiwI,UAAU51I,QACf2F,EAAK25D,gBAAgB,QAE7B,EACA4vF,EAAgBruJ,UAAUC,MAAQ,SAAU6E,GACxC,IACI7E,GADS2f,EAAM9a,EAAM4U,KAAK65B,SAAS,IAAM,IAC1BrxC,MAAMwX,KAAK65B,QAAQp0C,OAAS,GAC/C,OAAOua,KAAK2iI,OAAOv3I,EAAM7E,GAASA,EAAQ,EAC9C,EACOouJ,CACX,CAnCqC,CAPlBviB,EAAoB,IA0CxB9iE,SACfhrE,EAAQgrE,QAAUqlF,CAGX,WAESj8I,EAAQpU,EAAS8tI,GAEjC,aAEA,IAAIzE,EAAa3tH,MAAQA,KAAK2tH,WAAe,WACzC,IAAIyG,EAAgBxvI,OAAOyvI,gBACtB,CAAE1uE,UAAW,cAAgBn+D,OAAS,SAAUia,EAAGL,GAAKK,EAAEkkD,UAAYvkD,CAAG,GAC1E,SAAUK,EAAGL,GAAK,IAAK,IAAIi4D,KAAKj4D,EAAOA,EAAElY,eAAemwE,KAAI53D,EAAE43D,GAAKj4D,EAAEi4D,GAAI,EAC7E,OAAO,SAAU53D,EAAGL,GAEhB,SAASkzH,IAAOt0H,KAAK3Z,YAAcob,CAAG,CADtC2yH,EAAc3yH,EAAGL,GAEjBK,EAAEnb,UAAkB,OAAN8a,EAAaxc,OAAOwQ,OAAOgM,IAAMkzH,EAAGhuI,UAAY8a,EAAE9a,UAAW,IAAIguI,EACnF,CACJ,CAT6C,GAY7C,SAASsgB,EAASnsJ,GACd,IAAI4e,EAAQ5e,EAAK6e,MAAM,KACnBouB,EAAOruB,EACN7e,MAAM,GACNmyB,KAAI,SAAUorB,GACf,OAAOA,EAAK,GAAGtyC,cAAgBsyC,EAAKv9C,MAAM,EAC9C,IACK8rB,KAAK,IACV,OAAOjN,EAAM,GAAKquB,CACtB,CAXA9wC,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IAYtD,IAAIsuJ,EAAiC,SAAUtlG,GAE3C,SAASslG,IACL,OAAkB,OAAXtlG,GAAmBA,EAAOnqD,MAAM4a,KAAMxa,YAAcwa,IAC/D,CA0BA,OA7BA2tH,EAAUknB,EAAiBtlG,GAI3BslG,EAAgBlwJ,KAAO,SAAUyG,GAC7B,OAAQA,EAAK63D,aAAa,UAAY,IAAI37C,MAAM,KAAKqT,KAAI,SAAUp0B,GAE/D,OADUA,EAAM+gB,MAAM,KACX,GAAG6mC,MAClB,GACJ,EACA0mG,EAAgBvuJ,UAAUq9B,IAAM,SAAUv4B,EAAM7E,GAC5C,QAAKyZ,KAAK2iI,OAAOv3I,EAAM7E,KAGvB6E,EAAKuwE,MAAMi5E,EAAS50I,KAAK65B,UAAYtzC,GAC9B,EACX,EACAsuJ,EAAgBvuJ,UAAU+xB,OAAS,SAAUjtB,GAEzCA,EAAKuwE,MAAMi5E,EAAS50I,KAAK65B,UAAY,GAChCzuC,EAAK63D,aAAa,UACnB73D,EAAK25D,gBAAgB,QAE7B,EACA8vF,EAAgBvuJ,UAAUC,MAAQ,SAAU6E,GAExC,IAAI7E,EAAQ6E,EAAKuwE,MAAMi5E,EAAS50I,KAAK65B,UACrC,OAAO75B,KAAK2iI,OAAOv3I,EAAM7E,GAASA,EAAQ,EAC9C,EACOsuJ,CACX,CA/BqC,CAXlBziB,EAAoB,IA0CxB9iE,SACfhrE,EAAQgrE,QAAUulF,CAGX,WAESn8I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAAIkyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfoc,EAAQ,WACV,SAASA,EAAM/S,EAAO9zI,IAHxB,SAAyB4tG,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAIpJuwI,CAAgBr5H,KAAM80I,GAEtB90I,KAAK+hI,MAAQA,EACb/hI,KAAK/R,QAAUA,EACf+R,KAAK2vH,QAAU,CAAC,CAClB,CAsBA,OApBA8I,EAAaqc,EAAO,CAAC,CACnBlvJ,IAAK,OACLW,MAAO,WACL,IAAIw3H,EAAQ/9G,KAEZpb,OAAOD,KAAKqb,KAAK/R,QAAQ0hI,SAAShqI,SAAQ,SAAU8C,GACvB,MAAvBs1H,EAAM4R,QAAQlnI,IAChBs1H,EAAM2d,UAAUjzI,EAEpB,GACF,GACC,CACD7C,IAAK,YACLW,MAAO,SAAmBkC,GACxB,IAAIs3I,EAAc//H,KAAK+hI,MAAM17I,YAAYu5I,OAAO,WAAan3I,GAE7D,OADAuX,KAAK2vH,QAAQlnI,GAAQ,IAAIs3I,EAAY//H,KAAK+hI,MAAO/hI,KAAK/R,QAAQ0hI,QAAQlnI,IAAS,CAAC,GACzEuX,KAAK2vH,QAAQlnI,EACtB,KAGKqsJ,CACT,CA9BY,GAgCZA,EAAMnV,SAAW,CACfhQ,QAAS,CAAC,GAEZmlB,EAAMC,OAAS,CACb,QAAWD,GAGbxwJ,EAAQgrE,QAAUwlF,CAEX,WAESp8I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAAIkyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAIre+8D,EAAczpE,EAFD4iE,EAAoB,IAMjCgH,EAAS5pE,EAFD4iE,EAAoB,IAIhC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAQ9F,IAAI8uJ,EAAa,SAEbrhB,EAAQ,SAAU+F,GAGpB,SAAS/F,EAAMvoI,IAXjB,SAAyBywG,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAYpJuwI,CAAgBr5H,KAAM2zH,GAEtB,IAAI5V,EAZR,SAAoCx/G,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAY/NqyI,CAA2Bt5H,MAAO2zH,EAAMhuE,WAAa/gE,OAAOioD,eAAe8mF,IAAQ1sI,KAAK+Y,KAAM5U,IAY1G,OAVA2yH,EAAMk3B,YAAcxjH,SAASzgC,cAAc,QAC3C+sH,EAAMk3B,YAAYhkE,aAAa,mBAAmB,GAClD,GAAGzoF,MAAMvB,KAAK82H,EAAM9oH,QAAQ8tD,YAAYp9D,SAAQ,SAAUuvJ,GACxDn3B,EAAMk3B,YAAY16E,YAAY26E,EAChC,IACAn3B,EAAMo3B,UAAY1jH,SAASkgF,eAAeqjC,GAC1Cj3B,EAAMq3B,WAAa3jH,SAASkgF,eAAeqjC,GAC3Cj3B,EAAM9oH,QAAQslE,YAAYwjD,EAAMo3B,WAChCp3B,EAAM9oH,QAAQslE,YAAYwjD,EAAMk3B,aAChCl3B,EAAM9oH,QAAQslE,YAAYwjD,EAAMq3B,YACzBr3B,CACT,CAgEA,OAvFF,SAAmByb,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAK3eF,CAAU5F,EAAO+F,GAoBjBjB,EAAa9E,EAAO,CAAC,CACnB/tI,IAAK,QACLW,MAAO,SAAe6E,EAAM8X,GAC1B,OAAI9X,IAAS4U,KAAKm1I,UAAkB,EAChC/pJ,IAAS4U,KAAKo1I,WAAmB,EAC9Bvc,EAAKlF,EAAMrtI,UAAUq/D,WAAa/gE,OAAOioD,eAAe8mF,EAAMrtI,WAAY,QAAS0Z,MAAM/Y,KAAK+Y,KAAM5U,EAAM8X,EACnH,GACC,CACDtd,IAAK,UACLW,MAAO,SAAiB6E,GACtB,IAAIirG,OAAQ,EACR0wC,OAAW,EACX7jF,EAAO93D,EAAKmU,KAAK+H,MAAM0tI,GAAY1gI,KAAK,IAC5C,GAAIlpB,IAAS4U,KAAKm1I,UAChB,GAAIn1I,KAAKm0D,gBAAgBilE,EAAO9pE,QAAS,CACvC,IAAI+lF,EAAar1I,KAAKm0D,KAAK1uE,SAC3Bua,KAAKm0D,KAAK0lE,SAASwb,EAAYnyF,GAC/BmzC,EAAQ,CACN8wC,UAAWnnI,KAAKm0D,KAAKl/D,QACrBmyI,YAAaiO,EAAanyF,EAAKz9D,OAEnC,MACEshJ,EAAWt1G,SAASkgF,eAAezuD,GACnCljD,KAAK84H,OAAOx+D,aAAa2+D,EAAY3pE,QAAQl6D,OAAO2xI,GAAW/mI,MAC/Dq2F,EAAQ,CACN8wC,UAAWJ,EACXK,YAAalkF,EAAKz9D,aAGb2F,IAAS4U,KAAKo1I,aACnBp1I,KAAKhY,gBAAgBoxI,EAAO9pE,SAC9BtvD,KAAKhY,KAAK6xI,SAAS,EAAG32E,GACtBmzC,EAAQ,CACN8wC,UAAWnnI,KAAKhY,KAAKiN,QACrBmyI,YAAalkF,EAAKz9D,UAGpBshJ,EAAWt1G,SAASkgF,eAAezuD,GACnCljD,KAAK84H,OAAOx+D,aAAa2+D,EAAY3pE,QAAQl6D,OAAO2xI,GAAW/mI,KAAKhY,MACpEquG,EAAQ,CACN8wC,UAAWJ,EACXK,YAAalkF,EAAKz9D,UAKxB,OADA2F,EAAKmU,KAAOy1I,EACL3+C,CACT,GACC,CACDzwG,IAAK,SACLW,MAAO,SAAgB01I,EAAWnoG,GAChC,IAAIkmG,EAASh6H,KAEbi8H,EAAUt2I,SAAQ,SAAU+kJ,GAC1B,GAAsB,kBAAlBA,EAAS/2I,OAA6B+2I,EAASplJ,SAAW00I,EAAOmb,WAAazK,EAASplJ,SAAW00I,EAAOob,YAAa,CACxH,IAAI/+C,EAAQ2jC,EAAOuN,QAAQmD,EAASplJ,QAChC+wG,IAAOviE,EAAQuiE,MAAQA,EAC7B,CACF,GACF,KAGKs9B,CACT,CApFY,CAoFVsF,EAAY3pE,QAAQqkE,OAEtBrvI,EAAQgrE,QAAUqkE,CAEX,WAESj7H,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQgxJ,WAAahxJ,EAAQixJ,WAAajxJ,EAAQkxJ,oBAAiBzmJ,EAEnE,IAIgC7I,EAJ5Bi7I,EAAa/O,EAAoB,GAEjC6G,GAE4B/yI,EAFSi7I,IAEYj7I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,GAEnFqnB,EAAS,CACXsoC,MAAOojF,EAAY3pE,QAAQ+jE,MAAMwB,MACjC2G,UAAW,CAAC,QAAS,SAAU,YAG7Bga,EAAiB,IAAIvc,EAAY3pE,QAAQykE,WAAWC,UAAU,QAAS,QAASzmH,GAChFgoI,EAAa,IAAItc,EAAY3pE,QAAQykE,WAAWE,MAAM,QAAS,WAAY1mH,GAC3E+nI,EAAa,IAAIrc,EAAY3pE,QAAQykE,WAAWG,MAAM,QAAS,aAAc3mH,GAEjFjpB,EAAQkxJ,eAAiBA,EACzBlxJ,EAAQixJ,WAAaA,EACrBjxJ,EAAQgxJ,WAAaA,CAEd,WAES58I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQmxJ,gBAAkBnxJ,EAAQoxJ,qBAAkB3mJ,EAEpD,IAMgC7I,EAN5Bi7I,EAAa/O,EAAoB,GAEjC6G,GAI4B/yI,EAJSi7I,IAIYj7I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,GAFnFyvJ,EAASvjB,EAAoB,IAI7BsjB,EAAkB,IAAIzc,EAAY3pE,QAAQykE,WAAWE,MAAM,aAAc,QAAS,CACpFp+E,MAAOojF,EAAY3pE,QAAQ+jE,MAAMyB,SAE/B2gB,EAAkB,IAAIE,EAAOzD,gBAAgB,aAAc,mBAAoB,CACjFr8F,MAAOojF,EAAY3pE,QAAQ+jE,MAAMyB,SAGnCxwI,EAAQoxJ,gBAAkBA,EAC1BpxJ,EAAQmxJ,gBAAkBA,CAEnB,WAES/8I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQsxJ,eAAiBtxJ,EAAQuxJ,eAAiBvxJ,EAAQwxJ,wBAAqB/mJ,EAE/E,IAIgC7I,EAJ5Bi7I,EAAa/O,EAAoB,GAEjC6G,GAE4B/yI,EAFSi7I,IAEYj7I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,GAEnFqnB,EAAS,CACXsoC,MAAOojF,EAAY3pE,QAAQ+jE,MAAMwB,MACjC2G,UAAW,CAAC,QAGVsa,EAAqB,IAAI7c,EAAY3pE,QAAQykE,WAAWC,UAAU,YAAa,MAAOzmH,GACtFsoI,EAAiB,IAAI5c,EAAY3pE,QAAQykE,WAAWE,MAAM,YAAa,eAAgB1mH,GACvFqoI,EAAiB,IAAI3c,EAAY3pE,QAAQykE,WAAWG,MAAM,YAAa,YAAa3mH,GAExFjpB,EAAQwxJ,mBAAqBA,EAC7BxxJ,EAAQuxJ,eAAiBA,EACzBvxJ,EAAQsxJ,eAAiBA,CAElB,WAESl9I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQyxJ,UAAYzxJ,EAAQ0xJ,eAAYjnJ,EAExC,IAQgC7I,EAR5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAEreilE,EAAa/O,EAAoB,GAEjC6G,GAE4B/yI,EAFSi7I,IAEYj7I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,GAQnFqnB,EAAS,CACXsoC,MAAOojF,EAAY3pE,QAAQ+jE,MAAMyB,OACjC0G,UAAW,CAAC,QAAS,cAGnBua,EAAY,IAAI9c,EAAY3pE,QAAQykE,WAAWE,MAAM,OAAQ,UAAW1mH,GAExE0oI,EAAsB,SAAU9D,GAGlC,SAAS8D,IAGP,OAnBJ,SAAyBp6C,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAiBpJuwI,CAAgBr5H,KAAMi2I,GAf1B,SAAoC13I,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAiBpOqyI,CAA2Bt5H,MAAOi2I,EAAoBtwF,WAAa/gE,OAAOioD,eAAeopG,IAAsB7wJ,MAAM4a,KAAMxa,WACpI,CASA,OAzBF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAU3eF,CAAU0c,EAAqB9D,GAQ/B1Z,EAAawd,EAAqB,CAAC,CACjCrwJ,IAAK,QACLW,MAAO,SAAe6E,GACpB,OAAOytI,EAAKod,EAAoB3vJ,UAAUq/D,WAAa/gE,OAAOioD,eAAeopG,EAAoB3vJ,WAAY,QAAS0Z,MAAM/Y,KAAK+Y,KAAM5U,GAAM6a,QAAQ,QAAS,GAChK,KAGKgwI,CACT,CAjB0B,CAiBxBhd,EAAY3pE,QAAQykE,WAAWG,OAE7B8hB,EAAY,IAAIC,EAAoB,OAAQ,cAAe1oI,GAE/DjpB,EAAQ0xJ,UAAYA,EACpB1xJ,EAAQyxJ,UAAYA,CAEb,WAESr9I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQ4xJ,UAAY5xJ,EAAQ6xJ,eAAYpnJ,EAExC,IAIgC7I,EAJ5Bi7I,EAAa/O,EAAoB,GAEjC6G,GAE4B/yI,EAFSi7I,IAEYj7I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,GAEnFiwJ,EAAY,IAAIld,EAAY3pE,QAAQykE,WAAWE,MAAM,OAAQ,UAAW,CAC1Ep+E,MAAOojF,EAAY3pE,QAAQ+jE,MAAMyB,OACjC0G,UAAW,CAAC,QAAS,QAAS,UAE5B0a,EAAY,IAAIjd,EAAY3pE,QAAQykE,WAAWG,MAAM,OAAQ,YAAa,CAC5Er+E,MAAOojF,EAAY3pE,QAAQ+jE,MAAMyB,OACjC0G,UAAW,CAAC,OAAQ,OAAQ,UAG9Bl3I,EAAQ6xJ,UAAYA,EACpB7xJ,EAAQ4xJ,UAAYA,CAEb,WAESx9I,EAAQpU,EAAS8tI,GAEjC,aAGA15H,EAAOpU,QAAU,CACf,MAAS,CACP,GAAI8tI,EAAoB,IACxB,OAAUA,EAAoB,IAC9B,MAASA,EAAoB,IAC7B,QAAWA,EAAoB,KAEjC,WAAcA,EAAoB,IAClC,WAAcA,EAAoB,IAClC,KAAQA,EAAoB,IAC5B,MAASA,EAAoB,IAC7B,KAAQA,EAAoB,IAC5B,aAAcA,EAAoB,IAClC,MAASA,EAAoB,IAC7B,UAAa,CACX,GAAIA,EAAoB,IACxB,IAAOA,EAAoB,KAE7B,MAAS,CACP,OAAUA,EAAoB,IAC9B,KAAQA,EAAoB,IAC5B,KAAQA,EAAoB,IAC5B,MAASA,EAAoB,KAE/B,QAAWA,EAAoB,IAC/B,OAAU,CACR,EAAKA,EAAoB,IACzB,EAAKA,EAAoB,KAE3B,OAAUA,EAAoB,IAC9B,MAASA,EAAoB,IAC7B,OAAU,CACR,KAAMA,EAAoB,IAC1B,KAAMA,EAAoB,KAE5B,KAAQA,EAAoB,IAC5B,KAAQ,CACN,QAAWA,EAAoB,IAC/B,OAAUA,EAAoB,KAC9B,MAASA,EAAoB,MAE/B,OAAU,CACR,IAAOA,EAAoB,KAC3B,MAASA,EAAoB,MAE/B,OAAUA,EAAoB,KAC9B,UAAaA,EAAoB,KACjC,MAASA,EAAoB,KAGxB,WAES15H,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQ8xJ,mBAAqB9xJ,EAAQgrE,aAAUvgE,EAE/C,IAAI0pI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfO,EAAczpE,EAFD4iE,EAAoB,IAMjCwb,EAAUp+E,EAFD4iE,EAAoB,IAQjC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAQ9F,IAAImwJ,EAAU,SAAUvI,GAGtB,SAASuI,EAAQtU,EAAO9zI,IAT1B,SAAyB4tG,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMq2I,GAEtB,IAAIt4B,EAVR,SAAoCx/G,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAU/NqyI,CAA2Bt5H,MAAOq2I,EAAQ1wF,WAAa/gE,OAAOioD,eAAewpG,IAAUpvJ,KAAK+Y,KAAM+hI,EAAO9zI,IAkBrH,OAhBA8vH,EAAMu4B,aAAe,EACrBv4B,EAAMw4B,cAAe,EACrBx4B,EAAM7zG,QACN6zG,EAAMgkB,MAAM11I,GAAGuhJ,EAAQt+E,QAAQjgD,OAAOusH,eAAe,SAAUr8F,EAAWpW,EAAOi3G,EAAU16I,GACrF65C,IAAcquG,EAAQt+E,QAAQjgD,OAAOwsH,aAAe9d,EAAMw4B,eACzDx4B,EAAM9vH,QAAQuoJ,UAAY9wJ,IAAWkoJ,EAAQt+E,QAAQytE,QAAQyC,KAGhEzhB,EAAMxjC,UAAUpxD,GAFhB40F,EAAM04B,OAAOttH,EAAOi3G,GAIxB,IACAriB,EAAMgkB,MAAMtG,SAASuS,WAAW,CAAEpoJ,IAAK,IAAKkrJ,UAAU,GAAQ/yB,EAAM24B,KAAKxlF,KAAK6sD,IAC9EA,EAAMgkB,MAAMtG,SAASuS,WAAW,CAAEpoJ,IAAK,IAAKkrJ,UAAU,EAAMhgD,UAAU,GAAQitB,EAAM44B,KAAKzlF,KAAK6sD,IAC1F,OAAOp1H,KAAKw0D,UAAUC,WACxB2gE,EAAMgkB,MAAMtG,SAASuS,WAAW,CAAEpoJ,IAAK,IAAKkrJ,UAAU,GAAQ/yB,EAAM44B,KAAKzlF,KAAK6sD,IAEzEA,CACT,CAuEA,OAlGF,SAAmByb,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAU8c,EAASvI,GA0BnBrV,EAAa4d,EAAS,CAAC,CACrBzwJ,IAAK,SACLW,MAAO,SAAgBb,EAAQkxJ,GAC7B,GAAkC,IAA9B52I,KAAK0/C,MAAMh6D,GAAQD,OAAvB,CACA,IAAI0jC,EAAQnpB,KAAK0/C,MAAMh6D,GAAQ2xC,MAC/Br3B,KAAK0/C,MAAMk3F,GAAMzxJ,KAAKgkC,GACtBnpB,KAAKs2I,aAAe,EACpBt2I,KAAKu2I,cAAe,EACpBv2I,KAAK+hI,MAAMoP,eAAehoH,EAAMzjC,GAASkoJ,EAAQt+E,QAAQytE,QAAQyC,MACjEx/H,KAAKu2I,cAAe,EACpB,IAAI3hI,EAAQwhI,EAAmBjtH,EAAMzjC,IACrCsa,KAAK+hI,MAAMpR,aAAa/7G,EARmB,CAS7C,GACC,CACDhvB,IAAK,QACLW,MAAO,WACLyZ,KAAK0/C,MAAQ,CAAEg3F,KAAM,GAAIC,KAAM,GACjC,GACC,CACD/wJ,IAAK,SACLW,MAAO,WACLyZ,KAAKs2I,aAAe,CACtB,GACC,CACD1wJ,IAAK,SACLW,MAAO,SAAgBswJ,EAAazW,GAClC,GAA+B,IAA3ByW,EAAYxmB,IAAI5qI,OAApB,CACAua,KAAK0/C,MAAMi3F,KAAO,GAClB,IAAIG,EAAY92I,KAAK+hI,MAAMlT,cAAc6G,KAAK0K,GAC1C2W,EAAY3mI,KAAKuqB,MACrB,GAAI36B,KAAKs2I,aAAet2I,KAAK/R,QAAQs6B,MAAQwuH,GAAa/2I,KAAK0/C,MAAMg3F,KAAKjxJ,OAAS,EAAG,CACpF,IAAI0jC,EAAQnpB,KAAK0/C,MAAMg3F,KAAKr/G,MAC5By/G,EAAYA,EAAUpgB,QAAQvtG,EAAMutH,MACpCG,EAAc1tH,EAAMwtH,KAAKjgB,QAAQmgB,EACnC,MACE72I,KAAKs2I,aAAeS,EAEtB/2I,KAAK0/C,MAAMg3F,KAAKvxJ,KAAK,CACnBwxJ,KAAME,EACNH,KAAMI,IAEJ92I,KAAK0/C,MAAMg3F,KAAKjxJ,OAASua,KAAK/R,QAAQ+oJ,UACxCh3I,KAAK0/C,MAAMg3F,KAAKvzI,OAhBsB,CAkB1C,GACC,CACDvd,IAAK,OACLW,MAAO,WACLyZ,KAAKi9H,OAAO,OAAQ,OACtB,GACC,CACDr3I,IAAK,YACLW,MAAO,SAAmB4iC,GACxBnpB,KAAK0/C,MAAMg3F,KAAK/wJ,SAAQ,SAAUs3I,GAChCA,EAAOyZ,KAAOvtH,EAAMoxD,UAAU0iD,EAAOyZ,MAAM,GAC3CzZ,EAAO0Z,KAAOxtH,EAAMoxD,UAAU0iD,EAAO0Z,MAAM,EAC7C,IACA32I,KAAK0/C,MAAMi3F,KAAKhxJ,SAAQ,SAAUs3I,GAChCA,EAAOyZ,KAAOvtH,EAAMoxD,UAAU0iD,EAAOyZ,MAAM,GAC3CzZ,EAAO0Z,KAAOxtH,EAAMoxD,UAAU0iD,EAAO0Z,MAAM,EAC7C,GACF,GACC,CACD/wJ,IAAK,OACLW,MAAO,WACLyZ,KAAKi9H,OAAO,OAAQ,OACtB,KAGKoZ,CACT,CAjGc,CAVC7mF,EAFD4iE,EAAoB,IA6GvB9iE,SAsBX,SAAS8mF,EAAmBjtH,GAC1B,IAAI8tH,EAAe9tH,EAAM/6B,QAAO,SAAU3I,EAAQkwI,GAEhD,OADAlwI,GAAUkwI,EAAG14G,QAAU,CAEzB,GAAG,GACCi6H,EAAc/tH,EAAM1jC,SAAWwxJ,EAInC,OAvBF,SAA+B9tH,GAC7B,IAAI8sG,EAAS9sG,EAAMknG,IAAIlnG,EAAMknG,IAAI5qI,OAAS,GAC1C,OAAc,MAAVwwI,IACiB,MAAjBA,EAAOH,OACuB,kBAAlBG,EAAOH,QAAuBG,EAAOH,OAAO/6F,SAAS,MAE5C,MAArBk7F,EAAO5yE,YACFz+D,OAAOD,KAAKsxI,EAAO5yE,YAAYmrE,MAAK,SAAUx9C,GACnD,OAA2E,MAApEioD,EAAY3pE,QAAQ/mD,MAAMyoE,EAAMioD,EAAY3pE,QAAQ+jE,MAAMwB,MACnE,IAGJ,CAQMsiB,CAAsBhuH,KACxB+tH,GAAe,GAEVA,CACT,CA9BAb,EAAQ1W,SAAW,CACjBp3G,MAAO,IACPyuH,SAAU,IACVR,UAAU,GA6BZlyJ,EAAQgrE,QAAU+mF,EAClB/xJ,EAAQ8xJ,mBAAqBA,CAEtB,WAES19I,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQgrE,QAAUhrE,EAAQ8yJ,iBAAcroJ,EAExC,IAAI0pI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAIre68D,EAAWvpE,EAFD4iE,EAAoB,IAM9B4G,EAAexpE,EAFD4iE,EAAoB,IAMlCmO,EAAY/wE,EAFD4iE,EAAoB,IAM/BwgB,EAAapjF,EAFD4iE,EAAoB,KAMhC6I,EAAUzrE,EAFD4iE,EAAoB,KAM7BilB,EAAgB7nF,EAFD4iE,EAAoB,KAMnCklB,EAAe9nF,EAFD4iE,EAAoB,KAMlCmlB,EAAW/nF,EAFD4iE,EAAoB,KAM9BolB,EAAYhoF,EAFD4iE,EAAoB,KAInC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F,SAASmzI,EAAgBx9B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAExJ,SAASwwI,EAA2B/6H,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAE/O,SAASsyI,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAE7e,IAAIge,EAAS,EAAC,EAAO,SAAU,QAAS,WAEpCC,EAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAEhYC,EAAQ,EAAC,EAAO,QAAS,aAEzBC,EAAU,CAAC,IAAK,IAAK,KAAK,GAE1BC,EAAQ,CAAC,SAAS,EAAO,QAAS,QAElCC,EAAY,SAAUC,GAGxB,SAASD,EAAU/V,EAAO9zI,GACxBorI,EAAgBr5H,KAAM83I,GAEtB,IAAI/5B,EAAQub,EAA2Bt5H,MAAO83I,EAAUnyF,WAAa/gE,OAAOioD,eAAeirG,IAAY7wJ,KAAK+Y,KAAM+hI,EAAO9zI,IAkBzH,OADA8zI,EAAMv2G,QAAQo7G,UAAU,QAASn1G,SAASxR,MAf3B,SAASwmB,EAASlwC,GAC/B,IAAKk7B,SAASxR,KAAK4oD,SAASk5D,EAAMtnD,MAChC,OAAOhpD,SAASxR,KAAKsnE,oBAAoB,QAAS9gD,GAE/B,MAAjBs3E,EAAMi6B,SAAoBj6B,EAAMi6B,QAAQv9D,KAAK5R,SAAStyE,EAAEjR,SAAWmsC,SAAS2uD,gBAAkB29B,EAAMi6B,QAAQC,SAAYl6B,EAAMgkB,MAAM1D,YACtItgB,EAAMi6B,QAAQE,OAEK,MAAjBn6B,EAAMo6B,SACRp6B,EAAMo6B,QAAQxyJ,SAAQ,SAAUyyJ,GACzBA,EAAOjd,UAAUtyD,SAAStyE,EAAEjR,SAC/B8yJ,EAAO1E,OAEX,GAEJ,IAEO31B,CACT,CAwEA,OAhGAwb,EAAUue,EAAWC,GA0BrBtf,EAAaqf,EAAW,CAAC,CACvBlyJ,IAAK,YACLW,MAAO,SAAmBkC,GACxB,IAAIiQ,EAASmgI,EAAKif,EAAUxxJ,UAAUq/D,WAAa/gE,OAAOioD,eAAeirG,EAAUxxJ,WAAY,YAAa0Z,MAAM/Y,KAAK+Y,KAAMvX,GAI7H,MAHa,YAATA,GACFuX,KAAKq4I,cAAc3/I,GAEdA,CACT,GACC,CACD9S,IAAK,eACLW,MAAO,SAAsB6qG,EAASknD,GACpClnD,EAAQzrG,SAAQ,SAAUwrG,IACRA,EAAOluC,aAAa,UAAY,IACtC37C,MAAM,OAAO3hB,SAAQ,SAAU8C,GACvC,GAAKA,EAAKqyC,WAAW,SACrBryC,EAAOA,EAAKD,MAAM,GACC,MAAf8vJ,EAAM7vJ,IACV,GAAa,cAATA,EACF0oG,EAAOvP,UAAY02D,EAAM7vJ,GAAM,IAAM6vJ,EAAM7vJ,GAAW,SACjD,GAA2B,kBAAhB6vJ,EAAM7vJ,GACtB0oG,EAAOvP,UAAY02D,EAAM7vJ,OACpB,CACL,IAAIlC,EAAQ4qG,EAAO5qG,OAAS,GACf,MAATA,GAAiB+xJ,EAAM7vJ,GAAMlC,KAC/B4qG,EAAOvP,UAAY02D,EAAM7vJ,GAAMlC,GAEnC,CACF,GACF,GACF,GACC,CACDX,IAAK,eACLW,MAAO,SAAsBgyJ,EAASD,GACpC,IAAIte,EAASh6H,KAEbA,KAAKm4I,QAAUI,EAAQ59H,KAAI,SAAUs4H,GACnC,GAAIA,EAAO5X,UAAUxyD,SAAS,YAI5B,OAHsC,MAAlCoqE,EAAOhT,cAAc,WACvBuY,EAAWvF,EAAQwE,GAEd,IAAIH,EAAahoF,QAAQ2jF,EAAQqF,EAAMG,OACzC,GAAIxF,EAAO5X,UAAUxyD,SAAS,kBAAoBoqE,EAAO5X,UAAUxyD,SAAS,YAAa,CAC9F,IAAIpgE,EAASwqI,EAAO5X,UAAUxyD,SAAS,iBAAmB,aAAe,QAIzE,OAHsC,MAAlCoqE,EAAOhT,cAAc,WACvBuY,EAAWvF,EAAQyE,EAAmB,eAAXjvI,EAA0B,UAAY,WAE5D,IAAI4uI,EAAc/nF,QAAQ2jF,EAAQqF,EAAM7vI,GACjD,CAUE,OATsC,MAAlCwqI,EAAOhT,cAAc,YACnBgT,EAAO5X,UAAUxyD,SAAS,WAC5B2vE,EAAWvF,EAAQ0E,GACV1E,EAAO5X,UAAUxyD,SAAS,aACnC2vE,EAAWvF,EAAQ2E,GACV3E,EAAO5X,UAAUxyD,SAAS,YACnC2vE,EAAWvF,EAAQ4E,IAGhB,IAAIN,EAASjoF,QAAQ2jF,EAEhC,IAMAjzI,KAAK+hI,MAAM11I,GAAGk0I,EAAUjxE,QAAQjgD,OAAOusH,eAL1B,WACX5B,EAAOme,QAAQxyJ,SAAQ,SAAUyyJ,GAC/BA,EAAOrnJ,QACT,GACF,GAEF,KAGK+mJ,CACT,CAlGgB,CAkGd7c,EAAQ3rE,SAEVwoF,EAAUnY,UAAW,EAAI5G,EAASzpE,UAAS,EAAM,CAAC,EAAG2rE,EAAQ3rE,QAAQqwE,SAAU,CAC7EhQ,QAAS,CACPqQ,QAAS,CACP0Y,SAAU,CACRC,QAAS,WACP34I,KAAK+hI,MAAMhS,MAAMioB,QAAQY,KAAK,UAChC,EACAjU,MAAO,WACL,IAAIlI,EAASz8H,KAET64I,EAAY74I,KAAKm7H,UAAU8E,cAAc,6BAC5B,MAAb4Y,KACFA,EAAYpnH,SAASzgC,cAAc,UACzBigF,aAAa,OAAQ,QAC/B4nE,EAAU5nE,aAAa,SAAU,6DACjC4nE,EAAUxd,UAAU13G,IAAI,YACxBk1H,EAAUhtH,iBAAiB,UAAU,WACnC,GAAuB,MAAnBgtH,EAAUC,OAAuC,MAAtBD,EAAUC,MAAM,GAAY,CACzD,IAAIn6F,EAAS,IAAID,WACjBC,EAAOE,OAAS,SAAUtoD,GACxB,IAAI8/F,EAAQomC,EAAOsF,MAAM9oC,cAAa,GACtCwjC,EAAOsF,MAAMoP,gBAAe,IAAInY,EAAa1pE,SAAU0mE,OAAO3/B,EAAMzhF,OAAOqI,OAAOo5E,EAAM5wG,QAAQqwI,OAAO,CAAE6O,MAAOpuI,EAAEjR,OAAO+J,SAAWkxI,EAAUjxE,QAAQytE,QAAQyC,MAC9J/C,EAAOsF,MAAMpR,aAAat6B,EAAMzhF,MAAQ,EAAG2rH,EAAUjxE,QAAQytE,QAAQK,QACrEyb,EAAUtyJ,MAAQ,EACpB,EACAo4D,EAAOo6F,cAAcF,EAAUC,MAAM,GACvC,CACF,IACA94I,KAAKm7H,UAAU5gE,YAAYs+E,IAE7BA,EAAUG,OACZ,EACA7sB,MAAO,WACLnsH,KAAK+hI,MAAMhS,MAAMioB,QAAQY,KAAK,QAChC,OAMR,IAAIxB,EAAc,SAAU6B,GAG1B,SAAS7B,EAAYrV,EAAOmX,GAC1B7f,EAAgBr5H,KAAMo3I,GAEtB,IAAIta,EAASxD,EAA2Bt5H,MAAOo3I,EAAYzxF,WAAa/gE,OAAOioD,eAAeuqG,IAAcnwJ,KAAK+Y,KAAM+hI,EAAOmX,IAI9H,OAFApc,EAAOmb,QAAUnb,EAAOriD,KAAKwlD,cAAc,sBAC3CnD,EAAOyR,SACAzR,CACT,CA0FA,OApGAvD,EAAU6d,EAAa6B,GAYvBxgB,EAAa2e,EAAa,CAAC,CACzBxxJ,IAAK,SACLW,MAAO,WACL,IAAI82I,EAASr9H,KAEbA,KAAKi4I,QAAQpsH,iBAAiB,WAAW,SAAUhgC,GAC7C+mJ,EAAWtjF,QAAQppD,MAAMra,EAAO,UAClCwxI,EAAO8b,OACPttJ,EAAMwjG,kBACGujD,EAAWtjF,QAAQppD,MAAMra,EAAO,YACzCwxI,EAAO+b,SACPvtJ,EAAMwjG,iBAEV,GACF,GACC,CACDzpG,IAAK,SACLW,MAAO,WACLyZ,KAAKk4I,MACP,GACC,CACDtyJ,IAAK,OACLW,MAAO,WACL,IAAIu4B,EAAOt5B,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,OAC3E6zJ,EAAU7zJ,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,KAElFwa,KAAKy6E,KAAK4gD,UAAUhjH,OAAO,aAC3BrY,KAAKy6E,KAAK4gD,UAAU13G,IAAI,cACT,MAAX01H,EACFr5I,KAAKi4I,QAAQ1xJ,MAAQ8yJ,EACZv6H,IAAS9e,KAAKy6E,KAAKx3B,aAAa,eACzCjjD,KAAKi4I,QAAQ1xJ,MAAQ,IAEvByZ,KAAK8B,SAAS9B,KAAK+hI,MAAM9Q,UAAUjxH,KAAK+hI,MAAM/U,UAAUyZ,aACxDzmI,KAAKi4I,QAAQhF,SACbjzI,KAAKi4I,QAAQhnE,aAAa,cAAejxE,KAAKi4I,QAAQh1F,aAAa,QAAUnkC,IAAS,IACtF9e,KAAKy6E,KAAKxJ,aAAa,YAAanyD,EACtC,GACC,CACDl5B,IAAK,eACLW,MAAO,WACL,IAAIwzG,EAAY/5F,KAAK+hI,MAAMlS,mBAAmB91B,UAC9C/5F,KAAK+hI,MAAM/nC,QACXh6F,KAAK+hI,MAAMlS,mBAAmB91B,UAAYA,CAC5C,GACC,CACDn0G,IAAK,OACLW,MAAO,WACL,IAAIA,EAAQyZ,KAAKi4I,QAAQ1xJ,MACzB,OAAQyZ,KAAKy6E,KAAKx3B,aAAa,cAC7B,IAAK,OAED,IAAI82C,EAAY/5F,KAAK+hI,MAAMtnD,KAAKsf,UAC5B/5F,KAAKs5I,WACPt5I,KAAK+hI,MAAM5E,WAAWn9H,KAAKs5I,UAAW,OAAQ/yJ,EAAOg6I,EAAUjxE,QAAQytE,QAAQyC,aACxEx/H,KAAKs5I,YAEZt5I,KAAKu5I,eACLv5I,KAAK+hI,MAAMt5H,OAAO,OAAQliB,EAAOg6I,EAAUjxE,QAAQytE,QAAQyC,OAE7Dx/H,KAAK+hI,MAAMtnD,KAAKsf,UAAYA,EAC5B,MAEJ,IAAK,QAEDxzG,EA0BZ,SAAyBoJ,GACvB,IAAIuW,EAAQvW,EAAIuW,MAAM,+EAAiFvW,EAAIuW,MAAM,kEACjH,OAAIA,GACMA,EAAM,IAAM,SAAW,4BAA8BA,EAAM,GAAK,eAEtEA,EAAQvW,EAAIuW,MAAM,oDAEZA,EAAM,IAAM,SAAW,6BAA+BA,EAAM,GAAK,IAEpEvW,CACT,CApCoB6pJ,CAAgBjzJ,GAE5B,IAAK,UAED,IAAKA,EAAO,MACZ,IAAI8vG,EAAQr2F,KAAK+hI,MAAM9oC,cAAa,GACpC,GAAa,MAAT5C,EAAe,CACjB,IAAIzhF,EAAQyhF,EAAMzhF,MAAQyhF,EAAM5wG,OAChCua,KAAK+hI,MAAMxD,YAAY3pH,EAAO5U,KAAKy6E,KAAKx3B,aAAa,aAAc18D,EAAOg6I,EAAUjxE,QAAQytE,QAAQyC,MACxD,YAAxCx/H,KAAKy6E,KAAKx3B,aAAa,cACzBjjD,KAAK+hI,MAAMpD,WAAW/pH,EAAQ,EAAG,IAAK2rH,EAAUjxE,QAAQytE,QAAQyC,MAElEx/H,KAAK+hI,MAAMpR,aAAa/7G,EAAQ,EAAG2rH,EAAUjxE,QAAQytE,QAAQyC,KAC/D,EAKNx/H,KAAKi4I,QAAQ1xJ,MAAQ,GACrByZ,KAAKk4I,MACP,KAGKd,CACT,CAtGkB,CAsGhBI,EAAUloF,SAcZ,SAASkpF,EAAWvF,EAAQ93H,GAC1B,IAAIxQ,EAAenlB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,IAAmBA,UAAU,GAElF21B,EAAOx1B,SAAQ,SAAUY,GACvB,IAAI6sJ,EAAS3hH,SAASzgC,cAAc,UAChCzK,IAAUokB,EACZyoI,EAAOniE,aAAa,WAAY,YAEhCmiE,EAAOniE,aAAa,QAAS1qF,GAE/B0sJ,EAAO14E,YAAY64E,EACrB,GACF,CAEA9uJ,EAAQ8yJ,YAAcA,EACtB9yJ,EAAQgrE,QAAUwoF,CAEX,WAESp/I,EAAQpU,EAAS8tI,GAEjC,aAEAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAIkzJ,EAA4B,WAC5B,SAASA,IACLz5I,KAAK6wE,KAAO7wE,KAAK+wG,KAAO,KACxB/wG,KAAKva,OAAS,CAClB,CA6HA,OA5HAg0J,EAAWnzJ,UAAUozJ,OAAS,WAE1B,IADA,IAAIC,EAAQ,GACHjyJ,EAAK,EAAGA,EAAKlC,UAAUC,OAAQiC,IACpCiyJ,EAAMjyJ,GAAMlC,UAAUkC,GAE1BsY,KAAKs6D,aAAaq/E,EAAM,GAAI,MACxBA,EAAMl0J,OAAS,GACfua,KAAK05I,OAAOt0J,MAAM4a,KAAM25I,EAAMnxJ,MAAM,GAE5C,EACAixJ,EAAWnzJ,UAAUuiF,SAAW,SAAUz9E,GAEtC,IADA,IAAIwuJ,EAAK5xJ,EAAOgY,KAAK5Z,WACbwzJ,EAAM5xJ,KACV,GAAI4xJ,IAAQxuJ,EACR,OAAO,EAEf,OAAO,CACX,EACAquJ,EAAWnzJ,UAAUg0E,aAAe,SAAUlvE,EAAMyiF,GAC3CziF,IAELA,EAAKpD,KAAO6lF,EACG,MAAXA,GACAziF,EAAK+oE,KAAO0Z,EAAQ1Z,KACA,MAAhB0Z,EAAQ1Z,OACR0Z,EAAQ1Z,KAAKnsE,KAAOoD,GAExByiF,EAAQ1Z,KAAO/oE,EACXyiF,IAAY7tE,KAAK6wE,OACjB7wE,KAAK6wE,KAAOzlF,IAGE,MAAb4U,KAAK+wG,MACV/wG,KAAK+wG,KAAK/oH,KAAOoD,EACjBA,EAAK+oE,KAAOn0D,KAAK+wG,KACjB/wG,KAAK+wG,KAAO3lH,IAGZA,EAAK+oE,KAAO,KACZn0D,KAAK6wE,KAAO7wE,KAAK+wG,KAAO3lH,GAE5B4U,KAAKva,QAAU,EACnB,EACAg0J,EAAWnzJ,UAAU4c,OAAS,SAAU5d,GAEpC,IADA,IAAIsvB,EAAQ,EAAGglI,EAAM55I,KAAK6wE,KACZ,MAAP+oE,GAAa,CAChB,GAAIA,IAAQt0J,EACR,OAAOsvB,EACXA,GAASglI,EAAIn0J,SACbm0J,EAAMA,EAAI5xJ,IACd,CACA,OAAQ,CACZ,EACAyxJ,EAAWnzJ,UAAU+xB,OAAS,SAAUjtB,GAC/B4U,KAAK6oE,SAASz9E,KAEF,MAAbA,EAAK+oE,OACL/oE,EAAK+oE,KAAKnsE,KAAOoD,EAAKpD,MACT,MAAboD,EAAKpD,OACLoD,EAAKpD,KAAKmsE,KAAO/oE,EAAK+oE,MACtB/oE,IAAS4U,KAAK6wE,OACd7wE,KAAK6wE,KAAOzlF,EAAKpD,MACjBoD,IAAS4U,KAAK+wG,OACd/wG,KAAK+wG,KAAO3lH,EAAK+oE,MACrBn0D,KAAKva,QAAU,EACnB,EACAg0J,EAAWnzJ,UAAUF,SAAW,SAAUyzJ,GAGtC,YAFgB,IAAZA,IAAsBA,EAAU75I,KAAK6wE,MAElC,WACH,IAAIlmB,EAAMkvF,EAGV,OAFe,MAAXA,IACAA,EAAUA,EAAQ7xJ,MACf2iE,CACX,CACJ,EACA8uF,EAAWnzJ,UAAUgtI,KAAO,SAAU1+G,EAAO21H,QACvB,IAAdA,IAAwBA,GAAY,GAExC,IADA,IAAIqP,EAAK5xJ,EAAOgY,KAAK5Z,WACbwzJ,EAAM5xJ,KAAS,CACnB,IAAIvC,EAASm0J,EAAIn0J,SACjB,GAAImvB,EAAQnvB,GACP8kJ,GAAa31H,IAAUnvB,IAAuB,MAAZm0J,EAAI5xJ,MAAsC,IAAtB4xJ,EAAI5xJ,KAAKvC,UAChE,MAAO,CAACm0J,EAAKhlI,GAEjBA,GAASnvB,CACb,CACA,MAAO,CAAC,KAAM,EAClB,EACAg0J,EAAWnzJ,UAAUX,QAAU,SAAUiiB,GAErC,IADA,IAAIgyI,EAAK5xJ,EAAOgY,KAAK5Z,WACbwzJ,EAAM5xJ,KACV4f,EAASgyI,EAEjB,EACAH,EAAWnzJ,UAAUwjJ,UAAY,SAAUl1H,EAAOnvB,EAAQmiB,GACtD,KAAIniB,GAAU,GAId,IAFA,IACIm0J,EADA33I,EAAKjC,KAAKszH,KAAK1+G,GAAQuyH,EAAYllI,EAAG,GACjC63I,EAAWllI,EADmC3S,EAAG,GACtBja,EAAOgY,KAAK5Z,SAAS+gJ,IACjDyS,EAAM5xJ,MAAW8xJ,EAAWllI,EAAQnvB,GAAQ,CAChD,IAAIs0J,EAAYH,EAAIn0J,SAChBmvB,EAAQklI,EACRlyI,EAASgyI,EAAKhlI,EAAQklI,EAAUz3I,KAAK8tB,IAAI1qC,EAAQq0J,EAAWC,EAAYnlI,IAGxEhN,EAASgyI,EAAK,EAAGv3I,KAAK8tB,IAAI4pH,EAAWnlI,EAAQnvB,EAASq0J,IAE1DA,GAAYC,CAChB,CACJ,EACAN,EAAWnzJ,UAAUq0B,IAAM,SAAU/S,GACjC,OAAO5H,KAAK5R,QAAO,SAAUi8I,EAAMuP,GAE/B,OADAvP,EAAKllJ,KAAKyiB,EAASgyI,IACZvP,CACX,GAAG,GACP,EACAoP,EAAWnzJ,UAAU8H,OAAS,SAAUwZ,EAAUyiI,GAE9C,IADA,IAAIuP,EAAK5xJ,EAAOgY,KAAK5Z,WACbwzJ,EAAM5xJ,KACVqiJ,EAAOziI,EAASyiI,EAAMuP,GAE1B,OAAOvP,CACX,EACOoP,CACX,CAlIgC,GAmIhCn1J,EAAQgrE,QAAUmqF,CAGX,WAES/gJ,EAAQpU,EAAS8tI,GAEjC,aAEA,IAAIzE,EAAa3tH,MAAQA,KAAK2tH,WAAe,WACzC,IAAIyG,EAAgBxvI,OAAOyvI,gBACtB,CAAE1uE,UAAW,cAAgBn+D,OAAS,SAAUia,EAAGL,GAAKK,EAAEkkD,UAAYvkD,CAAG,GAC1E,SAAUK,EAAGL,GAAK,IAAK,IAAIi4D,KAAKj4D,EAAOA,EAAElY,eAAemwE,KAAI53D,EAAE43D,GAAKj4D,EAAEi4D,GAAI,EAC7E,OAAO,SAAU53D,EAAGL,GAEhB,SAASkzH,IAAOt0H,KAAK3Z,YAAcob,CAAG,CADtC2yH,EAAc3yH,EAAGL,GAEjBK,EAAEnb,UAAkB,OAAN8a,EAAaxc,OAAOwQ,OAAOgM,IAAMkzH,EAAGhuI,UAAY8a,EAAE9a,UAAW,IAAIguI,EACnF,CACJ,CAT6C,GAU7C1vI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAIgsI,EAAcH,EAAoB,IAClCe,EAAWf,EAAoB,GAC/B4nB,EAAkB,CAClB32F,YAAY,EACZ42F,eAAe,EACfC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,GAGTC,EAA4B,SAAU9qG,GAEtC,SAAS8qG,EAAWjvJ,GAChB,IAAI2yH,EAAQxuE,EAAOtoD,KAAK+Y,KAAM5U,IAAS4U,KAOvC,OANA+9G,EAAM6S,OAAS7S,EACfA,EAAM0vB,SAAW,IAAI6M,kBAAiB,SAAUre,GAC5Cle,EAAMhtH,OAAOkrI,EACjB,IACAle,EAAM0vB,SAAS8M,QAAQx8B,EAAM9oH,QAAS+kJ,GACtCj8B,EAAM6pB,SACC7pB,CACX,CA6IA,OAvJA4P,EAAU0sB,EAAY9qG,GAWtB8qG,EAAW/zJ,UAAU2jJ,OAAS,WAC1B16F,EAAOjpD,UAAU2jJ,OAAOhjJ,KAAK+Y,MAC7BA,KAAKytI,SAAS+M,YAClB,EACAH,EAAW/zJ,UAAU68I,SAAW,SAAUvuH,EAAOnvB,GAC7Cua,KAAKjP,SACS,IAAV6jB,GAAenvB,IAAWua,KAAKva,SAC/Bua,KAAK3P,SAAS1K,SAAQ,SAAU68D,GAC5BA,EAAMnqC,QACV,IAGAk3B,EAAOjpD,UAAU68I,SAASl8I,KAAK+Y,KAAM4U,EAAOnvB,EAEpD,EACA40J,EAAW/zJ,UAAUk9I,SAAW,SAAU5uH,EAAOnvB,EAAQgD,EAAMlC,GAC3DyZ,KAAKjP,SACLw+C,EAAOjpD,UAAUk9I,SAASv8I,KAAK+Y,KAAM4U,EAAOnvB,EAAQgD,EAAMlC,EAC9D,EACA8zJ,EAAW/zJ,UAAUuzI,SAAW,SAAUjlH,EAAOruB,EAAOqzI,GACpD55H,KAAKjP,SACLw+C,EAAOjpD,UAAUuzI,SAAS5yI,KAAK+Y,KAAM4U,EAAOruB,EAAOqzI,EACvD,EACAygB,EAAW/zJ,UAAUs9I,SAAW,SAAU3H,EAAWnoG,GACjD,IAAIiqF,EAAQ/9G,UACM,IAAdi8H,IAAwBA,EAAY,SACxB,IAAZnoG,IAAsBA,EAAU,CAAC,GACrCyb,EAAOjpD,UAAUs9I,SAAS38I,KAAK+Y,KAAM8zB,GAKrC,IAHA,IAAI2/B,EAAU,GAAGjrE,MAAMvB,KAAK+Y,KAAKytI,SAASC,eAGnCj6E,EAAQhuE,OAAS,GACpBw2I,EAAU92I,KAAKsuE,EAAQp8B,OA+B3B,IA7BA,IAAIojH,EAAO,SAAUplB,EAAMqlB,QACJ,IAAfA,IAAyBA,GAAa,GAC9B,MAARrlB,GAAgBA,IAAStX,GAEE,MAA3BsX,EAAKpgI,QAAQitD,aAGgC,MAA7CmzE,EAAKpgI,QAAQk+H,EAAS+B,UAAU+G,YAEhC5G,EAAKpgI,QAAQk+H,EAAS+B,UAAU+G,UAAY,IAE5Cye,GACAD,EAAKplB,EAAKyD,QAClB,EACI8K,EAAW,SAAUvO,GAIc,MAAnCA,EAAKpgI,QAAQk+H,EAAS+B,WAE2B,MAA7CG,EAAKpgI,QAAQk+H,EAAS+B,UAAU+G,YAGhC5G,aAAgB9C,EAAYjjE,SAC5B+lE,EAAKhlI,SAAS1K,QAAQi+I,GAE1BvO,EAAKuO,SAAS9vG,GAClB,EACIpT,EAAYu7G,EACP12I,EAAI,EAAGm7B,EAAUj7B,OAAS,EAAGF,GAAK,EAAG,CAC1C,GAAIA,GA9Ec,IA+Ed,MAAM,IAAI8E,MAAM,mDA4BpB,IA1BAq2B,EAAU/6B,SAAQ,SAAU+kJ,GACxB,IAAIrV,EAAOlC,EAASG,KAAKoX,EAASplJ,QAAQ,GAC9B,MAAR+vI,IAEAA,EAAKpgI,UAAYy1I,EAASplJ,SACJ,cAAlBolJ,EAAS/2I,MACT8mJ,EAAKtnB,EAASG,KAAKoX,EAASnsC,iBAAiB,IAC7C,GAAG54G,QAAQsB,KAAKyjJ,EAASF,YAAY,SAAUp/I,GAC3C,IAAIo3D,EAAQ2wE,EAASG,KAAKloI,GAAM,GAChCqvJ,EAAKj4F,GAAO,GACRA,aAAiB+vE,EAAYjjE,SAC7B9M,EAAMnyD,SAAS1K,SAAQ,SAAUg1J,GAC7BF,EAAKE,GAAY,EACrB,GAER,KAEuB,eAAlBjQ,EAAS/2I,MACd8mJ,EAAKplB,EAAKlhE,OAGlBsmF,EAAKplB,GACT,IACAr1H,KAAK3P,SAAS1K,QAAQi+I,GAEtBnwE,GADA/yC,EAAY,GAAGl4B,MAAMvB,KAAK+Y,KAAKytI,SAASC,gBACpBllJ,QACbirE,EAAQhuE,OAAS,GACpBw2I,EAAU92I,KAAKsuE,EAAQp8B,MAC/B,CACJ,EACAgjH,EAAW/zJ,UAAUyK,OAAS,SAAUkrI,EAAWnoG,GAC/C,IAAIiqF,EAAQ/9G,UACI,IAAZ8zB,IAAsBA,EAAU,CAAC,IACrCmoG,EAAYA,GAAaj8H,KAAKytI,SAASC,eAGlC/yH,KAAI,SAAU+vH,GACf,IAAIrV,EAAOlC,EAASG,KAAKoX,EAASplJ,QAAQ,GAC1C,OAAY,MAAR+vI,EACO,KAEsC,MAA7CA,EAAKpgI,QAAQk+H,EAAS+B,UAAU+G,WAEhC5G,EAAKpgI,QAAQk+H,EAAS+B,UAAU+G,UAAY,CAACyO,GACtCrV,IAIPA,EAAKpgI,QAAQk+H,EAAS+B,UAAU+G,UAAU92I,KAAKulJ,GACxC,KAEf,IACK/kJ,SAAQ,SAAU0vI,GACP,MAARA,GACAA,IAAStX,GAE0B,MAAnCsX,EAAKpgI,QAAQk+H,EAAS+B,WAG1BG,EAAKtkI,OAAOskI,EAAKpgI,QAAQk+H,EAAS+B,UAAU+G,WAAa,GAAInoG,EACjE,IAEiD,MAA7C9zB,KAAK/K,QAAQk+H,EAAS+B,UAAU+G,WAEhC1sF,EAAOjpD,UAAUyK,OAAO9J,KAAK+Y,KAAMA,KAAK/K,QAAQk+H,EAAS+B,UAAU+G,UAAWnoG,GAElF9zB,KAAK4jI,SAAS3H,EAAWnoG,EAC7B,EACAumH,EAAW7kB,SAAW,SACtB6kB,EAAW/f,aAAe,QAC1B+f,EAAWxkG,MAAQs9E,EAASE,MAAMyG,WAClCugB,EAAW93F,QAAU,MACd83F,CACX,CAzJgC,CAyJ9B9nB,EAAYjjE,SACdhrE,EAAQgrE,QAAU+qF,CAGX,WAES3hJ,EAAQpU,EAAS8tI,GAEjC,aAEA,IAAIzE,EAAa3tH,MAAQA,KAAK2tH,WAAe,WACzC,IAAIyG,EAAgBxvI,OAAOyvI,gBACtB,CAAE1uE,UAAW,cAAgBn+D,OAAS,SAAUia,EAAGL,GAAKK,EAAEkkD,UAAYvkD,CAAG,GAC1E,SAAUK,EAAGL,GAAK,IAAK,IAAIi4D,KAAKj4D,EAAOA,EAAElY,eAAemwE,KAAI53D,EAAE43D,GAAKj4D,EAAEi4D,GAAI,EAC7E,OAAO,SAAU53D,EAAGL,GAEhB,SAASkzH,IAAOt0H,KAAK3Z,YAAcob,CAAG,CADtC2yH,EAAc3yH,EAAGL,GAEjBK,EAAEnb,UAAkB,OAAN8a,EAAaxc,OAAOwQ,OAAOgM,IAAMkzH,EAAGhuI,UAAY8a,EAAE9a,UAAW,IAAIguI,EACnF,CACJ,CAT6C,GAU7C1vI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAIisI,EAAWJ,EAAoB,IAC/Be,EAAWf,EAAoB,GAa/BwoB,EAA4B,SAAUrrG,GAEtC,SAASqrG,IACL,OAAkB,OAAXrrG,GAAmBA,EAAOnqD,MAAM4a,KAAMxa,YAAcwa,IAC/D,CA6CA,OAhDA2tH,EAAUitB,EAAYrrG,GAItBqrG,EAAWlrB,QAAU,SAAUz6H,GAC3B,GAAIA,EAAQstD,UAAYq4F,EAAWr4F,QAEnC,OAAOhT,EAAOmgF,QAAQzoI,KAAK+Y,KAAM/K,EACrC,EACA2lJ,EAAWt0J,UAAUmiB,OAAS,SAAUhgB,EAAMlC,GAC1C,IAAIw3H,EAAQ/9G,KACRvX,IAASuX,KAAKq6H,QAAQ7E,UAAajvI,EAUnCgpD,EAAOjpD,UAAUmiB,OAAOxhB,KAAK+Y,KAAMvX,EAAMlC,IATzCyZ,KAAK3P,SAAS1K,SAAQ,SAAU68D,GACtBA,aAAiBgwE,EAASljE,UAC5B9M,EAAQA,EAAMu+E,KAAK6Z,EAAWplB,UAAU,IAE5CzX,EAAM16D,WAAWv2C,KAAK01C,EAC1B,IACAxiD,KAAK6jI,SAKb,EACA+W,EAAWt0J,UAAUk9I,SAAW,SAAU5uH,EAAOnvB,EAAQgD,EAAMlC,GAC/B,MAAxByZ,KAAK0vH,UAAUjnI,IAAiB0qI,EAAS5qH,MAAM9f,EAAM0qI,EAASE,MAAMqP,WACzD1iI,KAAK8gI,QAAQlsH,EAAOnvB,GAC1BgjB,OAAOhgB,EAAMlC,GAGlBgpD,EAAOjpD,UAAUk9I,SAASv8I,KAAK+Y,KAAM4U,EAAOnvB,EAAQgD,EAAMlC,EAElE,EACAq0J,EAAWt0J,UAAUs9I,SAAW,SAAU9vG,GACtCyb,EAAOjpD,UAAUs9I,SAAS38I,KAAK+Y,KAAM8zB,GACrC,IAAI47F,EAAU1vH,KAAK0vH,UACnB,GAAoC,IAAhC9qI,OAAOD,KAAK+qI,GAASjqI,OACrB,OAAOua,KAAK6jI,SAEhB,IAAI77I,EAAOgY,KAAKhY,KACZA,aAAgB4yJ,GAAc5yJ,EAAKmsE,OAASn0D,MApDxD,SAAiBo/C,EAAMC,GACnB,GAAIz6D,OAAOD,KAAKy6D,GAAM35D,SAAWb,OAAOD,KAAK06D,GAAM55D,OAC/C,OAAO,EAEX,IAAK,IAAI85D,KAAQH,EAEb,GAAIA,EAAKG,KAAUF,EAAKE,GACpB,OAAO,EAEf,OAAO,CACX,CA0CgEpyD,CAAQuiI,EAAS1nI,EAAK0nI,aAC1E1nI,EAAKg5I,aAAahhI,MAClBhY,EAAKqwB,SAEb,EACAuiI,EAAWplB,SAAW,SACtBolB,EAAW/kG,MAAQs9E,EAASE,MAAM8X,YAClCyP,EAAWr4F,QAAU,OACdq4F,CACX,CAlDgC,CAkD9BpoB,EAASljE,SACXhrE,EAAQgrE,QAAUsrF,CAGX,WAESliJ,EAAQpU,EAAS8tI,GAEjC,aAEA,IAAIzE,EAAa3tH,MAAQA,KAAK2tH,WAAe,WACzC,IAAIyG,EAAgBxvI,OAAOyvI,gBACtB,CAAE1uE,UAAW,cAAgBn+D,OAAS,SAAUia,EAAGL,GAAKK,EAAEkkD,UAAYvkD,CAAG,GAC1E,SAAUK,EAAGL,GAAK,IAAK,IAAIi4D,KAAKj4D,EAAOA,EAAElY,eAAemwE,KAAI53D,EAAE43D,GAAKj4D,EAAEi4D,GAAI,EAC7E,OAAO,SAAU53D,EAAGL,GAEhB,SAASkzH,IAAOt0H,KAAK3Z,YAAcob,CAAG,CADtC2yH,EAAc3yH,EAAGL,GAEjBK,EAAEnb,UAAkB,OAAN8a,EAAaxc,OAAOwQ,OAAOgM,IAAMkzH,EAAGhuI,UAAY8a,EAAE9a,UAAW,IAAIguI,EACnF,CACJ,CAT6C,GAU7C1vI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAIisI,EAAWJ,EAAoB,IAC/Be,EAAWf,EAAoB,GAC/ByoB,EAA2B,SAAUtrG,GAErC,SAASsrG,IACL,OAAkB,OAAXtrG,GAAmBA,EAAOnqD,MAAM4a,KAAMxa,YAAcwa,IAC/D,CAgDA,OAnDA2tH,EAAUktB,EAAWtrG,GAIrBsrG,EAAUnrB,QAAU,SAAUz6H,GAC1B,IAAIstD,EAAU4wE,EAAS5qH,MAAMsyI,EAAUrlB,UAAUjzE,QACjD,GAAIttD,EAAQstD,UAAYA,EAExB,OAAOhT,EAAOmgF,QAAQzoI,KAAK+Y,KAAM/K,EACrC,EACA4lJ,EAAUv0J,UAAUmiB,OAAS,SAAUhgB,EAAMlC,GACS,MAA9C4sI,EAAS5qH,MAAM9f,EAAM0qI,EAASE,MAAMwB,SAG/BpsI,IAASuX,KAAKq6H,QAAQ7E,UAAajvI,EAIxCgpD,EAAOjpD,UAAUmiB,OAAOxhB,KAAK+Y,KAAMvX,EAAMlC,GAHzCyZ,KAAK+qI,YAAY8P,EAAUrlB,UAKnC,EACAqlB,EAAUv0J,UAAUk9I,SAAW,SAAU5uH,EAAOnvB,EAAQgD,EAAMlC,GACR,MAA9C4sI,EAAS5qH,MAAM9f,EAAM0qI,EAASE,MAAMwB,OACpC70H,KAAKyI,OAAOhgB,EAAMlC,GAGlBgpD,EAAOjpD,UAAUk9I,SAASv8I,KAAK+Y,KAAM4U,EAAOnvB,EAAQgD,EAAMlC,EAElE,EACAs0J,EAAUv0J,UAAUuzI,SAAW,SAAUjlH,EAAOruB,EAAOqzI,GACnD,GAAW,MAAPA,GAA+D,MAAhDzG,EAAS5qH,MAAMhiB,EAAO4sI,EAASE,MAAMyB,QAEpDvlF,EAAOjpD,UAAUuzI,SAAS5yI,KAAK+Y,KAAM4U,EAAOruB,EAAOqzI,OAElD,CACD,IAAI+N,EAAQ3nI,KAAKsH,MAAMsN,GACnBygH,EAAOlC,EAAS/9H,OAAO7O,EAAOqzI,GAClC+N,EAAM7O,OAAOx+D,aAAa+6D,EAAMsS,EACpC,CACJ,EACAkT,EAAUv0J,UAAUyK,OAAS,SAAUkrI,EAAWnoG,GAC1CqpB,UAAUzyB,UAAUxkB,MAAM,WAC1BlG,KAAKotB,QAGLmiB,EAAOjpD,UAAUyK,OAAO9J,KAAK+Y,KAAMi8H,EAAWnoG,EAEtD,EACA+mH,EAAUrlB,SAAW,QACrBqlB,EAAUhlG,MAAQs9E,EAASE,MAAMyG,WACjC+gB,EAAUt4F,QAAU,IACbs4F,CACX,CArD+B,CAqD7BroB,EAASljE,SACXhrE,EAAQgrE,QAAUurF,CAGX,WAESniJ,EAAQpU,EAAS8tI,GAEjC,aAEA,IAAIzE,EAAa3tH,MAAQA,KAAK2tH,WAAe,WACzC,IAAIyG,EAAgBxvI,OAAOyvI,gBACtB,CAAE1uE,UAAW,cAAgBn+D,OAAS,SAAUia,EAAGL,GAAKK,EAAEkkD,UAAYvkD,CAAG,GAC1E,SAAUK,EAAGL,GAAK,IAAK,IAAIi4D,KAAKj4D,EAAOA,EAAElY,eAAemwE,KAAI53D,EAAE43D,GAAKj4D,EAAEi4D,GAAI,EAC7E,OAAO,SAAU53D,EAAGL,GAEhB,SAASkzH,IAAOt0H,KAAK3Z,YAAcob,CAAG,CADtC2yH,EAAc3yH,EAAGL,GAEjBK,EAAEnb,UAAkB,OAAN8a,EAAaxc,OAAOwQ,OAAOgM,IAAMkzH,EAAGhuI,UAAY8a,EAAE9a,UAAW,IAAIguI,EACnF,CACJ,CAT6C,GAU7C1vI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IACIu0J,EAA2B,SAAUvrG,GAErC,SAASurG,IACL,OAAkB,OAAXvrG,GAAmBA,EAAOnqD,MAAM4a,KAAMxa,YAAcwa,IAC/D,CAqBA,OAxBA2tH,EAAUmtB,EAAWvrG,GAIrBurG,EAAUprB,QAAU,SAAUz6H,GAE9B,EACA6lJ,EAAUx0J,UAAUmiB,OAAS,SAAUhgB,EAAMlC,GAIzCgpD,EAAOjpD,UAAUk9I,SAASv8I,KAAK+Y,KAAM,EAAGA,KAAKva,SAAUgD,EAAMlC,EACjE,EACAu0J,EAAUx0J,UAAUk9I,SAAW,SAAU5uH,EAAOnvB,EAAQgD,EAAMlC,GAC5C,IAAVquB,GAAenvB,IAAWua,KAAKva,SAC/Bua,KAAKyI,OAAOhgB,EAAMlC,GAGlBgpD,EAAOjpD,UAAUk9I,SAASv8I,KAAK+Y,KAAM4U,EAAOnvB,EAAQgD,EAAMlC,EAElE,EACAu0J,EAAUx0J,UAAUopI,QAAU,WAC1B,OAAO1vH,KAAKq6H,QAAQ3K,QAAQ1vH,KAAK/K,QACrC,EACO6lJ,CACX,CA1B+B,CADlB1oB,EAAoB,IA2BxB9iE,SACThrE,EAAQgrE,QAAUwrF,CAGX,WAESpiJ,EAAQpU,EAAS8tI,GAEjC,aAEA,IAAIzE,EAAa3tH,MAAQA,KAAK2tH,WAAe,WACzC,IAAIyG,EAAgBxvI,OAAOyvI,gBACtB,CAAE1uE,UAAW,cAAgBn+D,OAAS,SAAUia,EAAGL,GAAKK,EAAEkkD,UAAYvkD,CAAG,GAC1E,SAAUK,EAAGL,GAAK,IAAK,IAAIi4D,KAAKj4D,EAAOA,EAAElY,eAAemwE,KAAI53D,EAAE43D,GAAKj4D,EAAEi4D,GAAI,EAC7E,OAAO,SAAU53D,EAAGL,GAEhB,SAASkzH,IAAOt0H,KAAK3Z,YAAcob,CAAG,CADtC2yH,EAAc3yH,EAAGL,GAEjBK,EAAEnb,UAAkB,OAAN8a,EAAaxc,OAAOwQ,OAAOgM,IAAMkzH,EAAGhuI,UAAY8a,EAAE9a,UAAW,IAAIguI,EACnF,CACJ,CAT6C,GAU7C1vI,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,IACtD,IAAIksI,EAASL,EAAoB,IAC7Be,EAAWf,EAAoB,GAC/BgP,EAA0B,SAAU7xF,GAEpC,SAAS6xF,EAASh2I,GACd,IAAI2yH,EAAQxuE,EAAOtoD,KAAK+Y,KAAM5U,IAAS4U,KAEvC,OADA+9G,EAAM76D,KAAO66D,EAAMsc,QAAQ9zI,MAAMw3H,EAAM9oH,SAChC8oH,CACX,CAyEA,OA9EA4P,EAAUyT,EAAU7xF,GAMpB6xF,EAAShsI,OAAS,SAAU7O,GACxB,OAAOkrC,SAASkgF,eAAeprH,EACnC,EACA66I,EAAS76I,MAAQ,SAAU0O,GACvB,IAAIiuD,EAAOjuD,EAAQsK,KAInB,OAFI2jD,EAAgB,YAChBA,EAAOA,EAAgB,aACpBA,CACX,EACAk+E,EAAS96I,UAAU68I,SAAW,SAAUvuH,EAAOnvB,GAC3Cua,KAAK/K,QAAQsK,KAAOS,KAAKkjD,KAAOljD,KAAKkjD,KAAK16D,MAAM,EAAGosB,GAAS5U,KAAKkjD,KAAK16D,MAAMosB,EAAQnvB,EACxF,EACA27I,EAAS96I,UAAUsuB,MAAQ,SAAUxpB,EAAM8X,GACvC,OAAIlD,KAAK/K,UAAY7J,EACV8X,GAEH,CACZ,EACAk+H,EAAS96I,UAAUuzI,SAAW,SAAUjlH,EAAOruB,EAAOqzI,GACvC,MAAPA,GACA55H,KAAKkjD,KAAOljD,KAAKkjD,KAAK16D,MAAM,EAAGosB,GAASruB,EAAQyZ,KAAKkjD,KAAK16D,MAAMosB,GAChE5U,KAAK/K,QAAQsK,KAAOS,KAAKkjD,MAGzB3T,EAAOjpD,UAAUuzI,SAAS5yI,KAAK+Y,KAAM4U,EAAOruB,EAAOqzI,EAE3D,EACAwH,EAAS96I,UAAUb,OAAS,WACxB,OAAOua,KAAKkjD,KAAKz9D,MACrB,EACA27I,EAAS96I,UAAUs9I,SAAW,SAAU9vG,GACpCyb,EAAOjpD,UAAUs9I,SAAS38I,KAAK+Y,KAAM8zB,GACrC9zB,KAAKkjD,KAAOljD,KAAKq6H,QAAQ9zI,MAAMyZ,KAAK/K,SACX,IAArB+K,KAAKkjD,KAAKz9D,OACVua,KAAKqY,SAEArY,KAAKhY,gBAAgBo5I,GAAYphI,KAAKhY,KAAKmsE,OAASn0D,OACzDA,KAAK65H,SAAS75H,KAAKva,SAAUua,KAAKhY,KAAKzB,SACvCyZ,KAAKhY,KAAKqwB,SAElB,EACA+oH,EAAS96I,UAAUwb,SAAW,SAAU8S,EAAO21H,GAE3C,YADkB,IAAdA,IAAwBA,GAAY,GACjC,CAACvqI,KAAK/K,QAAS2f,EAC1B,EACAwsH,EAAS96I,UAAUghB,MAAQ,SAAUsN,EAAOwlH,GAExC,QADc,IAAVA,IAAoBA,GAAQ,IAC3BA,EAAO,CACR,GAAc,IAAVxlH,EACA,OAAO5U,KACX,GAAI4U,IAAU5U,KAAKva,SACf,OAAOua,KAAKhY,IACpB,CACA,IAAI2/I,EAAQxU,EAAS/9H,OAAO4K,KAAK/K,QAAQ8lJ,UAAUnmI,IAGnD,OAFA5U,KAAK84H,OAAOx+D,aAAaqtE,EAAO3nI,KAAKhY,MACrCgY,KAAKkjD,KAAOljD,KAAKq6H,QAAQ9zI,MAAMyZ,KAAK/K,SAC7B0yI,CACX,EACAvG,EAAS96I,UAAUyK,OAAS,SAAUkrI,EAAWnoG,GAC7C,IAAIiqF,EAAQ/9G,KACRi8H,EAAUzN,MAAK,SAAUkc,GACzB,MAAyB,kBAAlBA,EAAS/2I,MAA4B+2I,EAASplJ,SAAWy4H,EAAM9oH,OAC1E,MACI+K,KAAKkjD,KAAOljD,KAAKq6H,QAAQ9zI,MAAMyZ,KAAK/K,SAE5C,EACAmsI,EAAS96I,UAAUC,MAAQ,WACvB,OAAOyZ,KAAKkjD,IAChB,EACAk+E,EAAS5L,SAAW,OACpB4L,EAASvrF,MAAQs9E,EAASE,MAAM8X,YACzB/J,CACX,CAhF8B,CAgF5B3O,EAAOnjE,SACThrE,EAAQgrE,QAAU8xE,CAGX,WAES1oI,EAAQpU,EAAS8tI,GAEjC,aAGA,IAAIkE,EAAO7kG,SAASzgC,cAAc,OAElC,GADAslI,EAAK+E,UAAUS,OAAO,cAAc,GAChCxF,EAAK+E,UAAUxyD,SAAS,cAAe,CACzC,IAAImyE,EAAUC,aAAa30J,UAAUw1I,OACrCmf,aAAa30J,UAAUw1I,OAAS,SAAUnyH,EAAOywH,GAC/C,OAAI50I,UAAUC,OAAS,IAAMua,KAAK6oE,SAASl/D,MAAYywH,EAC9CA,EAEA4gB,EAAQ/zJ,KAAK+Y,KAAM2J,EAE9B,CACF,CAEK2M,OAAOhwB,UAAUw0C,aACpBxkB,OAAOhwB,UAAUw0C,WAAa,SAAUogH,EAAcp5I,GAEpD,OADAA,EAAWA,GAAY,EAChB9B,KAAK8iB,OAAOhhB,EAAUo5I,EAAaz1J,UAAYy1J,CACxD,GAGG5kI,OAAOhwB,UAAUy0C,WACpBzkB,OAAOhwB,UAAUy0C,SAAW,SAAUmgH,EAAcp5I,GAClD,IAAIq5I,EAAgBn7I,KAAKzX,YACD,kBAAbuZ,IAA0B4oD,SAAS5oD,IAAaO,KAAKC,MAAMR,KAAcA,GAAYA,EAAWq5I,EAAc11J,UACvHqc,EAAWq5I,EAAc11J,QAE3Bqc,GAAYo5I,EAAaz1J,OACzB,IAAI6mJ,EAAY6O,EAAct0J,QAAQq0J,EAAcp5I,GACpD,OAAsB,IAAfwqI,GAAoBA,IAAcxqI,CAC3C,GAGGta,MAAMlB,UAAUgtI,MACnB1uI,OAAOoB,eAAewB,MAAMlB,UAAW,OAAQ,CAC7CC,MAAO,SAAe0sF,GACpB,GAAa,OAATjzE,KACF,MAAM,IAAIlX,UAAU,oDAEtB,GAAyB,oBAAdmqF,EACT,MAAM,IAAInqF,UAAU,gCAOtB,IALA,IAGIvC,EAHAy0B,EAAOp2B,OAAOob,MACdva,EAASu1B,EAAKv1B,SAAW,EACzBw2E,EAAUz2E,UAAU,GAGfD,EAAI,EAAGA,EAAIE,EAAQF,IAE1B,GADAgB,EAAQy0B,EAAKz1B,GACT0tF,EAAUhsF,KAAKg1E,EAAS11E,EAAOhB,EAAGy1B,GACpC,OAAOz0B,CAIb,IAIJkrC,SAAS5F,iBAAiB,oBAAoB,WAE5C4F,SAAS2pH,YAAY,wBAAwB,GAAO,GAEpD3pH,SAAS2pH,YAAY,iBAAiB,GAAO,EAC/C,GAEO,WAES1iJ,EAAQpU,GAiCxB,IAAI+2J,GAAe,EACfC,EAAc,EACdC,EAAa,EAWjB,SAASC,EAAUC,EAAOC,EAAOC,GAE/B,GAAIF,GAASC,EACX,OAAID,EACK,CAAC,CAACF,EAAYE,IAEhB,IAILE,EAAa,GAAKF,EAAMh2J,OAASk2J,KACnCA,EAAa,MAIf,IAAIC,EAAeC,EAAkBJ,EAAOC,GACxCI,EAAeL,EAAM5uH,UAAU,EAAG+uH,GAKtCA,EAAeG,EAJfN,EAAQA,EAAM5uH,UAAU+uH,GACxBF,EAAQA,EAAM7uH,UAAU+uH,IAIxB,IAAII,EAAeP,EAAM5uH,UAAU4uH,EAAMh2J,OAASm2J,GAK9CK,EAyBN,SAAuBR,EAAOC,GAC5B,IAAIO,EAEJ,IAAKR,EAEH,MAAO,CAAC,CAACH,EAAaI,IAGxB,IAAKA,EAEH,MAAO,CAAC,CAACL,EAAaI,IAGxB,IAAIS,EAAWT,EAAMh2J,OAASi2J,EAAMj2J,OAASg2J,EAAQC,EACjDS,EAAYV,EAAMh2J,OAASi2J,EAAMj2J,OAASi2J,EAAQD,EAClDl2J,EAAI22J,EAASr1J,QAAQs1J,GACzB,IAAU,GAAN52J,EASF,OAPA02J,EAAQ,CAAC,CAACX,EAAaY,EAASrvH,UAAU,EAAGtnC,IACpC,CAACg2J,EAAYY,GACb,CAACb,EAAaY,EAASrvH,UAAUtnC,EAAI42J,EAAU12J,UAEpDg2J,EAAMh2J,OAASi2J,EAAMj2J,SACvBw2J,EAAM,GAAG,GAAKA,EAAM,GAAG,GAAKZ,GAEvBY,EAGT,GAAwB,GAApBE,EAAU12J,OAGZ,MAAO,CAAC,CAAC41J,EAAaI,GAAQ,CAACH,EAAaI,IAI9C,IAAIU,EAwON,SAAyBX,EAAOC,GAC9B,IAAIQ,EAAWT,EAAMh2J,OAASi2J,EAAMj2J,OAASg2J,EAAQC,EACjDS,EAAYV,EAAMh2J,OAASi2J,EAAMj2J,OAASi2J,EAAQD,EACtD,GAAIS,EAASz2J,OAAS,GAAwB,EAAnB02J,EAAU12J,OAAay2J,EAASz2J,OACzD,OAAO,KAeT,SAAS42J,EAAiBH,EAAUC,EAAW52J,GAM7C,IAJA,IAGI+2J,EAAiBC,EAAiBC,EAAkBC,EAHpDC,EAAOR,EAASrvH,UAAUtnC,EAAGA,EAAI8c,KAAKC,MAAM45I,EAASz2J,OAAS,IAC9DkiE,GAAK,EACLg1F,EAAc,IAE8B,IAAxCh1F,EAAIw0F,EAAUt1J,QAAQ61J,EAAM/0F,EAAI,KAAW,CACjD,IAAIi1F,EAAef,EAAkBK,EAASrvH,UAAUtnC,GACnB42J,EAAUtvH,UAAU86B,IACrDi+E,EAAemW,EAAkBG,EAASrvH,UAAU,EAAGtnC,GACtB42J,EAAUtvH,UAAU,EAAG86B,IACxDg1F,EAAYl3J,OAASmgJ,EAAegX,IACtCD,EAAcR,EAAUtvH,UAAU86B,EAAIi+E,EAAcj+E,GAChDw0F,EAAUtvH,UAAU86B,EAAGA,EAAIi1F,GAC/BN,EAAkBJ,EAASrvH,UAAU,EAAGtnC,EAAIqgJ,GAC5C2W,EAAkBL,EAASrvH,UAAUtnC,EAAIq3J,GACzCJ,EAAmBL,EAAUtvH,UAAU,EAAG86B,EAAIi+E,GAC9C6W,EAAmBN,EAAUtvH,UAAU86B,EAAIi1F,GAE/C,CACA,OAAyB,EAArBD,EAAYl3J,QAAcy2J,EAASz2J,OAC9B,CAAC62J,EAAiBC,EACjBC,EAAkBC,EAAkBE,GAErC,IAEX,CAGA,IAKIP,EAaAS,EAASC,EAASC,EAASC,EAlB3BC,EAAMZ,EAAiBH,EAAUC,EACV95I,KAAKwhC,KAAKq4G,EAASz2J,OAAS,IAEnDy3J,EAAMb,EAAiBH,EAAUC,EACV95I,KAAKwhC,KAAKq4G,EAASz2J,OAAS,IAEvD,IAAKw3J,IAAQC,EACX,OAAO,KAOPd,EANUc,EAEAD,GAILA,EAAI,GAAGx3J,OAASy3J,EAAI,GAAGz3J,OAASw3J,EAHhCC,EAFAD,EAUHxB,EAAMh2J,OAASi2J,EAAMj2J,QACvBo3J,EAAUT,EAAG,GACbU,EAAUV,EAAG,GACbW,EAAUX,EAAG,GACbY,EAAUZ,EAAG,KAEbW,EAAUX,EAAG,GACbY,EAAUZ,EAAG,GACbS,EAAUT,EAAG,GACbU,EAAUV,EAAG,IAEf,IAAIe,EAAaf,EAAG,GACpB,MAAO,CAACS,EAASC,EAASC,EAASC,EAASG,EAC9C,CAxTWC,CAAgB3B,EAAOC,GAChC,GAAIU,EAAI,CAEN,IAAIS,EAAUT,EAAG,GACbU,EAAUV,EAAG,GACbW,EAAUX,EAAG,GACbY,EAAUZ,EAAG,GACbe,EAAaf,EAAG,GAEhBiB,EAAU7B,EAAUqB,EAASE,GAC7BO,EAAU9B,EAAUsB,EAASE,GAEjC,OAAOK,EAAQ3uJ,OAAO,CAAC,CAAC6sJ,EAAY4B,IAAcG,EACpD,CAEA,OAaF,SAAsB7B,EAAOC,GAW3B,IATA,IAAI6B,EAAe9B,EAAMh2J,OACrB+3J,EAAe9B,EAAMj2J,OACrBg4J,EAAQp7I,KAAKwhC,MAAM05G,EAAeC,GAAgB,GAClDE,EAAWD,EACXE,EAAW,EAAIF,EACfG,EAAK,IAAIp2J,MAAMm2J,GACfE,EAAK,IAAIr2J,MAAMm2J,GAGV30J,EAAI,EAAGA,EAAI20J,EAAU30J,IAC5B40J,EAAG50J,IAAM,EACT60J,EAAG70J,IAAM,EAEX40J,EAAGF,EAAW,GAAK,EACnBG,EAAGH,EAAW,GAAK,EAWnB,IAVA,IAAIv0H,EAAQo0H,EAAeC,EAGvBM,EAAS30H,EAAQ,GAAK,EAGtB40H,EAAU,EACVC,EAAQ,EACRC,EAAU,EACVC,EAAQ,EACHz8I,EAAI,EAAGA,EAAIg8I,EAAOh8I,IAAK,CAE9B,IAAK,IAAI08I,GAAM18I,EAAIs8I,EAASI,GAAM18I,EAAIu8I,EAAOG,GAAM,EAAG,CASpD,IARA,IAAIC,EAAYV,EAAWS,EAOvBE,GAJFC,EADEH,IAAO18I,GAAM08I,GAAM18I,GAAKm8I,EAAGQ,EAAY,GAAKR,EAAGQ,EAAY,GACxDR,EAAGQ,EAAY,GAEfR,EAAGQ,EAAY,GAAK,GAEbD,EACPG,EAAKf,GAAgBc,EAAKb,GAC1B/B,EAAMjoJ,OAAO8qJ,IAAO5C,EAAMloJ,OAAO6qJ,IACtCC,IACAD,IAGF,GADAT,EAAGQ,GAAaE,EACZA,EAAKf,EAEPS,GAAS,OACJ,GAAIK,EAAKb,EAEdO,GAAW,OACN,GAAID,IACLS,EAAYb,EAAWv0H,EAAQg1H,IAClB,GAAKI,EAAYZ,IAA8B,GAAlBE,EAAGU,IAG3CD,IADAE,EAAKjB,EAAeM,EAAGU,IAGzB,OAAOE,EAAkBhD,EAAOC,EAAO4C,EAAID,EAInD,CAGA,IAAK,IAAIK,GAAMj9I,EAAIw8I,EAASS,GAAMj9I,EAAIy8I,EAAOQ,GAAM,EAAG,CASpD,IARA,IACIF,EADAD,EAAYb,EAAWgB,EAOvBC,GAJFH,EADEE,IAAOj9I,GAAMi9I,GAAMj9I,GAAKo8I,EAAGU,EAAY,GAAKV,EAAGU,EAAY,GACxDV,EAAGU,EAAY,GAEfV,EAAGU,EAAY,GAAK,GAEbG,EACPF,EAAKjB,GAAgBoB,EAAKnB,GAC1B/B,EAAMjoJ,OAAO+pJ,EAAeiB,EAAK,IACjC9C,EAAMloJ,OAAOgqJ,EAAemB,EAAK,IACtCH,IACAG,IAGF,GADAd,EAAGU,GAAaC,EACZA,EAAKjB,EAEPW,GAAS,OACJ,GAAIS,EAAKnB,EAEdS,GAAW,OACN,IAAKH,EAAO,CAGf,IAAIQ,EADN,IADIF,EAAYV,EAAWv0H,EAAQu1H,IAClB,GAAKN,EAAYT,IAA8B,GAAlBC,EAAGQ,GAK/C,GAHIC,EAAKX,GADLY,EAAKV,EAAGQ,IACaA,EAGrBE,IADJE,EAAKjB,EAAeiB,GAGlB,OAAOC,EAAkBhD,EAAOC,EAAO4C,EAAID,EAGjD,CACF,CACF,CAGA,MAAO,CAAC,CAAChD,EAAaI,GAAQ,CAACH,EAAaI,GAC9C,CArHSkD,CAAanD,EAAOC,EAC7B,CA5EcmD,CAJZpD,EAAQA,EAAM5uH,UAAU,EAAG4uH,EAAMh2J,OAASm2J,GAC1CF,EAAQA,EAAM7uH,UAAU,EAAG6uH,EAAMj2J,OAASm2J,IAiB1C,OAXIE,GACFG,EAAMxxI,QAAQ,CAAC8wI,EAAYO,IAEzBE,GACFC,EAAM92J,KAAK,CAACo2J,EAAYS,IAE1B8C,EAAkB7C,GACA,MAAdN,IACFM,EA2iBJ,SAAqBA,EAAON,GAC1B,IAAIoD,EA9CN,SAAgC9C,EAAON,GACrC,GAAmB,IAAfA,EACF,MAAO,CAACJ,EAAYU,GAEtB,IAAK,IAAI+C,EAAc,EAAGz5J,EAAI,EAAGA,EAAI02J,EAAMx2J,OAAQF,IAAK,CACtD,IAAIkc,EAAIw6I,EAAM12J,GACd,GAAIkc,EAAE,KAAO45I,GAAe55I,EAAE,KAAO85I,EAAY,CAC/C,IAAI0D,EAAWD,EAAcv9I,EAAE,GAAGhc,OAClC,GAAIk2J,IAAesD,EACjB,MAAO,CAAC15J,EAAI,EAAG02J,GACV,GAAIN,EAAasD,EAAU,CAEhChD,EAAQA,EAAMzzJ,QAEd,IAAI02J,EAAYvD,EAAaqD,EACzBG,EAAS,CAAC19I,EAAE,GAAIA,EAAE,GAAGjZ,MAAM,EAAG02J,IAC9BE,EAAU,CAAC39I,EAAE,GAAIA,EAAE,GAAGjZ,MAAM02J,IAEhC,OADAjD,EAAMp1G,OAAOthD,EAAG,EAAG45J,EAAQC,GACpB,CAAC75J,EAAI,EAAG02J,EACjB,CACE+C,EAAcC,CAElB,CACF,CACA,MAAM,IAAI50J,MAAM,+BAClB,CAqBag1J,CAAsBpD,EAAON,GACpC2D,EAASP,EAAK,GACdQ,EAAiBR,EAAK,GACtBt9I,EAAI69I,EAAOC,GACXC,EAASF,EAAOC,EAAiB,GAErC,GAAS,MAAL99I,EAGF,OAAOw6I,EACF,GAAIx6I,EAAE,KAAO85I,EAGlB,OAAOU,EAEP,GAAc,MAAVuD,GAAkB/9I,EAAE,GAAK+9I,EAAO,KAAOA,EAAO,GAAK/9I,EAAE,GAIvD,OADA69I,EAAOz4G,OAAO04G,EAAgB,EAAGC,EAAQ/9I,GAClCg+I,EAAaH,EAAQC,EAAgB,GACvC,GAAc,MAAVC,GAA8C,IAA5BA,EAAO,GAAG34J,QAAQ4a,EAAE,IAAW,CAK1D69I,EAAOz4G,OAAO04G,EAAgB,EAAG,CAACC,EAAO,GAAI/9I,EAAE,IAAK,CAAC,EAAGA,EAAE,KAC1D,IAAIk4B,EAAS6lH,EAAO,GAAGh3J,MAAMiZ,EAAE,GAAGhc,QAIlC,OAHIk0C,EAAOl0C,OAAS,GAClB65J,EAAOz4G,OAAO04G,EAAiB,EAAG,EAAG,CAACC,EAAO,GAAI7lH,IAE5C8lH,EAAaH,EAAQC,EAAgB,EAC9C,CAEE,OAAOtD,CAGb,CAhlBYyD,CAAWzD,EAAON,IAE5BM,EAwlBF,SAAoBA,GAQlB,IAPA,IAAI0D,GAAU,EACVC,EAAuB,SAASrsJ,GAClC,OAAOA,EAAIkqD,WAAW,IAAM,OAAUlqD,EAAIkqD,WAAW,IAAM,KAC7D,EACIoiG,EAAuB,SAAStsJ,GAClC,OAAOA,EAAIkqD,WAAWlqD,EAAI9N,OAAO,IAAM,OAAU8N,EAAIkqD,WAAWlqD,EAAI9N,OAAO,IAAM,KACnF,EACSF,EAAI,EAAGA,EAAI02J,EAAMx2J,OAAQF,GAAK,EACjC02J,EAAM12J,EAAE,GAAG,KAAOg2J,GAAcsE,EAAqB5D,EAAM12J,EAAE,GAAG,KAChE02J,EAAM12J,EAAE,GAAG,KAAO81J,GAAeuE,EAAqB3D,EAAM12J,EAAE,GAAG,KACjE02J,EAAM12J,GAAG,KAAO+1J,GAAesE,EAAqB3D,EAAM12J,GAAG,MAC/Do6J,GAAU,EAEV1D,EAAM12J,EAAE,GAAG,GAAK02J,EAAM12J,EAAE,GAAG,GAAGiD,OAAO,GAAKyzJ,EAAM12J,EAAE,GAAG,GACrD02J,EAAM12J,GAAG,GAAK02J,EAAM12J,EAAE,GAAG,GAAGiD,OAAO,GAAKyzJ,EAAM12J,GAAG,GAEjD02J,EAAM12J,EAAE,GAAG,GAAK02J,EAAM12J,EAAE,GAAG,GAAGiD,MAAM,GAAI,IAG5C,IAAKm3J,EACH,OAAO1D,EAET,IAAI6D,EAAc,GAClB,IAASv6J,EAAI,EAAGA,EAAI02J,EAAMx2J,OAAQF,GAAK,EACjC02J,EAAM12J,GAAG,GAAGE,OAAS,GACvBq6J,EAAY36J,KAAK82J,EAAM12J,IAG3B,OAAOu6J,CACT,CAtnBUC,CAAU9D,EAEpB,CA6LA,SAASwC,EAAkBhD,EAAOC,EAAO1yJ,EAAGghE,GAC1C,IAAIg2F,EAASvE,EAAM5uH,UAAU,EAAG7jC,GAC5Bi3J,EAASvE,EAAM7uH,UAAU,EAAGm9B,GAC5Bk2F,EAASzE,EAAM5uH,UAAU7jC,GACzBm3J,EAASzE,EAAM7uH,UAAUm9B,GAGzBiyF,EAAQT,EAAUwE,EAAQC,GAC1BG,EAAS5E,EAAU0E,EAAQC,GAE/B,OAAOlE,EAAMvtJ,OAAO0xJ,EACtB,CAUA,SAASvE,EAAkBJ,EAAOC,GAEhC,IAAKD,IAAUC,GAASD,EAAMjoJ,OAAO,IAAMkoJ,EAAMloJ,OAAO,GACtD,OAAO,EAQT,IAJA,IAAI6sJ,EAAa,EACbC,EAAaj+I,KAAK8tB,IAAIsrH,EAAMh2J,OAAQi2J,EAAMj2J,QAC1C86J,EAAaD,EACbE,EAAe,EACZH,EAAaE,GACd9E,EAAM5uH,UAAU2zH,EAAcD,IAC9B7E,EAAM7uH,UAAU2zH,EAAcD,GAEhCC,EADAH,EAAaE,EAGbD,EAAaC,EAEfA,EAAal+I,KAAKC,OAAOg+I,EAAaD,GAAc,EAAIA,GAE1D,OAAOE,CACT,CASA,SAASxE,EAAkBN,EAAOC,GAEhC,IAAKD,IAAUC,GACXD,EAAMjoJ,OAAOioJ,EAAMh2J,OAAS,IAAMi2J,EAAMloJ,OAAOkoJ,EAAMj2J,OAAS,GAChE,OAAO,EAQT,IAJA,IAAI46J,EAAa,EACbC,EAAaj+I,KAAK8tB,IAAIsrH,EAAMh2J,OAAQi2J,EAAMj2J,QAC1C86J,EAAaD,EACbG,EAAa,EACVJ,EAAaE,GACd9E,EAAM5uH,UAAU4uH,EAAMh2J,OAAS86J,EAAY9E,EAAMh2J,OAASg7J,IAC1D/E,EAAM7uH,UAAU6uH,EAAMj2J,OAAS86J,EAAY7E,EAAMj2J,OAASg7J,GAE5DA,EADAJ,EAAaE,EAGbD,EAAaC,EAEfA,EAAal+I,KAAKC,OAAOg+I,EAAaD,GAAc,EAAIA,GAE1D,OAAOE,CACT,CAqGA,SAASzB,EAAkB7C,GACzBA,EAAM92J,KAAK,CAACo2J,EAAY,KAOxB,IANA,IAKIK,EALA8E,EAAU,EACVC,EAAe,EACfC,EAAe,EACfC,EAAc,GACdC,EAAc,GAEXJ,EAAUzE,EAAMx2J,QACrB,OAAQw2J,EAAMyE,GAAS,IACrB,KAAKpF,EACHsF,IACAE,GAAe7E,EAAMyE,GAAS,GAC9BA,IACA,MACF,KAAKrF,EACHsF,IACAE,GAAe5E,EAAMyE,GAAS,GAC9BA,IACA,MACF,KAAKnF,EAECoF,EAAeC,EAAe,GACX,IAAjBD,GAAuC,IAAjBC,IAGH,KADrBhF,EAAeC,EAAkBiF,EAAaD,MAEvCH,EAAUC,EAAeC,EAAgB,GAC1C3E,EAAMyE,EAAUC,EAAeC,EAAe,GAAG,IACjDrF,EACFU,EAAMyE,EAAUC,EAAeC,EAAe,GAAG,IAC7CE,EAAYj0H,UAAU,EAAG+uH,IAE7BK,EAAMp1G,OAAO,EAAG,EAAG,CAAC00G,EACAuF,EAAYj0H,UAAU,EAAG+uH,KAC7C8E,KAEFI,EAAcA,EAAYj0H,UAAU+uH,GACpCiF,EAAcA,EAAYh0H,UAAU+uH,IAIjB,KADrBA,EAAeG,EAAkB+E,EAAaD,MAE5C5E,EAAMyE,GAAS,GAAKI,EAAYj0H,UAAUi0H,EAAYr7J,OAClDm2J,GAAgBK,EAAMyE,GAAS,GACnCI,EAAcA,EAAYj0H,UAAU,EAAGi0H,EAAYr7J,OAC/Cm2J,GACJiF,EAAcA,EAAYh0H,UAAU,EAAGg0H,EAAYp7J,OAC/Cm2J,KAIa,IAAjB+E,EACF1E,EAAMp1G,OAAO65G,EAAUE,EACnBD,EAAeC,EAAc,CAACtF,EAAawF,IACrB,IAAjBF,EACT3E,EAAMp1G,OAAO65G,EAAUC,EACnBA,EAAeC,EAAc,CAACvF,EAAawF,IAE/C5E,EAAMp1G,OAAO65G,EAAUC,EAAeC,EAClCD,EAAeC,EAAc,CAACvF,EAAawF,GAC3C,CAACvF,EAAawF,IAEpBJ,EAAUA,EAAUC,EAAeC,GACxBD,EAAe,EAAI,IAAMC,EAAe,EAAI,GAAK,GACvC,IAAZF,GAAiBzE,EAAMyE,EAAU,GAAG,IAAMnF,GAEnDU,EAAMyE,EAAU,GAAG,IAAMzE,EAAMyE,GAAS,GACxCzE,EAAMp1G,OAAO65G,EAAS,IAEtBA,IAEFE,EAAe,EACfD,EAAe,EACfE,EAAc,GACdC,EAAc,GAIe,KAA/B7E,EAAMA,EAAMx2J,OAAS,GAAG,IAC1Bw2J,EAAM5kH,MAMR,IAAI0pH,GAAU,EAGd,IAFAL,EAAU,EAEHA,EAAUzE,EAAMx2J,OAAS,GAC1Bw2J,EAAMyE,EAAU,GAAG,IAAMnF,GACzBU,EAAMyE,EAAU,GAAG,IAAMnF,IAEvBU,EAAMyE,GAAS,GAAG7zH,UAAUovH,EAAMyE,GAAS,GAAGj7J,OAC9Cw2J,EAAMyE,EAAU,GAAG,GAAGj7J,SAAWw2J,EAAMyE,EAAU,GAAG,IAEtDzE,EAAMyE,GAAS,GAAKzE,EAAMyE,EAAU,GAAG,GACnCzE,EAAMyE,GAAS,GAAG7zH,UAAU,EAAGovH,EAAMyE,GAAS,GAAGj7J,OACrBw2J,EAAMyE,EAAU,GAAG,GAAGj7J,QACtDw2J,EAAMyE,EAAU,GAAG,GAAKzE,EAAMyE,EAAU,GAAG,GAAKzE,EAAMyE,EAAU,GAAG,GACnEzE,EAAMp1G,OAAO65G,EAAU,EAAG,GAC1BK,GAAU,GACD9E,EAAMyE,GAAS,GAAG7zH,UAAU,EAAGovH,EAAMyE,EAAU,GAAG,GAAGj7J,SAC5Dw2J,EAAMyE,EAAU,GAAG,KAErBzE,EAAMyE,EAAU,GAAG,IAAMzE,EAAMyE,EAAU,GAAG,GAC5CzE,EAAMyE,GAAS,GACXzE,EAAMyE,GAAS,GAAG7zH,UAAUovH,EAAMyE,EAAU,GAAG,GAAGj7J,QAClDw2J,EAAMyE,EAAU,GAAG,GACvBzE,EAAMp1G,OAAO65G,EAAU,EAAG,GAC1BK,GAAU,IAGdL,IAGEK,GACFjC,EAAkB7C,EAEtB,CAGA,IAAIvmB,EAAO8lB,EAwJX,SAASiE,EAAcxD,EAAO57F,EAAO56D,GAEnC,IAAK,IAAIF,EAAI86D,EAAQ56D,EAAS,EAAGF,GAAK,GAAKA,GAAK86D,EAAQ,EAAG96D,IACzD,GAAIA,EAAI,EAAI02J,EAAMx2J,OAAQ,CACxB,IAAIu7J,EAAS/E,EAAM12J,GACf07J,EAAUhF,EAAM12J,EAAE,GAClBy7J,EAAO,KAAOC,EAAQ,IACxBhF,EAAMp1G,OAAOthD,EAAG,EAAG,CAACy7J,EAAO,GAAIA,EAAO,GAAKC,EAAQ,IAEvD,CAEF,OAAOhF,CACT,CAnKAvmB,EAAK8B,OAAS8jB,EACd5lB,EAAK+B,OAAS4jB,EACd3lB,EAAKgC,MAAQ6jB,EAEb7iJ,EAAOpU,QAAUoxI,CAkKV,WAESh9H,EAAQpU,GAMxB,SAASwF,EAAM5D,GACb,IAAIvB,EAAO,GACX,IAAK,IAAIiB,KAAOM,EAAKvB,EAAKQ,KAAKS,GAC/B,OAAOjB,CACT,EARU+T,EAAOpU,QAAiC,oBAAhBM,OAAOD,KACrCC,OAAOD,KAAOmF,GAEVA,KAAOA,CAQR,WAES4O,EAAQpU,GAExB,IAAI48J,EAEI,sBAFsB,WAC5B,OAAOt8J,OAAO0B,UAAUiC,SAAStB,KAAKzB,UACxC,CAF8B,GAO9B,SAAS27J,EAAU18J,GACjB,MAAiD,sBAA1CG,OAAO0B,UAAUiC,SAAStB,KAAKxC,EACxC,CAGA,SAAS28J,EAAY38J,GACnB,OAAOA,GACY,iBAAVA,GACiB,iBAAjBA,EAAOgB,QACdb,OAAO0B,UAAU4C,eAAejC,KAAKxC,EAAQ,YAC5CG,OAAO0B,UAAUU,qBAAqBC,KAAKxC,EAAQ,YACpD,CACJ,EAfAH,EAAUoU,EAAOpU,QAAU48J,EAAyBC,EAAYC,GAExDD,UAAYA,EAKpB78J,EAAQ88J,YAAcA,CAWf,WAES1oJ,EAAQpU,GAExB,aAEA,IAAIotF,EAAM9sF,OAAO0B,UAAU4C,eACvB6oC,EAAS,IASb,SAAS0nF,IAAU,CA4BnB,SAAS4nC,EAAG1vI,EAAImiB,EAAS+6B,GACvB7uD,KAAK2R,GAAKA,EACV3R,KAAK8zB,QAAUA,EACf9zB,KAAK6uD,KAAOA,IAAQ,CACtB,CASA,SAASxjC,IACPrrB,KAAKwd,QAAU,IAAIi8F,EACnBz5G,KAAKshJ,aAAe,CACtB,CAnCI18J,OAAOwQ,SACTqkH,EAAOnzH,UAAY1B,OAAOwQ,OAAO,OAM5B,IAAIqkH,GAAS9zD,YAAW5zB,GAAS,IAqCxC1G,EAAa/kC,UAAUi7J,WAAa,WAClC,IACIlyI,EACA5mB,EAFAusI,EAAQ,GAIZ,GAA0B,IAAtBh1H,KAAKshJ,aAAoB,OAAOtsB,EAEpC,IAAKvsI,KAAS4mB,EAASrP,KAAKwd,QACtBk0D,EAAIzqF,KAAKooB,EAAQ5mB,IAAOusI,EAAM7vI,KAAK4sC,EAAStpC,EAAKD,MAAM,GAAKC,GAGlE,OAAI7D,OAAOC,sBACFmwI,EAAMtmI,OAAO9J,OAAOC,sBAAsBwqB,IAG5C2lH,CACT,EAUA3pG,EAAa/kC,UAAUg7C,UAAY,SAAmBz1C,EAAO21J,GAC3D,IAAIn1H,EAAM0F,EAASA,EAASlmC,EAAQA,EAChC41J,EAAYzhJ,KAAKwd,QAAQ6O,GAE7B,GAAIm1H,EAAQ,QAASC,EACrB,IAAKA,EAAW,MAAO,GACvB,GAAIA,EAAU9vI,GAAI,MAAO,CAAC8vI,EAAU9vI,IAEpC,IAAK,IAAIpsB,EAAI,EAAGqI,EAAI6zJ,EAAUh8J,OAAQkwG,EAAK,IAAInuG,MAAMoG,GAAIrI,EAAIqI,EAAGrI,IAC9DowG,EAAGpwG,GAAKk8J,EAAUl8J,GAAGosB,GAGvB,OAAOgkF,CACT,EASAtqE,EAAa/kC,UAAUkgC,KAAO,SAAc36B,EAAO61J,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAIz1H,EAAM0F,EAASA,EAASlmC,EAAQA,EAEpC,IAAKmU,KAAKwd,QAAQ6O,GAAM,OAAO,EAE/B,IAEImT,EACAj6C,EAHA+7C,EAAYthC,KAAKwd,QAAQ6O,GACzBzjC,EAAMpD,UAAUC,OAIpB,GAAI67C,EAAU3vB,GAAI,CAGhB,OAFI2vB,EAAUutB,MAAM7uD,KAAKqX,eAAexrB,EAAOy1C,EAAU3vB,QAAI5iB,GAAW,GAEhEnG,GACN,KAAK,EAAG,OAAO04C,EAAU3vB,GAAG1qB,KAAKq6C,EAAUxN,UAAU,EACrD,KAAK,EAAG,OAAOwN,EAAU3vB,GAAG1qB,KAAKq6C,EAAUxN,QAAS4tH,IAAK,EACzD,KAAK,EAAG,OAAOpgH,EAAU3vB,GAAG1qB,KAAKq6C,EAAUxN,QAAS4tH,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAOrgH,EAAU3vB,GAAG1qB,KAAKq6C,EAAUxN,QAAS4tH,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOtgH,EAAU3vB,GAAG1qB,KAAKq6C,EAAUxN,QAAS4tH,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAOvgH,EAAU3vB,GAAG1qB,KAAKq6C,EAAUxN,QAAS4tH,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKv8J,EAAI,EAAGi6C,EAAO,IAAIh4C,MAAMoB,EAAK,GAAIrD,EAAIqD,EAAKrD,IAC7Ci6C,EAAKj6C,EAAI,GAAKC,UAAUD,GAG1B+7C,EAAU3vB,GAAGvsB,MAAMk8C,EAAUxN,QAAS0L,EACxC,KAAO,CACL,IACImoB,EADAliE,EAAS67C,EAAU77C,OAGvB,IAAKF,EAAI,EAAGA,EAAIE,EAAQF,IAGtB,OAFI+7C,EAAU/7C,GAAGspE,MAAM7uD,KAAKqX,eAAexrB,EAAOy1C,EAAU/7C,GAAGosB,QAAI5iB,GAAW,GAEtEnG,GACN,KAAK,EAAG04C,EAAU/7C,GAAGosB,GAAG1qB,KAAKq6C,EAAU/7C,GAAGuuC,SAAU,MACpD,KAAK,EAAGwN,EAAU/7C,GAAGosB,GAAG1qB,KAAKq6C,EAAU/7C,GAAGuuC,QAAS4tH,GAAK,MACxD,KAAK,EAAGpgH,EAAU/7C,GAAGosB,GAAG1qB,KAAKq6C,EAAU/7C,GAAGuuC,QAAS4tH,EAAIC,GAAK,MAC5D,KAAK,EAAGrgH,EAAU/7C,GAAGosB,GAAG1qB,KAAKq6C,EAAU/7C,GAAGuuC,QAAS4tH,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKpiH,EAAM,IAAKmoB,EAAI,EAAGnoB,EAAO,IAAIh4C,MAAMoB,EAAK,GAAI++D,EAAI/+D,EAAK++D,IACxDnoB,EAAKmoB,EAAI,GAAKniE,UAAUmiE,GAG1BrmB,EAAU/7C,GAAGosB,GAAGvsB,MAAMk8C,EAAU/7C,GAAGuuC,QAAS0L,GAGpD,CAEA,OAAO,CACT,EAWAnU,EAAa/kC,UAAU+F,GAAK,SAAYR,EAAO8lB,EAAImiB,GACjD,IAAI2S,EAAW,IAAI46G,EAAG1vI,EAAImiB,GAAW9zB,MACjCqsB,EAAM0F,EAASA,EAASlmC,EAAQA,EAMpC,OAJKmU,KAAKwd,QAAQ6O,GACRrsB,KAAKwd,QAAQ6O,GAAK1a,GACvB3R,KAAKwd,QAAQ6O,GAAO,CAACrsB,KAAKwd,QAAQ6O,GAAMoa,GADbzmC,KAAKwd,QAAQ6O,GAAKlnC,KAAKshD,IAD/BzmC,KAAKwd,QAAQ6O,GAAOoa,EAAUzmC,KAAKshJ,gBAIpDthJ,IACT,EAWAqrB,EAAa/kC,UAAUuoE,KAAO,SAAchjE,EAAO8lB,EAAImiB,GACrD,IAAI2S,EAAW,IAAI46G,EAAG1vI,EAAImiB,GAAW9zB,MAAM,GACvCqsB,EAAM0F,EAASA,EAASlmC,EAAQA,EAMpC,OAJKmU,KAAKwd,QAAQ6O,GACRrsB,KAAKwd,QAAQ6O,GAAK1a,GACvB3R,KAAKwd,QAAQ6O,GAAO,CAACrsB,KAAKwd,QAAQ6O,GAAMoa,GADbzmC,KAAKwd,QAAQ6O,GAAKlnC,KAAKshD,IAD/BzmC,KAAKwd,QAAQ6O,GAAOoa,EAAUzmC,KAAKshJ,gBAIpDthJ,IACT,EAYAqrB,EAAa/kC,UAAU+wB,eAAiB,SAAwBxrB,EAAO8lB,EAAImiB,EAAS+6B,GAClF,IAAIxiC,EAAM0F,EAASA,EAASlmC,EAAQA,EAEpC,IAAKmU,KAAKwd,QAAQ6O,GAAM,OAAOrsB,KAC/B,IAAK2R,EAGH,OAF4B,MAAtB3R,KAAKshJ,aAAoBthJ,KAAKwd,QAAU,IAAIi8F,SACtCz5G,KAAKwd,QAAQ6O,GAClBrsB,KAGT,IAAIshC,EAAYthC,KAAKwd,QAAQ6O,GAE7B,GAAIiV,EAAU3vB,GAEP2vB,EAAU3vB,KAAOA,GACfk9C,IAAQvtB,EAAUutB,MAClB/6B,GAAWwN,EAAUxN,UAAYA,IAEV,MAAtB9zB,KAAKshJ,aAAoBthJ,KAAKwd,QAAU,IAAIi8F,SACtCz5G,KAAKwd,QAAQ6O,QAEtB,CACL,IAAK,IAAI9mC,EAAI,EAAG8pB,EAAS,GAAI5pB,EAAS67C,EAAU77C,OAAQF,EAAIE,EAAQF,KAE7D+7C,EAAU/7C,GAAGosB,KAAOA,GACnBk9C,IAASvtB,EAAU/7C,GAAGspE,MACtB/6B,GAAWwN,EAAU/7C,GAAGuuC,UAAYA,IAExCzkB,EAAOlqB,KAAKm8C,EAAU/7C,IAOtB8pB,EAAO5pB,OAAQua,KAAKwd,QAAQ6O,GAAyB,IAAlBhd,EAAO5pB,OAAe4pB,EAAO,GAAKA,EACxC,MAAtBrP,KAAKshJ,aAAoBthJ,KAAKwd,QAAU,IAAIi8F,SAC3Cz5G,KAAKwd,QAAQ6O,EAC3B,CAEA,OAAOrsB,IACT,EASAqrB,EAAa/kC,UAAU6vC,mBAAqB,SAA4BtqC,GACtE,IAAIwgC,EAaJ,OAXIxgC,GACFwgC,EAAM0F,EAASA,EAASlmC,EAAQA,EAC5BmU,KAAKwd,QAAQ6O,KACa,MAAtBrsB,KAAKshJ,aAAoBthJ,KAAKwd,QAAU,IAAIi8F,SACtCz5G,KAAKwd,QAAQ6O,MAG3BrsB,KAAKwd,QAAU,IAAIi8F,EACnBz5G,KAAKshJ,aAAe,GAGfthJ,IACT,EAKAqrB,EAAa/kC,UAAUgG,IAAM++B,EAAa/kC,UAAU+wB,eACpDgU,EAAa/kC,UAAU05C,YAAc3U,EAAa/kC,UAAU+F,GAK5Dg/B,EAAa/kC,UAAUioE,gBAAkB,WACvC,OAAOvuD,IACT,EAKAqrB,EAAa02H,SAAWhwH,EAKxB1G,EAAaA,aAAeA,EAKxB,qBAAuB3yB,IACzBA,EAAOpU,QAAU+mC,EAIZ,WAES3yB,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQ09J,UAAY19J,EAAQ29J,aAAe39J,EAAQ49J,aAAe59J,EAAQ69J,UAAY79J,EAAQ89J,gBAAkB99J,EAAQgrE,aAAUvgE,EAElI,IAAI9I,EAA4B,oBAAXE,QAAoD,kBAApBA,OAAOC,SAAwB,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAEvQgB,EAAgb,SAAUC,EAAK5B,GAAK,GAAIiC,MAAMC,QAAQN,GAAQ,OAAOA,EAAY,GAAIhB,OAAOC,YAAYxB,OAAOuC,GAAQ,OAAxf,SAAuBA,EAAK5B,GAAK,IAAIsC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWH,OAAKmH,EAAW,IAAM,IAAK,IAAiCpH,EAA7BD,EAAKP,EAAIhB,OAAOC,cAAmB0B,GAAMH,EAAKD,EAAGM,QAAQC,QAAoBJ,EAAK1C,KAAKwC,EAAGpB,QAAYhB,GAAKsC,EAAKpC,SAAWF,GAA3DuC,GAAK,GAAkE,CAAE,MAAOI,GAAOH,GAAK,EAAMH,EAAKM,CAAK,CAAE,QAAU,KAAWJ,GAAMJ,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAAuH6yI,CAAcvzI,EAAK5B,GAAa,MAAM,IAAIuD,UAAU,uDAA2D,EAE7oB2vI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIf2pB,EAAW7yF,EAFA4iE,EAAoB,IAM/B4G,EAAexpE,EAFD4iE,EAAoB,IAMlC6G,EAAczpE,EAFD4iE,EAAoB,IAMjCwb,EAAUp+E,EAFD4iE,EAAoB,IAM7B4I,EAAWxrE,EAFD4iE,EAAoB,KAM9ByI,EAAWrrE,EAFD4iE,EAAoB,IAI9BkwB,EAASlwB,EAAoB,IAE7BmwB,EAAcnwB,EAAoB,IAIlC4R,EAASx0E,EAFD4iE,EAAoB,KAI5BujB,EAASvjB,EAAoB,IAE7BowB,EAAapwB,EAAoB,IAEjCqwB,EAAQrwB,EAAoB,IAE5BswB,EAAQtwB,EAAoB,IAEhC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F,SAASL,EAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAQhN,IAAIg1I,GAAQ,EAAIF,EAAS1rE,SAAS,mBAE9BqzF,EAAU,eAEVC,EAAmB,CAAC,CAACluB,KAAKC,UAAWqtB,GAAY,CAACttB,KAAKC,UAAWutB,GAAe,CAAC,KA4PtF,SAAoB92J,EAAM+9B,GAIxB,OAHK05H,EAAc15H,EAAO,OACxBA,EAAM2sG,OAAO,MAER3sG,CACT,GAjQyG,CAACurG,KAAKouB,aAAcZ,GAAe,CAACxtB,KAAKouB,aAAcX,GAAY,CAACztB,KAAKouB,aAAcb,GAAe,CAACvtB,KAAKouB,aAAcV,GAAkB,CAAC1tB,KAAKouB,aA2S3P,SAAqB13J,EAAM+9B,GACzB,IAAIumG,EAAU,CAAC,EACX/zD,EAAQvwE,EAAKuwE,OAAS,CAAC,EAc3B,OAbIA,EAAMonF,WAA8C,WAAjCC,EAAa53J,GAAM23J,YACxCrzB,EAAQuzB,QAAS,GAEftnF,EAAMmoB,aAAek/D,EAAa53J,GAAM04F,WAAWhpD,WAAW,SAAW/Z,SAASiiI,EAAa53J,GAAM04F,aAAe,OACtH4rC,EAAQwzB,MAAO,GAEbt+J,OAAOD,KAAK+qI,GAASjqI,OAAS,IAChC0jC,EAAQg6H,EAAYh6H,EAAOumG,IAEzBj8F,WAAWkoC,EAAMynF,YAAc,GAAK,IAEtCj6H,GAAQ,IAAI6vG,EAAa1pE,SAAUwmE,OAAO,MAAMpnI,OAAOy6B,IAElDA,CACT,GA5TuR,CAAC,KAuQxR,SAAqB/9B,EAAM+9B,GACzB,IAAIjjB,EAAQ+yH,EAAY3pE,QAAQ/mD,MAAMnd,GACtC,GAAa,MAAT8a,GAAoC,cAAnBA,EAAMsvH,WAA6BqtB,EAAc15H,EAAO,MAC3E,OAAOA,EAIT,IAFA,IAAIqnH,GAAU,EACV1X,EAAS1tI,EAAK82D,YACV42E,EAAOuC,UAAUxyD,SAAS,iBAC2B,UAAtDowD,EAAY3pE,QAAQ/mD,MAAMuwH,IAAW,CAAC,GAAGtD,WAC5Cgb,GAAU,GAEZ1X,EAASA,EAAO52E,WAElB,OAAIsuF,GAAU,EAAUrnH,EACjBA,EAAMutG,SAAQ,IAAIsC,EAAa1pE,SAAU0mE,OAAO7sG,EAAM1jC,SAAW,GAAGuwI,OAAO,EAAG,CAAEwa,OAAQA,IACjG,GAtR4S,CAAC,IAAK6S,EAAWnyF,KAAKmyF,EAAY,SAAU,CAAC,IAAKA,EAAWnyF,KAAKmyF,EAAY,WAAY,CAAC,QAmQvY,WACE,OAAO,IAAIrqB,EAAa1pE,OAC1B,IAnQIg0F,EAAwB,CAAChB,EAAO9M,eAAgBgN,EAAW1M,oBAAoB1nJ,QAAO,SAAUi8I,EAAMr5D,GAExG,OADAq5D,EAAKr5D,EAAKn3C,SAAWm3C,EACdq5D,CACT,GAAG,CAAC,GAEAkZ,EAAoB,CAACjB,EAAOhN,WAAYiN,EAAY9M,gBAAiBE,EAAO3D,WAAYwQ,EAAW5M,eAAgB6M,EAAMzM,UAAW0M,EAAMxM,WAAW9nJ,QAAO,SAAUi8I,EAAMr5D,GAE9K,OADAq5D,EAAKr5D,EAAKn3C,SAAWm3C,EACdq5D,CACT,GAAG,CAAC,GAEAmZ,EAAY,SAAU1V,GAGxB,SAAS0V,EAAUzhB,EAAO9zI,IAzB5B,SAAyB4tG,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CA0BpJuwI,CAAgBr5H,KAAMwjJ,GAEtB,IAAIzlC,EA1BR,SAAoCx/G,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CA0B/NqyI,CAA2Bt5H,MAAOwjJ,EAAU79F,WAAa/gE,OAAOioD,eAAe22G,IAAYv8J,KAAK+Y,KAAM+hI,EAAO9zI,IAezH,OAbA8vH,EAAMgkB,MAAMtnD,KAAK5uD,iBAAiB,QAASkyF,EAAM0lC,QAAQvyF,KAAK6sD,IAC9DA,EAAMod,UAAYpd,EAAMgkB,MAAMxG,aAAa,gBAC3Cxd,EAAMod,UAAUlqD,aAAa,mBAAmB,GAChD8sC,EAAMod,UAAUlqD,aAAa,YAAa,GAC1C8sC,EAAMr9E,SAAW,GACjBkiH,EAAiBl0J,OAAOqvH,EAAM9vH,QAAQyyC,UAAU/6C,SAAQ,SAAUwK,GAChE,IAAIoB,EAAQrK,EAAeiJ,EAAM,GAC7BuzJ,EAAWnyJ,EAAM,GACjBkvC,EAAUlvC,EAAM,IAEftD,EAAQ01J,aAAeljH,IAAYwhH,IACxClkC,EAAM6lC,WAAWF,EAAUjjH,EAC7B,IACOs9E,CACT,CAqGA,OA7IF,SAAmByb,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAmB3eF,CAAUiqB,EAAW1V,GAuBrBrV,EAAa+qB,EAAW,CAAC,CACvB59J,IAAK,aACLW,MAAO,SAAoBm9J,EAAUjjH,GACnCzgC,KAAK0gC,SAASv7C,KAAK,CAACu+J,EAAUjjH,GAChC,GACC,CACD76C,IAAK,UACLW,MAAO,SAAiB60I,GACtB,GAAoB,kBAATA,EAET,OADAp7H,KAAKm7H,UAAUv5C,UAAYw5C,EAAKn1H,QAAQ,eAAgB,MACjDjG,KAAK6e,UAEd,IAAI6wG,EAAU1vH,KAAK+hI,MAAM/D,UAAUh+H,KAAK+hI,MAAM/U,UAAUyZ,WAAW7xH,OACnE,GAAI86G,EAAQsU,EAAO10E,QAAQkmE,UAAW,CACpC,IAAItyE,EAAOljD,KAAKm7H,UAAU0oB,UAE1B,OADA7jJ,KAAKm7H,UAAUv5C,UAAY,IACpB,IAAIo3C,EAAa1pE,SAAUwmE,OAAO5yE,EAAMr9D,EAAgB,CAAC,EAAGm+I,EAAO10E,QAAQkmE,SAAU9F,EAAQsU,EAAO10E,QAAQkmE,WACrH,CAEA,IAAIsuB,EAAmB9jJ,KAAK+jJ,kBACxBC,EAAoB98J,EAAe48J,EAAkB,GACrDG,EAAkBD,EAAkB,GACpCE,EAAeF,EAAkB,GAEjC76H,EAAQg7H,EAASnkJ,KAAKm7H,UAAW8oB,EAAiBC,GAOtD,OALIrB,EAAc15H,EAAO,OAAuD,MAA9CA,EAAMknG,IAAIlnG,EAAMknG,IAAI5qI,OAAS,GAAG49D,aAChEl6B,EAAQA,EAAMutG,SAAQ,IAAIsC,EAAa1pE,SAAU0mE,OAAO7sG,EAAM1jC,SAAW,GAAGw3B,OAAO,KAErFi+G,EAAMtxG,IAAI,UAAW5pB,KAAKm7H,UAAUv5C,UAAWz4D,GAC/CnpB,KAAKm7H,UAAUv5C,UAAY,GACpBz4D,CACT,GACC,CACDvjC,IAAK,uBACLW,MAAO,SAA8BquB,EAAOwmH,GAC1C,IAAI11I,EAASF,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAKooJ,EAAQt+E,QAAQytE,QAAQC,IAEzG,GAAqB,kBAAVpoH,EACT5U,KAAK+hI,MAAM9S,YAAYjvH,KAAK6e,QAAQjK,GAAQwmH,GAC5Cp7H,KAAK+hI,MAAMpR,aAAa,EAAGid,EAAQt+E,QAAQytE,QAAQK,YAC9C,CACL,IAAIgnB,EAAQpkJ,KAAK6e,QAAQu8G,GACzBp7H,KAAK+hI,MAAMoP,gBAAe,IAAInY,EAAa1pE,SAAU0mE,OAAOphH,GAAOlmB,OAAO01J,GAAQ1+J,GAClFsa,KAAK+hI,MAAMpR,aAAa/7G,EAAQwvI,EAAM3+J,SAAUmoJ,EAAQt+E,QAAQytE,QAAQK,OAC1E,CACF,GACC,CACDx3I,IAAK,UACLW,MAAO,SAAiBgQ,GACtB,IAAIyjI,EAASh6H,KAEb,IAAIzJ,EAAEikE,kBAAqBx6D,KAAK+hI,MAAMxoH,YAAtC,CACA,IAAI88E,EAAQr2F,KAAK+hI,MAAM9oC,eACnB9vE,GAAQ,IAAI6vG,EAAa1pE,SAAU0mE,OAAO3/B,EAAMzhF,OAChDmlF,EAAY/5F,KAAK+hI,MAAMlS,mBAAmB91B,UAC9C/5F,KAAKm7H,UAAUnhC,QACfh6F,KAAK+hI,MAAM/U,UAAUj8H,OAAO68I,EAAQt+E,QAAQytE,QAAQK,QACpD30G,YAAW,WACTU,EAAQA,EAAMz6B,OAAOsrI,EAAOn7G,WAAW5B,OAAOo5E,EAAM5wG,QACpDu0I,EAAO+H,MAAMoP,eAAehoH,EAAOykH,EAAQt+E,QAAQytE,QAAQyC,MAE3DxF,EAAO+H,MAAMpR,aAAaxnG,EAAM1jC,SAAW4wG,EAAM5wG,OAAQmoJ,EAAQt+E,QAAQytE,QAAQK,QACjFpD,EAAO+H,MAAMlS,mBAAmB91B,UAAYA,EAC5CigC,EAAO+H,MAAM/nC,OACf,GAAG,EAbsD,CAc3D,GACC,CACDp0G,IAAK,kBACLW,MAAO,WACL,IAAIk2I,EAASz8H,KAETikJ,EAAkB,GAClBC,EAAe,GAsBnB,OArBAlkJ,KAAK0gC,SAAS/6C,SAAQ,SAAU0+J,GAC9B,IAAIC,EAAQp9J,EAAem9J,EAAM,GAC7BX,EAAWY,EAAM,GACjB7jH,EAAU6jH,EAAM,GAEpB,OAAQZ,GACN,KAAKhvB,KAAKC,UACRuvB,EAAa/+J,KAAKs7C,GAClB,MACF,KAAKi0F,KAAKouB,aACRmB,EAAgB9+J,KAAKs7C,GACrB,MACF,QACE,GAAG96C,QAAQsB,KAAKw1I,EAAOtB,UAAU7hB,iBAAiBoqC,IAAW,SAAUt4J,GAErEA,EAAKu3J,GAAWv3J,EAAKu3J,IAAY,GACjCv3J,EAAKu3J,GAASx9J,KAAKs7C,EACrB,IAGN,IACO,CAACwjH,EAAiBC,EAC3B,KAGKV,CACT,CA5HgB,CA4Hd3oB,EAASvrE,SAOX,SAAS6zF,EAAYh6H,EAAO1gB,EAAQliB,GAClC,MAAwE,YAAjD,qBAAXkiB,EAAyB,YAAcxiB,EAAQwiB,IAClD7jB,OAAOD,KAAK8jB,GAAQra,QAAO,SAAU+6B,EAAOvjC,GACjD,OAAOu9J,EAAYh6H,EAAOvjC,EAAK6iB,EAAO7iB,GACxC,GAAGujC,GAEIA,EAAM/6B,QAAO,SAAU+6B,EAAOwsG,GACnC,OAAIA,EAAGtyE,YAAcsyE,EAAGtyE,WAAW56C,GAC1B0gB,EAAMhkC,KAAKwwI,GAEXxsG,EAAM2sG,OAAOH,EAAGG,QAAQ,EAAIusB,EAAS/yF,SAAS,CAAC,EAAGzpE,EAAgB,CAAC,EAAG4iB,EAAQliB,GAAQovI,EAAGtyE,YAEpG,GAAG,IAAI21E,EAAa1pE,QAExB,CAEA,SAAS0zF,EAAa53J,GACpB,GAAIA,EAAK8uF,WAAaw6C,KAAKouB,aAAc,MAAO,CAAC,EACjD,IAAIH,EAAU,sBACd,OAAOv3J,EAAKu3J,KAAav3J,EAAKu3J,GAAWltJ,OAAO8uJ,iBAAiBn5J,GACnE,CAEA,SAASy3J,EAAc15H,EAAO+5B,GAE5B,IADA,IAAIshG,EAAU,GACLj/J,EAAI4jC,EAAMknG,IAAI5qI,OAAS,EAAGF,GAAK,GAAKi/J,EAAQ/+J,OAASy9D,EAAKz9D,SAAUF,EAAG,CAC9E,IAAIowI,EAAKxsG,EAAMknG,IAAI9qI,GACnB,GAAyB,kBAAdowI,EAAGG,OAAqB,MACnC0uB,EAAU7uB,EAAGG,OAAS0uB,CACxB,CACA,OAAOA,EAAQh8J,OAAO,EAAI06D,EAAKz9D,UAAYy9D,CAC7C,CAEA,SAAS+pF,EAAO7hJ,GACd,GAA+B,IAA3BA,EAAK23D,WAAWt9D,OAAc,OAAO,EACzC,IAAIk2E,EAAQqnF,EAAa53J,GACzB,MAAO,CAAC,QAAS,aAAavE,QAAQ80E,EAAMk4C,UAAY,CAC1D,CAEA,SAASswC,EAAS/4J,EAAM64J,EAAiBC,GAEvC,OAAI94J,EAAK8uF,WAAa9uF,EAAKupI,UAClBuvB,EAAa91J,QAAO,SAAU+6B,EAAOsX,GAC1C,OAAOA,EAAQr1C,EAAM+9B,EACvB,GAAG,IAAI6vG,EAAa1pE,SACXlkE,EAAK8uF,WAAa9uF,EAAK03J,aACzB,GAAG10J,OAAOnH,KAAKmE,EAAK23D,YAAc,IAAI,SAAU55B,EAAO+rH,GAC5D,IAAIuP,EAAgBN,EAASjP,EAAW+O,EAAiBC,GASzD,OARIhP,EAAUh7D,WAAa9uF,EAAK03J,eAC9B2B,EAAgBR,EAAgB71J,QAAO,SAAUq2J,EAAehkH,GAC9D,OAAOA,EAAQy0G,EAAWuP,EAC5B,GAAGA,GACHA,GAAiBvP,EAAUyN,IAAY,IAAIv0J,QAAO,SAAUq2J,EAAehkH,GACzE,OAAOA,EAAQy0G,EAAWuP,EAC5B,GAAGA,IAEEt7H,EAAMz6B,OAAO+1J,EACtB,GAAG,IAAIzrB,EAAa1pE,SAEb,IAAI0pE,EAAa1pE,OAE5B,CAEA,SAAS+zF,EAAW56I,EAAQrd,EAAM+9B,GAChC,OAAOg6H,EAAYh6H,EAAO1gB,GAAQ,EACpC,CAEA,SAAS25I,EAAgBh3J,EAAM+9B,GAC7B,IAAIk6B,EAAa41E,EAAY3pE,QAAQykE,WAAWC,UAAUrvI,KAAKyG,GAC3DopI,EAAUyE,EAAY3pE,QAAQykE,WAAWE,MAAMtvI,KAAKyG,GACpDspJ,EAASzb,EAAY3pE,QAAQykE,WAAWG,MAAMvvI,KAAKyG,GACnDskI,EAAU,CAAC,EAoBf,OAnBArsE,EAAW30D,OAAO8lI,GAAS9lI,OAAOgmJ,GAAQ/uJ,SAAQ,SAAU8C,GAC1D,IAAIuoF,EAAOioD,EAAY3pE,QAAQ/mD,MAAM9f,EAAMwwI,EAAY3pE,QAAQ+jE,MAAMqP,WACzD,MAAR1xD,IACF0+C,EAAQ1+C,EAAKykD,UAAYzkD,EAAKzqF,MAAM6E,GAChCskI,EAAQ1+C,EAAKykD,aAGP,OADZzkD,EAAOsyE,EAAsB76J,KACRuoF,EAAKykD,WAAahtI,GAAQuoF,EAAKn3C,UAAYpxC,IAC9DinI,EAAQ1+C,EAAKykD,UAAYzkD,EAAKzqF,MAAM6E,SAAS2D,GAGnC,OADZiiF,EAAOuyE,EAAkB96J,KACJuoF,EAAKykD,WAAahtI,GAAQuoF,EAAKn3C,UAAYpxC,IAC9DuoF,EAAOuyE,EAAkB96J,GACzBinI,EAAQ1+C,EAAKykD,UAAYzkD,EAAKzqF,MAAM6E,SAAS2D,GAEjD,IACInK,OAAOD,KAAK+qI,GAASjqI,OAAS,IAChC0jC,EAAQg6H,EAAYh6H,EAAOumG,IAEtBvmG,CACT,CAEA,SAASg5H,EAAU/2J,EAAM+9B,GACvB,IAAIjjB,EAAQ+yH,EAAY3pE,QAAQ/mD,MAAMnd,GACtC,GAAa,MAAT8a,EAAe,OAAOijB,EAC1B,GAAIjjB,EAAM5f,qBAAqB2yI,EAAY3pE,QAAQqkE,MAAO,CACxD,IAAInuC,EAAQ,CAAC,EACTj/F,EAAQ2f,EAAM3f,MAAM6E,GACX,MAAT7E,IACFi/F,EAAMt/E,EAAMsvH,UAAYjvI,EACxB4iC,GAAQ,IAAI6vG,EAAa1pE,SAAUwmE,OAAOtwC,EAAOt/E,EAAMwpH,QAAQtkI,IAEnE,KAAoC,oBAAlB8a,EAAMwpH,UACtBvmG,EAAQg6H,EAAYh6H,EAAOjjB,EAAMsvH,SAAUtvH,EAAMwpH,QAAQtkI,KAE3D,OAAO+9B,CACT,CA8BA,SAAS+4H,EAAa92J,EAAM+9B,GAM1B,OALK05H,EAAc15H,EAAO,QACpB8jH,EAAO7hJ,IAAS+9B,EAAM1jC,SAAW,GAAK2F,EAAK+sG,aAAe80C,EAAO7hJ,EAAK+sG,eACxEhvE,EAAM2sG,OAAO,MAGV3sG,CACT,CAEA,SAAS84H,EAAa72J,EAAM+9B,GAC1B,GAAI8jH,EAAO7hJ,IAAoC,MAA3BA,EAAKw3D,qBAA+BigG,EAAc15H,EAAO,QAAS,CACpF,IAAIu7H,EAAat5J,EAAKu5J,aAAelxH,WAAWuvH,EAAa53J,GAAMw5J,WAAanxH,WAAWuvH,EAAa53J,GAAMy5J,cAC1Gz5J,EAAKw3D,mBAAmBkiG,UAAY15J,EAAK05J,UAAyB,IAAbJ,GACvDv7H,EAAM2sG,OAAO,KAEjB,CACA,OAAO3sG,CACT,CAqBA,SAAS64H,EAAU52J,EAAM+9B,GACvB,IAAI+5B,EAAO93D,EAAKmU,KAEhB,GAAgC,QAA5BnU,EAAK82D,WAAWK,QAClB,OAAOp5B,EAAM2sG,OAAO5yE,EAAK/U,QAE3B,GAA2B,IAAvB+U,EAAK/U,OAAO1oD,QAAgB2F,EAAK82D,WAAWm5E,UAAUxyD,SAAS,gBACjE,OAAO1/C,EAET,IAAK65H,EAAa53J,EAAK82D,YAAY6iG,WAAWjqH,WAAW,OAAQ,CAE/D,IAAIkqH,EAAW,SAAkBC,EAAU/+I,GAEzC,OADAA,EAAQA,EAAMD,QAAQ,aAAc,KACvBxgB,OAAS,GAAKw/J,EAAW,IAAM/+I,CAC9C,EAEAg9C,GADAA,EAAOA,EAAKj9C,QAAQ,QAAS,KAAKA,QAAQ,MAAO,MACrCA,QAAQ,SAAU++I,EAAS9zF,KAAK8zF,GAAU,KAC1B,MAAxB55J,EAAKmzG,iBAA2B0uC,EAAO7hJ,EAAK82D,aAAuC,MAAxB92D,EAAKmzG,iBAA2B0uC,EAAO7hJ,EAAKmzG,oBACzGr7C,EAAOA,EAAKj9C,QAAQ,OAAQ++I,EAAS9zF,KAAK8zF,GAAU,MAE9B,MAApB55J,EAAK+sG,aAAuB80C,EAAO7hJ,EAAK82D,aAAmC,MAApB92D,EAAK+sG,aAAuB80C,EAAO7hJ,EAAK+sG,gBACjGj1C,EAAOA,EAAKj9C,QAAQ,OAAQ++I,EAAS9zF,KAAK8zF,GAAU,IAExD,CACA,OAAO77H,EAAM2sG,OAAO5yE,EACtB,CA7MAsgG,EAAU7jB,SAAW,CACnBj/F,SAAU,GACVijH,aAAa,GA6Mfr/J,EAAQgrE,QAAUk0F,EAClBl/J,EAAQ89J,gBAAkBA,EAC1B99J,EAAQ69J,UAAYA,EACpB79J,EAAQ49J,aAAeA,EACvB59J,EAAQ29J,aAAeA,EACvB39J,EAAQ09J,UAAYA,CAEb,WAEStpJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAQgCL,EAR5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAErem2E,EAAUjgB,EAAoB,GAY9B8yB,EAAO,SAAUriB,GAGnB,SAASqiB,IAGP,OAZJ,SAAyBrpD,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMklJ,GAR1B,SAAoC3mJ,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAOklJ,EAAKv/F,WAAa/gE,OAAOioD,eAAeq4G,IAAO9/J,MAAM4a,KAAMxa,WACtG,CAsBA,OA/BF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAU2rB,EAAMriB,GAQhBpK,EAAaysB,EAAM,CAAC,CAClBt/J,IAAK,WACLW,MAAO,SAAkButC,GACvB+kG,EAAKqsB,EAAK5+J,UAAUq/D,WAAa/gE,OAAOioD,eAAeq4G,EAAK5+J,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM8zB,GACjG9zB,KAAK/K,QAAQstD,UAAYviD,KAAKq6H,QAAQ93E,QAAQ,IAChDviD,KAAK+qI,YAAY/qI,KAAKq6H,QAAQ7E,SAElC,IACE,CAAC,CACH5vI,IAAK,SACLW,MAAO,WACL,OAAOsyI,EAAKqsB,EAAKv/F,WAAa/gE,OAAOioD,eAAeq4G,GAAO,SAAUllJ,MAAM/Y,KAAK+Y,KAClF,GACC,CACDpa,IAAK,UACLW,MAAO,WACL,OAAO,CACT,KAGK2+J,CACT,CA9BW,GARqBh/J,EAFMmsJ,IAEensJ,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IAsC5EopE,SAEX41F,EAAK1vB,SAAW,OAChB0vB,EAAK3iG,QAAU,CAAC,SAAU,KAE1Bj+D,EAAQgrE,QAAU41F,CAEX,WAESxsJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQ6gK,YAAc7gK,EAAQgrE,aAAUvgE,EAExC,IAAI7H,EAAgb,SAAUC,EAAK5B,GAAK,GAAIiC,MAAMC,QAAQN,GAAQ,OAAOA,EAAY,GAAIhB,OAAOC,YAAYxB,OAAOuC,GAAQ,OAAxf,SAAuBA,EAAK5B,GAAK,IAAIsC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWH,OAAKmH,EAAW,IAAM,IAAK,IAAiCpH,EAA7BD,EAAKP,EAAIhB,OAAOC,cAAmB0B,GAAMH,EAAKD,EAAGM,QAAQC,QAAoBJ,EAAK1C,KAAKwC,EAAGpB,QAAYhB,GAAKsC,EAAKpC,SAAWF,GAA3DuC,GAAK,GAAkE,CAAE,MAAOI,GAAOH,GAAK,EAAMH,EAAKM,CAAK,CAAE,QAAU,KAAWJ,GAAMJ,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAAuH6yI,CAAcvzI,EAAK5B,GAAa,MAAM,IAAIuD,UAAU,uDAA2D,EAE7oB2vI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfM,EAAexpE,EAFD4iE,EAAoB,IAMlC6G,EAAczpE,EAFD4iE,EAAoB,IAMjCwb,EAAUp+E,EAFD4iE,EAAoB,IAM7B4I,EAAWxrE,EAFD4iE,EAAoB,KAM9ByI,EAAWrrE,EAFD4iE,EAAoB,IAIlC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAM9F,SAASozI,EAA2B/6H,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAI/O,IAAIi0I,GAAQ,EAAIF,EAAS1rE,SAAS,iBAE9B81F,EAAU,SAAUtX,GAGtB,SAASsX,EAAQrjB,EAAO9zI,IAX1B,SAAyB4tG,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAYpJuwI,CAAgBr5H,KAAMolJ,GAEtB,IAaMC,EAbFtnC,EAAQub,EAA2Bt5H,MAAOolJ,EAAQz/F,WAAa/gE,OAAOioD,eAAeu4G,IAAUn+J,KAAK+Y,KAAM+hI,EAAO9zI,IAErH,GAAIzG,MAAMC,QAAQs2H,EAAM9vH,QAAQktI,WAAY,CAC1C,IAAIA,EAAY1pG,SAASzgC,cAAc,OACvCm0J,EAAYhqB,EAAWpd,EAAM9vH,QAAQktI,WACrC4G,EAAM5G,UAAUj5E,WAAWoY,aAAa6gE,EAAW4G,EAAM5G,WACzDpd,EAAMod,UAAYA,CACpB,KAA8C,kBAA5Bpd,EAAM9vH,QAAQktI,UAC9Bpd,EAAMod,UAAY1pG,SAASwuG,cAAcliB,EAAM9vH,QAAQktI,WAEvDpd,EAAMod,UAAYpd,EAAM9vH,QAAQktI,UAElC,OAAMpd,EAAMod,qBAAqBpG,aAKjChX,EAAMod,UAAUE,UAAU13G,IAAI,cAC9Bo6F,EAAMwJ,SAAW,GACjBxJ,EAAM26B,SAAW,CAAC,EAClB9zJ,OAAOD,KAAKo5H,EAAM9vH,QAAQyqJ,UAAU/yJ,SAAQ,SAAU8iB,GACpDs1G,EAAMunC,WAAW78I,EAAQs1G,EAAM9vH,QAAQyqJ,SAASjwI,GAClD,IACA,GAAG9iB,QAAQsB,KAAK82H,EAAMod,UAAU7hB,iBAAiB,mBAAmB,SAAUl5G,GAC5E29G,EAAM6pB,OAAOxnI,EACf,IACA29G,EAAMgkB,MAAM11I,GAAGuhJ,EAAQt+E,QAAQjgD,OAAOusH,eAAe,SAAUjoI,EAAM0iG,GAC/D1iG,IAASi6I,EAAQt+E,QAAQjgD,OAAOwyH,kBAClC9jB,EAAMhtH,OAAOslG,EAEjB,IACA0nB,EAAMgkB,MAAM11I,GAAGuhJ,EAAQt+E,QAAQjgD,OAAOuyH,iBAAiB,WACrD,IAAI2jB,EAAwBxnC,EAAMgkB,MAAM/U,UAAUkR,WAE9C7nC,EADyBnvG,EAAeq+J,EAAuB,GAChC,GAGnCxnC,EAAMhtH,OAAOslG,EACf,IACO0nB,IAxBEsnC,EAAOnqB,EAAM3lI,MAAM,iCAAkCwoH,EAAM9vH,SAAUqrI,EAA2Bvb,EAAOsnC,GAyBlH,CAiHA,OAnKF,SAAmB7rB,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAK3eF,CAAU6rB,EAAStX,GA+CnBrV,EAAa2sB,EAAS,CAAC,CACrBx/J,IAAK,aACLW,MAAO,SAAoBkiB,EAAQgmD,GACjCzuD,KAAK04I,SAASjwI,GAAUgmD,CAC1B,GACC,CACD7oE,IAAK,SACLW,MAAO,SAAgB6Z,GACrB,IAAI45H,EAASh6H,KAETyI,EAAS,GAAG6qH,KAAKrsI,KAAKmZ,EAAMi7H,WAAW,SAAUtnI,GACnD,OAAoC,IAA7BA,EAAUlN,QAAQ,MAC3B,IACA,GAAK4hB,EAAL,CAKA,GAJAA,EAASA,EAAOjgB,MAAM,GACA,WAAlB4X,EAAMmiD,SACRniD,EAAM6wE,aAAa,OAAQ,UAEA,MAAzBjxE,KAAK04I,SAASjwI,GAAiB,CACjC,GAAmC,MAA/BzI,KAAK+hI,MAAMnR,OAAO4K,WAA4D,MAAvCx7H,KAAK+hI,MAAMnR,OAAO4K,UAAU/yH,GAErE,YADAyyH,EAAMzsI,KAAK,wCAAyCga,EAAQrI,GAG9D,GAAyC,MAArC64H,EAAY3pE,QAAQ/mD,MAAME,GAE5B,YADAyyH,EAAMzsI,KAAK,2CAA4Cga,EAAQrI,EAGnE,CACA,IAAIm/B,EAA8B,WAAlBn/B,EAAMmiD,QAAuB,SAAW,QACxDniD,EAAMyrB,iBAAiB0T,GAAW,SAAUhpC,GAC1C,IAAIhQ,OAAQ,EACZ,GAAsB,WAAlB6Z,EAAMmiD,QAAsB,CAC9B,GAAIniD,EAAMwzI,cAAgB,EAAG,OAC7B,IAAI3yD,EAAW7gF,EAAMnS,QAAQmS,EAAMwzI,eAEjCrtJ,GADE06F,EAASoyD,aAAa,cAGhBpyD,EAAS16F,QAAS,EAE9B,MAEIA,GADE6Z,EAAMi7H,UAAUxyD,SAAS,eAGnBzoE,EAAM7Z,QAAU6Z,EAAMizI,aAAa,UAE7C98I,EAAE84F,iBAEJ2qC,EAAO+H,MAAM/nC,QAEb,IAAIwrD,EAAwBxrB,EAAO+H,MAAM/U,UAAUkR,WAE/C7nC,EADyBnvG,EAAes+J,EAAuB,GAChC,GAEnC,GAA+B,MAA3BxrB,EAAO0e,SAASjwI,GAClBuxH,EAAO0e,SAASjwI,GAAQxhB,KAAK+yI,EAAQzzI,QAChC,GAAI0yI,EAAY3pE,QAAQ/mD,MAAME,GAAQniB,qBAAqB2yI,EAAY3pE,QAAQqkE,MAAO,CAE3F,KADAptI,EAAQk/J,OAAO,SAAWh9I,IACd,OACZuxH,EAAO+H,MAAMoP,gBAAe,IAAInY,EAAa1pE,SAAU0mE,OAAO3/B,EAAMzhF,OAAOqI,OAAOo5E,EAAM5wG,QAAQqwI,OApH1G,SAAyB5vI,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAoH/FL,CAAgB,CAAC,EAAG4iB,EAAQliB,IAASqnJ,EAAQt+E,QAAQytE,QAAQyC,KACtK,MACExF,EAAO+H,MAAMt5H,OAAOA,EAAQliB,EAAOqnJ,EAAQt+E,QAAQytE,QAAQyC,MAE7DxF,EAAOjpI,OAAOslG,EAChB,IAEAr2F,KAAKunH,SAASpiI,KAAK,CAACsjB,EAAQrI,GApDT,CAqDrB,GACC,CACDxa,IAAK,SACLW,MAAO,SAAgB8vG,GACrB,IAAIq5B,EAAmB,MAATr5B,EAAgB,CAAC,EAAIr2F,KAAK+hI,MAAM/D,UAAU3nC,GACxDr2F,KAAKunH,SAAS5hI,SAAQ,SAAU0+J,GAC9B,IAAIC,EAAQp9J,EAAem9J,EAAM,GAC7B57I,EAAS67I,EAAM,GACflkJ,EAAQkkJ,EAAM,GAElB,GAAsB,WAAlBlkJ,EAAMmiD,QAAsB,CAC9B,IAAI6wF,OAAS,EACb,GAAa,MAAT/8C,EACF+8C,EAAS,UACJ,GAAuB,MAAnB1jB,EAAQjnH,GACjB2qI,EAAShzI,EAAM6/H,cAAc,yBACxB,IAAKz4I,MAAMC,QAAQioI,EAAQjnH,IAAU,CAC1C,IAAIliB,EAAQmpI,EAAQjnH,GACC,kBAAVliB,IACTA,EAAQA,EAAM0f,QAAQ,MAAO,QAE/BmtI,EAAShzI,EAAM6/H,cAAc,iBAAmB15I,EAAQ,KAC1D,CACc,MAAV6sJ,GACFhzI,EAAM7Z,MAAQ,GACd6Z,EAAMwzI,eAAiB,GAEvBR,EAAOnyD,UAAW,CAEtB,MACE,GAAa,MAAToV,EACFj2F,EAAMi7H,UAAUhjH,OAAO,kBAClB,GAAIjY,EAAMizI,aAAa,SAAU,CAGtC,IAAIW,EAAWtkB,EAAQjnH,KAAYrI,EAAM6iD,aAAa,UAA+B,MAAnBysE,EAAQjnH,IAAmBinH,EAAQjnH,GAAQlgB,aAAe6X,EAAM6iD,aAAa,UAA+B,MAAnBysE,EAAQjnH,KAAoBrI,EAAM6iD,aAAa,SAC1M7iD,EAAMi7H,UAAUS,OAAO,YAAakY,EACtC,MACE5zI,EAAMi7H,UAAUS,OAAO,YAAgC,MAAnBpM,EAAQjnH,GAGlD,GACF,KAGK28I,CACT,CAhKc,CAgKZvqB,EAASvrE,SAIX,SAASo2F,EAAUvqB,EAAW1yH,EAAQliB,GACpC,IAAI6Z,EAAQqxB,SAASzgC,cAAc,UACnCoP,EAAM6wE,aAAa,OAAQ,UAC3B7wE,EAAMi7H,UAAU13G,IAAI,MAAQlb,GACf,MAATliB,IACF6Z,EAAM7Z,MAAQA,GAEhB40I,EAAU5gE,YAAYn6D,EACxB,CAEA,SAAS+kJ,EAAYhqB,EAAWwqB,GACzBn+J,MAAMC,QAAQk+J,EAAO,MACxBA,EAAS,CAACA,IAEZA,EAAOhgK,SAAQ,SAAU4hI,GACvB,IAAIq+B,EAAQn0H,SAASzgC,cAAc,QACnC40J,EAAMvqB,UAAU13G,IAAI,cACpB4jG,EAAS5hI,SAAQ,SAAUkgK,GACzB,GAAuB,kBAAZA,EACTH,EAAUE,EAAOC,OACZ,CACL,IAAIp9I,EAAS7jB,OAAOD,KAAKkhK,GAAS,GAC9Bt/J,EAAQs/J,EAAQp9I,GAChBjhB,MAAMC,QAAQlB,GAW1B,SAAmB40I,EAAW1yH,EAAQ0S,GACpC,IAAI/a,EAAQqxB,SAASzgC,cAAc,UACnCoP,EAAMi7H,UAAU13G,IAAI,MAAQlb,GAC5B0S,EAAOx1B,SAAQ,SAAUY,GACvB,IAAI6sJ,EAAS3hH,SAASzgC,cAAc,WACtB,IAAVzK,EACF6sJ,EAAOniE,aAAa,QAAS1qF,GAE7B6sJ,EAAOniE,aAAa,WAAY,YAElC7wE,EAAMm6D,YAAY64E,EACpB,IACAjY,EAAU5gE,YAAYn6D,EACxB,CAvBU0lJ,CAAUF,EAAOn9I,EAAQliB,GAEzBm/J,EAAUE,EAAOn9I,EAAQliB,EAE7B,CACF,IACA40I,EAAU5gE,YAAYqrF,EACxB,GACF,CAlCAR,EAAQzlB,SAAW,CAAC,EAmDpBylB,EAAQzlB,SAAW,CACjBxE,UAAW,KACXud,SAAU,CACRqN,MAAO,WACL,IAAItpB,EAASz8H,KAETq2F,EAAQr2F,KAAK+hI,MAAM9oC,eACvB,GAAa,MAAT5C,EACJ,GAAoB,GAAhBA,EAAM5wG,OAAa,CACrB,IAAIiqI,EAAU1vH,KAAK+hI,MAAM/D,YACzBp5I,OAAOD,KAAK+qI,GAAS/pI,SAAQ,SAAU8C,GAEoC,MAArEwwI,EAAY3pE,QAAQ/mD,MAAM9f,EAAMwwI,EAAY3pE,QAAQ+jE,MAAMyB,SAC5D2H,EAAOsF,MAAMt5H,OAAOhgB,GAAM,EAE9B,GACF,MACEuX,KAAK+hI,MAAM/C,aAAa3oC,EAAOu3C,EAAQt+E,QAAQytE,QAAQyC,KAE3D,EACAwmB,UAAW,SAAmBz/J,GAC5B,IAAIkyJ,EAAQz4I,KAAK+hI,MAAM/D,YAAmB,MAC5B,QAAVz3I,GAA4B,MAATkyJ,EACrBz4I,KAAK+hI,MAAMt5H,OAAO,QAAS,QAASmlI,EAAQt+E,QAAQytE,QAAQyC,MAClDj5I,GAAmB,UAAVkyJ,GACnBz4I,KAAK+hI,MAAMt5H,OAAO,SAAS,EAAOmlI,EAAQt+E,QAAQytE,QAAQyC,MAE5Dx/H,KAAK+hI,MAAMt5H,OAAO,YAAaliB,EAAOqnJ,EAAQt+E,QAAQytE,QAAQyC,KAChE,EACAgR,OAAQ,SAAgBjqJ,GACtB,IAAI8vG,EAAQr2F,KAAK+hI,MAAM9oC,eACnBy2B,EAAU1vH,KAAK+hI,MAAM/D,UAAU3nC,GAC/Bm6C,EAASzvH,SAAS2uG,EAAQ8gB,QAAU,GACxC,GAAc,OAAVjqJ,GAA4B,OAAVA,EAAgB,CACpC,IAAI25I,EAAqB,OAAV35I,EAAiB,GAAK,EACX,QAAtBmpI,EAAQs2B,YAAqB9lB,IAAa,GAC9ClgI,KAAK+hI,MAAMt5H,OAAO,SAAU+nI,EAAStQ,EAAU0N,EAAQt+E,QAAQytE,QAAQyC,KACzE,CACF,EACA55C,KAAM,SAAcr/F,IACJ,IAAVA,IACFA,EAAQk/J,OAAO,oBAEjBzlJ,KAAK+hI,MAAMt5H,OAAO,OAAQliB,EAAOqnJ,EAAQt+E,QAAQytE,QAAQyC,KAC3D,EACAxkH,KAAM,SAAcz0B,GAClB,IAAI8vG,EAAQr2F,KAAK+hI,MAAM9oC,eACnBy2B,EAAU1vH,KAAK+hI,MAAM/D,UAAU3nC,GACrB,UAAV9vG,EACsB,YAApBmpI,EAAc,MAAuC,cAApBA,EAAc,KACjD1vH,KAAK+hI,MAAMt5H,OAAO,QAAQ,EAAOmlI,EAAQt+E,QAAQytE,QAAQyC,MAEzDx/H,KAAK+hI,MAAMt5H,OAAO,OAAQ,YAAamlI,EAAQt+E,QAAQytE,QAAQyC,MAGjEx/H,KAAK+hI,MAAMt5H,OAAO,OAAQliB,EAAOqnJ,EAAQt+E,QAAQytE,QAAQyC,KAE7D,IAIJl7I,EAAQgrE,QAAU81F,EAClB9gK,EAAQ6gK,YAAcA,CAEf,WAESzsJ,EAAQpU,GAExBoU,EAAOpU,QAAU,qOAEV,WAESoU,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAQgCL,EAR5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAEre+pF,EAAU7zB,EAAoB,IAY9B8zB,EAAc,SAAUC,GAG1B,SAASD,EAAYjT,EAAQl8G,IAT/B,SAAyB8kE,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMkmJ,GAEtB,IAAInoC,EAVR,SAAoCx/G,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAU/NqyI,CAA2Bt5H,MAAOkmJ,EAAYvgG,WAAa/gE,OAAOioD,eAAeq5G,IAAcj/J,KAAK+Y,KAAMizI,IAOtH,OALAl1B,EAAMhnF,MAAM6qD,UAAY7qD,EACxBgnF,EAAMod,UAAUE,UAAU13G,IAAI,mBAC9B,GAAGn7B,MAAMvB,KAAK82H,EAAMod,UAAU7hB,iBAAiB,mBAAoB,EAAG,GAAG3zH,SAAQ,SAAU41C,GACzFA,EAAK8/F,UAAU13G,IAAI,aACrB,IACOo6F,CACT,CAyBA,OAzCF,SAAmByb,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAU2sB,EAAaC,GAevB1tB,EAAaytB,EAAa,CAAC,CACzBtgK,IAAK,YACLW,MAAO,SAAmB6sJ,GACxB,IAAI73G,EAAOs9F,EAAKqtB,EAAY5/J,UAAUq/D,WAAa/gE,OAAOioD,eAAeq5G,EAAY5/J,WAAY,YAAa0Z,MAAM/Y,KAAK+Y,KAAMozI,GAE/H,OADA73G,EAAKogC,MAAMyqF,gBAAkBhT,EAAOnwF,aAAa,UAAY,GACtD1nB,CACT,GACC,CACD31C,IAAK,aACLW,MAAO,SAAoBg1C,EAAMo4G,GAC/B9a,EAAKqtB,EAAY5/J,UAAUq/D,WAAa/gE,OAAOioD,eAAeq5G,EAAY5/J,WAAY,aAAc0Z,MAAM/Y,KAAK+Y,KAAMu7B,EAAMo4G,GAC3H,IAAI0S,EAAarmJ,KAAK+2B,MAAMkpG,cAAc,mBACtC15I,EAAQg1C,GAAOA,EAAK0nB,aAAa,eAAsB,GACvDojG,IACyB,SAAvBA,EAAW9jG,QACb8jG,EAAW1qF,MAAM2qF,OAAS//J,EAE1B8/J,EAAW1qF,MAAM/oC,KAAOrsC,EAG9B,KAGK2/J,CACT,CAxCkB,GARchgK,EAFM+/J,IAEe//J,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IAgD5EopE,SAEXhrE,EAAQgrE,QAAU42F,CAEX,WAESxtJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAQgCL,EAR5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAEre+pF,EAAU7zB,EAAoB,IAY9Bm0B,EAAa,SAAUJ,GAGzB,SAASI,EAAWtT,EAAQqF,IAT9B,SAAyBz8C,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMumJ,GAEtB,IAAIxoC,EAVR,SAAoCx/G,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAU/NqyI,CAA2Bt5H,MAAOumJ,EAAW5gG,WAAa/gE,OAAOioD,eAAe05G,IAAat/J,KAAK+Y,KAAMizI,IAQpH,OANAl1B,EAAMod,UAAUE,UAAU13G,IAAI,kBAC9B,GAAGh+B,QAAQsB,KAAK82H,EAAMod,UAAU7hB,iBAAiB,oBAAoB,SAAU/9E,GAC7EA,EAAKqmD,UAAY02D,EAAM/8G,EAAK0nB,aAAa,eAAiB,GAC5D,IACA86D,EAAMyoC,YAAczoC,EAAMod,UAAU8E,cAAc,gBAClDliB,EAAMu1B,WAAWv1B,EAAMyoC,aAChBzoC,CACT,CAWA,OA5BF,SAAmByb,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAUgtB,EAAYJ,GAgBtB1tB,EAAa8tB,EAAY,CAAC,CACxB3gK,IAAK,aACLW,MAAO,SAAoBg1C,EAAMo4G,GAC/B9a,EAAK0tB,EAAWjgK,UAAUq/D,WAAa/gE,OAAOioD,eAAe05G,EAAWjgK,WAAY,aAAc0Z,MAAM/Y,KAAK+Y,KAAMu7B,EAAMo4G,GACzHp4G,EAAOA,GAAQv7B,KAAKwmJ,YACpBxmJ,KAAK+2B,MAAM6qD,UAAYrmD,EAAKqmD,SAC9B,KAGK2kE,CACT,CA3BiB,GARergK,EAFM+/J,IAEe//J,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IAmC5EopE,SAEXhrE,EAAQgrE,QAAUi3F,CAEX,WAES7tJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAAIkyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIf+tB,EAAU,WACZ,SAASA,EAAQ1kB,EAAOmX,GACtB,IAAIn7B,EAAQ/9G,MAJhB,SAAyB67F,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAMpJuwI,CAAgBr5H,KAAMymJ,GAEtBzmJ,KAAK+hI,MAAQA,EACb/hI,KAAKk5I,gBAAkBA,GAAmBznH,SAASxR,KACnDjgB,KAAKy6E,KAAOsnD,EAAMxG,aAAa,cAC/Bv7H,KAAKy6E,KAAKmH,UAAY5hF,KAAK3Z,YAAYqgK,SACnC1mJ,KAAK+hI,MAAMtnD,OAASz6E,KAAK+hI,MAAMlS,oBACjC7vH,KAAK+hI,MAAMtnD,KAAK5uD,iBAAiB,UAAU,WACzCkyF,EAAMtjC,KAAK9e,MAAMipF,WAAa,EAAI7mC,EAAMgkB,MAAMtnD,KAAKsf,UAAY,IACjE,IAEF/5F,KAAKk4I,MACP,CA2CA,OAzCAzf,EAAaguB,EAAS,CAAC,CACrB7gK,IAAK,OACLW,MAAO,WACLyZ,KAAKy6E,KAAK4gD,UAAU13G,IAAI,YAC1B,GACC,CACD/9B,IAAK,WACLW,MAAO,SAAkBogK,GACvB,IAAIv5J,EAAOu5J,EAAUv5J,KAAOu5J,EAAU7yD,MAAQ,EAAI9zF,KAAKy6E,KAAKmsE,YAAc,EAEtE9sD,EAAM6sD,EAAU9oB,OAAS79H,KAAK+hI,MAAMtnD,KAAKsf,UAC7C/5F,KAAKy6E,KAAK9e,MAAMvuE,KAAOA,EAAO,KAC9B4S,KAAKy6E,KAAK9e,MAAMm+B,IAAMA,EAAM,KAC5B95F,KAAKy6E,KAAK4gD,UAAUhjH,OAAO,WAC3B,IAAIslH,EAAkB39H,KAAKk5I,gBAAgBtb,wBACvCipB,EAAa7mJ,KAAKy6E,KAAKmjD,wBACvBz6H,EAAQ,EASZ,GARI0jJ,EAAWx5J,MAAQswI,EAAgBtwI,QACrC8V,EAAQw6H,EAAgBtwI,MAAQw5J,EAAWx5J,MAC3C2S,KAAKy6E,KAAK9e,MAAMvuE,KAAOA,EAAO+V,EAAQ,MAEpC0jJ,EAAWz5J,KAAOuwI,EAAgBvwI,OACpC+V,EAAQw6H,EAAgBvwI,KAAOy5J,EAAWz5J,KAC1C4S,KAAKy6E,KAAK9e,MAAMvuE,KAAOA,EAAO+V,EAAQ,MAEpC0jJ,EAAWhpB,OAASF,EAAgBE,OAAQ,CAC9C,IAAI9pC,EAAS8yD,EAAWhpB,OAASgpB,EAAW/sD,IACxCgtD,EAAgBH,EAAU9oB,OAAS8oB,EAAU7sD,IAAM/F,EACvD/zF,KAAKy6E,KAAK9e,MAAMm+B,IAAMA,EAAMgtD,EAAgB,KAC5C9mJ,KAAKy6E,KAAK4gD,UAAU13G,IAAI,UAC1B,CACA,OAAOxgB,CACT,GACC,CACDvd,IAAK,OACLW,MAAO,WACLyZ,KAAKy6E,KAAK4gD,UAAUhjH,OAAO,cAC3BrY,KAAKy6E,KAAK4gD,UAAUhjH,OAAO,YAC7B,KAGKouI,CACT,CA5Dc,GA8DdniK,EAAQgrE,QAAUm3F,CAEX,WAES/tJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAAIW,EAAgb,SAAUC,EAAK5B,GAAK,GAAIiC,MAAMC,QAAQN,GAAQ,OAAOA,EAAY,GAAIhB,OAAOC,YAAYxB,OAAOuC,GAAQ,OAAxf,SAAuBA,EAAK5B,GAAK,IAAIsC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWH,OAAKmH,EAAW,IAAM,IAAK,IAAiCpH,EAA7BD,EAAKP,EAAIhB,OAAOC,cAAmB0B,GAAMH,EAAKD,EAAGM,QAAQC,QAAoBJ,EAAK1C,KAAKwC,EAAGpB,QAAYhB,GAAKsC,EAAKpC,SAAWF,GAA3DuC,GAAK,GAAkE,CAAE,MAAOI,GAAOH,GAAK,EAAMH,EAAKM,CAAK,CAAE,QAAU,KAAWJ,GAAMJ,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAIK,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CAAuH6yI,CAAcvzI,EAAK5B,GAAa,MAAM,IAAIuD,UAAU,uDAA2D,EAE7oB+vI,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAEreu8D,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfK,EAAWvpE,EAFD4iE,EAAoB,IAM9BmO,EAAY/wE,EAFD4iE,EAAoB,IAI/B20B,EAAQ30B,EAAoB,IAE5B40B,EAASx3F,EAAuBu3F,GAIhCE,EAASz3F,EAFD4iE,EAAoB,KAI5B0I,EAAa1I,EAAoB,IAIjC80B,EAAU13F,EAFD4iE,EAAoB,KAIjC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F,SAASmzI,EAAgBx9B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAExJ,SAASwwI,EAA2B/6H,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAE/O,SAASsyI,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAE7e,IAAI0tB,EAAiB,CAAC,CAAC,CAAEpuH,OAAQ,CAAC,IAAK,IAAK,KAAK,KAAW,CAAC,OAAQ,SAAU,YAAa,QAAS,CAAC,CAAE/d,KAAM,WAAa,CAAEA,KAAM,WAAa,CAAC,UAE7IosI,EAAY,SAAUC,GAGxB,SAASD,EAAUrlB,EAAO9zI,GACxBorI,EAAgBr5H,KAAMonJ,GAES,MAA3Bn5J,EAAQ0hI,QAAQqQ,SAAwD,MAArC/xI,EAAQ0hI,QAAQqQ,QAAQ7E,YAC7DltI,EAAQ0hI,QAAQqQ,QAAQ7E,UAAYgsB,GAGtC,IAAIppC,EAAQub,EAA2Bt5H,MAAOonJ,EAAUzhG,WAAa/gE,OAAOioD,eAAeu6G,IAAYngK,KAAK+Y,KAAM+hI,EAAO9zI,IAGzH,OADA8vH,EAAMgkB,MAAM5G,UAAUE,UAAU13G,IAAI,WAC7Bo6F,CACT,CAiBA,OA9BAwb,EAAU6tB,EAAWC,GAerB5uB,EAAa2uB,EAAW,CAAC,CACvBxhK,IAAK,gBACLW,MAAO,SAAuBy5I,GAC5BA,EAAQ7E,UAAUE,UAAU13G,IAAI,WAChC3jB,KAAKsnJ,aAAa,GAAG9+J,MAAMvB,KAAK+4I,EAAQ7E,UAAU7hB,iBAAiB,WAAY4tC,EAAQ53F,SACvFtvD,KAAKunJ,aAAa,GAAG/+J,MAAMvB,KAAK+4I,EAAQ7E,UAAU7hB,iBAAiB,WAAY4tC,EAAQ53F,SACvFtvD,KAAKg4I,QAAU,IAAIwP,EAAYxnJ,KAAK+hI,MAAO/hI,KAAK/R,QAAQwhI,QACpDuQ,EAAQ7E,UAAU8E,cAAc,aAClCjgI,KAAK+hI,MAAMtG,SAASuS,WAAW,CAAEpoJ,IAAK,IAAKkrJ,UAAU,IAAQ,SAAUz6C,EAAOviE,GAC5EksG,EAAQ0Y,SAAe,KAAEzxJ,KAAK+4I,GAAUlsG,EAAQrrB,OAAOm9E,KACzD,GAEJ,KAGKwhE,CACT,CAhCgB,CAgCdJ,EAAO13F,SAET83F,EAAUznB,UAAW,EAAI5G,EAASzpE,UAAS,EAAM,CAAC,EAAG03F,EAAO13F,QAAQqwE,SAAU,CAC5EhQ,QAAS,CACPqQ,QAAS,CACP0Y,SAAU,CACR9yD,KAAM,SAAcr/F,GAClB,GAAIA,EAAO,CACT,IAAI8vG,EAAQr2F,KAAK+hI,MAAM9oC,eACvB,GAAa,MAAT5C,GAAiC,GAAhBA,EAAM5wG,OAAa,OACxC,IAAI4zJ,EAAUr5I,KAAK+hI,MAAM/Q,QAAQ36B,GAC7B,iBAAiB1tG,KAAK0wJ,IAA2C,IAA/BA,EAAQxyJ,QAAQ,aACpDwyJ,EAAU,UAAYA,GAEVr5I,KAAK+hI,MAAMhS,MAAMioB,QACvBY,KAAK,OAAQS,EACvB,MACEr5I,KAAK+hI,MAAMt5H,OAAO,QAAQ,EAE9B,OAMR,IAAI++I,EAAc,SAAUC,GAG1B,SAASD,EAAYzlB,EAAOtS,GAC1B4J,EAAgBr5H,KAAMwnJ,GAEtB,IAAIxtB,EAASV,EAA2Bt5H,MAAOwnJ,EAAY7hG,WAAa/gE,OAAOioD,eAAe26G,IAAcvgK,KAAK+Y,KAAM+hI,EAAOtS,IAG9H,OADAuK,EAAOqf,QAAUrf,EAAOv/C,KAAKwlD,cAAc,gBACpCjG,CACT,CAyDA,OAlEAT,EAAUiuB,EAAaC,GAWvBhvB,EAAa+uB,EAAa,CAAC,CACzB5hK,IAAK,SACLW,MAAO,WACL,IAAIk2I,EAASz8H,KAEb64H,EAAK2uB,EAAYlhK,UAAUq/D,WAAa/gE,OAAOioD,eAAe26G,EAAYlhK,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,MAC3GA,KAAKy6E,KAAKwlD,cAAc,eAAep0G,iBAAiB,SAAS,SAAUhgC,GACrE4wI,EAAOhiD,KAAK4gD,UAAUxyD,SAAS,cACjC4zD,EAAO0c,OAEP1c,EAAOmc,KAAK,OAAQnc,EAAO4c,QAAQ12F,aAErC92D,EAAMwjG,gBACR,IACArvF,KAAKy6E,KAAKwlD,cAAc,eAAep0G,iBAAiB,SAAS,SAAUhgC,GACzE,GAAwB,MAApB4wI,EAAO6c,UAAmB,CAC5B,IAAIjjD,EAAQomC,EAAO6c,UACnB7c,EAAO8c,eACP9c,EAAOsF,MAAM5E,WAAW9mC,EAAO,QAAQ,EAAOkqC,EAAUjxE,QAAQytE,QAAQyC,aACjE/C,EAAO6c,SAChB,CACAztJ,EAAMwjG,iBACNotC,EAAOyb,MACT,IACAl4I,KAAK+hI,MAAM11I,GAAGk0I,EAAUjxE,QAAQjgD,OAAOwyH,kBAAkB,SAAUxrC,EAAOizC,EAAU5jJ,GAClF,GAAa,MAAT2wG,EAAJ,CACA,GAAqB,IAAjBA,EAAM5wG,QAAgBC,IAAW66I,EAAUjxE,QAAQytE,QAAQyC,KAAM,CACnE,IAAIiR,EAAwBhU,EAAOsF,MAAMnR,OAAOsS,WAAW+jB,EAAO33F,QAAS+mC,EAAMzhF,OAC7E87H,EAAyBxpJ,EAAeupJ,EAAuB,GAC/D7qD,EAAO8qD,EAAuB,GAC9BxtI,EAASwtI,EAAuB,GAEpC,GAAY,MAAR9qD,EAAc,CAChB62C,EAAO6c,UAAY,IAAIxe,EAAWyE,MAAMlpC,EAAMzhF,MAAQ1R,EAAQ0iF,EAAKngG,UACnE,IAAI4zJ,EAAU4N,EAAO33F,QAAQogE,QAAQ9pC,EAAK3wF,SAK1C,OAJAwnI,EAAO4c,QAAQ12F,YAAc02F,EAC7B5c,EAAO4c,QAAQpoE,aAAa,OAAQooE,GACpC5c,EAAOirB,YACPjrB,EAAO36H,SAAS26H,EAAOsF,MAAM9Q,UAAUwL,EAAO6c,WAEhD,CACF,aACS7c,EAAO6c,UAEhB7c,EAAOyb,MAnBkB,CAoB3B,GACF,GACC,CACDtyJ,IAAK,OACLW,MAAO,WACLsyI,EAAK2uB,EAAYlhK,UAAUq/D,WAAa/gE,OAAOioD,eAAe26G,EAAYlhK,WAAY,OAAQ0Z,MAAM/Y,KAAK+Y,MACzGA,KAAKy6E,KAAK11B,gBAAgB,YAC5B,KAGKyiG,CACT,CApEkB,CAoEhBT,EAAM3P,aAERoQ,EAAYd,SAAW,CAAC,0FAA2F,mGAAoG,4BAA6B,6BAA6BpyI,KAAK,IAEtRhwB,EAAQgrE,QAAU83F,CAEX,WAES1uJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAEIohK,EAASn4F,EAFD4iE,EAAoB,KAI5BkwB,EAASlwB,EAAoB,IAE7BowB,EAAapwB,EAAoB,IAEjCw1B,EAAUx1B,EAAoB,IAI9By1B,EAAer4F,EAFD4iE,EAAoB,KAMlC01B,EAAWt4F,EAFD4iE,EAAoB,KAI9B21B,EAAQ31B,EAAoB,IAE5B41B,EAASx4F,EAAuBu4F,GAEhCxF,EAAcnwB,EAAoB,IAElCujB,EAASvjB,EAAoB,IAE7BqwB,EAAQrwB,EAAoB,IAE5BswB,EAAQtwB,EAAoB,IAI5B61B,EAASz4F,EAFD4iE,EAAoB,KAM5B81B,EAAW14F,EAFD4iE,EAAoB,KAM9B60B,EAASz3F,EAFD4iE,EAAoB,KAM5B+1B,EAAW34F,EAFD4iE,EAAoB,KAM9Bg2B,EAAW54F,EAFD4iE,EAAoB,KAM9Bi2B,EAAc74F,EAFD4iE,EAAoB,KAMjCk2B,EAAU94F,EAFD4iE,EAAoB,KAM7Bm2B,EAAU/4F,EAFD4iE,EAAoB,KAI7Bo2B,EAAQp2B,EAAoB,IAE5B4R,EAASx0E,EAAuBg5F,GAIhCC,EAAYj5F,EAFD4iE,EAAoB,KAM/Bs2B,EAAWl5F,EAFD4iE,EAAoB,KAM9Bu2B,EAAYn5F,EAFD4iE,EAAoB,KAM/B80B,EAAU13F,EAFD4iE,EAAoB,KAM7BmlB,EAAW/nF,EAFD4iE,EAAoB,KAM9BilB,EAAgB7nF,EAFD4iE,EAAoB,KAMnCklB,EAAe9nF,EAFD4iE,EAAoB,KAMlColB,EAAYhoF,EAFD4iE,EAAoB,KAM/Bw2B,EAAWp5F,EAFD4iE,EAAoB,MAM9By2B,EAASr5F,EAFD4iE,EAAoB,KAIhC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9FyhK,EAAOr4F,QAAQikE,SAAS,CACtB,kCAAmCivB,EAAW1M,mBAE9C,0BAA2BwM,EAAO/M,WAClC,+BAAgCgN,EAAY7M,gBAC5C,0BAA2BC,EAAO1D,WAClC,8BAA+BuQ,EAAW3M,eAC1C,yBAA0B4M,EAAM1M,UAChC,yBAA0B2M,EAAMvM,UAEhC,0BAA2BmM,EAAOhN,WAClC,+BAAgCiN,EAAY9M,gBAC5C,0BAA2BE,EAAO3D,WAClC,8BAA+BwQ,EAAW5M,eAC1C,yBAA0B6M,EAAMzM,UAChC,yBAA0B0M,EAAMxM,YAC/B,GAEHyR,EAAOr4F,QAAQikE,SAAS,CACtB,gBAAiB+uB,EAAO/M,WACxB,oBAAqBiN,EAAW3M,eAChC,iBAAkB+R,EAAQkB,YAE1B,qBAAsBvG,EAAY9M,gBAClC,gBAAiBE,EAAO3D,WACxB,eAAgByQ,EAAM1M,UACtB,eAAgB2M,EAAMvM,UAEtB,qBAAsB0R,EAAav4F,QACnC,qBAAsB00E,EAAO10E,QAC7B,iBAAkBw4F,EAASx4F,QAC3B,eAAgB04F,EAAO14F,QAEvB,eAAgB24F,EAAO34F,QACvB,eAAgBk5F,EAAMpxH,KACtB,iBAAkB8wH,EAAS54F,QAC3B,eAAgB23F,EAAO33F,QACvB,iBAAkB64F,EAAS74F,QAC3B,iBAAkB84F,EAAS94F,QAC3B,oBAAqB+4F,EAAY/4F,QAEjC,gBAAiBg5F,EAAQh5F,QACzB,gBAAiBi5F,EAAQj5F,QAEzB,oBAAqBy4F,EAAMgB,SAE3B,kBAAmBN,EAAUn5F,QAC7B,iBAAkBo5F,EAASp5F,QAC3B,kBAAmBq5F,EAAUr5F,QAE7B,gBAAiBs5F,EAASt5F,QAC1B,cAAeu5F,EAAOv5F,QAEtB,WAAY43F,EAAQ53F,QACpB,YAAaioF,EAASjoF,QACtB,iBAAkBgoF,EAAahoF,QAC/B,kBAAmB+nF,EAAc/nF,QACjC,aAAckoF,EAAUloF,UACvB,GAEHhrE,EAAQgrE,QAAUq4F,EAAOr4F,OAElB,WAES52D,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQwkK,iBAAc/5J,EAEtB,IAQgC7I,EAR5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAEreilE,EAAa/O,EAAoB,GAEjC6G,GAE4B/yI,EAFSi7I,IAEYj7I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,GAQnF8iK,EAAkB,SAAU7W,GAG9B,SAAS6W,IAGP,OAZJ,SAAyBntD,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMgpJ,GAR1B,SAAoCzqJ,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAOgpJ,EAAgBrjG,WAAa/gE,OAAOioD,eAAem8G,IAAkB5jK,MAAM4a,KAAMxa,WAC5H,CA4BA,OArCF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAUyvB,EAAiB7W,GAQ3B1Z,EAAauwB,EAAiB,CAAC,CAC7BpjK,IAAK,MACLW,MAAO,SAAa6E,EAAM7E,GACxB,GAAc,OAAVA,GAA4B,OAAVA,EAAgB,CACpC,IAAIiqJ,EAASxwI,KAAKzZ,MAAM6E,IAAS,EACjC7E,EAAkB,OAAVA,EAAiBiqJ,EAAS,EAAIA,EAAS,CACjD,CACA,OAAc,IAAVjqJ,GACFyZ,KAAKqY,OAAOjtB,IACL,GAEAytI,EAAKmwB,EAAgB1iK,UAAUq/D,WAAa/gE,OAAOioD,eAAem8G,EAAgB1iK,WAAY,MAAO0Z,MAAM/Y,KAAK+Y,KAAM5U,EAAM7E,EAEvI,GACC,CACDX,IAAK,SACLW,MAAO,SAAgB6E,EAAM7E,GAC3B,OAAOsyI,EAAKmwB,EAAgB1iK,UAAUq/D,WAAa/gE,OAAOioD,eAAem8G,EAAgB1iK,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,KAAM5U,EAAM7E,IAAUsyI,EAAKmwB,EAAgB1iK,UAAUq/D,WAAa/gE,OAAOioD,eAAem8G,EAAgB1iK,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,KAAM5U,EAAM21B,SAASx6B,GAC1R,GACC,CACDX,IAAK,QACLW,MAAO,SAAe6E,GACpB,OAAO21B,SAAS83G,EAAKmwB,EAAgB1iK,UAAUq/D,WAAa/gE,OAAOioD,eAAem8G,EAAgB1iK,WAAY,QAAS0Z,MAAM/Y,KAAK+Y,KAAM5U,UAAU2D,CACpJ,KAGKi6J,CACT,CApCsB,CAoCpB/vB,EAAY3pE,QAAQykE,WAAWE,OAE7B60B,EAAc,IAAIE,EAAgB,SAAU,YAAa,CAC3DnzG,MAAOojF,EAAY3pE,QAAQ+jE,MAAMwB,MACjC2G,UAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAGnCl3I,EAAQwkK,YAAcA,CAEf,WAESpwJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAIgCL,EAJ5Bg+I,EAAS9R,EAAoB,GAY7B62B,EAAa,SAAUlmB,GAGzB,SAASkmB,IAGP,OAZJ,SAAyBptD,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMipJ,GAR1B,SAAoC1qJ,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAOipJ,EAAWtjG,WAAa/gE,OAAOioD,eAAeo8G,IAAa7jK,MAAM4a,KAAMxa,WAClH,CAEA,OAXF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAU0vB,EAAYlmB,GAQfkmB,CACT,CAViB,GARe/iK,EAFKg+I,IAEgBh+I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IAkB7EopE,SAEV25F,EAAWzzB,SAAW,aACtByzB,EAAW1mG,QAAU,aAErBj+D,EAAQgrE,QAAU25F,CAEX,WAESvwJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAMgCL,EAN5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfwL,EAAS9R,EAAoB,GAY7B82B,EAAS,SAAUnmB,GAGrB,SAASmmB,IAGP,OAZJ,SAAyBrtD,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMkpJ,GAR1B,SAAoC3qJ,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAOkpJ,EAAOvjG,WAAa/gE,OAAOioD,eAAeq8G,IAAS9jK,MAAM4a,KAAMxa,WAC1G,CASA,OAlBF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAU2vB,EAAQnmB,GAQlBtK,EAAaywB,EAAQ,KAAM,CAAC,CAC1BtjK,IAAK,UACLW,MAAO,SAAiB0O,GACtB,OAAO+K,KAAKuiD,QAAQ17D,QAAQoO,EAAQstD,SAAW,CACjD,KAGK2mG,CACT,CAjBa,GARmBhjK,EAFKg+I,IAEgBh+I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IAyB7EopE,SAEV45F,EAAO1zB,SAAW,SAClB0zB,EAAO3mG,QAAU,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAEhDj+D,EAAQgrE,QAAU45F,CAEX,WAESxwJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQgrE,QAAUhrE,EAAQykK,cAAWh6J,EAErC,IAAI0pI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAIre+8D,EAAczpE,EAFD4iE,EAAoB,IAMjCwQ,EAAUpzE,EAFD4iE,EAAoB,IAM7B4a,EAAcx9E,EAFD4iE,EAAoB,KAIrC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAI9F,SAASmzI,EAAgBx9B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAExJ,SAASwwI,EAA2B/6H,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAE/O,SAASsyI,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAE7e,IAAIsvB,EAAW,SAAUhmB,GAGvB,SAASgmB,IAGP,OAFA1vB,EAAgBr5H,KAAM+oJ,GAEfzvB,EAA2Bt5H,MAAO+oJ,EAASpjG,WAAa/gE,OAAOioD,eAAek8G,IAAW3jK,MAAM4a,KAAMxa,WAC9G,CAuCA,OA7CA+zI,EAAUwvB,EAAUhmB,GAQpBtK,EAAaswB,EAAU,CAAC,CACtBnjK,IAAK,SACLW,MAAO,SAAgBkC,EAAMlC,GACvBkC,IAAS0gK,EAAK3zB,UAAajvI,EAG7BsyI,EAAKkwB,EAASziK,UAAUq/D,WAAa/gE,OAAOioD,eAAek8G,EAASziK,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,KAAMvX,EAAMlC,GAFjHyZ,KAAK+qI,YAAY9R,EAAY3pE,QAAQl6D,OAAO4K,KAAKq6H,QAAQxkF,OAI7D,GACC,CACDjwD,IAAK,SACLW,MAAO,WACY,MAAbyZ,KAAKm0D,MAA6B,MAAbn0D,KAAKhY,KAC5BgY,KAAK84H,OAAOzgH,SAEZwgH,EAAKkwB,EAASziK,UAAUq/D,WAAa/gE,OAAOioD,eAAek8G,EAASziK,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,KAEzG,GACC,CACDpa,IAAK,cACLW,MAAO,SAAqBkC,EAAMlC,GAEhC,OADAyZ,KAAK84H,OAAOgI,QAAQ9gI,KAAKkD,OAAOlD,KAAK84H,QAAS94H,KAAKva,UAC/CgD,IAASuX,KAAK84H,OAAOuB,QAAQ7E,UAC/Bx1H,KAAK84H,OAAOiS,YAAYtiJ,EAAMlC,GACvByZ,OAEPA,KAAK84H,OAAO+K,SACLhL,EAAKkwB,EAASziK,UAAUq/D,WAAa/gE,OAAOioD,eAAek8G,EAASziK,WAAY,cAAe0Z,MAAM/Y,KAAK+Y,KAAMvX,EAAMlC,GAEjI,IACE,CAAC,CACHX,IAAK,UACLW,MAAO,SAAiB0O,GACtB,OAAOA,EAAQstD,UAAYviD,KAAKuiD,aAAUxzD,EAAY8pI,EAAKkwB,EAASpjG,WAAa/gE,OAAOioD,eAAek8G,GAAW,UAAW/oJ,MAAM/Y,KAAK+Y,KAAM/K,EAChJ,KAGK8zJ,CACT,CA/Ce,CA+CbnmB,EAAQtzE,SAEVy5F,EAASvzB,SAAW,YACpBuzB,EAASxmG,QAAU,KAEnB,IAAI4mG,EAAO,SAAUC,GA4BnB,SAASD,EAAKl0J,GACZokI,EAAgBr5H,KAAMmpJ,GAEtB,IAAInvB,EAASV,EAA2Bt5H,MAAOmpJ,EAAKxjG,WAAa/gE,OAAOioD,eAAes8G,IAAOliK,KAAK+Y,KAAM/K,IAErGo0J,EAAmB,SAA0B9yJ,GAC/C,GAAIA,EAAEjR,OAAO48D,aAAejtD,EAA5B,CACA,IAAIwT,EAASuxH,EAAOK,QAAQ3K,QAAQz6H,GAChCogI,EAAO4D,EAAY3pE,QAAQgkE,KAAK/8H,EAAEjR,QACvB,YAAXmjB,EACF4sH,EAAK5sH,OAAO,OAAQ,aACA,cAAXA,GACT4sH,EAAK5sH,OAAO,OAAQ,UANqB,CAQ7C,EAIA,OAFAxT,EAAQ42B,iBAAiB,aAAcw9H,GACvCp0J,EAAQ42B,iBAAiB,YAAaw9H,GAC/BrvB,CACT,CAgDA,OA9FAT,EAAU4vB,EAAMC,GAEhB3wB,EAAa0wB,EAAM,KAAM,CAAC,CACxBvjK,IAAK,SACLW,MAAO,SAAgBA,GACrB,IAAIg8D,EAAoB,YAAVh8D,EAAsB,KAAO,KACvC6E,EAAOytI,EAAKswB,EAAKxjG,WAAa/gE,OAAOioD,eAAes8G,GAAO,SAAUnpJ,MAAM/Y,KAAK+Y,KAAMuiD,GAI1F,MAHc,YAAVh8D,GAAiC,cAAVA,GACzB6E,EAAK6lF,aAAa,eAA0B,YAAV1qF,GAE7B6E,CACT,GACC,CACDxF,IAAK,UACLW,MAAO,SAAiB0O,GACtB,MAAwB,OAApBA,EAAQstD,QAAyB,UACb,OAApBttD,EAAQstD,QACNttD,EAAQo+I,aAAa,gBACyB,SAAzCp+I,EAAQguD,aAAa,gBAA6B,UAAY,YAE9D,cAJX,CAQF,KAwBFw1E,EAAa0wB,EAAM,CAAC,CAClBvjK,IAAK,SACLW,MAAO,SAAgBkC,EAAMlC,GACvByZ,KAAK3P,SAAS5K,OAAS,GACzBua,KAAK3P,SAAS0gH,KAAKtoG,OAAOhgB,EAAMlC,EAEpC,GACC,CACDX,IAAK,UACLW,MAAO,WAEL,OAxHmBL,EAwHI,CAAC,EAxHAN,EAwHGoa,KAAKq6H,QAAQ7E,SAxHXjvI,EAwHqByZ,KAAKq6H,QAAQ3K,QAAQ1vH,KAAK/K,SAxHlCrP,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,EAA3M,IAAyBA,EAAKN,EAAKW,CAyH/B,GACC,CACDX,IAAK,eACLW,MAAO,SAAsB8uI,EAAM7oI,GACjC,GAAI6oI,aAAgB0zB,EAClBlwB,EAAKswB,EAAK7iK,UAAUq/D,WAAa/gE,OAAOioD,eAAes8G,EAAK7iK,WAAY,eAAgB0Z,MAAM/Y,KAAK+Y,KAAMq1H,EAAM7oI,OAC1G,CACL,IAAIooB,EAAe,MAAPpoB,EAAcwT,KAAKva,SAAW+G,EAAI0W,OAAOlD,MACjD2nI,EAAQ3nI,KAAKsH,MAAMsN,GACvB+yH,EAAM7O,OAAOx+D,aAAa+6D,EAAMsS,EAClC,CACF,GACC,CACD/hJ,IAAK,WACLW,MAAO,SAAkButC,GACvB+kG,EAAKswB,EAAK7iK,UAAUq/D,WAAa/gE,OAAOioD,eAAes8G,EAAK7iK,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM8zB,GACrG,IAAI9rC,EAAOgY,KAAKhY,KACJ,MAARA,GAAgBA,EAAKmsE,OAASn0D,MAAQhY,EAAKqyI,QAAQ7E,WAAax1H,KAAKq6H,QAAQ7E,UAAYxtI,EAAKiN,QAAQstD,UAAYviD,KAAK/K,QAAQstD,SAAWv6D,EAAKiN,QAAQguD,aAAa,kBAAoBjjD,KAAK/K,QAAQguD,aAAa,kBACpNj7D,EAAKg5I,aAAahhI,MAClBhY,EAAKqwB,SAET,GACC,CACDzyB,IAAK,UACLW,MAAO,SAAiBjB,GACtB,GAAIA,EAAO+0I,QAAQ7E,WAAax1H,KAAKq6H,QAAQ7E,SAAU,CACrD,IAAIj6F,EAAO09F,EAAY3pE,QAAQl6D,OAAO4K,KAAKq6H,QAAQC,cACnDh1I,EAAO07I,aAAazlG,GACpBv7B,KAAKu6D,YAAYh/B,EACnB,CACAs9F,EAAKswB,EAAK7iK,UAAUq/D,WAAa/gE,OAAOioD,eAAes8G,EAAK7iK,WAAY,UAAW0Z,MAAM/Y,KAAK+Y,KAAM1a,EACtG,KAGK6jK,CACT,CAhGW,CAgGTnc,EAAY19E,SAEd65F,EAAK3zB,SAAW,OAChB2zB,EAAKtzG,MAAQojF,EAAY3pE,QAAQ+jE,MAAMyG,WACvCqvB,EAAK5mG,QAAU,CAAC,KAAM,MACtB4mG,EAAK7uB,aAAe,YACpB6uB,EAAK5uB,gBAAkB,CAACwuB,GAExBzkK,EAAQykK,SAAWA,EACnBzkK,EAAQgrE,QAAU65F,CAEX,WAESzwJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAIgCL,EAJ5BojK,EAAQl3B,EAAoB,IAY5Bm3B,EAAS,SAAUC,GAGrB,SAASD,IAGP,OAZJ,SAAyB1tD,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMupJ,GAR1B,SAAoChrJ,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAOupJ,EAAO5jG,WAAa/gE,OAAOioD,eAAe08G,IAASnkK,MAAM4a,KAAMxa,WAC1G,CAEA,OAXF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAUgwB,EAAQC,GAQXD,CACT,CAVa,GARmBrjK,EAFIojK,IAEiBpjK,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IAkB9EopE,SAETi6F,EAAO/zB,SAAW,SAClB+zB,EAAOhnG,QAAU,CAAC,KAAM,KAExBj+D,EAAQgrE,QAAUi6F,CAEX,WAES7wJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAQgCL,EAR5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAErem2E,EAAUjgB,EAAoB,GAY9Bq3B,EAAS,SAAU5mB,GAGrB,SAAS4mB,IAGP,OAZJ,SAAyB5tD,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAMypJ,GAR1B,SAAoClrJ,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAOypJ,EAAO9jG,WAAa/gE,OAAOioD,eAAe48G,IAASrkK,MAAM4a,KAAMxa,WAC1G,CAsBA,OA/BF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAUkwB,EAAQ5mB,GAQlBpK,EAAagxB,EAAQ,KAAM,CAAC,CAC1B7jK,IAAK,SACLW,MAAO,SAAgBA,GACrB,MAAc,UAAVA,EACKkrC,SAASzgC,cAAc,OACX,QAAVzK,EACFkrC,SAASzgC,cAAc,OAEvB6nI,EAAK4wB,EAAO9jG,WAAa/gE,OAAOioD,eAAe48G,GAAS,SAAUzpJ,MAAM/Y,KAAK+Y,KAAMzZ,EAE9F,GACC,CACDX,IAAK,UACLW,MAAO,SAAiB0O,GACtB,MAAwB,QAApBA,EAAQstD,QAA0B,MACd,QAApBttD,EAAQstD,QAA0B,aAAtC,CAEF,KAGKknG,CACT,CA9Ba,GARmBvjK,EAFMmsJ,IAEensJ,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IAsC5EopE,SAEXm6F,EAAOj0B,SAAW,SAClBi0B,EAAOlnG,QAAU,CAAC,MAAO,OAEzBj+D,EAAQgrE,QAAUm6F,CAEX,WAES/wJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAIgCL,EAJ5BmsJ,EAAUjgB,EAAoB,GAY9Bs3B,EAAS,SAAU7mB,GAGrB,SAAS6mB,IAGP,OAZJ,SAAyB7tD,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAM0pJ,GAR1B,SAAoCnrJ,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAO0pJ,EAAO/jG,WAAa/gE,OAAOioD,eAAe68G,IAAStkK,MAAM4a,KAAMxa,WAC1G,CAEA,OAXF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAUmwB,EAAQ7mB,GAQX6mB,CACT,CAVa,GARmBxjK,EAFMmsJ,IAEensJ,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IAkB5EopE,SAEXo6F,EAAOl0B,SAAW,SAClBk0B,EAAOnnG,QAAU,IAEjBj+D,EAAQgrE,QAAUo6F,CAEX,WAEShxJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAIgCL,EAJ5BmsJ,EAAUjgB,EAAoB,GAY9Bu3B,EAAY,SAAU9mB,GAGxB,SAAS8mB,IAGP,OAZJ,SAAyB9tD,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAUpJuwI,CAAgBr5H,KAAM2pJ,GAR1B,SAAoCprJ,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAUpOqyI,CAA2Bt5H,MAAO2pJ,EAAUhkG,WAAa/gE,OAAOioD,eAAe88G,IAAYvkK,MAAM4a,KAAMxa,WAChH,CAEA,OAXF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAG3eF,CAAUowB,EAAW9mB,GAQd8mB,CACT,CAVgB,GARgBzjK,EAFMmsJ,IAEensJ,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,IAkB5EopE,SAEXq6F,EAAUn0B,SAAW,YACrBm0B,EAAUpnG,QAAU,IAEpBj+D,EAAQgrE,QAAUq6F,CAEX,WAESjxJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAUgCL,EAV5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAEreilE,EAAa/O,EAAoB,GAEjC6G,GAI4B/yI,EAJSi7I,IAIYj7I,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,GAFnF0jK,EAAQx3B,EAAoB,IAU5By3B,EAAa,CAAC,MAAO,SAAU,SAE/BC,EAAQ,SAAUpwB,GAGpB,SAASowB,IAGP,OAdJ,SAAyBjuD,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAYpJuwI,CAAgBr5H,KAAM8pJ,GAV1B,SAAoCvrJ,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAYpOqyI,CAA2Bt5H,MAAO8pJ,EAAMnkG,WAAa/gE,OAAOioD,eAAei9G,IAAQ1kK,MAAM4a,KAAMxa,WACxG,CAoDA,OA/DF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAK3eF,CAAUuwB,EAAOpwB,GAQjBjB,EAAaqxB,EAAO,CAAC,CACnBlkK,IAAK,SACLW,MAAO,SAAgBkC,EAAMlC,GACvBsjK,EAAWhjK,QAAQ4B,IAAS,EAC1BlC,EACFyZ,KAAK/K,QAAQg8E,aAAaxoF,EAAMlC,GAEhCyZ,KAAK/K,QAAQ8vD,gBAAgBt8D,GAG/BowI,EAAKixB,EAAMxjK,UAAUq/D,WAAa/gE,OAAOioD,eAAei9G,EAAMxjK,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,KAAMvX,EAAMlC,EAE/G,IACE,CAAC,CACHX,IAAK,SACLW,MAAO,SAAgBA,GACrB,IAAI6E,EAAOytI,EAAKixB,EAAMnkG,WAAa/gE,OAAOioD,eAAei9G,GAAQ,SAAU9pJ,MAAM/Y,KAAK+Y,KAAMzZ,GAI5F,MAHqB,kBAAVA,GACT6E,EAAK6lF,aAAa,MAAOjxE,KAAKoyI,SAAS7rJ,IAElC6E,CACT,GACC,CACDxF,IAAK,UACLW,MAAO,SAAiB0O,GACtB,OAAO40J,EAAWz7J,QAAO,SAAUshI,EAAStqE,GAI1C,OAHInwD,EAAQo+I,aAAajuF,KACvBsqE,EAAQtqE,GAAanwD,EAAQguD,aAAamC,IAErCsqE,CACT,GAAG,CAAC,EACN,GACC,CACD9pI,IAAK,QACLW,MAAO,SAAeoJ,GACpB,MAAQ,qBAAqBhH,KAAKgH,IAAQ,yBAAyBhH,KAAKgH,EAE1E,GACC,CACD/J,IAAK,WACLW,MAAO,SAAkBoJ,GACvB,OAAO,EAAIi6J,EAAMxX,UAAUziJ,EAAK,CAAC,OAAQ,QAAS,SAAWA,EAAM,MACrE,GACC,CACD/J,IAAK,QACLW,MAAO,SAAe0O,GACpB,OAAOA,EAAQguD,aAAa,MAC9B,KAGK6mG,CACT,CA5DY,CA4DV7wB,EAAY3pE,QAAQqkE,OAEtBm2B,EAAMt0B,SAAW,QACjBs0B,EAAMvnG,QAAU,MAEhBj+D,EAAQgrE,QAAUw6F,CAEX,WAESpxJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAGT,IAUgCL,EAV5BuyI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAEregoE,EAAS9R,EAAoB,GAE7Bw3B,EAAQx3B,EAAoB,IAE5B60B,GAE4B/gK,EAFI0jK,IAEiB1jK,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,GAQnF2jK,EAAa,CAAC,SAAU,SAExBE,EAAQ,SAAUC,GAGpB,SAASD,IAGP,OAdJ,SAAyBluD,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAYpJuwI,CAAgBr5H,KAAM+pJ,GAV1B,SAAoCxrJ,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAYpOqyI,CAA2Bt5H,MAAO+pJ,EAAMpkG,WAAa/gE,OAAOioD,eAAek9G,IAAQ3kK,MAAM4a,KAAMxa,WACxG,CA8CA,OAzDF,SAAmBg0I,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAK3eF,CAAUwwB,EAAOC,GAQjBvxB,EAAasxB,EAAO,CAAC,CACnBnkK,IAAK,SACLW,MAAO,SAAgBkC,EAAMlC,GACvBsjK,EAAWhjK,QAAQ4B,IAAS,EAC1BlC,EACFyZ,KAAK/K,QAAQg8E,aAAaxoF,EAAMlC,GAEhCyZ,KAAK/K,QAAQ8vD,gBAAgBt8D,GAG/BowI,EAAKkxB,EAAMzjK,UAAUq/D,WAAa/gE,OAAOioD,eAAek9G,EAAMzjK,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,KAAMvX,EAAMlC,EAE/G,IACE,CAAC,CACHX,IAAK,SACLW,MAAO,SAAgBA,GACrB,IAAI6E,EAAOytI,EAAKkxB,EAAMpkG,WAAa/gE,OAAOioD,eAAek9G,GAAQ,SAAU/pJ,MAAM/Y,KAAK+Y,KAAMzZ,GAI5F,OAHA6E,EAAK6lF,aAAa,cAAe,KACjC7lF,EAAK6lF,aAAa,mBAAmB,GACrC7lF,EAAK6lF,aAAa,MAAOjxE,KAAKoyI,SAAS7rJ,IAChC6E,CACT,GACC,CACDxF,IAAK,UACLW,MAAO,SAAiB0O,GACtB,OAAO40J,EAAWz7J,QAAO,SAAUshI,EAAStqE,GAI1C,OAHInwD,EAAQo+I,aAAajuF,KACvBsqE,EAAQtqE,GAAanwD,EAAQguD,aAAamC,IAErCsqE,CACT,GAAG,CAAC,EACN,GACC,CACD9pI,IAAK,WACLW,MAAO,SAAkBoJ,GACvB,OAAOs3J,EAAO33F,QAAQ8iF,SAASziJ,EACjC,GACC,CACD/J,IAAK,QACLW,MAAO,SAAe0O,GACpB,OAAOA,EAAQguD,aAAa,MAC9B,KAGK8mG,CACT,CAtDY,CAsDV7lB,EAAO3L,YAETwxB,EAAMv0B,SAAW,QACjBu0B,EAAMh2J,UAAY,WAClBg2J,EAAMxnG,QAAU,SAEhBj+D,EAAQgrE,QAAUy6F,CAEX,WAESrxJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQgrE,QAAUhrE,EAAQ2lK,iBAAcl7J,EAExC,IAAI0pI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAIre+3E,EAAUzkF,EAFD4iE,EAAoB,KAM7Bwb,EAAUp+E,EAFD4iE,EAAoB,IAM7ByI,EAAWrrE,EAFD4iE,EAAoB,IAIlC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F,SAASmzI,EAAgBx9B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAExJ,SAASwwI,EAA2B/6H,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAE/O,SAASsyI,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAE7e,IAAIwwB,EAAc,SAAUC,GAG1B,SAASD,IAGP,OAFA5wB,EAAgBr5H,KAAMiqJ,GAEf3wB,EAA2Bt5H,MAAOiqJ,EAAYtkG,WAAa/gE,OAAOioD,eAAeo9G,IAAc7kK,MAAM4a,KAAMxa,WACpH,CAsBA,OA5BA+zI,EAAU0wB,EAAaC,GAQvBzxB,EAAawxB,EAAa,KAAM,CAAC,CAC/BrkK,IAAK,SACLW,MAAO,SAAgBA,GACrB,IAAI6E,EAAOytI,EAAKoxB,EAAYtkG,WAAa/gE,OAAOioD,eAAeo9G,GAAc,SAAUjqJ,MAAM/Y,KAAK+Y,KAAMzZ,GAQxG,MAPqB,kBAAVA,IACTkP,OAAO00J,MAAMrxF,OAAOvyE,EAAO6E,EAAM,CAC/Bg/J,cAAc,EACdC,WAAY,SAEdj/J,EAAK6lF,aAAa,aAAc1qF,IAE3B6E,CACT,GACC,CACDxF,IAAK,QACLW,MAAO,SAAe0O,GACpB,OAAOA,EAAQguD,aAAa,aAC9B,KAGKgnG,CACT,CA9BkB,CA8BhBhW,EAAQ3kF,SAEV26F,EAAYz0B,SAAW,UACvBy0B,EAAYl2J,UAAY,aACxBk2J,EAAY1nG,QAAU,OAEtB,IAAI+nG,EAAU,SAAUxc,GAUtB,SAASwc,IACPjxB,EAAgBr5H,KAAMsqJ,GAEtB,IAAItwB,EAASV,EAA2Bt5H,MAAOsqJ,EAAQ3kG,WAAa/gE,OAAOioD,eAAey9G,IAAUrjK,KAAK+Y,OAEzG,GAAoB,MAAhBvK,OAAO00J,MACT,MAAM,IAAI9/J,MAAM,kCAElB,OAAO2vI,CACT,CAEA,OApBAT,EAAU+wB,EAASxc,GAEnBrV,EAAa6xB,EAAS,KAAM,CAAC,CAC3B1kK,IAAK,WACLW,MAAO,WACLqnJ,EAAQt+E,QAAQikE,SAAS02B,GAAa,EACxC,KAcKK,CACT,CAtBc,CAsBZzvB,EAASvrE,SAEXhrE,EAAQ2lK,YAAcA,EACtB3lK,EAAQgrE,QAAUg7F,CAEX,WAES5xJ,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQgrE,QAAUhrE,EAAQimK,UAAYjmK,EAAQw+I,eAAY/zI,EAE1D,IAAI0pI,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEfG,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAIre+8D,EAAczpE,EAFD4iE,EAAoB,IAMjCwb,EAAUp+E,EAFD4iE,EAAoB,IAM7ByI,EAAWrrE,EAFD4iE,EAAoB,IAQlC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F,SAASmzI,EAAgBx9B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAExJ,SAASwwI,EAA2B/6H,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAE/O,SAASsyI,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAE7e,IAAI+wB,EAAkB,SAAUC,GAG9B,SAASD,IAGP,OAFAnxB,EAAgBr5H,KAAMwqJ,GAEflxB,EAA2Bt5H,MAAOwqJ,EAAgB7kG,WAAa/gE,OAAOioD,eAAe29G,IAAkBplK,MAAM4a,KAAMxa,WAC5H,CAwBA,OA9BA+zI,EAAUixB,EAAiBC,GAQ3BhyB,EAAa+xB,EAAiB,CAAC,CAC7B5kK,IAAK,cACLW,MAAO,SAAqB0c,GAC1BjD,KAAK/K,QAAQ0tD,YAAc3iD,KAAK/K,QAAQ0tD,YACxC3iD,KAAK4nI,SACL/O,EAAK2xB,EAAgBlkK,UAAUq/D,WAAa/gE,OAAOioD,eAAe29G,EAAgBlkK,WAAY,cAAe0Z,MAAM/Y,KAAK+Y,KAAMiD,EAChI,GACC,CACDrd,IAAK,YACLW,MAAO,SAAmBmkK,GACxB,IAAIxnG,EAAOljD,KAAK/K,QAAQ0tD,YACpB3iD,KAAK2qJ,aAAeznG,KAClBA,EAAK/U,OAAO1oD,OAAS,GAAwB,MAAnBua,KAAK2qJ,cACjC3qJ,KAAK/K,QAAQ2sF,UAAY8oE,EAAWxnG,GACpCljD,KAAK/K,QAAQu5I,YACbxuI,KAAK4nI,UAEP5nI,KAAK2qJ,WAAaznG,EAEtB,KAGKsnG,CACT,CAhCsB,CAVTh7F,EAFD4iE,EAAoB,KA4CvB9iE,SAETk7F,EAAgBz2J,UAAY,YAE5B,IAAIw2J,EAAY,IAAItxB,EAAY3pE,QAAQykE,WAAWE,MAAM,QAAS,OAAQ,CACxEp+E,MAAOojF,EAAY3pE,QAAQ+jE,MAAMyB,SAG/B81B,EAAS,SAAU9c,GAWrB,SAAS8c,EAAO7oB,EAAO9zI,GACrBorI,EAAgBr5H,KAAM4qJ,GAEtB,IAAI5wB,EAASV,EAA2Bt5H,MAAO4qJ,EAAOjlG,WAAa/gE,OAAOioD,eAAe+9G,IAAS3jK,KAAK+Y,KAAM+hI,EAAO9zI,IAEpH,GAAwC,oBAA7B+rI,EAAO/rI,QAAQ48J,UACxB,MAAM,IAAIxgK,MAAM,6FAElB,IAAIygK,EAAQ,KASZ,OARA9wB,EAAO+H,MAAM11I,GAAGuhJ,EAAQt+E,QAAQjgD,OAAOuyH,iBAAiB,WACtD9jC,aAAagtD,GACbA,EAAQriI,YAAW,WACjBuxG,EAAO6wB,YACPC,EAAQ,IACV,GAAG9wB,EAAO/rI,QAAQ88J,SACpB,IACA/wB,EAAO6wB,YACA7wB,CACT,CAoBA,OAhDAT,EAAUqxB,EAAQ9c,GAElBrV,EAAamyB,EAAQ,KAAM,CAAC,CAC1BhlK,IAAK,WACLW,MAAO,WACLqnJ,EAAQt+E,QAAQikE,SAASg3B,GAAW,GACpC3c,EAAQt+E,QAAQikE,SAASi3B,GAAiB,EAC5C,KAuBF/xB,EAAamyB,EAAQ,CAAC,CACpBhlK,IAAK,YACLW,MAAO,WACL,IAAIk2I,EAASz8H,KAEb,IAAIA,KAAK+hI,MAAM/U,UAAUsZ,UAAzB,CACAtmI,KAAK+hI,MAAMhxI,OAAO68I,EAAQt+E,QAAQytE,QAAQyC,MAC1C,IAAInpC,EAAQr2F,KAAK+hI,MAAM9oC,eACvBj5F,KAAK+hI,MAAMnR,OAAOqJ,YAAYuwB,GAAiB7kK,SAAQ,SAAUwjB,GAC/DA,EAAK0hJ,UAAUpuB,EAAOxuI,QAAQ48J,UAChC,IACA7qJ,KAAK+hI,MAAMhxI,OAAO68I,EAAQt+E,QAAQytE,QAAQK,QAC7B,MAAT/mC,GACFr2F,KAAK+hI,MAAMpR,aAAat6B,EAAOu3C,EAAQt+E,QAAQytE,QAAQK,OARf,CAU5C,KAGKwtB,CACT,CAlDa,CAkDX/vB,EAASvrE,SAEXs7F,EAAOjrB,SAAW,CAChBkrB,UACqB,MAAfp1J,OAAOu1J,KAAqB,KACzB,SAAU9nG,GAEf,OADaztD,OAAOu1J,KAAKC,cAAc/nG,GACzB38D,KAChB,EAEFwkK,SAAU,KAGZzmK,EAAQw+I,UAAY0nB,EACpBlmK,EAAQimK,UAAYA,EACpBjmK,EAAQgrE,QAAUs7F,CAEX,WAESlyJ,EAAQpU,GAExBoU,EAAOpU,QAAU,4LAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,6LAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,6LAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,6LAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,86EAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,oTAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,+QAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,oUAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,kPAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,iVAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,gVAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,mOAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,iOAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,wWAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,2YAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,w3CAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,8jBAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,8nBAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,8LAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,wOAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,uQAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,6PAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,6ZAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,ksBAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,qVAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,2XAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,sqBAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,+iBAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,2gBAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,8LAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,6qBAEV,WAESoU,EAAQpU,GAExBoU,EAAOpU,QAAU,kKAEV,WAESoU,EAAQpU,EAAS8tI,GAEjC,aAGAxtI,OAAOoB,eAAe1B,EAAS,aAAc,CAC3CiC,OAAO,IAETjC,EAAQgrE,QAAUhrE,EAAQ4mK,mBAAgBn8J,EAE1C,IAAI8pI,EAAO,SAASvgI,EAAI7T,EAAQimB,EAAUwxD,GAA2B,OAAXz3E,IAAiBA,EAASm4E,SAASt2E,WAAW,IAAI+xE,EAAOzzE,OAAOK,yBAAyBR,EAAQimB,GAAW,QAAa3b,IAATspE,EAAoB,CAAE,IAAIygE,EAASl0I,OAAOioD,eAAepoD,GAAS,OAAe,OAAXq0I,OAAmB,EAAkCxgI,EAAIwgI,EAAQpuH,EAAUwxD,EAAa,CAAO,GAAI,UAAW7D,EAAQ,OAAOA,EAAK9xE,MAAgB,IAAI+rI,EAASj6D,EAAK//D,IAAK,YAAevJ,IAAXujI,EAAmDA,EAAOrrI,KAAKi1E,QAAnE,CAAgF,EAEreu8D,EAAe,WAAc,SAAS1yI,EAAiBT,EAAQyE,GAAS,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CAAE,IAAI4vC,EAAaprC,EAAMxE,GAAI4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EAAOiwC,EAAW3uC,cAAe,EAAU,UAAW2uC,IAAYA,EAAW1uC,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAAa,CAAE,CAAE,OAAO,SAAUujG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAY5yI,EAAiB2yI,EAAYpyI,UAAWqyI,GAAiBC,GAAa7yI,EAAiB2yI,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfK,EAAWvpE,EAFD4iE,EAAoB,IAM9BmO,EAAY/wE,EAFD4iE,EAAoB,IAI/B20B,EAAQ30B,EAAoB,IAE5B40B,EAASx3F,EAAuBu3F,GAEhCjsB,EAAa1I,EAAoB,IAIjC80B,EAAU13F,EAFD4iE,EAAoB,KAIjC,SAAS5iE,EAAuBtpE,GAAO,OAAOA,GAAOA,EAAI+C,WAAa/C,EAAM,CAAEopE,QAASppE,EAAO,CAE9F,SAASmzI,EAAgBx9B,EAAU68B,GAAe,KAAM78B,aAAoB68B,GAAgB,MAAM,IAAI5vI,UAAU,oCAAwC,CAExJ,SAASwwI,EAA2B/6H,EAAMtX,GAAQ,IAAKsX,EAAQ,MAAM,IAAIg6D,eAAe,6DAAgE,OAAOtxE,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BsX,EAAPtX,CAAa,CAE/O,SAASsyI,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI3wI,UAAU,kEAAoE2wI,GAAeD,EAASlzI,UAAY1B,OAAOwQ,OAAOqkI,GAAcA,EAAWnzI,UAAW,CAAED,YAAa,CAAEE,MAAOizI,EAAUt0I,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAeizI,IAAY70I,OAAOyvI,eAAiBzvI,OAAOyvI,eAAemF,EAAUC,GAAcD,EAAS7zE,UAAY8zE,EAAY,CAE7e,IAAI0tB,EAAiB,CAAC,CAAC,OAAQ,SAAU,QAAS,CAAC,CAAEpuH,OAAQ,GAAK,CAAEA,OAAQ,GAAK,eAE7EoyH,EAAc,SAAU9D,GAG1B,SAAS8D,EAAYppB,EAAO9zI,GAC1BorI,EAAgBr5H,KAAMmrJ,GAES,MAA3Bl9J,EAAQ0hI,QAAQqQ,SAAwD,MAArC/xI,EAAQ0hI,QAAQqQ,QAAQ7E,YAC7DltI,EAAQ0hI,QAAQqQ,QAAQ7E,UAAYgsB,GAGtC,IAAIppC,EAAQub,EAA2Bt5H,MAAOmrJ,EAAYxlG,WAAa/gE,OAAOioD,eAAes+G,IAAclkK,KAAK+Y,KAAM+hI,EAAO9zI,IAG7H,OADA8vH,EAAMgkB,MAAM5G,UAAUE,UAAU13G,IAAI,aAC7Bo6F,CACT,CAYA,OAzBAwb,EAAU4xB,EAAa9D,GAevB5uB,EAAa0yB,EAAa,CAAC,CACzBvlK,IAAK,gBACLW,MAAO,SAAuBy5I,GAC5BhgI,KAAKg4I,QAAU,IAAIkT,EAAclrJ,KAAK+hI,MAAO/hI,KAAK/R,QAAQwhI,QAC1DzvH,KAAKg4I,QAAQv9D,KAAKlgB,YAAYylE,EAAQ7E,WACtCn7H,KAAKsnJ,aAAa,GAAG9+J,MAAMvB,KAAK+4I,EAAQ7E,UAAU7hB,iBAAiB,WAAY4tC,EAAQ53F,SACvFtvD,KAAKunJ,aAAa,GAAG/+J,MAAMvB,KAAK+4I,EAAQ7E,UAAU7hB,iBAAiB,WAAY4tC,EAAQ53F,QACzF,KAGK67F,CACT,CA3BkB,CA2BhBnE,EAAO13F,SAET67F,EAAYxrB,UAAW,EAAI5G,EAASzpE,UAAS,EAAM,CAAC,EAAG03F,EAAO13F,QAAQqwE,SAAU,CAC9EhQ,QAAS,CACPqQ,QAAS,CACP0Y,SAAU,CACR9yD,KAAM,SAAcr/F,GACbA,EAGHyZ,KAAK+hI,MAAMhS,MAAMioB,QAAQY,OAFzB54I,KAAK+hI,MAAMt5H,OAAO,QAAQ,EAI9B,OAMR,IAAIyiJ,EAAgB,SAAUzD,GAG5B,SAASyD,EAAcnpB,EAAOtS,GAC5B4J,EAAgBr5H,KAAMkrJ,GAEtB,IAAIlxB,EAASV,EAA2Bt5H,MAAOkrJ,EAAcvlG,WAAa/gE,OAAOioD,eAAeq+G,IAAgBjkK,KAAK+Y,KAAM+hI,EAAOtS,IAwBlI,OAtBAuK,EAAO+H,MAAM11I,GAAGk0I,EAAUjxE,QAAQjgD,OAAOusH,eAAe,SAAUjoI,EAAM0iG,EAAOizC,EAAU5jJ,GACvF,GAAIiO,IAAS4sI,EAAUjxE,QAAQjgD,OAAOwyH,iBACtC,GAAa,MAATxrC,GAAiBA,EAAM5wG,OAAS,GAAKC,IAAW66I,EAAUjxE,QAAQytE,QAAQyC,KAAM,CAClFxF,EAAO0tB,OAEP1tB,EAAOv/C,KAAK9e,MAAMvuE,KAAO,MACzB4sI,EAAOv/C,KAAK9e,MAAMm4B,MAAQ,GAC1BkmC,EAAOv/C,KAAK9e,MAAMm4B,MAAQkmC,EAAOv/C,KAAKmsE,YAAc,KACpD,IAAIzsB,EAAQH,EAAO+H,MAAMyL,SAASn3C,EAAMzhF,MAAOyhF,EAAM5wG,QACrD,GAAqB,IAAjB00I,EAAM10I,OACRu0I,EAAOl4H,SAASk4H,EAAO+H,MAAM9Q,UAAU56B,QAClC,CACL,IAAI+0D,EAAWjxB,EAAMA,EAAM10I,OAAS,GAChCmvB,EAAQolH,EAAO+H,MAAM6O,SAASwa,GAC9B3lK,EAAS4c,KAAK8tB,IAAIi7H,EAAS3lK,SAAW,EAAG4wG,EAAMzhF,MAAQyhF,EAAM5wG,OAASmvB,GACtEy2I,EAAUrxB,EAAO+H,MAAM9Q,UAAU,IAAI6J,EAAWyE,MAAM3qH,EAAOnvB,IACjEu0I,EAAOl4H,SAASupJ,EAClB,CACF,MAAW55H,SAAS2uD,gBAAkB45C,EAAOie,SAAWje,EAAO+H,MAAM1D,YACnErE,EAAOke,MAEX,IACOle,CACT,CAsCA,OApEAT,EAAU2xB,EAAezD,GAgCzBhvB,EAAayyB,EAAe,CAAC,CAC3BtlK,IAAK,SACLW,MAAO,WACL,IAAIk2I,EAASz8H,KAEb64H,EAAKqyB,EAAc5kK,UAAUq/D,WAAa/gE,OAAOioD,eAAeq+G,EAAc5kK,WAAY,SAAU0Z,MAAM/Y,KAAK+Y,MAC/GA,KAAKy6E,KAAKwlD,cAAc,aAAap0G,iBAAiB,SAAS,WAC7D4wG,EAAOhiD,KAAK4gD,UAAUhjH,OAAO,aAC/B,IACArY,KAAK+hI,MAAM11I,GAAGk0I,EAAUjxE,QAAQjgD,OAAOuyH,iBAAiB,WAEtDn5G,YAAW,WACT,IAAIg0G,EAAOhiD,KAAK4gD,UAAUxyD,SAAS,aAAnC,CACA,IAAIwtB,EAAQomC,EAAOsF,MAAM9oC,eACZ,MAAT5C,GACFomC,EAAO36H,SAAS26H,EAAOsF,MAAM9Q,UAAU56B,GAHc,CAKzD,GAAG,EACL,GACF,GACC,CACDzwG,IAAK,SACLW,MAAO,WACLyZ,KAAK0nJ,MACP,GACC,CACD9hK,IAAK,WACLW,MAAO,SAAkBogK,GACvB,IAAIxjJ,EAAQ01H,EAAKqyB,EAAc5kK,UAAUq/D,WAAa/gE,OAAOioD,eAAeq+G,EAAc5kK,WAAY,WAAY0Z,MAAM/Y,KAAK+Y,KAAM2mJ,GAC/H2E,EAAQtrJ,KAAKy6E,KAAKwlD,cAAc,qBAEpC,GADAqrB,EAAM3vF,MAAM4vF,WAAa,GACX,IAAVpoJ,EAAa,OAAOA,EACxBmoJ,EAAM3vF,MAAM4vF,YAAc,EAAIpoJ,EAAQmoJ,EAAM1E,YAAc,EAAI,IAChE,KAGKsE,CACT,CAtEoB,CAsElBnE,EAAM3P,aAER8T,EAAcxE,SAAW,CAAC,yCAA0C,kCAAmC,mGAAoG,2BAA4B,UAAUpyI,KAAK,IAEtPhwB,EAAQ4mK,cAAgBA,EACxB5mK,EAAQgrE,QAAU67F,CAEX,WAESzyJ,EAAQpU,EAAS8tI,GAEjC15H,EAAOpU,QAAU8tI,EAAoB,GAI7B,IAAa,OACrB,EAjyWE15H,EAAOpU,QAAUwT,kCCCN,IAAI4L,EAAE3L,EAAQ,OAAS4L,EAAExd,OAAO2wE,IAAI,iBAAiBlpE,EAAEzH,OAAO2wE,IAAI,kBAAkB7P,EAAEriE,OAAO0B,UAAU4C,eAAeZ,EAAEob,EAAEo6E,mDAAmDkwB,kBAAkB30C,EAAE,CAACzzE,KAAI,EAAG4G,KAAI,EAAGg/J,QAAO,EAAGC,UAAS,GAChP,SAASvqJ,EAAEM,EAAEL,EAAE4tD,GAAG,IAAI3tD,EAAEK,EAAE,CAAC,EAAElL,EAAE,KAAK2kD,EAAE,KAAiF,IAAI95C,UAAhF,IAAS2tD,IAAIx4D,EAAE,GAAGw4D,QAAG,IAAS5tD,EAAEvb,MAAM2Q,EAAE,GAAG4K,EAAEvb,UAAK,IAASub,EAAE3U,MAAM0uD,EAAE/5C,EAAE3U,KAAc2U,EAAE8lD,EAAEhgE,KAAKka,EAAEC,KAAKi4D,EAAEnwE,eAAekY,KAAKK,EAAEL,GAAGD,EAAEC,IAAI,GAAGI,GAAGA,EAAEq6D,aAAa,IAAIz6D,KAAKD,EAAEK,EAAEq6D,kBAAe,IAASp6D,EAAEL,KAAKK,EAAEL,GAAGD,EAAEC,IAAI,MAAM,CAACs1D,SAAS/yD,EAAEhQ,KAAK6N,EAAE5b,IAAI2Q,EAAE/J,IAAI0uD,EAAEnxD,MAAM0X,EAAEglG,OAAOn+G,EAAE6D,QAAQ,CAAC7H,EAAQonK,SAAS99J,EAAEtJ,EAAQqnK,IAAIzqJ,EAAE5c,EAAQsnK,KAAK1qJ,8BCD7V,IAAItT,EAAEzH,OAAO2wE,IAAI,iBAAiBxuE,EAAEnC,OAAO2wE,IAAI,gBAAgBuC,EAAElzE,OAAO2wE,IAAI,kBAAkB51D,EAAE/a,OAAO2wE,IAAI,qBAAqBjpE,EAAE1H,OAAO2wE,IAAI,kBAAkBx1D,EAAEnb,OAAO2wE,IAAI,kBAAkBryD,EAAEte,OAAO2wE,IAAI,iBAAiBh+B,EAAE3yC,OAAO2wE,IAAI,qBAAqBrzD,EAAEtd,OAAO2wE,IAAI,kBAAkB9tE,EAAE7C,OAAO2wE,IAAI,cAAc9M,EAAE7jE,OAAO2wE,IAAI,cAAc1F,EAAEjrE,OAAOC,SACzW,IAAIu1B,EAAE,CAAChrB,UAAU,WAAW,OAAM,CAAE,EAAE60G,mBAAmB,WAAW,EAAED,oBAAoB,WAAW,EAAEH,gBAAgB,WAAW,GAAG7Z,EAAE3mG,OAAOsyC,OAAO4kE,EAAE,CAAC,EAAE,SAAS/hC,EAAE54D,EAAEC,EAAE7K,GAAGyJ,KAAKjW,MAAMoX,EAAEnB,KAAK8zB,QAAQ1yB,EAAEpB,KAAKglG,KAAKlJ,EAAE97F,KAAK8lG,QAAQvvG,GAAGolB,CAAC,CACwI,SAAS4gF,IAAI,CAAyB,SAASyC,EAAE79F,EAAEC,EAAE7K,GAAGyJ,KAAKjW,MAAMoX,EAAEnB,KAAK8zB,QAAQ1yB,EAAEpB,KAAKglG,KAAKlJ,EAAE97F,KAAK8lG,QAAQvvG,GAAGolB,CAAC,CADxPo+C,EAAEzzE,UAAUuxH,iBAAiB,CAAC,EACpQ99C,EAAEzzE,UAAU28H,SAAS,SAAS9hH,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAM9W,MAAM,yHAAyH2V,KAAK8lG,QAAQV,gBAAgBplG,KAAKmB,EAAEC,EAAE,WAAW,EAAE24D,EAAEzzE,UAAUulK,YAAY,SAAS1qJ,GAAGnB,KAAK8lG,QAAQN,mBAAmBxlG,KAAKmB,EAAE,cAAc,EAAgBo7F,EAAEj2G,UAAUyzE,EAAEzzE,UAAsF,IAAIirE,EAAEytC,EAAE14G,UAAU,IAAIi2G,EACrfhrC,EAAElrE,YAAY24G,EAAEzT,EAAEh6B,EAAEwI,EAAEzzE,WAAWirE,EAAEo0C,sBAAqB,EAAG,IAAIvE,EAAE55G,MAAMC,QAAQ60G,EAAE13G,OAAO0B,UAAU4C,eAAeooE,EAAE,CAACnlE,QAAQ,MAAM8uB,EAAE,CAACr1B,KAAI,EAAG4G,KAAI,EAAGg/J,QAAO,EAAGC,UAAS,GACtK,SAAS7wI,EAAEzZ,EAAEC,EAAE7K,GAAG,IAAIkL,EAAED,EAAE,CAAC,EAAEmC,EAAE,KAAKu3C,EAAE,KAAK,GAAG,MAAM95C,EAAE,IAAIK,UAAK,IAASL,EAAE5U,MAAM0uD,EAAE95C,EAAE5U,UAAK,IAAS4U,EAAExb,MAAM+d,EAAE,GAAGvC,EAAExb,KAAKwb,EAAEk7F,EAAEr1G,KAAKma,EAAEK,KAAKwZ,EAAE/xB,eAAeuY,KAAKD,EAAEC,GAAGL,EAAEK,IAAI,IAAIstD,EAAEvpE,UAAUC,OAAO,EAAE,GAAG,IAAIspE,EAAEvtD,EAAEnR,SAASkG,OAAO,GAAG,EAAEw4D,EAAE,CAAC,IAAI,IAAIrrD,EAAElc,MAAMunE,GAAG9H,EAAE,EAAEA,EAAE8H,EAAE9H,IAAIvjD,EAAEujD,GAAGzhE,UAAUyhE,EAAE,GAAGzlD,EAAEnR,SAASqT,CAAC,CAAC,GAAGvC,GAAGA,EAAE06D,aAAa,IAAIp6D,KAAKstD,EAAE5tD,EAAE06D,kBAAe,IAASr6D,EAAEC,KAAKD,EAAEC,GAAGstD,EAAEttD,IAAI,MAAM,CAACi1D,SAAS9oE,EAAE+F,KAAKwN,EAAEvb,IAAI+d,EAAEnX,IAAI0uD,EAAEnxD,MAAMyX,EAAEilG,OAAOn1C,EAAEnlE,QAAQ,CAChV,SAASwtE,EAAEx4D,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEu1D,WAAW9oE,CAAC,CAAoG,IAAI26G,EAAE,OAAO,SAASK,EAAEznG,EAAEC,GAAG,MAAM,kBAAkBD,GAAG,OAAOA,GAAG,MAAMA,EAAEvb,IAA7K,SAAgBub,GAAG,IAAIC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAID,EAAE8E,QAAQ,SAAQ,SAAS9E,GAAG,OAAOC,EAAED,EAAE,GAAE,CAA+Eo8C,CAAO,GAAGp8C,EAAEvb,KAAKwb,EAAE7Y,SAAS,GAAG,CAC/W,SAAS+hH,EAAEnpG,EAAEC,EAAE7K,EAAEkL,EAAED,GAAG,IAAImC,SAASxC,EAAK,cAAcwC,GAAG,YAAYA,IAAExC,EAAE,MAAK,IAAI+5C,GAAE,EAAG,GAAG,OAAO/5C,EAAE+5C,GAAE,OAAQ,OAAOv3C,GAAG,IAAK,SAAS,IAAK,SAASu3C,GAAE,EAAG,MAAM,IAAK,SAAS,OAAO/5C,EAAEu1D,UAAU,KAAK9oE,EAAE,KAAKtF,EAAE4yD,GAAE,GAAI,GAAGA,EAAE,OAAW15C,EAAEA,EAAN05C,EAAE/5C,GAASA,EAAE,KAAKM,EAAE,IAAImnG,EAAE1tD,EAAE,GAAGz5C,EAAE2/F,EAAE5/F,IAAIjL,EAAE,GAAG,MAAM4K,IAAI5K,EAAE4K,EAAE8E,QAAQsiG,EAAE,OAAO,KAAK+B,EAAE9oG,EAAEJ,EAAE7K,EAAE,IAAG,SAAS4K,GAAG,OAAOA,CAAC,KAAI,MAAMK,IAAIm4D,EAAEn4D,KAAKA,EADnW,SAAWL,EAAEC,GAAG,MAAM,CAACs1D,SAAS9oE,EAAE+F,KAAKwN,EAAExN,KAAK/N,IAAIwb,EAAE5U,IAAI2U,EAAE3U,IAAIzC,MAAMoX,EAAEpX,MAAM08G,OAAOtlG,EAAEslG,OAAO,CACyQ/qF,CAAEla,EAAEjL,IAAIiL,EAAE5b,KAAKs1D,GAAGA,EAAEt1D,MAAM4b,EAAE5b,IAAI,IAAI,GAAG4b,EAAE5b,KAAKqgB,QAAQsiG,EAAE,OAAO,KAAKpnG,IAAIC,EAAEjc,KAAKqc,IAAI,EAAyB,GAAvB05C,EAAE,EAAEz5C,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAO2/F,EAAEjgG,GAAG,IAAI,IAAI4tD,EAAE,EAAEA,EAAE5tD,EAAE1b,OAAOspE,IAAI,CAC/e,IAAIrrD,EAAEjC,EAAEmnG,EADwejlG,EACrfxC,EAAE4tD,GAAeA,GAAG7T,GAAGovD,EAAE3mG,EAAEvC,EAAE7K,EAAEmN,EAAElC,EAAE,MAAM,GAAGkC,EAPsU,SAAWvC,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAEiwD,GAAGjwD,EAAEiwD,IAAIjwD,EAAE,eAA0CA,EAAE,IAAI,CAO5b49E,CAAE59E,GAAG,oBAAoBuC,EAAE,IAAIvC,EAAEuC,EAAEzc,KAAKka,GAAG4tD,EAAE,IAAIprD,EAAExC,EAAEnZ,QAAQC,MAA6BizD,GAAGovD,EAA1B3mG,EAAEA,EAAEpd,MAA0B6a,EAAE7K,EAAtBmN,EAAEjC,EAAEmnG,EAAEjlG,EAAEorD,KAAkBvtD,QAAQ,GAAG,WAAWmC,EAAE,MAAMvC,EAAEkV,OAAOnV,GAAG9W,MAAM,mDAAmD,oBAAoB+W,EAAE,qBAAqBxc,OAAOD,KAAKwc,GAAGmT,KAAK,MAAM,IAAIlT,GAAG,6EAA6E,OAAO85C,CAAC,CACzZ,SAASz/B,EAAEta,EAAEC,EAAE7K,GAAG,GAAG,MAAM4K,EAAE,OAAOA,EAAE,IAAIM,EAAE,GAAGD,EAAE,EAAmD,OAAjD8oG,EAAEnpG,EAAEM,EAAE,GAAG,IAAG,SAASN,GAAG,OAAOC,EAAEna,KAAKsP,EAAE4K,EAAEK,IAAI,IAAUC,CAAC,CAAC,SAASgwD,EAAEtwD,GAAG,IAAI,IAAIA,EAAE2qJ,QAAQ,CAAC,IAAI1qJ,EAAED,EAAE4qJ,SAAQ3qJ,EAAEA,KAAMxU,MAAK,SAASwU,GAAM,IAAID,EAAE2qJ,UAAU,IAAI3qJ,EAAE2qJ,UAAQ3qJ,EAAE2qJ,QAAQ,EAAE3qJ,EAAE4qJ,QAAQ3qJ,EAAC,IAAE,SAASA,GAAM,IAAID,EAAE2qJ,UAAU,IAAI3qJ,EAAE2qJ,UAAQ3qJ,EAAE2qJ,QAAQ,EAAE3qJ,EAAE4qJ,QAAQ3qJ,EAAC,KAAI,IAAID,EAAE2qJ,UAAU3qJ,EAAE2qJ,QAAQ,EAAE3qJ,EAAE4qJ,QAAQ3qJ,EAAE,CAAC,GAAG,IAAID,EAAE2qJ,QAAQ,OAAO3qJ,EAAE4qJ,QAAQz8F,QAAQ,MAAMnuD,EAAE4qJ,OAAQ,CAC5Z,IAAI/5C,EAAE,CAAC7lH,QAAQ,MAAM+lH,EAAE,CAACt1E,WAAW,MAAM40B,EAAE,CAAC42C,uBAAuB4J,EAAEpkB,wBAAwBskB,EAAElE,kBAAkB18C,GAAGhtE,EAAQupI,SAAS,CAAClzG,IAAIc,EAAE91B,QAAQ,SAASwb,EAAEC,EAAE7K,GAAGklB,EAAEta,GAAE,WAAWC,EAAEhc,MAAM4a,KAAKxa,UAAU,GAAE+Q,EAAE,EAAEywC,MAAM,SAAS7lC,GAAG,IAAIC,EAAE,EAAuB,OAArBqa,EAAEta,GAAE,WAAWC,GAAG,IAAUA,CAAC,EAAE4qJ,QAAQ,SAAS7qJ,GAAG,OAAOsa,EAAEta,GAAE,SAASA,GAAG,OAAOA,CAAC,KAAI,EAAE,EAAE2sH,KAAK,SAAS3sH,GAAG,IAAIw4D,EAAEx4D,GAAG,MAAM9W,MAAM,yEAAyE,OAAO8W,CAAC,GAAG7c,EAAQygH,UAAUhrC,EAAEz1E,EAAQonK,SAASryF,EACne/0E,EAAQ2nK,SAASp+J,EAAEvJ,EAAQ4nK,cAAcltD,EAAE16G,EAAQ6nK,WAAWjrJ,EAAE5c,EAAQq+H,SAASl/G,EAAEnf,EAAQw5F,mDAAmDtsB,EAC9IltE,EAAQgtI,aAAa,SAASnwH,EAAEC,EAAE7K,GAAG,GAAG,OAAO4K,QAAG,IAASA,EAAE,MAAM9W,MAAM,iFAAiF8W,EAAE,KAAK,IAAIM,EAAE8pF,EAAE,CAAC,EAAEpqF,EAAEpX,OAAOyX,EAAEL,EAAEvb,IAAI+d,EAAExC,EAAE3U,IAAI0uD,EAAE/5C,EAAEslG,OAAO,GAAG,MAAMrlG,EAAE,CAAoE,QAAnE,IAASA,EAAE5U,MAAMmX,EAAEvC,EAAE5U,IAAI0uD,EAAEoW,EAAEnlE,cAAS,IAASiV,EAAExb,MAAM4b,EAAE,GAAGJ,EAAExb,KAAQub,EAAExN,MAAMwN,EAAExN,KAAKkoE,aAAa,IAAI9M,EAAE5tD,EAAExN,KAAKkoE,aAAa,IAAIn4D,KAAKtC,EAAEk7F,EAAEr1G,KAAKma,EAAEsC,KAAKuX,EAAE/xB,eAAewa,KAAKjC,EAAEiC,QAAG,IAAStC,EAAEsC,SAAI,IAASqrD,EAAEA,EAAErrD,GAAGtC,EAAEsC,GAAG,CAAC,IAAIA,EAAEle,UAAUC,OAAO,EAAE,GAAG,IAAIie,EAAEjC,EAAEpR,SAASkG,OAAO,GAAG,EAAEmN,EAAE,CAACqrD,EAAEvnE,MAAMkc,GACrf,IAAI,IAAIujD,EAAE,EAAEA,EAAEvjD,EAAEujD,IAAI8H,EAAE9H,GAAGzhE,UAAUyhE,EAAE,GAAGxlD,EAAEpR,SAAS0+D,CAAC,CAAC,MAAM,CAAC2H,SAAS9oE,EAAE+F,KAAKwN,EAAExN,KAAK/N,IAAI4b,EAAEhV,IAAImX,EAAE5Z,MAAM0X,EAAEglG,OAAOvrD,EAAE,EAAE52D,EAAQuL,cAAc,SAASsR,GAAqK,OAAlKA,EAAE,CAACu1D,SAASjyD,EAAEq+F,cAAc3hG,EAAEirJ,eAAejrJ,EAAEkrJ,aAAa,EAAEp7J,SAAS,KAAKq7J,SAAS,KAAKC,cAAc,KAAKC,YAAY,OAAQv7J,SAAS,CAACylE,SAASp1D,EAAEi+E,SAASp+E,GAAUA,EAAEmrJ,SAASnrJ,CAAC,EAAE7c,EAAQ0M,cAAc4pB,EAAEt2B,EAAQmoK,cAAc,SAAStrJ,GAAG,IAAIC,EAAEwZ,EAAEs2C,KAAK,KAAK/vD,GAAY,OAATC,EAAEzN,KAAKwN,EAASC,CAAC,EAAE9c,EAAQooK,UAAU,WAAW,MAAM,CAACvgK,QAAQ,KAAK,EAC9d7H,EAAQqoK,WAAW,SAASxrJ,GAAG,MAAM,CAACu1D,SAAS59B,EAAEggC,OAAO33D,EAAE,EAAE7c,EAAQsoK,eAAejzF,EAAEr1E,EAAQg+H,KAAK,SAASnhH,GAAG,MAAM,CAACu1D,SAAS1M,EAAEw1B,SAAS,CAACssE,SAAS,EAAEC,QAAQ5qJ,GAAGs+E,MAAMhuB,EAAE,EAAEntE,EAAQ+lJ,KAAK,SAASlpI,EAAEC,GAAG,MAAM,CAACs1D,SAAS1tE,EAAE2K,KAAKwN,EAAE4oD,aAAQ,IAAS3oD,EAAE,KAAKA,EAAE,EAAE9c,EAAQuoK,gBAAgB,SAAS1rJ,GAAG,IAAIC,EAAE8wG,EAAEt1E,WAAWs1E,EAAEt1E,WAAW,CAAC,EAAE,IAAIz7B,GAAG,CAAC,QAAQ+wG,EAAEt1E,WAAWx7B,CAAC,CAAC,EAAE9c,EAAQwoK,aAAa,WAAW,MAAMziK,MAAM,2DAA4D,EAC1c/F,EAAQ4nH,YAAY,SAAS/qG,EAAEC,GAAG,OAAO4wG,EAAE7lH,QAAQ+/G,YAAY/qG,EAAEC,EAAE,EAAE9c,EAAQ8M,WAAW,SAAS+P,GAAG,OAAO6wG,EAAE7lH,QAAQiF,WAAW+P,EAAE,EAAE7c,EAAQgoH,cAAc,WAAW,EAAEhoH,EAAQioH,iBAAiB,SAASprG,GAAG,OAAO6wG,EAAE7lH,QAAQogH,iBAAiBprG,EAAE,EAAE7c,EAAQ4H,UAAU,SAASiV,EAAEC,GAAG,OAAO4wG,EAAE7lH,QAAQD,UAAUiV,EAAEC,EAAE,EAAE9c,EAAQqoH,MAAM,WAAW,OAAOqF,EAAE7lH,QAAQwgH,OAAO,EAAEroH,EAAQ6nH,oBAAoB,SAAShrG,EAAEC,EAAE7K,GAAG,OAAOy7G,EAAE7lH,QAAQggH,oBAAoBhrG,EAAEC,EAAE7K,EAAE,EAC7bjS,EAAQ8nH,mBAAmB,SAASjrG,EAAEC,GAAG,OAAO4wG,EAAE7lH,QAAQigH,mBAAmBjrG,EAAEC,EAAE,EAAE9c,EAAQ4Q,gBAAgB,SAASiM,EAAEC,GAAG,OAAO4wG,EAAE7lH,QAAQ+I,gBAAgBiM,EAAEC,EAAE,EAAE9c,EAAQiM,QAAQ,SAAS4Q,EAAEC,GAAG,OAAO4wG,EAAE7lH,QAAQoE,QAAQ4Q,EAAEC,EAAE,EAAE9c,EAAQ+nH,WAAW,SAASlrG,EAAEC,EAAE7K,GAAG,OAAOy7G,EAAE7lH,QAAQkgH,WAAWlrG,EAAEC,EAAE7K,EAAE,EAAEjS,EAAQ2H,OAAO,SAASkV,GAAG,OAAO6wG,EAAE7lH,QAAQF,OAAOkV,EAAE,EAAE7c,EAAQmM,SAAS,SAAS0Q,GAAG,OAAO6wG,EAAE7lH,QAAQsE,SAAS0Q,EAAE,EAAE7c,EAAQooH,qBAAqB,SAASvrG,EAAEC,EAAE7K,GAAG,OAAOy7G,EAAE7lH,QAAQugH,qBAAqBvrG,EAAEC,EAAE7K,EAAE,EAC/ejS,EAAQkoH,cAAc,WAAW,OAAOwF,EAAE7lH,QAAQqgH,eAAe,EAAEloH,EAAQoL,QAAQ,uCCtBjFgJ,EAAOpU,QAAU,EAAjBoU,qCCAAA,EAAOpU,QAAU,EAAjBoU,mCCMW,SAASgL,EAAEvC,EAAEC,GAAG,IAAII,EAAEL,EAAE1b,OAAO0b,EAAEhc,KAAKic,GAAGD,EAAE,KAAK,EAAEK,GAAG,CAAC,IAAIC,EAAED,EAAE,IAAI,EAAEjL,EAAE4K,EAAEM,GAAG,KAAG,EAAEstD,EAAEx4D,EAAE6K,IAA0B,MAAMD,EAA7BA,EAAEM,GAAGL,EAAED,EAAEK,GAAGjL,EAAEiL,EAAEC,CAAc,CAAC,CAAC,SAASy5C,EAAE/5C,GAAG,OAAO,IAAIA,EAAE1b,OAAO,KAAK0b,EAAE,EAAE,CAAC,SAASwC,EAAExC,GAAG,GAAG,IAAIA,EAAE1b,OAAO,OAAO,KAAK,IAAI2b,EAAED,EAAE,GAAGK,EAAEL,EAAEk2B,MAAM,GAAG71B,IAAIJ,EAAE,CAACD,EAAE,GAAGK,EAAEL,EAAE,IAAI,IAAIM,EAAE,EAAElL,EAAE4K,EAAE1b,OAAOge,EAAElN,IAAI,EAAEkL,EAAEgC,GAAG,CAAC,IAAIwjD,EAAE,GAAGxlD,EAAE,GAAG,EAAE8pF,EAAEpqF,EAAE8lD,GAAG3+D,EAAE2+D,EAAE,EAAEj+D,EAAEmY,EAAE7Y,GAAG,GAAG,EAAEymE,EAAEw8B,EAAE/pF,GAAGlZ,EAAEiO,GAAG,EAAEw4D,EAAE/lE,EAAEuiG,IAAIpqF,EAAEM,GAAGzY,EAAEmY,EAAE7Y,GAAGkZ,EAAEC,EAAEnZ,IAAI6Y,EAAEM,GAAG8pF,EAAEpqF,EAAE8lD,GAAGzlD,EAAEC,EAAEwlD,OAAQ,MAAG3+D,EAAEiO,GAAG,EAAEw4D,EAAE/lE,EAAEwY,IAA0B,MAAML,EAA7BA,EAAEM,GAAGzY,EAAEmY,EAAE7Y,GAAGkZ,EAAEC,EAAEnZ,CAAc,EAAC,CAAC,OAAO8Y,CAAC,CAC3c,SAAS2tD,EAAE5tD,EAAEC,GAAG,IAAII,EAAEL,EAAE4rJ,UAAU3rJ,EAAE2rJ,UAAU,OAAO,IAAIvrJ,EAAEA,EAAEL,EAAErN,GAAGsN,EAAEtN,EAAE,CAAC,GAAG,kBAAkB8mC,aAAa,oBAAoBA,YAAYD,IAAI,CAAC,IAAI/sC,EAAEgtC,YAAYt2C,EAAQ8kG,aAAa,WAAW,OAAOx7F,EAAE+sC,KAAK,CAAC,KAAK,CAAC,IAAI0+B,EAAEjpD,KAAKlP,EAAEm4D,EAAE1+B,MAAMr2C,EAAQ8kG,aAAa,WAAW,OAAO/vB,EAAE1+B,MAAMz5B,CAAC,CAAC,CAAC,IAAIrT,EAAE,GAAGyT,EAAE,GAAGmD,EAAE,EAAEq0B,EAAE,KAAKkxB,EAAE,EAAEoH,GAAE,EAAG2tB,GAAE,EAAGpjE,GAAE,EAAGmgF,EAAE,oBAAoBrzE,WAAWA,WAAW,KAAKsxC,EAAE,oBAAoB+jC,aAAaA,aAAa,KAAKvB,EAAE,qBAAqBt7C,aAAaA,aAAa,KACnT,SAAS+9C,EAAE79F,GAAG,IAAI,IAAIC,EAAE85C,EAAE55C,GAAG,OAAOF,GAAG,CAAC,GAAG,OAAOA,EAAEwG,SAASjE,EAAErC,OAAQ,MAAGF,EAAEgoB,WAAWjoB,GAAgD,MAA9CwC,EAAErC,GAAGF,EAAE2rJ,UAAU3rJ,EAAE4rJ,eAAetpJ,EAAE7V,EAAEuT,EAAa,CAACA,EAAE85C,EAAE55C,EAAE,CAAC,CAAC,SAASiwD,EAAEpwD,GAAa,GAAVwa,GAAE,EAAGqjF,EAAE79F,IAAO49E,EAAE,GAAG,OAAO7jC,EAAErtD,GAAGkxF,GAAE,EAAGqiB,EAAE9E,OAAO,CAAC,IAAIl7F,EAAE85C,EAAE55C,GAAG,OAAOF,GAAGkwD,EAAEC,EAAEnwD,EAAEgoB,UAAUjoB,EAAE,CAAC,CACra,SAASm7F,EAAEn7F,EAAEC,GAAG29E,GAAE,EAAGpjE,IAAIA,GAAE,EAAGo+C,EAAE9+C,GAAGA,GAAG,GAAGm2C,GAAE,EAAG,IAAI5vD,EAAEwoD,EAAE,IAAS,IAALg1C,EAAE59F,GAAO03B,EAAEoiB,EAAErtD,GAAG,OAAOirC,MAAMA,EAAEk0H,eAAe5rJ,IAAID,IAAIyZ,MAAM,CAAC,IAAInZ,EAAEq3B,EAAElxB,SAAS,GAAG,oBAAoBnG,EAAE,CAACq3B,EAAElxB,SAAS,KAAKoiD,EAAElxB,EAAEm0H,cAAc,IAAI12J,EAAEkL,EAAEq3B,EAAEk0H,gBAAgB5rJ,GAAGA,EAAE9c,EAAQ8kG,eAAe,oBAAoB7yF,EAAEuiC,EAAElxB,SAASrR,EAAEuiC,IAAIoiB,EAAErtD,IAAI8V,EAAE9V,GAAGmxG,EAAE59F,EAAE,MAAMuC,EAAE9V,GAAGirC,EAAEoiB,EAAErtD,EAAE,CAAC,GAAG,OAAOirC,EAAE,IAAIr1B,GAAE,MAAO,CAAC,IAAIwjD,EAAE/L,EAAE55C,GAAG,OAAO2lD,GAAGqK,EAAEC,EAAEtK,EAAE79B,UAAUhoB,GAAGqC,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQq1B,EAAE,KAAKkxB,EAAExoD,EAAE4vD,GAAE,CAAE,CAAC,CAD1a,qBAAqBjU,gBAAW,IAASA,UAAU+vG,iBAAY,IAAS/vG,UAAU+vG,WAAWC,gBAAgBhwG,UAAU+vG,WAAWC,eAAej8F,KAAK/T,UAAU+vG,YAC2Q,IACzPzxI,EAD6PC,GAAE,EAAGi+C,EAAE,KAAK1+C,GAAG,EAAEstF,EAAE,EAAEK,GAAG,EACvc,SAAShuF,IAAI,QAAOt2B,EAAQ8kG,eAAewf,EAAEL,EAAO,CAAC,SAAS+B,IAAI,GAAG,OAAO3wC,EAAE,CAAC,IAAIx4D,EAAE7c,EAAQ8kG,eAAewf,EAAEznG,EAAE,IAAIC,GAAE,EAAG,IAAIA,EAAEu4D,GAAE,EAAGx4D,EAAE,CAAC,QAAQC,EAAEqa,KAAKC,GAAE,EAAGi+C,EAAE,KAAK,CAAC,MAAMj+C,GAAE,CAAE,CAAO,GAAG,oBAAoB6gF,EAAE9gF,EAAE,WAAW8gF,EAAE+N,EAAE,OAAO,GAAG,qBAAqB8iD,eAAe,CAAC,IAAI37F,EAAE,IAAI27F,eAAep7C,EAAEvgD,EAAE47F,MAAM57F,EAAE67F,MAAMC,UAAUjjD,EAAE7uF,EAAE,WAAWu2F,EAAEw7C,YAAY,KAAK,CAAC,MAAM/xI,EAAE,WAAWqgF,EAAEwO,EAAE,EAAE,EAAE,SAASlJ,EAAEjgG,GAAGw4D,EAAEx4D,EAAEua,IAAIA,GAAE,EAAGD,IAAI,CAAC,SAAS61C,EAAEnwD,EAAEC,GAAG6Z,EAAE6gF,GAAE,WAAW36F,EAAE7c,EAAQ8kG,eAAe,GAAEhoF,EAAE,CAC5d9c,EAAQ0lG,sBAAsB,EAAE1lG,EAAQklG,2BAA2B,EAAEllG,EAAQwlG,qBAAqB,EAAExlG,EAAQslG,wBAAwB,EAAEtlG,EAAQmpK,mBAAmB,KAAKnpK,EAAQolG,8BAA8B,EAAEplG,EAAQykG,wBAAwB,SAAS5nF,GAAGA,EAAEyG,SAAS,IAAI,EAAEtjB,EAAQopK,2BAA2B,WAAW3uE,GAAG3tB,IAAI2tB,GAAE,EAAGqiB,EAAE9E,GAAG,EAC1Uh4G,EAAQqpK,wBAAwB,SAASxsJ,GAAG,EAAEA,GAAG,IAAIA,EAAE3S,QAAQ+G,MAAM,mHAAmHgzG,EAAE,EAAEpnG,EAAEkB,KAAKC,MAAM,IAAInB,GAAG,CAAC,EAAE7c,EAAQglG,iCAAiC,WAAW,OAAOt/B,CAAC,EAAE1lE,EAAQspK,8BAA8B,WAAW,OAAO1yG,EAAErtD,EAAE,EAAEvJ,EAAQupK,cAAc,SAAS1sJ,GAAG,OAAO6oD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI5oD,EAAE,EAAE,MAAM,QAAQA,EAAE4oD,EAAE,IAAIxoD,EAAEwoD,EAAEA,EAAE5oD,EAAE,IAAI,OAAOD,GAAG,CAAC,QAAQ6oD,EAAExoD,CAAC,CAAC,EAAEld,EAAQwpK,wBAAwB,WAAW,EAC9fxpK,EAAQ6kG,sBAAsB,WAAW,EAAE7kG,EAAQypK,yBAAyB,SAAS5sJ,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAIK,EAAEwoD,EAAEA,EAAE7oD,EAAE,IAAI,OAAOC,GAAG,CAAC,QAAQ4oD,EAAExoD,CAAC,CAAC,EAChMld,EAAQukG,0BAA0B,SAAS1nF,EAAEC,EAAEI,GAAG,IAAIC,EAAEnd,EAAQ8kG,eAA8F,OAA/E,kBAAkB5nF,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAE+mB,QAA6B,EAAE/mB,EAAEC,EAAED,EAAEC,EAAGD,EAAEC,EAASN,GAAG,KAAK,EAAE,IAAI5K,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAAmN,OAAzM4K,EAAE,CAACrN,GAAG2Q,IAAImD,SAASxG,EAAE6rJ,cAAc9rJ,EAAEioB,UAAU5nB,EAAEwrJ,eAAvDz2J,EAAEiL,EAAEjL,EAAoEw2J,WAAW,GAAGvrJ,EAAEC,GAAGN,EAAE4rJ,UAAUvrJ,EAAEkC,EAAEpC,EAAEH,GAAG,OAAO+5C,EAAErtD,IAAIsT,IAAI+5C,EAAE55C,KAAKqa,GAAGo+C,EAAE9+C,GAAGA,GAAG,GAAGU,GAAE,EAAG21C,EAAEC,EAAE/vD,EAAEC,MAAMN,EAAE4rJ,UAAUx2J,EAAEmN,EAAE7V,EAAEsT,GAAG49E,GAAG3tB,IAAI2tB,GAAE,EAAGqiB,EAAE9E,KAAYn7F,CAAC,EACne7c,EAAQ2kG,qBAAqBruE,EAAEt2B,EAAQ0pK,sBAAsB,SAAS7sJ,GAAG,IAAIC,EAAE4oD,EAAE,OAAO,WAAW,IAAIxoD,EAAEwoD,EAAEA,EAAE5oD,EAAE,IAAI,OAAOD,EAAE/b,MAAM4a,KAAKxa,UAAU,CAAC,QAAQwkE,EAAExoD,CAAC,CAAC,CAAC,gCCf7J9I,EAAOpU,QAAU,EAAjBoU,qCCDF,IAAI+8D,EAAe19D,EAAQ,OACvBk2J,EAASl2J,EAAQ,OACjBm2J,EAAiBn2J,EAAQ,MAARA,GACjBggI,EAAOhgI,EAAQ,OAEfg+D,EAAah+D,EAAQ,OACrBo2J,EAAS14F,EAAa,gBAK1B/8D,EAAOpU,QAAU,SAA2BqtB,EAAIlsB,GAC/C,GAAkB,oBAAPksB,EACV,MAAM,IAAIokD,EAAW,0BAEtB,GAAsB,kBAAXtwE,GAAuBA,EAAS,GAAKA,EAAS,YAAc0oK,EAAO1oK,KAAYA,EACzF,MAAM,IAAIswE,EAAW,8CAGtB,IAAIqC,EAAQ5yE,UAAUC,OAAS,KAAOD,UAAU,GAE5C4oK,GAA+B,EAC/BC,GAA2B,EAC/B,GAAI,WAAY18I,GAAMomH,EAAM,CAC3B,IAAI1/D,EAAO0/D,EAAKpmH,EAAI,UAChB0mD,IAASA,EAAK7xE,eACjB4nK,GAA+B,GAE5B/1F,IAASA,EAAK5xE,WACjB4nK,GAA2B,EAE7B,CASA,OAPID,GAAgCC,IAA6Bj2F,KAC5D81F,EACHD,EAA6Ct8I,EAAK,SAAUlsB,GAAQ,GAAM,GAE1EwoK,EAA6Ct8I,EAAK,SAAUlsB,IAGvDksB,CACR,yBC3CA,iBACE,SAAS8oE,GAGsCn2F,GAC9CA,EAAQ41F,SACoCxhF,GAC5CA,EAAOwhF,SAHT,IAIIhC,EAA8B,iBAAV5uB,EAAAA,GAAsBA,EAAAA,EAE7C4uB,EAAW5uB,SAAW4uB,GACtBA,EAAWziF,SAAWyiF,GACtBA,EAAW35E,KAUZ,IAAI+vJ,EAGJC,EAAS,WAGThhH,EAAO,GACPihH,EAAO,EACPC,EAAO,GACPC,EAAO,GACPC,EAAO,IACPC,EAAc,GACdC,EAAW,IACX73G,EAAY,IAGZ83G,EAAgB,QAChBC,EAAgB,eAChBC,EAAkB,4BAGlB1/H,EAAS,CACR,SAAY,kDACZ,YAAa,iDACb,gBAAiB,iBAIlB2/H,EAAgB1hH,EAAOihH,EACvBlsJ,EAAQD,KAAKC,MACb4sJ,EAAqB54I,OAAO8yC,aAa5B,SAAS7zD,EAAM5B,GACd,MAAM+xD,WAAWp2B,EAAO37B,GACzB,CAUA,SAASgnB,EAAIlwB,EAAOknB,GAGnB,IAFA,IAAIlsB,EAASgF,EAAMhF,OACf4J,EAAS,GACN5J,KACN4J,EAAO5J,GAAUksB,EAAGlnB,EAAMhF,IAE3B,OAAO4J,CACR,CAYA,SAAS8/J,EAAUtkK,EAAQ8mB,GAC1B,IAAItK,EAAQxc,EAAOyc,MAAM,KACrBjY,EAAS,GAWb,OAVIgY,EAAM5hB,OAAS,IAGlB4J,EAASgY,EAAM,GAAK,IACpBxc,EAASwc,EAAM,IAMThY,EADOsrB,GAFd9vB,EAASA,EAAOob,QAAQ+oJ,EAAiB,MACrB1nJ,MAAM,KACAqK,GAAI2C,KAAK,IAEpC,CAeA,SAAS86I,EAAWvkK,GAMnB,IALA,IAGItE,EACA8oK,EAJAtzI,EAAS,GACTuzI,EAAU,EACV7pK,EAASoF,EAAOpF,OAGb6pK,EAAU7pK,IAChBc,EAAQsE,EAAO4yD,WAAW6xG,OACb,OAAU/oK,GAAS,OAAU+oK,EAAU7pK,EAG3B,QAAX,OADb4pK,EAAQxkK,EAAO4yD,WAAW6xG,OAEzBvzI,EAAO52B,OAAe,KAARoB,IAAkB,KAAe,KAAR8oK,GAAiB,QAIxDtzI,EAAO52B,KAAKoB,GACZ+oK,KAGDvzI,EAAO52B,KAAKoB,GAGd,OAAOw1B,CACR,CAUA,SAASwzI,EAAW9kK,GACnB,OAAOkwB,EAAIlwB,GAAO,SAASlE,GAC1B,IAAIw1B,EAAS,GAOb,OANIx1B,EAAQ,QAEXw1B,GAAUmzI,GADV3oK,GAAS,SAC8B,GAAK,KAAQ,OACpDA,EAAQ,MAAiB,KAARA,GAElBw1B,GAAUmzI,EAAmB3oK,EAE9B,IAAG+tB,KAAK,GACT,CAmCA,SAASk7I,EAAaC,EAAOC,GAG5B,OAAOD,EAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,EACzD,CAOA,SAASC,EAAMxmI,EAAOymI,EAAWC,GAChC,IAAIlsJ,EAAI,EAGR,IAFAwlB,EAAQ0mI,EAAYvtJ,EAAM6mB,EAAQwlI,GAAQxlI,GAAS,EACnDA,GAAS7mB,EAAM6mB,EAAQymI,GACOzmI,EAAQ8lI,EAAgBR,GAAQ,EAAG9qJ,GAAK4pC,EACrEpkB,EAAQ7mB,EAAM6mB,EAAQ8lI,GAEvB,OAAO3sJ,EAAMqB,GAAKsrJ,EAAgB,GAAK9lI,GAASA,EAAQulI,GACzD,CASA,SAASj8H,EAAOryB,GAEf,IAEImC,EAIAutJ,EACAnoG,EACA/yC,EACAm7I,EACAtsJ,EACAE,EACA8rJ,EACAnuJ,EAEA0uJ,EArEiBhnG,EAsDjBjtC,EAAS,GACTk0I,EAAc7vJ,EAAM3a,OAEpBF,EAAI,EACJ+C,EAAIumK,EACJqB,EAAOtB,EAqBX,KALAkB,EAAQ1vJ,EAAMinD,YAAYrQ,IACd,IACX84G,EAAQ,GAGJnoG,EAAI,EAAGA,EAAImoG,IAASnoG,EAEpBvnD,EAAMq9C,WAAWkK,IAAM,KAC1BpyD,EAAM,aAEPwmB,EAAO52B,KAAKib,EAAMq9C,WAAWkK,IAM9B,IAAK/yC,EAAQk7I,EAAQ,EAAIA,EAAQ,EAAI,EAAGl7I,EAAQq7I,GAAwC,CAOvF,IAAKF,EAAOxqK,EAAGke,EAAI,EAAGE,EAAI4pC,EAErB34B,GAASq7I,GACZ16J,EAAM,mBAGPk6J,GAxGmBzmG,EAwGE5oD,EAAMq9C,WAAW7oC,MAvGxB,GAAK,GACbo0C,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEbzb,IAgGQA,GAAQkiH,EAAQntJ,GAAOisJ,EAAShpK,GAAKke,KACjDlO,EAAM,YAGPhQ,GAAKkqK,EAAQhsJ,IAGTgsJ,GAFJnuJ,EAAIqC,GAAKusJ,EAAO1B,EAAQ7qJ,GAAKusJ,EAAOzB,EAAOA,EAAO9qJ,EAAIusJ,IAbHvsJ,GAAK4pC,EAoBpD9pC,EAAInB,EAAMisJ,GADdyB,EAAaziH,EAAOjsC,KAEnB/L,EAAM,YAGPkO,GAAKusJ,EAKNE,EAAOP,EAAMpqK,EAAIwqK,EADjBxtJ,EAAMwZ,EAAOt2B,OAAS,EACc,GAARsqK,GAIxBztJ,EAAM/c,EAAIgd,GAAOgsJ,EAASjmK,GAC7BiN,EAAM,YAGPjN,GAAKga,EAAM/c,EAAIgd,GACfhd,GAAKgd,EAGLwZ,EAAO8qB,OAAOthD,IAAK,EAAG+C,EAEvB,CAEA,OAAOinK,EAAWxzI,EACnB,CASA,SAASlW,EAAOzF,GACf,IAAI9X,EACA6gC,EACAgnI,EACAC,EACAF,EACAvoG,EACAV,EACA/lD,EACAyC,EACArC,EACA+uJ,EAGAJ,EAEAK,EACAN,EACAO,EANAx0I,EAAS,GAoBb,IARAk0I,GAHA7vJ,EAAQgvJ,EAAWhvJ,IAGC3a,OAGpB6C,EAAIumK,EACJ1lI,EAAQ,EACR+mI,EAAOtB,EAGFjnG,EAAI,EAAGA,EAAIsoG,IAAetoG,GAC9B0oG,EAAejwJ,EAAMunD,IACF,KAClB5rC,EAAO52B,KAAK+pK,EAAmBmB,IAejC,IAXAF,EAAiBC,EAAcr0I,EAAOt2B,OAMlC2qK,GACHr0I,EAAO52B,KAAK6xD,GAINm5G,EAAiBF,GAAa,CAIpC,IAAKhpG,EAAIsnG,EAAQ5mG,EAAI,EAAGA,EAAIsoG,IAAetoG,GAC1C0oG,EAAejwJ,EAAMunD,KACDr/D,GAAK+nK,EAAeppG,IACvCA,EAAIopG,GAcN,IAPIppG,EAAI3+D,EAAIga,GAAOisJ,EAASplI,IAD5BmnI,EAAwBH,EAAiB,KAExC56J,EAAM,YAGP4zB,IAAU89B,EAAI3+D,GAAKgoK,EACnBhoK,EAAI2+D,EAECU,EAAI,EAAGA,EAAIsoG,IAAetoG,EAO9B,IANA0oG,EAAejwJ,EAAMunD,IAEFr/D,KAAO6gC,EAAQolI,GACjCh5J,EAAM,YAGH86J,GAAgB/nK,EAAG,CAEtB,IAAK4Y,EAAIioB,EAAOxlB,EAAI4pC,IAEfrsC,GADJI,EAAIqC,GAAKusJ,EAAO1B,EAAQ7qJ,GAAKusJ,EAAOzB,EAAOA,EAAO9qJ,EAAIusJ,IADTvsJ,GAAK4pC,EAKlDgjH,EAAUrvJ,EAAII,EACd0uJ,EAAaziH,EAAOjsC,EACpBya,EAAO52B,KACN+pK,EAAmBM,EAAaluJ,EAAIivJ,EAAUP,EAAY,KAE3D9uJ,EAAIoB,EAAMiuJ,EAAUP,GAGrBj0I,EAAO52B,KAAK+pK,EAAmBM,EAAatuJ,EAAG,KAC/CgvJ,EAAOP,EAAMxmI,EAAOmnI,EAAuBH,GAAkBC,GAC7DjnI,EAAQ,IACNgnI,CACH,GAGChnI,IACA7gC,CAEH,CACA,OAAOyzB,EAAOzH,KAAK,GACpB,CA2CAg6I,EAAW,CAMV,QAAW,QAQX,KAAQ,CACP,OAAUc,EACV,OAAUG,GAEX,OAAU98H,EACV,OAAU5sB,EACV,QA/BD,SAAiBzF,GAChB,OAAO+uJ,EAAU/uJ,GAAO,SAASvV,GAChC,OAAOkkK,EAAcpmK,KAAKkC,GACvB,OAASgb,EAAOhb,GAChBA,CACJ,GACD,EA0BC,UAnDD,SAAmBuV,GAClB,OAAO+uJ,EAAU/uJ,GAAO,SAASvV,GAChC,OAAOikK,EAAcnmK,KAAKkC,GACvB4nC,EAAO5nC,EAAOrC,MAAM,GAAGsW,eACvBjU,CACJ,GACD,QA0DE,KAFDojK,EAAAA,WACC,OAAOK,CACP,+BAaF,CAhhBC,oBCoBF,IAAIA,EAAWv2J,EAAQ,OASvB,SAASy4J,IACPxwJ,KAAKqqB,SAAW,KAChBrqB,KAAKywJ,QAAU,KACfzwJ,KAAKu5C,KAAO,KACZv5C,KAAKmlB,KAAO,KACZnlB,KAAK+oB,KAAO,KACZ/oB,KAAKgnB,SAAW,KAChBhnB,KAAKC,KAAO,KACZD,KAAKsI,OAAS,KACdtI,KAAKuI,MAAQ,KACbvI,KAAK6qB,SAAW,KAChB7qB,KAAK0H,KAAO,KACZ1H,KAAKyrB,KAAO,IACd,CApBAnnC,EAAQmjB,MAAQ2iB,EAChB9lC,EAAQ8K,QA2XR,SAAoB1J,EAAQgrK,GAC1B,OAAOtmI,EAAS1kC,GAAQ,GAAO,GAAM0J,QAAQshK,EAC/C,EA5XApsK,EAAQqsK,cAkYR,SAA0BjrK,EAAQgrK,GAChC,OAAKhrK,EACE0kC,EAAS1kC,GAAQ,GAAO,GAAMirK,cAAcD,GAD/BA,CAEtB,EApYApsK,EAAQmkB,OAuTR,SAAmBviB,GAKb0qK,EAAS1qK,KAAMA,EAAMkkC,EAASlkC,IAClC,OAAMA,aAAesqK,EACdtqK,EAAIuiB,SADuB+nJ,EAAIlqK,UAAUmiB,OAAOxhB,KAAKf,EAE9D,EA7TA5B,EAAQksK,IAAMA,EAqBd,IAAIK,EAAkB,oBAClBC,EAAc,WAOdC,EAAS,CAAC,IAAK,IAAK,IAAK,KAAM,IAAK,KAAKriK,OAHhC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,OAM/CsiK,EAAa,CAAC,KAAMtiK,OAAOqiK,GAK3BE,EAAe,CAAC,IAAK,IAAK,IAAK,IAAK,KAAKviK,OAAOsiK,GAChDE,EAAkB,CAAC,IAAK,IAAK,KAE7BC,EAAsB,wBACtBC,EAAoB,8BAEpBC,EAAiB,CACf,YAAc,EACd,eAAe,GAGjBC,EAAmB,CACjB,YAAc,EACd,eAAe,GAGjBC,EAAkB,CAChB,MAAQ,EACR,OAAS,EACT,KAAO,EACP,QAAU,EACV,MAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GAEXtsJ,EAAclN,EAAQ,OAE1B,SAASqyB,EAASz6B,EAAK6hK,EAAkBC,GACvC,GAAI9hK,GAAOy+D,EAASz+D,IAAQA,aAAe6gK,EAAK,OAAO7gK,EAEvD,IAAI8U,EAAI,IAAI+rJ,EAEZ,OADA/rJ,EAAEgD,MAAM9X,EAAK6hK,EAAkBC,GACxBhtJ,CACT,CAglBA,SAASmsJ,EAASxxJ,GAChB,MAAsB,kBAARA,CAChB,CAEA,SAASgvD,EAAShvD,GAChB,MAAsB,kBAARA,GAA4B,OAARA,CACpC,CAEA,SAASsyJ,EAAOtyJ,GACd,OAAe,OAARA,CACT,CAxlBAoxJ,EAAIlqK,UAAUmhB,MAAQ,SAAS9X,EAAK6hK,EAAkBC,GACpD,IAAKb,EAASjhK,GACZ,MAAM,IAAI7G,UAAU,gDAAkD6G,GAGxE,IAAI+lC,EAAO/lC,EAIX+lC,EAAOA,EAAKyY,OAEZ,IAAI+9F,EAAQ2kB,EAAgB95G,KAAKrhB,GACjC,GAAIw2G,EAAO,CAET,IAAIylB,GADJzlB,EAAQA,EAAM,IACSptI,cACvBkB,KAAKqqB,SAAWsnI,EAChBj8H,EAAOA,EAAK5S,OAAOopH,EAAMzmJ,OAC3B,CAMA,GAAIgsK,GAAqBvlB,GAASx2G,EAAKxvB,MAAM,wBAAyB,CACpE,IAAIuqJ,EAAgC,OAAtB/6H,EAAK5S,OAAO,EAAG,IACzB2tI,GAAavkB,GAASolB,EAAiBplB,KACzCx2G,EAAOA,EAAK5S,OAAO,GACnB9iB,KAAKywJ,SAAU,EAEnB,CAEA,IAAKa,EAAiBplB,KACjBukB,GAAYvkB,IAAUqlB,EAAgBrlB,IAAU,CAmBnD,IADA,IASI3yF,EAAMq4G,EATNC,GAAW,EACNtsK,EAAI,EAAGA,EAAI2rK,EAAgBzrK,OAAQF,IAAK,EAElC,KADTusK,EAAMp8H,EAAK7uC,QAAQqqK,EAAgB3rK,QACP,IAAbssK,GAAkBC,EAAMD,KACzCA,EAAUC,EACd,EAgBgB,KATdF,GAFe,IAAbC,EAEOn8H,EAAK2xB,YAAY,KAIjB3xB,EAAK2xB,YAAY,IAAKwqG,MAM/Bt4G,EAAO7jB,EAAKltC,MAAM,EAAGopK,GACrBl8H,EAAOA,EAAKltC,MAAMopK,EAAS,GAC3B5xJ,KAAKu5C,KAAOiB,mBAAmBjB,IAIjCs4G,GAAW,EACX,IAAStsK,EAAI,EAAGA,EAAI0rK,EAAaxrK,OAAQF,IAAK,CAC5C,IAAIusK,GACS,KADTA,EAAMp8H,EAAK7uC,QAAQoqK,EAAa1rK,QACJ,IAAbssK,GAAkBC,EAAMD,KACzCA,EAAUC,EACd,EAEiB,IAAbD,IACFA,EAAUn8H,EAAKjwC,QAEjBua,KAAKmlB,KAAOuQ,EAAKltC,MAAM,EAAGqpK,GAC1Bn8H,EAAOA,EAAKltC,MAAMqpK,GAGlB7xJ,KAAK+xJ,YAIL/xJ,KAAKgnB,SAAWhnB,KAAKgnB,UAAY,GAIjC,IAAIgrI,EAAoC,MAArBhyJ,KAAKgnB,SAAS,IACe,MAA5ChnB,KAAKgnB,SAAShnB,KAAKgnB,SAASvhC,OAAS,GAGzC,IAAKusK,EAEH,IADA,IAAIC,EAAYjyJ,KAAKgnB,SAAS1f,MAAM,MACpB1Z,GAAPrI,EAAI,EAAO0sK,EAAUxsK,QAAQF,EAAIqI,EAAGrI,IAAK,CAChD,IAAIwgD,EAAOksH,EAAU1sK,GACrB,GAAKwgD,IACAA,EAAK7/B,MAAMirJ,GAAsB,CAEpC,IADA,IAAIe,EAAU,GACLvqG,EAAI,EAAGhkD,EAAIoiC,EAAKtgD,OAAQkiE,EAAIhkD,EAAGgkD,IAClC5hB,EAAK0X,WAAWkK,GAAK,IAIvBuqG,GAAW,IAEXA,GAAWnsH,EAAK4hB,GAIpB,IAAKuqG,EAAQhsJ,MAAMirJ,GAAsB,CACvC,IAAIgB,EAAaF,EAAUzpK,MAAM,EAAGjD,GAChC6sK,EAAUH,EAAUzpK,MAAMjD,EAAI,GAC9B8sK,EAAMtsH,EAAK7/B,MAAMkrJ,GACjBiB,IACFF,EAAWhtK,KAAKktK,EAAI,IACpBD,EAAQ3nJ,QAAQ4nJ,EAAI,KAElBD,EAAQ3sK,SACViwC,EAAO,IAAM08H,EAAQ99I,KAAK,KAAOohB,GAEnC11B,KAAKgnB,SAAWmrI,EAAW79I,KAAK,KAChC,KACF,CACF,CACF,CAUF,GAPItU,KAAKgnB,SAASvhC,OAhLD,IAiLfua,KAAKgnB,SAAW,GAGhBhnB,KAAKgnB,SAAWhnB,KAAKgnB,SAASloB,eAG3BkzJ,EAAc,CAKjB,IAAIM,EAActyJ,KAAKgnB,SAAS1f,MAAM,KAClCirJ,EAAS,GACb,IAAShtK,EAAI,EAAGA,EAAI+sK,EAAY7sK,SAAUF,EAAG,CAC3C,IAAI8b,EAAIixJ,EAAY/sK,GACpBgtK,EAAOptK,KAAKkc,EAAE6E,MAAM,kBAChB,OAASooJ,EAASzoJ,OAAOxE,GAAKA,EACpC,CACArB,KAAKgnB,SAAWurI,EAAOj+I,KAAK,IAC9B,CAEA,IAAI+kD,EAAIr5D,KAAK+oB,KAAO,IAAM/oB,KAAK+oB,KAAO,GAClCmyB,EAAIl7C,KAAKgnB,UAAY,GACzBhnB,KAAKmlB,KAAO+1B,EAAIme,EAChBr5D,KAAKyrB,MAAQzrB,KAAKmlB,KAId6sI,IACFhyJ,KAAKgnB,SAAWhnB,KAAKgnB,SAASlE,OAAO,EAAG9iB,KAAKgnB,SAASvhC,OAAS,GAC/C,MAAZiwC,EAAK,KACPA,EAAO,IAAMA,GAGnB,CAIA,IAAK27H,EAAeM,GAKlB,IAASpsK,EAAI,EAAGqI,EAAIojK,EAAWvrK,OAAQF,EAAIqI,EAAGrI,IAAK,CACjD,IAAI+vG,EAAK07D,EAAWzrK,GAChBitK,EAAMl1G,mBAAmBg4C,GACzBk9D,IAAQl9D,IACVk9D,EAAMj1G,OAAO+3C,IAEf5/D,EAAOA,EAAKpuB,MAAMguF,GAAIhhF,KAAKk+I,EAC7B,CAKF,IAAIvyJ,EAAOy1B,EAAK7uC,QAAQ,MACV,IAAVoZ,IAEFD,KAAKC,KAAOy1B,EAAK5S,OAAO7iB,GACxBy1B,EAAOA,EAAKltC,MAAM,EAAGyX,IAEvB,IAAIwyJ,EAAK/8H,EAAK7uC,QAAQ,KAoBtB,IAnBY,IAAR4rK,GACFzyJ,KAAKsI,OAASotB,EAAK5S,OAAO2vI,GAC1BzyJ,KAAKuI,MAAQmtB,EAAK5S,OAAO2vI,EAAK,GAC1BjB,IACFxxJ,KAAKuI,MAAQtD,EAAYwC,MAAMzH,KAAKuI,QAEtCmtB,EAAOA,EAAKltC,MAAM,EAAGiqK,IACZjB,IAETxxJ,KAAKsI,OAAS,GACdtI,KAAKuI,MAAQ,CAAC,GAEZmtB,IAAM11B,KAAK6qB,SAAW6K,GACtB67H,EAAgBI,IAChB3xJ,KAAKgnB,WAAahnB,KAAK6qB,WACzB7qB,KAAK6qB,SAAW,KAId7qB,KAAK6qB,UAAY7qB,KAAKsI,OAAQ,CAC5B+wD,EAAIr5D,KAAK6qB,UAAY,GACrBxpB,EAAIrB,KAAKsI,QAAU,GACvBtI,KAAK0H,KAAO2xD,EAAIh4D,CAClB,CAIA,OADArB,KAAKyrB,KAAOzrB,KAAKyI,SACVzI,IACT,EAaAwwJ,EAAIlqK,UAAUmiB,OAAS,WACrB,IAAI8wC,EAAOv5C,KAAKu5C,MAAQ,GACpBA,IAEFA,GADAA,EAAO+D,mBAAmB/D,IACdtzC,QAAQ,OAAQ,KAC5BszC,GAAQ,KAGV,IAAIlvB,EAAWrqB,KAAKqqB,UAAY,GAC5BQ,EAAW7qB,KAAK6qB,UAAY,GAC5B5qB,EAAOD,KAAKC,MAAQ,GACpBklB,GAAO,EACP5c,EAAQ,GAERvI,KAAKmlB,KACPA,EAAOo0B,EAAOv5C,KAAKmlB,KACVnlB,KAAKgnB,WACd7B,EAAOo0B,IAAwC,IAAhCv5C,KAAKgnB,SAASngC,QAAQ,KACjCmZ,KAAKgnB,SACL,IAAMhnB,KAAKgnB,SAAW,KACtBhnB,KAAK+oB,OACP5D,GAAQ,IAAMnlB,KAAK+oB,OAInB/oB,KAAKuI,OACL6lD,EAASpuD,KAAKuI,QACd3jB,OAAOD,KAAKqb,KAAKuI,OAAO9iB,SAC1B8iB,EAAQtD,EAAY0B,UAAU3G,KAAKuI,QAGrC,IAAID,EAAStI,KAAKsI,QAAWC,GAAU,IAAMA,GAAW,GAsBxD,OApBI8hB,GAAoC,MAAxBA,EAASvH,QAAQ,KAAYuH,GAAY,KAIrDrqB,KAAKywJ,WACHpmI,GAAYknI,EAAgBlnI,MAAuB,IAATlF,GAC9CA,EAAO,MAAQA,GAAQ,IACnB0F,GAAmC,MAAvBA,EAASr3B,OAAO,KAAYq3B,EAAW,IAAMA,IACnD1F,IACVA,EAAO,IAGLllB,GAA2B,MAAnBA,EAAKzM,OAAO,KAAYyM,EAAO,IAAMA,GAC7CqI,GAA+B,MAArBA,EAAO9U,OAAO,KAAY8U,EAAS,IAAMA,GAOhD+hB,EAAWlF,GALlB0F,EAAWA,EAAS5kB,QAAQ,SAAS,SAASC,GAC5C,OAAOo3C,mBAAmBp3C,EAC5B,MACAoC,EAASA,EAAOrC,QAAQ,IAAK,QAEgBhG,CAC/C,EAMAuwJ,EAAIlqK,UAAU8I,QAAU,SAASshK,GAC/B,OAAO1wJ,KAAK2wJ,cAAcvmI,EAASsmI,GAAU,GAAO,IAAOjoJ,QAC7D,EAOA+nJ,EAAIlqK,UAAUqqK,cAAgB,SAASD,GACrC,GAAIE,EAASF,GAAW,CACtB,IAAI90F,EAAM,IAAI40F,EACd50F,EAAIn0D,MAAMipJ,GAAU,GAAO,GAC3BA,EAAW90F,CACb,CAEA,IAAIvsE,EAAS,IAAImhK,EAUjB,GATA5rK,OAAOD,KAAKqb,MAAMra,SAAQ,SAASge,GACjCtU,EAAOsU,GAAK3D,KAAK2D,EACnB,GAAG3D,MAIH3Q,EAAO4Q,KAAOywJ,EAASzwJ,KAGD,KAAlBywJ,EAASjlI,KAEX,OADAp8B,EAAOo8B,KAAOp8B,EAAOoZ,SACdpZ,EAIT,GAAIqhK,EAASD,UAAYC,EAASrmI,SAchC,OAZAzlC,OAAOD,KAAK+rK,GAAU/qK,SAAQ,SAASge,GAC3B,aAANA,IACFtU,EAAOsU,GAAK+sJ,EAAS/sJ,GACzB,IAGI4tJ,EAAgBliK,EAAOg7B,WACvBh7B,EAAO23B,WAAa33B,EAAOw7B,WAC7Bx7B,EAAOqY,KAAOrY,EAAOw7B,SAAW,KAGlCx7B,EAAOo8B,KAAOp8B,EAAOoZ,SACdpZ,EAGT,GAAIqhK,EAASrmI,UAAYqmI,EAASrmI,WAAah7B,EAAOg7B,SAAU,CAS9D,IAAKknI,EAAgBb,EAASrmI,UAK5B,OAJAzlC,OAAOD,KAAK+rK,GAAU/qK,SAAQ,SAASge,GACrCtU,EAAOsU,GAAK+sJ,EAAS/sJ,EACvB,IACAtU,EAAOo8B,KAAOp8B,EAAOoZ,SACdpZ,EAIT,GADAA,EAAOg7B,SAAWqmI,EAASrmI,SACtBqmI,EAASvrI,MAASmsI,EAAiBZ,EAASrmI,UAS/Ch7B,EAAOw7B,SAAW6lI,EAAS7lI,aAT+B,CAE1D,IADA,IAAI6nI,GAAWhC,EAAS7lI,UAAY,IAAIvjB,MAAM,KACvCorJ,EAAQjtK,UAAYirK,EAASvrI,KAAOutI,EAAQvvJ,WAC9CutJ,EAASvrI,OAAMurI,EAASvrI,KAAO,IAC/BurI,EAAS1pI,WAAU0pI,EAAS1pI,SAAW,IACzB,KAAf0rI,EAAQ,IAAWA,EAAQjoJ,QAAQ,IACnCioJ,EAAQjtK,OAAS,GAAGitK,EAAQjoJ,QAAQ,IACxCpb,EAAOw7B,SAAW6nI,EAAQp+I,KAAK,IACjC,CAUA,GAPAjlB,EAAOiZ,OAASooJ,EAASpoJ,OACzBjZ,EAAOkZ,MAAQmoJ,EAASnoJ,MACxBlZ,EAAO81B,KAAOurI,EAASvrI,MAAQ,GAC/B91B,EAAOkqD,KAAOm3G,EAASn3G,KACvBlqD,EAAO23B,SAAW0pI,EAAS1pI,UAAY0pI,EAASvrI,KAChD91B,EAAO05B,KAAO2nI,EAAS3nI,KAEnB15B,EAAOw7B,UAAYx7B,EAAOiZ,OAAQ,CACpC,IAAI+wD,EAAIhqE,EAAOw7B,UAAY,GACvBxpB,EAAIhS,EAAOiZ,QAAU,GACzBjZ,EAAOqY,KAAO2xD,EAAIh4D,CACpB,CAGA,OAFAhS,EAAOohK,QAAUphK,EAAOohK,SAAWC,EAASD,QAC5CphK,EAAOo8B,KAAOp8B,EAAOoZ,SACdpZ,CACT,CAEA,IAAIsjK,EAAetjK,EAAOw7B,UAA0C,MAA9Bx7B,EAAOw7B,SAASr3B,OAAO,GACzDo/J,EACIlC,EAASvrI,MACTurI,EAAS7lI,UAA4C,MAAhC6lI,EAAS7lI,SAASr3B,OAAO,GAElDq/J,EAAcD,GAAYD,GACXtjK,EAAO81B,MAAQurI,EAAS7lI,SACvCioI,EAAgBD,EAChBE,EAAU1jK,EAAOw7B,UAAYx7B,EAAOw7B,SAASvjB,MAAM,MAAQ,GAE3D0rJ,GADAN,EAAUhC,EAAS7lI,UAAY6lI,EAAS7lI,SAASvjB,MAAM,MAAQ,GACnDjY,EAAOg7B,WAAaknI,EAAgBliK,EAAOg7B,WA2B3D,GApBI2oI,IACF3jK,EAAO23B,SAAW,GAClB33B,EAAO05B,KAAO,KACV15B,EAAO81B,OACU,KAAf4tI,EAAQ,GAAWA,EAAQ,GAAK1jK,EAAO81B,KACtC4tI,EAAQtoJ,QAAQpb,EAAO81B,OAE9B91B,EAAO81B,KAAO,GACVurI,EAASrmI,WACXqmI,EAAS1pI,SAAW,KACpB0pI,EAAS3nI,KAAO,KACZ2nI,EAASvrI,OACQ,KAAfutI,EAAQ,GAAWA,EAAQ,GAAKhC,EAASvrI,KACxCutI,EAAQjoJ,QAAQimJ,EAASvrI,OAEhCurI,EAASvrI,KAAO,MAElB0tI,EAAaA,IAA8B,KAAfH,EAAQ,IAA4B,KAAfK,EAAQ,KAGvDH,EAEFvjK,EAAO81B,KAAQurI,EAASvrI,MAA0B,KAAlBurI,EAASvrI,KAC3BurI,EAASvrI,KAAO91B,EAAO81B,KACrC91B,EAAO23B,SAAY0pI,EAAS1pI,UAAkC,KAAtB0pI,EAAS1pI,SAC/B0pI,EAAS1pI,SAAW33B,EAAO23B,SAC7C33B,EAAOiZ,OAASooJ,EAASpoJ,OACzBjZ,EAAOkZ,MAAQmoJ,EAASnoJ,MACxBwqJ,EAAUL,OAEL,GAAIA,EAAQjtK,OAGZstK,IAASA,EAAU,IACxBA,EAAQ17H,MACR07H,EAAUA,EAAQrkK,OAAOgkK,GACzBrjK,EAAOiZ,OAASooJ,EAASpoJ,OACzBjZ,EAAOkZ,MAAQmoJ,EAASnoJ,WACnB,GAoJQ,MApJemoJ,EAASpoJ,OAAS,CAI9C,GAAI0qJ,EACF3jK,EAAO23B,SAAW33B,EAAO81B,KAAO4tI,EAAQ5vJ,SAIpC8vJ,KAAa5jK,EAAO81B,MAAQ91B,EAAO81B,KAAKt+B,QAAQ,KAAO,IAC1CwI,EAAO81B,KAAK7d,MAAM,QAEjCjY,EAAOkqD,KAAO05G,EAAW9vJ,QACzB9T,EAAO81B,KAAO91B,EAAO23B,SAAWisI,EAAW9vJ,SAW/C,OARA9T,EAAOiZ,OAASooJ,EAASpoJ,OACzBjZ,EAAOkZ,MAAQmoJ,EAASnoJ,MAEnBmpJ,EAAOriK,EAAOw7B,WAAc6mI,EAAOriK,EAAOiZ,UAC7CjZ,EAAOqY,MAAQrY,EAAOw7B,SAAWx7B,EAAOw7B,SAAW,KACpCx7B,EAAOiZ,OAASjZ,EAAOiZ,OAAS,KAEjDjZ,EAAOo8B,KAAOp8B,EAAOoZ,SACdpZ,CACT,CAEA,IAAK0jK,EAAQttK,OAWX,OARA4J,EAAOw7B,SAAW,KAEdx7B,EAAOiZ,OACTjZ,EAAOqY,KAAO,IAAMrY,EAAOiZ,OAE3BjZ,EAAOqY,KAAO,KAEhBrY,EAAOo8B,KAAOp8B,EAAOoZ,SACdpZ,EAcT,IARA,IAAIsxE,EAAOoyF,EAAQvqK,OAAO,GAAG,GACzB0qK,GACC7jK,EAAO81B,MAAQurI,EAASvrI,QAAmB,MAATw7C,GAAyB,OAATA,IAC1C,KAATA,EAIAwyF,EAAK,EACA5tK,EAAIwtK,EAAQttK,OAAQF,GAAK,EAAGA,IAEvB,MADZo7E,EAAOoyF,EAAQxtK,IAEbwtK,EAAQlsH,OAAOthD,EAAG,GACA,OAATo7E,GACToyF,EAAQlsH,OAAOthD,EAAG,GAClB4tK,KACSA,IACTJ,EAAQlsH,OAAOthD,EAAG,GAClB4tK,KAKJ,IAAKN,IAAeC,EAClB,KAAOK,IAAMA,EACXJ,EAAQtoJ,QAAQ,OAIhBooJ,GAA6B,KAAfE,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGv/J,OAAO,IACpCu/J,EAAQtoJ,QAAQ,IAGdyoJ,GAAsD,MAAjCH,EAAQz+I,KAAK,KAAKwO,QAAQ,IACjDiwI,EAAQ5tK,KAAK,IAGf,IAUM8tK,EAVFG,EAA4B,KAAfL,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGv/J,OAAO,GAGjCw/J,IACF3jK,EAAO23B,SAAW33B,EAAO81B,KAAOiuI,EAAa,GACbL,EAAQttK,OAASstK,EAAQ5vJ,QAAU,IAI/D8vJ,KAAa5jK,EAAO81B,MAAQ91B,EAAO81B,KAAKt+B,QAAQ,KAAO,IAC1CwI,EAAO81B,KAAK7d,MAAM,QAEjCjY,EAAOkqD,KAAO05G,EAAW9vJ,QACzB9T,EAAO81B,KAAO91B,EAAO23B,SAAWisI,EAAW9vJ,UAyB/C,OArBA0vJ,EAAaA,GAAexjK,EAAO81B,MAAQ4tI,EAAQttK,UAEhC2tK,GACjBL,EAAQtoJ,QAAQ,IAGbsoJ,EAAQttK,OAIX4J,EAAOw7B,SAAWkoI,EAAQz+I,KAAK,MAH/BjlB,EAAOw7B,SAAW,KAClBx7B,EAAOqY,KAAO,MAMXgqJ,EAAOriK,EAAOw7B,WAAc6mI,EAAOriK,EAAOiZ,UAC7CjZ,EAAOqY,MAAQrY,EAAOw7B,SAAWx7B,EAAOw7B,SAAW,KACpCx7B,EAAOiZ,OAASjZ,EAAOiZ,OAAS,KAEjDjZ,EAAOkqD,KAAOm3G,EAASn3G,MAAQlqD,EAAOkqD,KACtClqD,EAAOohK,QAAUphK,EAAOohK,SAAWC,EAASD,QAC5CphK,EAAOo8B,KAAOp8B,EAAOoZ,SACdpZ,CACT,EAEAmhK,EAAIlqK,UAAUyrK,UAAY,WACxB,IAAI5sI,EAAOnlB,KAAKmlB,KACZ4D,EAAO+nI,EAAY/5G,KAAK5xB,GACxB4D,IAEW,OADbA,EAAOA,EAAK,MAEV/oB,KAAK+oB,KAAOA,EAAKjG,OAAO,IAE1BqC,EAAOA,EAAKrC,OAAO,EAAGqC,EAAK1/B,OAASsjC,EAAKtjC,SAEvC0/B,IAAMnlB,KAAKgnB,SAAW7B,EAC5B,YCnrBAzsB,EAAOpU,QAAU,SAAkB8a,GACjC,OAAOA,GAAsB,kBAARA,GACI,oBAAbA,EAAI0N,MACS,oBAAb1N,EAAIwzB,MACc,oBAAlBxzB,EAAImjB,SAClB,gCCAA,IAAI8wI,EAAoBt7J,EAAQ,OAC5Bu7J,EAAsBv7J,EAAQ,OAC9BgsE,EAAkBhsE,EAAQ,OAC1Bu7E,EAAev7E,EAAQ,OAE3B,SAASw7J,EAAY7vJ,GACnB,OAAOA,EAAEzc,KAAKiqE,KAAKxtD,EACrB,CAEA,IAAI8vJ,EAAoC,qBAAXl1F,OACzBm1F,EAAoC,qBAAXttK,OAEzButK,EAAiBH,EAAY3uK,OAAO0B,UAAUiC,UAE9CorK,EAAcJ,EAAY94I,OAAOn0B,UAAUu6B,SAC3C41C,EAAc88F,EAAYj9I,OAAOhwB,UAAUu6B,SAC3C+yI,EAAeL,EAAYr6I,QAAQ5yB,UAAUu6B,SAEjD,GAAI2yI,EACF,IAAIK,EAAcN,EAAYj1F,OAAOh4E,UAAUu6B,SAGjD,GAAI4yI,EACF,IAAIK,EAAcP,EAAYptK,OAAOG,UAAUu6B,SAGjD,SAASkzI,EAAoBxtK,EAAOytK,GAClC,GAAqB,kBAAVztK,EACT,OAAO,EAET,IAEE,OADAytK,EAAiBztK,IACV,CACT,CAAE,MAAMgQ,GACN,OAAO,CACT,CACF,CA4FA,SAAS09J,EAAc1tK,GACrB,MAAiC,iBAA1BmtK,EAAentK,EACxB,CAiBA,SAAS2tK,EAAc3tK,GACrB,MAAiC,iBAA1BmtK,EAAentK,EACxB,CAgBA,SAAS4tK,EAAkB5tK,GACzB,MAAiC,qBAA1BmtK,EAAentK,EACxB,CAgBA,SAAS6tK,EAAkB7tK,GACzB,MAAiC,qBAA1BmtK,EAAentK,EACxB,CAUA,SAAS8tK,EAAsB9tK,GAC7B,MAAiC,yBAA1BmtK,EAAentK,EACxB,CAKA,SAAS+tK,EAAc/tK,GACrB,MAA2B,qBAAhB2Y,cAIJm1J,EAAsBE,QACzBF,EAAsB9tK,GACtBA,aAAiB2Y,YACvB,CAGA,SAASs1J,EAAmBjuK,GAC1B,MAAiC,sBAA1BmtK,EAAentK,EACxB,CAMA,SAASkuK,EAAWluK,GAClB,MAAwB,qBAAbua,WAIJ0zJ,EAAmBD,QACtBC,EAAmBjuK,GACnBA,aAAiBua,SACvB,CA/LAxc,EAAQ+uK,kBAAoBA,EAC5B/uK,EAAQgvK,oBAAsBA,EAC9BhvK,EAAQgvF,aAAeA,EAkBvBhvF,EAAQqI,UAdR,SAAmByT,GAClB,MAEqB,qBAAZjR,SACPiR,aAAiBjR,SAGP,OAAViR,GACiB,kBAAVA,GACe,oBAAfA,EAAMxT,MACU,oBAAhBwT,EAAM89F,KAGhB,EAaA55G,EAAQowK,kBAVR,SAA2BnuK,GACzB,MAA2B,qBAAhB2Y,aAA+BA,YAAYC,OAC7CD,YAAYC,OAAO5Y,GAI1B+sF,EAAa/sF,IACbkuK,EAAWluK,EAEf,EAOAjC,EAAQqwK,aAHR,SAAsBpuK,GACpB,MAAkC,eAA3Bw9E,EAAgBx9E,EACzB,EAMAjC,EAAQswK,oBAHR,SAA6BruK,GAC3B,MAAkC,sBAA3Bw9E,EAAgBx9E,EACzB,EAMAjC,EAAQuwK,cAHR,SAAuBtuK,GACrB,MAAkC,gBAA3Bw9E,EAAgBx9E,EACzB,EAMAjC,EAAQwwK,cAHR,SAAuBvuK,GACrB,MAAkC,gBAA3Bw9E,EAAgBx9E,EACzB,EAMAjC,EAAQywK,YAHR,SAAqBxuK,GACnB,MAAkC,cAA3Bw9E,EAAgBx9E,EACzB,EAMAjC,EAAQ0wK,aAHR,SAAsBzuK,GACpB,MAAkC,eAA3Bw9E,EAAgBx9E,EACzB,EAMAjC,EAAQ2wK,aAHR,SAAsB1uK,GACpB,MAAkC,eAA3Bw9E,EAAgBx9E,EACzB,EAMAjC,EAAQ4wK,eAHR,SAAwB3uK,GACtB,MAAkC,iBAA3Bw9E,EAAgBx9E,EACzB,EAMAjC,EAAQ6wK,eAHR,SAAwB5uK,GACtB,MAAkC,iBAA3Bw9E,EAAgBx9E,EACzB,EAMAjC,EAAQ8wK,gBAHR,SAAyB7uK,GACvB,MAAkC,kBAA3Bw9E,EAAgBx9E,EACzB,EAMAjC,EAAQ+wK,iBAHR,SAA0B9uK,GACxB,MAAkC,mBAA3Bw9E,EAAgBx9E,EACzB,EAMA0tK,EAAcM,QACG,qBAARt1F,KACPg1F,EAAc,IAAIh1F,KAYpB36E,EAAQgxK,MATR,SAAe/uK,GACb,MAAmB,qBAAR04E,MAIJg1F,EAAcM,QACjBN,EAAc1tK,GACdA,aAAiB04E,IACvB,EAMAi1F,EAAcK,QACG,qBAARn1F,KACP80F,EAAc,IAAI90F,KAWpB96E,EAAQixK,MATR,SAAehvK,GACb,MAAmB,qBAAR64E,MAIJ80F,EAAcK,QACjBL,EAAc3tK,GACdA,aAAiB64E,IACvB,EAMA+0F,EAAkBI,QACG,qBAAZ/0F,SACP20F,EAAkB,IAAI30F,SAWxBl7E,EAAQkxK,UATR,SAAmBjvK,GACjB,MAAuB,qBAAZi5E,UAIJ20F,EAAkBI,QACrBJ,EAAkB5tK,GAClBA,aAAiBi5E,QACvB,EAMA40F,EAAkBG,QACG,qBAAZ70F,SACP00F,EAAkB,IAAI10F,SAKxBp7E,EAAQmxK,UAHR,SAAmBlvK,GACjB,OAAO6tK,EAAkB7tK,EAC3B,EAMA8tK,EAAsBE,QACG,qBAAhBr1J,aACPm1J,EAAsB,IAAIn1J,aAW5B5a,EAAQgwK,cAAgBA,EAKxBE,EAAmBD,QACM,qBAAhBr1J,aACa,qBAAb4B,UACP0zJ,EAAmB,IAAI1zJ,SAAS,IAAI5B,YAAY,GAAI,EAAG,IAWzD5a,EAAQmwK,WAAaA,EAGrB,IAAIiB,EAAqD,qBAAtBr2F,kBAAoCA,uBAAoBtwE,EAC3F,SAAS4mK,EAA4BpvK,GACnC,MAAiC,+BAA1BmtK,EAAentK,EACxB,CACA,SAASqvK,EAAoBrvK,GAC3B,MAAqC,qBAA1BmvK,IAIwC,qBAAxCC,EAA4BpB,UACrCoB,EAA4BpB,QAAUoB,EAA4B,IAAID,IAGjEC,EAA4BpB,QAC/BoB,EAA4BpvK,GAC5BA,aAAiBmvK,EACvB,CA4BA,SAASG,EAAetvK,GACtB,OAAOwtK,EAAoBxtK,EAAOotK,EACpC,CAGA,SAASmC,EAAevvK,GACtB,OAAOwtK,EAAoBxtK,EAAOkwE,EACpC,CAGA,SAASs/F,EAAgBxvK,GACvB,OAAOwtK,EAAoBxtK,EAAOqtK,EACpC,CAGA,SAASoC,EAAezvK,GACtB,OAAOitK,GAAmBO,EAAoBxtK,EAAOstK,EACvD,CAGA,SAASoC,EAAe1vK,GACtB,OAAOktK,GAAmBM,EAAoBxtK,EAAOutK,EACvD,CAjDAxvK,EAAQsxK,oBAAsBA,EAK9BtxK,EAAQ4xK,gBAHR,SAAyB3vK,GACvB,MAAiC,2BAA1BmtK,EAAentK,EACxB,EAMAjC,EAAQ6xK,cAHR,SAAuB5vK,GACrB,MAAiC,0BAA1BmtK,EAAentK,EACxB,EAMAjC,EAAQ8xK,cAHR,SAAuB7vK,GACrB,MAAiC,0BAA1BmtK,EAAentK,EACxB,EAMAjC,EAAQ+xK,kBAHR,SAA2B9vK,GACzB,MAAiC,uBAA1BmtK,EAAentK,EACxB,EAMAjC,EAAQgyK,4BAHR,SAAqC/vK,GACnC,MAAiC,gCAA1BmtK,EAAentK,EACxB,EAMAjC,EAAQuxK,eAAiBA,EAKzBvxK,EAAQwxK,eAAiBA,EAKzBxxK,EAAQyxK,gBAAkBA,EAK1BzxK,EAAQ0xK,eAAiBA,EAKzB1xK,EAAQ2xK,eAAiBA,EAWzB3xK,EAAQiyK,iBATR,SAA0BhwK,GACxB,OACEsvK,EAAetvK,IACfuvK,EAAevvK,IACfwvK,EAAgBxvK,IAChByvK,EAAezvK,IACf0vK,EAAe1vK,EAEnB,EASAjC,EAAQkyK,iBANR,SAA0BjwK,GACxB,MAA6B,qBAAfmZ,aACZ40J,EAAc/tK,IACdqvK,EAAoBrvK,GAExB,EAGA,CAAC,UAAW,aAAc,2BAA2BZ,SAAQ,SAAS2kC,GACpE1lC,OAAOoB,eAAe1B,EAASgmC,EAAQ,CACrCplC,YAAY,EACZqB,MAAO,WACL,MAAM,IAAI8D,MAAMigC,EAAS,gCAC3B,GAEJ,qBCxTA,IAAIxkC,EAA4BlB,OAAOkB,2BACrC,SAAmCI,GAGjC,IAFA,IAAIvB,EAAOC,OAAOD,KAAKuB,GACnBuwK,EAAc,CAAC,EACVlxK,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAC/BkxK,EAAY9xK,EAAKY,IAAMX,OAAOK,yBAAyBiB,EAAKvB,EAAKY,IAEnE,OAAOkxK,CACT,EAEEC,EAAe,WACnBpyK,EAAQmkB,OAAS,SAAS/E,GACxB,IAAKktJ,EAASltJ,GAAI,CAEhB,IADA,IAAIizJ,EAAU,GACLpxK,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IACpCoxK,EAAQxxK,KAAKklE,EAAQ7kE,UAAUD,KAEjC,OAAOoxK,EAAQriJ,KAAK,IACtB,CAEI/uB,EAAI,EAmBR,IAnBA,IACIi6C,EAAOh6C,UACPoD,EAAM42C,EAAK/5C,OACX8N,EAAM+iB,OAAO5S,GAAGuC,QAAQywJ,GAAc,SAAS1tK,GACjD,GAAU,OAANA,EAAY,MAAO,IACvB,GAAIzD,GAAKqD,EAAK,OAAOI,EACrB,OAAQA,GACN,IAAK,KAAM,OAAOstB,OAAOkpB,EAAKj6C,MAC9B,IAAK,KAAM,OAAOk1B,OAAO+kB,EAAKj6C,MAC9B,IAAK,KACH,IACE,OAAOmhB,KAAKC,UAAU64B,EAAKj6C,KAC7B,CAAE,MAAOivB,GACP,MAAO,YACT,CACF,QACE,OAAOxrB,EAEb,IACSA,EAAIw2C,EAAKj6C,GAAIA,EAAIqD,EAAKI,EAAIw2C,IAAOj6C,GACpCmsK,EAAO1oK,KAAOolE,EAASplE,GACzBuK,GAAO,IAAMvK,EAEbuK,GAAO,IAAM82D,EAAQrhE,GAGzB,OAAOuK,CACT,EAMAjP,EAAQsyK,UAAY,SAASjlJ,EAAIzI,GAC/B,GAAuB,qBAAZzD,UAAqD,IAA1BA,QAAQoxJ,cAC5C,OAAOllJ,EAIT,GAAuB,qBAAZlM,QACT,OAAO,WACL,OAAOnhB,EAAQsyK,UAAUjlJ,EAAIzI,GAAK9jB,MAAM4a,KAAMxa,UAChD,EAGF,IAAImpE,GAAS,EAeb,OAdA,WACE,IAAKA,EAAQ,CACX,GAAIlpD,QAAQqxJ,iBACV,MAAM,IAAIzsK,MAAM6e,GACPzD,QAAQsxJ,iBACjBvoK,QAAQogE,MAAM1lD,GAEd1a,QAAQ+G,MAAM2T,GAEhBylD,GAAS,CACX,CACA,OAAOh9C,EAAGvsB,MAAM4a,KAAMxa,UACxB,CAGF,EAGA,IAAIwxK,EAAS,CAAC,EACVC,EAAgB,KAEpB,GAAIxxJ,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYyxJ,WAAY,CAC1B,IAAIC,EAAW1xJ,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYyxJ,WAC3BC,EAAWA,EAASlxJ,QAAQ,qBAAsB,QAC/CA,QAAQ,MAAO,MACfA,QAAQ,KAAM,OACdxS,cACHwjK,EAAgB,IAAIlzI,OAAO,IAAMozI,EAAW,IAAK,IACnD,CA0BA,SAAS9sG,EAAQnkE,EAAK85D,GAEpB,IAAIhwD,EAAM,CACRgnF,KAAM,GACNogF,QAASC,GAkBX,OAfI7xK,UAAUC,QAAU,IAAGuK,EAAI47I,MAAQpmJ,UAAU,IAC7CA,UAAUC,QAAU,IAAGuK,EAAIsnK,OAAS9xK,UAAU,IAC9C+xK,EAAUv3G,GAEZhwD,EAAIwnK,WAAax3G,EACRA,GAET17D,EAAQmzK,QAAQznK,EAAKgwD,GAGnBqO,EAAYr+D,EAAIwnK,cAAaxnK,EAAIwnK,YAAa,GAC9CnpG,EAAYr+D,EAAI47I,SAAQ57I,EAAI47I,MAAQ,GACpCv9E,EAAYr+D,EAAIsnK,UAAStnK,EAAIsnK,QAAS,GACtCjpG,EAAYr+D,EAAI0nK,iBAAgB1nK,EAAI0nK,eAAgB,GACpD1nK,EAAIsnK,SAAQtnK,EAAIonK,QAAUO,GACvBC,EAAY5nK,EAAK9J,EAAK8J,EAAI47I,MACnC,CAmCA,SAAS+rB,EAAiBpkK,EAAKskK,GAC7B,IAAIl8F,EAAQtR,EAAQqqF,OAAOmjB,GAE3B,OAAIl8F,EACK,QAAYtR,EAAQitG,OAAO37F,GAAO,GAAK,IAAMpoE,EAC7C,QAAY82D,EAAQitG,OAAO37F,GAAO,GAAK,IAEvCpoE,CAEX,CAGA,SAAS8jK,EAAe9jK,EAAKskK,GAC3B,OAAOtkK,CACT,CAcA,SAASqkK,EAAY5nK,EAAKzJ,EAAOuxK,GAG/B,GAAI9nK,EAAI0nK,eACJnxK,GACA4nE,EAAW5nE,EAAM8jE,UAEjB9jE,EAAM8jE,UAAY/lE,EAAQ+lE,WAExB9jE,EAAMF,aAAeE,EAAMF,YAAYC,YAAcC,GAAQ,CACjE,IAAIokE,EAAMpkE,EAAM8jE,QAAQytG,EAAc9nK,GAItC,OAHK4gK,EAASjmG,KACZA,EAAMitG,EAAY5nK,EAAK26D,EAAKmtG,IAEvBntG,CACT,CAGA,IAAIotG,EA+FN,SAAyB/nK,EAAKzJ,GAC5B,GAAI8nE,EAAY9nE,GACd,OAAOyJ,EAAIonK,QAAQ,YAAa,aAClC,GAAIxG,EAASrqK,GAAQ,CACnB,IAAIyxK,EAAS,IAAOtxJ,KAAKC,UAAUpgB,GAAO0f,QAAQ,SAAU,IAClBA,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAAO,IACjE,OAAOjW,EAAIonK,QAAQY,EAAQ,SAC7B,CACA,GAAIC,EAAS1xK,GACX,OAAOyJ,EAAIonK,QAAQ,GAAK7wK,EAAO,UACjC,GAAIgxK,EAAUhxK,GACZ,OAAOyJ,EAAIonK,QAAQ,GAAK7wK,EAAO,WAEjC,GAAImrK,EAAOnrK,GACT,OAAOyJ,EAAIonK,QAAQ,OAAQ,OAC/B,CA/GkBc,CAAgBloK,EAAKzJ,GACrC,GAAIwxK,EACF,OAAOA,EAIT,IAAIpzK,EAAOC,OAAOD,KAAK4B,GACnB4xK,EApCN,SAAqB1tK,GACnB,IAAIwV,EAAO,CAAC,EAMZ,OAJAxV,EAAM9E,SAAQ,SAAS4uB,EAAK4qC,GAC1Bl/C,EAAKsU,IAAO,CACd,IAEOtU,CACT,CA4BoBm4J,CAAYzzK,GAQ9B,GANIqL,EAAIwnK,aACN7yK,EAAOC,OAAO68E,oBAAoBl7E,IAKhCo9D,EAAQp9D,KACJ5B,EAAKkC,QAAQ,YAAc,GAAKlC,EAAKkC,QAAQ,gBAAkB,GACrE,OAAOwxK,EAAY9xK,GAIrB,GAAoB,IAAhB5B,EAAKc,OAAc,CACrB,GAAI0oE,EAAW5nE,GAAQ,CACrB,IAAIkC,EAAOlC,EAAMkC,KAAO,KAAOlC,EAAMkC,KAAO,GAC5C,OAAOuH,EAAIonK,QAAQ,YAAc3uK,EAAO,IAAK,UAC/C,CACA,GAAI6vK,EAAS/xK,GACX,OAAOyJ,EAAIonK,QAAQrzI,OAAOz9B,UAAUiC,SAAStB,KAAKV,GAAQ,UAE5D,GAAIgyK,EAAOhyK,GACT,OAAOyJ,EAAIonK,QAAQhnJ,KAAK9pB,UAAUiC,SAAStB,KAAKV,GAAQ,QAE1D,GAAIo9D,EAAQp9D,GACV,OAAO8xK,EAAY9xK,EAEvB,CAEA,IA2CIw1B,EA3CAwxB,EAAO,GAAI9iD,GAAQ,EAAO+tK,EAAS,CAAC,IAAK,MAGzC/wK,EAAQlB,KACVkE,GAAQ,EACR+tK,EAAS,CAAC,IAAK,MAIbrqG,EAAW5nE,MAEbgnD,EAAO,cADChnD,EAAMkC,KAAO,KAAOlC,EAAMkC,KAAO,IACf,KAkB5B,OAdI6vK,EAAS/xK,KACXgnD,EAAO,IAAMxpB,OAAOz9B,UAAUiC,SAAStB,KAAKV,IAI1CgyK,EAAOhyK,KACTgnD,EAAO,IAAMn9B,KAAK9pB,UAAUitC,YAAYtsC,KAAKV,IAI3Co9D,EAAQp9D,KACVgnD,EAAO,IAAM8qH,EAAY9xK,IAGP,IAAhB5B,EAAKc,QAAkBgF,GAAyB,GAAhBlE,EAAMd,OAItCqyK,EAAe,EACbQ,EAAS/xK,GACJyJ,EAAIonK,QAAQrzI,OAAOz9B,UAAUiC,SAAStB,KAAKV,GAAQ,UAEnDyJ,EAAIonK,QAAQ,WAAY,YAInCpnK,EAAIgnF,KAAK7xF,KAAKoB,GAIZw1B,EADEtxB,EAsCN,SAAqBuF,EAAKzJ,EAAOuxK,EAAcK,EAAaxzK,GAE1D,IADA,IAAIo3B,EAAS,GACJx2B,EAAI,EAAGqI,EAAIrH,EAAMd,OAAQF,EAAIqI,IAAKrI,EACrC2D,EAAe3C,EAAO+vB,OAAO/wB,IAC/Bw2B,EAAO52B,KAAKszK,EAAezoK,EAAKzJ,EAAOuxK,EAAcK,EACjD7hJ,OAAO/wB,IAAI,IAEfw2B,EAAO52B,KAAK,IAShB,OANAR,EAAKgB,SAAQ,SAASC,GACfA,EAAIsgB,MAAM,UACb6V,EAAO52B,KAAKszK,EAAezoK,EAAKzJ,EAAOuxK,EAAcK,EACjDvyK,GAAK,GAEb,IACOm2B,CACT,CAtDa28I,CAAY1oK,EAAKzJ,EAAOuxK,EAAcK,EAAaxzK,GAEnDA,EAAKg2B,KAAI,SAAS/0B,GACzB,OAAO6yK,EAAezoK,EAAKzJ,EAAOuxK,EAAcK,EAAavyK,EAAK6E,EACpE,IAGFuF,EAAIgnF,KAAK3/C,MA6GX,SAA8Btb,EAAQwxB,EAAMirH,GAC1C,IACI/yK,EAASs2B,EAAO3tB,QAAO,SAAS+lE,EAAMylF,GAGxC,OADIA,EAAI/yJ,QAAQ,OAAS,GAAG8xK,EACrBxkG,EAAOylF,EAAI3zI,QAAQ,kBAAmB,IAAIxgB,OAAS,CAC5D,GAAG,GAEH,GAAIA,EAAS,GACX,OAAO+yK,EAAO,IACG,KAATjrH,EAAc,GAAKA,EAAO,OAC3B,IACAxxB,EAAOzH,KAAK,SACZ,IACAkkJ,EAAO,GAGhB,OAAOA,EAAO,GAAKjrH,EAAO,IAAMxxB,EAAOzH,KAAK,MAAQ,IAAMkkJ,EAAO,EACnE,CA7HSI,CAAqB78I,EAAQwxB,EAAMirH,IAxBjCA,EAAO,GAAKjrH,EAAOirH,EAAO,EAyBrC,CAsBA,SAASH,EAAY9xK,GACnB,MAAO,IAAM8D,MAAM/D,UAAUiC,SAAStB,KAAKV,GAAS,GACtD,CAuBA,SAASkyK,EAAezoK,EAAKzJ,EAAOuxK,EAAcK,EAAavyK,EAAK6E,GAClE,IAAIhC,EAAM8K,EAAK8kE,EAsCf,IArCAA,EAAOzzE,OAAOK,yBAAyBsB,EAAOX,IAAQ,CAAEW,MAAOA,EAAMX,KAC5D0S,IAEL/E,EADE8kE,EAAK73D,IACDxQ,EAAIonK,QAAQ,kBAAmB,WAE/BpnK,EAAIonK,QAAQ,WAAY,WAG5B/+F,EAAK73D,MACPjN,EAAMvD,EAAIonK,QAAQ,WAAY,YAG7BluK,EAAeivK,EAAavyK,KAC/B6C,EAAO,IAAM7C,EAAM,KAEhB2N,IACCvD,EAAIgnF,KAAKnwF,QAAQwxE,EAAK9xE,OAAS,GAE/BgN,EADEm+J,EAAOoG,GACHF,EAAY5nK,EAAKqoE,EAAK9xE,MAAO,MAE7BqxK,EAAY5nK,EAAKqoE,EAAK9xE,MAAOuxK,EAAe,IAE5CjxK,QAAQ,OAAS,IAErB0M,EADE9I,EACI8I,EAAI+T,MAAM,MAAMqT,KAAI,SAASuO,GACjC,MAAO,KAAOA,CAChB,IAAG5U,KAAK,MAAM9rB,MAAM,GAEd,KAAO+K,EAAI+T,MAAM,MAAMqT,KAAI,SAASuO,GACxC,MAAO,MAAQA,CACjB,IAAG5U,KAAK,OAIZ/gB,EAAMvD,EAAIonK,QAAQ,aAAc,YAGhC/oG,EAAY5lE,GAAO,CACrB,GAAIgC,GAAS7E,EAAIsgB,MAAM,SACrB,OAAO3S,GAET9K,EAAOie,KAAKC,UAAU,GAAK/gB,IAClBsgB,MAAM,iCACbzd,EAAOA,EAAKD,MAAM,GAAI,GACtBC,EAAOuH,EAAIonK,QAAQ3uK,EAAM,UAEzBA,EAAOA,EAAKwd,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,KAChCxd,EAAOuH,EAAIonK,QAAQ3uK,EAAM,UAE7B,CAEA,OAAOA,EAAO,KAAO8K,CACvB,CA4BA,SAAS9L,EAAQoxK,GACf,OAAOrxK,MAAMC,QAAQoxK,EACvB,CAGA,SAAStB,EAAUn4J,GACjB,MAAsB,mBAARA,CAChB,CAGA,SAASsyJ,EAAOtyJ,GACd,OAAe,OAARA,CACT,CAQA,SAAS64J,EAAS74J,GAChB,MAAsB,kBAARA,CAChB,CAGA,SAASwxJ,EAASxxJ,GAChB,MAAsB,kBAARA,CAChB,CAQA,SAASivD,EAAYjvD,GACnB,YAAe,IAARA,CACT,CAGA,SAASk5J,EAASzhE,GAChB,OAAOzoC,EAASyoC,IAA8B,oBAAvB5iB,EAAe4iB,EACxC,CAIA,SAASzoC,EAAShvD,GAChB,MAAsB,kBAARA,GAA4B,OAARA,CACpC,CAGA,SAASm5J,EAAO92J,GACd,OAAO2sD,EAAS3sD,IAA4B,kBAAtBwyE,EAAexyE,EACvC,CAIA,SAASkiD,EAAQptD,GACf,OAAO63D,EAAS73D,KACW,mBAAtB09E,EAAe19E,IAA2BA,aAAalM,MAC9D,CAIA,SAAS8jE,EAAW/uD,GAClB,MAAsB,oBAARA,CAChB,CAeA,SAAS60E,EAAe9rF,GACtB,OAAOvD,OAAO0B,UAAUiC,SAAStB,KAAKkB,EACxC,CAGA,SAAS2wK,EAAIxwK,GACX,OAAOA,EAAI,GAAK,IAAMA,EAAEC,SAAS,IAAMD,EAAEC,SAAS,GACpD,CAxbAjE,EAAQy0K,SAAW,SAASv4J,GAE1B,GADAA,EAAMA,EAAI/M,eACLujK,EAAOx2J,GACV,GAAIy2J,EAActuK,KAAK6X,GAAM,CAC3B,IAAIw4J,EAAMvzJ,QAAQuzJ,IAClBhC,EAAOx2J,GAAO,WACZ,IAAI0I,EAAM5kB,EAAQmkB,OAAOrjB,MAAMd,EAASkB,WACxCgJ,QAAQ+G,MAAM,YAAaiL,EAAKw4J,EAAK9vJ,EACvC,CACF,MACE8tJ,EAAOx2J,GAAO,WAAY,EAG9B,OAAOw2J,EAAOx2J,EAChB,EAmCAlc,EAAQ+lE,QAAUA,EAIlBA,EAAQitG,OAAS,CACf,KAAS,CAAC,EAAG,IACb,OAAW,CAAC,EAAG,IACf,UAAc,CAAC,EAAG,IAClB,QAAY,CAAC,EAAG,IAChB,MAAU,CAAC,GAAI,IACf,KAAS,CAAC,GAAI,IACd,MAAU,CAAC,GAAI,IACf,KAAS,CAAC,GAAI,IACd,KAAS,CAAC,GAAI,IACd,MAAU,CAAC,GAAI,IACf,QAAY,CAAC,GAAI,IACjB,IAAQ,CAAC,GAAI,IACb,OAAW,CAAC,GAAI,KAIlBjtG,EAAQqqF,OAAS,CACf,QAAW,OACX,OAAU,SACV,QAAW,SACX,UAAa,OACb,KAAQ,OACR,OAAU,QACV,KAAQ,UAER,OAAU,OA+QZpwJ,EAAQm7B,MAAQ,EAAhBn7B,OAKAA,EAAQmD,QAAUA,EAKlBnD,EAAQizK,UAAYA,EAKpBjzK,EAAQotK,OAASA,EAKjBptK,EAAQ20K,kBAHR,SAA2B75J,GACzB,OAAc,MAAPA,CACT,EAMA9a,EAAQ2zK,SAAWA,EAKnB3zK,EAAQssK,SAAWA,EAKnBtsK,EAAQ40K,SAHR,SAAkB95J,GAChB,MAAsB,kBAARA,CAChB,EAMA9a,EAAQ+pE,YAAcA,EAKtB/pE,EAAQg0K,SAAWA,EACnBh0K,EAAQm7B,MAAM64I,SAAWA,EAKzBh0K,EAAQ8pE,SAAWA,EAKnB9pE,EAAQi0K,OAASA,EACjBj0K,EAAQm7B,MAAM84I,OAASA,EAMvBj0K,EAAQq/D,QAAUA,EAClBr/D,EAAQm7B,MAAM05I,cAAgBx1G,EAK9Br/D,EAAQ6pE,WAAaA,EAUrB7pE,EAAQ80K,YARR,SAAqBh6J,GACnB,OAAe,OAARA,GACe,mBAARA,GACQ,kBAARA,GACQ,kBAARA,GACQ,kBAARA,GACQ,qBAARA,CAChB,EAGA9a,EAAQs7B,SAAW,EAAnBt7B,MAYA,IAAI+0K,EAAS,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,MAAO,MAAO,OA6C5B,SAASnwK,EAAehD,EAAKq5D,GAC3B,OAAO36D,OAAO0B,UAAU4C,eAAejC,KAAKf,EAAKq5D,EACnD,CAlCAj7D,EAAQslC,IAAM,WACZp7B,QAAQo7B,IAAI,UAXd,WACE,IAAInoB,EAAI,IAAI2O,KACRuvC,EAAO,CAACm5G,EAAIr3J,EAAE63J,YACNR,EAAIr3J,EAAE83J,cACNT,EAAIr3J,EAAE+3J,eAAellJ,KAAK,KACtC,MAAO,CAAC7S,EAAEwO,UAAWopJ,EAAO53J,EAAEg4J,YAAa95G,GAAMrrC,KAAK,IACxD,CAKyByiI,GAAazyJ,EAAQmkB,OAAOrjB,MAAMd,EAASkB,WACpE,EAgBAlB,EAAQo1K,SAAW,EAAnBp1K,OAEAA,EAAQmzK,QAAU,SAASkC,EAAQh2I,GAEjC,IAAKA,IAAQyqC,EAASzqC,GAAM,OAAOg2I,EAInC,IAFA,IAAIh1K,EAAOC,OAAOD,KAAKg/B,GACnBp+B,EAAIZ,EAAKc,OACNF,KACLo0K,EAAOh1K,EAAKY,IAAMo+B,EAAIh/B,EAAKY,IAE7B,OAAOo0K,CACT,EAMA,IAAIC,EAA6C,qBAAXzzK,OAAyBA,OAAO,8BAA2B4I,EA0DjG,SAAS8qK,EAAsBC,EAAQhuK,GAKrC,IAAKguK,EAAQ,CACX,IAAIC,EAAY,IAAI1vK,MAAM,2CAC1B0vK,EAAUD,OAASA,EACnBA,EAASC,CACX,CACA,OAAOjuK,EAAGguK,EACZ,CAnEAx1K,EAAQ01K,UAAY,SAAmBvsF,GACrC,GAAwB,oBAAbA,EACT,MAAM,IAAI3kF,UAAU,oDAEtB,GAAI8wK,GAA4BnsF,EAASmsF,GAA2B,CAClE,IAAIjoJ,EACJ,GAAkB,oBADdA,EAAK87D,EAASmsF,IAEhB,MAAM,IAAI9wK,UAAU,iEAKtB,OAHAlE,OAAOoB,eAAe2rB,EAAIioJ,EAA0B,CAClDrzK,MAAOorB,EAAIzsB,YAAY,EAAOuB,UAAU,EAAOD,cAAc,IAExDmrB,CACT,CAEA,SAASA,IAQP,IAPA,IAAIsoJ,EAAgBC,EAChBj6H,EAAU,IAAI9wC,SAAQ,SAAUC,EAAS8wC,GAC3C+5H,EAAiB7qK,EACjB8qK,EAAgBh6H,CAClB,IAEIV,EAAO,GACFj6C,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IACpCi6C,EAAKr6C,KAAKK,UAAUD,IAEtBi6C,EAAKr6C,MAAK,SAAU+C,EAAK3B,GACnB2B,EACFgyK,EAAchyK,GAEd+xK,EAAe1zK,EAEnB,IAEA,IACEknF,EAASroF,MAAM4a,KAAMw/B,EACvB,CAAE,MAAOt3C,GACPgyK,EAAchyK,EAChB,CAEA,OAAO+3C,CACT,CAOA,OALAr7C,OAAOyvI,eAAe1iH,EAAI/sB,OAAOioD,eAAe4gC,IAE5CmsF,GAA0Bh1K,OAAOoB,eAAe2rB,EAAIioJ,EAA0B,CAChFrzK,MAAOorB,EAAIzsB,YAAY,EAAOuB,UAAU,EAAOD,cAAc,IAExD5B,OAAOmB,iBACZ4rB,EACA7rB,EAA0B2nF,GAE9B,EAEAnpF,EAAQ01K,UAAUG,OAASP,EAiD3Bt1K,EAAQ81K,YAlCR,SAAqB3sF,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAI3kF,UAAU,oDAMtB,SAASuxK,IAEP,IADA,IAAI76H,EAAO,GACFj6C,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IACpCi6C,EAAKr6C,KAAKK,UAAUD,IAGtB,IAAI+0K,EAAU96H,EAAKnI,MACnB,GAAuB,oBAAZijI,EACT,MAAM,IAAIxxK,UAAU,8CAEtB,IAAIyV,EAAOyB,KACPlU,EAAK,WACP,OAAOwuK,EAAQl1K,MAAMmZ,EAAM/Y,UAC7B,EAGAioF,EAASroF,MAAM4a,KAAMw/B,GAClB5yC,MAAK,SAAS+9D,GAAOllD,QAAQ84B,SAASzyC,EAAGolE,KAAK,KAAM,KAAMvG,GAAM,IAC3D,SAAS4vG,GAAO90J,QAAQ84B,SAASs7H,EAAsB3oG,KAAK,KAAMqpG,EAAKzuK,GAAK,GACtF,CAKA,OAHAlH,OAAOyvI,eAAegmC,EAAez1K,OAAOioD,eAAe4gC,IAC3D7oF,OAAOmB,iBAAiBs0K,EACAv0K,EAA0B2nF,IAC3C4sF,CACT,gCCvsBA,IAAI10K,EAAUoS,EAAQ,OAClByiK,EAAuBziK,EAAQ,OAC/B29D,EAAW39D,EAAQ,OACnB4qE,EAAY5qE,EAAQ,OACpBggI,EAAOhgI,EAAQ,OAEf2qE,EAAYC,EAAU,6BACtBF,EAAiB1qE,EAAQ,MAARA,GAEjBg3D,EAA0B,qBAAf0rG,WAA6BnxG,EAAAA,EAASmxG,WACjDC,EAAcF,IAEdG,EAASh4F,EAAU,0BACnB91B,EAAiBjoD,OAAOioD,eAExB8oB,EAAWgN,EAAU,2BAA2B,IAAmF,SAAiBl4E,EAAOlE,GAC9J,IAAK,IAAIhB,EAAI,EAAGA,EAAIkF,EAAMhF,OAAQF,GAAK,EACtC,GAAIkF,EAAMlF,KAAOgB,EAChB,OAAOhB,EAGT,OAAQ,CACT,EAKI6tE,EAAQ,CAAEzN,UAAW,MAExBhgE,EAAQ+0K,EADLj4F,GAAkBs1D,GAAQlrF,EACR,SAAU+tH,GAC9B,IAAIzzK,EAAM,IAAI4nE,EAAE6rG,GAChB,GAAIz0K,OAAO21E,eAAe30E,EAAK,CAC9B,IAAI+kJ,EAAQr/F,EAAe1lD,GAEvBguC,EAAa4iG,EAAKmU,EAAO/lJ,OAAO21E,aACpC,IAAK3mC,EAAY,CAChB,IAAI0lI,EAAahuH,EAAeq/F,GAEhC/2G,EAAa4iG,EAAK8iC,EAAY10K,OAAO21E,YACtC,CAEA1I,EAAM,IAAMwnG,GAAcllG,EAASvgC,EAAW78B,IAC/C,CACD,EAEqB,SAAUsiK,GAC9B,IAAIzzK,EAAM,IAAI4nE,EAAE6rG,GACZjpJ,EAAKxqB,EAAIqB,OAASrB,EAAIqZ,IACtBmR,IAEHyhD,EAAM,IAAMwnG,GAAcllG,EAAS/jD,GAErC,GA2CDjZ,EAAOpU,QAAU,SAAyBiC,GACzC,IAAKA,GAA0B,kBAAVA,EAAsB,OAAO,EAClD,IAAKk8E,EAAgB,CACpB,IAAIxzE,EAAM0rK,EAAOj4F,EAAUn8E,GAAQ,GAAI,GACvC,OAAIovE,EAAS+kG,EAAazrK,IAAQ,EAC1BA,EAEI,WAARA,GA1BU,SAAsB1I,GACG,IAAImhE,GAAQ,EAcpD,OAbA/hE,EAEqBytE,GACuD,SAAUk/D,EAAQ7pI,GAC5F,IAAKi/D,EACJ,IAEC4qE,EAAO/rI,GACPmhE,EAAQizG,EAAOlyK,EAAM,EACtB,CAAE,MAAO8N,GAAS,CAEpB,IAEMmxD,CACR,CAcSozG,CAAUv0K,EAClB,CACA,OAAKwxI,EApDe,SAA2BxxI,GACF,IAAImhE,GAAQ,EAezD,OAdA/hE,EAEgFytE,GACJ,SAAUk/D,EAAQsoC,GAC5F,IAAKlzG,EACJ,IAEK,IAAM4qE,EAAO/rI,KAAWq0K,IAC3BlzG,EAAQizG,EAAOC,EAAY,GAE7B,CAAE,MAAOrkK,GAAS,CAEpB,IAEMmxD,CACR,CAoCQqzG,CAAex0K,GADF,IAErB,6CC9GA,IAAIy0K,EAAgBjjK,EAAQ,OAExBg3D,EAA0B,qBAAf0rG,WAA6BnxG,EAAAA,EAASmxG,WAGrD/hK,EAAOpU,QAAU,WAEhB,IADA,IAA2Die,EAAM,GACxDhd,EAAI,EAAGA,EAAIy1K,EAAcv1K,OAAQF,IACN,oBAAxBwpE,EAAEisG,EAAcz1K,MAE1Bgd,EAAIA,EAAI9c,QAAUu1K,EAAcz1K,IAGlC,OAAOgd,CACR,g9mwGCfI04J,EAA2B,CAAC,EAGhC,SAAS7oC,EAAoBC,GAE5B,IAAI6oC,EAAeD,EAAyB5oC,GAC5C,QAAqBtjI,IAAjBmsK,EACH,OAAOA,EAAa52K,QAGrB,IAAIoU,EAASuiK,EAAyB5oC,GAAY,CACjDv+H,GAAIu+H,EACJtqG,QAAQ,EACRzjC,QAAS,CAAC,GAUX,OANA62K,EAAoB9oC,GAAUprI,KAAKyR,EAAOpU,QAASoU,EAAQA,EAAOpU,QAAS8tI,GAG3E15H,EAAOqvB,QAAS,EAGTrvB,EAAOpU,OACf,CAGA8tI,EAAoBnrE,EAAIk0G,EC3BxB/oC,EAAoB9pI,EAAKoQ,IACxB,IAAI45H,EAAS55H,GAAUA,EAAOzP,WAC7B,IAAOyP,EAAiB,QACxB,IAAM,EAEP,OADA05H,EAAoB3wH,EAAE6wH,EAAQ,CAAEnxH,EAAGmxH,IAC5BA,CAAM,QCNd,IACI8oC,EADAp9F,EAAWp5E,OAAOioD,eAAkB3mD,GAAStB,OAAOioD,eAAe3mD,GAASA,GAASA,EAAa,UAQtGksI,EAAoB9wH,EAAI,SAAS/a,EAAOu4B,GAEvC,GADU,EAAPA,IAAUv4B,EAAQyZ,KAAKzZ,IAChB,EAAPu4B,EAAU,OAAOv4B,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPu4B,GAAav4B,EAAM0C,WAAY,OAAO1C,EAC1C,GAAW,GAAPu4B,GAAoC,oBAAfv4B,EAAMqG,KAAqB,OAAOrG,CAC5D,CACA,IAAI27I,EAAKt9I,OAAOwQ,OAAO,MACvBg9H,EAAoBvkI,EAAEq0I,GACtB,IAAItI,EAAM,CAAC,EACXwhC,EAAiBA,GAAkB,CAAC,KAAMp9F,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAI7xE,EAAiB,EAAP2yB,GAAYv4B,EAAyB,iBAAX4F,KAAyBivK,EAAev0K,QAAQsF,GAAUA,EAAU6xE,EAAS7xE,GACxHvH,OAAO68E,oBAAoBt1E,GAASxG,SAASC,GAASg0I,EAAIh0I,GAAO,IAAOW,EAAMX,KAI/E,OAFAg0I,EAAa,QAAI,IAAM,EACvBxH,EAAoB3wH,EAAEygI,EAAItI,GACnBsI,CACR,MCxBA9P,EAAoB3wH,EAAI,CAACnd,EAAS+2K,KACjC,IAAI,IAAIz1K,KAAOy1K,EACXjpC,EAAoBjqI,EAAEkzK,EAAYz1K,KAASwsI,EAAoBjqI,EAAE7D,EAASsB,IAC5EhB,OAAOoB,eAAe1B,EAASsB,EAAK,CAAEV,YAAY,EAAMoT,IAAK+iK,EAAWz1K,IAE1E,ECNDwsI,EAAoB1uH,EAAI,CAAC,EAGzB0uH,EAAoB77H,EAAK+kK,GACjBnsK,QAAQ0oE,IAAIjzE,OAAOD,KAAKytI,EAAoB1uH,GAAGtV,QAAO,CAACmtK,EAAU31K,KACvEwsI,EAAoB1uH,EAAE9d,GAAK01K,EAASC,GAC7BA,IACL,KCNJnpC,EAAoB3tH,EAAK62J,GAEjB,cAAgB,CAAC,GAAK,oBAAoB,IAAM,mBAAmB,IAAM,yBAAyB,IAAM,oBAAoB,IAAM,qBAAqB,IAAM,qBAAqB,IAAM,qBAAqB,IAAM,wBAAwB,IAAM,qBAAqB,IAAM,sBAAsB,IAAM,wBAAwB,IAAM,iBAAiB,IAAM,sBAAsB,IAAM,yBAAyBA,IAAYA,GAAW,IAAM,CAAC,GAAK,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,YAAYA,GAAW,YCFlsBlpC,EAAoBopC,SAAYF,IAEf,ECHjBlpC,EAAoBrjE,EAAI,WACvB,GAA0B,kBAAf0rG,WAAyB,OAAOA,WAC3C,IACC,OAAOz6J,MAAQ,IAAI48D,SAAS,cAAb,EAChB,CAAE,MAAOrmE,GACR,GAAsB,kBAAXd,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxB28H,EAAoBjqI,EAAI,CAACjC,EAAKq5D,IAAU36D,OAAO0B,UAAU4C,eAAejC,KAAKf,EAAKq5D,SCAlF,IAAIk8G,EAAa,CAAC,EACdC,EAAoB,WAExBtpC,EAAoBxkI,EAAI,CAAC+B,EAAK1H,EAAMrC,EAAK01K,KACxC,GAAGG,EAAW9rK,GAAQ8rK,EAAW9rK,GAAKxK,KAAK8C,OAA3C,CACA,IAAIyoF,EAAQirF,EACZ,QAAW5sK,IAARnJ,EAEF,IADA,IAAIg2K,EAAUnqI,SAASwwB,qBAAqB,UACpC18D,EAAI,EAAGA,EAAIq2K,EAAQn2K,OAAQF,IAAK,CACvC,IAAI8b,EAAIu6J,EAAQr2K,GAChB,GAAG8b,EAAE4hD,aAAa,QAAUtzD,GAAO0R,EAAE4hD,aAAa,iBAAmBy4G,EAAoB91K,EAAK,CAAE8qF,EAASrvE,EAAG,KAAO,CACpH,CAEGqvE,IACHirF,GAAa,GACbjrF,EAASj/C,SAASzgC,cAAc,WAEzB8/E,QAAU,QACjBJ,EAAOvlE,QAAU,IACbinH,EAAoBypC,IACvBnrF,EAAOO,aAAa,QAASmhD,EAAoBypC,IAElDnrF,EAAOO,aAAa,eAAgByqF,EAAoB91K,GAExD8qF,EAAO1iB,IAAMr+D,GAEd8rK,EAAW9rK,GAAO,CAAC1H,GACnB,IAAI6zK,EAAmB,CAAC3nG,EAAMtoE,KAE7B6kF,EAAO9xB,QAAU8xB,EAAO7xB,OAAS,KACjCi/C,aAAa3yF,GACb,IAAI4wJ,EAAUN,EAAW9rK,GAIzB,UAHO8rK,EAAW9rK,GAClB+gF,EAAOxuB,YAAcwuB,EAAOxuB,WAAW4/B,YAAYpR,GACnDqrF,GAAWA,EAAQp2K,SAASgsB,GAAQA,EAAG9lB,KACpCsoE,EAAM,OAAOA,EAAKtoE,EAAM,EAExBsf,EAAUsd,WAAWqzI,EAAiB5qG,KAAK,UAAMniE,EAAW,CAAE4E,KAAM,UAAWrO,OAAQorF,IAAW,MACtGA,EAAO9xB,QAAUk9G,EAAiB5qG,KAAK,KAAMwf,EAAO9xB,SACpD8xB,EAAO7xB,OAASi9G,EAAiB5qG,KAAK,KAAMwf,EAAO7xB,QACnD88G,GAAclqI,SAASo/C,KAAKtW,YAAYmW,EApCkB,CAoCX,MCvChD0hD,EAAoBvkI,EAAKvJ,IACH,qBAAX6B,QAA0BA,OAAO21E,aAC1Cl3E,OAAOoB,eAAe1B,EAAS6B,OAAO21E,YAAa,CAAEv1E,MAAO,WAE7D3B,OAAOoB,eAAe1B,EAAS,aAAc,CAAEiC,OAAO,GAAO,ECL9D6rI,EAAoB4pC,IAAOtjK,IAC1BA,EAAOujK,MAAQ,GACVvjK,EAAOrI,WAAUqI,EAAOrI,SAAW,IACjCqI,GCHR05H,EAAoB/4D,EAAI,UCKxB,IAAI6iG,EAAkB,CACrB,IAAK,GAGN9pC,EAAoB1uH,EAAEikD,EAAI,CAAC2zG,EAASC,KAElC,IAAIY,EAAqB/pC,EAAoBjqI,EAAE+zK,EAAiBZ,GAAWY,EAAgBZ,QAAWvsK,EACtG,GAA0B,IAAvBotK,EAGF,GAAGA,EACFZ,EAASp2K,KAAKg3K,EAAmB,QAC3B,CAGL,IAAIl8H,EAAU,IAAI9wC,SAAQ,CAACC,EAAS8wC,IAAYi8H,EAAqBD,EAAgBZ,GAAW,CAAClsK,EAAS8wC,KAC1Gq7H,EAASp2K,KAAKg3K,EAAmB,GAAKl8H,GAGtC,IAAItwC,EAAMyiI,EAAoB/4D,EAAI+4D,EAAoB3tH,EAAE62J,GAEpD/lK,EAAQ,IAAIlL,MAgBhB+nI,EAAoBxkI,EAAE+B,GAfF9D,IACnB,GAAGumI,EAAoBjqI,EAAE+zK,EAAiBZ,KAEf,KAD1Ba,EAAqBD,EAAgBZ,MACRY,EAAgBZ,QAAWvsK,GACrDotK,GAAoB,CACtB,IAAIC,EAAYvwK,IAAyB,SAAfA,EAAM8H,KAAkB,UAAY9H,EAAM8H,MAChE0oK,EAAUxwK,GAASA,EAAMvG,QAAUuG,EAAMvG,OAAO0oE,IACpDz4D,EAAM6T,QAAU,iBAAmBkyJ,EAAU,cAAgBc,EAAY,KAAOC,EAAU,IAC1F9mK,EAAM9M,KAAO,iBACb8M,EAAM5B,KAAOyoK,EACb7mK,EAAMmgB,QAAU2mJ,EAChBF,EAAmB,GAAG5mK,EACvB,CACD,GAEwC,SAAW+lK,EAASA,EAE/D,CACD,EAcF,IAAIgB,EAAuB,CAACC,EAA4Bh9J,KACvD,IAKI8yH,EAAUipC,EALVkB,EAAWj9J,EAAK,GAChBk9J,EAAcl9J,EAAK,GACnB2oE,EAAU3oE,EAAK,GAGIha,EAAI,EAC3B,GAAGi3K,EAAShuC,MAAM16H,GAAgC,IAAxBooK,EAAgBpoK,KAAa,CACtD,IAAIu+H,KAAYoqC,EACZrqC,EAAoBjqI,EAAEs0K,EAAapqC,KACrCD,EAAoBnrE,EAAEorE,GAAYoqC,EAAYpqC,IAGhD,GAAGnqD,EAAsBA,EAAQkqD,EAClC,CAEA,IADGmqC,GAA4BA,EAA2Bh9J,GACrDha,EAAIi3K,EAAS/2K,OAAQF,IACzB+1K,EAAUkB,EAASj3K,GAChB6sI,EAAoBjqI,EAAE+zK,EAAiBZ,IAAYY,EAAgBZ,IACrEY,EAAgBZ,GAAS,KAE1BY,EAAgBZ,GAAW,CAC5B,EAIGoB,EAAqBn+J,KAA0B,oBAAIA,KAA0B,qBAAK,GACtFm+J,EAAmB/2K,QAAQ22K,EAAqBprG,KAAK,KAAM,IAC3DwrG,EAAmBv3K,KAAOm3K,EAAqBprG,KAAK,KAAMwrG,EAAmBv3K,KAAK+rE,KAAKwrG,wHChF3EjlI,8RAAZ,SAAYA,GAQVA,EAAA,UAOAA,EAAA,YAMAA,EAAA,iBACD,CAtBD,CAAYA,IAAAA,EAsBX,KAqKD,MAAMklI,EAAoB,WAySV,SAAAC,EAAUr2K,EAAY6iB,GACpC,IAAc,IAAV7iB,GAA6B,OAAVA,GAAmC,qBAAVA,EAC9C,MAAM,IAAI8D,MAAM+e,EAEpB,CAEgB,SAAAokB,EAAQqvI,EAAWzzJ,GACjC,IAAKyzJ,EAAM,CAEc,qBAAZruK,SAAyBA,QAAQC,KAAK2a,GAEjD,IAME,MAAM,IAAI/e,MAAM+e,EAEjB,CAAC,MAAO7S,GAAI,CACd,CACH,CASA,SAASumK,EAAgB5yK,EAAoB0qB,GAC3C,MAAO,CACLmoJ,IAAK7yK,EAAS2W,MACdjb,IAAKsE,EAAStE,IACdu5D,IAAKvqC,EAET,CAKM,SAAUooJ,EACd7wK,EACA+wH,EACAr8G,EACAjb,GAcA,YAfA,IAAAib,IAAAA,EAAa,MAGDo8J,EAAA,CACVpyI,SAA6B,kBAAZ1+B,EAAuBA,EAAUA,EAAQ0+B,SAC1DviB,OAAQ,GACRrI,KAAM,IACY,kBAAPi9G,EAAkBggD,EAAUhgD,GAAMA,EAAE,CAC/Cr8G,QAKAjb,IAAMs3H,GAAOA,EAAgBt3H,KAAQA,GAjChCyc,KAAKw+C,SAASt4D,SAAS,IAAIu6B,OAAO,EAAG,IAoC9C,CAKgB,SAAAq6I,EAAUhtK,GAIV,IAJW,SACzB06B,EAAW,IAAG,OACdviB,EAAS,GAAE,KACXrI,EAAO,IACO9P,EAKd,OAJImY,GAAqB,MAAXA,IACZuiB,GAAiC,MAArBviB,EAAO9U,OAAO,GAAa8U,EAAS,IAAMA,GACpDrI,GAAiB,MAATA,IACV4qB,GAA+B,MAAnB5qB,EAAKzM,OAAO,GAAayM,EAAO,IAAMA,GAC7C4qB,CACT,CAKM,SAAUqyI,EAAUx1J,GACxB,IAAI01J,EAA4B,CAAC,EAEjC,GAAI11J,EAAM,CACR,IAAI21J,EAAY31J,EAAK7gB,QAAQ,KACzBw2K,GAAa,IACfD,EAAWn9J,KAAOyH,EAAKob,OAAOu6I,GAC9B31J,EAAOA,EAAKob,OAAO,EAAGu6I,IAGxB,IAAI15B,EAAcj8H,EAAK7gB,QAAQ,KAC3B88I,GAAe,IACjBy5B,EAAW90J,OAASZ,EAAKob,OAAO6gH,GAChCj8H,EAAOA,EAAKob,OAAO,EAAG6gH,IAGpBj8H,IACF01J,EAAWvyI,SAAWnjB,EAEzB,CAED,OAAO01J,CACT,CASA,SAASE,EACPC,EACAC,EACAC,EACAxvK,QAAA,IAAAA,IAAAA,EAA6B,CAAC,GAE9B,IAAI,OAAEwH,EAASg8B,SAASunE,YAAY,SAAE0kE,GAAW,GAAUzvK,EACvD0vK,EAAgBloK,EAAOkmI,QACvBhyB,EAASlyE,EAAOmmI,IAChBn3H,EAA4B,KAE5B7xB,EAAQg8H,IASZ,SAASA,IAEP,OADY+sB,EAAc98J,OAAS,CAAEs+C,IAAK,OAC7BA,GACf,CAEA,SAAS0+G,IACPl0D,EAASlyE,EAAOmmI,IAChB,IAAIE,EAAYltB,IACZznH,EAAqB,MAAb20I,EAAoB,KAAOA,EAAYlpJ,EACnDA,EAAQkpJ,EACJr3H,GACFA,EAAS,CAAEkjE,SAAQz/G,SAAUyxI,EAAQzxI,SAAUi/B,SAEnD,CA+CA,SAAS40I,EAAU7gD,GAIjB,IAAI3vE,EACyB,SAA3B93C,EAAOvL,SAASyvK,OACZlkK,EAAOvL,SAASyvK,OAChBlkK,EAAOvL,SAASuhC,KAElBA,EAAqB,kBAAPyxF,EAAkBA,EAAKigD,EAAWjgD,GASpD,OALAzxF,EAAOA,EAAKxlB,QAAQ,KAAM,OAC1B22J,EACErvH,EACsE,sEAAA9hB,GAEjE,IAAIsnC,IAAItnC,EAAM8hB,EACvB,CApFa,MAAT34B,IACFA,EAAQ,EACR+oJ,EAAcK,aAAYf,EAAM,GAAAU,EAAc98J,MAAO,CAAAs+C,IAAKvqC,IAAS,KAoFrE,IAAI+mH,EAAmB,CACrB,UAAIhyB,GACF,OAAOA,GAET,YAAIz/G,GACF,OAAOqzK,EAAY9nK,EAAQkoK,IAE7BpvB,MAAAA,CAAO58H,GACL,GAAI80B,EACF,MAAM,IAAIp8C,MAAM,8CAKlB,OAHAoL,EAAOo2B,iBAAiB8wI,EAAmBkB,GAC3Cp3H,EAAW90B,EAEJ,KACLlc,EAAO8xF,oBAAoBo1E,EAAmBkB,GAC9Cp3H,EAAW,IAAI,GAGnB+2H,WAAWtgD,GACFsgD,EAAW/nK,EAAQynH,GAE5B6gD,YACAE,cAAAA,CAAe/gD,GAEb,IAAIvtH,EAAMouK,EAAU7gD,GACpB,MAAO,CACLryF,SAAUl7B,EAAIk7B,SACdviB,OAAQ3Y,EAAI2Y,OACZrI,KAAMtQ,EAAIsQ,OAGd9a,KAlGF,SAAc+3H,EAAQr8G,GACpB8oG,EAASlyE,EAAOymI,KAChB,IAAIh0K,EAAW8yK,EAAerhC,EAAQzxI,SAAUgzH,EAAIr8G,GAChD48J,GAAkBA,EAAiBvzK,EAAUgzH,GAEjDtoG,EAAQg8H,IAAa,EACrB,IAAIutB,EAAerB,EAAgB5yK,EAAU0qB,GACzCjlB,EAAMgsI,EAAQ6hC,WAAWtzK,GAG7B,IACEyzK,EAAcS,UAAUD,EAAc,GAAIxuK,GAC1C,MAAO4F,GAKP,GAAIA,aAAiB8oK,cAA+B,mBAAf9oK,EAAM9M,KACzC,MAAM8M,EAIRE,EAAOvL,SAASgtC,OAAOvnC,EACxB,CAEG+tK,GAAYj3H,GACdA,EAAS,CAAEkjE,SAAQz/G,SAAUyxI,EAAQzxI,SAAUi/B,MAAO,GAE1D,EAuEEljB,QArEF,SAAiBi3G,EAAQr8G,GACvB8oG,EAASlyE,EAAO6mI,QAChB,IAAIp0K,EAAW8yK,EAAerhC,EAAQzxI,SAAUgzH,EAAIr8G,GAChD48J,GAAkBA,EAAiBvzK,EAAUgzH,GAEjDtoG,EAAQg8H,IACR,IAAIutB,EAAerB,EAAgB5yK,EAAU0qB,GACzCjlB,EAAMgsI,EAAQ6hC,WAAWtzK,GAC7ByzK,EAAcK,aAAaG,EAAc,GAAIxuK,GAEzC+tK,GAAYj3H,GACdA,EAAS,CAAEkjE,SAAQz/G,SAAUyxI,EAAQzxI,SAAUi/B,MAAO,GAE1D,EAyDEo1I,GAAGj2K,GACMq1K,EAAcY,GAAGj2K,IAI5B,OAAOqzI,CACT,CC7tBA,IAAY6iC,GAAZ,SAAYA,GACVA,EAAA,YACAA,EAAA,oBACAA,EAAA,oBACAA,EAAA,aACD,CALD,CAAYA,IAAAA,EAKX,KAyOiC,IAAIp/F,IAAuB,CAC3D,OACA,gBACA,OACA,KACA,QACA,aAoNI,SAAUq/F,EAGdC,EACAC,EACAC,QAAQ,IAARA,IAAAA,EAAW,KAEX,IAGI/zI,EAAWg0I,GAFU,kBAAhBF,EAA2BzB,EAAUyB,GAAeA,GAEvB9zI,UAAY,IAAK+zI,GAEvD,GAAgB,MAAZ/zI,EACF,OAAO,KAGT,IAAIi0I,EAAWC,EAAcL,IAgM/B,SAA2BI,GACzBA,EAAStmI,MAAK,CAACr3B,EAAGC,IAChBD,EAAE69J,QAAU59J,EAAE49J,MACV59J,EAAE49J,MAAQ79J,EAAE69J,MAyCpB,SAAwB79J,EAAaC,GACnC,IAAI69J,EACF99J,EAAE1b,SAAW2b,EAAE3b,QAAU0b,EAAE3Y,MAAM,GAAI,GAAGuF,OAAM,CAACzF,EAAG/C,IAAM+C,IAAM8Y,EAAE7b,KAElE,OAAO05K,EAKH99J,EAAEA,EAAE1b,OAAS,GAAK2b,EAAEA,EAAE3b,OAAS,GAG/B,CACN,CArDQy5K,CACE/9J,EAAEg+J,WAAWxkJ,KAAKkrE,GAASA,EAAKu5E,gBAChCh+J,EAAE+9J,WAAWxkJ,KAAKkrE,GAASA,EAAKu5E,kBAG1C,CAxMEC,CAAkBP,GAElB,IAAIhmH,EAAU,KACd,IAAK,IAAIvzD,EAAI,EAAc,MAAXuzD,GAAmBvzD,EAAIu5K,EAASr5K,SAAUF,EAAG,CAO3D,IAAI+5K,EAAUC,EAAW10I,GACzBiuB,EAAU0mH,EAA0CV,EAASv5K,GAAI+5K,EAClE,CAED,OAAOxmH,CACT,CAyCA,SAASimH,EAGPL,EACAI,EACAW,EACAC,QAF2C,IAA3CZ,IAAAA,EAA2C,SAC3C,IAAAW,IAAAA,EAA4C,SAClC,IAAVC,IAAAA,EAAa,IAEb,IAAIC,EAAeA,CACjBC,EACAhrJ,EACAirJ,KAEA,IAAIh6E,EAAmC,CACrCg6E,kBACmB9wK,IAAjB8wK,EAA6BD,EAAMl4J,MAAQ,GAAKm4J,EAClDC,eAAuC,IAAxBF,EAAME,cACrBV,cAAexqJ,EACfgrJ,SAGE/5E,EAAKg6E,aAAa/kI,WAAW,OAC/B8hI,EACE/2E,EAAKg6E,aAAa/kI,WAAW4kI,GAC7B,wBAAwB75E,EAAKg6E,aAA7B,wBACMH,EADN,4GAKF75E,EAAKg6E,aAAeh6E,EAAKg6E,aAAar3K,MAAMk3K,EAAWj6K,SAGzD,IAAIiiB,EAAOq4J,EAAU,CAACL,EAAY75E,EAAKg6E,eACnCV,EAAaM,EAAY/wK,OAAOm3F,GAKhC+5E,EAAMvvK,UAAYuvK,EAAMvvK,SAAS5K,OAAS,IAC5Cm3K,GAGkB,IAAhBgD,EAAMhrJ,MACN,4FACuClN,EAAI,MAG7Cq3J,EAAca,EAAMvvK,SAAUyuK,EAAUK,EAAYz3J,KAKpC,MAAdk4J,EAAMl4J,MAAiBk4J,EAAMhrJ,QAIjCkqJ,EAAS35K,KAAK,CACZuiB,OACAs3J,MAAOgB,EAAat4J,EAAMk4J,EAAMhrJ,OAChCuqJ,cACA,EAaJ,OAXAT,EAAO/4K,SAAQ,CAACi6K,EAAOhrJ,KAAS,IAAAqrJ,EAE9B,GAAmB,KAAfL,EAAMl4J,MAA0B,OAAXu4J,EAACL,EAAMl4J,OAANu4J,EAAY1xK,SAAS,KAG7C,IAAK,IAAI2xK,KAAYC,EAAwBP,EAAMl4J,MACjDi4J,EAAaC,EAAOhrJ,EAAOsrJ,QAH7BP,EAAaC,EAAOhrJ,EAKrB,IAGIkqJ,CACT,CAgBA,SAASqB,EAAwBz4J,GAC/B,IAAI04J,EAAW14J,EAAKJ,MAAM,KAC1B,GAAwB,IAApB84J,EAAS36K,OAAc,MAAO,GAElC,IAAKi7E,KAAUhrC,GAAQ0qI,EAGnBC,EAAa3/F,EAAM3lC,SAAS,KAE5B/kB,EAAW0qD,EAAMz6D,QAAQ,MAAO,IAEpC,GAAoB,IAAhByvB,EAAKjwC,OAGP,OAAO46K,EAAa,CAACrqJ,EAAU,IAAM,CAACA,GAGxC,IAAIsqJ,EAAeH,EAAwBzqI,EAAKphB,KAAK,MAEjDjlB,EAAmB,GAqBvB,OAZAA,EAAOlK,QACFm7K,EAAa3lJ,KAAK4lJ,GACP,KAAZA,EAAiBvqJ,EAAW,CAACA,EAAUuqJ,GAASjsJ,KAAK,QAKrD+rJ,GACFhxK,EAAOlK,QAAQm7K,GAIVjxK,EAAOsrB,KAAKulJ,GACjBx4J,EAAKozB,WAAW,MAAqB,KAAbolI,EAAkB,IAAMA,GAEpD,CAaA,MAAMM,EAAU,YACVC,EAAsB,EACtBC,EAAkB,EAClBC,EAAoB,EACpBC,EAAqB,GACrBC,GAAgB,EAChBC,EAAWz/J,GAAoB,MAANA,EAE/B,SAAS2+J,EAAat4J,EAAckN,GAClC,IAAIwrJ,EAAW14J,EAAKJ,MAAM,KACtBy5J,EAAeX,EAAS36K,OAS5B,OARI26K,EAAS5xC,KAAKsyC,KAChBC,GAAgBF,GAGdjsJ,IACFmsJ,GAAgBL,GAGXN,EACJr7K,QAAQsc,IAAOy/J,EAAQz/J,KACvBjT,QACC,CAAC4wK,EAAOgC,IACNhC,GACCwB,EAAQ73K,KAAKq4K,GACVP,EACY,KAAZO,EACAL,EACAC,IACNG,EAEN,CAiBA,SAASvB,EAIPyB,EACAp2I,GAEA,IAAI,WAAEs0I,GAAe8B,EAEjBC,EAAgB,CAAC,EACjBC,EAAkB,IAClBroH,EAA2D,GAC/D,IAAK,IAAIvzD,EAAI,EAAGA,EAAI45K,EAAW15K,SAAUF,EAAG,CAC1C,IAAIsgG,EAAOs5E,EAAW55K,GAClB05C,EAAM15C,IAAM45K,EAAW15K,OAAS,EAChC27K,EACkB,MAApBD,EACIt2I,EACAA,EAASriC,MAAM24K,EAAgB17K,SAAW,IAC5CygB,EAAQm7J,EACV,CAAE35J,KAAMm+E,EAAKg6E,aAAcC,cAAej6E,EAAKi6E,cAAe7gI,OAC9DmiI,GAGF,IAAKl7J,EAAO,OAAO,KAEnBthB,OAAOsyC,OAAOgqI,EAAeh7J,EAAMkL,QAEnC,IAAIwuJ,EAAQ/5E,EAAK+5E,MAEjB9mH,EAAQ3zD,KAAK,CAEXisB,OAAQ8vJ,EACRr2I,SAAUk1I,EAAU,CAACoB,EAAiBj7J,EAAM2kB,WAC5Cy2I,aAAcC,EACZxB,EAAU,CAACoB,EAAiBj7J,EAAMo7J,gBAEpC1B,UAGyB,MAAvB15J,EAAMo7J,eACRH,EAAkBpB,EAAU,CAACoB,EAAiBj7J,EAAMo7J,eAEvD,CAED,OAAOxoH,CACT,CAiHgB,SAAAuoH,EAIdhxI,EACAxF,GAEuB,kBAAZwF,IACTA,EAAU,CAAE3oB,KAAM2oB,EAASyvI,eAAe,EAAO7gI,KAAK,IAGxD,IAAKwB,EAAS+gI,GA4ChB,SACE95J,EACAo4J,EACA7gI,QADa,IAAb6gI,IAAAA,GAAgB,QACb,IAAH7gI,IAAAA,GAAM,GAENzR,EACW,MAAT9lB,IAAiBA,EAAKqzB,SAAS,MAAQrzB,EAAKqzB,SAAS,MACrD,eAAerzB,EAAf,oCACMA,EAAKzB,QAAQ,MAAO,MAD1B,qIAGsCyB,EAAKzB,QAAQ,MAAO,MAAK,MAGjE,IAAImL,EAA8B,GAC9BqwJ,EACF,IACA/5J,EACGzB,QAAQ,UAAW,IACnBA,QAAQ,OAAQ,KAChBA,QAAQ,qBAAsB,QAC9BA,QACC,qBACA,CAACuO,EAAW0f,EAAmBmsI,KAC7BjvJ,EAAOjsB,KAAK,CAAE+uC,YAAWmsI,WAA0B,MAAdA,IAC9BA,EAAa,eAAiB,gBAIzC34J,EAAKqzB,SAAS,MAChB3pB,EAAOjsB,KAAK,CAAE+uC,UAAW,MACzButI,GACW,MAAT/5J,GAAyB,OAATA,EACZ,QACA,qBACGu3B,EAETwiI,GAAgB,QACE,KAAT/5J,GAAwB,MAATA,IAQxB+5J,GAAgB,iBAKlB,IAAIhhI,EAAU,IAAI1c,OAAO09I,EAAc3B,OAAgB/wK,EAAY,KAEnE,MAAO,CAAC0xC,EAASrvB,EACnB,CAjGkCswJ,CAC9BrxI,EAAQ3oB,KACR2oB,EAAQyvI,cACRzvI,EAAQ4O,KAGN/4B,EAAQ2kB,EAAS3kB,MAAMu6B,GAC3B,IAAKv6B,EAAO,OAAO,KAEnB,IAAIi7J,EAAkBj7J,EAAM,GACxBo7J,EAAeH,EAAgBl7J,QAAQ,UAAW,MAClD07J,EAAgBz7J,EAAM1d,MAAM,GAC5B4oB,EAAiBowJ,EAAepzK,QAClC,CAACi8I,EAAIl6I,EAA6BykB,KAAS,IAApC,UAAEsf,EAAS,WAAEmsI,GAAYlwK,EAG9B,GAAkB,MAAd+jC,EAAmB,CACrB,IAAI0tI,EAAaD,EAAc/sJ,IAAU,GACzC0sJ,EAAeH,EACZ34K,MAAM,EAAG24K,EAAgB17K,OAASm8K,EAAWn8K,QAC7CwgB,QAAQ,UAAW,KACvB,CAED,MAAM1f,EAAQo7K,EAAc/sJ,GAM5B,OAJEy1H,EAAKn2G,GADHmsI,IAAe95K,OACCwI,GAECxI,GAAS,IAAI0f,QAAQ,OAAQ,KAE3CokI,CAAI,GAEb,CAAC,GAGH,MAAO,CACLj5H,SACAyZ,SAAUs2I,EACVG,eACAjxI,UAEJ,CA2DA,SAASkvI,EAAWh5K,GAClB,IACE,OAAOA,EACJ+gB,MAAM,KACNqT,KAAKme,GAAM0hB,mBAAmB1hB,GAAG7yB,QAAQ,MAAO,SAChDqO,KAAK,KACR,MAAO/e,GAQP,OAPAi4B,GACE,EACA,iBAAiBjnC,EAAjB,oHAEegP,EAAK,MAGfhP,CACR,CACH,CAKgB,SAAAs4K,EACdh0I,EACA+zI,GAEA,GAAiB,MAAbA,EAAkB,OAAO/zI,EAE7B,IAAKA,EAAS/rB,cAAcg8B,WAAW8jI,EAAS9/J,eAC9C,OAAO,KAKT,IAAI+iK,EAAajD,EAAS7jI,SAAS,KAC/B6jI,EAASn5K,OAAS,EAClBm5K,EAASn5K,OACTq8K,EAAWj3I,EAASr3B,OAAOquK,GAC/B,OAAIC,GAAyB,MAAbA,EAEP,KAGFj3I,EAASriC,MAAMq5K,IAAe,GACvC,CA2CA,SAASE,EACP7kE,EACAlnD,EACA4gG,EACAlvI,GAEA,MACE,qBAAqBw1F,EAArB,2CACQlnD,EAAK,YAAatvC,KAAKC,UAC7Be,GAFF,yCAIQkvI,EAJR,2HAOJ,CAyBM,SAAUorB,EAEdlpH,GACA,OAAOA,EAAQ/zD,QACb,CAACmhB,EAAO0O,IACI,IAAVA,GAAgB1O,EAAM05J,MAAMl4J,MAAQxB,EAAM05J,MAAMl4J,KAAKjiB,OAAS,GAEpE,CAIgB,SAAAw8K,EAEdnpH,EAAcopH,GACd,IAAIC,EAAcH,EAA2BlpH,GAK7C,OAAIopH,EACKC,EAAYxnJ,KAAI,CAACzU,EAAOi5C,IAC7BA,IAAQrG,EAAQrzD,OAAS,EAAIygB,EAAM2kB,SAAW3kB,EAAMo7J,eAIjDa,EAAYxnJ,KAAKzU,GAAUA,EAAMo7J,cAC1C,CAKM,SAAUc,EACdC,EACAC,EACAC,EACAC,GAEA,IAAItlD,OAFU,IAAdslD,IAAAA,GAAiB,GAGI,kBAAVH,EACTnlD,EAAKggD,EAAUmF,IAEfnlD,EAAE+/C,EAAQ,GAAAoF,GAEVzF,GACG1/C,EAAGryF,WAAaqyF,EAAGryF,SAASt8B,SAAS,KACtCwzK,EAAoB,IAAK,WAAY,SAAU7kD,IAEjD0/C,GACG1/C,EAAGryF,WAAaqyF,EAAGryF,SAASt8B,SAAS,KACtCwzK,EAAoB,IAAK,WAAY,OAAQ7kD,IAE/C0/C,GACG1/C,EAAG50G,SAAW40G,EAAG50G,OAAO/Z,SAAS,KAClCwzK,EAAoB,IAAK,SAAU,OAAQ7kD,KAI/C,IAGIx0H,EAHA+5K,EAAwB,KAAVJ,GAAgC,KAAhBnlD,EAAGryF,SACjC63I,EAAaD,EAAc,IAAMvlD,EAAGryF,SAaxC,GAAkB,MAAd63I,EACFh6K,EAAO65K,MACF,CACL,IAAII,EAAqBL,EAAe78K,OAAS,EAMjD,IAAK+8K,GAAkBE,EAAW5nI,WAAW,MAAO,CAClD,IAAI8nI,EAAaF,EAAWp7J,MAAM,KAElC,KAAyB,OAAlBs7J,EAAW,IAChBA,EAAWz/J,QACXw/J,GAAsB,EAGxBzlD,EAAGryF,SAAW+3I,EAAWtuJ,KAAK,IAC/B,CAED5rB,EAAOi6K,GAAsB,EAAIL,EAAeK,GAAsB,GACvE,CAED,IAAIj7J,WAzKsBw1G,EAAQ2lD,QAAY,IAAZA,IAAAA,EAAe,KACjD,IACEh4I,SAAU63I,EAAU,OACpBp6J,EAAS,GAAE,KACXrI,EAAO,IACS,kBAAPi9G,EAAkBggD,EAAUhgD,GAAMA,EAEzCryF,EAAW63I,EACXA,EAAW5nI,WAAW,KACpB4nI,EAWR,SAAyB7C,EAAsBgD,GAC7C,IAAIzC,EAAWyC,EAAa58J,QAAQ,OAAQ,IAAIqB,MAAM,KAYtD,OAXuBu4J,EAAav4J,MAAM,KAEzB3hB,SAASq7K,IACR,OAAZA,EAEEZ,EAAS36K,OAAS,GAAG26K,EAAS/oI,MACb,MAAZ2pI,GACTZ,EAASj7K,KAAK67K,EACf,IAGIZ,EAAS36K,OAAS,EAAI26K,EAAS9rJ,KAAK,KAAO,GACpD,CAxBQwuJ,CAAgBJ,EAAYG,GAC9BA,EAEJ,MAAO,CACLh4I,WACAviB,OAAQy6J,EAAgBz6J,GACxBrI,KAAM+iK,EAAc/iK,GAExB,CAuJagjK,CAAY/lD,EAAIx0H,GAGvBw6K,EACFR,GAA6B,MAAfA,GAAsBA,EAAW3nI,SAAS,KAEtDooI,GACDV,GAA8B,MAAfC,IAAuBH,EAAiBxnI,SAAS,KAQnE,OANGrzB,EAAKmjB,SAASkQ,SAAS,OACvBmoI,IAA4BC,IAE7Bz7J,EAAKmjB,UAAY,KAGZnjB,CACT,OAiBaq4J,EAAa9D,GACxBA,EAAM3nJ,KAAK,KAAKrO,QAAQ,SAAU,KAKvBs7J,EAAqB12I,GAChCA,EAAS5kB,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,KAKlC88J,EAAmBz6J,GAC7BA,GAAqB,MAAXA,EAEPA,EAAOwyB,WAAW,KAClBxyB,EACA,IAAMA,EAHN,GAQO06J,EAAiB/iK,GAC3BA,GAAiB,MAATA,EAAoBA,EAAK66B,WAAW,KAAO76B,EAAO,IAAMA,EAAzC,GA+BgB5V,MAyRpC,SAAU+4K,EAAqB7tK,GACnC,OACW,MAATA,GACwB,kBAAjBA,EAAMg0B,QACe,kBAArBh0B,EAAM02B,YACa,mBAAnB12B,EAAM8tK,UACb,SAAU9tK,CAEd,CC75BA,MAAM+tK,EAAgD,CACpD,OACA,MACA,QACA,UAMIC,GAJuB,IAAInkG,IAC/BkkG,GAG2C,CAC3C,SACGA,IAEuB,IAAIlkG,IAAgBmkG,GAEpB,IAAInkG,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK,MACf,IAAIA,IAAI,CAAC,IAAK,MAmnElBj5E,OAAO,gPCptFtC,MAAMq9K,EACXj/K,EAAAA,cAAoD,MAK/C,MAAMk/K,EAAyBl/K,EAAAA,cAEpC,MA8CK,MAAMm/K,EAAoBn/K,EAAAA,cAC/B,MAYK,MAAMo/K,EAAkBp/K,EAAAA,cAC7B,YAaWq/K,EAAer/K,EAAAA,cAAwC,CAClEs/K,OAAQ,KACR/qH,QAAS,GACTgrH,aAAa,IAOR,MAAMC,EAAoBx/K,EAAAA,cAAyB,MCnFnD,SAASy/K,IACd,OAA4C,MAArCz/K,EAAAA,WAAiBo/K,EAC1B,CAYO,SAASM,IAQd,OANED,KADFE,GAAU,GAOH3/K,EAAAA,WAAiBo/K,GAAiBz5K,QAC3C,CAkDA,SAASi6K,EACPr4K,GAEevH,EAAAA,WAAiBm/K,GAAmBU,QAKjD7/K,EAAAA,gBAAsBuH,EAE1B,CAQO,SAASu4K,KACd,IAAI,YAAEP,GAAgBv/K,EAAAA,WAAiBq/K,GAGvC,OAAOE,EAo3BT,WACE,IAAI,OAAEQ,GAAWC,GAAqBC,GAAeC,mBACjD3wK,EAAK4wK,GAAkBC,GAAoBF,mBAE3CG,EAAYrgL,EAAAA,QAAa,GAC7B4/K,GAA0B,KACxBS,EAAUz4K,SAAU,CAAI,IAG1B,IAAI04K,EAA6BtgL,EAAAA,aAC/B,SAAC24H,EAAiBjvH,QAAwB,IAAxBA,IAAAA,EAA2B,CAAC,GAKvC22K,EAAUz4K,UAEG,kBAAP+wH,EACTonD,EAAOO,SAAS3nD,GAEhBonD,EAAOO,SAAS3nD,EAAE+/C,EAAA,CAAI6H,YAAahxK,GAAO7F,IAE9C,GACA,CAACq2K,EAAQxwK,IAGX,OAAO+wK,CACT,CA/4BuBE,GAGvB,WAEIf,KADFE,GAAU,GAOV,IAAIc,EAAoBzgL,EAAAA,WAAiBi/K,IACrC,SAAE5E,EAAQ,OAAEqG,EAAM,UAAE9nH,GAAc54D,EAAAA,WAAiBm/K,IACnD,QAAE5qH,GAAYv0D,EAAAA,WAAiBq/K,IAC7B/4I,SAAU03I,GAAqB0B,IAEjCiB,EAAqBx+J,KAAKC,UAC5Bw+J,EAAoBrsH,EAASmsH,EAAO/C,uBAGlC0C,EAAYrgL,EAAAA,QAAa,GAC7B4/K,GAA0B,KACxBS,EAAUz4K,SAAU,CAAI,IAG1B,IAAI04K,EAA6BtgL,EAAAA,aAC/B,SAAC24H,EAAiBjvH,GAKhB,QALwC,IAAxBA,IAAAA,EAA2B,CAAC,IAKvC22K,EAAUz4K,QAAS,OAExB,GAAkB,kBAAP+wH,EAET,YADA//D,EAAUohH,GAAGrhD,GAIf,IAAIx1G,EAAO06J,EACTllD,EACAx2G,KAAKe,MAAMy9J,GACX3C,EACqB,SAArBt0K,EAAQyiK,UASe,MAArBsU,GAA0C,MAAbpG,IAC/Bl3J,EAAKmjB,SACe,MAAlBnjB,EAAKmjB,SACD+zI,EACAmB,EAAU,CAACnB,EAAUl3J,EAAKmjB,aAG/B58B,EAAQgY,QAAUk3C,EAAUl3C,QAAUk3C,EAAUh4D,MACjDuiB,EACAzZ,EAAQ4S,MACR5S,EAEJ,GACA,CACE2wK,EACAzhH,EACA+nH,EACA3C,EACAyC,IAIJ,OAAOH,CACT,CA1E6CO,EAC7C,CA2EA,MAAMC,GAAgB9gL,EAAAA,cAA6B,MAgD5C,SAAS+gL,GACdpoD,EAAMqoD,GAEA,IADN,SAAE7U,QAA8C,IAAA6U,EAAG,CAAC,EAACA,GAEjD,OAAEN,GAAW1gL,EAAAA,WAAiBm/K,IAC9B,QAAE5qH,GAAYv0D,EAAAA,WAAiBq/K,IAC7B/4I,SAAU03I,GAAqB0B,IACjCiB,EAAqBx+J,KAAKC,UAC5Bw+J,EAAoBrsH,EAASmsH,EAAO/C,uBAGtC,OAAO39K,EAAAA,SACL,IACE69K,EACEllD,EACAx2G,KAAKe,MAAMy9J,GACX3C,EACa,SAAb7R,IAEJ,CAACxzC,EAAIgoD,EAAoB3C,EAAkB7R,GAE/C,CAkBO,SAAS8U,GACd9G,EACAC,EACA8G,EACAR,GAGEjB,KADFE,GAAU,GAOV,IAAI,UAAE/mH,GAAc54D,EAAAA,WAAiBm/K,IAC/B5qH,QAAS4sH,GAAkBnhL,EAAAA,WAAiBq/K,GAC9C+B,EAAaD,EAAcA,EAAcjgL,OAAS,GAClDmgL,EAAeD,EAAaA,EAAWv0J,OAAS,CAAC,EAEjDy0J,GADiBF,GAAaA,EAAW96I,SACpB86I,EAAaA,EAAWrE,aAAe,KAC9CqE,GAAcA,EAAW/F,MAqC3C,IAEI11K,EAFA47K,EAAsB7B,IAG1B,GAAItF,EAAa,KAAAoH,EACf,IAAIC,EACqB,kBAAhBrH,EAA2BzB,EAAUyB,GAAeA,EAGpC,MAAvBkH,IAC4B,OADFE,EACxBC,EAAkBn7I,eAAQ,EAA1Bk7I,EAA4BjrI,WAAW+qI,KAF3C3B,GAAU,GASVh6K,EAAW87K,CACb,MACE97K,EAAW47K,EAGb,IAAIj7I,EAAW3gC,EAAS2gC,UAAY,IAEhCu2I,EAAoBv2I,EACxB,GAA2B,MAAvBg7I,EAA4B,CAe9B,IAAII,EAAiBJ,EAAmB5/J,QAAQ,MAAO,IAAIqB,MAAM,KAEjE85J,EAAoB,IADLv2I,EAAS5kB,QAAQ,MAAO,IAAIqB,MAAM,KACd9e,MAAMy9K,EAAexgL,QAAQ6uB,KAAK,IACvE,CAEA,IAAIwkC,EAAU2lH,EAAYC,EAAQ,CAAE7zI,SAAUu2I,IAmB9C,IAAI8E,EAAkBC,GACpBrtH,GACEA,EAAQn+B,KAAKzU,GACXthB,OAAOsyC,OAAO,CAAC,EAAGhxB,EAAO,CACvBkL,OAAQxsB,OAAOsyC,OAAO,CAAC,EAAG0uI,EAAc1/J,EAAMkL,QAC9CyZ,SAAUk1I,EAAU,CAClB8F,EAEA1oH,EAAU8gH,eACN9gH,EAAU8gH,eAAe/3J,EAAM2kB,UAAUA,SACzC3kB,EAAM2kB,WAEZy2I,aACyB,MAAvBp7J,EAAMo7J,aACFuE,EACA9F,EAAU,CACR8F,EAEA1oH,EAAU8gH,eACN9gH,EAAU8gH,eAAe/3J,EAAMo7J,cAAcz2I,SAC7C3kB,EAAMo7J,mBAIxBoE,EACAD,EACAR,GAMF,OAAItG,GAAeuH,EAEf3hL,EAAAA,cAACo/K,EAAgB1yK,SAAQ,CACvB1K,MAAO,CACL2D,SAAQ+yK,EAAA,CACNpyI,SAAU,IACVviB,OAAQ,GACRrI,KAAM,GACNY,MAAO,KACPjb,IAAK,WACFsE,GAELk8K,eAAgB3uI,EAAemmI,MAGhCsI,GAKAA,CACT,CAEA,SAASG,KACP,IAAI9wK,EAybC,WAAkC,IAAA+wK,EACvC,IAAI/wK,EAAQhR,EAAAA,WAAiBw/K,GACzBljK,EAAQ0lK,GAAmB5B,GAAoB6B,eAC/CC,EAAU/B,GAAkBC,GAAoB6B,eAIpD,QAAcz3K,IAAVwG,EACF,OAAOA,EAIT,OAAO,OAAP+wK,EAAOzlK,EAAMyuB,aAAN,EAAAg3I,EAAeG,EACxB,CAtccC,GACRt9J,EAAUg6J,EAAqB7tK,GAC5BA,EAAMg0B,OAAU,IAAAh0B,EAAM02B,WACzB12B,aAAiBlL,MACjBkL,EAAM6T,QACN1C,KAAKC,UAAUpR,GACfmqD,EAAQnqD,aAAiBlL,MAAQkL,EAAMmqD,MAAQ,KAC/CinH,EAAY,yBACZC,EAAY,CAAEC,QAAS,SAAUzgB,gBAAiBugB,GAsBtD,OACEpiL,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAI,2CACJA,EAAAA,cAAA,MAAIo3E,MAAO,CAAEonF,UAAW,WAAa35I,GACpCs2C,EAAQn7D,EAAAA,cAAA,OAAKo3E,MAAOirG,GAAYlnH,GAAe,KAvBtC,KA2BhB,CAEA,MAAMonH,GAAsBviL,EAAAA,cAAC8hL,GAAqB,MAgB3C,MAAMU,WAA4BxiL,EAAAA,UAIvC8B,WAAAA,CAAY0D,GACVi0H,MAAMj0H,GACNiW,KAAKa,MAAQ,CACX3W,SAAUH,EAAMG,SAChB88K,aAAcj9K,EAAMi9K,aACpBzxK,MAAOxL,EAAMwL,MAEjB,CAEA,+BAAO+3G,CAAyB/3G,GAC9B,MAAO,CAAEA,MAAOA,EAClB,CAEA,+BAAO4wG,CACLp8G,EACA8W,GAUA,OACEA,EAAM3W,WAAaH,EAAMG,UACD,SAAvB2W,EAAMmmK,cAAkD,SAAvBj9K,EAAMi9K,aAEjC,CACLzxK,MAAOxL,EAAMwL,MACbrL,SAAUH,EAAMG,SAChB88K,aAAcj9K,EAAMi9K,cAQjB,CACLzxK,WAAuBxG,IAAhBhF,EAAMwL,MAAsBxL,EAAMwL,MAAQsL,EAAMtL,MACvDrL,SAAU2W,EAAM3W,SAChB88K,aAAcj9K,EAAMi9K,cAAgBnmK,EAAMmmK,aAE9C,CAEAz5D,iBAAAA,CAAkBh4G,EAAY0xK,GAC5Bz4K,QAAQ+G,MACN,wDACAA,EACA0xK,EAEJ,CAEAnuG,MAAAA,GACE,YAA4B/pE,IAArBiR,KAAKa,MAAMtL,MAChBhR,EAAAA,cAACq/K,EAAa3yK,SAAQ,CAAC1K,MAAOyZ,KAAKjW,MAAMm9K,cACvC3iL,EAAAA,cAACw/K,EAAkB9yK,SAAQ,CACzB1K,MAAOyZ,KAAKa,MAAMtL,MAClBlF,SAAU2P,KAAKjW,MAAMutI,aAIzBt3H,KAAKjW,MAAMsG,QAEf,EASF,SAAS82K,GAAah3K,GAAwD,IAAvD,aAAE+2K,EAAY,MAAEhhK,EAAK,SAAE7V,GAA8BF,EACtE60K,EAAoBzgL,EAAAA,WAAiBi/K,GAazC,OAREwB,GACAA,EAAkBZ,QAClBY,EAAkBoC,gBACjBlhK,EAAM05J,MAAMh8G,cAAgB19C,EAAM05J,MAAMyH,iBAEzCrC,EAAkBoC,cAAcE,2BAA6BphK,EAAM05J,MAAM9rK,IAIzEvP,EAAAA,cAACq/K,EAAa3yK,SAAQ,CAAC1K,MAAO2gL,GAC3B72K,EAGP,CAEO,SAAS81K,GACdrtH,EACA4sH,EACAD,EACAR,GAC2B,IAAAsC,EAC3B,QAJ2B,IAA3B7B,IAAAA,EAA8B,SACc,IAA5CD,IAAAA,EAA+C,WACX,IAApCR,IAAAA,EAAuC,MAExB,MAAXnsH,EAAiB,KAAA0uH,EACnB,GAAmB,OAAnBA,EAAI/B,KAAA+B,EAAiBl4I,OAKnB,OAAO,KAFPwpB,EAAU2sH,EAAgB3sH,OAI9B,CAEA,IAAIotH,EAAkBptH,EAGlBxpB,EAAS,OAAHi4I,EAAG9B,QAAA,EAAA8B,EAAiBj4I,OAC9B,GAAc,MAAVA,EAAgB,CAClB,IAAIm4I,EAAavB,EAAgBwB,WAC9BzgH,GAAMA,EAAE24G,MAAM9rK,KAAM,MAAAw7B,OAAA,EAAAA,EAAS23B,EAAE24G,MAAM9rK,OAGtC2zK,GAAc,GADhBvD,GAAU,GAMVgC,EAAkBA,EAAgB19K,MAChC,EACA6Z,KAAK8tB,IAAI+1I,EAAgBzgL,OAAQgiL,EAAa,GAElD,CAIA,IAAIE,GAAiB,EACjBC,GAAiB,EACrB,GAAInC,GAAmBR,GAAUA,EAAO4C,oBACtC,IAAK,IAAItiL,EAAI,EAAGA,EAAI2gL,EAAgBzgL,OAAQF,IAAK,CAC/C,IAAI2gB,EAAQggK,EAAgB3gL,GAM5B,IAJI2gB,EAAM05J,MAAMkI,iBAAmB5hK,EAAM05J,MAAMmI,0BAC7CH,EAAgBriL,GAGd2gB,EAAM05J,MAAM9rK,GAAI,CAClB,IAAI,WAAEk0K,EAAU,OAAE14I,GAAWm2I,EACzBwC,EACF/hK,EAAM05J,MAAMsI,aACmBn5K,IAA/Bi5K,EAAW9hK,EAAM05J,MAAM9rK,OACrBw7B,QAAqCvgC,IAA3BugC,EAAOppB,EAAM05J,MAAM9rK,KACjC,GAAIoS,EAAM05J,MAAMt9C,MAAQ2lD,EAAkB,CAIxCN,GAAiB,EAEfzB,EADE0B,GAAiB,EACD1B,EAAgB19K,MAAM,EAAGo/K,EAAgB,GAEzC,CAAC1B,EAAgB,IAErC,KACF,CACF,CACF,CAGF,OAAOA,EAAgBiC,aAAY,CAACtE,EAAQ39J,EAAO0O,KAEjD,IAAIrf,EACA6yK,GAA8B,EAC9BxkH,EAAuC,KACvCmkH,EAAiD,KA0VzD,IAAqBniL,EAzVb6/K,IACFlwK,EAAQ+5B,GAAUppB,EAAM05J,MAAM9rK,GAAKw7B,EAAOppB,EAAM05J,MAAM9rK,SAAM/E,EAC5D60D,EAAe19C,EAAM05J,MAAMh8G,cAAgBkjH,GAEvCa,IACEC,EAAgB,GAAe,IAAVhzJ,GAoVZhvB,EAlVT,kBACA,GAkVIyiL,GAAcziL,KAC1ByiL,GAAcziL,IAAO,GAhVfwiL,GAA8B,EAC9BL,EAAyB,MAChBH,IAAkBhzJ,IAC3BwzJ,GAA8B,EAC9BL,EAAyB7hK,EAAM05J,MAAMmI,wBAA0B,QAKrE,IAAIjvH,EAAU4sH,EAAch3K,OAAOw3K,EAAgB19K,MAAM,EAAGosB,EAAQ,IAChE0zJ,EAAcA,KAChB,IAAIj4K,EAkBJ,OAhBEA,EADEkF,EACSquD,EACFwkH,EACEL,EACF7hK,EAAM05J,MAAM76D,UAOVxgH,EAAAA,cAAC2hB,EAAM05J,MAAM76D,UAAS,MACxB7+F,EAAM05J,MAAM30K,QACVib,EAAM05J,MAAM30K,QAEZ44K,EAGXt/K,EAAAA,cAAC4iL,GAAa,CACZjhK,MAAOA,EACPghK,aAAc,CACZrD,SACA/qH,UACAgrH,YAAgC,MAAnB2B,GAEfp1K,SAAUA,GACV,EAMN,OAAOo1K,IACJv/J,EAAM05J,MAAMyH,eAAiBnhK,EAAM05J,MAAMh8G,cAA0B,IAAVhvC,GAC1DrwB,EAAAA,cAACwiL,GAAmB,CAClB78K,SAAUu7K,EAAgBv7K,SAC1B88K,aAAcvB,EAAgBuB,aAC9B1vC,UAAW1zE,EACXruD,MAAOA,EACPlF,SAAUi4K,IACVpB,aAAc,CAAErD,OAAQ,KAAM/qH,UAASgrH,aAAa,KAGtDwE,GACD,GACA,KACL,CAAC,IAEI9D,GAAc,SAAdA,GAAc,OAAdA,EAAc,wBAAdA,EAAc,gCAAdA,EAAc,gCAAdA,CAAc,EAAdA,IAAc,IAMdG,GAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,wBAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,wCAAnBA,EAAmB,wBAAnBA,EAAmB,gCAAnBA,EAAmB,gCAAnBA,EAAmB,wBAAnBA,CAAmB,EAAnBA,IAAmB,IAmBxB,SAASJ,GAAqBgE,GAC5B,IAAIv4K,EAAMzL,EAAAA,WAAiBi/K,GAE3B,OADUxzK,GAAVk0K,GAAU,GACHl0K,CACT,CAEA,SAASu2K,GAAmBgC,GAC1B,IAAI1nK,EAAQtc,EAAAA,WAAiBk/K,GAE7B,OADU5iK,GAAVqjK,GAAU,GACHrjK,CACT,CASA,SAAS6jK,GAAkB6D,GACzB,IAAI3I,EARN,SAAyB2I,GACvB,IAAI3I,EAAQr7K,EAAAA,WAAiBq/K,GAE7B,OADUhE,GAAVsE,GAAU,GACHtE,CACT,CAIc4I,GACRC,EAAY7I,EAAM9mH,QAAQ8mH,EAAM9mH,QAAQrzD,OAAS,GAKrD,OAHEgjL,EAAU7I,MAAM9rK,IADlBowK,GAAU,GAIHuE,EAAU7I,MAAM9rK,EACzB,CA4NA,MAAMu0K,GAAyC,CAAC,ECj/BpB9jL,EAAsB,gBAoP3C,SAASmkL,GAAO3+K,GACrB,ODxDK,SAAmB+pC,GACxB,IAAI+vI,EAASt/K,EAAAA,WAAiBq/K,GAAcC,OAC5C,OAAIA,EAEAt/K,EAAAA,cAAC8gL,GAAcp0K,SAAQ,CAAC1K,MAAOutC,GAAU+vI,GAGtCA,CACT,CCgDS8E,CAAU5+K,EAAM+pC,QACzB,CAmDO,SAAS80I,GAAMC,GACpB3E,GAAU,EAKZ,CAqBO,SAAS4E,GAAMC,GAQqB,IAPzCnK,SAAUoK,EAAe,IAAG,SAC5B34K,EAAW,KACXnG,SAAU++K,EAAY,eACtB7C,EAAiB3uI,EAAemmI,IAAG,UACnCzgH,EACAinH,OAAQ8E,GAAa,EAAK,OAC1BjE,GACY8D,EAET/E,KADHE,GAAU,GAQV,IAAItF,EAAWoK,EAAa/iK,QAAQ,OAAQ,KACxCkjK,EAAoB5kL,EAAAA,SACtB,KAAM,CACJq6K,WACAzhH,YACAinH,OAAQ8E,EACRjE,OAAMhI,EAAA,CACJiF,sBAAsB,GACnB+C,MAGP,CAACrG,EAAUqG,EAAQ9nH,EAAW+rH,IAGJ,kBAAjBD,IACTA,EAAe/L,EAAU+L,IAG3B,IAAI,SACFp+I,EAAW,IAAG,OACdviB,EAAS,GAAE,KACXrI,EAAO,GAAE,MACTY,EAAQ,KAAI,IACZjb,EAAM,WACJqjL,EAEAG,EAAkB7kL,EAAAA,SAAc,KAClC,IAAI8kL,EAAmBxK,EAAch0I,EAAU+zI,GAE/C,OAAwB,MAApByK,EACK,KAGF,CACLn/K,SAAU,CACR2gC,SAAUw+I,EACV/gK,SACArI,OACAY,QACAjb,OAEFwgL,iBACD,GACA,CAACxH,EAAU/zI,EAAUviB,EAAQrI,EAAMY,EAAOjb,EAAKwgL,IASlD,OAAuB,MAAnBgD,EACK,KAIP7kL,EAAAA,cAACm/K,EAAkBzyK,SAAQ,CAAC1K,MAAO4iL,GACjC5kL,EAAAA,cAACo/K,EAAgB1yK,SAAQ,CAACZ,SAAUA,EAAU9J,MAAO6iL,IAG3D,CAaO,SAASE,GAAMC,GAGqB,IAHpB,SACrBl5K,EAAQ,SACRnG,GACYq/K,EACZ,ODxKK,SACL7K,EACAC,GAEA,OAAO6G,GAAc9G,EAAQC,EAC/B,CCmKS6K,CAAUC,GAAyBp5K,GAAWnG,EACvD,CAuC4B,IAAIiF,SAAQ,SAEP5K,EAAAA,UAkH1B,SAASklL,GACdp5K,EACAqvK,QAAoB,IAApBA,IAAAA,EAAuB,IAEvB,IAAIhB,EAAwB,GA6D5B,OA3DAn6K,EAAAA,SAAeoB,QAAQ0K,GAAU,CAACpF,EAAS2pB,KACzC,IAAKrwB,EAAAA,eAAqB0G,GAGxB,OAGF,IAAIy+K,EAAW,IAAIhK,EAAY9qJ,GAE/B,GAAI3pB,EAAQ0I,OAASpP,EAAAA,SAMnB,YAJAm6K,EAAOv5K,KAAKC,MACVs5K,EACA+K,GAAyBx+K,EAAQlB,MAAMsG,SAAUq5K,IAMnDz+K,EAAQ0I,OAASi1K,IADnB1E,GAAU,GAQPj5K,EAAQlB,MAAM6qB,OAAU3pB,EAAQlB,MAAMsG,UADzC6zK,GAAU,GAKV,IAAItE,EAAqB,CACvB9rK,GAAI7I,EAAQlB,MAAM+J,IAAM41K,EAASp1J,KAAK,KACtCwrJ,cAAe70K,EAAQlB,MAAM+1K,cAC7B70K,QAASA,EAAQlB,MAAMkB,QACvB85G,UAAW95G,EAAQlB,MAAMg7G,UACzBnwF,MAAO3pB,EAAQlB,MAAM6qB,MACrBlN,KAAMzc,EAAQlB,MAAM2d,KACpBwgK,OAAQj9K,EAAQlB,MAAMm+K,OACtBv+D,OAAQ1+G,EAAQlB,MAAM4/G,OACtB/lD,aAAc34D,EAAQlB,MAAM65D,aAC5ByjH,cAAep8K,EAAQlB,MAAMs9K,cAC7BsC,iBACiC,MAA/B1+K,EAAQlB,MAAMs9K,eACgB,MAA9Bp8K,EAAQlB,MAAM65D,aAChBgmH,iBAAkB3+K,EAAQlB,MAAM6/K,iBAChCC,OAAQ5+K,EAAQlB,MAAM8/K,OACtBvnD,KAAMr3H,EAAQlB,MAAMu4H,MAGlBr3H,EAAQlB,MAAMsG,WAChBuvK,EAAMvvK,SAAWo5K,GACfx+K,EAAQlB,MAAMsG,SACdq5K,IAIJhL,EAAOv5K,KAAKy6K,EAAM,IAGblB,CACT,+WC/fgD,IAAIt/F,IAAI,CACtD,oCACA,sBACA,+ICgBF,IACE3pE,OAAOq0K,qBAHT,GAIC,CAAC,MAAOvzK,IACP,CA0IiE,IAAI0oE,IAkCvE,MACM8qG,GAAsBxlL,EAAsB,gBAE5BylL,EAAmB,UAEvBzlL,EAAY,MAmVxB,SAAU0lL,GAAaC,GAKR,IALS,SAC5BtL,EAAQ,SACRvuK,EAAQ,OACR40K,EAAM,OACNxvK,GACmBy0K,EACfC,EAAa5lL,EAAAA,SPlZH,IACd0J,EOkZ0B,MAAtBk8K,EAAWh+K,UACbg+K,EAAWh+K,cPnZb,KAAA8B,EOmZ4C,CAAEwH,SAAQioK,UAAU,MPnZhEzvK,EAAiC,CAAC,GAoB3BqvK,GAlBP,SACE7nK,EACAkoK,GAEA,IAAI,SAAE9yI,EAAQ,OAAEviB,EAAM,KAAErI,GAASxK,EAAOvL,SACxC,OAAO8yK,EACL,GACA,CAAEnyI,WAAUviB,SAAQrI,QAEnB09J,EAAc98J,OAAS88J,EAAc98J,MAAMk8J,KAAQ,KACnDY,EAAc98J,OAAS88J,EAAc98J,MAAMjb,KAAQ,UAExD,IAEA,SAA2B6P,EAAgBynH,GACzC,MAAqB,kBAAPA,EAAkBA,EAAKigD,EAAWjgD,EAClD,GAKE,KACAjvH,KO8XF,IAAI0tI,EAAUwuC,EAAWh+K,SACpB0U,EAAOupK,GAAgB7lL,EAAAA,SAAe,CACzColH,OAAQgyB,EAAQhyB,OAChBz/G,SAAUyxI,EAAQzxI,YAEhB,mBAAEmgL,GAAuBpF,GAAU,CAAC,EACpChiD,EAAW1+H,EAAAA,aACZ+lL,IACCD,GAAsBN,GAClBA,IAAoB,IAAMK,EAAaE,KACvCF,EAAaE,EAAS,GAE5B,CAACF,EAAcC,IAKjB,OAFA9lL,EAAAA,iBAAsB,IAAMo3I,EAAQ4S,OAAOtrB,IAAW,CAAC0Y,EAAS1Y,IAG9D1+H,EAAAA,cAACukL,GAAM,CACLlK,SAAUA,EACVvuK,SAAUA,EACVnG,SAAU2W,EAAM3W,SAChBk8K,eAAgBvlK,EAAM8oG,OACtBxsD,UAAWw+E,EACXspC,OAAQA,GAGd,CAqHA,MAAM5/J,GACc,qBAAX5P,QACoB,qBAApBA,OAAOg8B,UAC2B,qBAAlCh8B,OAAOg8B,SAASzgC,cAEnBu5K,GAAqB,gCAKdj4B,GAAO/tJ,EAAAA,YAClB,SAAoBimL,EAalBh+K,GAAG,IAKCi+K,GAjBJ,QACEl2K,EAAO,SACPm8J,EAAQ,eACRga,EAAc,QACdzkK,EAAO,MACPpF,EAAK,OACLvb,EAAM,GACN43H,EAAE,mBACFytD,EAAkB,wBAClBC,GAEDJ,EADI90I,EAAIhvC,GAAA8jL,EAAAh5K,KAIL,SAAEotK,GAAar6K,EAAAA,WAAiBsmL,GAIhCC,GAAa,EAEjB,GAAkB,kBAAP5tD,GAAmBqtD,GAAmB5hL,KAAKu0H,KAEpDutD,EAAevtD,EAGX73G,IACF,IACE,IAAI0lK,EAAa,IAAIh4G,IAAIt9D,OAAOvL,SAASuhC,MACrCu/I,EAAY9tD,EAAGpiF,WAAW,MAC1B,IAAIi4B,IAAIg4G,EAAW1gJ,SAAW6yF,GAC9B,IAAInqD,IAAImqD,GACRx1G,EAAOm3J,EAAcmM,EAAUngJ,SAAU+zI,GAEzCoM,EAAUrR,SAAWoR,EAAWpR,QAAkB,MAARjyJ,EAE5Cw1G,EAAKx1G,EAAOsjK,EAAU1iK,OAAS0iK,EAAU/qK,KAEzC6qK,GAAa,EAEf,MAAOv0K,IAOR,CAKL,IAAIk1B,EHt5BD,SACLyxF,EAAM+tD,GAEE,IADR,SAAEva,QAA8C,IAAAua,EAAG,CAAC,EAACA,EAGnDjH,KADFE,GAAU,GAOV,IAAI,SAAEtF,EAAQ,UAAEzhH,GAAc54D,EAAAA,WAAiBm/K,IAC3C,KAAEzjK,EAAI,SAAE4qB,EAAQ,OAAEviB,GAAWg9J,GAAgBpoD,EAAI,CAAEwzC,aAEnDwa,EAAiBrgJ,EAWrB,MALiB,MAAb+zI,IACFsM,EACe,MAAbrgJ,EAAmB+zI,EAAWmB,EAAU,CAACnB,EAAU/zI,KAGhDsyB,EAAUqgH,WAAW,CAAE3yI,SAAUqgJ,EAAgB5iK,SAAQrI,QAClE,CG43BekrK,CAAQjuD,EAAI,CAAEwzC,aAErB0a,EA0YF,SACJluD,EAAM+tD,GAeA,IAdN,OACE3lL,EACA2gB,QAASolK,EAAW,MACpBxqK,EAAK,mBACL8pK,EAAkB,SAClBja,EAAQ,wBACRka,cAQE,CAAC,EAACK,EAEFpG,EAAWR,KACXn6K,EAAW+5K,IACXv8J,EAAO49J,GAAgBpoD,EAAI,CAAEwzC,aAEjC,OAAOnsK,EAAAA,aACJsH,IACC,GD90CU,SACdA,EACAvG,GAEA,OACmB,IAAjBuG,EAAMslG,UACJ7rG,GAAqB,UAAXA,KAVhB,SAAyBuG,GACvB,SAAUA,EAAMmlG,SAAWnlG,EAAMklG,QAAUllG,EAAMglG,SAAWhlG,EAAMilG,SACpE,CASKw6E,CAAgBz/K,EAErB,CCq0CU0/K,CAAuB1/K,EAAOvG,GAAS,CACzCuG,EAAMwjG,iBAIN,IAAIppF,OACclX,IAAhBs8K,EACIA,EACAlO,EAAWjzK,KAAcizK,EAAWz1J,GAE1Cm9J,EAAS3nD,EAAI,CACXj3G,UACApF,QACA8pK,qBACAja,WACAka,2BAEH,IAEH,CACE1gL,EACA26K,EACAn9J,EACA2jK,EACAxqK,EACAvb,EACA43H,EACAytD,EACAja,EACAka,GAGN,CAlc0BY,CAAoBtuD,EAAI,CAC5Cj3G,UACApF,QACAvb,SACAqlL,qBACAja,WACAka,4BAWF,OAEErmL,EAAAA,cAAA,IAAA04K,GAAA,GACMvnI,EAAI,CACRjK,KAAMg/I,GAAgBh/I,EACtBl3B,QAASu2K,GAAcJ,EAAiBn2K,EAd5C,SACE1I,GAEI0I,GAASA,EAAQ1I,GAChBA,EAAM2uE,kBACT4wG,EAAgBv/K,EAEpB,EAQIW,IAAKA,EACLlH,OAAQA,IAGd,IAsUF,IAAKk/K,GAQAG,IARL,SAAKH,GACHA,EAAA,4CACAA,EAAA,sBACAA,EAAA,oCACAA,EAAA,wBACAA,EAAA,+CACD,EAND,CAAKA,KAAAA,GAMJ,KAED,SAAKG,GACHA,EAAA,wBACAA,EAAA,0BACAA,EAAA,2CACD,CAJD,CAAKA,KAAAA,GAIJ,qBCzzCD,MA0BA,GA1BqB8G,KAEjBC,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK53K,GAAG,kBAAkBC,UAAU,iBAAgB1D,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC3Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACjCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,+BAA+Bj6D,UAAU,gBAAgB83K,IAAI,SACtEH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4GAA2G1D,UACtHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAChBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EAC3Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,sBAAqB4nE,MAAO,CAACmwG,SAAU,QAAShoF,WAAY,OAAOzzF,SAAC,uBAClFu7K,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,eAAe4nE,MAAO,CAACmwG,SAAU,QAAShoF,WAAY,MAAOE,WAAY,OAAO3zF,SAAA,CAAC,6BAAoBq7K,EAAAA,GAAAA,KAAA,SAAM,sBACzHA,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,cAAc4nE,MAAO,CAACmwG,SAAU,QAAShoF,WAAY,OAAOzzF,SAAC,uKAC3Eq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,WAAWnpH,UAAU,oEAAoE4nE,MAAO,CAACmwG,SAAS,OAAOz7K,SAAC,kCCOrJ,IAAI07K,GAAiB,CACnBh/H,OAAQ,mBACR,eAAgB,oBAGX,MAAMi/H,GAAUloH,eACrBx5B,EACAkmI,EACAyb,EACAC,EACAC,EACA1kF,GAGI,IAAD2kF,EAAAC,EAAA,IAFHrlI,EAAKxhD,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,EACR8mL,EAAS9mL,UAAAC,OAAA,EAAAD,UAAA,QAAAuJ,EAGL4a,EAA2C,QAAtCyiK,EAAG33J,aAAa83J,QAAQ,sBAAc,IAAAH,GAAAA,EAC3CI,EAAmD,QAAvCH,EAAG53J,aAAa83J,QAAQ,uBAAe,IAAAF,GAAAA,EAIvD79K,QAAQo7B,IAAI,WAAYjgB,GACxBnb,QAAQo7B,IAAI,kBAAmB4iJ,GAC/Bh+K,QAAQo7B,IAAI,WAAY4mI,GAItBub,GAAe,gBAFbO,EAE+B,sBAGA,mBAE/B3iK,IACFoiK,GAA8B,cAAIpiK,GAGpC,IAAI8iK,EAAc,CAChBniJ,OAAQA,EACR9R,QAASuzJ,GACT9rJ,KACY,OAAVqK,GAEc,UAAVA,EADA,KAGAgiJ,EACAL,EACAvlK,KAAKC,UAAUslK,IAGL,MAAdA,UACKQ,EAAYxsJ,KAErB,IACEisJ,GAAW,GACX,IAAI/zJ,QAAiBu0J,MAAMlc,EAAKic,GAE5BE,QAAqBx0J,EAASy0J,OAElC,GADAp+K,QAAQo7B,IAAI,yBAA0B+iJ,GACT,gBAAb,OAAZA,QAAY,IAAZA,OAAY,EAAZA,EAAcvjK,UAA4B49B,EAAQ,GAAKwlI,EAAc,CACvE,IAAIC,EAAc,CAChBniJ,OAAQ,OACR9R,QAASuzJ,UAILW,MAAM,GAADh+K,OAlFjB,oCAkF6B,gCAAAA,OAA+B89K,GAAgBC,GACnE7/K,MAAKk3D,UAEJ,IAAI+oH,QAAgBpyH,EAAImyH,OACxBp+K,QAAQo7B,IAAI,gCAAiCijJ,GAC7Cp4J,aAAaq4J,QAAQ,cAAeD,EAAQljK,OAC5C8K,aAAaq4J,QAAQ,eAAgBD,EAAQL,cAC7Ch+K,QAAQo7B,IAAInV,aAAa83J,QAAQ,gBACjC/9K,QAAQo7B,IAAInV,aAAa83J,QAAQ,iBAGjCP,GACE1hJ,EACAkmI,EACAyb,EACAC,EACAC,EACA1kF,EACAzgD,EAAQ,EACT,IAEFk3D,OAAOh2G,IACNsG,QAAQo7B,IAAI,yBAA0B1hC,GACtCgkL,GAAW,EAAM,GAEvB,MAAuB,OAAZS,QAAY,IAAZA,OAAY,EAAZA,EAAch0J,YAAa,KACpCwzJ,EAAUQ,GAIVT,GAAW,KAEXzkF,EAAQklF,GAIRT,GAAW,GAEf,CAAE,MAAO32K,GAGP22K,GAAW,EAEb,CAGJ,ECvIaa,GACX,oCAEF,IAEEC,qBAAsBD,GAAW,aACjCE,OAAQF,GAAW,gBACnBG,OAAQH,GAAW,eACnBI,YAAaJ,GAAW,oBACxBK,QAASL,GAAW,gBACpBM,UAAWN,GAAW,oBACtBO,eAAgBP,GAAW,yBAC3BQ,wBAAyBR,GAAW,oCACpCS,eAAgBT,GAAW,wBAC3BU,UAAWV,GAAW,oBACtBW,eAAgBX,GAAW,yBAC3BY,uBAAwBZ,GAAW,+BACnCa,OAAQb,GAAW,gBACnBc,SAAUd,GAAW,sBACrBe,gBAAiBf,GAAW,uBAC5BgB,gBAAiBhB,GAAW,+BAC5BiB,SAAUjB,GAAW,mBACrBh/J,QAAQg/J,GAAW,YACnBkB,YAAalB,GAAW,sBAExBmB,SAAUnB,GAAW,cAGrBoB,KAAMpB,GAAW,QAEnBqB,QAASrB,GAAW,SACpBsB,WAAYtB,GAAW,eACvBuB,iBAAkBvB,GAAW,sBAC7BwB,MAAOxB,GAAW,SAClB3mK,OAAQ2mK,GAAW,UAInByB,QAASzB,GAAW,WAEnB0B,QAAS1B,GAAW,WACpB2B,cAAe3B,GAAW,8BAGxB4B,SAAU5B,GAAW,YACrB6B,eAAgB7B,GAAW,gCAG7B8B,iBAAkB9B,GAAW,kCAC7B+B,eAAgB/B,GAAW,yDAC3BgC,eAAgBhC,GAAW,yBAC3BiC,cAAejC,GAAW,yBAI3BkC,eAAgBlC,GAAW,gCAC3BmC,gBAAiBnC,GAAW,kCAC5BoC,gBAAiBpC,GAAW,iCAC5BqC,iBAAkBrC,GAAW,mCAC7BsC,kBAAmBtC,GAAW,gCAC9BuC,qBAAsBvC,GAAW,mCACjCwC,uBAAwBxC,GAAW,qCACnCyC,iBAAkBzC,GAAW,+BAC7B0C,qBAAsB1C,GAAW,oCACjC2C,mBAAoB3C,GAAW,iCAC/B4C,oBAAqB5C,GAAW,kCAChC6C,eAAgB7C,GAAW,2DAG3B8C,UAAW9C,GAAW,aAItB+C,MAAO/C,GAAW,SAIlBgD,UAAWhD,GAAW,aAGtBiD,UAAWjD,GAAW,sBAGtBkD,UAAWlD,GAAW,0BACtBmD,aAAcnD,GAAW,yBACzBoD,WAAYpD,GAAW,yBACvBqD,aAAcrD,GAAW,yBAEzBsD,WAAYtD,GAAW,4BACvBuD,cAAevD,GAAW,4BC+B1B,GAnHuBwD,KACrB,MAAO9B,EAAS+B,IAAc//K,EAAAA,EAAAA,UAAS,KAChCggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IAcvCvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAO+P,QAAS,KAAMiC,GANvBj2H,IAEZ+1H,EAAW/1H,EAAIl7C,KAAKoxK,KAAK,IAIiCp7K,IAC1D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKjB,GACX,IACH,MAAOq7K,EAAaC,IAAkBpgL,EAAAA,EAAAA,UAAS,KAO5CqgL,EAAkBC,IAAuBtgL,EAAAA,EAAAA,UAAS,KAEzDvE,EAAAA,EAAAA,YAAU,KACR6kL,EAAoBtC,EAAQ,GAC3B,CAACA,IACJ,MAAMuC,EAAgBzoK,IACpB,GAAqB,KAAjBA,EAAM4lC,OAER4iI,EAAoBtC,OACf,CAEL,MAAMlhG,EAAWkhG,EAAQ1pL,QAAOksL,IAAM,IAAAC,EAAA,OAC9B,OAAND,QAAM,IAANA,GAAa,QAAPC,EAAND,EAAQnpD,aAAK,IAAAopD,OAAP,EAANA,EAAepyK,cAAcvQ,SAASga,EAAMzJ,cAAc,IAE5DiyK,EAAoBxjG,EACtB,GAEF,OACEq+F,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACpDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,6BACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yBAE3B23K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAE,qIAExCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iEAAgE1D,UACvEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8BAA8B4nE,MAAO,CAAEm4B,MAAO,OAAQq9E,SAAU,SAAU9gL,SAAA,EACvFq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLpN,MAAOqqL,EACPv8K,SArCYkC,IACpB,MAAMgS,EAAQhS,EAAEjR,OAAOiB,MACvBsqL,EAAetoK,GACfyoK,EAAazoK,EAAM,EAmCXxU,UAAU,sCACV67H,YAAY,iBACZj0D,MAAO,CAAEy1G,YAAa,UAAWC,aAAc,aAEjD3F,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,oCAAmC1D,UACjDq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,6BAgBT23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAE9Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,SACnBygL,GAAoBA,EAAiBn2J,KAAI,CAACs2J,EAAQr8J,KACnD82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC1Bq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAAEv+I,UAAU,+CAA+C4nE,MAAO,CAAE21G,eAAgB,OAAOr7E,MAAM,SAAUinB,GAAI,CACpIryF,SAAU,iBACVviB,OAAO,aAAD5Z,OAAqB,OAANuiL,QAAM,IAANA,OAAM,EAANA,EAAQM,MAC7BlhL,UACoBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EACxDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UAACq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAkBi6D,IAAKijH,EAAOO,UAAYz9E,OAAO,WAM5G63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACvBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,OAAK/vG,MAAO,CAAE21G,eAAgB,OAAOr7E,MAAM,QAAQw7E,UAAU,QAASphL,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAU,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQnpD,WAAgB4jD,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAa4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4wE,QAAS,WAAYhzD,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,SAChW,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQ50C,YAGbuvC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAQ,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQY,YAAiBnG,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAU,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQa,+BAjB/Fl9J,UAyBtC82J,EAAAA,GAAAA,KAAA,UAAMA,EAAAA,GAAAA,KAAA,WACrB,ECbP,GAlGuBqG,KACrB,MAAOpD,EAAUqD,IAAevhL,EAAAA,EAAAA,UAAS,KAClCggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IAcvCvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAOiQ,SAAU,KAAM+B,GANxBj2H,IAEZu3H,EAAYv3H,EAAIl7C,KAAKoxK,KAAK,IAIiCp7K,IAC3D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKjB,GACX,IACH,MAAOq7K,EAAaC,IAAkBpgL,EAAAA,EAAAA,UAAS,KAO5CqgL,EAAkBC,IAAuBtgL,EAAAA,EAAAA,UAAS,KAEzDvE,EAAAA,EAAAA,YAAU,KACR6kL,EAAoBpC,EAAS,GAC5B,CAACA,IACJ,MAAMqC,EAAgBzoK,IACpB,GAAqB,KAAjBA,EAAM4lC,OAER4iI,EAAoBpC,OACf,CAEL,MAAMphG,EAAWohG,EAAS5pL,QAAOktL,IAAO,IAAAC,EAAA,OAC/B,OAAPD,QAAO,IAAPA,GAAqB,QAAdC,EAAPD,EAASE,oBAAY,IAAAD,OAAd,EAAPA,EAAuBpzK,cAAcvQ,SAASga,EAAMzJ,cAAc,IAEpEiyK,EAAoBxjG,EACtB,GAEF,OACEq+F,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACpDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,6BACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yBAE3B23K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAC,2OAEvCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iEAAgE1D,UACvEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8BAA8B4nE,MAAO,CAAEm4B,MAAO,OAAQq9E,SAAU,SAAU9gL,SAAA,EACvFq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLpN,MAAOqqL,EACPv8K,SArCYkC,IACpB,MAAMgS,EAAQhS,EAAEjR,OAAOiB,MACvBsqL,EAAetoK,GACfyoK,EAAazoK,EAAM,EAmCXxU,UAAU,sCACV67H,YAAY,kBACZj0D,MAAO,CAAEy1G,YAAa,UAAWC,aAAc,aAEjD3F,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,oCAAmC1D,UACjDq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,6BAKT23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sBAAqB1D,UAC9Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,eAAc1D,UAC3Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,SACnBygL,GAAoBA,EAAiBn2J,KAAI,CAACs3J,EAASr9J,KACpD82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8BAA6B1D,UACxCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,eAAc1D,UAC3Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAqB4nE,MAAO,CAAEy2G,gBAAgB,OAAD1jL,OAAgB,OAAPujL,QAAO,IAAPA,OAAO,EAAPA,EAASI,iBAAgB,MAAMhiL,SAAA,EAEpGu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,2BAA0B1D,SAAA,EACvCq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAa,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASE,gBACfvG,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAW,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASK,gBAAgB,MAAW,OAAPL,QAAO,IAAPA,OAAO,EAAPA,EAASM,oBAG5C7G,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAU,oBAAoBmpH,GAAI,CAC1CryF,SAAU,kBACVviB,OAAO,cAAD5Z,OAAuB,OAAPujL,QAAO,IAAPA,OAAO,EAAPA,EAASV,cAXe38J,aAoBnD,ECkCP,GA7HgB49J,KACZ,MAAOC,EAAOC,IAAYjiL,EAAAA,EAAAA,UAAS,KAC9BggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IA8BzCvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAO0P,QAAS,KAAMsC,GANvBj2H,IAEZi4H,EAASj4H,EAAI2zH,QAAQ,IAIqC74K,IAC1D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKjB,GACX,IAMH,MAAO84K,EAAYsE,IAAiBliL,EAAAA,EAAAA,UAAS,IAgB/C,OAJIvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAO2P,WAAY,KAAMqC,GAL1Bj2H,IACZk4H,EAAcl4H,EAAI4zH,WAAW,IAIgC94K,IAC7D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKd,GACd,KAELq2K,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACJq7K,EAAAA,GAAAA,KAACD,GAAY,KAEbC,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAChCu7K,EAAAA,GAAAA,MAAA,WAAS73K,UAAU,eAAc1D,SAAA,EACbq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,qBAAoB1D,SAAC,6BACnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAChBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAmC1D,SACjDoiL,IAAU/G,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,GAAGknE,wBAAyB,CAAEC,OA/B9E,SAAoBkgE,GAClB,MAAMw3C,EAAMnhJ,SAASzgC,cAAc,YAEnC,OADA4hL,EAAIhxF,UAAYw5C,EACTw3C,EAAIrsL,KACb,CA2BsFssL,CAAgB,OAALJ,QAAK,IAALA,OAAK,EAALA,EAAOK,wBA8B5GpH,EAAAA,GAAAA,KAAA,OAAK/vG,MAAO,CAAC+1G,WAAY,yBAA0B39K,UAAU,YAAW1D,UACtEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4CAA4C4nE,MAAO,CAACo3G,UAAW,QAAQ1iL,UACpFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wBAAuB1D,UACpCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAe,OAAVqgH,QAAU,IAAVA,OAAU,EAAVA,EAAY1pC,MAAQ5wI,UAAU,uBAAuB4nE,MAAO,CAACo4B,OAAO,QAASD,MAAM,SAAW+3E,IAAI,mBAE9GH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UACjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EAC1Bq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,iCAAiC4nE,MAAO,CAACyqF,gBAAgB,UAAUnwD,MAAM,SAAS5lG,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,qBACxGu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAA,MAAI/vG,MAAO,CAACmoB,WAAW,MAAOgoF,SAAS,UAAUz7K,SAAY,OAAVg+K,QAAU,IAAVA,OAAU,EAAVA,EAAY2E,WAC/DtH,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,QAAQ4nE,MAAO,CAACs6B,MAAM,WAAW5lG,SAAY,OAAVg+K,QAAU,IAAVA,OAAU,EAAVA,EAAYyE,cAE/DpH,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,WAAWvpH,KAAK,SAASs/K,MAAM,iCAAgC5iL,SAAC,6BAOjFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC5Bq7K,EAAAA,GAAAA,KAAC6E,GAAc,KACf7E,EAAAA,GAAAA,KAACqG,GAAc,SAEZ,ECjIP,SAASlkL,GAAE0I,GAAG,IAAI+K,EAAEoC,EAAEpb,EAAE,GAAG,GAAG,iBAAiBiO,GAAG,iBAAiBA,EAAEjO,GAAGiO,OAAO,GAAG,iBAAiBA,EAAE,GAAG/O,MAAMC,QAAQ8O,GAAG,CAAC,IAAIpO,EAAEoO,EAAE9Q,OAAO,IAAI6b,EAAE,EAAEA,EAAEnZ,EAAEmZ,IAAI/K,EAAE+K,KAAKoC,EAAE7V,GAAE0I,EAAE+K,OAAOhZ,IAAIA,GAAG,KAAKA,GAAGob,EAAE,MAAM,IAAIA,KAAKnN,EAAEA,EAAEmN,KAAKpb,IAAIA,GAAG,KAAKA,GAAGob,GAAG,OAAOpb,CAAC,CAAgI,SAAxH,WAAgB,IAAI,IAAIiO,EAAE+K,EAAEoC,EAAE,EAAEpb,EAAE,GAAGH,EAAE3C,UAAUC,OAAOie,EAAEvb,EAAEub,KAAKnN,EAAE/Q,UAAUke,MAAMpC,EAAEzT,GAAE0I,MAAMjO,IAAIA,GAAG,KAAKA,GAAGgZ,GAAG,OAAOhZ,CAAC,i+eCO/W,MAmNA,GAnNe4gK,KAAO,IAADkjB,EACjB,MAAMliL,EAAW+5K,IACjB,IAAIt6J,EAA2C,QAAtCyiK,EAAG33J,aAAa83J,QAAQ,sBAAc,IAAAH,GAAAA,EAC/C,MAAO8G,EAAYC,IAAiB1iL,EAAAA,EAAAA,UAASvG,EAAS2gC,UAChDuoJ,EAAiB3+J,aAAa83J,QAAQ,aACrC8G,EAAUC,IAAe7iL,EAAAA,EAAAA,UAAS2iL,EAAiB1sK,KAAKe,MAAM2rK,GAAkB,OAChFG,EAAYC,IAAiB/iL,EAAAA,EAAAA,UAASgkB,aAAa83J,QAAQ,iBAC5D1H,EAAWR,MACVoM,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IAC3CvE,EAAAA,EAAAA,YAAU,KACNinL,EAAcjpL,EAAS2gC,SAAS,GACjC,CAAC3gC,EAAS2gC,WACb,MAAM4oJ,EAAgBA,KAClB5O,EAAS,SAAS,EAKhB6O,EAAcA,KAChB7O,EAAS,aAAa,EAEpB8O,EAA2BA,KAC7B9O,EAAS,oBAAoB,EAE3B+O,EAAsBA,KACxB/O,EAAS,mBAAmB,EAE1BgP,EAAiBA,KACnBhP,EAAS,UAAU,EASjBiP,EAAeA,KAmCjB9H,GAAQ,OAAQtN,GAAOkP,OAAO,KAAO8C,GAlCvBj2H,IACY,KAAlBA,EAAI9hC,aAEJlE,aAAaq4J,QAAQ,WAAY,MACjCr4J,aAAaq4J,QAAQ,cAAe,IACpCr4J,aAAaq4J,QAAQ,eAAgB,IACrCwG,EAAY,IACZS,GAAMv3I,QAAQ,0BAA2B,CACrCw3I,UAAW,KACXC,QAASA,KACLx/J,aAAay/J,WAAW,gBAExBV,GAAc,GACd3O,EAAS,IAAI,IAGzB,IAkBwDtvK,IACxD/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAER,OACIq2K,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACIq7K,EAAAA,GAAAA,KAACyI,GAAc,IAEC,MAAfjB,GAAqC,aAAfA,GAA4C,aAAfA,GAA4C,eAAfA,GAEzExH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wCAAuC1D,UAClDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAkB4nE,MAAO,CAAEw1G,SAAU,OAAQ9gL,SAAA,EAExDq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4Bj6D,UAAU,eAAe83K,IAAI,MAClEH,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,iBAAiBJ,KAAK,SAAS,iBAAe,WAAW,iBAAe,0BAA0B,gBAAc,yBAAyB,gBAAc,QAAQ,aAAW,oBAAmBtD,UAC3Mq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,2BAEpB63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,2BAA2B4nE,MAAO,CAAE4vF,WAAY,OAASz3J,GAAG,yBAAwBzD,SAAA,EAE/Fu7K,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,qBAAoB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAS,yBAAArF,OAA0C,MAAfwkL,EAAqB,UAAY,IAAM,eAAa,OAAOh2D,GAAG,IAAG7sH,SAAC,YAEhHq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAS,yBAAArF,OAA0C,aAAfwkL,EAA4B,UAAY,IAAMh2D,GAAG,WAAU7sH,SAAC,gBAE1Gq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAS,yBAAArF,OAA0C,aAAfwkL,EAA4B,UAAY,IAAMh2D,GAAG,WAAU7sH,SAAC,mBAE1Gq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAS,yBAAArF,OAA0C,eAAfwkL,EAA8B,UAAY,IAAMh2D,GAAG,aAAY7sH,SAAC,oBAGjHsZ,GAAQiiK,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,qBAAoB1D,SAAA,EACvCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,yBAAwB1D,UAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAOQ,QAASm/K,EAAa/3G,MAAO,CAAE6qE,OAAQ,WAAax4E,IAAI,2BAA2B69G,IAAI,QAGjHH,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,OACI19G,IAAa,OAARqlH,QAAQ,IAARA,OAAQ,EAARA,EAAUe,OACfrgL,UAAU,kBACV,iBAAe,WACf,gBAAc,QACd83K,IAAI,GACJlwG,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,OAAQyyC,OAAQ,cAEpDolC,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,qBAAqB4nE,MAAO,CAAEvuE,KAAM,SAAUiD,SAAA,EACxDq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIu7K,EAAAA,GAAAA,MAAA,UAAQ73K,UAAU,mCAAmCQ,QAASA,IAAMq/K,IAAsBvjL,SAAA,CAAC,KAACq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAQi6D,IAAI,wBAAwB69G,IAAI,KAAK,sBAC5JH,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIu7K,EAAAA,GAAAA,MAAA,UAAQ73K,UAAU,mCAAmCQ,QAASA,IAAMo/K,IAA2BtjL,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAOi6D,IAAI,yBAAyB69G,IAAI,KAAK,2BAChKH,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIu7K,EAAAA,GAAAA,MAAA,UAAQ73K,UAAU,qBAAqBQ,QAASu/K,EAAazjL,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAOi6D,IAAI,0BAA0B69G,IAAI,KAAK,2BAQ3ID,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,qBAAoB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,kDAAkDQ,QAASk/K,EAAe93G,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,SAAUzjG,SAAC,aAE3Iq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,2CAA2CQ,QAASs/K,EAAgBl4G,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,SAAUzjG,SAAC,0BAWxJq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,0BAA0B4nE,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,UAChGu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAkB4nE,MAAO,CAAEw1G,SAAU,OAAQ9gL,SAAA,EACxDq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,6BAA6Bj6D,UAAU,eAAe83K,IAAI,MACnEH,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,iBAAiBJ,KAAK,SAAS,iBAAe,WAAW,iBAAe,0BAA0B,gBAAc,yBAAyB,gBAAc,QAAQ,aAAW,oBAAmBtD,UAC3Mq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,2BAEpB63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,2BAA2B4nE,MAAO,CAAE4vF,WAAY,OAASz3J,GAAG,yBAAwBzD,SAAA,EAC/Fu7K,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,qBAAoB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAS,yBAAArF,OAA0C,MAAfwkL,EAAqB,UAAY,IAAMv3G,MAAO,CAAEs6B,MAAO,SAAW,eAAa,OAAOinB,GAAG,IAAG7sH,SAAC,YAE3Iq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAS,yBAAArF,OAA0C,aAAfwkL,EAA4B,UAAY,IAAMv3G,MAAO,CAAEs6B,MAAO,SAAWinB,GAAG,WAAU7sH,SAAC,gBAErIq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAS,yBAAArF,OAA0C,aAAfwkL,EAA4B,UAAY,IAAMv3G,MAAO,CAAEs6B,MAAO,SAAWinB,GAAG,WAAU7sH,SAAC,mBAErIq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAS,yBAAArF,OAA0C,eAAfwkL,EAA8B,UAAY,IAAMv3G,MAAO,CAAEs6B,MAAO,SAAWinB,GAAG,aAAY7sH,SAAC,oBAG5IsZ,GAASiiK,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,qBAAoB1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,yBAAwB1D,UAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAOQ,QAASm/K,EAAa/3G,MAAO,CAAE6qE,OAAQ,WAAax4E,IAAI,2BAA2B69G,IAAI,QAGjHH,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,OACI19G,IAAa,OAARqlH,QAAQ,IAARA,OAAQ,EAARA,EAAUe,OACfrgL,UAAU,kBACV,iBAAe,WACf,gBAAc,QACd83K,IAAI,GACJlwG,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,OAAQyyC,OAAQ,cAEpDolC,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,qBAAqB4nE,MAAO,CAAEvuE,KAAM,SAAUiD,SAAA,EACxDq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIu7K,EAAAA,GAAAA,MAAA,UAAQ73K,UAAU,mCAAmCQ,QAASA,IAAMq/K,IAAsBvjL,SAAA,CAAC,KAACq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAQi6D,IAAI,wBAAwB69G,IAAI,KAAK,sBAC5JH,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIu7K,EAAAA,GAAAA,MAAA,UAAQ73K,UAAU,mCAAmCQ,QAASA,IAAMo/K,IAA2BtjL,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAOi6D,IAAI,yBAAyB69G,IAAI,KAAK,2BAChKH,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIu7K,EAAAA,GAAAA,MAAA,UAAQ73K,UAAU,qBAAqBQ,QAASu/K,EAAazjL,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAOi6D,IAAI,0BAA0B69G,IAAI,KAAK,2BAQ3ID,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,qBAAoB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,kDAAkDQ,QAASk/K,EAAe93G,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,SAAUzjG,SAAC,aAE3Iq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CQ,QAASs/K,EAAgBl4G,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,SAAUzjG,SAAC,2BAQ7J,EC7GX,GApGegkL,KACb,MAAOC,EAAaC,IAAkB9jL,EAAAA,EAAAA,UAAS,KACxCggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GAiB3C,OAJIvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAO4P,iBAAkB,KAAMoC,GANhCj2H,IAEZ85H,EAAe95H,EAAI6zH,iBAAiB,IAI+B/4K,IACnE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKb,GACf,KAELm2K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACnBu7K,EAAAA,GAAAA,MAAA,UACQ73K,UAAU,wCACV4nE,MAAO,CAACyqF,gBAAiB,WAAW/1J,SAAA,EAE1Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2BAA0B1D,UACvCq7K,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,GAAE1D,UACnBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EAItDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAOi6D,IAAI,4BAA4B69G,IAAI,MAC1DH,EAAAA,GAAAA,KAAA,MAAI/vG,MAAO,CAACmoB,WAAW,OAAQ/vF,UAAU,OAAM1D,SAAC,qGAGhDq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,QAAQ03B,KAAiB,OAAX6oJ,QAAW,IAAXA,OAAW,EAAXA,EAAaE,QAASlvL,OAAO,SAAQ+K,UAACq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,iCAAiC69G,IAAI,QAC/GH,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,QAAQ03B,KAAiB,OAAX6oJ,QAAW,IAAXA,OAAW,EAAXA,EAAaG,UAAWnvL,OAAO,SAAQ+K,UAACq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,+BAA+B69G,IAAI,QAC/GH,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,QAAQ03B,KAAiB,OAAX6oJ,QAAW,IAAXA,OAAW,EAAXA,EAAaI,SAAUpvL,OAAO,SAAQ+K,UAACq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,8BAA8B69G,IAAI,QAC7GH,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,QAAQ03B,KAAiB,OAAX6oJ,QAAW,IAAXA,OAAW,EAAXA,EAAa/tD,SAAUjhI,OAAO,SAAQ+K,UAACq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,8BAA8B69G,IAAI,WAK/GH,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,8BAEd63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACtDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,SAAQ1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mBAC1Bq7K,EAAAA,GAAAA,KAAA,KAAAr7K,UACEq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,IAAIvhD,MAAO,CAAC21G,eAAe,QAASv9K,UAAU,aAAY1D,SAAC,YAEtEq7K,EAAAA,GAAAA,KAAA,KAAAr7K,UACEq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,WAAWvhD,MAAO,CAAC21G,eAAe,QAASv9K,UAAU,aAAY1D,SAAC,gBAE7Eq7K,EAAAA,GAAAA,KAAA,KAAAr7K,UACEq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,aAAavhD,MAAO,CAAC21G,eAAe,QAASv9K,UAAU,aAAY1D,SAAC,kBAE/Eq7K,EAAAA,GAAAA,KAAA,KAAAr7K,UACEq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,WAAWvhD,MAAO,CAAC21G,eAAe,QAASv9K,UAAU,aAAY1D,SAAC,sBAI/Eq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,8BAEd23K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,8BAEd63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACtDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,SAAQ1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,oBAC1Bq7K,EAAAA,GAAAA,KAAA,KAAAr7K,UACEq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,iBAAiBvhD,MAAO,CAAC21G,eAAe,QAASv9K,UAAU,aAAY1D,SAAC,sBAEnFq7K,EAAAA,GAAAA,KAAA,KAAAr7K,UACEq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,qBAAqBvhD,MAAO,CAAC21G,eAAe,QAASv9K,UAAU,aAAY1D,SAAC,uBAMzFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACtDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,SAAQ1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,eAE1Bu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,EAAGq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,oBAAoB4nE,MAAO,CAAEg5G,YAAY,UAAa,wBACtE/I,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,EAAGq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,+BAA+B4nE,MAAO,CAAEg5G,YAAY,UAAa,gCACjF/I,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,EAAGq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,iCAAiC4nE,MAAO,CAAEg5G,YAAY,UAAa,sEAM3F/I,EAAAA,GAAAA,MAAA,OACK73K,UAAU,4CAA4C4nE,MAAO,CAACi5G,WAAW,WAAWvkL,SAAA,EACvFq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,4BAA8B,mDAI1C,EC6HP,GAzNa8gL,MACX3oL,EAAAA,EAAAA,YAAU,KACRuJ,OAAOq/K,SAAS,EAAG,EAAE,GACpB,IACH,MAAOtG,EAASuG,IAActkL,EAAAA,EAAAA,UAAS,KAChCggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IAavCvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAO8P,QAAS,KAAMkC,GANvBj2H,IAEZs6H,EAAWt6H,EAAIl7C,KAAKoxK,KAAK,IAIiCp7K,IAC1D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKjB,GACX,IAEH,MAAMy/K,EAAezuL,IAEnB,MAAM0uL,EAAY5yK,KAAKC,MAAM/b,GACvB2uL,EAAiB,EAAID,EACrBE,EAAQ,GAGd,IAAK,IAAI5vL,EAAI,EAAGA,EAAI0vL,EAAW1vL,IAC7B4vL,EAAMhwL,MAAKumL,EAAAA,GAAAA,KAAA,KAAWuH,MAAM,mBAAmBt3G,MAAO,CAACs6B,MAAO,YAA3C1wG,IAIrB,IAAK,IAAIA,EAAI,EAAGA,EAAI2vL,EAAgB3vL,IAClC4vL,EAAMhwL,MAAKumL,EAAAA,GAAAA,KAAA,KAAuBuH,MAAM,qBAAqBt3G,MAAO,CAACs6B,MAAO,YAAzDg/E,EAAY1vL,IAGjC,OAAO4vL,CAAK,EAEhB,OACIvJ,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EAGRq7K,EAAAA,GAAAA,KAACD,GAAY,KAEDG,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC5Bu7K,EAAAA,GAAAA,MAAA,WAAS73K,UAAU,eAAc1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,6BAA4B1D,SAAC,kBAC3Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAChBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAmC1D,UAC9Cq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,WAAU1D,SAAC,sMAMpCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,6BAA4B1D,SAAA,EACvCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8FAA6F1D,UACxGu7K,EAAAA,GAAAA,MAAA,OAAKjwG,MAAO,CAAEw1G,SAAU,SAAU9gL,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yBAAyBj6D,UAAU,mDAAmD4nE,MAAO,CAAEo4B,OAAQ,QAASD,MAAO,SAAW+3E,IAAI,SAC/ID,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAwB4nE,MAAO,CAAEw1G,SAAU,SAAU9gL,SAAA,EAChEq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,kBAAiB1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,8CACnCq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,kCAAiC1D,SAAC,uOAKlEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8FAA6F1D,UACxGu7K,EAAAA,GAAAA,MAAA,OAAKjwG,MAAO,CAAEw1G,SAAU,SAAU9gL,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,6BAA6Bj6D,UAAU,mDAAmD4nE,MAAO,CAAEo4B,OAAQ,QAASD,MAAO,SAAW+3E,IAAI,SACnJD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAwB4nE,MAAO,CAAEw1G,SAAU,SAAU9gL,SAAA,EAChEq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,kBAAiB1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,4CACnCq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,iCAAgC1D,SAAE,8NAMlEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8FAA6F1D,UACxGu7K,EAAAA,GAAAA,MAAA,OAAKjwG,MAAO,CAAEw1G,SAAU,SAAU9gL,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,6BAA6Bj6D,UAAU,mDAAmD4nE,MAAO,CAAEo4B,OAAQ,QAASD,MAAO,SAAW+3E,IAAI,SACnJD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAwB4nE,MAAO,CAAEw1G,SAAU,SAAU9gL,SAAA,EAChEq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,kBAAiB1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,4CACnCq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,iCAAgC1D,SAAC,6NAS7Eq7K,EAAAA,GAAAA,KAAC6E,GAAc,KAE3B7E,EAAAA,GAAAA,KAACqG,GAAc,KACfrG,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACjBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC7Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,mBAAkB1D,SAAC,wBACjCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kCAEnB23K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,mBAAkB1D,SAAC,wBAEzCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kCAAiC1D,UAChDq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,mBAAkB1D,SAAC,2LAMnCq7K,EAAAA,GAAAA,KAAA,WAAS/vG,MAAO,CAACs6B,MAAO,QAAQ5lG,UAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAEpBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gCAA+B1D,SAC7Cm+K,GAAWA,EAAQ7zJ,KAAI,CAACy6J,EAAQxgK,KAC/B82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,oCAAmC1D,UAC5Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BAA+B4nE,MAAO,CAAC05G,SAAS,SAAShlL,UACtEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sBAAqB1D,SAAA,EAElCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,mBAAmB4nE,MAAO,CAACmwG,SAAS,QAAQz7K,SAAQ,OAAN+kL,QAAM,IAANA,OAAM,EAANA,EAAQttD,SAEpE8jD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACjBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACzBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,qEAGb63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EAC3Bq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,0BAAyB1D,SAC/B,OAAN+kL,QAAM,IAANA,OAAM,EAANA,EAAQn1J,QAEb2rJ,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCACbi6D,IAAW,OAANonH,QAAM,IAANA,OAAM,EAANA,EAAQhB,OAAQvI,IAAI,SACzB/3E,MAAM,KAAKC,OAAO,UAEtB23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oDAAmD1D,UAChEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,SACZ,OAAN+kL,QAAM,IAANA,OAAM,EAANA,EAAQE,aAGVN,EAAkB,OAANI,QAAM,IAANA,OAAM,EAANA,EAAQG,4BA5B/B3gK,YA6DhB82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,WAAU1D,SAAA,EACzBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8BAA6B1D,SAAA,EAC1Cq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,wBAAwB69G,IAAI,GAAG93K,UAAU,oCAClD23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,MAAI/vG,MAAO,CAACmwG,SAAS,OAAQhoF,WAAW,IAAK8wF,WAAW,UAAW3+E,MAAM,QAAQu/E,WAAW,QAAQnlL,SAAC,uDAGzGq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,2BAA0B1D,SAAC,0HACzCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2BAA2B69G,IAAI,GAAG93K,UAAU,yBACrD23K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2BAA2B69G,IAAI,GAAG93K,UAAU,iCAKvD23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2BAA2Bj6D,UAAU,yBAAyB83K,IAAI,6BAUtE,EC5MX,GAbgB4J,KAEZ7J,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACD,GAAY,KACbG,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EAEnCq7K,EAAAA,GAAAA,KAAC6E,GAAc,KACf7E,EAAAA,GAAAA,KAACqG,GAAc,UCoIrB,GAzIkB2D,KAChB,MAAOC,EAAWC,IAAgBnlL,EAAAA,EAAAA,UAAS,KACpColL,EAAUC,IAAerlL,EAAAA,EAAAA,UAAS,KAClCylG,EAAO6/E,IAAYtlL,EAAAA,EAAAA,UAAS,KAC5B2Y,EAAS4sK,IAAcvlL,EAAAA,EAAAA,UAAS,KAChCggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GACrCo0K,EAAWR,KA+CjB,OACEuH,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACD,GAAY,KACbC,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC/Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACnBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,WAAU1D,SAAA,EACzBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EACjCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,wBAAwB69G,IAAI,GAAG93K,UAAU,oCAClD23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,MAAI/vG,MAAO,CAACmwG,SAAS,OAAQhoF,WAAW,IAAK8wF,WAAW,UAAW3+E,MAAM,QAAQu/E,WAAW,QAAQnlL,SAAC,+CAGzGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,mBAAkB1D,SAAC,0FAEnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,kBAAiB1D,SAAC,yBAChCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,sBAAqB1D,SAAC,qBACtCq7K,EAAAA,GAAAA,KAAA,KAAAr7K,UAAGq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,yBACRq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,uBACPq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,WAAW4nE,MAAO,CAACmwG,SAAS,QAAQz7K,SAAC,8IAEpDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAuB1D,SAAA,EACpCq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,6BACPq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,WAAW4nE,MAAO,CAACmwG,SAAS,QAAQz7K,SAAC,2JAMtDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACzBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UACpBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wBAAuB1D,UACtCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAqC1D,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,oBACxBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,sBAAqB1D,SAAC,kBACnCu7K,EAAAA,GAAAA,MAAA,QAAAv7K,SAAA,EACIu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,WAAU1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,mCAAmCD,GAAG,YAAYO,SAzFtEkC,IAC7Bq/K,EAAar/K,EAAEjR,OAAOiB,MAAM,EAwFwGqpI,YAAY,oBAGpI87C,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAY1D,UACvBq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,mCAAmCD,GAAG,WAAWO,SA3FtEkC,IAC5Bu/K,EAAYv/K,EAAEjR,OAAOiB,MAAM,EA0FuGqpI,YAAY,sBAItI87C,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,QAAQI,UAAU,mCAAmCD,GAAG,QAAQ87H,YAAY,IAAIv7H,SA9FvEkC,IACzBw/K,EAASx/K,EAAEjR,OAAOiB,MAAM,IA8FT,KAAV2vG,IAAiB01E,EAAAA,GAAAA,MAAA,SAAO90G,IAAI,QAAQ/iE,UAAU,oEAAmE1D,SAAA,EAClHq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,sCAAwC,uBAKjD23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,YAAU33K,UAAU,mCAAmCD,GAAG,UAAU87H,YAAY,UAAUv7H,SAnG3EkC,IAC3By/K,EAAWz/K,EAAEjR,OAAOiB,MAAM,EAkG2G0vL,KAAK,SAElIvK,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAChCq7K,EAAAA,GAAAA,KAAA,UAAQ/3K,KAAK,SAASY,QAlGHgC,IAEvB/H,QAAQo7B,IAAIisJ,GACZrnL,QAAQo7B,IAAI+rJ,GACZnnL,QAAQo7B,IAAIssE,GACZ1nG,QAAQo7B,IAAIxgB,GACZ7S,EAAE84F,iBAsBF28E,GAAQ,OAAQtN,GAAOsR,UANZ,CACTkG,UAAWP,EACXQ,SAAUN,EACV3/E,MAAOA,EACP9sF,QAASA,GAE6BsnK,GArB1Bj2H,IACU,KAAlBA,EAAI9hC,WAENo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CACnB4qK,UAAW,KACXC,QAASA,KACpBpP,EAAS,IAAI,IAIVkP,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAQ6Dz+K,IAC7D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAoEkDxB,UAAU,oCAAoC4nE,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAC,cAErJq7K,EAAAA,GAAAA,KAACyI,GAAc,KACPzI,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yBAAwB1D,UACnCu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,4BAA4B+iE,IAAI,QAAOzmE,SAAA,CAAC,uCAAmCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,eAAc1D,SAAC,qBAAoB,SAAKq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,eAAc1D,SAAC,mBAAkB,8BAWxM,ECwPP,GA/XsB+lL,KAAO,IAADhK,EAAAiK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC1B,MAAMjU,EAAWR,MACV0U,EAAYC,IAAiBvoL,EAAAA,EAAAA,UAAS,IAC7C,IAAIkZ,EAA2C,QAAtCyiK,EAAG33J,aAAa83J,QAAQ,sBAAc,IAAAH,GAAAA,EAC7C,MAyBKqE,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IACpCwoL,EAAcC,IAAmBzoL,EAAAA,EAAAA,UAAS,IAC3CvG,EAAW+5K,IAETkV,GADc,IAAI/+G,gBAAgBlwE,EAASoe,QACpBhQ,IAAI,aAcjCpM,EAAAA,EAAAA,YAAU,KACJitL,IALJnN,GAAQ,MAAOtN,GAAOgQ,cAAc,IAAIyK,GAAU,KAAMzI,GAP1Cj2H,IAEZy+H,EAAgBz+H,EAAI2+H,WAAW,IAK8C7jL,IAC7E/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAM7B,GACC,CAAC4jL,KAyBF,MAsBOE,GAAWC,IAtBCC,EAACzxD,EAAO0xD,KACzB,IAAK1xD,EAAO,MAAO,CAAC,GAAI,IAGxB,IAAI2xD,EAAaD,EAEjB,GAAI1xD,EAAMriI,OAAS+zL,EAAW,CAC5B,KAAOC,EAAa,GAA2B,MAAtB3xD,EAAM2xD,IAC7BA,IAGiB,IAAfA,IAEFA,EAAaD,EAEjB,CAKA,MAAO,CAHW1xD,EAAMj7F,UAAU,EAAG4sJ,GAClB3xD,EAAMj7F,UAAU4sJ,GAAYtrI,OAEjB,EAEAorI,CAAuB,OAAZN,QAAY,IAAZA,OAAY,EAAZA,EAAcnxD,MAAO,IAChE,SAAS+qD,GAAWz3C,GAClB,MAAMw3C,EAAMnhJ,SAASzgC,cAAc,YAEnC,OADA4hL,EAAIhxF,UAAYw5C,EACTw3C,EAAIrsL,KACb,CACJ,OACEqlL,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAChCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,WAAU1D,SAAA,EACzBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EACjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,kBAAiB1D,SAAEgpL,MACjC3N,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kCAEjB23K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,kBAAiB1D,SAAEipL,SAErC5N,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BAA8B1D,UAC7Cq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,mBAAoBknE,wBAAyB,CAAEC,OAAQ23G,GAAuB,OAAZoG,QAAY,IAAZA,OAAY,EAAZA,EAAcS,wBAMhGhO,EAAAA,GAAAA,KAAA,OAAM33K,UAAU,YAAW1D,UACvBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC5Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,eAAc1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAmC1D,UAC9Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,GAAE1D,SAAA,EACjBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iCAAgC1D,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACzCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAoCi6D,IAAiB,OAAZirH,QAAY,IAAZA,OAAY,EAAZA,EAAczH,UAAW71G,MAAO,CAACo4B,OAAO,cAEpG63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oDAAmD1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,QAAO/vG,MAAO,CAAE21G,eAAgB,OAAOr7E,MAAM,SAAU5lG,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAgB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcnxD,WAC7I4jD,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAa4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,SAC7H,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAc58C,cAInBuvC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAc,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcpH,YAAiBnG,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAgB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcnH,uBAC/HlG,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4DAA2D1D,SAAA,EAC5Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC7Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC7Cq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kCACb63K,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,gBAAe1D,SAAA,CAAc,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcU,cAAc,qBAG5DjO,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC7Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC7Cq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,mCACb23K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,gBAAe1D,SAAc,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcnH,0BAIhDlG,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,0BAChCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,gBAAgBknE,wBAAyB,CAAEC,OAAQ23G,GAAuB,OAAZoG,QAAY,IAAZA,OAAY,EAAZA,EAAcS,oBAE7F9N,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,wBACtCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,YAAYknE,wBAAyB,CAAEC,OAAQ23G,GAAuB,OAAZoG,QAAY,IAAZA,OAAY,EAAZA,EAAcW,kBAExFhO,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0BAAyB1D,SAAA,EACpCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,oBACnB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcY,SAAqB,OAAZZ,QAAY,IAAZA,OAAY,EAAZA,EAAcY,MAAMl/J,KAAI,CAACm/J,EAAMllK,KAAWg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC9Hu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BACbi6D,IAAI,8CAA8C69G,IAAI,SACtD/3E,MAAM,KAAKC,OAAO,UAEtB23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oDAAmD1D,UAChEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAQ,OAAJypL,QAAI,IAAJA,OAAI,EAAJA,EAAMC,iBAGZrO,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAM,OAAJypL,QAAI,IAAJA,OAAI,EAAJA,EAAME,wBAIvBtO,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sBAO/B63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,yBAChCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8CAA6C1D,UAC5Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sCACbi6D,IAAiB,OAAZirH,QAAY,IAAZA,GAAwB,QAAZ5C,EAAZ4C,EAAcgB,kBAAU,IAAA5D,OAAZ,EAAZA,EAA0BjC,OAAQvI,IAAI,SAC3C/3E,MAAM,KAAKC,OAAO,UAEtB23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oDAAmD1D,UAChEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAgB,OAAZ4oL,QAAY,IAAZA,GAAwB,QAAZ3C,EAAZ2C,EAAcgB,kBAAU,IAAA3D,OAAZ,EAAZA,EAA0BhB,gBAGhC5J,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,WAAU1D,SAAc,OAAZ4oL,QAAY,IAAZA,GAAwB,QAAZ1C,EAAZ0C,EAAcgB,kBAAU,IAAA1D,OAAZ,EAAZA,EAA0BmD,4BAU5E9N,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,yBAChCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8CAA6C1D,UAC5Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BACbi6D,IAAI,mDAAmD69G,IAAI,SAC3D/3E,MAAM,KAAKC,OAAO,UAGhB23E,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAgB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcnxD,mBAQ1C8jD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mBAChCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8CAA6C1D,UAC5Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BACbi6D,IAAI,6CAA6C69G,IAAI,SACrD/3E,MAAM,KAAKC,OAAO,UAGhB23E,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAgB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcnxD,mBAQ1C8jD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,sBACnB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcnG,WAAuB,OAAZmG,QAAY,IAAZA,OAAY,EAAZA,EAAcnG,QAAQn4J,KAAI,CAACm4J,EAASl+J,KAAW82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,6BAA4B1D,UACpIu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8DAA6D1D,SAAA,EACxEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,MAAK1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAPyiL,QAAO,IAAPA,OAAO,EAAPA,EAASoH,oBAEpCxO,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,wCANsE6gB,SAgBtFjL,GAAO+hK,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC3Bq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CQ,QA5QvDgC,IACnBA,EAAE84F,iBAaJ28E,GACE,OACAtN,GAAOmQ,iBAAiB,IAAIsK,GAC5B,KACAzI,GAfYj2H,IACW,MAAnBA,EAAI9hC,YACNqgK,EAAcv+H,EAAIl7C,MAGlBslK,EAAS,uBAAwB,CAAEhkK,MAAO,CAAEpO,aAAcgoD,EAAIl7C,KAAK9M,aAAc0nL,cAAe1/H,EAAIl7C,KAAK66K,oBAEzGC,MAAS,OAAH5/H,QAAG,IAAHA,OAAG,EAAHA,EAAKrxC,QACb,IASC7T,IACC/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAE9B,EAqPkGomE,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAC,qBAC7Hq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC5Cq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,wDAAyD4nE,MAAO,CAAEs6B,MAAM,SAAS5lG,SAAC,yCAOhHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2BAA0B1D,UACzCq7K,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,GAAE1D,UAC3Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6DAA4D1D,UACzEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,GAAE1D,SAAA,EAGbu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,eAAc1D,SAAA,EAC3Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAiB,OAAZirH,QAAY,IAAZA,GAAwB,QAAZzC,EAAZyC,EAAcgB,kBAAU,IAAAzD,OAAZ,EAAZA,EAA0BpC,OAClCrgL,UAAU,2BAA2BggG,OAAO,KAAKD,MAAM,UAE3D43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,GAAE1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAgB,OAAZ4oL,QAAY,IAAZA,GAAwB,QAAZxC,EAAZwC,EAAcgB,kBAAU,IAAAxD,OAAZ,EAAZA,EAA0BnB,cAC/C5J,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,iBAAgB1D,SAAc,OAAZ4oL,QAAY,IAAZA,GAAwB,QAAZvC,EAAZuC,EAAcgB,kBAAU,IAAAvD,OAAZ,EAAZA,EAA0BgD,eACzD9N,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qEAAoE1D,SAAA,EACjFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAQ4nE,MAAO,CAAE2+G,YAAY,qBAAqBjqL,SAAA,EAC/Dq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,UAAS1D,SAAc,OAAZ4oL,QAAY,IAAZA,GAAwB,QAAZtC,EAAZsC,EAAcgB,kBAAU,IAAAtD,OAAZ,EAAZA,EAA0B4D,gBAClD7O,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,gBAEjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACnBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,UAAS1D,SAAc,OAAZ4oL,QAAY,IAAZA,GAAwB,QAAZrC,EAAZqC,EAAcgB,kBAAU,IAAArD,OAAZ,EAAZA,EAA0B4D,6BAClD9O,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,oBAKnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yBAAwB1D,SACtCsZ,GAAQ+hK,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAE,2BAAAxuH,OAAyC,OAAZuqL,QAAY,IAAZA,GAAwB,QAAZpC,EAAZoC,EAAcgB,kBAAU,IAAApD,OAAZ,EAAZA,EAA0BtF,KAAO59K,KAAK,SAASI,UAAU,mEAAmE4nE,MAAO,CAAEmwG,SAAU,OAAQhoF,WAAY,OAAQzzF,SAAC,0BAE5Nq7K,EAAAA,GAAAA,KAAA,UAAQ/3K,KAAK,SAASI,UAAU,2DAA2D4nE,MAAO,CAAEmwG,SAAU,OAAQhoF,WAAY,OAAQzzF,SAAC,6BAM3Iq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,gBAAe1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,0BAEnCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,gBAAe1D,SAAc,OAAZ4oL,QAAY,IAAZA,GAAwB,QAAZnC,EAAZmC,EAAcgB,kBAAU,IAAAnD,OAAZ,EAAZA,EAA0B4C,eACxD9N,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAO4nE,MAAO,CAACs6B,MAAM,WAAW5lG,SAAA,EAEpC,OAAZ4oL,QAAY,IAAZA,GAAwB,QAAZlC,EAAZkC,EAAcgB,kBAAU,IAAAlD,GAAkB,QAAlBC,EAAxBD,EAA0BzI,wBAAgB,IAAA0I,GAAK,QAALC,EAA1CD,EAA6C,UAAE,IAAAC,OAAnC,EAAZA,EAAiDwD,YAAY7O,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,KAACq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4CAA4C2N,MAAO,CAAEg5G,YAAa,UAAgB,IAAc,OAAZsE,QAAY,IAAZA,GAAwB,QAAZ/B,EAAZ+B,EAAcgB,kBAAU,IAAA/C,GAAkB,QAAlBC,EAAxBD,EAA0B5I,wBAAgB,IAAA6I,GAAK,QAALC,EAA1CD,EAA6C,UAAE,IAAAC,OAAnC,EAAZA,EAAiDqD,aACnM,OAAZxB,QAAY,IAAZA,GAAwB,QAAZ5B,EAAZ4B,EAAcgB,kBAAU,IAAA5C,GAAkB,QAAlBC,EAAxBD,EAA0B/I,wBAAgB,IAAAgJ,GAAK,QAALC,EAA1CD,EAA6C,UAAE,IAAAC,OAAnC,EAAZA,EAAiDhxD,YAAYqlD,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,KAACq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,8BAA8B4nE,MAAO,CAAEg5G,YAAa,UAAc,IAAc,OAAZsE,QAAY,IAAZA,GAAwB,QAAZzB,EAAZyB,EAAcgB,kBAAU,IAAAzC,GAAkB,QAAlBC,EAAxBD,EAA0BlJ,wBAAgB,IAAAmJ,GAAK,QAALC,EAA1CD,EAA6C,UAAE,IAAAC,OAAnC,EAAZA,EAAiDnxD,aACvL,OAAZ0yD,QAAY,IAAZA,GAAwB,QAAZtB,EAAZsB,EAAcgB,kBAAU,IAAAtC,GAAkB,QAAlBC,EAAxBD,EAA0BrJ,wBAAgB,IAAAsJ,GAAK,QAALC,EAA1CD,EAA6C,UAAE,IAAAC,OAAnC,EAAZA,EAAiDrD,WAAW5I,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,KAACq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,6BAA6B4nE,MAAO,CAAEg5G,YAAa,UAAc,IAAc,OAAZsE,QAAY,IAAZA,GAAwB,QAAZnB,EAAZmB,EAAcgB,kBAAU,IAAAnC,GAAkB,QAAlBC,EAAxBD,EAA0BxJ,wBAAgB,IAAAyJ,GAAK,QAALC,EAA1CD,EAA6C,UAAE,IAAAC,OAAnC,EAAZA,EAAiDxD,YACrL,OAAZyE,QAAY,IAAZA,GAAwB,QAAZhB,EAAZgB,EAAcgB,kBAAU,IAAAhC,GAAkB,QAAlBC,EAAxBD,EAA0B3J,wBAAgB,IAAA4J,GAAK,QAALC,EAA1CD,EAA6C,UAAE,IAAAC,OAAnC,EAAZA,EAAiD1D,aAAa7I,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,KAACq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,+BAA+B4nE,MAAO,CAAEg5G,YAAa,UAAc,IAAc,OAAZsE,QAAY,IAAZA,GAAwB,QAAZb,EAAZa,EAAcgB,kBAAU,IAAA7B,GAAkB,QAAlBC,EAAxBD,EAA0B9J,wBAAgB,IAAA+J,GAAK,QAALC,EAA1CD,EAA6C,UAAE,IAAAC,OAAnC,EAAZA,EAAiD7D,cACzL,OAAZwE,QAAY,IAAZA,GAAwB,QAAZV,EAAZU,EAAcgB,kBAAU,IAAA1B,GAAkB,QAAlBC,EAAxBD,EAA0BjK,wBAAgB,IAAAkK,GAAK,QAALC,EAA1CD,EAA6C,UAAE,IAAAC,OAAnC,EAAZA,EAAiDiC,WAAW9O,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,KAACq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,0BAA0B4nE,MAAO,CAAEg5G,YAAa,UAAc,IAAc,OAAZsE,QAAY,IAAZA,GAAwB,QAAZP,EAAZO,EAAcgB,kBAAU,IAAAvB,GAAkB,QAAlBC,EAAxBD,EAA0BpK,wBAAgB,IAAAqK,GAAK,QAALC,EAA1CD,EAA6C,UAAE,IAAAC,OAAnC,EAAZA,EAAiD8B,eAG7LhP,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,gBAAe1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,eAEjCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACb,OAAZ4oL,QAAY,IAAZA,GAAwB,QAAZJ,EAAZI,EAAcgB,kBAAU,IAAApB,OAAZ,EAAZA,EAA0B8B,qBAAiC,OAAZ1B,QAAY,IAAZA,GAAwB,QAAZH,EAAZG,EAAcgB,kBAAU,IAAAnB,OAAZ,EAAZA,EAA0B6B,kBAAkBhgK,KAAI,CAACs2J,EAAQr8J,KACzG82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uCAAsC1D,UACjDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uFAAsF1D,SAAA,EACjGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UAC1Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAai6D,IAAW,OAANijH,QAAM,IAANA,OAAM,EAANA,EAAQO,UAAW19E,MAAM,KAAKn4B,MAAO,CAACo4B,OAAO,aAE9E23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACpDq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAI,CAClBryF,SAAU,iBACVviB,OAAO,aAAD5Z,OAAqB,OAANuiL,QAAM,IAANA,OAAM,EAANA,EAAQM,MAC5B51G,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAM,SAAU5lG,UACtCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAU,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQnpD,aAErC4jD,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAa4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4wE,QAAS,WAAYhzD,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,SAAUrmB,WAAY,QAASl7J,SACxN,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQ50C,cAITuvC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAExDq7K,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAACmwG,SAAS,QAAQz7K,UAACu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAQ,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQY,YAC7CnG,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAACmwG,SAAS,QAAQz7K,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,6DAsBpD,EChYP,IAoIIuqL,GApIAC,GAAS,2BACTC,GAAe,4CACfC,GAA0B,mJAiB1BC,GAAe,SAAsB5pK,GACvC,IAAI+mB,EAAc/mB,IAAWA,EAAO6pK,qBAAuB,8BAAgC,GACvFvqG,EAASj/C,SAASzgC,cAAc,UACpC0/E,EAAO1iB,IAAM,GAAGt/D,OAAOmsL,IAAQnsL,OAAOypC,GACtC,IAAI+iJ,EAAazpJ,SAASo/C,MAAQp/C,SAASxR,KAE3C,IAAKi7J,EACH,MAAM,IAAI7wL,MAAM,+EAIlB,OADA6wL,EAAW3gH,YAAYmW,GAChBA,CACT,EAcIxhF,GAAgB,KAChBisL,GAAkB,KAClBC,GAAiB,KAkBjBC,GAAa,SAAoBjqK,GAEnC,OAAsB,OAAlBliB,GACKA,IAGTA,GAAgB,IAAIC,SAAQ,SAAUC,EAAS8wC,GAC7C,GAAsB,qBAAXzqC,QAA8C,qBAAbg8B,SAW5C,GAJIh8B,OAAO6lL,QAAUlqK,GACnB5iB,QAAQC,KAAKssL,IAGXtlL,OAAO6lL,OACTlsL,EAAQqG,OAAO6lL,aAIjB,IACE,IAAI5qG,EAtFO,WAGf,IAFA,IAAIkrF,EAAUnqI,SAAS6nF,iBAAiB,gBAAiB5qH,OAAOmsL,GAAQ,OAE/Dt1L,EAAI,EAAGA,EAAIq2K,EAAQn2K,OAAQF,IAAK,CACvC,IAAImrF,EAASkrF,EAAQr2K,GAErB,GAAKu1L,GAAanyL,KAAK+nF,EAAO1iB,KAI9B,OAAO0iB,CACT,CAEA,OAAO,IACT,CAwEmB6qG,GAEb,GAAI7qG,GAAUt/D,EACZ5iB,QAAQC,KAAKssL,SACR,GAAKrqG,GAEL,GAAIA,GAA6B,OAAnB0qG,IAA+C,OAApBD,GAA0B,CACxE,IAAIK,EAGJ9qG,EAAO6W,oBAAoB,OAAQ6zF,IACnC1qG,EAAO6W,oBAAoB,QAAS4zF,IAGS,QAA5CK,EAAqB9qG,EAAOxuB,kBAA+C,IAAvBs5H,GAAyCA,EAAmB15F,YAAYpR,GAC7HA,EAASsqG,GAAa5pK,EACxB,OAXEs/D,EAASsqG,GAAa5pK,GAaxBgqK,GApDO,SAAgBhsL,EAAS8wC,GACpC,OAAO,WACDzqC,OAAO6lL,OACTlsL,EAAQqG,OAAO6lL,QAEfp7I,EAAO,IAAI71C,MAAM,2BAErB,CACF,CA4CuBoxL,CAAOrsL,EAAS8wC,GACjCi7I,GA3DQ,SAAiBj7I,GAC7B,OAAO,WACLA,EAAO,IAAI71C,MAAM,4BACnB,CACF,CAuDwBo9F,CAAQvnD,GAC1BwwC,EAAO7kD,iBAAiB,OAAQuvJ,IAChC1qG,EAAO7kD,iBAAiB,QAASsvJ,GACnC,CAAE,MAAO5lL,GAEP,YADA2qC,EAAO3qC,EAET,MAvCEnG,EAAQ,KAwCZ,IAEOF,GAAqB,OAAE,SAAUqG,GAEtC,OADArG,GAAgB,KACTC,QAAQ+wC,OAAO3qC,EACxB,IACF,EAYImmL,IAAa,EAEbC,GAAmB,WACrB,OAAIf,KAIJA,GAAkBS,GAAW,MAAa,OAAE,SAAU9lL,GAGpD,OADAqlL,GAAkB,KACXzrL,QAAQ+wC,OAAO3qC,EACxB,IAEF,EAIApG,QAAQC,UAAUxC,MAAK,WACrB,OAAO+uL,IACT,IAAU,OAAE,SAAUpmL,GACfmmL,IACHltL,QAAQC,KAAK8G,EAEjB,IACA,IAAIqmL,GAAa,WACf,IAAK,IAAIhwD,EAAOpmI,UAAUC,OAAQ+5C,EAAO,IAAIh4C,MAAMokI,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EtsF,EAAKssF,GAAQtmI,UAAUsmI,GAGzB4vD,IAAa,EACb,IAAItyJ,EAAYhZ,KAAKuqB,MAErB,OAAOghJ,KAAmB/uL,MAAK,SAAUiC,GACvC,OA5Ca,SAAoBA,EAAa2wC,EAAMpW,GACtD,GAAoB,OAAhBv6B,EACF,OAAO,KAGT,IAAIS,EAAST,EAAYzJ,WAAM2J,EAAWywC,GAE1C,OAhGoB,SAAyBlwC,EAAQ85B,GAChD95B,GAAWA,EAAOE,kBAIvBF,EAAOE,iBAAiB,CACtB/G,KAAM,YACNiH,QAAS,QACT05B,UAAWA,GAEf,CAqFEyyJ,CAAgBvsL,EAAQ85B,GACjB95B,CACT,CAoCWwsL,CAAWjtL,EAAa2wC,EAAMpW,EACvC,GACF,cC9JA,MAAMl6B,GAAgB0sL,GAAW,+GAE3BG,GAAcA,KAClB,MAAMzsL,GAASoH,EAAAA,GAAAA,aACT5J,GAAWuE,EAAAA,GAAAA,gBACV8vB,EAAc66J,IAAmBvrL,EAAAA,EAAAA,UAAS,IAC3CvG,EAAW+5K,IACXxxK,EAAevI,EAAS2W,MAAMpO,aAC9B2nL,EAAkBlwL,EAAS2W,MAAMs5K,eAChC1J,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IACpCq+K,EAAgBmN,IAAqBxrL,EAAAA,EAAAA,UAAS,IAC/Co0K,EAAWR,KA2DjB,OACEqH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC7Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACzCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAkB4nE,MAAO,CAAEugH,OAAQ,OAAQC,aAAc,QAAS9rL,SAAA,EAC/Eq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,8BAA8B4nE,MAAO,CAAEmwG,SAAU,SAAUhoF,WAAY,QAASzzF,SAAC,qBAC/Fu7K,EAAAA,GAAAA,MAAA,QAAMwQ,SA9BKt4H,UAGnB,GAFAj4D,EAAMwjG,kBAED//F,IAAWxC,EACd,OAGF,MAAM,MAAEyI,EAAK,cAAE4kL,SAAwB7qL,EAAOrC,mBAAmBwF,EAAc,CAC7E4pL,eAAgB,CACdC,KAAMxvL,EAASyvL,WAAW3lL,GAAAA,gBAI1BrB,EACFymL,EAAgBzmL,EAAM6T,UAEtB5a,QAAQo7B,IAAI,sBAAuBuwJ,GAEnC8B,EAAkB9B,GAClB3rL,QAAQo7B,IAAIuwJ,EAAcrmL,IA/B9Bk4K,GACE,OACAtN,GAAOoQ,eANE,CACTsL,gBAAiBA,GAOjB1J,GAzBYj2H,IACW,MAAnBA,EAAI9hC,WACNo7J,GAAMv3I,QAAQ,+BAAgC,CAC5Cw3I,UAAW,KACXC,QAASA,KAELpP,EAAS,WAAW,IAIhCkP,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAIb,IAYCz+K,IACC/G,QAAQo7B,IAAI,QAASr0B,EAAM,IA0B7B,EASqClF,SAAA,EAC3Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO8Q,QAAQ,eAAcnsL,SAAC,0BAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK53K,GAAG,eAAeC,UAAU,eAAe4nE,MAAO,CAAEkrG,QAAS,SAAUqV,OAAQ,oBAAqBC,aAAc,WAAY9rL,UACjIq7K,EAAAA,GAAAA,KAAC90K,GAAAA,YAAW,UAGhB80K,EAAAA,GAAAA,KAAA,UAAQ/3K,KAAK,SAASI,UAAU,iCAAiC2nE,UAAWpsE,EAAQqsE,MAAO,CAAEmwG,SAAU,SAAUjF,QAAS,WAAYx2K,SAAC,QAGtI8wB,IAAgBuqJ,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,0BAAyB1D,SAAE8wB,eAK/D,EAYV,GARqBs7J,KACpB7Q,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,CAAE,KAACq7K,EAAAA,GAAAA,KAACx7K,GAAAA,SAAQ,CAACZ,OAAQJ,GAAcmB,UAChCq7K,EAAAA,GAAAA,KAACqQ,GAAW,OAEdrQ,EAAAA,GAAAA,KAACyI,GAAc,OCoJjB,GA1PuBuI,KAAO,IAADtQ,EAAAuQ,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAEzB,MAAMtY,EAAWR,MACV5xK,EAAc2qL,IAAmB3sL,EAAAA,EAAAA,UAAS,OAE1CsoL,EAAYC,IADG4C,GAAW,qCACGnrL,EAAAA,EAAAA,UAAS,KAC7C,IAAIkZ,EAA2C,QAAtCyiK,EAAG33J,aAAa83J,QAAQ,sBAAc,IAAAH,GAAAA,EAC/C,MAyBKqE,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IACpC4sL,EAAeC,IAAoB7sL,EAAAA,EAAAA,UAAS,IAC7CvG,EAAW+5K,IAEXsZ,EADc,IAAInjH,gBAAgBlwE,EAASoe,QACnBhQ,IAAI,cAchCpM,EAAAA,EAAAA,YAAU,KACFqxL,GALNvR,GAAQ,MAAOtN,GAAOkQ,eAAe,IAAI2O,EAAW,KAAM7M,GAP5Cj2H,IAEZ6iI,EAAiB7iI,EAAI+iI,YAAY,IAK8CjoL,IAC/E/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAM3B,GACC,CAACgoL,IACJ,MAsBOlE,EAAWC,GAtBCC,EAACzxD,EAAO0xD,KACzB,IAAK1xD,EAAO,MAAO,CAAC,GAAI,IAGxB,IAAI2xD,EAAaD,EAEjB,GAAI1xD,EAAMriI,OAAS+zL,EAAW,CAC5B,KAAOC,EAAa,GAA2B,MAAtB3xD,EAAM2xD,IAC7BA,IAGiB,IAAfA,IAEFA,EAAaD,EAEjB,CAKA,MAAO,CAHW1xD,EAAMj7F,UAAU,EAAG4sJ,GAClB3xD,EAAMj7F,UAAU4sJ,GAAYtrI,OAEjB,EAEAorI,CAAwB,OAAb8D,QAAa,IAAbA,OAAa,EAAbA,EAAelL,aAAc,IAE5E,OACEvG,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAChCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,WAAU1D,SAAA,EACzBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC7Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,mBAAkB1D,SAAEgpL,KAClC3N,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kCAEnB23K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,mBAAkB1D,SAAEipL,QAE1C5N,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BAA8B1D,UAC7Cq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,mBAAkB1D,SAAC,yKAMnCq7K,EAAAA,GAAAA,KAAA,OAAM33K,UAAU,YAAW1D,UACvBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC5Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,eAAc1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAmC1D,UAC9Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,GAAE1D,SAAA,EACjBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iCAAgC1D,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACzCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAoCi6D,IAAkB,OAAbqvH,QAAa,IAAbA,OAAa,EAAbA,EAAehL,iBAAkB12G,MAAO,CAACo4B,OAAO,cAE5G23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sBAAqB1D,UAACq7K,EAAAA,GAAAA,KAAA,QAAO/vG,MAAO,CAAE21G,eAAgB,OAAOr7E,MAAM,SAAU5lG,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAiB,OAAbgtL,QAAa,IAAbA,OAAa,EAAbA,EAAelL,oBAGxEzG,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAACq7K,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAe,OAAbgtL,QAAa,IAAbA,OAAa,EAAbA,EAAeI,qBACzD7R,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kDAAiD1D,SAAA,EAChEq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACxCq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yCAAyC4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,UACtKq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,OAAM1D,SAAe,OAAbgtL,QAAa,IAAbA,OAAa,EAAbA,EAAe9K,oBAGnF7G,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yCAAyC4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,UACtKu7K,EAAAA,GAAAA,MAAA,QAAM73K,UAAU,OAAM1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,uCAAyC,IAAe,OAAbspL,QAAa,IAAbA,OAAa,EAAbA,EAAeK,cAAc,mBAGxJhS,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yCAAyC4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,UAC9Ku7K,EAAAA,GAAAA,MAAA,QAAM73K,UAAU,OAAM1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,iCAAmC,IAAe,OAAbspL,QAAa,IAAbA,OAAa,EAAbA,EAAe/K,2BAKpF5G,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACX,OAAbgtL,QAAa,IAAbA,OAAa,EAAbA,EAAeM,mBAAgC,OAAbN,QAAa,IAAbA,OAAa,EAAbA,EAAeM,gBAAgBhjK,KAAI,CAACs3J,EAASr9J,KAAK,IAAAgpK,EAAAC,EAAA,OACnFnS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACzBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uCAAsC1D,UACvFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qEAAqE4nE,MAAO,CAACyqF,gBAAgB,aAAa/1J,SAAA,EACrHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA4Bi6D,IAAI,oDAAoD8lC,MAAM,MAAMC,OAAO,WAE1H23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASnqD,WAM9B8jD,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,iBAAgB1D,SAAA,CAAS,OAAP4hL,QAAO,IAAPA,GAAyB,QAAlB2L,EAAP3L,EAAS6L,wBAAgB,IAAAF,OAAlB,EAAPA,EAA2Br/D,SAAS,IAAS,OAAP0zD,QAAO,IAAPA,GAAyB,QAAlB4L,EAAP5L,EAAS6L,wBAAgB,IAAAD,OAAlB,EAAPA,EAA2BE,mBAK9G,WAQFrS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,0BAAyB1D,UACxBq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CQ,QAxJvDgC,IACnBA,EAAE84F,iBAWJ28E,GACE,OACAtN,GAAOmQ,iBAAiB,IAAI0O,EAC5B,KACA7M,GAbYj2H,IACW,MAAnBA,EAAI9hC,aACNqgK,EAAcv+H,EAAIl7C,MAClB/Q,QAAQo7B,IAAI6wB,EAAIl7C,KAAK9M,cACrBjE,QAAQo7B,IAAI6wB,EAAIl7C,KAAK66K,iBACrBvV,EAAS,uBAAwB,CAAEhkK,MAAO,CAAEpO,aAAcgoD,EAAIl7C,KAAK9M,aAAc0nL,cAAe1/H,EAAIl7C,KAAK66K,mBAC3G,IASC7kL,IACC/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAE9B,EAmIkGomE,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAC,4BAOlJq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2BAA0B1D,UACzCq7K,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,GAAE1D,UAC3Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6DAA4D1D,UACzEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,GAAE1D,SAAA,EAGbu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,eAAc1D,SAAA,EAC3Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAkB,OAAbqvH,QAAa,IAAbA,GAAsB,QAATV,EAAbU,EAAeW,eAAO,IAAArB,OAAT,EAAbA,EAAwBvI,OAChCrgL,UAAU,2BAA2BggG,OAAO,KAAKD,MAAM,UAE3D43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,GAAE1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAiB,OAAbgtL,QAAa,IAAbA,GAAsB,QAATT,EAAbS,EAAeW,eAAO,IAAApB,OAAT,EAAbA,EAAwBtH,cAC7C5J,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,iBAAgB1D,SAAe,OAAbgtL,QAAa,IAAbA,GAAsB,QAATR,EAAbQ,EAAeW,eAAO,IAAAnB,OAAT,EAAbA,EAAwBnD,eACvD9N,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qEAAoE1D,SAAA,EACjFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAQ4nE,MAAO,CAAE2+G,YAAY,qBAAqBjqL,SAAA,EAC/Dq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,UAAS1D,SAAe,OAAbgtL,QAAa,IAAbA,GAAsB,QAATP,EAAbO,EAAeW,eAAO,IAAAlB,OAAT,EAAbA,EAAwBY,iBAChDhS,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,gBAEjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACnBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,UAAS1D,SAAe,OAAbgtL,QAAa,IAAbA,GAAsB,QAATN,EAAbM,EAAeW,eAAO,IAAAjB,OAAT,EAAbA,EAAwBpD,iBAChDjO,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,oBAKnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yBAAwB1D,SACtCsZ,GAAO+hK,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAE,2BAAAxuH,OAA0C,OAAb2uL,QAAa,IAAbA,GAAsB,QAATL,EAAbK,EAAeW,eAAO,IAAAhB,OAAT,EAAbA,EAAwBzL,KAAO59K,KAAK,SAASI,UAAU,mEAAmE4nE,MAAO,CAAEmwG,SAAU,OAAQhoF,WAAY,OAAQzzF,SAAC,uBAGnOq7K,EAAAA,GAAAA,KAAA,UAAQ/3K,KAAK,SAASI,UAAU,2DAA2D4nE,MAAO,CAAEmwG,SAAU,OAAQhoF,WAAY,OAAQzzF,SAAC,6BAMjIq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,gBAAe1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,0BAEnCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,sBAAqB1D,SAAe,OAAbgtL,QAAa,IAAbA,GAAsB,QAATJ,EAAbI,EAAeW,eAAO,IAAAf,OAAT,EAAbA,EAAwBvD,eAE5DhO,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,gBAAe1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,yBAGjCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UACpB,OAAbgtL,QAAa,IAAbA,GAAsB,QAATH,EAAbG,EAAeW,eAAO,IAAAd,OAAT,EAAbA,EAAwBvO,YAAyB,OAAb0O,QAAa,IAAbA,GAAsB,QAATF,EAAbE,EAAeW,eAAO,IAAAb,OAAT,EAAbA,EAAwBxO,SAASh0J,KAAI,CAACs3J,EAASr9J,KACtF82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,eAAc1D,UAC3Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAqB4nE,MAAO,CAAEy2G,gBAAgB,OAAD1jL,OAAgB,OAAPujL,QAAO,IAAPA,OAAO,EAAPA,EAASI,iBAAgB,MAAMhiL,SAAA,EAElGu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,2BAA0B1D,SAAA,EACvCq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAY,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASE,gBACdvG,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAW,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASK,gBAAgB,MAAW,OAAPL,QAAO,IAAPA,OAAO,EAAPA,EAASM,oBAG5C7G,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAU,oBAAoBmpH,GAAI,CAClCryF,SAAU,kBACVviB,OAAO,cAAD5Z,OAAuB,OAAPujL,QAAO,IAAPA,OAAO,EAAPA,EAASV,YAVN38J,8BAgC9B,EC5GP,GA/IsBqpK,KAClB,MAAOC,EAAWC,IAAgB1tL,EAAAA,EAAAA,WAAS,IAE3CvE,EAAAA,EAAAA,YAAU,KACN,IAAI4+J,EAMJ,OALIozB,IACFpzB,EAAQriI,YAAW,KACjB01J,GAAa,EAAM,GAClB,MAEE,IAAMrgF,aAAagtD,EAAM,GACjC,CAACozB,IAMN,OACEtS,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAAA,OAAKuH,MAAM,mBAAkB5iL,UAC7Bu7K,EAAAA,GAAAA,MAAA,OAAKqH,MAAM,kCAAiC5iL,SAAA,EACxCu7K,EAAAA,GAAAA,MAAA,OAAKqH,MAAM,uBAAsB5iL,SAAA,EAC7Bu7K,EAAAA,GAAAA,MAAA,OAAKqH,MAAM,mBAAkB5iL,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,MAAIuH,MAAM,kBAAiB5iL,SAAC,2BAC5Bq7K,EAAAA,GAAAA,KAAA,OAAKuH,MAAM,kCAEfvH,EAAAA,GAAAA,KAAA,MAAIuH,MAAM,kBAAiB5iL,SAAC,+BAEhCq7K,EAAAA,GAAAA,KAAA,OAAKuH,MAAM,4BAA2B5iL,UAClCq7K,EAAAA,GAAAA,KAAA,QAAMuH,MAAM,wBAAuB5iL,SAAC,iMAK5Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,2BAA0B1D,SAAA,EACrCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iCAAgC1D,SAAA,EAGvDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,6BACxBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,SAAC,yEACzBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACjBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACvCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0DAAyD1D,SAAA,EACpEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yBAAwB1D,UACnCu7K,EAAAA,GAAAA,MAAA,MAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,oDAAoD69G,IAAI,GAAG93K,UAAU,UAC9E23K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,SAAC,sBAG5Bu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,QAAQlL,KAAK,gBAAgBqL,GAAG,iBAAiBC,UAAU,OAAO4nE,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,OAAQqqF,YAAa,cACnI1S,EAAAA,GAAAA,KAAA,SAAO8Q,QAAQ,4BAI3B9Q,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACvCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0DAAyD1D,SAAA,EACpEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yBAAwB1D,UACnCu7K,EAAAA,GAAAA,MAAA,MAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,oDAAoD69G,IAAI,GAAG93K,UAAU,UAC9E23K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,SAAC,mBAG5Bu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,QAAQlL,KAAK,gBAAgBqL,GAAG,iBAAiBC,UAAU,OAAO4nE,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,OAAQqqF,YAAa,cACnI1S,EAAAA,GAAAA,KAAA,SAAO8Q,QAAQ,4BAI3B9Q,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACvCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0DAAyD1D,SAAA,EACpEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yBAAwB1D,UACnCu7K,EAAAA,GAAAA,MAAA,MAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,wDAAwD69G,IAAI,GAAG93K,UAAU,UAClF23K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,SAAC,iBAG5Bu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACRq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,QAAQlL,KAAK,gBAAgBqL,GAAG,iBAAiBC,UAAU,OAAO4nE,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,OAAQqqF,YAAa,cACnI1S,EAAAA,GAAAA,KAAA,SAAO8Q,QAAQ,+BAMnB5Q,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,6BACxBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,SAAC,+EAGzBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,WAAU1D,SAAA,EACzBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,WAAU1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,aAAa+iE,IAAI,iBAAgBzmE,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,iBACtDq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOG,GAAG,iBAAiBC,UAAU,sDAEnD63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,WAAU1D,SAAA,EACvBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,aAAa+iE,IAAI,iBAAgBzmE,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mBACtDq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOG,GAAG,iBAAiBC,UAAU,sDAEnD63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gBAAe1D,SAAA,EAC5Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,aAAa+iE,IAAI,iBAAgBzmE,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mBACtDq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOG,GAAG,iBAAiBC,UAAU,sDAEnD63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gBAAe1D,SAAA,EAC5Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,aAAa+iE,IAAI,iBAAgBzmE,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mBACtDq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOG,GAAG,iBAAiBC,UAAU,yDAIrD23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACvCq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,+CAA+CQ,QAjGpC8pL,KACzBF,GAAa,EAAK,EAgG0ExiH,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAE,uBAGxJq7K,EAAAA,GAAAA,KAAA,OAAAr7K,SACiB6tL,IACGxS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UACnKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAK/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EAEnCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2DAA2D69G,IAAI,GAAG93E,OAAO,MAAMD,MAAM,SAC9F43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,2BACxBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,2KAa7B,EC7IkK,IAAI2uG,GAAiB,oBAARvpG,OAAoBmlB,EAAAA,UAAEK,EAAAA,gBAAulCw2C,GAAEA,CAACtpE,EAAEoO,IAAQ,IAAJpO,GAAOA,IAAIoO,EAAE,EAAY,iBAAHA,EAAYpO,EAAEoO,EAAE,EAAEolB,GAAExzB,IAAC,CAAI2Z,SAAS,WAAWgyF,MAAM3rG,EAAE4rG,OAAO5rG,IAAIogH,GAAE,CAACsL,QAAQ,OAAO+9D,eAAe,SAASD,WAAW,SAAS7vK,SAAS,WAAW1U,KAAK,EAAE0sG,IAAI,EAAEhG,MAAM,OAAOC,OAAO,QAAYwI,GAAEA,CAACp0G,EAAEoO,EAAEjO,EAAEgZ,EAAED,KAAK,GAAO,IAAJC,EAAM,OAAO/K,EAAoB,OAAOA,EAAEjO,IAApB+Y,EAAEC,EAAEnZ,EAAEA,GAAGmZ,EAAc,EAAEkwD,GAAErpE,IAAI,IAAIoO,EAAEjO,EAAE,OAAsK,OAA/JA,EAAwH,OAArHiO,EAAEpO,EAAE8d,QAAQ,oCAAmC,CAAC3E,EAAED,EAAExT,EAAEtI,IAAC,IAAAmJ,OAAO2S,GAAC3S,OAAG2S,GAAC3S,OAAGb,GAACa,OAAGb,GAACa,OAAGnJ,GAACmJ,OAAGnJ,KAAKsnC,UAAU,GAAG3mB,MAAM,eAAgB,EAAO3P,EAAEokB,KAAIrZ,GAAGyf,SAASzf,EAAE,OAAYhZ,EAAE,EAAE,EAAEq/D,GAAEA,CAACx/D,EAAEoO,KAAK,IAAIkO,EAAE,IAAI6yJ,OAAOhvK,EAAEg2L,WAAWh9K,EAAEi9K,wBAAwBl9K,GAAE,GAAIlZ,EAAE,GAAa,iBAAHG,EAAY,OAAOA,EAAE,IAAIuF,EAA0D,OAAvD4W,EAAK,MAAHnD,OAAQ,EAAOA,EAAEomK,WAAU,CAACvmK,EAAE+5C,IAAI/5C,GAAG5K,GAAGA,GAAG+K,EAAE45C,EAAE,MAAWz2C,GAAG,EAAE,IAAInD,IAAQ,IAALzT,EAAO,OAAOvF,EAAE,GAAG,IAAI+Y,EAAE,OAAO/Y,EAAEuF,GAAG,IAAItI,EAAE+b,EAAEzT,GAAG0I,EAAEiL,EAAEF,EAAEzT,GAAGyT,EAAEzT,EAAE,GAAGo5D,EAAEuK,GAAElpE,EAAEuF,IAAIwrE,EAAE7H,GAAElpE,EAAEuF,EAAE,IAAI6V,IAAIvb,EAAEq2L,UAAU,aAAA9vL,OAAau4D,EAAEtsC,KAAI,CAACxZ,EAAE+5C,IAAsB,EAAlBqhD,GAAEh3G,EAAE4b,EAAEk4D,EAAEne,GAAG/5C,EAAEK,EAAEkC,KAAM4Q,KAAK,KAAI,MAAKmH,GAAEtzB,IAAI,IAAIo2H,SAAShoH,EAAEkoL,qBAAqBn2L,EAAEo2L,eAAep9K,EAAEu8C,KAAKx8C,EAAE,IAAIyjF,YAAYj3F,EAAE,GAAG8wL,iBAAiBp5L,EAAEk6H,UAAUj+G,GAAE,EAAGg9K,UAAUv3H,GAAE,EAAG23H,SAASvlH,EAAE,YAAYjjE,WAAWsN,EAAEm7K,SAASp6K,GAAGtc,EAAEgZ,GAAE6wG,EAAAA,EAAAA,UAAI92D,EAAE74C,KAAK+tB,IAAIviC,EAAK,MAAHtI,EAAQA,EAAE,IAAImiB,KAAKjE,EAAEq7K,WAAWC,GAAztChgG,EAAC52F,EAAEoO,EAAEjO,KAAK,IAAIgZ,EAAEnZ,EAAE,EAAEkZ,EAAE9K,EAAE,EAAE1I,EAAEyT,EAAED,EAAE9b,EAAE,EAAEsI,EAAE2T,EAAM,cAAJlZ,EAAgB,MAAM,MAAM2+D,EAAE,EAAE5kD,KAAK28K,GAAGnxL,EAAE,MAAM,CAAC6Z,KAAI,KAAAhZ,OAAM4S,EAAC,KAAA5S,OAAI2S,EAAC,OAAA3S,OAAMb,EAAC,KAAAa,OAAIb,EAAC,OAAAa,OAAM8S,EAAC,OAAA9S,OAAMnJ,EAAC,OAAAmJ,OAAMb,EAAC,KAAAa,OAAIb,EAAC,OAAAa,OAAM8S,EAAC,QAAA9S,OAAOnJ,GAAIu5L,WAAW73H,EAAE,EAA8iC83B,CAAE19E,EAAE65C,EAAEme,IAAI24B,YAAYhoC,GAArpE75D,KAAmF,IAAjFsvH,UAAUt3H,EAAEo2H,SAAShoH,EAAE0oL,QAAQ32L,EAAE,EAAEo2L,eAAep9K,EAAE,EAAElL,WAAWiL,EAAEw9K,SAAShxL,GAAEsC,GAAQ5K,EAAEic,IAAGu4D,EAAAA,EAAAA,UAAEzxE,GAAG2+D,GAAE7lD,EAAAA,EAAAA,QAAE,GAAGi4D,GAAEj4D,EAAAA,EAAAA,QAAE9Y,GAAGob,GAAEtC,EAAAA,EAAAA,SAAK,IAAH9Y,GAAQmc,GAAErD,EAAAA,EAAAA,QAAE,MAAMD,GAAEC,EAAAA,EAAAA,QAAE,MAAM85C,GAAE95C,EAAAA,EAAAA,QAAE,MAAMqC,EAAEsrD,IAAI,IAAInhE,EAAEmhE,EAAE,IAAI,GAAe,OAAZ5tD,EAAEhV,QAA+D,OAA/CgV,EAAEhV,QAAQyB,OAAE6W,EAAEtY,QAAQ+yL,sBAAsBz7K,IAAU,IAAIhC,EAAE7T,EAAEuT,EAAEhV,QAAQo/F,EAAEtkC,EAAE96D,QAAQsV,EAAEN,EAAEhV,QAAQyB,EAAEq5D,EAAE96D,QAAQo/F,EAAE,IAAI5nF,EAAE01D,EAAEltE,SAAa,IAAJmV,EAAMiqF,GAAGA,EAAEjqF,EAAE,GAAGA,GAAGgpG,EAAEjxC,EAAEltE,QAAQo/F,EAAEzyD,EAAY,iBAAHviC,GAAa+zG,GAAG/zG,EAAEiL,EAAEs3B,EAAEviC,EAAEoN,GAAGm1B,IAAIr0B,EAAEtY,QAAQ+yL,sBAAsBz7K,GAAG,EAAEs7K,EAAEA,KAAKt6K,EAAEtY,SAASgzL,qBAAqB16K,EAAEtY,SAAS+uD,EAAE/uD,SAAS2xG,aAAa5iD,EAAE/uD,SAASgV,EAAEhV,QAAQ,IAAI,EAAE69D,GAAE9oD,EAAAA,EAAAA,cAAE6tD,IAAIgwH,IAAI93H,EAAE96D,QAAQ,EAAE,IAAIyB,EAAY,iBAAHmhE,EAAYA,EAAEzmE,EAAE+wE,EAAEltE,QAAQyB,EAAE4T,EAAE5T,GAAGzF,IAAIsc,EAAEtY,QAAQ+yL,sBAAsBz7K,GAAG,GAAE,CAACtb,EAAEG,IAAI,OAAO02G,IAAE,KAAK,GAAM,MAAHnxG,GAASA,EAAEtI,GAAGgR,GAAGhR,GAAGgR,EAAE,CAACmN,EAAEvX,SAAW,IAAFoK,EAAM,IAAI6oL,aAAarwH,GAAE,EAAGxmC,MAAM36B,EAAE,EAAEyxL,WAAW59K,IAAO,MAAHJ,OAAQ,EAAOA,EAAEqC,EAAEvX,QAAQ,OAAO,CAAC,EAAE4iE,IAAI7T,EAAE/uD,QAAQs8B,YAAW,IAAIuhC,EAAEvoD,IAAK,IAAF7T,GAAO,IAAG,CAACrI,EAAEgR,IAAIyoG,IAAE,KAAK72G,IAAIsc,EAAEtY,QAAQ+yL,sBAAsBz7K,IAAIs7K,IAAG,CAAC52L,EAAEoO,EAAE+K,IAAI,CAAC0wF,YAAYzsG,EAAE+5L,MAAMt1H,EAAE,EAA6vCo3C,CAAE,CAACqe,UAAUj+G,EAAE+8G,SAAShoH,EAAE0oL,QAAQxtH,GAAEl7D,EAAEjO,GAAGo2L,eAAep9K,EAAEu9K,SAAmB,mBAAHp6K,EAAc7W,IAAI,IAAI6T,EAAEY,KAAKwhC,KAAKttC,EAAE3I,GAAG6T,IAAIN,EAAEhV,UAAUgV,EAAEhV,QAAQsV,EAAEgD,EAAEhD,GAAG,OAAE,EAAOrL,WAAqB,mBAAHsN,EAAc9V,IAAI,IAAI08G,EAAE,IAAI80E,aAAa39K,EAAE8mB,MAAMgjE,EAAEg0F,wBAAwB57K,GAAa,OAAT2mG,EAAE5mG,EAAE9V,IAAU08G,EAAE,CAAC,EAAE,GAAG7oG,EAAE,MAAM,CAAC29K,aAAa39K,EAAE8mB,MAAMgjE,EAAE8zF,WAAW5tH,GAAEl7D,EAAEoN,GAAG,OAAE,IAASorD,EAAEx4D,EAAEyzD,EAAE,MAAM,CAACgoC,YAAYhoC,EAAEtiD,KAAKjE,EAAEq7K,WAAWC,EAAES,cAAcn9K,KAAKwhC,KAAKkrB,GAAG6vH,SAASvlH,EAAExb,KAAKx8C,EAAEilJ,OAAO3+F,GAAEx/D,EAAE4mE,GAAG41B,iBAAiB4X,GAAEvyC,EAAE,EAAE+0H,EAAExoL,EAAE0wD,GAAG69B,YAAYj3F,EAAE,EAAMiuG,GAAE3zG,IAAI,IAAIkI,SAASkG,EAAEkpL,cAAcn3L,EAAEo3L,WAAWp+K,EAAEq9K,iBAAiBt9K,GAAGlZ,GAAGuf,KAAK7Z,EAAEixL,WAAWv5L,EAAE+gK,OAAO9kJ,EAAEmjF,iBAAiB19B,EAAEu4H,cAAcnmH,EAAE24B,YAAYtuF,EAAEm6C,KAAKp5C,EAAEqgF,YAAY3jF,GAAGsa,GAAEtzB,GAAG,OAAOa,EAAAA,cAAgB,MAAM,CAAC2yE,MAAMhgD,GAAElX,IAAIzb,EAAAA,cAAgB,MAAM,CAAC22L,QAAO,OAAAjxL,OAAQ+V,EAAC,KAAA/V,OAAI+V,GAAIqvF,MAAMrvF,EAAEsvF,OAAOtvF,EAAEm7K,MAAM,8BAA8B52L,EAAAA,cAAgB,OAAO,CAACyY,EAAE5T,EAAE+kC,KAAK,OAAO0zH,OAAU,MAAHhlJ,EAAQA,EAAE,UAAUwjF,YAAe,MAAHzjF,EAAQA,EAAEF,IAAInY,EAAAA,cAAgB,OAAO,CAACyY,EAAE5T,EAAE+kC,KAAK,OAAO0zH,OAAO9kJ,EAAEi+K,cAAiB,MAAHn3L,EAAQA,EAAE,QAAQw8F,YAAY3jF,EAAEujF,gBAAgBn/F,EAAEo/F,iBAAiB19B,KAAe,mBAAH1wD,GAAevN,EAAAA,cAAgB,MAAM,CAAC2yE,MAAM4sC,IAAGhyG,EAAE,CAACipL,cAAcnmH,EAAE24B,YAAYtuF,EAAEuyF,MAAMz0F,KAAK,EAAEs6F,GAAEhsG,YAAY,iDCSz+G,MA4VA,GA5VqB+vL,KAAO,IAADC,EAAAC,EAAAC,EACzB,MAAO9B,EAAWC,IAAgB1tL,EAAAA,EAAAA,WAAS,IACpCwvL,EAAUC,IAAezvL,EAAAA,EAAAA,UAAS,IAElC0vL,EAAsBC,KADRn0L,EAAAA,EAAAA,QAAO,OAC4BwE,EAAAA,EAAAA,UAAS,KAC1D4vL,EAAgBC,IAAqB7vL,EAAAA,EAAAA,UAAS,OAC9CwuH,EAAWyxD,IAAgBjgL,EAAAA,EAAAA,WAAS,IACpCgvH,EAAW8gE,IAAgB9vL,EAAAA,EAAAA,WAAS,IACpC8tH,EAAUiiE,IAAe/vL,EAAAA,EAAAA,UAAS,IAClCgwL,EAAkBC,IAAuBjwL,EAAAA,EAAAA,UAAS,IAClDkwL,EAAaC,IAAkBnwL,EAAAA,EAAAA,UAAS,GAGzCvG,GADWm6K,KACAJ,KACX3qH,EAAc,IAAI8gB,gBAAgBlwE,EAASoe,SAC1Cu4K,EAAeC,IAAoBrwL,EAAAA,EAAAA,UAAS,GAC7C8sL,EAAYjkI,EAAYhhD,IAAI,aAC5BqlL,EAAkBrkI,EAAYhhD,IAAI,mBAClCyoL,GAAY90L,EAAAA,EAAAA,QAAO,OA0BzBC,EAAAA,EAAAA,YAAU,KACJqxL,GAAaI,GACfqD,GACF,GACC,CAACzD,EAAWI,KAEfzxL,EAAAA,EAAAA,YAAU,KACR,GAAIm0L,EAAgB,CAClB,MAAMY,EAAkBZ,EAAepO,QAAQ0L,gBAAgBwC,GACzDe,EAAkC,OAAfD,QAAe,IAAfA,OAAe,EAAfA,EAAiBC,iBAC1C,IAAIC,EAAoC,OAAhBD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB3iE,SAEX,aAAX,OAAhB2iE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBnD,QACpBoD,GAAqB,IAGvBT,EAAoBS,GACpBjB,GAAakB,GAAYA,EAAU,IACnCb,GAAa,EACf,IACC,CAACJ,EAAsBE,IAE1B,MAYMz+D,EAAcA,KAClB2+D,GAAa,EAAM,EA4BfS,EAAaA,KAajBhV,GAAQ,MAAM,GAADt9K,OAAKgwK,GAAO+Q,qBAAoB,KAAA/gL,OAAI6uL,GAAa,KAAM7M,GAZtDj2H,IAAS,IAAD4mI,EAAAC,EACpBhB,EAAkB7lI,EAAI8mI,iBACtBT,EAAoB,OAAHrmI,QAAG,IAAHA,GAAoB,QAAjB4mI,EAAH5mI,EAAK8mI,uBAAe,IAAAF,GAAS,QAATC,EAApBD,EAAsBpP,eAAO,IAAAqP,OAA1B,EAAHA,EAA+B/P,KAEhD,MAAM38J,EAAQ6lC,EAAI8mI,gBAAgBtP,QAAQ0L,gBAAgBjW,WACvD8Z,GAAaA,EAASjQ,MAAQoM,KAElB,IAAX/oK,GACFwrK,EAAwBxrK,EAC1B,IAGyFrf,IACzF/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAGJ,IAAK8qL,EAAgB,OAAO,KAE5B,MAAMY,EAAkBZ,EAAepO,QAAQ0L,gBAAgBwC,IAuBxD9G,EAAWC,GArBCC,EAACzxD,EAAO0xD,KACzB,IAAK1xD,EAAO,MAAO,CAAC,GAAI,IAExB,IAAI2xD,EAAaD,EAEjB,GAAI1xD,EAAMriI,OAAS+zL,EAAW,CAC5B,KAAOC,EAAa,GAA2B,MAAtB3xD,EAAM2xD,IAC7BA,IAGiB,IAAfA,IACFA,EAAaD,EAEjB,CAKA,MAAO,CAHW1xD,EAAMj7F,UAAU,EAAG4sJ,GAClB3xD,EAAMj7F,UAAU4sJ,GAAYtrI,OAEjB,EAGAorI,CAAW0H,EAAgBn5D,MAAO,IAElE,OACE8jD,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACEq7K,EAAAA,GAAAA,KAACyI,GAAc,KACfzI,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAC9Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,kBAAiB1D,SAAEgpL,KACjC3N,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kCAEjB23K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,kBAAiB1D,SAAEipL,QAEnC5N,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACxCq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAC,iMAS7Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gDAA+C1D,SAAA,EAC5Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wDAAuD1D,UACpEq7K,EAAAA,GAAAA,KAAC+V,KAAW,CACV1tL,UAAU,+BACVvH,IAAKu0L,EACLx5D,UAAU,EACV53H,IAAKsxL,EAAgBtxL,IACrBywH,QAjKwBshE,KAChC,IAAIC,EAAat/K,KAAKue,MAAM+/J,EAAc,IACtCiB,EAAav/K,KAAKue,MAAM29F,EAAW,IACvC/vH,QAAQo7B,IAAI,qBAADl7B,OAAsBkzL,EAAU,aAC3CpzL,QAAQo7B,IAAI,iBAADl7B,OAAkBizL,EAAU,aAEvC,IAAI1hK,EAAO,CACT4hK,gBAAiBF,EACjBG,cAAeF,GAWjB5V,GAAQ,OAAO,GAADt9K,OAAKgwK,GAAO2Q,kBAAiB,KAAA3gL,OAAImyL,EAAa,KAAAnyL,OAAmB,OAAfuyL,QAAe,IAAfA,OAAe,EAAfA,EAAiB1P,KAAOtxJ,EAAMywJ,GARhFj2H,IACW,MAAnBA,EAAI9hC,WACNo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CAAE4qK,UAAW,OAExCD,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CAAE4qK,UAAW,MACxC,IAGmHz+K,IACnH/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EA6IMirH,WApHcjC,IACtBiiE,EAAYjiE,EAAS,EAoHbK,WAjHc/9G,IACtB+/K,EAAe//K,EAAMs9G,cAAc,EAiH3BxiD,MAAO,CAAEm4B,MAAO,QAASC,OAAQ,cAGrC63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gDAA+C1D,SAAA,EAC5Dq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAI4wL,EAAgBn5D,WAEtB4jD,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qCAAoC1D,UACjDq7K,EAAAA,GAAAA,KAACqW,GAAoB,CAEnBtiE,UAAWA,EACXlB,SAAUkiE,EACVnpB,OAAQ,CAAC,CAAC,YACVxyE,YAAa,GACbjnC,KAAM,IACN6hI,WAAW,UACXtpL,WAtHgB4rL,KAC1B7D,GAAa,EAAK,EAqHwB9tL,SAE/BF,IAAA,IAAC,cAAEqvL,GAAervL,EAAA,OACjBu7K,EAAAA,GAAAA,KAAA,OAAK/vG,MAAO,CAAEmwG,SAAU,OAAQhoF,WAAY,OAAQzzF,SACjDmvL,GACG,GAZHS,MAgBTvU,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8BAA6B1D,UAC1Cq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,mCACVQ,QA1IQ0tL,KAClB1B,GAAa,EAAK,EA0IR5kH,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,QACP61E,SAAU,QACVz7K,SACH,aAIHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8BAA6B1D,UAC1Cq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,mCACVQ,QAASqtH,EACTjmD,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,QACP61E,SAAU,QACVz7K,SACH,aAIHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gCAA+B1D,SAAA,EAC5Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBu7K,EAAAA,GAAAA,MAAA,UACE73K,UAAU,mCACVQ,QAnJI2tL,KACd/B,EAAuB,IACzBC,EAAwBD,EAAuB,GAC/Cv+D,IACF,EAgJcjmD,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,UACP61E,SAAU,QACVz7K,SAAA,EAEFq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,4CACJ69G,IAAI,GACJ93K,UAAU,kBAEZ23K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mBAGPq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBu7K,EAAAA,GAAAA,MAAA,UACE73K,UAAU,mCACVQ,QA9JI4tL,KACdhC,EAAuBE,EAAepO,QAAQ0L,gBAAgBl4L,OAAS,IACzE26L,EAAwBD,EAAuB,GAC/Cv+D,IACF,EA2JcjmD,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,UACP61E,SAAU,QACVz7K,SAAA,EAEFq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,UACHq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,6CACJ69G,IAAI,GACJ93K,UAAU,iCASvBmqL,IACCxS,EAAAA,GAAAA,KAAA,OACE33K,UAAU,aACVD,GAAG,eACHg8H,SAAS,KACT,kBAAgB,oBAChBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UAEnEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,eAAe4nE,MAAO,CAAEipF,UAAW,MAAOv0J,UACvDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BAA8B1D,UAC3Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACrCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0BAAyB1D,SAAA,EACtCq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,+CACJ69G,IAAI,MAENH,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAClBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,wBAELq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,yCAENu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qEAAoE1D,SAAA,EACjFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,UAAS1D,SAAkD,QAAlDyvL,EAAgB,OAAdO,QAAc,IAAdA,GAAuB,QAATN,EAAdM,EAAgBpO,eAAO,IAAA8N,GAAiB,QAAjBC,EAAvBD,EAAyBpC,uBAAe,IAAAqC,OAA1B,EAAdA,EAA0Cv6L,cAAM,IAAAq6L,EAAAA,EAAI,KAC5EpU,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,gBAEjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,UAAS1D,UAAc,KAAXkuH,GAAkB6jE,QAAQ,MACnD1W,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,YAEjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,UAAS1D,SAAEkuH,KACxBmtD,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,mBAGnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CACHv+I,UAAU,mCACVmpH,GAAI,IACJvhD,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,UACP61E,SAAU,QACVz7K,SACH,kBAIHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,mCACVQ,QAnPE8tL,KAClBlE,GAAa,GACTgC,EAAuBE,EAAepO,QAAQ0L,gBAAgBl4L,OAAS,GACzE26L,EAAwBD,EAAuB,EACjD,EAgPgBxkH,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,QACP61E,SAAU,QACVz7K,SACH,8BASZ,ECjWP,SAAS7L,GAAQC,EAAQC,GACvB,IAAIC,EAAOC,OAAOD,KAAKF,GAEvB,GAAIG,OAAOC,sBAAuB,CAChC,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAC3CC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UACtD,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAC7B,CAEA,OAAOH,CACT,CAEA,SAASU,GAAeC,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EACpDA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GACpDC,GAAgBP,EAAQM,EAAKF,EAAOE,GACtC,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAC5JhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAC7E,GACF,CAEA,OAAON,CACT,CAEA,SAASW,GAAQC,GAGf,OAAOD,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAC1H,EAAGD,GAAQC,EACb,CAwDA,SAASo8L,GAAkBh9L,EAAQyE,GACjC,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAMtE,OAAQF,IAAK,CACrC,IAAI4vC,EAAaprC,EAAMxE,GACvB4vC,EAAWjwC,WAAaiwC,EAAWjwC,aAAc,EACjDiwC,EAAW3uC,cAAe,EACtB,UAAW2uC,IAAYA,EAAW1uC,UAAW,GACjD7B,OAAOoB,eAAeV,EAAQ6vC,EAAWvvC,IAAKuvC,EAChD,CACF,CAWA,SAAStvC,GAAgBK,EAAKN,EAAKW,GAYjC,OAXIX,KAAOM,EACTtB,OAAOoB,eAAeE,EAAKN,EAAK,CAC9BW,MAAOA,EACPrB,YAAY,EACZsB,cAAc,EACdC,UAAU,IAGZP,EAAIN,GAAOW,EAGNL,CACT,CA6BA,SAASgB,GAAeC,EAAK5B,GAC3B,OAWF,SAAyB4B,GACvB,GAAIK,MAAMC,QAAQN,GAAM,OAAOA,CACjC,CAbSC,CAAgBD,IAmBzB,SAA+BA,EAAK5B,GAClC,IAAImC,EAAY,MAAPP,EAAc,KAAyB,qBAAXhB,QAA0BgB,EAAIhB,OAAOC,WAAae,EAAI,cAE3F,GAAU,MAANO,EAAY,OAChB,IAIIC,EAAIC,EAJJC,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKL,EAAKA,EAAGT,KAAKE,KAAQW,GAAMH,EAAKD,EAAGM,QAAQC,QAC9CJ,EAAK1C,KAAKwC,EAAGpB,QAEThB,GAAKsC,EAAKpC,SAAWF,GAH4BuC,GAAK,GAK9D,CAAE,MAAOI,GACPH,GAAK,EACLH,EAAKM,CACP,CAAE,QACA,IACOJ,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,QAC9C,CAAE,QACA,GAAIK,EAAI,MAAMH,CAChB,CACF,CAEA,OAAOC,CACT,CA/CiCR,CAAsBF,EAAK5B,IAAM+B,GAA4BH,EAAK5B,IAsEnG,WACE,MAAM,IAAIuD,UAAU,4IACtB,CAxEyGvB,EACzG,CAEA,SAAS6+I,GAAmBj/I,GAC1B,OAGF,SAA4BA,GAC1B,GAAIK,MAAMC,QAAQN,GAAM,OAAOkB,GAAkBlB,EACnD,CALSo7L,CAAmBp7L,IAW5B,SAA0BovI,GACxB,GAAsB,qBAAXpwI,QAAmD,MAAzBowI,EAAKpwI,OAAOC,WAA2C,MAAtBmwI,EAAK,cAAuB,OAAO/uI,MAAMkB,KAAK6tI,EACtH,CAboCisD,CAAiBr7L,IAAQG,GAA4BH,IA8DzF,WACE,MAAM,IAAI2B,UAAU,uIACtB,CAhEiG25L,EACjG,CA4CA,SAASn7L,GAA4Ba,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOE,GAAkBF,EAAGC,GACvD,IAAIE,EAAI1D,OAAO0B,UAAUiC,SAAStB,KAAKkB,GAAGK,MAAM,GAAI,GAEpD,MADU,WAANF,GAAkBH,EAAE9B,cAAaiC,EAAIH,EAAE9B,YAAYoC,MAC7C,QAANH,GAAqB,QAANA,EAAoBd,MAAMkB,KAAKP,GACxC,cAANG,GAAqB,2CAA2CK,KAAKL,GAAWD,GAAkBF,EAAGC,QAAzG,CALc,CAMhB,CAEA,SAASC,GAAkBlB,EAAKyB,IACnB,MAAPA,GAAeA,EAAMzB,EAAI1B,UAAQmD,EAAMzB,EAAI1B,QAE/C,IAAK,IAAIF,EAAI,EAAGsD,EAAO,IAAIrB,MAAMoB,GAAMrD,EAAIqD,EAAKrD,IAAKsD,EAAKtD,GAAK4B,EAAI5B,GAEnE,OAAOsD,CACT,CAUA,IAAIi1C,GAAO,WAAiB,EAExB4kJ,GAAU,CAAC,EACXC,GAAY,CAAC,EACbC,GAAqB,KACrBC,GAAe,CACjBpoC,KAAM38G,GACNglJ,QAAShlJ,IAGX,IACwB,qBAAXroC,SAAwBitL,GAAUjtL,QACrB,qBAAbg8B,WAA0BkxJ,GAAYlxJ,UACjB,qBAArB6oH,mBAAkCsoC,GAAqBtoC,kBACvC,qBAAhB1/G,cAA6BioJ,GAAejoJ,YACzD,CAAE,MAAOrkC,IAAI,CAEb,IAWIwsL,GAAcC,GAAeC,GAAeC,GAAeC,GAV3DC,IADOV,GAAQvlI,WAAa,CAAC,GACPzyB,UACtBA,QAA+B,IAAnB04J,GAA4B,GAAKA,GAC7CC,GAASX,GACTY,GAAWX,GACXY,GAAoBX,GACpBY,GAAcX,GAEdY,IADeJ,GAAO5xJ,WACX6xJ,GAAS5/H,mBAAqB4/H,GAASzyG,MAA6C,oBAA9ByyG,GAASz3J,kBAAqE,oBAA3By3J,GAAStyL,eAC7H0yL,IAASh5J,GAAU7jC,QAAQ,UAAY6jC,GAAU7jC,QAAQ,YAIzD88L,GAAuB,qBACvBC,GAAgB,GAChBC,GAAqB,KACrBC,GAA4B,iBAC5BC,GAAgB,gBAChBC,GAAyB,yBACzBC,GAAiC,iCACjCC,GAAc,cACdC,GAAY,YACZC,GAA8B,oBAC9BC,GAA0B,QAC1BC,GAAsC,CAAC,OAAQ,OAAQ,QAAS,UAChEC,GAAa,WACf,IACE,OAAO9+K,CACT,CAAE,MAAOlP,IACP,OAAO,CACT,CACF,CANiB,GAObiuL,GAAiB,UACjBC,GAAe,QACfC,GAAW,CAACF,GAAgBC,IAEhC,SAASE,GAAYz+L,GAEnB,OAAO,IAAIg5E,MAAMh5E,EAAK,CACpBoS,IAAK,SAAahT,EAAQi6D,GACxB,OAAOA,KAAQj6D,EAASA,EAAOi6D,GAAQj6D,EAAOk/L,GAChD,GAEJ,CACA,IAAII,GAAkBD,IAAgC9+L,GAAnBk9L,GAAe,CAAC,EAAiCyB,GAAgB,CAClG,GAAM,QACN,IAAO,QACP,WAAY,QACZ,IAAO,UACP,aAAc,UACd,IAAO,QACP,WAAY,QACZ,IAAO,OACP,UAAW,OACX,IAAO,UACP,aAAc,UACd,IAAO,SACP,YAAa,SACb,IAAO,MACP,KAAQ,MACR,SAAU,MACV,iBAAkB,QAChB3+L,GAAgBk9L,GAAc0B,GAAc,CAC9C,GAAM,QACN,KAAQ,QACR,WAAY,QACZ,KAAQ,UACR,aAAc,UACd,KAAQ,QACR,WAAY,QACZ,KAAQ,OACR,UAAW,SACT1B,KACA8B,GAAkBF,IAAiC9+L,GAApBm9L,GAAgB,CAAC,EAAkCwB,GAAgB,CACpGM,MAAO,MACPC,QAAS,MACThiE,MAAO,MACPiiE,KAAM,MACNC,QAAS,MACTC,OAAQ,MACRC,IAAK,QACHt/L,GAAgBm9L,GAAeyB,GAAc,CAC/CK,MAAO,OACPC,QAAS,OACThiE,MAAO,OACPiiE,KAAM,SACJhC,KACAoC,GAAuBT,IAAiC9+L,GAApBo9L,GAAgB,CAAC,EAAkCuB,GAAgB,CACzGa,IAAK,YACLC,IAAK,aACLC,IAAK,SACLC,IAAK,WACLC,IAAK,aACLC,IAAK,WACLC,IAAK,YACH9/L,GAAgBo9L,GAAewB,GAAc,CAC/CmB,KAAM,WACNC,KAAM,aACNC,KAAM,WACNC,KAAM,YACJ9C,KACA+C,GAAuBrB,IAAiC9+L,GAApBq9L,GAAgB,CAAC,EAAkCsB,GAAgB,CACzG,YAAa,MACb,aAAc,MACd,SAAU,MACV,WAAY,MACZ,aAAc,MACd,WAAY,MACZ,UAAW,QACT3+L,GAAgBq9L,GAAeuB,GAAc,CAC/C,WAAY,OACZ,aAAc,OACd,WAAY,OACZ,UAAW,SACTvB,KACA+C,GAAgC,uCAEhCC,GAAwB,iBACxBC,GAAsB,0FACtBC,GAAwBzB,IAAiC9+L,GAApBs9L,GAAgB,CAAC,EAAkCqB,GAAgB,CAC1G,IAAK,MACL,IAAK,MACL6B,OAAQ,MACR,IAAK,MACL,IAAK,QACHxgM,GAAgBs9L,GAAesB,GAAc,CAC/C,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,SACHtB,KACAmD,GAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACvCC,GAAcD,GAAS53L,OAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KACnE83L,GAAkC,CAAC,QAAS,cAAe,YAAa,oBAAqB,gBAC7FC,GAAkB,CACpBC,MAAO,gBACPC,aAAc,eACdC,QAAS,UACTC,UAAW,aAETC,GAAW,IAAI1nH,IACnBx6E,OAAOD,KAAKkgM,GAAgBL,KAAiB7pK,IAAImsK,GAASnjK,IAAIutC,KAAK41H,KACnEliM,OAAOD,KAAKkgM,GAAgBJ,KAAe9pK,IAAImsK,GAASnjK,IAAIutC,KAAK41H,KACjE,IAAIC,GAAmB,GAAGr4L,OAAOg2L,GAAUt+C,GAAmB0gD,IAAW,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,OAAQ,SAAU,OAAQ,YAAa,SAAU,YAAa,kBAAmB,gBAAiB,OAAQ,KAAM,UAAW,iBAAkB,cAAe,SAAU,KAAM,YAAa,aAAc,QAAS,aAAc,aAAc,YAAa,YAAa,QAAS,aAAc,eAAgB,OAAQ,WAAY,WAAY,QAAS,KAAML,GAAgBC,MAAOD,GAAgBE,aAAcF,GAAgBG,QAASH,GAAgBI,YAAYn4L,OAAO43L,GAAS3rK,KAAI,SAAUryB,GACllB,MAAO,GAAGoG,OAAOpG,EAAG,IACtB,KAAIoG,OAAO63L,GAAY5rK,KAAI,SAAUryB,GACnC,MAAO,KAAKoG,OAAOpG,EACrB,KAEI8tI,GAAUitD,GAAO2D,mBAAqB,CAAC,EAmB3C,GAAI1D,IAA8C,oBAA3BA,GAASrjD,cAA8B,CAChD,CAAC,CAAC,qBAAsB,gBAAiB,CAAC,kBAAmB,aAAc,CAAC,sBAAuB,iBAAkB,CAAC,qBAAsB,gBAAiB,CAAC,yBAA0B,oBAAqB,CAAC,wBAAyB,kBAAmB,CAAC,oBAAqB,cAAe,CAAC,iBAAkB,YAAa,CAAC,8BAA+B,wBAAyB,CAAC,yBAA0B,oBAAqB,CAAC,uBAAwB,kBAAmB,CAAC,4BAA6B,sBAAuB,CAAC,2BAA4B,sBAAuB,CAAC,0BAA2B,qBAC/lBt6I,SAAQ,SAAUwK,GACtB,IAAIoB,EAAQrK,GAAeiJ,EAAM,GAC7B6gF,EAAOz/E,EAAM,GACb3L,EAAM2L,EAAM,GAEZgjB,EAhBR,SAAgBA,GAGd,MAAY,KAARA,GACQ,UAARA,IACQ,SAARA,GACGA,EACT,CASc0yK,CAxBd,SAAuBj2G,GACrB,IAAI/lF,EAAUq4L,GAASrjD,cAAc,UAAYjvD,EAAO,KAExD,GAAI/lF,EACF,OAAOA,EAAQg4D,aAAa+tB,EAEhC,CAkBqBk2G,CAAcl2G,SAEnBjiF,IAARwlB,GAA6B,OAARA,IACvB6hH,GAAQxwI,GAAO2uB,EAEnB,GACF,CAEA,IAAI46C,GAAW,CACbg4H,aAAc,QACdC,cAAe,UACfC,UAAWxD,GACXyD,iBAAkBxD,GAClByD,gBAAgB,EAChBC,YAAY,EACZC,UAAU,EACVC,sBAAsB,EACtBC,kBAAkB,EAClBC,eAAgB,QAChBC,oBAAoB,EACpBC,oBAAoB,EACpBC,kBAAkB,GAGhB3xD,GAAQ4xD,eACV5xD,GAAQixD,UAAYjxD,GAAQ4xD,cAG9B,IAAIC,GAAU5iM,GAAeA,GAAe,CAAC,EAAG8pE,IAAWinE,IAEtD6xD,GAAQV,iBAAgBU,GAAQN,kBAAmB,GACxD,IAAIp6K,GAAS,CAAC,EACd3oB,OAAOD,KAAKwqE,IAAUxpE,SAAQ,SAAUC,GACtChB,OAAOoB,eAAeunB,GAAQ3nB,EAAK,CACjCV,YAAY,EACZsb,IAAK,SAAa+T,GAChB0zK,GAAQriM,GAAO2uB,EAEf2zK,GAAYviM,SAAQ,SAAUmG,GAC5B,OAAOA,EAAGyhB,GACZ,GACF,EACAjV,IAAK,WACH,OAAO2vL,GAAQriM,EACjB,GAEJ,IAEAhB,OAAOoB,eAAeunB,GAAQ,eAAgB,CAC5CroB,YAAY,EACZsb,IAAK,SAAa+T,GAChB0zK,GAAQZ,UAAY9yK,EAEpB2zK,GAAYviM,SAAQ,SAAUmG,GAC5B,OAAOA,EAAGyhB,GACZ,GACF,EACAjV,IAAK,WACH,OAAO2vL,GAAQZ,SACjB,IAEFhE,GAAO2D,kBAAoBz5K,GAC3B,IAAI26K,GAAc,GASlB,IAAIzmL,GAAImiL,GACJuE,GAAuB,CACzBtqI,KAAM,GACN70D,EAAG,EACHghE,EAAG,EACHo+H,OAAQ,EACRC,OAAO,EACPC,OAAO,GAyBT,IAAIC,GAAS,iEACb,SAASC,KAIP,IAHA,IAAI3qI,EAAO,GACP/pD,EAAK,GAEF+pD,KAAS,GACd/pD,GAAMy0L,GAAuB,GAAhBlmL,KAAKw+C,SAAgB,GAGpC,OAAO/sD,CACT,CACA,SAASk4J,GAAQ9lK,GAGf,IAFA,IAAIuE,EAAQ,GAEHlF,GAAKW,GAAO,IAAIT,SAAW,EAAGF,KACrCkF,EAAMlF,GAAKW,EAAIX,GAGjB,OAAOkF,CACT,CACA,SAASg+L,GAAWr9L,GAClB,OAAIA,EAAKiwI,UACA2wB,GAAQ5gK,EAAKiwI,YAEZjwI,EAAK63D,aAAa,UAAY,IAAI37C,MAAM,KAAKviB,QAAO,SAAUQ,GACpE,OAAOA,CACT,GAEJ,CACA,SAASmjM,GAAWn1L,GAClB,MAAO,GAAG7E,OAAO6E,GAAK0S,QAAQ,KAAM,SAASA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,OAClI,CAMA,SAAS0iL,GAAWj0C,GAClB,OAAO9vJ,OAAOD,KAAK+vJ,GAAU,CAAC,GAAGtmJ,QAAO,SAAUw6L,EAAKC,GACrD,OAAOD,EAAM,GAAGl6L,OAAOm6L,EAAW,MAAMn6L,OAAOgmJ,EAAOm0C,GAAW16I,OAAQ,IAC3E,GAAG,GACL,CACA,SAAS26I,GAAsBvuG,GAC7B,OAAOA,EAAU18B,OAASsqI,GAAqBtqI,MAAQ08B,EAAUvxF,IAAMm/L,GAAqBn/L,GAAKuxF,EAAUvwB,IAAMm+H,GAAqBn+H,GAAKuwB,EAAU6tG,SAAWD,GAAqBC,QAAU7tG,EAAU8tG,OAAS9tG,EAAU+tG,KAC9N,CA8CA,IAAIS,GAAa,uwrBAEjB,SAASC,KACP,IAAIC,EAAMpF,GACNqF,EAAMpF,GACNqF,EAAK57K,GAAO85K,UACZ98F,EAAKh9E,GAAO+5K,iBACZjmL,EAAI0nL,GAER,GAAII,IAAOF,GAAO1+F,IAAO2+F,EAAK,CAC5B,IAAIE,EAAQ,IAAIrlK,OAAO,MAAMr1B,OAAOu6L,EAAK,OAAQ,KAC7CI,EAAiB,IAAItlK,OAAO,OAAOr1B,OAAOu6L,EAAK,OAAQ,KACvDK,EAAQ,IAAIvlK,OAAO,MAAMr1B,OAAOw6L,GAAM,KAC1C7nL,EAAIA,EAAE4E,QAAQmjL,EAAO,IAAI16L,OAAOy6L,EAAI,MAAMljL,QAAQojL,EAAgB,KAAK36L,OAAOy6L,EAAI,MAAMljL,QAAQqjL,EAAO,IAAI56L,OAAO67F,GACpH,CAEA,OAAOlpF,CACT,CAEA,IAAIkoL,IAAe,EAEnB,SAASC,KACHj8K,GAAOi6K,aAAe+B,MAvI5B,SAAmBP,GACjB,GAAKA,GAAQvF,GAAb,CAIA,IAAI9nH,EAAQ2nH,GAAStyL,cAAc,SACnC2qE,EAAMsV,aAAa,OAAQ,YAC3BtV,EAAMimB,UAAYonG,EAIlB,IAHA,IAAIS,EAAenG,GAASzyG,KAAK9tB,WAC7B2mI,EAAc,KAETnkM,EAAIkkM,EAAahkM,OAAS,EAAGF,GAAK,EAAGA,IAAK,CACjD,IAAIi9D,EAAQinI,EAAalkM,GACrBg9D,GAAWC,EAAMD,SAAW,IAAI9uD,cAEhC,CAAC,QAAS,QAAQ5M,QAAQ07D,IAAY,IACxCmnI,EAAclnI,EAElB,CAEA8gI,GAASzyG,KAAKvW,aAAaqB,EAAO+tH,EAjBlC,CAmBF,CAkHIC,CAAUX,MACVO,IAAe,EAEnB,CAEA,IAAIK,GAAY,CACdC,OAAQ,WACN,MAAO,CACLC,IAAK,CACHd,IAAKA,GACLW,UAAWH,IAGjB,EACAO,MAAO,WACL,MAAO,CACLC,yBAA0B,WACxBR,IACF,EACAS,YAAa,WACXT,IACF,EAEJ,GAGE/lL,GAAI4/K,IAAU,CAAC,EACd5/K,GAAEkgL,MAAuBlgL,GAAEkgL,IAAwB,CAAC,GACpDlgL,GAAEkgL,IAAsBjvC,SAAQjxI,GAAEkgL,IAAsBjvC,OAAS,CAAC,GAClEjxI,GAAEkgL,IAAsBoG,QAAOtmL,GAAEkgL,IAAsBoG,MAAQ,CAAC,GAChEtmL,GAAEkgL,IAAsBuG,QAAOzmL,GAAEkgL,IAAsBuG,MAAQ,IACpE,IAAIv3H,GAAYlvD,GAAEkgL,IAEdwG,GAAY,GAUZpiK,IAAS,EAYb,SAASqiK,GAAOC,GACd,IAAIp7L,EAAMo7L,EAAcp7L,IACpBq7L,EAAwBD,EAAchnI,WACtCA,OAAuC,IAA1BinI,EAAmC,CAAC,EAAIA,EACrDC,EAAwBF,EAAch6L,SACtCA,OAAqC,IAA1Bk6L,EAAmC,GAAKA,EAEvD,MAA6B,kBAAlBF,EACF3B,GAAW2B,GAEX,IAAI37L,OAAOO,EAAK,KAAKP,OAlJhC,SAAwB20D,GACtB,OAAOz+D,OAAOD,KAAK0+D,GAAc,CAAC,GAAGj1D,QAAO,SAAUw6L,EAAKzjI,GACzD,OAAOyjI,EAAM,GAAGl6L,OAAOy2D,EAAe,MAAOz2D,OAAOg6L,GAAWrlI,EAAW8B,IAAiB,KAC7F,GAAG,IAAIhX,MACT,CA8IuCq8I,CAAennI,GAAa,KAAK30D,OAAO2B,EAASsqB,IAAIyvK,IAAQ91K,KAAK,IAAK,MAAM5lB,OAAOO,EAAK,IAEhI,CAEA,SAASw7L,GAAgBC,EAAS34J,EAAQ44J,GACxC,GAAID,GAAWA,EAAQ34J,IAAW24J,EAAQ34J,GAAQ44J,GAChD,MAAO,CACL54J,OAAQA,EACR44J,SAAUA,EACVrvH,KAAMovH,EAAQ34J,GAAQ44J,GAG5B,CAhCIlH,MACF17J,IAAUu7J,GAAS5/H,gBAAgBknI,SAAW,aAAe,iBAAiBjiM,KAAK26L,GAASx3J,cAC/Ew3J,GAASz3J,iBAAiB,oBAZ1B,SAAS4a,IACtB68I,GAAS/7F,oBAAoB,mBAAoB9gD,GACjD1e,GAAS,EACToiK,GAAUxvK,KAAI,SAAUhJ,GACtB,OAAOA,GACT,GACF,KA2CA,IAmBIvjB,GAAS,SAA0By8L,EAASl5K,EAAI+uE,EAAcoqG,GAChE,IAGIvlM,EACAK,EACAyJ,EALA1K,EAAOC,OAAOD,KAAKkmM,GACnBplM,EAASd,EAAKc,OACdW,OAA2B2I,IAAhB+7L,EAtBG,SAAuBngM,EAAMmgM,GAC/C,OAAO,SAAU3pL,EAAGC,EAAGI,EAAGC,GACxB,OAAO9W,EAAK1D,KAAK6jM,EAAa3pL,EAAGC,EAAGI,EAAGC,EACzC,CACF,CAkB6CspL,CAAcp5K,EAAIm5K,GAAen5K,EAa5E,SARqB5iB,IAAjB2xF,GACFn7F,EAAI,EACJ8J,EAASw7L,EAAQlmM,EAAK,MAEtBY,EAAI,EACJ8J,EAASqxF,GAGJn7F,EAAIE,EAAQF,IAEjB8J,EAASjJ,EAASiJ,EAAQw7L,EAD1BjlM,EAAMjB,EAAKY,IAC6BK,EAAKilM,GAG/C,OAAOx7L,CACT,EAoDA,SAAS4vD,GAAM+rI,GACb,IAAI1rB,EA3BN,SAAoBz0K,GAKlB,IAJA,IAAIkxB,EAAS,GACTuzI,EAAU,EACV7pK,EAASoF,EAAOpF,OAEb6pK,EAAU7pK,GAAQ,CACvB,IAAIc,EAAQsE,EAAO4yD,WAAW6xG,KAE9B,GAAI/oK,GAAS,OAAUA,GAAS,OAAU+oK,EAAU7pK,EAAQ,CAC1D,IAAI4pK,EAAQxkK,EAAO4yD,WAAW6xG,KAEN,QAAX,MAARD,GAEHtzI,EAAO52B,OAAe,KAARoB,IAAkB,KAAe,KAAR8oK,GAAiB,QAExDtzI,EAAO52B,KAAKoB,GACZ+oK,IAEJ,MACEvzI,EAAO52B,KAAKoB,EAEhB,CAEA,OAAOw1B,CACT,CAGgBqzI,CAAW47B,GACzB,OAA0B,IAAnB1rB,EAAQ75K,OAAe65K,EAAQ,GAAG/2K,SAAS,IAAM,IAC1D,CAiBA,SAAS0iM,GAAe3yC,GACtB,OAAO1zJ,OAAOD,KAAK2zJ,GAAOlqJ,QAAO,SAAUw6L,EAAK+B,GAC9C,IAAIrvH,EAAOg9E,EAAMqyC,GASjB,QARiBrvH,EAAKA,KAGpBstH,EAAIttH,EAAKqvH,UAAYrvH,EAAKA,KAE1BstH,EAAI+B,GAAYrvH,EAGXstH,CACT,GAAG,CAAC,EACN,CAEA,SAASsC,GAAYn5J,EAAQumH,GAC3B,IACI6yC,GADS3lM,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACnD4lM,UAC3BA,OAAkC,IAAtBD,GAAuCA,EACnD1iD,EAAawiD,GAAe3yC,GAEO,oBAA5B3lF,GAAUo3H,MAAMsB,SAA2BD,EAGpDz4H,GAAU+hF,OAAO3iH,GAAU1sC,GAAeA,GAAe,CAAC,EAAGstE,GAAU+hF,OAAO3iH,IAAW,CAAC,GAAI02G,GAF9F91E,GAAUo3H,MAAMsB,QAAQt5J,EAAQk5J,GAAe3yC,IAYlC,QAAXvmH,GACFm5J,GAAY,KAAM5yC,EAEtB,CAEA,IAaIgzC,GAAaC,GAAWC,GACxB92C,GAAS/hF,GAAU+hF,OACnBw1C,GAAQv3H,GAAUu3H,MAClBuB,IAAgC5lM,GAAlBylM,GAAc,CAAC,EAAgC9G,GAAgB5/L,OAAOu2B,OAAOiqK,GAAqBZ,MAAmB3+L,GAAgBylM,GAAa7G,GAAc7/L,OAAOu2B,OAAOiqK,GAAqBX,MAAiB6G,IAClOI,GAAuB,KACvBC,GAAa,CAAC,EACdC,GAAc,CAAC,EACfC,GAAa,CAAC,EACdC,GAAgB,CAAC,EACjBC,GAAW,CAAC,EACZC,IAA4BnmM,GAAhB0lM,GAAY,CAAC,EAA8B/G,GAAgB5/L,OAAOD,KAAKigM,GAAgBJ,MAAmB3+L,GAAgB0lM,GAAW9G,GAAc7/L,OAAOD,KAAKigM,GAAgBH,MAAiB8G,IAMhN,SAASU,GAAY5E,EAAW6E,GAC9B,IALkBzjM,EAKd4e,EAAQ6kL,EAAI5kL,MAAM,KAClByqB,EAAS1qB,EAAM,GACfsjL,EAAWtjL,EAAM7e,MAAM,GAAG8rB,KAAK,KAEnC,OAAIyd,IAAWs1J,GAA0B,KAAbsD,IATVliM,EASyCkiM,GARnD5D,GAAiBlgM,QAAQ4B,IAWxB,KAFAkiM,CAIX,CACA,IA7akB7+L,GA6adshC,GAAQ,WACV,IAAIooC,EAAS,SAAgB22H,GAC3B,OAAO/9L,GAAOsmJ,IAAQ,SAAUvsJ,EAAGwzE,EAAO5pC,GAExC,OADA5pC,EAAE4pC,GAAU3jC,GAAOutE,EAAOwwH,EAAS,CAAC,GAC7BhkM,CACT,GAAG,CAAC,EACN,EAEAwjM,GAAan2H,GAAO,SAAUozH,EAAKttH,EAAMqvH,IACnCrvH,EAAK,KACPstH,EAAIttH,EAAK,IAAMqvH,GAGbrvH,EAAK,KACOA,EAAK,GAAGv2E,QAAO,SAAUoc,GACrC,MAAoB,kBAANA,CAChB,IACQxb,SAAQ,SAAU66E,GACxBooH,EAAIpoH,EAAMj4E,SAAS,KAAOoiM,CAC5B,IAGF,OAAO/B,CACT,IACAgD,GAAcp2H,GAAO,SAAUozH,EAAKttH,EAAMqvH,IACxC/B,EAAI+B,GAAYA,EAEZrvH,EAAK,KACOA,EAAK,GAAGv2E,QAAO,SAAUoc,GACrC,MAAoB,kBAANA,CAChB,IACQxb,SAAQ,SAAU66E,GACxBooH,EAAIpoH,GAASmqH,CACf,IAGF,OAAO/B,CACT,IACAmD,GAAWv2H,GAAO,SAAUozH,EAAKttH,EAAMqvH,GACrC,IAAIyB,EAAU9wH,EAAK,GAKnB,OAJAstH,EAAI+B,GAAYA,EAChByB,EAAQzmM,SAAQ,SAAU66E,GACxBooH,EAAIpoH,GAASmqH,CACf,IACO/B,CACT,IAGA,IAAIyD,EAAa,QAAS33C,IAAUnnI,GAAO++K,aACvCC,EAAcn+L,GAAO87L,IAAO,SAAUtB,EAAK9+L,GAC7C,IAAI0iM,EAAwB1iM,EAAK,GAC7BioC,EAASjoC,EAAK,GACd6gM,EAAW7gM,EAAK,GAoBpB,MAlBe,QAAXioC,GAAqBs6J,IACvBt6J,EAAS,OAG0B,kBAA1By6J,IACT5D,EAAI5zD,MAAMw3D,GAAyB,CACjCz6J,OAAQA,EACR44J,SAAUA,IAIuB,kBAA1B6B,IACT5D,EAAI6D,SAASD,EAAsBjkM,SAAS,KAAO,CACjDwpC,OAAQA,EACR44J,SAAUA,IAIP/B,CACT,GAAG,CACD5zD,MAAO,CAAC,EACRy3D,SAAU,CAAC,IAEbZ,GAAaU,EAAYv3D,MACzB82D,GAAgBS,EAAYE,SAC5Bf,GAAuBgB,GAAmBn/K,GAAO45K,aAAc,CAC7DwF,OAAQp/K,GAAO65K,eAEnB,EAOA,SAASwF,GAAU76J,EAAQi5J,GACzB,OAAQW,GAAW55J,IAAW,CAAC,GAAGi5J,EACpC,CAIA,SAAS6B,GAAQ96J,EAAQyuC,GACvB,OAAQurH,GAASh6J,IAAW,CAAC,GAAGyuC,EAClC,CACA,SAASssH,GAAUrkM,GACjB,OAAOojM,GAAWpjM,IAAS,CACzBspC,OAAQ,KACR44J,SAAU,KAEd,CAYA,SAASoC,KACP,OAAOrB,EACT,CAliBkB5/L,GAggBT,SAAU0V,GACjBkqL,GAAuBgB,GAAmBlrL,EAAE2lL,aAAc,CACxDwF,OAAQp/K,GAAO65K,eAEnB,EAngBEc,GAAY/iM,KAAK2G,IAogBnBshC,KA8BA,IAAI4/J,GAAqB,WACvB,MAAO,CACLj7J,OAAQ,KACR44J,SAAU,KACVj1J,KAAM,GAEV,EACA,SAASg3J,GAAmBO,GAC1B,IACIC,GADS1nM,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACtDmnM,OACxBA,OAA4B,IAAnBO,EAA4B1I,GAAiB0I,EACtDvxH,EAAQipH,GAAgB+H,GAAQM,GAChCl7J,EAAS8yJ,GAAgB8H,GAAQM,IAAkBpI,GAAgB8H,GAAQhxH,GAC3EwxH,EAAUF,KAAiBt6H,GAAU+hF,OAASu4C,EAAgB,KAClE,OAAOl7J,GAAUo7J,GAAW,IAC9B,CACA,IAAIC,IAAkDvnM,GAA3B2lM,GAAuB,CAAC,EAAyChH,GAAgB5/L,OAAOD,KAAKygM,GAAqBZ,MAAmB3+L,GAAgB2lM,GAAsB/G,GAAc7/L,OAAOD,KAAKygM,GAAqBX,MAAiB+G,IACtQ,SAAS6B,GAAiBlyK,GACxB,IAAImyK,EAGAC,GADS/nM,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACjDgoM,YAC7BA,OAAsC,IAAxBD,GAAyCA,EACvDE,GAA4B5nM,GAAhBynM,EAAY,CAAC,EAA8B9I,GAAgB,GAAG91L,OAAO6e,GAAO85K,UAAW,KAAK34L,OAAO81L,KAAkB3+L,GAAgBynM,EAAW7I,GAAc,GAAG/1L,OAAO6e,GAAO85K,UAAW,KAAK34L,OAAO+1L,KAAgB6I,GAClOI,EAAc,KACdf,EAASnI,IAETrpK,EAAO5sB,SAASk/L,EAASjJ,MAAoBrpK,EAAOqzG,MAAK,SAAU11F,GACrE,OAAOs0J,GAAoB5I,IAAgBj2L,SAASuqC,EACtD,OACE6zJ,EAASnI,KAGPrpK,EAAO5sB,SAASk/L,EAAShJ,MAAkBtpK,EAAOqzG,MAAK,SAAU11F,GACnE,OAAOs0J,GAAoB3I,IAAcl2L,SAASuqC,EACpD,OACE6zJ,EAASlI,IAGX,IAAIkJ,EAAYxyK,EAAO/sB,QAAO,SAAUw6L,EAAKsD,GAC3C,IAAIvB,EAAWsB,GAAY1+K,GAAO85K,UAAW6E,GAiB7C,GAfIx3C,GAAOw3C,IACTA,EAAMT,GAAWkB,GAAQp+L,SAAS29L,GAAOlG,GAAqB2G,GAAQT,GAAOA,EAC7EwB,EAAcxB,EACdtD,EAAI72J,OAASm6J,GACJF,GAASW,GAAQ9lM,QAAQqlM,IAAQ,GAC1CwB,EAAcxB,EACdtD,EAAI72J,OAAS26J,GAAmBR,EAAK,CACnCS,OAAQA,KAEDhC,EACT/B,EAAI+B,SAAWA,EACNuB,IAAQ3+K,GAAO+5K,kBAAoB4E,IAAQuB,EAASjJ,KAAmB0H,IAAQuB,EAAShJ,KACjGmE,EAAIlzJ,KAAKvwC,KAAK+mM,IAGXsB,GAAe5E,EAAI72J,QAAU62J,EAAI+B,SAAU,CAC9C,IAAI7gM,EAAuB,OAAhB4jM,EAAuBZ,GAAUlE,EAAI+B,UAAY,CAAC,EACzDiD,EAAgBf,GAAQjE,EAAI72J,OAAQ62J,EAAI+B,UAExC7gM,EAAKioC,SACP27J,EAAc,MAGhB9E,EAAI+B,SAAW7gM,EAAK6gM,UAAYiD,GAAiBhF,EAAI+B,SACrD/B,EAAI72J,OAASjoC,EAAKioC,QAAU62J,EAAI72J,OAEb,QAAf62J,EAAI72J,QAAqB2iH,GAAY,MAAKA,GAAY,KAAMnnI,GAAO++K,eAGrE1D,EAAI72J,OAAS,MAEjB,CAEA,OAAO62J,CACT,GAAGoE,MAqBH,OAnBI7xK,EAAO5sB,SAAS,cAAgB4sB,EAAO5sB,SAAS,UAClDo/L,EAAU57J,OAAS,QAGjB5W,EAAO5sB,SAAS,eAAiB4sB,EAAO5sB,SAAS,UACnDo/L,EAAU57J,OAAS,OAGhB47J,EAAU57J,QAAU46J,IAAWlI,KAAiB/vC,GAAa,OAAKnnI,GAAO++K,eAC5EqB,EAAU57J,OAAS,OACnB47J,EAAUhD,SAAWkC,GAAQc,EAAU57J,OAAQ47J,EAAUhD,WAAagD,EAAUhD,UAGzD,OAArBgD,EAAU57J,QAAmC,OAAhB27J,IAG/BC,EAAU57J,OAASg7J,MAA4B,OAG1CY,CACT,CAEA,IAAIE,GAAuB,WACzB,SAASA,KArhCX,SAAyBhyF,EAAU68B,GACjC,KAAM78B,aAAoB68B,GACxB,MAAM,IAAI5vI,UAAU,oCAExB,CAkhCIuwI,CAAgBr5H,KAAM6tL,GAEtB7tL,KAAK8tL,YAAc,CAAC,CACtB,CAzgCF,IAAsBp1D,EAAaC,EAAYC,EA+jC7C,OA/jCoBF,EA2gCPm1D,EA3gCoBl1D,EA2gCX,CAAC,CACrB/yI,IAAK,MACLW,MAAO,WAGL,IAFA,IAAIw3H,EAAQ/9G,KAEH4rH,EAAOpmI,UAAUC,OAAQqoM,EAAc,IAAItmM,MAAMokI,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACtFgiE,EAAYhiE,GAAQtmI,UAAUsmI,GAGhC,IAAIiiE,EAAYD,EAAY1/L,OAAO4R,KAAKguL,iBAAkB,CAAC,GAC3DppM,OAAOD,KAAKopM,GAAWpoM,SAAQ,SAAUC,GACvCm4H,EAAM+vE,YAAYloM,GAAOP,GAAeA,GAAe,CAAC,EAAG04H,EAAM+vE,YAAYloM,IAAQ,CAAC,GAAImoM,EAAUnoM,IACpGslM,GAAYtlM,EAAKmoM,EAAUnoM,IAE3B,IAAIqoM,EAAa7I,GAAqBZ,IAAgB5+L,GAClDqoM,GAAY/C,GAAY+C,EAAYF,EAAUnoM,IAClDwnC,IACF,GACF,GACC,CACDxnC,IAAK,QACLW,MAAO,WACLyZ,KAAK8tL,YAAc,CAAC,CACtB,GACC,CACDloM,IAAK,mBACLW,MAAO,SAA0BwnM,EAAW1yB,GAC1C,IAAI5yB,EAAa4yB,EAAWtpI,QAAUspI,EAAWsvB,UAAYtvB,EAAW//F,KAAO,CAC7E,EAAG+/F,GACDA,EAmBJ,OAlBAz2K,OAAOD,KAAK8jJ,GAAY9tH,KAAI,SAAU/0B,GACpC,IAAIsoM,EAAkBzlD,EAAW7iJ,GAC7BmsC,EAASm8J,EAAgBn8J,OACzB44J,EAAWuD,EAAgBvD,SAC3BrvH,EAAO4yH,EAAgB5yH,KACvB8wH,EAAU9wH,EAAK,GACdyyH,EAAUh8J,KAASg8J,EAAUh8J,GAAU,CAAC,GAEzCq6J,EAAQ3mM,OAAS,GACnB2mM,EAAQzmM,SAAQ,SAAU66E,GACH,kBAAVA,IACTutH,EAAUh8J,GAAQyuC,GAASlF,EAE/B,IAGFyyH,EAAUh8J,GAAQ44J,GAAYrvH,CAChC,IACOyyH,CACT,IA3jCEp1D,GAAY2pD,GAAkB5pD,EAAYpyI,UAAWqyI,GACrDC,GAAa0pD,GAAkB5pD,EAAaE,GAChDh0I,OAAOoB,eAAe0yI,EAAa,YAAa,CAC9CjyI,UAAU,IA2jCLonM,CACT,CA5D2B,GA8DvBM,GAAW,GACXC,GAAS,CAAC,EACV5jL,GAAY,CAAC,EACb6jL,GAAsBzpM,OAAOD,KAAK6lB,IA+CtC,SAAS8jL,GAAWC,EAAMC,GACxB,IAAK,IAAI5iE,EAAOpmI,UAAUC,OAAQ+5C,EAAO,IAAIh4C,MAAMokI,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGtsF,EAAKssF,EAAO,GAAKtmI,UAAUsmI,GAO7B,OAJcsiE,GAAOG,IAAS,IACtB5oM,SAAQ,SAAU8oM,GACxBD,EAAcC,EAAOrpM,MAAM,KAAM,CAACopM,GAAa9/L,OAAO8wC,GACxD,IACOgvJ,CACT,CACA,SAASE,GAAUH,GACjB,IAAK,IAAIviE,EAAQxmI,UAAUC,OAAQ+5C,EAAO,IAAIh4C,MAAMwkI,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGzsF,EAAKysF,EAAQ,GAAKzmI,UAAUymI,IAGhBmiE,GAAOG,IAAS,IACtB5oM,SAAQ,SAAU8oM,GACxBA,EAAOrpM,MAAM,KAAMo6C,EACrB,GAEF,CACA,SAASmvJ,KACP,IAAIJ,EAAO/oM,UAAU,GACjBg6C,EAAOh4C,MAAMlB,UAAUkC,MAAMvB,KAAKzB,UAAW,GACjD,OAAOglB,GAAU+jL,GAAQ/jL,GAAU+jL,GAAMnpM,MAAM,KAAMo6C,QAAQzwC,CAC/D,CAEA,SAAS6/L,GAAmBC,GACA,OAAtBA,EAAW98J,SACb88J,EAAW98J,OAAS,OAGtB,IAAI44J,EAAWkE,EAAWlE,SACtB54J,EAAS88J,EAAW98J,QAAUg7J,KAClC,GAAKpC,EAEL,OADAA,EAAWkC,GAAQ96J,EAAQ44J,IAAaA,EACjCF,GAAgBqE,GAAQhB,YAAa/7J,EAAQ44J,IAAaF,GAAgB93H,GAAU+hF,OAAQ3iH,EAAQ44J,EAC7G,CACA,IAAImE,GAAU,IAAIjB,GAMd/D,GAAM,CACRiF,MAAO,WACL,IAAI39K,EAAS5rB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAElF,OAAIi+L,IACFiL,GAAU,cAAet9K,GACzBu9K,GAAa,qBAAsBv9K,GAC5Bu9K,GAAa,QAASv9K,IAEtBjiB,QAAQ+wC,OAAO,yCAE1B,EACA8uJ,MAAO,WACL,IAtmBer9K,EAsmBXP,EAAS5rB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EypM,EAAqB79K,EAAO69K,oBAEF,IAA1B1hL,GAAOg6K,iBACTh6K,GAAOg6K,gBAAiB,GAG1Bh6K,GAAOo6K,kBAAmB,EA7mBXh2K,EA8mBN,WACPu9K,GAAY,CACVD,mBAAoBA,IAEtBP,GAAU,QAASt9K,EACrB,EAlnBGqyK,KACL17J,GAASU,WAAW9W,EAAI,GAAKw4K,GAAUhlM,KAAKwsB,GAknB5C,GAEElK,GAAQ,CACV6zD,KAAM,SAAc6zH,GAClB,GAAc,OAAVA,EACF,OAAO,KAGT,GAAuB,WAAnBlpM,GAAQkpM,IAAuBA,EAAMp9J,QAAUo9J,EAAMxE,SACvD,MAAO,CACL54J,OAAQo9J,EAAMp9J,OACd44J,SAAUkC,GAAQsC,EAAMp9J,OAAQo9J,EAAMxE,WAAawE,EAAMxE,UAI7D,GAAInjM,MAAMC,QAAQ0nM,IAA2B,IAAjBA,EAAM1pM,OAAc,CAC9C,IAAIklM,EAAuC,IAA5BwE,EAAM,GAAGtoM,QAAQ,OAAesoM,EAAM,GAAG3mM,MAAM,GAAK2mM,EAAM,GACrEp9J,EAAS26J,GAAmByC,EAAM,IACtC,MAAO,CACLp9J,OAAQA,EACR44J,SAAUkC,GAAQ96J,EAAQ44J,IAAaA,EAE3C,CAEA,GAAqB,kBAAVwE,IAAuBA,EAAMtoM,QAAQ,GAAG6H,OAAO6e,GAAO85K,UAAW,OAAS,GAAK8H,EAAMjpL,MAAM+/K,KAAiC,CACrI,IAAImJ,EAAgB/B,GAAiB8B,EAAM7nL,MAAM,KAAM,CACrDkmL,aAAa,IAEf,MAAO,CACLz7J,OAAQq9J,EAAcr9J,QAAUg7J,KAChCpC,SAAUkC,GAAQuC,EAAcr9J,OAAQq9J,EAAczE,WAAayE,EAAczE,SAErF,CAEA,GAAqB,kBAAVwE,EAAoB,CAC7B,IAAIE,EAAUtC,KAEd,MAAO,CACLh7J,OAAQs9J,EACR1E,SAAUkC,GAAQwC,EAASF,IAAUA,EAEzC,CACF,GAEEx5K,GAAM,CACR25K,OA7EW,WACX/hL,GAAOg6K,gBAAiB,EACxBh6K,GAAOo6K,kBAAmB,EAC1B+G,GAAU,SACZ,EA0EEnhL,OAAQA,GACRu8K,IAAKA,GACLriL,MAAOA,GACPqnL,QAASA,GACTF,mBAAoBA,GACpBxE,OAAQA,IAGN8E,GAAc,WAChB,IACIK,GADS/pM,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAC/CypM,mBAC/BA,OAA+C,IAA1BM,EAAmCjM,GAAWiM,GAClE3qM,OAAOD,KAAKguE,GAAU+hF,QAAQjvJ,OAAS,GAAK8nB,GAAO++K,eAAiB7I,IAAUl2K,GAAOg6K,gBAAgB5xK,GAAIm0K,IAAIiF,MAAM,CACtH3jM,KAAM6jM,GAEV,EAEA,SAASO,GAAYj7K,EAAKk7K,GAmBxB,OAlBA7qM,OAAOoB,eAAeuuB,EAAK,WAAY,CACrCjc,IAAKm3L,IAEP7qM,OAAOoB,eAAeuuB,EAAK,OAAQ,CACjCjc,IAAK,WACH,OAAOic,EAAIm7K,SAAS/0K,KAAI,SAAUxZ,GAChC,OAAOipL,GAAOjpL,EAChB,GACF,IAEFvc,OAAOoB,eAAeuuB,EAAK,OAAQ,CACjCjc,IAAK,WACH,GAAKmrL,GAAL,CACA,IAAItoD,EAAYmoD,GAAStyL,cAAc,OAEvC,OADAmqI,EAAUv5C,UAAYrtE,EAAI6mH,KACnBD,EAAU9qI,QAHE,CAIrB,IAEKkkB,CACT,CAmDA,SAASo7K,GAAsBv+K,GAC7B,IAAIw+K,EAAgBx+K,EAAOknI,MACvBu3C,EAAOD,EAAcC,KACrBC,EAAOF,EAAcE,KACrB/9J,EAAS3gB,EAAO2gB,OAChB44J,EAAWv5K,EAAOu5K,SAClBpwG,EAAYnpE,EAAOmpE,UACnBzvF,EAASsmB,EAAOtmB,OAChBg9H,EAAQ12G,EAAO02G,MACfioE,EAAS3+K,EAAO2+K,OAChBC,EAAU5+K,EAAO4+K,QACjB3gC,EAAQj+I,EAAOi+I,MACf4gC,EAAoB7+K,EAAO8+K,UAC3BA,OAAkC,IAAtBD,GAAuCA,EAEnD9/L,EAAO2/L,EAAKpoI,MAAQooI,EAAOD,EAC3B/7F,EAAQ3jG,EAAK2jG,MACbC,EAAS5jG,EAAK4jG,OAEdo8F,EAA4B,QAAXp+J,EACjBq+J,EAAY,CAAC7iL,GAAO+5K,iBAAkBqD,EAAW,GAAGj8L,OAAO6e,GAAO85K,UAAW,KAAK34L,OAAOi8L,GAAY,IAAI5lM,QAAO,SAAUyc,GAC5H,OAAqC,IAA9B6tJ,EAAM76B,QAAQ3tI,QAAQ2a,EAC/B,IAAGzc,QAAO,SAAUyc,GAClB,MAAa,KAANA,KAAcA,CACvB,IAAG9S,OAAO2gK,EAAM76B,SAASlgH,KAAK,KAC1Bw+J,EAAU,CACZziL,SAAU,GACVgzD,WAAYh+D,GAAeA,GAAe,CAAC,EAAGgqK,EAAMhsG,YAAa,CAAC,EAAG,CACnE,cAAetxB,EACf,YAAa44J,EACb,MAASyF,EACT,KAAQ/gC,EAAMhsG,WAAWgtI,MAAQ,MACjC,MAAS,6BACT,QAAW,OAAO3hM,OAAOolG,EAAO,KAAKplG,OAAOqlG,MAG5Cu8F,EAAyBH,KAAoB9gC,EAAM76B,QAAQ3tI,QAAQ,SAAW,CAChFitG,MAAO,GAAGplG,OAAOolG,EAAQC,EAAS,GAAK,MAAQ,OAC7C,CAAC,EAEDm8F,IACFpd,EAAQzvH,WAAW0gI,IAAiB,IAGlCj8D,IACFgrD,EAAQziL,SAASlL,KAAK,CACpB8J,IAAK,QACLo0D,WAAY,CACVvvD,GAAIg/K,EAAQzvH,WAAW,oBAAsB,SAAS30D,OAAOshM,GAAWxH,OAE1En4L,SAAU,CAACy3H,YAENgrD,EAAQzvH,WAAWykE,OAG5B,IAAItoF,EAAOn6C,GAAeA,GAAe,CAAC,EAAGytL,GAAU,CAAC,EAAG,CACzD/gJ,OAAQA,EACR44J,SAAUA,EACVkF,KAAMA,EACNC,KAAMA,EACNC,OAAQA,EACRx1G,UAAWA,EACXzvF,OAAQA,EACR4pJ,OAAQrvJ,GAAeA,GAAe,CAAC,EAAGirM,GAAyBjhC,EAAM3a,UAGvEnjJ,EAAQu+L,EAAKpoI,OAASmoI,EAAKnoI,MAAQinI,GAAa,uBAAwBnvJ,IAAS,CACnFnvC,SAAU,GACVgzD,WAAY,CAAC,GACXsrI,GAAa,uBAAwBnvJ,IAAS,CAChDnvC,SAAU,GACVgzD,WAAY,CAAC,GAEXhzD,EAAWkB,EAAMlB,SACjBgzD,EAAa9xD,EAAM8xD,WAKvB,OAHA7jB,EAAKnvC,SAAWA,EAChBmvC,EAAK6jB,WAAaA,EAEdv4D,EArGN,SAAmBqF,GACjB,IAAI4hC,EAAS5hC,EAAK4hC,OACd44J,EAAWx6L,EAAKw6L,SAChBt6L,EAAWF,EAAKE,SAChBgzD,EAAalzD,EAAKkzD,WAClBv4D,EAASqF,EAAKrF,OACdgJ,GAAgB,IAAXhJ,EAAkB,GAAG4D,OAAOqjC,EAAQ,KAAKrjC,OAAO6e,GAAO85K,UAAW,KAAK34L,OAAOi8L,GAAY7/L,EACnG,MAAO,CAAC,CACNmE,IAAK,MACLo0D,WAAY,CACVsY,MAAO,kBAETtrE,SAAU,CAAC,CACTpB,IAAK,SACLo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAGg+D,GAAa,CAAC,EAAG,CAC7DvvD,GAAIA,IAENzD,SAAUA,KAGhB,CAkFWkgM,CAAS/wJ,GAjIpB,SAAiBrvC,GACf,IAAIE,EAAWF,EAAKE,SAChBw/L,EAAO1/L,EAAK0/L,KACZC,EAAO3/L,EAAK2/L,KACZzsI,EAAalzD,EAAKkzD,WAClBqxF,EAASvkJ,EAAKukJ,OACdn6D,EAAYpqF,EAAKoqF,UAErB,GAAIuuG,GAAsBvuG,IAAcs1G,EAAKnoI,QAAUooI,EAAKpoI,MAAO,CACjE,IAEIxkD,EAAS,CACXla,EAHU6mM,EAAK/7F,MACJ+7F,EAAK97F,OAEI,EACpB/pC,EAAG,IAEL3G,EAAkB,MAAIslI,GAAWtjM,GAAeA,GAAe,CAAC,EAAGqvJ,GAAS,CAAC,EAAG,CAC9E,mBAAoB,GAAGhmJ,OAAOwU,EAAOla,EAAIuxF,EAAUvxF,EAAI,GAAI,OAAO0F,OAAOwU,EAAO8mD,EAAIuwB,EAAUvwB,EAAI,GAAI,QAE1G,CAEA,MAAO,CAAC,CACN/6D,IAAK,MACLo0D,WAAYA,EACZhzD,SAAUA,GAEd,CA0GWmgM,CAAOhxJ,EAElB,CACA,SAASixJ,GAAuBr/K,GAC9B,IAAI0hK,EAAU1hK,EAAO0hK,QACjBh/E,EAAQ1iF,EAAO0iF,MACfC,EAAS3iF,EAAO2iF,OAChBxZ,EAAYnpE,EAAOmpE,UACnButC,EAAQ12G,EAAO02G,MACfunC,EAAQj+I,EAAOi+I,MACfqhC,EAAqBt/K,EAAO8+K,UAC5BA,OAAmC,IAAvBQ,GAAwCA,EAEpDrtI,EAAah+D,GAAeA,GAAeA,GAAe,CAAC,EAAGgqK,EAAMhsG,YAAaykE,EAAQ,CAC3F,MAASA,GACP,CAAC,GAAI,CAAC,EAAG,CACX,MAASunC,EAAM76B,QAAQlgH,KAAK,OAG1B47K,IACF7sI,EAAW0gI,IAAiB,IAG9B,IAAIrvC,EAASrvJ,GAAe,CAAC,EAAGgqK,EAAM3a,QAElCo0C,GAAsBvuG,KACxBm6D,EAAkB,UAt8BtB,SAAyBnjJ,GACvB,IAAIgpF,EAAYhpF,EAAMgpF,UAClBo2G,EAAcp/L,EAAMuiG,MACpBA,OAAwB,IAAhB68F,EAAyB/M,GAAgB+M,EACjDC,EAAer/L,EAAMwiG,OACrBA,OAA0B,IAAjB68F,EAA0BhN,GAAgBgN,EACnDC,EAAsBt/L,EAAMu/L,cAC5BA,OAAwC,IAAxBD,GAAyCA,EACzDt8K,EAAM,GAYV,OATEA,GADEu8K,GAAiBpN,GACZ,aAAah1L,OAAO6rF,EAAUvxF,EAAIyY,GAAIqyF,EAAQ,EAAG,QAAQplG,OAAO6rF,EAAUvwB,EAAIvoD,GAAIsyF,EAAS,EAAG,QAC5F+8F,EACF,yBAAyBpiM,OAAO6rF,EAAUvxF,EAAIyY,GAAG,qBAAqB/S,OAAO6rF,EAAUvwB,EAAIvoD,GAAG,SAE9F,aAAa/S,OAAO6rF,EAAUvxF,EAAIyY,GAAG,QAAQ/S,OAAO6rF,EAAUvwB,EAAIvoD,GAAG,QAG9E8S,GAAO,SAAS7lB,OAAO6rF,EAAU18B,KAAOp8C,IAAK84E,EAAU8tG,OAAS,EAAI,GAAI,MAAM35L,OAAO6rF,EAAU18B,KAAOp8C,IAAK84E,EAAU+tG,OAAS,EAAI,GAAI,MACtI/zK,EAAO,UAAU7lB,OAAO6rF,EAAU6tG,OAAQ,QAE5C,CAi7B0B2I,CAAgB,CACpCx2G,UAAWA,EACXu2G,eAAe,EACfh9F,MAAOA,EACPC,OAAQA,IAEV2gD,EAAO,qBAAuBA,EAAkB,WAGlD,IAAIs8C,EAAcrI,GAAWj0C,GAEzBs8C,EAAYvrM,OAAS,IACvB49D,EAAkB,MAAI2tI,GAGxB,IAAIz8K,EAAM,GAiBV,OAhBAA,EAAIpvB,KAAK,CACP8J,IAAK,OACLo0D,WAAYA,EACZhzD,SAAU,CAACyiL,KAGThrD,GACFvzG,EAAIpvB,KAAK,CACP8J,IAAK,OACLo0D,WAAY,CACV4vH,MAAO,WAET5iL,SAAU,CAACy3H,KAIRvzG,CACT,CAsCA,IAAI08K,GAAWt+H,GAAU+hF,OACzB,SAASw8C,GAAY51H,GACnB,IAAIw4B,EAAQx4B,EAAK,GACby4B,EAASz4B,EAAK,GAId61H,EADejqM,GADDo0E,EAAK9yE,MAAM,GACkB,GACjB,GAoC9B,MAAO,CACLk/D,OAAO,EACPosC,MAAOA,EACPC,OAAQA,EACRz4B,KApCE9zE,MAAMC,QAAQ0pM,GACN,CACRliM,IAAK,IACLo0D,WAAY,CACV4vH,MAAO,GAAGvkL,OAAO6e,GAAO85K,UAAW,KAAK34L,OAAO+3L,GAAgBC,QAEjEr2L,SAAU,CAAC,CACTpB,IAAK,OACLo0D,WAAY,CACV4vH,MAAO,GAAGvkL,OAAO6e,GAAO85K,UAAW,KAAK34L,OAAO+3L,GAAgBI,WAC/Dj0J,KAAM,eACNnxB,EAAG0vL,EAAW,KAEf,CACDliM,IAAK,OACLo0D,WAAY,CACV4vH,MAAO,GAAGvkL,OAAO6e,GAAO85K,UAAW,KAAK34L,OAAO+3L,GAAgBG,SAC/Dh0J,KAAM,eACNnxB,EAAG0vL,EAAW,OAKV,CACRliM,IAAK,OACLo0D,WAAY,CACVzwB,KAAM,eACNnxB,EAAG0vL,IAWX,CACA,IAAIC,GAA6B,CAC/B1pI,OAAO,EACPosC,MAAO,IACPC,OAAQ,KASV,SAASs9F,GAAS1G,EAAU54J,GAC1B,IAAI27J,EAAc37J,EAMlB,MAJe,OAAXA,GAA2C,OAAxBxkB,GAAO45K,eAC5Bp1J,EAASg7J,MAGJ,IAAI59L,SAAQ,SAAUC,EAAS8wC,GAK5ByuJ,GAAa,uBAGrB,GAAoB,OAAhBjB,EAAsB,CACxB,IAAI5jM,EAAOgjM,GAAUnC,IAAa,CAAC,EACnCA,EAAW7gM,EAAK6gM,UAAYA,EAC5B54J,EAASjoC,EAAKioC,QAAUA,CAC1B,CAEA,GAAI44J,GAAY54J,GAAUk/J,GAASl/J,IAAWk/J,GAASl/J,GAAQ44J,GAE7D,OAAOv7L,EAAQ8hM,GADJD,GAASl/J,GAAQ44J,MA5BlC,SAA4BA,EAAU54J,GAC/BwyJ,IAAeh3K,GAAOw6K,mBAAoB4C,GAC7Cn8L,QAAQ+G,MAAM,mBAAoB7G,OAAOi8L,EAAU,kBAAoBj8L,OAAOqjC,EAAQ,iBAE1F,CA4BIu/J,CAAmB3G,EAAU54J,GAC7B3iC,EAAQ/J,GAAeA,GAAe,CAAC,EAAG+rM,IAA6B,CAAC,EAAG,CACzE91H,KAAM/tD,GAAOw6K,kBAAoB4C,GAAWgE,GAAa,wBAA+B,CAAC,IAE7F,GACF,CAEA,IAAI4C,GAAS,WAAiB,EAE1Bl4H,GAAI9rD,GAAOu6K,oBAAsBtE,IAAeA,GAAY/oC,MAAQ+oC,GAAYV,QAAUU,GAAc,CAC1G/oC,KAAM82C,GACNzO,QAASyO,IAEPC,GAAW,aASXvyJ,GAAM,SAAax2C,GACrB4wE,GAAEohF,KAAK,GAAG/rJ,OAAO8iM,GAAU,KAAK9iM,OAAOjG,EAAM,UAC7C4wE,GAAEypH,QAAQ,GAAGp0L,OAAO8iM,GAAU,KAAK9iM,OAAOjG,GAAO,GAAGiG,OAAO8iM,GAAU,KAAK9iM,OAAOjG,EAAM,WAAY,GAAGiG,OAAO8iM,GAAU,KAAK9iM,OAAOjG,EAAM,SAC3I,EAEIgpM,GAAO,CACTC,MAbU,SAAejpM,GAEzB,OADA4wE,GAAEohF,KAAK,GAAG/rJ,OAAO8iM,GAAU,KAAK9iM,OAAOjG,EAAM,YACtC,WACL,OAAOw2C,GAAIx2C,EACb,CACF,EASEw2C,IAAKA,IAGH0yJ,GAAS,WAAiB,EAE9B,SAASC,GAAUxmM,GAEjB,MAAwB,kBADZA,EAAK63D,aAAe73D,EAAK63D,aAAa8gI,IAAiB,KAErE,CAqBA,SAAStyE,GAAgBxiH,GACvB,OAAOq0L,GAAS7xE,gBAAgB,6BAA8BxiH,EAChE,CAEA,SAAS+B,GAAc/B,GACrB,OAAOq0L,GAAStyL,cAAc/B,EAChC,CAEA,SAAS4iM,GAAWC,GAClB,IACIC,GADSvsM,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACxDwsM,KACtBA,OAAwB,IAAjBD,EAA8C,QAApBD,EAAY7iM,IAAgBwiH,GAAkBzgH,GAAgB+gM,EAEnG,GAA2B,kBAAhBD,EACT,OAAOxO,GAAS3xE,eAAemgF,GAGjC,IAAI7iM,EAAM+iM,EAAKF,EAAY7iM,KAU3B,OATArK,OAAOD,KAAKmtM,EAAYzuI,YAAc,IAAI19D,SAAQ,SAAUC,GAC1DqJ,EAAIgiF,aAAarrF,EAAKksM,EAAYzuI,WAAWz9D,GAC/C,KACeksM,EAAYzhM,UAAY,IAC9B1K,SAAQ,SAAU68D,GACzBvzD,EAAIsrE,YAAYs3H,GAAWrvI,EAAO,CAChCwvI,KAAMA,IAEV,IACO/iM,CACT,CAYA,IAAIgjM,GAAW,CACbhsL,QAAS,SAAiBykI,GACxB,IAAIt/I,EAAOs/I,EAAS,GAEpB,GAAIt/I,EAAK82D,WAKP,GAJAwoF,EAAS,GAAG/kJ,SAAQ,SAAUusM,GAC5B9mM,EAAK82D,WAAWoY,aAAau3H,GAAWK,GAAY9mM,EACtD,IAEyC,OAArCA,EAAK63D,aAAa8gI,KAA2Bx2K,GAAOs6K,mBAAoB,CAC1E,IAAIsK,EAAU7O,GAAS8O,cApB/B,SAAuBhnM,GACrB,IAAI+mM,EAAU,IAAIzjM,OAAOtD,EAAKinM,UAAW,KAMzC,MAHU,GAAG3jM,OAAOyjM,EAAS,gCAI/B,CAY6CG,CAAclnM,IACnDA,EAAK82D,WAAW2oF,aAAasnD,EAAS/mM,EACxC,MACEA,EAAKitB,QAGX,EACAk6K,KAAM,SAAc7nD,GAClB,IAAIt/I,EAAOs/I,EAAS,GAChB8nD,EAAa9nD,EAAS,GAG1B,IAAK+9C,GAAWr9L,GAAMvE,QAAQ0mB,GAAO+5K,kBACnC,OAAO2K,GAAShsL,QAAQykI,GAG1B,IAAI+nD,EAAS,IAAI1uK,OAAO,GAAGr1B,OAAO6e,GAAO85K,UAAW,QAGpD,UAFOmL,EAAW,GAAGnvI,WAAWvvD,GAE5B0+L,EAAW,GAAGnvI,WAAW4vH,MAAO,CAClC,IAAIyf,EAAeF,EAAW,GAAGnvI,WAAW4vH,MAAM3rK,MAAM,KAAKlZ,QAAO,SAAUw6L,EAAKsD,GAOjF,OANIA,IAAQ3+K,GAAO+5K,kBAAoB4E,EAAIhmL,MAAMusL,GAC/C7J,EAAI+J,MAAMxtM,KAAK+mM,GAEftD,EAAIgK,OAAOztM,KAAK+mM,GAGXtD,CACT,GAAG,CACDgK,OAAQ,GACRD,MAAO,KAGTH,EAAW,GAAGnvI,WAAW4vH,MAAQyf,EAAaC,MAAMr+K,KAAK,KAEtB,IAA/Bo+K,EAAaE,OAAOntM,OACtB2F,EAAK25D,gBAAgB,SAErB35D,EAAK6lF,aAAa,QAASyhH,EAAaE,OAAOt+K,KAAK,KAExD,CAEA,IAAIu+K,EAAeL,EAAW73K,KAAI,SAAUxZ,GAC1C,OAAOipL,GAAOjpL,EAChB,IAAGmT,KAAK,MAERlpB,EAAK6lF,aAAa8yG,GAAe,IACjC34L,EAAKw2F,UAAYixG,CACnB,GAGF,SAASC,GAAqBn9D,GAC5BA,GACF,CAEA,SAASo9D,GAAQ92D,EAAWr0H,GAC1B,IAAIorL,EAAuC,oBAAbprL,EAA0BA,EAAW+pL,GAEnE,GAAyB,IAArB11D,EAAUx2I,OACZutM,QACK,CACL,IAAIC,EAAQH,GAERvlL,GAAOq6K,iBAAmBvD,KAC5B4O,EAAQ5P,GAAOnE,uBAAyB4T,IAG1CG,GAAM,WACJ,IAAIC,GA9HsB,IAA1B3lL,GAAOg6K,eACF0K,GAAShsL,QAGJgsL,GAAS1kL,GAAOg6K,iBACZ0K,GAAShsL,QA0HnBw0I,EAAOg3C,GAAKC,MAAM,UACtBz1D,EAAUthH,IAAIu4K,GACdz4C,IACAu4C,GACF,GACF,CACF,CACA,IAAIt3H,IAAW,EACf,SAASy3H,KACPz3H,IAAW,CACb,CACA,SAAS03H,KACP13H,IAAW,CACb,CACA,IAAI23H,GAAK,KACT,SAAS94C,GAAQtsJ,GACf,GAAKs1L,IAIAh2K,GAAOo6K,iBAAZ,CAIA,IAAI2L,EAAwBrlM,EAAQslM,aAChCA,OAAyC,IAA1BD,EAAmC3B,GAAS2B,EAC3DE,EAAwBvlM,EAAQwlM,aAChCA,OAAyC,IAA1BD,EAAmC7B,GAAS6B,EAC3DE,EAAwBzlM,EAAQ0lM,uBAChCA,OAAmD,IAA1BD,EAAmC/B,GAAS+B,EACrEE,EAAwB3lM,EAAQ4lM,qBAChCA,OAAiD,IAA1BD,EAAmCtQ,GAAWsQ,EACzEP,GAAK,IAAI9P,IAAkB,SAAU5sB,GACnC,IAAIj7F,GAAJ,CACA,IAAIo4H,EAAgB/G,KACpB/gC,GAAQ2K,GAAShxK,SAAQ,SAAUouM,GAajC,GAZ4B,cAAxBA,EAAepgM,MAAwBogM,EAAevpD,WAAW/kJ,OAAS,IAAMmsM,GAAUmC,EAAevpD,WAAW,MAClHj9H,GAAOm6K,sBACTiM,EAAuBI,EAAezuM,QAGxCiuM,EAAaQ,EAAezuM,SAGF,eAAxByuM,EAAepgM,MAAyBogM,EAAezuM,OAAO48D,YAAc30C,GAAOm6K,sBACrFiM,EAAuBI,EAAezuM,OAAO48D,YAGnB,eAAxB6xI,EAAepgM,MAAyBi+L,GAAUmC,EAAezuM,UAAYkhM,GAAgC3/L,QAAQktM,EAAe5uI,eACtI,GAAqC,UAAjC4uI,EAAe5uI,eA3L3B,SAA0B/5D,GACxB,IAAI2mC,EAAS3mC,EAAK63D,aAAe73D,EAAK63D,aAAaihI,IAAe,KAC9D5oH,EAAOlwE,EAAK63D,aAAe73D,EAAK63D,aAAakhI,IAAa,KAC9D,OAAOpyJ,GAAUupC,CACnB,CAuLwD04H,CAAiBD,EAAezuM,QAAS,CACvF,IAAI2uM,EAAoB5G,GAAiB5E,GAAWsL,EAAezuM,SAC/DysC,EAASkiK,EAAkBliK,OAC3B44J,EAAWsJ,EAAkBtJ,SAEjCoJ,EAAezuM,OAAO2rF,aAAaizG,GAAanyJ,GAAU+hK,GACtDnJ,GAAUoJ,EAAezuM,OAAO2rF,aAAakzG,GAAWwG,EAC9D,MA5LiBv/L,EA4LU2oM,EAAezuM,SA3LjC8F,EAAKiwI,WAAajwI,EAAKiwI,UAAUxyD,UAAYz9E,EAAKiwI,UAAUxyD,SAASt7D,GAAO+5K,mBA4LnFmM,EAAaM,EAAezuM,QA7LtC,IAAyB8F,CAgMrB,GA3BoB,CA4BtB,IACKq4L,IACL4P,GAAG94C,QAAQs5C,EAAsB,CAC/B15C,WAAW,EACX92F,YAAY,EACZ42F,eAAe,EACfG,SAAS,GA7CX,CA+CF,CA2BA,SAAS85C,GAAa9oM,GACpB,IAAI+oM,EAAiB/oM,EAAK63D,aAAa,eACnCmxI,EAAmBhpM,EAAK63D,aAAa,aACrC4gG,OAA+B90J,IAAnB3D,EAAKy4J,UAA0Bz4J,EAAKy4J,UAAU11G,OAAS,GACnE55B,EAAM84K,GAAiB5E,GAAWr9L,IAWtC,OATKmpB,EAAIwd,SACPxd,EAAIwd,OAASg7J,MAGXoH,GAAkBC,IACpB7/K,EAAIwd,OAASoiK,EACb5/K,EAAIo2K,SAAWyJ,GAGb7/K,EAAIo2K,UAAYp2K,EAAIwd,SAIpBxd,EAAIwd,QAAU8xH,EAAUp+J,OAAS,IACnC8uB,EAAIo2K,SA5+BR,SAAoB54J,EAAQsiK,GAC1B,OAAQzI,GAAY75J,IAAW,CAAC,GAAGsiK,EACrC,CA0+BmBC,CAAW//K,EAAIwd,OAAQ3mC,EAAKy4J,YAAc+oC,GAAUr4K,EAAIwd,OAAQktB,GAAM7zD,EAAKy4J,cAGvFtvI,EAAIo2K,UAAYp9K,GAAO++K,cAAgBlhM,EAAKy2F,YAAcz2F,EAAKy2F,WAAW3H,WAAaw6C,KAAKC,YAC/FpgH,EAAIo2K,SAAWv/L,EAAKy2F,WAAWtiF,OARxBgV,CAYX,CA8CA,SAASggL,GAAUnpM,GACjB,IAAI80B,EAAS16B,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAC/EgvM,aAAa,GAGXC,EAAeP,GAAY9oM,GAC3Bu/L,EAAW8J,EAAa9J,SACxB54J,EAAS0iK,EAAa1iK,OACtB2iK,EAAeD,EAAa/+J,KAE5Bi/J,EAtDN,SAA2BvpM,GACzB,IAAIupM,EAAkB3oC,GAAQ5gK,EAAKi4D,YAAYj1D,QAAO,SAAUw6L,EAAK53G,GAKnE,MAJiB,UAAb43G,EAAIngM,MAAiC,UAAbmgM,EAAIngM,OAC9BmgM,EAAI53G,EAAKvoF,MAAQuoF,EAAKzqF,OAGjBqiM,CACT,GAAG,CAAC,GACA9gE,EAAQ18H,EAAK63D,aAAa,SAC1B+sI,EAAU5kM,EAAK63D,aAAa,oBAWhC,OATI11C,GAAOk6K,WACL3/D,EACF6sE,EAAgB,mBAAqB,GAAGjmM,OAAO6e,GAAO+5K,iBAAkB,WAAW54L,OAAOshM,GAAWxH,OAErGmM,EAAgB,eAAiB,OACjCA,EAA2B,UAAI,UAI5BA,CACT,CAiCwBC,CAAiBxpM,GACnCypM,EAAavG,GAAW,sBAAuB,CAAC,EAAGljM,GACnD0pM,EAAc50K,EAAOs0K,YA3G3B,SAAsBppM,GACpB,IAAIuwE,EAAQvwE,EAAK63D,aAAa,SAC1B1uC,EAAM,GAgBV,OAdIonD,IACFpnD,EAAMonD,EAAMr0D,MAAM,KAAKlZ,QAAO,SAAUw6L,EAAKjtH,GAC3C,IAAI+4E,EAAS/4E,EAAMr0D,MAAM,KACrBi4C,EAAOm1F,EAAO,GACdnuJ,EAAQmuJ,EAAOlsJ,MAAM,GAMzB,OAJI+2D,GAAQh5D,EAAMd,OAAS,IACzBmjM,EAAIrpI,GAAQh5D,EAAM+tB,KAAK,KAAK65B,QAGvBy6I,CACT,GAAG,CAAC,IAGCr0K,CACT,CAwFyCigL,CAAYppM,GAAQ,GAC3D,OAAO/F,GAAe,CACpBslM,SAAUA,EACV7iE,MAAO18H,EAAK63D,aAAa,SACzB+sI,QAAS5kM,EAAK63D,aAAa,oBAC3BlxB,OAAQA,EACRwoD,UAAW4tG,GACX2H,KAAM,CACJnF,SAAU,KACV54J,OAAQ,KACR2D,KAAM,IAERq6J,OAAQ,KACRjlM,QAAQ,EACRukK,MAAO,CACL76B,QAASkgE,EACThgD,OAAQogD,EACRzxI,WAAYsxI,IAEbE,EACL,CAEA,IAAIE,GAAWpiI,GAAU+hF,OAEzB,SAASsgD,GAAiB5pM,GACxB,IAAI6pM,EAAqC,SAA1B1nL,GAAOg6K,eAA4BgN,GAAUnpM,EAAM,CAChEopM,aAAa,IACVD,GAAUnpM,GAEf,OAAK6pM,EAAS5lC,MAAM76B,QAAQ3tI,QAAQq/L,IAC3ByI,GAAa,qBAAsBvjM,EAAM6pM,GAEzCtG,GAAa,iCAAkCvjM,EAAM6pM,EAEhE,CAEA,IAAIC,GAAgB,IAAI91H,IAQxB,SAAS+1H,GAAO16G,GACd,IAAI7yE,EAAWpiB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,KACnF,IAAKi+L,GAAQ,OAAOt0L,QAAQC,UAC5B,IAAIgmM,EAAgB9R,GAAS5/H,gBAAgB23E,UAEzCg6D,EAAS,SAAgB17J,GAC3B,OAAOy7J,EAAczxK,IAAI,GAAGj1B,OAAO01L,GAA6B,KAAK11L,OAAOirC,GAC9E,EAEI27J,EAAY,SAAmB37J,GACjC,OAAOy7J,EAAc/8K,OAAO,GAAG3pB,OAAO01L,GAA6B,KAAK11L,OAAOirC,GACjF,EAEImtJ,EAAWv5K,GAAO++K,aAAe4I,GAAgBxQ,GAAS/pK,KAAI,SAAUjX,GAC1E,MAAO,MAAMhV,OAAOgV,EACtB,IAAGhV,OAAO9J,OAAOD,KAAKowM,KAEjBjO,EAASv4L,SAAS,OACrBu4L,EAAS3hM,KAAK,MAGhB,IAAIowM,EAAmB,CAAC,IAAI7mM,OAAOw3L,GAAuB,UAAUx3L,OAAOq1L,GAAe,OAAOr1L,OAAOo4L,EAASnsK,KAAI,SAAU0+C,GAC7H,MAAO,IAAI3qE,OAAO2qE,EAAG,UAAU3qE,OAAOq1L,GAAe,KACvD,KAAIzvK,KAAK,MAET,GAAgC,IAA5BihL,EAAiB9vM,OACnB,OAAO0J,QAAQC,UAGjB,IAAIomM,EAAa,GAEjB,IACEA,EAAaxpC,GAAQvxE,EAAK6+B,iBAAiBi8E,GAC7C,CAAE,MAAOh/L,IAAI,CAGb,KAAIi/L,EAAW/vM,OAAS,GAItB,OAAO0J,QAAQC,UAHfimM,EAAO,WACPC,EAAU,YAKZ,IAAI76C,EAAOg3C,GAAKC,MAAM,UAClBz1D,EAAYu5D,EAAWpnM,QAAO,SAAUw6L,EAAKx9L,GAC/C,IACE,IAAIs/I,EAAWsqD,GAAiB5pM,GAE5Bs/I,GACFk+C,EAAIzjM,KAAKulJ,EAEb,CAAE,MAAOn0I,IACFguL,IACY,gBAAXhuL,GAAE9N,MACJ+F,QAAQ+G,MAAMgB,GAGpB,CAEA,OAAOqyL,CACT,GAAG,IACH,OAAO,IAAIz5L,SAAQ,SAAUC,EAAS8wC,GACpC/wC,QAAQ0oE,IAAIokE,GAAWrvI,MAAK,SAAU6oM,GACpC1C,GAAQ0C,GAAmB,WACzBJ,EAAO,UACPA,EAAO,YACPC,EAAU,WACc,oBAAb1tL,GAAyBA,IACpC6yI,IACArrJ,GACF,GACF,IAAG8uG,OAAM,SAAU3nG,GACjBkkJ,IACAv6G,EAAO3pC,EACT,GACF,GACF,CAEA,SAASm/L,GAAOtqM,GACd,IAAIwc,EAAWpiB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,KACnFwvM,GAAiB5pM,GAAMwB,MAAK,SAAU89I,GAChCA,GACFqoD,GAAQ,CAACroD,GAAW9iI,EAExB,GACF,CA5FA88K,GAAS/pK,KAAI,SAAUgyK,GACrBuI,GAAcvxK,IAAI,MAAMj1B,OAAOi+L,GACjC,IACA/nM,OAAOD,KAAKigM,GAAgBJ,KAAiB7pK,IAAIu6K,GAAcvxK,IAAIutC,KAAKgkI,KACxEtwM,OAAOD,KAAKigM,GAAgBH,KAAe9pK,IAAIu6K,GAAcvxK,IAAIutC,KAAKgkI,KACtEA,GAAgB9uD,GAAmB8uD,IAyGnC,IAAIp8H,GAAS,SAAgB68H,GAC3B,IAAIvkL,EAAS5rB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EowM,EAAoBxkL,EAAOmpE,UAC3BA,OAAkC,IAAtBq7G,EAA+BzN,GAAuByN,EAClEC,EAAiBzkL,EAAOtmB,OACxBA,OAA4B,IAAnB+qM,GAAoCA,EAC7CC,EAAe1kL,EAAO0+K,KACtBA,OAAwB,IAAjBgG,EAA0B,KAAOA,EACxCC,EAAiB3kL,EAAO2+K,OACxBA,OAA4B,IAAnBgG,EAA4B,KAAOA,EAC5CC,EAAgB5kL,EAAO02G,MACvBA,OAA0B,IAAlBkuE,EAA2B,KAAOA,EAC1CC,EAAkB7kL,EAAO4+K,QACzBA,OAA8B,IAApBiG,EAA6B,KAAOA,EAC9CC,EAAkB9kL,EAAOojH,QACzBA,OAA8B,IAApB0hE,EAA6B,GAAKA,EAC5CC,EAAqB/kL,EAAOiyC,WAC5BA,OAAoC,IAAvB8yI,EAAgC,CAAC,EAAIA,EAClDC,EAAiBhlL,EAAOsjI,OACxBA,OAA4B,IAAnB0hD,EAA4B,CAAC,EAAIA,EAC9C,GAAKT,EAAL,CACA,IAAI5jK,EAAS4jK,EAAe5jK,OACxB44J,EAAWgL,EAAehL,SAC1BrvH,EAAOq6H,EAAer6H,KAC1B,OAAOk0H,GAAYnqM,GAAe,CAChCsO,KAAM,QACLgiM,IAAiB,WAelB,OAdAjH,GAAU,2BAA4B,CACpCiH,eAAgBA,EAChBvkL,OAAQA,IAGN7D,GAAOk6K,WACL3/D,EACFzkE,EAAW,mBAAqB,GAAG30D,OAAO6e,GAAO+5K,iBAAkB,WAAW54L,OAAOshM,GAAWxH,OAEhGnlI,EAAW,eAAiB,OAC5BA,EAAsB,UAAI,UAIvBssI,GAAsB,CAC3Br3C,MAAO,CACLu3C,KAAMqB,GAAY51H,GAClBw0H,KAAMA,EAAOoB,GAAYpB,EAAKx0H,MAAQ,CACpC5T,OAAO,EACPosC,MAAO,KACPC,OAAQ,KACRz4B,KAAM,CAAC,IAGXvpC,OAAQA,EACR44J,SAAUA,EACVpwG,UAAWl1F,GAAeA,GAAe,CAAC,EAAG8iM,IAAuB5tG,GACpEzvF,OAAQA,EACRg9H,MAAOA,EACPioE,OAAQA,EACRC,QAASA,EACT3gC,MAAO,CACLhsG,WAAYA,EACZqxF,OAAQA,EACRlgB,QAASA,IAGf,GA5C2B,CA6C7B,EACI6hE,GAAkB,CACpBxM,OAAQ,WACN,MAAO,CACLvuH,MArFgBtzE,EAqFG8wE,GApFhB,SAAUw9H,GACf,IAAIllL,EAAS5rB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EmwM,GAAkBW,GAAuB,CAAC,GAAGh7H,KAAOg7H,EAAsB1H,GAAmB0H,GAAuB,CAAC,GACrHxG,EAAO1+K,EAAO0+K,KAMlB,OAJIA,IACFA,GAAQA,GAAQ,CAAC,GAAGx0H,KAAOw0H,EAAOlB,GAAmBkB,GAAQ,CAAC,IAGzD9nM,EAAK2tM,EAAgBtwM,GAAeA,GAAe,CAAC,EAAG+rB,GAAS,CAAC,EAAG,CACzE0+K,KAAMA,IAEV,IAbF,IAAsB9nM,CAuFpB,EACA+hM,MAAO,WACL,MAAO,CACLwM,0BAA2B,SAAmC/H,GAG5D,OAFAA,EAAY+E,aAAe4B,GAC3B3G,EAAYiF,aAAeiC,GACpBlH,CACT,EAEJ,EACAgI,SAAU,SAAkBC,GAC1BA,EAAa1H,MAAQ,SAAU39K,GAC7B,IAAIslL,EAAetlL,EAAOhmB,KACtBA,OAAwB,IAAjBsrM,EAA0BpT,GAAWoT,EAC5CC,EAAmBvlL,EAAOxJ,SAE9B,OAAOutL,GAAO/pM,OADsB,IAArBurM,EAA8B,WAAa,EAAIA,EAEhE,EAEAF,EAAaG,+BAAiC,SAAUxrM,EAAM6pM,GAC5D,IAAItK,EAAWsK,EAAStK,SACpB7iE,EAAQmtE,EAASntE,MACjBkoE,EAAUiF,EAASjF,QACnBj+J,EAASkjK,EAASljK,OAClBwoD,EAAY06G,EAAS16G,UACrBzvF,EAASmqM,EAASnqM,OAClBglM,EAAOmF,EAASnF,KAChBC,EAASkF,EAASlF,OAClB1gC,EAAQ4lC,EAAS5lC,MACrB,OAAO,IAAIlgK,SAAQ,SAAUC,EAAS8wC,GACpC/wC,QAAQ0oE,IAAI,CAACw5H,GAAS1G,EAAU54J,GAAS+9J,EAAKnF,SAAW0G,GAASvB,EAAKnF,SAAUmF,EAAK/9J,QAAU5iC,QAAQC,QAAQ,CAC9Gs4D,OAAO,EACPosC,MAAO,IACPC,OAAQ,IACRz4B,KAAM,CAAC,MACJ1uE,MAAK,SAAUuD,GAClB,IAAIoB,EAAQrK,GAAeiJ,EAAM,GAC7B0/L,EAAOt+L,EAAM,GACbu+L,EAAOv+L,EAAM,GAEjBnC,EAAQ,CAAChE,EAAMukM,GAAsB,CACnCr3C,MAAO,CACLu3C,KAAMA,EACNC,KAAMA,GAER/9J,OAAQA,EACR44J,SAAUA,EACVpwG,UAAWA,EACXzvF,OAAQA,EACRilM,OAAQA,EACRjoE,MAAOA,EACPkoE,QAASA,EACT3gC,MAAOA,EACP6gC,WAAW,KAEf,IAAGhyF,MAAMh+D,EACX,GACF,EAEAu2J,EAAaI,qBAAuB,SAAUtnD,GAC5C,IAWIunD,EAXAzmM,EAAWk/I,EAAMl/I,SACjBgzD,EAAaksF,EAAMlsF,WACnBwsI,EAAOtgD,EAAMsgD,KACbt1G,EAAYg1D,EAAMh1D,UAElBy2G,EAAcrI,GADLp5C,EAAMmF,QAmBnB,OAhBIs8C,EAAYvrM,OAAS,IACvB49D,EAAkB,MAAI2tI,GAKpBlI,GAAsBvuG,KACxBu8G,EAAYnI,GAAa,oCAAqC,CAC5DkB,KAAMA,EACNt1G,UAAWA,EACXw8G,eAAgBlH,EAAK/7F,MACrBkjG,UAAWnH,EAAK/7F,SAIpBzjG,EAASlL,KAAK2xM,GAAajH,EAAKv0H,MACzB,CACLjrE,SAAUA,EACVgzD,WAAYA,EAEhB,CACF,GAGE4zI,GAAS,CACXpN,OAAQ,WACN,MAAO,CACLqN,MAAO,SAAeC,GACpB,IAAI/lL,EAAS5rB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E0wM,EAAkB9kL,EAAOojH,QACzBA,OAA8B,IAApB0hE,EAA6B,GAAKA,EAChD,OAAO1G,GAAY,CACjB77L,KAAM,UACL,WACD+6L,GAAU,2BAA4B,CACpCyI,UAAWA,EACX/lL,OAAQA,IAEV,IAAI/gB,EAAW,GAMf,OALA8mM,GAAU,SAAU33J,GAClBh4C,MAAMC,QAAQ+3C,GAAQA,EAAK7kB,KAAI,SAAUxZ,GACvC9Q,EAAWA,EAAS3B,OAAOyS,EAAEuuL,SAC/B,IAAKr/L,EAAWA,EAAS3B,OAAO8wC,EAAKkwJ,SACvC,IACO,CAAC,CACNzgM,IAAK,OACLo0D,WAAY,CACV4vH,MAAO,CAAC,GAAGvkL,OAAO6e,GAAO85K,UAAW,YAAY34L,OAAO03I,GAAmB5R,IAAUlgH,KAAK,MAE3FjkB,SAAUA,GAEd,GACF,EAEJ,GAGE+mM,GAAgB,CAClBvN,OAAQ,WACN,MAAO,CACLv6B,QAAS,SAAiBwjB,GACxB,IAAI1hK,EAAS5rB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EwwM,EAAgB5kL,EAAO02G,MACvBA,OAA0B,IAAlBkuE,EAA2B,KAAOA,EAC1CE,EAAkB9kL,EAAOojH,QACzBA,OAA8B,IAApB0hE,EAA6B,GAAKA,EAC5CC,EAAqB/kL,EAAOiyC,WAC5BA,OAAoC,IAAvB8yI,EAAgC,CAAC,EAAIA,EAClDC,EAAiBhlL,EAAOsjI,OACxBA,OAA4B,IAAnB0hD,EAA4B,CAAC,EAAIA,EAC9C,OAAO5G,GAAY,CACjB77L,KAAM,UACNm/K,QAASA,IACR,WAKD,OAJA4b,GAAU,2BAA4B,CACpC5b,QAASA,EACT1hK,OAAQA,IA70BpB,SAAmCA,GACjC,IAAI0hK,EAAU1hK,EAAO0hK,QACjBhrD,EAAQ12G,EAAO02G,MACfunC,EAAQj+I,EAAOi+I,MAEfhsG,EAAah+D,GAAeA,GAAeA,GAAe,CAAC,EAAGgqK,EAAMhsG,YAAaykE,EAAQ,CAC3F,MAASA,GACP,CAAC,GAAI,CAAC,EAAG,CACX,MAASunC,EAAM76B,QAAQlgH,KAAK,OAG1B08K,EAAcrI,GAAWt5B,EAAM3a,QAE/Bs8C,EAAYvrM,OAAS,IACvB49D,EAAkB,MAAI2tI,GAGxB,IAAIz8K,EAAM,GAiBV,OAhBAA,EAAIpvB,KAAK,CACP8J,IAAK,OACLo0D,WAAYA,EACZhzD,SAAU,CAACyiL,KAGThrD,GACFvzG,EAAIpvB,KAAK,CACP8J,IAAK,OACLo0D,WAAY,CACV4vH,MAAO,WAET5iL,SAAU,CAACy3H,KAIRvzG,CACT,CA4yBiB8iL,CAA0B,CAC/BvkB,QAASA,EAAQvqL,WACjBu/H,MAAOA,EACPunC,MAAO,CACLhsG,WAAYA,EACZqxF,OAAQA,EACRlgB,QAAS,CAAC,GAAG9lI,OAAO6e,GAAO85K,UAAW,oBAAoB34L,OAAO03I,GAAmB5R,MAG1F,GACF,EAEJ,GAGE8iE,GAAa,CACfzN,OAAQ,WACN,MAAO,CACL3mI,KAAM,SAAc4vH,GAClB,IAAI1hK,EAAS5rB,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EowM,EAAoBxkL,EAAOmpE,UAC3BA,OAAkC,IAAtBq7G,EAA+BzN,GAAuByN,EAClEI,EAAgB5kL,EAAO02G,MACvBA,OAA0B,IAAlBkuE,EAA2B,KAAOA,EAC1CE,EAAkB9kL,EAAOojH,QACzBA,OAA8B,IAApB0hE,EAA6B,GAAKA,EAC5CC,EAAqB/kL,EAAOiyC,WAC5BA,OAAoC,IAAvB8yI,EAAgC,CAAC,EAAIA,EAClDC,EAAiBhlL,EAAOsjI,OACxBA,OAA4B,IAAnB0hD,EAA4B,CAAC,EAAIA,EAC9C,OAAO5G,GAAY,CACjB77L,KAAM,OACNm/K,QAASA,IACR,WAKD,OAJA4b,GAAU,2BAA4B,CACpC5b,QAASA,EACT1hK,OAAQA,IAEHq/K,GAAuB,CAC5B3d,QAASA,EACTv4F,UAAWl1F,GAAeA,GAAe,CAAC,EAAG8iM,IAAuB5tG,GACpEutC,MAAOA,EACPunC,MAAO,CACLhsG,WAAYA,EACZqxF,OAAQA,EACRlgB,QAAS,CAAC,GAAG9lI,OAAO6e,GAAO85K,UAAW,iBAAiB34L,OAAO03I,GAAmB5R,MAGvF,GACF,EAEJ,EACAgiE,SAAU,SAAkBC,GAC1BA,EAAac,mBAAqB,SAAUnsM,EAAM6pM,GAChD,IAAIntE,EAAQmtE,EAASntE,MACjBvtC,EAAY06G,EAAS16G,UACrB80E,EAAQ4lC,EAAS5lC,MACjBv7D,EAAQ,KACRC,EAAS,KAEb,GAAI2vF,GAAO,CACT,IAAI8T,EAAmBz2K,SAASwjI,iBAAiBn5J,GAAM0gL,SAAU,IAC7D2rB,EAAqBrsM,EAAKwyI,wBAC9B9pC,EAAQ2jG,EAAmB3jG,MAAQ0jG,EACnCzjG,EAAS0jG,EAAmB1jG,OAASyjG,CACvC,CAMA,OAJIjqL,GAAOk6K,WAAa3/D,IACtBunC,EAAMhsG,WAAW,eAAiB,QAG7Bl0D,QAAQC,QAAQ,CAAChE,EAAMqlM,GAAuB,CACnD3d,QAAS1nL,EAAKw2F,UACdkS,MAAOA,EACPC,OAAQA,EACRxZ,UAAWA,EACXutC,MAAOA,EACPunC,MAAOA,EACP6gC,WAAW,KAEf,CACF,GAGEwH,GAAwB,IAAI3zK,OAAO,IAAM,MACzC4zK,GAA0B,CAAC,QAAS,SAYxC,SAASC,GAAmBxsM,EAAM0W,GAChC,IAAI+1L,EAAmB,GAAGnpM,OAAOu1L,IAAgCv1L,OAAOoT,EAASmE,QAAQ,IAAK,MAC9F,OAAO,IAAI9W,SAAQ,SAAUC,EAAS8wC,GACpC,GAA4C,OAAxC90C,EAAK63D,aAAa40I,GAEpB,OAAOzoM,IAGT,IACI0oM,EADW9rC,GAAQ5gK,EAAKiF,UACiBtL,QAAO,SAAUyc,GAC5D,OAAOA,EAAEyhD,aAAa+gI,MAA4BliL,CACpD,IAAG,GACC4yI,EAAS2uC,GAAO9+B,iBAAiBn5J,EAAM0W,GACvC8yK,EAAalgC,EAAOqjD,iBAAiB,eAAe7xL,MAAMigL,IAC1DriG,EAAa4wD,EAAOqjD,iBAAiB,eACrCjlB,EAAUp+B,EAAOqjD,iBAAiB,WAEtC,GAAID,IAAkCljB,EAKpC,OADAxpL,EAAK02F,YAAYg2G,GACV1oM,IACF,GAAIwlL,GAA0B,SAAZ9B,GAAkC,KAAZA,EAAgB,CAC7D,IAAIklB,EAAWtjD,EAAOqjD,iBAAiB,WAEnCpL,GAAU,CAAC,SAAS9lM,QAAQ+tL,EAAW,IAAM6P,GAAeD,GAC5DzyJ,GAAU,CAAC,QAAS,UAAW,QAAS,OAAQ,UAAW,SAAU,OAAOlrC,QAAQ+tL,EAAW,IAAMiQ,GAAgB8H,GAAQ/X,EAAW,GAAG91K,eAAiBsnL,GAAsBuG,GAAQ7oG,GAE1Lm0G,EAxCV,SAA6BnlB,GAC3B,IAAIolB,EAAUplB,EAAQ7sK,QAAQyxL,GAAuB,IACjD1uI,EA5qDN,SAAqBn+D,EAAQ+pB,GAC3B,IAEIovD,EAFAnmB,EAAOhzD,EAAOpF,OACdi7E,EAAQ71E,EAAO4yD,WAAW7oC,GAG9B,OAAI8rD,GAAS,OAAUA,GAAS,OAAU7iB,EAAOjpC,EAAQ,IACvDovD,EAASn5E,EAAO4yD,WAAW7oC,EAAQ,KAErB,OAAUovD,GAAU,MACN,MAAlBtD,EAAQ,OAAkBsD,EAAS,MAAS,MAIjDtD,CACT,CA8pDkBy3H,CAAYD,EAAS,GACjCE,EAAepvI,GAAa2uI,GAAwB,IAAM3uI,GAAa2uI,GAAwB,GAC/FU,EAA+B,IAAnBH,EAAQzyM,QAAeyyM,EAAQ,KAAOA,EAAQ,GAC9D,MAAO,CACL3xM,MAAmB04D,GAAZo5I,EAAkBH,EAAQ,GAAYA,GAC7CI,YAAaF,GAAgBC,EAEjC,CA+BiCE,CAAoBP,GAC3CQ,EAAWP,EAAqB1xM,MAChC+xM,EAAcL,EAAqBK,YAEnCG,EAAO7jB,EAAW,GAAG95I,WAAW,eAChC6vJ,EAAWiC,GAAU76J,EAAQymK,GAC7BE,EAAiB/N,EAErB,GAAI8N,EAAM,CACR,IAAIE,EAphDZ,SAAsB3N,GACpB,IAAI4N,EAAa9M,GAAcd,GAC3B6N,EAAajM,GAAU,MAAO5B,GAClC,OAAO4N,IAAeC,EAAa,CACjC9mK,OAAQ,MACR44J,SAAUkO,GACR,OAAS,CACX9mK,OAAQ,KACR44J,SAAU,KAEd,CA0gDwBmO,CAAaN,GAEzBG,EAAUhO,UAAYgO,EAAU5mK,SAClC44J,EAAWgO,EAAUhO,SACrB54J,EAAS4mK,EAAU5mK,OAEvB,CAIA,IAAI44J,GAAa2N,GAAiBR,GAAiCA,EAA8B70I,aAAaihI,MAAiBnyJ,GAAU+lK,EAA8B70I,aAAakhI,MAAeuU,EAsCjMtpM,QAtCkN,CAClNhE,EAAK6lF,aAAa4mH,EAAkBa,GAEhCZ,GAEF1sM,EAAK02F,YAAYg2G,GAGnB,IAAIjyG,EApiBH,CACL8kG,SAAU,KACV7iE,MAAO,KACPkoE,QAAS,KACTj+J,OAAQ,KACRwoD,UAAW4tG,GACXr9L,QAAQ,EACRglM,KAAM,CACJnF,SAAU,KACV54J,OAAQ,KACR2D,KAAM,IAERq6J,OAAQ,KACR1gC,MAAO,CACL76B,QAAS,GACTkgB,OAAQ,CAAC,EACTrxF,WAAY,CAAC,IAqhBPgsG,EAAQxpE,EAAKwpE,MACjBA,EAAMhsG,WAAW2gI,IAA0BliL,EAC3CuvL,GAAS1G,EAAU54J,GAAQnlC,MAAK,SAAUijM,GACxC,IAAIqC,EAAYvC,GAAsBtqM,GAAeA,GAAe,CAAC,EAAGwgG,GAAO,CAAC,EAAG,CACjFyyD,MAAO,CACLu3C,KAAMA,EACNC,KAAM9C,MAERj7J,OAAQA,EACR44J,SAAU+N,EACVrpC,MAAOA,EACP6gC,WAAW,KAGTjlM,EAAUq4L,GAAS7xE,gBAAgB,6BAA8B,OAEpD,aAAb3vG,EACF1W,EAAKkvE,aAAarvE,EAASG,EAAKy2F,YAEhCz2F,EAAKmvE,YAAYtvE,GAGnBA,EAAQonM,UAAYH,EAAUv3K,KAAI,SAAUxZ,GAC1C,OAAOipL,GAAOjpL,EAChB,IAAGmT,KAAK,MACRlpB,EAAK25D,gBAAgB8yI,GACrBzoM,GACF,IAAG8uG,MAAMh+D,EACX,CAGF,MACE9wC,GAEJ,GACF,CAEA,SAAS6W,GAAQ7a,GACf,OAAO+D,QAAQ0oE,IAAI,CAAC+/H,GAAmBxsM,EAAM,YAAawsM,GAAmBxsM,EAAM,YACrF,CAEA,SAAS2tM,GAAY3tM,GACnB,OAAOA,EAAK82D,aAAezwB,SAASo/C,QAAUyzG,GAAoCz9L,QAAQuE,EAAKm3D,QAAQ9uD,iBAAmBrI,EAAK63D,aAAa+gI,OAA6B54L,EAAK82D,YAA0C,QAA5B92D,EAAK82D,WAAWK,QAC9M,CAEA,SAASmlI,GAAqBjtG,GAC5B,GAAKgpG,GACL,OAAO,IAAIt0L,SAAQ,SAAUC,EAAS8wC,GACpC,IAAIrqB,EAAam2I,GAAQvxE,EAAK6+B,iBAAiB,MAAMv0H,OAAOg0M,IAAap+K,IAAI1U,IACzEg5B,EAAMwyJ,GAAKC,MAAM,wBACrByB,KACAhkM,QAAQ0oE,IAAIhiD,GAAYjpB,MAAK,WAC3BqyC,IACAm0J,KACAhkM,GACF,IAAG8uG,OAAM,WACPj/D,IACAm0J,KACAlzJ,GACF,GACF,GACF,CAEA,IAqBI84J,IAAa,EAmCbC,GAAuB,SAA8BC,GASvD,OAAOA,EAAgBp6L,cAAcwI,MAAM,KAAKlZ,QAAO,SAAUw6L,EAAKtgM,GACpE,IAAI+e,EAAQ/e,EAAEwW,cAAcwI,MAAM,KAC9Bo5D,EAAQr5D,EAAM,GACdquB,EAAOruB,EAAM7e,MAAM,GAAG8rB,KAAK,KAE/B,GAAIosD,GAAkB,MAAThrC,EAEX,OADAkzJ,EAAIP,OAAQ,EACLO,EAGT,GAAIloH,GAAkB,MAAThrC,EAEX,OADAkzJ,EAAIN,OAAQ,EACLM,EAKT,GAFAlzJ,EAAOjC,WAAWiC,GAEdoJ,MAAMpJ,GACR,OAAOkzJ,EAGT,OAAQloH,GACN,IAAK,OACHkoH,EAAI/qI,KAAO+qI,EAAI/qI,KAAOnoB,EACtB,MAEF,IAAK,SACHkzJ,EAAI/qI,KAAO+qI,EAAI/qI,KAAOnoB,EACtB,MAEF,IAAK,OACHkzJ,EAAI5/L,EAAI4/L,EAAI5/L,EAAI0sC,EAChB,MAEF,IAAK,QACHkzJ,EAAI5/L,EAAI4/L,EAAI5/L,EAAI0sC,EAChB,MAEF,IAAK,KACHkzJ,EAAI5+H,EAAI4+H,EAAI5+H,EAAIt0B,EAChB,MAEF,IAAK,OACHkzJ,EAAI5+H,EAAI4+H,EAAI5+H,EAAIt0B,EAChB,MAEF,IAAK,SACHkzJ,EAAIR,OAASQ,EAAIR,OAAS1yJ,EAI9B,OAAOkzJ,CACT,GA5DgB,CACd/qI,KAAM,GACN70D,EAAG,EACHghE,EAAG,EACHq+H,OAAO,EACPC,OAAO,EACPF,OAAQ,GAuDZ,EACI+Q,GAAkB,CACpBtP,OAAQ,WACN,MAAO,CACLpiL,MAAO,CACL8yE,UAAW,SAAmB2+G,GAC5B,OAAOD,GAAqBC,EAC9B,GAGN,EACAnP,MAAO,WACL,MAAO,CACLqP,oBAAqB,SAA6B5K,EAAapjM,GAC7D,IAAI8tM,EAAkB9tM,EAAK63D,aAAa,qBAMxC,OAJIi2I,IACF1K,EAAYj0G,UAAY0+G,GAAqBC,IAGxC1K,CACT,EAEJ,EACAgI,SAAU,SAAkBhsL,GAC1BA,EAAU6uL,kCAAoC,SAAUlpM,GACtD,IAAI0/L,EAAO1/L,EAAK0/L,KACZt1G,EAAYpqF,EAAKoqF,UACjBw8G,EAAiB5mM,EAAK4mM,eACtBC,EAAY7mM,EAAK6mM,UACjB92L,EAAQ,CACVq6E,UAAW,aAAa7rF,OAAOqoM,EAAiB,EAAG,UAEjDuC,EAAiB,aAAa5qM,OAAqB,GAAd6rF,EAAUvxF,EAAQ,MAAM0F,OAAqB,GAAd6rF,EAAUvwB,EAAQ,MACtFuvI,EAAa,SAAS7qM,OAAO6rF,EAAU18B,KAAO,IAAM08B,EAAU8tG,OAAS,EAAI,GAAI,MAAM35L,OAAO6rF,EAAU18B,KAAO,IAAM08B,EAAU+tG,OAAS,EAAI,GAAI,MAC9IkR,EAAc,UAAU9qM,OAAO6rF,EAAU6tG,OAAQ,SAOjDvyK,EAAa,CACf3V,MAAOA,EACPC,MARU,CACVo6E,UAAW,GAAG7rF,OAAO4qM,EAAgB,KAAK5qM,OAAO6qM,EAAY,KAAK7qM,OAAO8qM,IAQzE9xL,KANS,CACT6yE,UAAW,aAAa7rF,OAAOsoM,EAAY,GAAK,EAAG,YAOrD,MAAO,CACL/nM,IAAK,IACLo0D,WAAYh+D,GAAe,CAAC,EAAGwwB,EAAW3V,OAC1C7P,SAAU,CAAC,CACTpB,IAAK,IACLo0D,WAAYh+D,GAAe,CAAC,EAAGwwB,EAAW1V,OAC1C9P,SAAU,CAAC,CACTpB,IAAK4gM,EAAKv0H,KAAKrsE,IACfoB,SAAUw/L,EAAKv0H,KAAKjrE,SACpBgzD,WAAYh+D,GAAeA,GAAe,CAAC,EAAGwqM,EAAKv0H,KAAKjY,YAAaxtC,EAAWnO,UAIxF,CACF,GAGE+xL,GAAY,CACdzwM,EAAG,EACHghE,EAAG,EACH8pC,MAAO,OACPC,OAAQ,QAGV,SAAS2lG,GAAUxH,GACjB,IAAI93D,IAAQ50I,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,KAAmBA,UAAU,GAM3E,OAJI0sM,EAAU7uI,aAAe6uI,EAAU7uI,WAAWzwB,MAAQwnG,KACxD83D,EAAU7uI,WAAWzwB,KAAO,SAGvBs/J,CACT,CAUA,IAAIyH,GAAQ,CACV5P,MAAO,WACL,MAAO,CACLqP,oBAAqB,SAA6B5K,EAAapjM,GAC7D,IAAIwuM,EAAWxuM,EAAK63D,aAAa,gBAC7B6sI,EAAQ8J,EAAkCvM,GAAiBuM,EAAStyL,MAAM,KAAKqT,KAAI,SAAUp1B,GAC/F,OAAOA,EAAE4oD,MACX,KAFuB6+I,KAUvB,OANK8C,EAAK/9J,SACR+9J,EAAK/9J,OAASg7J,MAGhByB,EAAYsB,KAAOA,EACnBtB,EAAYuB,OAAS3kM,EAAK63D,aAAa,mBAChCurI,CACT,EAEJ,EACAgI,SAAU,SAAkBhsL,GAC1BA,EAAUqvL,qBAAuB,SAAU1pM,GACzC,IA7BWqiM,EA6BPniM,EAAWF,EAAKE,SAChBgzD,EAAalzD,EAAKkzD,WAClBwsI,EAAO1/L,EAAK0/L,KACZC,EAAO3/L,EAAK2/L,KACZgK,EAAiB3pM,EAAK4/L,OACtBx1G,EAAYpqF,EAAKoqF,UACjBw/G,EAAYlK,EAAK/7F,MACjBkmG,EAAWnK,EAAKv0H,KAChB2+H,EAAYnK,EAAKh8F,MACjBomG,EAAWpK,EAAKx0H,KAChB6+H,EApxEV,SAAyBhqM,GACvB,IAAIoqF,EAAYpqF,EAAKoqF,UACjBw8G,EAAiB5mM,EAAK4mM,eACtBC,EAAY7mM,EAAK6mM,UACjB92L,EAAQ,CACVq6E,UAAW,aAAa7rF,OAAOqoM,EAAiB,EAAG,UAEjDuC,EAAiB,aAAa5qM,OAAqB,GAAd6rF,EAAUvxF,EAAQ,MAAM0F,OAAqB,GAAd6rF,EAAUvwB,EAAQ,MACtFuvI,EAAa,SAAS7qM,OAAO6rF,EAAU18B,KAAO,IAAM08B,EAAU8tG,OAAS,EAAI,GAAI,MAAM35L,OAAO6rF,EAAU18B,KAAO,IAAM08B,EAAU+tG,OAAS,EAAI,GAAI,MAC9IkR,EAAc,UAAU9qM,OAAO6rF,EAAU6tG,OAAQ,SAOrD,MAAO,CACLloL,MAAOA,EACPC,MARU,CACVo6E,UAAW,GAAG7rF,OAAO4qM,EAAgB,KAAK5qM,OAAO6qM,EAAY,KAAK7qM,OAAO8qM,IAQzE9xL,KANS,CACT6yE,UAAW,aAAa7rF,OAAOsoM,EAAY,GAAK,EAAG,WAOvD,CA+vEkBoD,CAAgB,CAC1B7/G,UAAWA,EACXw8G,eAAgBkD,EAChBjD,UAAW+C,IAETM,EAAW,CACbprM,IAAK,OACLo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAGo0M,IAAY,CAAC,EAAG,CAC5D7mK,KAAM,WAGN0nK,EAA8BN,EAAS3pM,SAAW,CACpDA,SAAU2pM,EAAS3pM,SAASsqB,IAAI++K,KAC9B,CAAC,EACDa,EAAiB,CACnBtrM,IAAK,IACLo0D,WAAYh+D,GAAe,CAAC,EAAG80M,EAAMh6L,OACrC9P,SAAU,CAACqpM,GAAUr0M,GAAe,CAClC4J,IAAK+qM,EAAS/qM,IACdo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAG20M,EAAS32I,YAAa82I,EAAMzyL,OACzE4yL,MAEDE,EAAiB,CACnBvrM,IAAK,IACLo0D,WAAYh+D,GAAe,CAAC,EAAG80M,EAAMj6L,OACrC7P,SAAU,CAACkqM,IAETxK,EAAS,QAAQrhM,OAAOorM,GAAkBtR,MAC1CiS,EAAS,QAAQ/rM,OAAOorM,GAAkBtR,MAC1CkS,EAAU,CACZzrM,IAAK,OACLo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAGo0M,IAAY,CAAC,EAAG,CAC5D3lM,GAAIi8L,EACJ4K,UAAW,iBACXC,iBAAkB,mBAEpBvqM,SAAU,CAACgqM,EAAUG,IAEnBK,EAAO,CACT5rM,IAAK,OACLoB,SAAU,CAAC,CACTpB,IAAK,WACLo0D,WAAY,CACVvvD,GAAI2mM,GAENpqM,UApFOmiM,EAoFW0H,EAnFH,MAAnB1H,EAAWvjM,IACNujM,EAAWniM,SAEX,CAACmiM,KAiFDkI,IAUL,OARArqM,EAASlL,KAAK01M,EAAM,CAClB5rM,IAAK,OACLo0D,WAAYh+D,GAAe,CACzButC,KAAM,eACN,YAAa,QAAQlkC,OAAO+rM,EAAQ,KACpC3K,KAAM,QAAQphM,OAAOqhM,EAAQ,MAC5B0J,MAEE,CACLppM,SAAUA,EACVgzD,WAAYA,EAEhB,CACF,GAGEy3I,GAAuB,CACzBtE,SAAU,SAAkBhsL,GAC1B,IAAIuwL,GAAe,EAEf1X,GAAO2X,aACTD,EAAe1X,GAAO2X,WAAW,oCAAoCliJ,SAGvEtuC,EAAUywL,oBAAsB,WAC9B,IAAIC,EAAY,GACZC,EAAO,CACTvoK,KAAM,gBAEJwoK,EAAiB,CACnBC,cAAe,MACfC,YAAa,aACbC,IAAK,MAGPL,EAAU/1M,KAAK,CACb8J,IAAK,OACLo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAG81M,GAAO,CAAC,EAAG,CACvD15L,EAAG,u4CAIP,IAAI+5L,EAAkBn2M,GAAeA,GAAe,CAAC,EAAG+1M,GAAiB,CAAC,EAAG,CAC3Ej2I,cAAe,YAGbs2I,EAAM,CACRxsM,IAAK,SACLo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAG81M,GAAO,CAAC,EAAG,CACvDO,GAAI,MACJC,GAAI,MACJ9tM,EAAG,OAELwC,SAAU,IAkDZ,OA/CK0qM,GACHU,EAAIprM,SAASlL,KAAK,CAChB8J,IAAK,UACLo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAG+1M,GAAiB,CAAC,EAAG,CACjEj2I,cAAe,IACfhqC,OAAQ,wBAET,CACDlsB,IAAK,UACLo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAGm2M,GAAkB,CAAC,EAAG,CAClErgL,OAAQ,mBAKd+/K,EAAU/1M,KAAKs2M,GACfP,EAAU/1M,KAAK,CACb8J,IAAK,OACLo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAG81M,GAAO,CAAC,EAAG,CACvD//H,QAAS,IACT35D,EAAG,ySAELpR,SAAU0qM,EAAe,GAAK,CAAC,CAC7B9rM,IAAK,UACLo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAGm2M,GAAkB,CAAC,EAAG,CAClErgL,OAAQ,qBAKT4/K,GAEHG,EAAU/1M,KAAK,CACb8J,IAAK,OACLo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAG81M,GAAO,CAAC,EAAG,CACvD//H,QAAS,IACT35D,EAAG,gJAELpR,SAAU,CAAC,CACTpB,IAAK,UACLo0D,WAAYh+D,GAAeA,GAAe,CAAC,EAAGm2M,GAAkB,CAAC,EAAG,CAClErgL,OAAQ,qBAMT,CACLlsB,IAAK,IACLo0D,WAAY,CACV,MAAS,WAEXhzD,SAAU6qM,EAEd,CACF,IA/zDF,SAAyBU,EAAazrM,GACpC,IAAIjK,EAAMiK,EAAK0rM,UACf1N,GAAWyN,EACXxN,GAAS,CAAC,EACVxpM,OAAOD,KAAK6lB,IAAW7kB,SAAQ,SAAUge,IACC,IAApC0qL,GAAoBxnM,QAAQ8c,WACvB6G,GAAU7G,EAErB,IAEAwqL,GAASxoM,SAAQ,SAAUm2M,GACzB,IAAIjS,EAASiS,EAAOjS,OAASiS,EAAOjS,SAAW,CAAC,EAiBhD,GAhBAjlM,OAAOD,KAAKklM,GAAQlkM,SAAQ,SAAUivH,GACV,oBAAfi1E,EAAOj1E,KAChB1uH,EAAI0uH,GAAMi1E,EAAOj1E,IAGS,WAAxB3uH,GAAQ4jM,EAAOj1E,KACjBhwH,OAAOD,KAAKklM,EAAOj1E,IAAKjvH,SAAQ,SAAUgvH,GACnCzuH,EAAI0uH,KACP1uH,EAAI0uH,GAAM,CAAC,GAGb1uH,EAAI0uH,GAAID,GAAMk1E,EAAOj1E,GAAID,EAC3B,GAEJ,IAEImnF,EAAO/R,MAAO,CAChB,IAAIA,EAAQ+R,EAAO/R,QACnBnlM,OAAOD,KAAKolM,GAAOpkM,SAAQ,SAAU4oM,GAC9BH,GAAOG,KACVH,GAAOG,GAAQ,IAGjBH,GAAOG,GAAMppM,KAAK4kM,EAAMwE,GAC1B,GACF,CAEIuN,EAAOtF,UACTsF,EAAOtF,SAAShsL,GAEpB,GAGF,CAoyDAuxL,CAFc,CAACnS,GAAWyM,GAAiBY,GAAQG,GAAeE,GA7Z7C,CACnBvN,MAAO,WACL,MAAO,CACLwM,0BAA2B,SAAmC/H,GAE5D,OADAA,EAAYmF,uBAAyBjM,GAC9B8G,CACT,EAEJ,EACAgI,SAAU,SAAkBC,GAC1BA,EAAauF,mBAAqB,SAAU5qL,GAC1C,IAAIslL,EAAetlL,EAAOhmB,KACtBA,OAAwB,IAAjBsrM,EAA0BpT,GAAWoT,EAE5CnpL,GAAOm6K,sBACTA,GAAqBt8L,EAEzB,CACF,GAIuB,CACvBy+L,OAAQ,WACN,MAAO,CACLC,IAAK,CACHmS,QAAS,WACP9I,KACA6F,IAAa,CACf,GAGN,EACAjP,MAAO,WACL,MAAO,CACLmS,UAAW,WACT3hD,GAAQ+zC,GAAW,4BAA6B,CAAC,GACnD,EACAgB,OAAQ,WAztBP+D,IACLA,GAAG74C,YA0tBC,EACAw0C,MAAO,SAAe59K,GACpB,IAAIyiL,EAAuBziL,EAAOyiL,qBAE9BmF,GACF5F,KAEA74C,GAAQ+zC,GAAW,4BAA6B,CAC9CuF,qBAAsBA,IAG5B,EAEJ,GAwWgHsF,GAAiBQ,GAAOmB,GAbzH,CACf/Q,MAAO,WACL,MAAO,CACLqP,oBAAqB,SAA6B5K,EAAapjM,GAC7D,IAAI+wM,EAAa/wM,EAAK63D,aAAa,kBAC/Bn4D,EAAwB,OAAfqxM,IAA6C,KAAfA,GAA2BA,GAEtE,OADA3N,EAAoB,OAAI1jM,EACjB0jM,CACT,EAEJ,IAKuB,CACvBqN,UAAWlmL,KAEb,IAIIymL,GAAUzmL,GAAIlO,MAGd6zD,GAAO3lD,GAAI2lD,4BCjgGf,SAAS92E,GAAQC,EAAQC,GACvB,IAAIC,EAAOC,OAAOD,KAAKF,GAEvB,GAAIG,OAAOC,sBAAuB,CAChC,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAC3CC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UACtD,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAC7B,CAEA,OAAOH,CACT,CAEA,SAASU,GAAeC,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EACpDA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GACpDC,GAAgBP,EAAQM,EAAKF,EAAOE,GACtC,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAC5JhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAC7E,GACF,CAEA,OAAON,CACT,CAEA,SAASW,GAAQC,GAGf,OAAOD,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAC1H,EAAGD,GAAQC,EACb,CAEA,SAASL,GAAgBK,EAAKN,EAAKW,GAYjC,OAXIX,KAAOM,EACTtB,OAAOoB,eAAeE,EAAKN,EAAK,CAC9BW,MAAOA,EACPrB,YAAY,EACZsB,cAAc,EACdC,UAAU,IAGZP,EAAIN,GAAOW,EAGNL,CACT,CAiBA,SAASY,GAAyBpB,EAAQiB,GACxC,GAAc,MAAVjB,EAAgB,MAAO,CAAC,EAE5B,IAEIE,EAAKL,EAFLD,EAlBN,SAAuCI,EAAQiB,GAC7C,GAAc,MAAVjB,EAAgB,MAAO,CAAC,EAC5B,IAEIE,EAAKL,EAFLD,EAAS,CAAC,EACVsB,EAAahC,OAAOD,KAAKe,GAG7B,IAAKH,EAAI,EAAGA,EAAIqB,EAAWnB,OAAQF,IACjCK,EAAMgB,EAAWrB,GACboB,EAASE,QAAQjB,IAAQ,IAC7BN,EAAOM,GAAOF,EAAOE,IAGvB,OAAON,CACT,CAKeoB,CAA8BhB,EAAQiB,GAInD,GAAI/B,OAAOC,sBAAuB,CAChC,IAAIkC,EAAmBnC,OAAOC,sBAAsBa,GAEpD,IAAKH,EAAI,EAAGA,EAAIwB,EAAiBtB,OAAQF,IACvCK,EAAMmB,EAAiBxB,GACnBoB,EAASE,QAAQjB,IAAQ,GACxBhB,OAAO0B,UAAUU,qBAAqBC,KAAKvB,EAAQE,KACxDN,EAAOM,GAAOF,EAAOE,GAEzB,CAEA,OAAON,CACT,CAEA,SAAS8gJ,GAAmBj/I,GAC1B,OAGF,SAA4BA,GAC1B,GAAIK,MAAMC,QAAQN,GAAM,OAAOkB,GAAkBlB,EACnD,CALSo7L,CAAmBp7L,IAO5B,SAA0BovI,GACxB,GAAsB,qBAAXpwI,QAAmD,MAAzBowI,EAAKpwI,OAAOC,WAA2C,MAAtBmwI,EAAK,cAAuB,OAAO/uI,MAAMkB,KAAK6tI,EACtH,CAToCisD,CAAiBr7L,IAWrD,SAAqCgB,EAAGC,GACtC,IAAKD,EAAG,OACR,GAAiB,kBAANA,EAAgB,OAAOE,GAAkBF,EAAGC,GACvD,IAAIE,EAAI1D,OAAO0B,UAAUiC,SAAStB,KAAKkB,GAAGK,MAAM,GAAI,GAC1C,WAANF,GAAkBH,EAAE9B,cAAaiC,EAAIH,EAAE9B,YAAYoC,MACvD,GAAU,QAANH,GAAqB,QAANA,EAAa,OAAOd,MAAMkB,KAAKP,GAClD,GAAU,cAANG,GAAqB,2CAA2CK,KAAKL,GAAI,OAAOD,GAAkBF,EAAGC,EAC3G,CAlB6Dd,CAA4BH,IA4BzF,WACE,MAAM,IAAI2B,UAAU,uIACtB,CA9BiG25L,EACjG,CAmBA,SAASp6L,GAAkBlB,EAAKyB,IACnB,MAAPA,GAAeA,EAAMzB,EAAI1B,UAAQmD,EAAMzB,EAAI1B,QAE/C,IAAK,IAAIF,EAAI,EAAGsD,EAAO,IAAIrB,MAAMoB,GAAMrD,EAAIqD,EAAKrD,IAAKsD,EAAKtD,GAAK4B,EAAI5B,GAEnE,OAAOsD,CACT,CAmEA,SAAS+rJ,GAAS/pJ,GAChB,OAPoB3E,EAOH2E,GANjB3E,GAAY,KAEGA,EAKN2E,GAITA,EAASA,EAAOob,QAAQ,iBAAiB,SAAUC,EAAOm2L,GACxD,OAAOA,EAAMA,EAAI5oM,cAAgB,EACnC,KAEcqvB,OAAO,EAAG,GAAGhkB,cAAgBjU,EAAOi4B,OAAO,GAhB3D,IAAsB58B,CAiBtB,CAEA,IAAIsL,GAAY,CAAC,SAqEjB,IAAI+yL,IAAa,EAEjB,IACEA,IAAa9+K,CACf,CAAE,MAAOlP,IAAI,CAUb,SAAS+lM,GAAkBhhI,GAGzB,OAAIA,GAA0B,WAAlBr1E,GAAQq1E,IAAsBA,EAAKvpC,QAAUupC,EAAKqvH,UAAYrvH,EAAKA,KACtEA,EAGL7zD,GAAM6zD,KACD7zD,GAAM6zD,KAAKA,GAIP,OAATA,EACK,KAILA,GAA0B,WAAlBr1E,GAAQq1E,IAAsBA,EAAKvpC,QAAUupC,EAAKqvH,SACrDrvH,EAIL9zE,MAAMC,QAAQ6zE,IAAyB,IAAhBA,EAAK71E,OAEvB,CACLssC,OAAQupC,EAAK,GACbqvH,SAAUrvH,EAAK,IAKC,kBAATA,EACF,CACLvpC,OAAQ,MACR44J,SAAUrvH,QAHd,CAMF,CAKA,SAASihI,GAAc32M,EAAKW,GAK1B,OAAOiB,MAAMC,QAAQlB,IAAUA,EAAMd,OAAS,IAAM+B,MAAMC,QAAQlB,IAAUA,EAAQV,GAAgB,CAAC,EAAGD,EAAKW,GAAS,CAAC,CACzH,CAEA,IAAIi2M,GAA+Bj4M,EAAAA,YAAiB,SAAUwF,EAAOyC,GACnE,IAAIiwM,EAAW1yM,EAAMuxE,KACjBohI,EAAW3yM,EAAM+lM,KACjBhlM,EAASf,EAAMe,OACfiJ,EAAYhK,EAAMgK,UAClB+zH,EAAQ/9H,EAAM+9H,MACdkoE,EAAUjmM,EAAMimM,QAChBD,EAAShmM,EAAMgmM,OACflB,EAAayN,GAAkBG,GAC/BjoE,EAAU+nE,GAAc,UAAW,GAAG7tM,OAAO03I,GAvNnD,SAAmBr8I,GACjB,IAAI4yM,EAEAC,EAAO7yM,EAAM6yM,KACbC,EAAO9yM,EAAM8yM,KACbC,EAAW/yM,EAAM+yM,SACjBC,EAAShzM,EAAMgzM,OACfC,EAAQjzM,EAAMizM,MACdC,EAAQlzM,EAAMkzM,MACdC,EAAOnzM,EAAMmzM,KACbC,EAAYpzM,EAAMozM,UAClBC,EAAcrzM,EAAMqzM,YACpBC,EAAQtzM,EAAMszM,MACdC,EAAavzM,EAAMuzM,WACnBC,EAAUxzM,EAAMwzM,QAChBrhB,EAASnyL,EAAMmyL,OACfshB,EAAWzzM,EAAMyzM,SACjBC,EAAO1zM,EAAM0zM,KACb5/I,EAAO9zD,EAAM8zD,KACb+gI,EAAW70L,EAAM60L,SACjB8e,EAAO3zM,EAAM2zM,KAEblpE,GAkBD3uI,GAlBY82M,EAAW,CACxB,UAAWC,EACX,UAAWC,EACX,eAAgBC,EAChB,YAAaC,EACb,WAAYC,EACZ,WAAYC,EACZ,UAAWC,EACX,kBAAmBE,EACnB,gBAAiBD,EACjB,WAAYE,EACZ,QAASC,EACT,aAAcC,EACd,YAAarhB,EACb,QAASshB,EACT,WAAoB,IAATC,EACX,qBAA+B,eAATA,GAAkC,SAATA,EAC/C,mBAA6B,aAATA,GAAgC,SAATA,GAChB,MAAM/uM,OAAOmvD,GAAuB,qBAATA,GAAiC,OAATA,GAAgBh4D,GAAgB82M,EAAU,aAAajuM,OAAOkwL,GAA+B,qBAAbA,GAAyC,OAAbA,GAAkC,IAAbA,GAAiB/4L,GAAgB82M,EAAU,WAAWjuM,OAAOgvM,GAAuB,qBAATA,GAAiC,OAATA,GAAgB73M,GAAgB82M,EAAU,kBAAmB5yM,EAAM4zM,aAAchB,GAGrY,OAAO/3M,OAAOD,KAAK6vI,GAAS75G,KAAI,SAAU/0B,GACxC,OAAO4uI,EAAQ5uI,GAAOA,EAAM,IAC9B,IAAGb,QAAO,SAAUa,GAClB,OAAOA,CACT,GACF,CAuKsEy1I,CAAUtxI,IAASq8I,GAAmBryI,EAAUuT,MAAM,QACtHizE,EAAYgiH,GAAc,YAAwC,kBAApBxyM,EAAMwwF,UAAyB9yE,GAAM8yE,UAAUxwF,EAAMwwF,WAAaxwF,EAAMwwF,WACtHu1G,EAAOyM,GAAc,OAAQD,GAAkBI,IAC/CkB,EAAetiI,GAAKuzH,EAAYxpM,GAAeA,GAAeA,GAAeA,GAAe,CAAC,EAAGmvI,GAAUj6C,GAAYu1G,GAAO,CAAC,EAAG,CACnIhlM,OAAQA,EACRg9H,MAAOA,EACPkoE,QAASA,EACTD,OAAQA,KAGV,IAAK6N,EAEH,OA/EJ,WAEI,IAAI37D,GADDsiD,IAAc/1L,SAAoC,oBAAlBA,QAAQ+G,QAG1C0sI,EAAWzzI,SAAS+G,MAAMnQ,MAAM68I,EAAUz8I,UAE/C,CAwEIokC,CAAI,sBAAuBilK,GACpB,KAGT,IAAIa,EAAWkO,EAAalO,SACxBmO,EAAa,CACfrxM,IAAKA,GAQP,OANA5H,OAAOD,KAAKoF,GAAOpE,SAAQ,SAAUC,GAE9B42M,GAAgB3gI,aAAa3yE,eAAetD,KAC/Ci4M,EAAWj4M,GAAOmE,EAAMnE,GAE5B,IACOk4M,GAAapO,EAAS,GAAImO,EACnC,IACArB,GAAgB1sM,YAAc,kBAC9B0sM,GAAgBjzM,UAAY,CAC1BqzM,KAAMjxM,KAAAA,KACNuwL,OAAQvwL,KAAAA,KACRmxM,SAAUnxM,KAAAA,KACVoxM,OAAQpxM,KAAAA,KACRoI,UAAWpI,KAAAA,OACXkxM,KAAMlxM,KAAAA,KACNsxM,MAAOtxM,KAAAA,KACPmkM,KAAMnkM,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,MAAiBA,KAAAA,SAC9DokM,OAAQpkM,KAAAA,OACR2xM,WAAY3xM,KAAAA,KACZ4xM,QAAS5xM,KAAAA,KACT8xM,KAAM9xM,KAAAA,MAAgB,EAAC,GAAM,EAAO,aAAc,WAAY,SAC9D2vE,KAAM3vE,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,MAAiBA,KAAAA,SAC9D6xM,SAAU7xM,KAAAA,KACV+xM,KAAM/xM,KAAAA,MAAgB,CAAC,QAAS,SAChC0xM,MAAO1xM,KAAAA,KACPizL,SAAUjzL,KAAAA,MAAgB,CAAC,EAAG,GAAI,IAAK,MACvCqxM,MAAOrxM,KAAAA,KACPkyD,KAAMlyD,KAAAA,MAAgB,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,QACnHuxM,KAAMvxM,KAAAA,KACNwxM,UAAWxxM,KAAAA,KACXyxM,YAAazxM,KAAAA,KACbb,OAAQa,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,SAC7Cm8H,MAAOn8H,KAAAA,OACPqkM,QAASrkM,KAAAA,OACT4uF,UAAW5uF,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,SAClDgyM,YAAahyM,KAAAA,MAEf6wM,GAAgB3gI,aAAe,CAC7BqgH,QAAQ,EACRnoL,UAAW,GACX+7L,KAAM,KACNC,OAAQ,KACRuN,YAAY,EACZC,SAAS,EACTE,MAAM,EACNniI,KAAM,KACNkiI,UAAU,EACVE,KAAM,KACNL,OAAO,EACPze,SAAU,KACV/gI,KAAM,KACNq/I,MAAM,EACNC,WAAW,EACXC,aAAa,EACbR,MAAM,EACNC,MAAM,EACNC,UAAU,EACVC,QAAQ,EACRC,OAAO,EACPlyM,QAAQ,EACRg9H,MAAO,GACPkoE,QAAS,KACTz1G,UAAW,KACXojH,aAAa,GAEf,IAAIG,GA/MJ,SAASj/K,EAAQ7tB,EAAe/F,GAC9B,IAAI4yM,EAAar4M,UAAUC,OAAS,QAAsBsJ,IAAjBvJ,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEtF,GAAuB,kBAAZyF,EACT,OAAOA,EAGT,IAAIoF,GAAYpF,EAAQoF,UAAY,IAAIsqB,KAAI,SAAU6nC,GACpD,OAAO3jC,EAAQ7tB,EAAewxD,EAChC,IAGIu7I,EAASn5M,OAAOD,KAAKsG,EAAQo4D,YAAc,CAAC,GAAGj1D,QAAO,SAAUw6L,EAAKhjM,GACvE,IAAI2uB,EAAMtpB,EAAQo4D,WAAWz9D,GAE7B,OAAQA,GACN,IAAK,QACHgjM,EAAI73G,MAAiB,UAAIx8D,SAClBtpB,EAAQo4D,WAAkB,MACjC,MAEF,IAAK,QACHulI,EAAI73G,MAAa,MAAkBx8D,EAnC5BjN,MAAM,KAAKqT,KAAI,SAAUtZ,GACpC,OAAOA,EAAE8sC,MACX,IAAGppD,QAAO,SAAUsc,GAClB,OAAOA,CACT,IAAGjT,QAAO,SAAUw6L,EAAKvkC,GACvB,IAVgB9vI,EAUZhvB,EAAI8+J,EAAKx9J,QAAQ,KACjB04D,EAAOq1F,GAASyP,EAAK77J,MAAM,EAAGjD,IAC9BgB,EAAQ89J,EAAK77J,MAAMjD,EAAI,GAAG4oD,OAE9B,OADAoR,EAAKzkB,WAAW,UAAY8tJ,GAbZr0K,EAa2BgrC,EAZtChrC,EAAI/gB,OAAO,GAAGC,cAAgB8gB,EAAI/rB,MAAM,KAYOjC,EAAQqiM,EAAIrpI,GAAQh5D,EACjEqiM,CACT,GAAG,CAAC,GA0BE,MAEF,QAC+B,IAAzBhjM,EAAIiB,QAAQ,UAA2C,IAAzBjB,EAAIiB,QAAQ,SAC5C+hM,EAAI73G,MAAMnrF,EAAIkZ,eAAiByV,EAE/Bq0K,EAAI73G,MAAM6jE,GAAShvJ,IAAQ2uB,EAKjC,OAAOq0K,CACT,GAAG,CACD73G,MAAO,CAAC,IAGNitH,EAAoBH,EAAWliI,MAC/BsiI,OAAsC,IAAtBD,EAA+B,CAAC,EAAIA,EACpDt9K,EAAY55B,GAAyB+2M,EAAYrsM,IAKrD,OAHAusM,EAAOhtH,MAAa,MAAI1rF,GAAeA,GAAe,CAAC,EAAG04M,EAAOhtH,MAAa,OAAIktH,GAG3EjtM,EAAc5L,WAAM,EAAQ,CAAC6F,EAAQgE,IAAK5J,GAAeA,GAAe,CAAC,EAAG04M,EAAOhtH,OAAQrwD,IAAYhyB,OAAO03I,GAAmB/1I,IAC1I,EAgK2B6gE,KAAK,KAAM3sE,EAAAA,eCmtBlC25M,GAAa,CACfnsK,OAAQ,MACR44J,SAAU,YACVrvH,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,swBA2kF3B6iI,GAAQ,CACVpsK,OAAQ,MACR44J,SAAU,MACVrvH,KAAM,CAAC,IAAK,IAAK,CAAC,QAAS,OAAQ,ikBCzsHrC,MA0CA,GA1C0B8iI,KACxB,MAAOC,EAAmBC,IAAwB7tM,EAAAA,EAAAA,UAAS,KACpDggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GAiB3C,OAJIvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAOsO,qBAAsB,KAAM0D,GANpCj2H,IAEZ6jJ,EAAqB7jJ,EAAI8jJ,SAAS,IAIqChpM,IACvE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKP,GACrB,KAELm2K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAEJu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oDAAmD1D,SAAA,EAChEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAsB,OAAjBqwI,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB15D,MAC3BknC,IAAI,yBAAyB93K,UAAU,SAAS4nE,MAAO,CAAE6iI,UAAW,QAASC,eAAgB,OAAQ1qG,OAAO,QAASg/E,UAAU,WACjInH,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0EAAyE1D,SAAA,EACtFq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,SAAC,mDAC7Bq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,SAAC,gMACpBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAUZ,kBC/BP,MAoZA,GApZc5D,IAAwB,IAAvB,cAAEqjL,GAAerjL,EAC9B,MAAO+lG,EAAOwoG,IAAYjuM,EAAAA,EAAAA,UAAS,KAC5B2lG,EAAUuoG,IAAeluM,EAAAA,EAAAA,UAAS,KAClCmuM,EAAcC,IAAmBpuM,EAAAA,EAAAA,WAAS,IAC1CggL,EAAWquB,IAAgBruM,EAAAA,EAAAA,WAAS,GAErCo0K,EAAWR,KAuJjB,OACEqH,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,mBAAkB1D,UACnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,sCACV4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,UAE5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mEAAkE1D,UAC/Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,iBACVi6D,IAAI,kCACJ69G,IAAI,GACJ93E,OAAO,KACPD,MAAM,QAER43E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,4BAA2B1D,SAAC,+BAI9Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,0GAAyG1D,UACtHu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,SAAC,mBAClCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,8BAA6B1D,SAAC,yCAI3Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,WAGDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLI,UAAU,4CACVD,GAAG,QACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEV1/F,SApMCkC,IACzBmoM,EAASnoM,EAAEjR,OAAOiB,MAAM,IAqMS,KAAV2vG,IACC01E,EAAAA,GAAAA,MAAA,SACE4Q,QAAQ,QACRzoL,UAAU,oEAAmE1D,SAAA,CAET,KACpEq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,+BACJ69G,IAAI,GACJ93K,UAAU,SACT,IAAI,kBAMf63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,0BACVyoL,QAAQ,iBAAgBnsL,SACzB,cAGDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAMirM,EAAe,OAAS,WAC9B7qM,UAAU,4CACVD,GAAG,WACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAGVxtG,MAAO6vG,EACP/hG,SAtOIkC,IAC5BooM,EAAYpoM,EAAEjR,OAAOiB,MAAM,IAuOS,KAAb6vG,IACCw1E,EAAAA,GAAAA,MAAA,SACE4Q,QAAQ,WACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,4BACJ69G,IAAI,GACJ93K,UAAU,SACT,IAAI,eAIX23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMsjI,EAAeV,GAAaC,GAClC5pM,QArPKwqM,KAC/BF,GAAiBD,EAAa,EAqPJjjI,MAAO,CAAE6qE,OAAQ,sBAKzBolC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sDAAqD1D,UAClEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,mBACVJ,KAAK,WACLpN,MAAM,GACNuN,GAAG,oBAEL43K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,wBACV+iE,IAAI,iBACJ6E,MAAO,CAACmoB,WAAW,OAAOzzF,SAC3B,sBAOLq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oDAAmD1D,UAChEq7K,EAAAA,GAAAA,KAACp5B,GAAI,CACHp1B,GAAG,kBACHnpH,UAAU,+BACV4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,SAC7B,2BAMLq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iCAAgC1D,SAAA,EAC7Cu7K,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,OAAM1D,SAAA,CAAC,yBACK,KACvBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,UAAUnpH,UAAU,eAAc1D,UACzCq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,kBAIPq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAClBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,YAEhB23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,cAAa1D,SAAC,wBAE9Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAClBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,iBAIpB23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC9Cu7K,EAAAA,GAAAA,MAAA,UACE73K,UAAU,2FACVQ,QAAUgC,IACRA,EAAE84F,gBAAgB,EAElBh/F,SAAA,EAEFq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,8BAA8B69G,IAAI,GAAG93K,UAAU,eACxD23K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,kBAAiB1D,SAAC,+BAGhBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,UAAQ73K,UAAU,2FAClBQ,QAAUgC,IACRA,EAAE84F,gBAAgB,EAClBh/F,SAAA,EACAq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,kCACJ69G,IAAI,GACJ93K,UAAU,eAEZ23K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,kBAAiB1D,SAAC,8BAItCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC9Cq7K,EAAAA,GAAAA,KAAChzG,GAAAA,cAAa,CACZG,MAAM,mBACNE,UAAU,EACV1jB,OAAO,qBACPztC,SAnMoBuQ,IACxB3pB,QAAQo7B,IAAIzR,EAAS,EAmMjB2gD,OAASkmI,IACPpzB,EAAAA,GAAAA,MAAA,UACE73K,UAAU,2FACVJ,KAAK,SACLY,QAASyqM,EAAYzqM,QAAQlE,SAAA,EAE7Bq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,kCACJ69G,IAAI,GACJ93K,UAAU,eAEZ23K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,kBAAiB1D,SAAC,mCASpBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,0CACVQ,QAAUgC,GA/UjBA,KACnBA,EAAE84F,iBACFyvG,GAAa,GA8Cb9yB,GAAQ,OAAQtN,GAAOwO,OAJZ,CACTh3E,MAAOA,EACPE,SAAUA,GAEyB0oG,GA5CvBrkJ,IAGZ,GAFAqkJ,GAAa,GACbtwM,QAAQo7B,IAAI,qBAAsB6wB,GACX,MAAnBA,EAAI9hC,WAAoB,CAAC,IAADsmL,EAC1BxqL,aAAaq4J,QAAQ,WAAYpmK,KAAKC,UAAa,OAAH8zC,QAAG,IAAHA,GAAS,QAANwkJ,EAAHxkJ,EAAKl7C,YAAI,IAAA0/L,OAAN,EAAHA,EAAW9wB,OAC3D15J,aAAaq4J,QAAQ,cAAkB,OAAHryH,QAAG,IAAHA,OAAG,EAAHA,EAAK9wC,OACzC8K,aAAaq4J,QAAQ,eAAmB,OAAHryH,QAAG,IAAHA,OAAG,EAAHA,EAAK+xH,cAE1C,IAAI6G,EAAW3sK,KAAKe,MAAMgN,aAAa83J,QAAQ,aAC3C8G,IACoB,eAAlBA,EAASgd,MACX57K,aAAaq4J,QAAQ,eAAgB,cACrC0G,EAAc,cACdO,GAAMv3I,QAAQ,yBAA0B,CACtCw3I,UAAW,KACXC,QAASA,IAAMpP,EAAS,sBAEC,YAAlBwO,EAASgd,MAClB57K,aAAaq4J,QAAQ,eAAgB,WACrC0G,EAAc,WACdO,GAAMv3I,QAAQ,yBAA0B,CACtCw3I,UAAW,KACXC,QAASA,IAAMpP,EAAS,mBAEC,YAAlBwO,EAASgd,OAClB57K,aAAaq4J,QAAQ,eAAgB,WACrC0G,EAAc,WACdO,GAAMv3I,QAAQ,yBAA0B,CACtCw3I,UAAW,KACXC,QAASA,IAAMpP,EAAS,QAIhC,MACEkP,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACvB4qK,UAAW,MAEf,IAO0Dz+K,IAC1DupM,GAAa,GACbtwM,QAAQo7B,IAAI,QAASr0B,GACrBw+K,GAAMx+K,MAAM,oBAAqB,CAC/By+K,UAAW,MACX,GACF,EAyRwCkrB,CAAY3oM,GAC5BolE,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,SACP5lG,SACH,YAIFogL,IACnB/E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBq7K,EAAAA,GAAAA,KAAA,aAGVA,EAAAA,GAAAA,KAACyI,GAAc,sBASHzI,EAAAA,GAAAA,KAAC0yB,GAAiB,YAIvB,ECvQP,GA5IuBe,KACrB,MAAOjpG,EAAOwoG,IAAYjuM,EAAAA,EAAAA,UAAS,IAC7Bo0K,EAAWR,MACVoM,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GAkC3C,OACEm7K,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KAEbzI,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,mBAAkB1D,UACnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,sCACV4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,UAE5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mEAAkE1D,UAC/Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,iBACVi6D,IAAI,kCACJ69G,IAAI,GACJ93E,OAAO,KACPD,MAAM,QAER43E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,4BAA2B1D,SAAC,+BAI9Cq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,yFACV4nE,MAAO,CAAEipF,UAAW,OAAQv0J,UAE5Bu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,SAAC,yBAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,8BAA6B1D,SAAC,6HAM7Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,WAGDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLI,UAAU,4CACVD,GAAG,QACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEV1/F,SA9DCkC,IACzBmoM,EAASnoM,EAAEjR,OAAOiB,MAAM,IA+DS,KAAV2vG,IACC01E,EAAAA,GAAAA,MAAA,SACE4Q,QAAQ,QACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,+BACJ69G,IAAI,GACJ93K,UAAU,SACT,IAAI,kBAOf23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAC7Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCq7K,EAAAA,GAAAA,KAAA,UACA/3K,KAAK,SACHI,UAAU,0CACVQ,QA/GL6qM,KAqBrBpzB,GAAQ,OAAQtN,GAAO4O,eAJZ,CACTp3E,MAAOA,GAGoCw6E,GAnB/Bj2H,IACU,KAAlBA,EAAI9hC,WAENo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CACnB4qK,UAAW,KACXC,QAASA,KACpBpP,EAAS,+BAADn2K,OAAgCwnG,GAAQ,IAI7C69E,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAMkEz+K,IAClE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAyFwBomE,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,SACP5lG,SACH,gCAWjBq7K,EAAAA,GAAAA,KAAC0yB,GAAiB,aAIvB,EC3FP,IAAMiB,GAAgB,SAACn5M,GAAiB,MAAe,kBAARA,GAA4B,OAARA,CAAY,EAEzEo5M,GAAW,SAACr9L,OAChBmrH,EAAUnrH,EAAA1b,MAAVA,OAAK,IAAA6mI,EAAG,GAAEA,EACVI,EAAavrH,EAAAs9L,UAAbA,OAAS,IAAA/xE,EAAG,EAACA,EACbn5H,EAAQ4N,EAAA5N,SACRovJ,EAAOxhJ,EAAAwhJ,QACP+7C,EAAWv9L,EAAAu9L,YACXz3M,EAAuBka,EAAAw9L,gBAAvBA,OAAe,IAAA13M,GAAQA,EACvBH,EAAkBqa,EAAAy9L,UAAlBA,OAAS,IAAA93M,EAAG,OAAMA,EAClB+3M,EAAe19L,EAAA09L,gBACf/vE,EAAW3tH,EAAA2tH,YACXv0D,EAAcp5D,EAAAo5D,eACdukI,EAAU39L,EAAA29L,WACV5tE,EAAA/vH,EAAA49L,kBAAAA,OAAoB,IAAA7tE,GAAKA,EAEnB8tE,EAAgCv7M,EAAAA,SAAe,GAA9Cw7M,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAC5BG,EAAY17M,EAAAA,OAA6C,IAEzD27M,EAAc,WAAM,OAAC35M,EAAQA,EAAMgC,WAAW+e,MAAM,IAAM,EAAtC,EAEpB64L,EAA2B,WAAdT,GAAwC,QAAdA,EAE7Cn7M,EAAAA,WAAgB,WACd07M,EAAU9zM,QAAU8zM,EAAU9zM,QAAQ3D,MAAM,EAAG+2M,EACjD,GAAG,CAACA,IAEJh7M,EAAAA,WAAgB,iBACVk7M,IACkB,QAApBx9L,EAAAg+L,EAAU9zM,QAAQ,UAAE,IAAA8V,GAAAA,EAAE+3F,QAE1B,GAAG,CAACylG,IAEJ,IAAMW,EAAsB,WAC1B,GAA2B,kBAAhBxwE,EAA0B,CACnC,GAAIA,EAAYnqI,SAAW85M,EACzB,OAAO3vE,EAGLA,EAAYnqI,OAAS,GACvB+I,QAAQ+G,MAAM,qEAEjB,CAEH,EAEM8qM,EAAoB,SAAC95M,GAEzB,OADoB45M,GAAcrhK,MAAMrkB,OAAOl0B,IAA2B,kBAAVA,IAClB,IAAxBA,EAAM4nD,OAAO1oD,MACrC,EAEM66M,EAAe,SAACz0M,GACZ,IAAAtF,EAAUsF,EAAMvG,OAAMiB,MAE1B85M,EAAkB95M,KACpBg6M,EAAkBh6M,GAClBi6M,EAAWT,EAAc,GAE7B,EAEMU,EAAoB,SAAC50M,GACjB,IAAA6gG,EAAgB7gG,EAAK6gG,YACvBnmG,EAAQsF,EAAMvG,OAAOiB,MAE3B,IAAK85M,EAAkB95M,GAAQ,CAI7B,GAAIA,EAAMd,SAAW85M,EACKh5M,EAAM+gB,MAAM,IAAIknH,MAAK,SAACkyE,GAAc,OAACL,EAAkBK,EAAU,MAEvFC,EAAgBp6M,EAAM+gB,MAAM,KAC5Bk5L,EAAWjB,EAAY,IAOF,OAArB7yG,EAAYntF,MAA2C,0BAA1BmtF,EAAYgzG,YAC3C7zM,EAAMwjG,iBACNkxG,EAAkB,IAClBC,EAAWT,EAAc,IAK3Bl0M,EAAMvG,OAAOiB,MAAQ,EACtB,CACH,EAOMq6M,EAAa,WACjBZ,EAAeD,EAAc,EAC/B,EAEMc,EAAgB,SAACh1M,GACrB,IAAMi1M,EAAMZ,IACR,CAACr0M,EAAMsd,KAAMtd,EAAMjG,KAAK2I,SAAS,cACnC1C,EAAMwjG,iBACNkxG,EAAkB,IAClBC,EAAWT,EAAc,IACD,WAAfl0M,EAAMsd,MACftd,EAAMwjG,iBACNkxG,EAAkB,KACM,cAAf10M,EAAMsd,MACftd,EAAMwjG,iBACNmxG,EAAWT,EAAc,IACD,eAAfl0M,EAAMsd,MAMRtd,EAAMjG,MAAQk7M,EAAIf,IALzBl0M,EAAMwjG,iBACNmxG,EAAWT,EAAc,IAQV,aAAfl0M,EAAMsd,MACS,UAAftd,EAAMsd,MACS,YAAftd,EAAMsd,MACS,cAAftd,EAAMsd,MAENtd,EAAMwjG,gBAEV,EAEMmxG,EAAa,SAAC5rL,WACZmrL,EAAc19L,KAAK+tB,IAAI/tB,KAAK8tB,IAAIovK,EAAY,EAAG3qL,GAAQ,GAEzDqrL,EAAU9zM,QAAQ4zM,KACU,QAA9B99L,EAAAg+L,EAAU9zM,QAAQ4zM,UAAY,IAAA99L,GAAAA,EAAE+3F,QACF,QAA9BozB,EAAA6yE,EAAU9zM,QAAQ4zM,UAAY,IAAA3yE,GAAAA,EAAE6lB,SAChC+sD,EAAeD,GAEnB,EAEMQ,EAAoB,SAACh6M,GACzB,IAAMu6M,EAAMZ,IACZY,EAAIf,GAAex5M,EAAM,GACzBo6M,EAAgBG,EAClB,EAEMH,EAAkB,SAACG,GACvB,IAAMC,EAAWD,EAAIxsL,KAAK,IAC1BjgB,EAAS0sM,EACX,EAEMC,EAAc,SAACn1M,SACnBA,EAAMwjG,iBAEN,IAAMyxG,EAAMZ,IACRe,EAAkBlB,EAGhBmB,EAAar1M,EAAMqmG,cACtBivG,QAAQ,cACR34M,MAAM,EAAG+2M,EAAYQ,GACrBz4L,MAAM,IAGT,IAAI64L,IAAce,EAAW1yE,MAAK,SAACjoI,GAAU,OAAAu4C,MAAMrkB,OAAOl0B,GAAb,IAA7C,CAKA,IAAK,IAAIy3D,EAAM,EAAGA,EAAMuhJ,IAAavhJ,EAC/BA,GAAO+hJ,GAAemB,EAAWz7M,OAAS,IAC5Cq7M,EAAI9iJ,GAA6B,QAAtB/7C,EAAAi/L,EAAW/9L,eAAW,IAAAlB,EAAAA,EAAA,GACjCg/L,KAIJT,EAAWS,GACXN,EAAgBG,EAXf,CAYH,EAEA,OACEv8M,EAAAA,cAAA,OACEo3E,MAAO/2E,OAAOsyC,OAAO,CAAE28E,QAAS,OAAQ89D,WAAY,UAAY0tB,GAAchkI,IAAmBA,GACjGtnE,UAAqC,kBAAnBsnE,EAA8BA,OAAiBtsE,EACjE00J,QAASA,GAERj8J,MAAMkB,KAAK,CAAEjD,OAAQ85M,IAAa,SAAC/qL,EAAGI,GAAU,OAAAA,CAAK,IAAE+F,KAAI,SAAC/F,aAAU,OACrErwB,EAAAA,cAACA,EAAAA,SAAe,CAAAqB,IAAKgvB,GAClB4qL,EACC,CACEj5M,MAA2B,QAApB0b,EAAAi+L,IAActrL,UAAM,IAAA3S,EAAAA,EAAI,GAC/B2tH,YAA2C,QAA9BpC,EAAwB,QAAxBJ,EAAAgzE,WAAwB,IAAAhzE,OAAA,EAAAA,EAAAx4G,UAAM,IAAA44G,EAAAA,OAAIz+H,EAC/CvC,IAAK,SAACvB,GAAY,OAACg1M,EAAU9zM,QAAQyoB,GAAS3pB,CAAO,EACrDoJ,SAAUisM,EACVnsM,QAAS,SAACtI,GAAU,OAxGZ,SAACA,GAA8C,gBAAC+oB,GAClEorL,EAAeprL,GACf/oB,EAAMvG,OAAO2tJ,SACd,CAqG+BmuD,CAAYv1M,EAAZu1M,CAAmBxsL,EAAM,EAC7C1gB,OAAQ0sM,EACRnvE,UAAWovE,EACXp9C,QAASu9C,EACTK,aAAc,MACd,aAAc,8BAAA3yM,OAA8BkmB,EAAQ,GACpD+mD,MAAO/2E,OAAOsyC,OACX2oK,EAAuE,CAAC,EAAnD,CAAE/rG,MAAO,MAAO29E,UAAW,UACjD4tB,GAAcO,GAAcA,EAAa,CAAC,GAE5C7rM,UAAiC,kBAAf6rM,EAA0BA,OAAa7wM,EACzD4E,KAAM+rM,EACN4B,UAAWnB,EAAa,UAAY,OACpCoB,QAASd,GAEX7rL,GAEDA,EAAQ2qL,EAAY,IAAiC,oBAApBI,EAAiCA,EAAgB/qL,GAAS+qL,OAKtG,ECtQA,MAyPA,GAzP0B6B,KACxB,MAAMt3M,EAAW+5K,IAEX/tE,EADc,IAAI97B,gBAAgBlwE,EAASoe,QACvBhQ,IAAI,aACvBwoM,EAAKW,IAAUhxM,EAAAA,EAAAA,UAAS,KACxBggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IAEpCmvM,EAAY8B,IAAiBjxM,EAAAA,EAAAA,UAAS,CAC3CqjG,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,SACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,QAER+gF,EAAWR,MAuCjBn4K,EAAAA,EAAAA,YAAU,KACR,MAAM01M,EAAeA,KACnB,MAAM9tG,EAAQr+F,OAAOosM,WAEnBH,EADE5tG,GAAS,IACG,CACZA,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,QACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAELgQ,GAAS,IACJ,CACZA,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,QACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAGA,CACZgQ,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,SACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAEhB,EAKF,OAFA89G,IACAnsM,OAAOo2B,iBAAiB,SAAU+1K,GAC3B,IAAMnsM,OAAO8xF,oBAAoB,SAAUq6G,EAAa,GAC9D,IAEH,MAGOE,EAAWC,IAAgBtxM,EAAAA,EAAAA,UAAS,KACpC+oE,EAAYwoI,IAAiBvxM,EAAAA,EAAAA,WAAS,IAE7CvE,EAAAA,EAAAA,YAAU,KACR,GAAkB,IAAd41M,EAEF,YADAE,GAAc,GAIhB,MAAMl3C,EAAQm3C,aAAY,KACxBF,GAAaG,GAAiBA,EAAgB,GAAE,GAC/C,KAEH,MAAO,IAAMC,cAAcr3C,EAAM,GAChC,CAACg3C,IA8BJ,OACEl2B,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KAEbzI,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,kBAAiB1D,UAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,sCACV4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,UAE5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mEAAkE1D,UAC/Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,iBACVi6D,IAAI,kCACJ69G,IAAI,GACJ93E,OAAO,KACPD,MAAM,QAER43E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,4BAA2B1D,SAAC,+BAI9Cq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,yFACV4nE,MAAO,CAAEipF,UAAW,OAAQv0J,UAE5Bu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,SAAC,oBAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,8BAA6B1D,SAAC,8FAK7Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAC02B,GAAQ,CACP77M,MAAOu6M,EACPzsM,SAvFFysM,IACpBW,EAAOX,EAAI,EAuFWvB,UAAW,EACXK,WAAYA,EACZJ,YAAcz1M,IAAU2hL,EAAAA,GAAAA,KAAA,YAAW3hL,OAG7D2hL,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UAC3Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,cAAc4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,SAAA,EACvDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,+BAC0Bq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,eAAc1D,SAAEyxM,IAAc,iBAG1Ep2B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,KACE/vG,MAAO,CAAE6qE,OAAQhtE,EAAa,cAAgB,UAAWy8B,MAAOz8B,EAAa,OAAS,WACtFjlE,QAAUilE,EAAgC,KApF1BjjE,IACxBA,EAAE84F,iBAmBF28E,GAAQ,OAAQtN,GAAO+O,UAJZ,CACTv3E,MAAOA,GAG+Bw6E,GAjB1Bj2H,IACU,KAAlBA,EAAI9hC,WAENo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CACnB4qK,UAAW,OAInBD,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAM6Dz+K,IAC7D/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAI7BwsM,EAAa,IACbC,GAAc,EAAK,EA0DoC3xM,SAChD,2BAOWq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAC7Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCq7K,EAAAA,GAAAA,KAAA,UACA/3K,KAAK,SACHI,UAAU,0CACVQ,QAvMJgC,IACtBA,EAAE84F,iBAyBF28E,GAAQ,OAAQtN,GAAO6O,wBAJZ,CACTr3E,MAAOA,EACP4qG,IAAKA,GAE+CpwB,GAvBxCj2H,IACZjsD,QAAQo7B,IAAI,qBAAsB6wB,GACZ,KAAlBA,EAAI9hC,WAKNo7J,GAAMv3I,QAAQ,eAAgB,CAC5Bw3I,UAAW,KACXC,QAASA,IAAMpP,EAAS,+BAADn2K,OAAgCwnG,MAK7D69E,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACvB4qK,UAAW,MAEf,IAM+Ez+K,IAC3E/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EA4KwBomE,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,SACP5lG,SACH,gCAWjBq7K,EAAAA,GAAAA,KAAC0yB,GAAiB,aAIvB,ECmBP,GArQ0BiE,KACxB,MAAOC,EAAaC,IAAkB9xM,EAAAA,EAAAA,UAAS,KACxC+xM,EAAiBC,IAAsBhyM,EAAAA,EAAAA,WAAS,IAChDiyM,EAAoBC,IAAyBlyM,EAAAA,EAAAA,UAAS,KACtDmyM,EAAwBC,IAA6BpyM,EAAAA,EAAAA,WAAS,GAC/DvG,EAAW+5K,IAEX/tE,EADc,IAAI97B,gBAAgBlwE,EAASoe,QACvBhQ,IAAI,YACxBusK,EAAWR,MACVoM,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GAkCrCqyM,EAAiBA,KACjBR,IAAgBI,EANpB12B,GAAQ,OAAQtN,GAAO8O,eAJZ,CACTt3E,MAAOA,EACPE,SAAUksG,GAEiC5xB,GAf/Bj2H,IACZjsD,QAAQo7B,IAAI,qBAAsB6wB,GACZ,KAAlBA,EAAI9hC,WACNwlK,GAAa,GAGjBpK,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACvB4qK,UAAW,MAEf,IAMsEz+K,IAClE/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAS3B8kL,MAAM,4CACV,GAGO6D,EAAWC,IAAgB1tL,EAAAA,EAAAA,WAAS,GAW3C,OATAvE,EAAAA,EAAAA,YAAU,KACR,IAAI4+J,EAMJ,OALIozB,IACFpzB,EAAQriI,YAAW,KACjBo8I,EAAS,SAAS,GACjB,MAEE,IAAM/mE,aAAagtD,EAAM,GAC/B,CAACozB,KAEFxS,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,mBAAkB1D,UACnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,sCACV4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,UAE5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mEAAkE1D,UAC/Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,iBACVi6D,IAAI,kCACJ69G,IAAI,GACJ93E,OAAO,KACPD,MAAM,QAER43E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,4BAA2B1D,SAAC,+BAI9Cu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,yFACV4nE,MAAO,CAAEipF,UAAW,OAAQv0J,SAAA,EAE5Bu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,SAAC,yBAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,8BAA6B1D,SAAC,qIAM7Cu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,kBAGDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAM6uM,EAAkB,OAAS,WACjCzuM,UAAU,4CACVD,GAAG,cACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEVxtG,MAAO+7M,EACPjuM,SA5GKkC,IAC/BgsM,EAAehsM,EAAEjR,OAAOiB,MAAM,IA6GW,KAAhB+7M,IACC12B,EAAAA,GAAAA,MAAA,SACE4Q,QAAQ,cACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,4BACJ69G,IAAI,GACJ93K,UAAU,SACV,mBAIN23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMknI,EAAkBtE,GAAaC,GACrC5pM,QA3HMwuM,KAClCN,GAAoBD,EAAgB,EA2HR7mI,MAAO,CACL6qE,OAAQ,UACRw8D,WAAY,mBAMtBp3B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,0BAGDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KACEivM,EAAyB,OAAS,WAEpC7uM,UAAU,4CACVD,GAAG,qBACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEVxtG,MAAOm8M,EACPruM,SArJYkC,IACtCosM,EAAsBpsM,EAAEjR,OAAOiB,MAAM,IAsJW,KAAvBm8M,IACC92B,EAAAA,GAAAA,MAAA,SACE4Q,QAAQ,WACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,4BACJ69G,IAAI,GACJ93K,UAAU,SACT,IAAI,eAIX23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KACEsnI,EAAyB1E,GAAaC,GAExC5pM,QAtKa0uM,KACzCJ,GAA2BD,EAAuB,EAsKtBjnI,MAAO,CACL6qE,OAAQ,UACRw8D,WAAY,sBAQxBt3B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAC7Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,0CACVQ,QAAUgC,IACRA,EAAE84F,iBACFyzG,GAAgB,EAElBnnI,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,SACP5lG,SACH,+BAOR6tL,IACCxS,EAAAA,GAAAA,KAAA,OACA33K,UAAU,8DACVD,GAAG,eACHg8H,SAAS,KACT,kBAAgB,oBAChBn0D,MAAO,CACLk4C,QAAS,QACTuyC,gBAAiB,sBACjB/1J,UAEFq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,eAAes8L,KAAK,WAAUhgM,UAC3Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACrCq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,2DACJ69G,IAAI,GACJ93E,OAAO,MACPD,MAAM,SAER43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAClBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mCAELq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,+KAcpBq7K,EAAAA,GAAAA,KAAC0yB,GAAiB,YAIvB,ECgCP,GAnSe8E,KACb,MAAOhtG,EAAOwoG,IAAYjuM,EAAAA,EAAAA,UAAS,KAC5B6xM,EAAaC,IAAkB9xM,EAAAA,EAAAA,UAAS,KACxC+xM,EAAiBC,IAAsBhyM,EAAAA,EAAAA,WAAS,IAChDiyM,EAAoBC,IAAyBlyM,EAAAA,EAAAA,UAAS,KACtDmyM,EAAwBC,IAA6BpyM,EAAAA,EAAAA,WAAS,IAC9DggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GACrCo0K,EAAWR,KAoDjB,OACEuH,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KAEbzI,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,mBAAkB1D,UACnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,sCACV4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,UAE5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mEAAkE1D,UAC/Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,iBACVi6D,IAAI,kCACJ69G,IAAI,GACJ93E,OAAO,MACPD,MAAM,SAER43E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,4BAA2B1D,SAAC,+BAI9Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,0GAAyG1D,UACtHu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,SAAC,yBAClCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,8BAA6B1D,SAAC,8CAG3Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,WAGDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLI,UAAU,4CACVD,GAAG,QACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEV1/F,SA/DCkC,IACzBmoM,EAASnoM,EAAEjR,OAAOiB,MAAM,IAgES,KAAV2vG,IACC01E,EAAAA,GAAAA,MAAA,SACE4Q,QAAQ,QACRzoL,UAAU,oEAAmE1D,SAAA,CAET,KACpEq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,+BACJ69G,IAAI,GACJ93K,UAAU,SACT,IAAI,kBAMf63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,0BACVyoL,QAAQ,iBAAgBnsL,SACzB,kBAGDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAM6uM,EAAkB,OAAS,WACjCzuM,UAAU,4CACVD,GAAG,cACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEVxtG,MAAO+7M,EACPjuM,SAhGOkC,IAC/BgsM,EAAehsM,EAAEjR,OAAOiB,MAAM,IAiGS,KAAhB+7M,IACC12B,EAAAA,GAAAA,MAAA,SACE4Q,QAAQ,cACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,4BACJ69G,IAAI,GACJ93K,UAAU,SACV,mBAIN23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMknI,EAAkBtE,GAAaC,GACrC5pM,QA/GQwuM,KAClCN,GAAoBD,EAAgB,EA+GV7mI,MAAO,CAAE6qE,OAAQ,UAAWw8D,WAAY,mBAKhDp3B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,0BACVyoL,QAAQ,iBAAgBnsL,SACzB,uBAGDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAMivM,EAAyB,OAAS,WACxC7uM,UAAU,4CACVD,GAAG,qBACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEVxtG,MAAOm8M,EACPruM,SApIckC,IACtCosM,EAAsBpsM,EAAEjR,OAAOiB,MAAM,IAqIS,KAAvBm8M,IACC92B,EAAAA,GAAAA,MAAA,SACE4Q,QAAQ,WACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,4BACJ69G,IAAI,GACJ93K,UAAU,SACT,IAAI,eAIX23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMsnI,EAAyB1E,GAAaC,GAC5C5pM,QAnJe0uM,KACzCJ,GAA2BD,EAAuB,EAmJxBjnI,MAAO,CAAE6qE,OAAQ,UAAWw8D,WAAY,mBAMhDt3B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACtDu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,2BACwB,KACzBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,SAASnpH,UAAU,eAAc1D,UACxCq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,gBAGPq7K,EAAAA,GAAAA,KAAA,OAAKuH,MAAM,kBAAiB5iL,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAKqH,MAAM,MAAK5iL,SAAA,EACdq7K,EAAAA,GAAAA,KAAA,OAAKuH,MAAM,MAAK5iL,UACdq7K,EAAAA,GAAAA,KAAA,MAAIuH,MAAM,YAEZvH,EAAAA,GAAAA,KAAA,OAAKuH,MAAM,WAAU5iL,UACnBq7K,EAAAA,GAAAA,KAAA,MAAIuH,MAAM,cAAa5iL,SAAC,wBAE1Bq7K,EAAAA,GAAAA,KAAA,OAAKuH,MAAM,MAAK5iL,UACdq7K,EAAAA,GAAAA,KAAA,MAAIuH,MAAM,iBAIhBvH,EAAAA,GAAAA,KAAA,OAAKuH,MAAM,YAAW5iL,UACpBu7K,EAAAA,GAAAA,MAAA,UAAQqH,MAAM,2FAA0F5iL,SAAA,EACtGq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,8BACJ69G,IAAI,GACJoH,MAAM,UAERvH,EAAAA,GAAAA,KAAA,QAAMuH,MAAM,kBAAiB5iL,SAAC,+BAGlCq7K,EAAAA,GAAAA,KAAA,OAAKuH,MAAM,YAAW5iL,UACpBu7K,EAAAA,GAAAA,MAAA,UAAQqH,MAAM,2FAA0F5iL,SAAA,EACtGq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,kCACJ69G,IAAI,GACJoH,MAAM,UAERvH,EAAAA,GAAAA,KAAA,QAAMuH,MAAM,kBAAiB5iL,SAAC,8BAGlCq7K,EAAAA,GAAAA,KAAA,OAAKuH,MAAM,YAAW5iL,UACpBu7K,EAAAA,GAAAA,MAAA,UAAQqH,MAAM,2FAA0F5iL,SAAA,EACtGq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,kCACJ69G,IAAI,GACJoH,MAAM,UAERvH,EAAAA,GAAAA,KAAA,QAAMuH,MAAM,kBAAiB5iL,SAAC,iCAMlCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8BAA6B1D,UAC5Cq7K,EAAAA,GAAAA,KAAA,UAChB33K,UAAU,0CACVQ,QA1OcgC,IACpBA,EAAE84F,iBACEizG,IAAgBI,EAClBroB,MAAM,2BAPRrO,GAAQ,OAAQtN,GAAOuO,OAJZ,CACT/2E,MAAOA,EACPE,SAAUksG,GAEyB5xB,GAnBvBj2H,IACU,KAAlBA,EAAI9hC,WAENo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CACnB4qK,UAAW,KACXC,QAASA,KACpBpP,EAAS,uBAADn2K,OAAwBwnG,GAAQ,IAIrC69E,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAM0Dz+K,IAC1D/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAU3B/G,QAAQo7B,IAAIssE,GACZ1nG,QAAQo7B,IAAI04K,GACd,EAkOM3mI,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,SACP5lG,SACH,gCAWGq7K,EAAAA,GAAAA,KAAC0yB,GAAiB,aAIvB,ECtCP,GA1PkB+E,KAChB,MAAMj5M,EAAW+5K,IAEX/tE,EADc,IAAI97B,gBAAgBlwE,EAASoe,QACvBhQ,IAAI,aACvBwoM,EAAKW,IAAUhxM,EAAAA,EAAAA,UAAS,KACxBggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IAEpCmvM,EAAY8B,IAAiBjxM,EAAAA,EAAAA,UAAS,CAC3CqjG,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,SACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,QAER+gF,EAAWR,MA0CjBn4K,EAAAA,EAAAA,YAAU,KACR,MAAM01M,EAAeA,KACnB,MAAM9tG,EAAQr+F,OAAOosM,WAEnBH,EADE5tG,GAAS,IACG,CACZA,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,QACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAELgQ,GAAS,IACJ,CACZA,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,QACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAGA,CACZgQ,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,SACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAEhB,EAKF,OAFA89G,IACAnsM,OAAOo2B,iBAAiB,SAAU+1K,GAC3B,IAAMnsM,OAAO8xF,oBAAoB,SAAUq6G,EAAa,GAC9D,IAEH,MAGOE,EAAWC,IAAgBtxM,EAAAA,EAAAA,UAAS,KACpC+oE,EAAYwoI,IAAiBvxM,EAAAA,EAAAA,WAAS,IAE7CvE,EAAAA,EAAAA,YAAU,KACR,GAAkB,IAAd41M,EAEF,YADAE,GAAc,GAIhB,MAAMl3C,EAAQm3C,aAAY,KACxBF,GAAaG,GAAiBA,EAAgB,GAAE,GAC/C,KAEH,MAAO,IAAMC,cAAcr3C,EAAM,GAChC,CAACg3C,IA8BJ,OACEl2B,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KACbzI,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,kBAAiB1D,UAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,sCACV4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,UAE5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mEAAkE1D,UAC/Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,iBACVi6D,IAAI,kCACJ69G,IAAI,GACJ93E,OAAO,MACPD,MAAM,SAER43E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,4BAA2B1D,SAAC,+BAI9Cq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,yFACV4nE,MAAO,CAAEipF,UAAW,OAAQv0J,UAE5Bu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,SAAC,oBAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,8BAA6B1D,SAAC,8FAK7Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAC02B,GAAQ,CACP77M,MAAOu6M,EACPzsM,SAtFFysM,IACpBW,EAAOX,EAAI,EAsFWvB,UAAW,EACXK,WAAYA,EACZJ,YAAcz1M,IAAU2hL,EAAAA,GAAAA,KAAA,YAAW3hL,OAG7D2hL,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UAC3Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,cAAc4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,SAAA,EACvDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,+BAC0Bq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,eAAc1D,SAAEyxM,IAAc,iBAG1Ep2B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,KACE/vG,MAAO,CAAE6qE,OAAQhtE,EAAa,cAAgB,UAAWy8B,MAAOz8B,EAAa,OAAS,WACtFjlE,QAAUilE,EAAgC,KAnF1BjjE,IACxBA,EAAE84F,iBAmBF28E,GAAQ,OAAQtN,GAAO+O,UAJZ,CACTv3E,MAAOA,GAG+Bw6E,GAjB1Bj2H,IACU,KAAlBA,EAAI9hC,WAENo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CACnB4qK,UAAW,OAInBD,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAM6Dz+K,IAC7D/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAI7BwsM,EAAa,IACbC,GAAc,EAAK,EAyDoC3xM,SAChD,2BAOWq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAC7Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,0CACVQ,QA7MJgC,IACtBA,EAAE84F,iBAgCF28E,GAAQ,OAAQtN,GAAO2O,UAJZ,CACTn3E,MAAOA,EACP4qG,IAAKA,GAEiCpwB,GA9B1Bj2H,IAEZ,GADAjsD,QAAQo7B,IAAI,qBAAsB6wB,GACZ,KAAlBA,EAAI9hC,WAAmB,CAAC,IAADsmL,EACzBxqL,aAAaq4J,QAAQ,WAAYpmK,KAAKC,UAAa,OAAH8zC,QAAG,IAAHA,GAAS,QAANwkJ,EAAHxkJ,EAAKl7C,YAAI,IAAA0/L,OAAN,EAAHA,EAAW9wB,OAC3D15J,aAAaq4J,QAAQ,cAAkB,OAAHryH,QAAG,IAAHA,OAAG,EAAHA,EAAK9wC,OACzC8K,aAAaq4J,QAAQ,eAAmB,OAAHryH,QAAG,IAAHA,OAAG,EAAHA,EAAK+xH,cAE3B9lK,KAAKe,MAAMgN,aAAa83J,QAAQ,cAO/CwH,GAAMv3I,QAAQ,eAAgB,CAC5Bw3I,UAAW,KACXC,QAASA,IAAMpP,EAAS,+BAADn2K,OAAgCwnG,KAI/D,MACE69E,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACvB4qK,UAAW,MAEf,IAMiEz+K,IAC7D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EA2KwBomE,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,SACP5lG,SACH,gCAWjBq7K,EAAAA,GAAAA,KAAC0yB,GAAiB,aAIvB,ECbP,GA1O0BjuM,IAAwB,IAAvB,cAAEqjL,GAAerjL,EAC1C,MAAOizM,EAAqBC,IAA0B5yM,EAAAA,EAAAA,UAAS,MACzDo0K,EAAWR,KACXn6K,EAAW+5K,KAGVwM,EAAWC,IAFE,IAAIt2G,gBAAgBlwE,EAASoe,QACvBhQ,IAAI,aACI7H,EAAAA,EAAAA,WAAS,IA0DrC6yM,EAA2BC,IAC/BF,EAAuBE,EAAY,EAIrC,OACE33B,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KACbzI,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,kBAAiB1D,UAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,qCACV4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,UAE5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mEAAkE1D,UAC/Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,iBACVi6D,IAAI,kCACJ69G,IAAI,GACJ93E,OAAO,MACPD,MAAM,SAER43E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,4BAA2B1D,SAAC,+BAI9Cq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,wFACV4nE,MAAO,CAAEipF,UAAW,OAAQv0J,UAE5Bu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,SAAC,8BAGlCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,8BAA6B1D,SAAC,8FAK7Cq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,0CACVQ,QAASA,IAAM+uM,EAAwB,WACvC3nI,MAAO,CACL6qE,OAAQ,UACRprE,QAAiC,YAAxBgoI,EAAoC,EAAI,IACjD/yM,UAEFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAuB1D,SAAA,EACpCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACjBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,kCACVi6D,IAAI,oCACJ69G,IAAI,SACJ/3E,MAAM,KACNC,OAAO,UAGX23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACjBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,iBAGLq7K,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAAEmwG,SAAU,QAASz7K,SAAC,yEAQ3Cq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,0CACVQ,QAASA,IAAM+uM,EAAwB,cACvC3nI,MAAO,CACL6qE,OAAQ,UACRprE,QAC0B,eAAxBgoI,EAAuC,EAAI,IAC7C/yM,UAEFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAuB1D,SAAA,EACpCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACjBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,kCACVi6D,IAAI,oCACJ69G,IAAI,SACJ/3E,MAAM,KACNC,OAAO,UAGX23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACjBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,uBAGLq7K,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAAEmwG,SAAU,QAASz7K,SAAC,yEAQ3Cq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,0CACVQ,QAASA,IAAM+uM,EAAwB,WACvC3nI,MAAO,CACL6qE,OAAQ,UACRprE,QAAiC,YAAxBgoI,EAAoC,EAAI,IACjD/yM,UAEFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAuB1D,SAAA,EACpCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACjBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,kCACVi6D,IAAI,oCACJ69G,IAAI,SACJ/3E,MAAM,KACNC,OAAO,UAGX23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACjBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,oBAGLq7K,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAAEmwG,SAAU,QAASz7K,SAAC,yEAQ3Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAC7Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,0CACVQ,QAzMLuvD,UACrBvtD,EAAE84F,iBA2CF28E,GACE,QACAtN,GAAOmP,SANE,CACTwiB,KAAM+S,GAON1yB,GA9CYj2H,IACZ,GAAuB,MAAnBA,EAAI9hC,WAMN,OAAQyqL,GACN,IAAK,UACH3uL,aAAaq4J,QAAQ,eAAgB,WACrC0G,EAAc,WACd/+J,aAAaq4J,QAAQ,cAAe,WACpCjI,EAAS,4BAADn2K,OAA6B00M,IACrC,MACF,IAAK,aACH3uL,aAAaq4J,QAAQ,eAAgB,cACrC0G,EAAc,cACd/+J,aAAaq4J,QAAQ,cAAe,cACpCjI,EAAS,4BAADn2K,OAA6B00M,IACrC,MACF,IAAK,UACH3uL,aAAaq4J,QAAQ,eAAgB,WACrC0G,EAAc,WACd/+J,aAAaq4J,QAAQ,cAAe,WACpCjI,EAAS,4BAADn2K,OAA6B00M,SAQzCrvB,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAaCz+K,IACC/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAE9B,EAqJyBomE,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,SAETv6B,UAAW0nI,EAAoB/yM,SAChC,gCAWjBq7K,EAAAA,GAAAA,KAAC0yB,GAAiB,aAIvB,kBCrOP,MAoSA,GApS2BoF,KACzB,MAAOluB,EAAUmuB,IAAehzM,EAAAA,EAAAA,UAAS,KAClCvG,EAAUw5M,IAAejzM,EAAAA,EAAAA,UAAS,KAClCipL,EAAaiqB,IAAkBlzM,EAAAA,EAAAA,UAAS,KACxC2jL,EAAQwvB,IAAanzM,EAAAA,EAAAA,UAAS,OAC9BozM,EAAaC,IAAkBrzM,EAAAA,EAAAA,UACpCgkB,aAAa83J,QAAQ,gBAGjB1H,EAAWR,MACVoM,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GASrCszM,EAAkBjgJ,UACtB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAC3Bu0M,EAAUjlJ,EAAOtvD,QACjB,MAAM+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EA4FJ,OACE6kD,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KACbzI,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,mBAAkB1D,UACnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,sCACV4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,UAE5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mEAAkE1D,UAC/Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OACA33K,UAAU,iBACVi6D,IAAI,kCACJ69G,IAAI,GACJ93E,OAAO,MACPD,MAAM,SAEN43E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,4BAA2B1D,SAAC,+BAI9Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6FAA4F1D,UACzGu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAC/Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,6CAA4C1D,SAAA,EACzDq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAKomH,GAAU,oCACfvI,IAAI,SACJ93K,UAAU,2BACV+/F,MAAM,MACNn4B,MAAO,CAAEm4B,MAAO,QAASC,OAAQ,YAEnC63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8DAA6D1D,SAAA,EAC1Eq7K,EAAAA,GAAAA,KAAA,SACE8Q,QAAQ,cACRzoL,UAAU,eAAc1D,UAExBq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,oCACJ69G,IAAI,QAGRH,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLG,GAAG,cACHipD,OAAO,UACP4e,MAAO,CAAEk4C,QAAS,QAClBx/G,SApLEyvD,UAC5B,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR,MAAMq9E,QAAgBL,EAAgBh9E,GACtC68E,EAAUQ,EACZ,YAmLoB14B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UAC/Bq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,eAAc1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,yBAGPu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,WAAUnsL,SACnB,eAGDq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,4CACVD,GAAG,WACH87H,YAAY,YACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEVxtG,MAAO+uL,EACPjhL,SAAWkC,GAAMktM,EAAYltM,EAAEjR,OAAOiB,aAG1CqlL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,WAAUnsL,SACnB,cAGDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,4CACVD,GAAG,WACH87H,YAAY,WACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEVxtG,MAAO2D,EACPmK,SAAWkC,GAAMmtM,EAAYntM,EAAEjR,OAAOiB,UAExCmlL,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yDAAwD1D,UACtEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,wCAIF,YAAhB8vM,GAA0Bn4B,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,KAAMC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACpEq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,cAAansL,SACtB,iBAGDq7K,EAAAA,GAAAA,KAAA,YACE33K,UAAU,mCACVD,GAAG,cACH87H,YAAY,cACZqmD,KAAK,IACLt6G,MAAO,CAAEyqF,gBAAiB,WAC1B7/J,MAAOmzL,EACPrlL,SAAWkC,GAAMotM,EAAeptM,EAAEjR,OAAOiB,aAG7CmlL,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UAC/Bq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,0CACVQ,QAlKHuuM,KACrB,MAAMsB,EAAUhwB,EAEhB,GAAIkB,GAAYprL,GAAYkqL,EAC1B,OAAQyvB,GACN,IAAK,UAMHh/B,EAAS,sBAAuB,CAAEhkK,MAAO,CAAEuvF,OALvB,CAClBklF,SAAUA,EACVlB,OAAQgwB,EACRl6M,SAAUA,MAGZ,MACF,IAAK,aAOH26K,EAAS,4BAA6B,CAAEhkK,MAAO,CAAEuvF,OAN1B,CACrBklF,SAAUA,EACVlB,OAAQgwB,EACRl6M,SAAUA,EACVwvL,YAAaA,MAGf,MACF,IAAK,UAOH7U,EAAS,yBAA0B,CAAEhkK,MAAO,CAAEuvF,OAN1B,CAClBklF,SAAUA,EACVlB,OAAQgwB,EACRl6M,SAAUA,EACVwvL,YAAaA,MAQrB,EAgIwB/9G,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,SAETv6B,UACG45G,IAAaprL,IAAakqL,EAC5B/jL,SACF,4BASbq7K,EAAAA,GAAAA,KAAC0yB,GAAiB,eAKzB,EC0jBP,GA11B2BiG,KACzB,MAAOnuG,EAAOwoG,IAAYjuM,EAAAA,EAAAA,UAAS,KAC5Bo/K,EAAWy0B,IAAgB7zM,EAAAA,EAAAA,UAAS,KACpC8zM,EAAkBC,IAAuB/zM,EAAAA,EAAAA,UAAS,KAClDg0M,EAAoBC,IAAyBj0M,EAAAA,EAAAA,UAAS,KACtDk0M,EAAgBC,IAAqBn0M,EAAAA,EAAAA,WAAS,IAC9Co0M,EAAgBC,IAAqBr0M,EAAAA,EAAAA,UAAS,KAC9Cs0M,EAAeC,IAAoBv0M,EAAAA,EAAAA,UAAS,KAC5Cw0M,EAAqBC,IAA0Bz0M,EAAAA,EAAAA,WAAS,IACxD00M,EAAsBC,IAA2B30M,EAAAA,EAAAA,WAAS,IAC1Dq/K,EAAOu1B,IAAY50M,EAAAA,EAAAA,UAAS,KAC5B60M,EAAcC,IAAmB90M,EAAAA,EAAAA,UAAS,KAC1C+0M,EAAgBC,IAAqBh1M,EAAAA,EAAAA,UAAS,KAC9Ci1M,EAAoBC,IAAyBl1M,EAAAA,EAAAA,WAAS,IACtDm1M,EAAKC,IAAUp1M,EAAAA,EAAAA,UAAS,KACxBq1M,EAAQC,IAAat1M,EAAAA,EAAAA,UAAS,QAC9BsjG,EAAQiyG,IAAav1M,EAAAA,EAAAA,UAAS,MAC9BozM,EAAaC,IAAkBrzM,EAAAA,EAAAA,UACpCgkB,aAAa83J,QAAQ,gBAGjB1H,EAAWR,KACXn6K,EAAW+5K,KACX,OAAE7zE,GAAWlmG,EAAS2W,OAAS,CAAC,GAoBtC3U,EAAAA,EAAAA,YAAU,KAbR8/K,GAAQ,MAAOtN,GAAOmR,UAAW,KAAMa,GAJzBj2H,IACZ6pJ,EAAa7pJ,EAAIl7C,KAAKoxK,KAAK,IAGiCp7K,IAC5D/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAQ7By2K,GAAQ,MAAOtN,GAAOoR,MAAO,KAAMY,GAJrBj2H,IACZ4qJ,EAAS5qJ,EAAIl7C,KAAKoxK,KAAK,IAGiCp7K,IACxD/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAMnB,GACT,IAEH,MAAOk7K,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IAiB3CvE,EAAAA,EAAAA,YAAU,KACRsC,QAAQo7B,IAAI,yBAA0B26K,EAAiB,GACtD,CAACA,IAEJ,MAeM0B,EAAsB1/M,IAC1Bu+M,EAAkBv+M,GAClB6+M,GAAwB,EAAM,EAK1Bc,EAAqB3/M,IACzBy+M,EAAiBz+M,GACjB2+M,GAAuB,EAAM,GAwB/Bh5M,EAAAA,EAAAA,YAAU,KACRsC,QAAQo7B,IAAI07K,EAAa,GACxB,CAACA,IACJ,MAGOa,EAAgBC,IAAqB31M,EAAAA,EAAAA,UAAS,MAE/C41M,EAAoBA,CAAC9qK,EAAMhlC,KAC/BA,EAAE84F,iBACF+2G,EAAkB7qK,EAAK,GAElB+qK,EAAgBC,IAAqB91M,EAAAA,EAAAA,UAAS,MAE/C+1M,EAAoBA,CAACjrK,EAAMhlC,KAC/BA,EAAE84F,iBACFk3G,EAAkBhrK,EAAK,GAiElB2iJ,EAAWC,IAAgB1tL,EAAAA,EAAAA,WAAS,GAa3C,OAXAvE,EAAAA,EAAAA,YAAU,KACR,IAAI4+J,EAOJ,OANIozB,IACFpzB,EAAQriI,YAAW,KACjB01J,GAAa,GACbtZ,EAAS,IAAI,GACZ,MAEE,IAAM/mE,aAAagtD,EAAM,GAC/B,CAACozB,KAGFtS,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KACbzI,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,kBAAiB1D,UAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,sCACV4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,UAE5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mEAAkE1D,UAC/Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,iBACVi6D,IAAI,kCACJ69G,IAAI,GACJ93E,OAAO,MACPD,MAAM,SAER43E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,4BAA2B1D,SAAC,+BAI9Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yFAAwF1D,SAAA,EACrGu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,SAAC,wBAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,mCAAkC1D,SAAC,8FAKlDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,0BAGDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,gCACV4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QACR1jG,SAAA,EAEFq7K,EAAAA,GAAAA,KAAA,KAAI/vG,MAAO,CAAEopF,WAAY,SAAUpjD,SAAU,SAAU8kG,aAAc,WAAYt1B,SAAU,OAAQ9gL,SACxHk0M,EAAiB9+M,OAAS,GACvBimL,EAAAA,GAAAA,KAAA,QAAAr7K,SAhMDw/K,EACJ9qL,QAAO2hN,GAAYnC,EAAiBh2M,SAASm4M,EAASn1B,OACtD52J,KAAI+rL,GAAYA,EAASj+M,OACzB6rB,KAAK,SA8LAo3J,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAY1D,SAAC,0BAEXq7K,EAAAA,GAAAA,KAAA,QACE33K,UAAU,wEACVQ,QA1LPoyM,KACrB/B,GAAmBD,EAAe,EAyLkBt0M,UAExBq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,uCACJ69G,IAAI,UAIT84B,IACrBj5B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,SACjBw/K,GAAaA,EAAUl1J,KAAK+rL,IAC3Bh7B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAOq2M,EAASj+M,QAChBijL,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,WACLlL,KAAK,WACLlC,MAAOmgN,EAASj+M,KAChB09D,QAASo+I,EAAiBh2M,SAASm4M,EAASn1B,KAC5C51G,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,KAAMuyM,OAhPJ9yM,EAgPyB4yM,EAASn1B,SA/O9DizB,GAAqBqC,GACfA,EAAsBt4M,SAASuF,GAE1B+yM,EAAsB9hN,QAAQ+hN,GAAeA,IAAehzM,IAG5D,IAAI+yM,EAAuB/yM,KAPVA,KAgPuC,QAd5B4yM,EAASn1B,oBAyB9B3F,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,wBAGDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,gCACV4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QACR1jG,SAAA,CAEDw0M,IAEGn5B,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,WAAU1D,SAAC,wBAC/Bq7K,EAAAA,GAAAA,KAAA,QACE33K,UAAU,wEACVQ,QA7ODwyM,KAC3B3B,GAAyBD,EAAqB,EA4OY90M,UAE9Bq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,uCACJ69G,IAAI,UAITs5B,IACCz5B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,UACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,SACLlC,MAAM,OACN4/D,QAA4B,SAAnB0+I,EACTlpI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR4xM,EAAmB,gBAK3Bv6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,qDAAoD1D,SAAA,EACnEq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,YACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,SACLlC,MAAM,SACN4/D,QAA4B,WAAnB0+I,EACTlpI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR4xM,EAAmB,+BAWvCr6B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,oBAGDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,SACLI,UAAU,4CACVD,GAAG,MACH87H,YAAY,MACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEVxtG,MAAOq/M,EACPvxM,SAAWkC,GAAMsvM,EAAOtvM,EAAEjR,OAAOiB,eAIvCqlL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,iBAGDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACzCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,SACL05E,KAAK,OACLt5E,UAAU,4CACVD,GAAG,SACH87H,YAAY,SACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEVxtG,MAAOu/M,EACfzxM,SAAWkC,GAAMwvM,EAAUxvM,EAAEjR,OAAOiB,YAGhCqlL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0BAAyB1D,SAAA,EACtCq7K,EAAAA,GAAAA,KAAA,UACE/3K,KAAK,SACLI,UAAU,0CACV,iBAAe,WACf,gBAAc,QACd4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,OACRjQ,WAAW,OACXzzF,SAED81M,KAEHv6B,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,gBAAe1D,SAAA,EACzDq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,EAAkB,KAAM9vM,GAAGlG,SAC5C,SAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,EAAkB,MAAO9vM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,EAAkB,KAAM9vM,GAAGlG,SAC5C,SAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,EAAkB,MAAO9vM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,EAAkB,MAAO9vM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,EAAkB,MAAO9vM,GAAGlG,SAC7C,0BAUeq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,iBAGDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACzCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,SACL05E,KAAK,OACLt5E,UAAU,4CACVD,GAAG,SACH87H,YAAY,SACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAEVxtG,MAAOwtG,EACf1/F,SAAWkC,GAAMyvM,EAAUzvM,EAAEjR,OAAOiB,YAGhCqlL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0BAAyB1D,SAAA,EACtCq7K,EAAAA,GAAAA,KAAA,UACE/3K,KAAK,SACLI,UAAU,yCACV,iBAAe,WACf,gBAAc,QACd4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,OACRjQ,WAAW,OACXzzF,SAEDi2M,KAEH16B,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,gBAAe1D,SAAA,EAC7Dq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAMiwM,EAAkB,KAAMjwM,GAAGlG,SAC5C,SAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAMiwM,EAAkB,MAAOjwM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAMiwM,EAAkB,MAAOjwM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAMiwM,EAAkB,MAAOjwM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAMiwM,EAAkB,MAAOjwM,GAAGlG,SAC7C,6BAYiBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,uBAGDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,gCACV4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QACR1jG,SAAA,EAEFq7K,EAAAA,GAAAA,KAAA,KAAI/vG,MAAO,CAAEopF,WAAY,SAAUpjD,SAAU,SAAU8kG,aAAc,WAAYt1B,SAAU,OAAQ9gL,SACxHi1M,EAAa7/M,OAAS,GACnBimL,EAAAA,GAAAA,KAAA,QAAAr7K,SA9eDy/K,EACJ/qL,QAAQiiN,GAAS1B,EAAa/2M,SAASy4M,EAAKz1B,OAC5C52J,KAAKqsL,GAASA,EAAKv+M,OACnB6rB,KAAK,SA4eAo3J,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAY1D,SAAC,0BAEXq7K,EAAAA,GAAAA,KAAA,QACE33K,UAAU,wEACVQ,QA1eH0yM,KACzBtB,GAAuBD,EAAmB,EAyecr1M,UAE5Bq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,uCACJ69G,IAAI,UAIT65B,IACrBh6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,SACjBy/K,EAAMn1J,KAAKqsL,IACVt7B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAO22M,EAAKv+M,QACZijL,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,WACLlL,KAAK,OACLlC,MAAOygN,EAAKv+M,KACZ09D,QAASm/I,EAAa/2M,SAASy4M,EAAKz1B,KACpC51G,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IA1hBF2yM,KACxBzB,GAAiB2B,GACXA,EAAkB34M,SAASy4M,EAAKz1B,KAE3B21B,EAAkBniN,QAAQoiN,GAAWA,IAAWH,EAAKz1B,MAGrD,IAAI21B,EAAmBF,EAAKz1B,MAErC,EAihB8B61B,CAAiBJ,SAdVA,EAAKz1B,oBAyB1B3F,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,6BAGHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,gCACV4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QACR1jG,SAAA,CAED00M,IAEGr5B,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,WAAU1D,SAAC,wBAC/Bq7K,EAAAA,GAAAA,KAAA,QACE33K,UAAU,wEACVQ,QA7jBF8yM,KAC1BnC,GAAwBD,EAAoB,EA4jBa50M,UAE7Bq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,uCACJ69G,IAAI,UAITo5B,IACCv5B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,cACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,WACN4/D,QAA2B,aAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,EAAkB,oBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,kBACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,eACN4/D,QAA2B,iBAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,EAAkB,wBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,aACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,UACN4/D,QAA2B,YAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,EAAkB,mBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,qDAAoD1D,SAAA,EACnEq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,SACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,MACN4/D,QAA2B,QAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,EAAkB,4BAiCtCx6B,EAAAA,GAAAA,KAAA,UACAA,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAC7Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,0CACVQ,QAAUgC,IACRA,EAAE84F,iBAlpBAi4G,MAE9B,IAaIrnL,EAAO,CACTq1J,SAAUllF,EAAOklF,SACjBlB,OAAQhkF,EAAOgkF,OACflqL,SAAU,CACRyJ,KAAM,QACN4zM,YAAa,CAAC,UAAW,UACzBC,QAASp3G,EAAOlmG,UAGlB2lL,UAAW00B,EACXkD,OAAQ5C,EACRe,IAAKA,EACLE,OAAQ,CACNv/M,MAAOu/M,EACP/nB,KAAMooB,GAERpyG,OAAQ,CACNxtG,MAAOwtG,EACPgqF,KAAMuoB,GAGRx2B,MAAOw1B,EACPoC,cAAe3C,GAIjBv2M,QAAQo7B,IAAI3J,GACZ+rJ,GAAQ,OAAQtN,GAAOoP,gBAAiB7tJ,EAAMywJ,GAxChCj2H,IACU,KAAlBA,EAAI9hC,WAENwlK,GAAa,GAIbpK,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IA8BmEz+K,IACnE/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAG7B/G,QAAQo7B,IAAIwmE,EAAOklF,UACnB9mL,QAAQo7B,IAAIwmE,EAAOgkF,QACnB5lL,QAAQo7B,IAAIwmE,EAAOlmG,UACnBsE,QAAQo7B,IAAI26K,GACZ/1M,QAAQo7B,IAAIi7K,GACZr2M,QAAQo7B,IAAIg8K,GACZp3M,QAAQo7B,IAAIk8K,GACZt3M,QAAQo7B,IAAIu8K,GACZ33M,QAAQo7B,IAAImqE,GACZvlG,QAAQo7B,IAAI08K,GACZ93M,QAAQo7B,IAAI07K,GACZ92M,QAAQo7B,IAAIm7K,EAAc,EA0lBEuC,EAAyB,EAE3B3rI,MAAO,CACLyqF,gBAAiB,UACjBnwD,MAAO,SACP5lG,SACH,sBAOR6tL,IACCxS,EAAAA,GAAAA,KAAA,OACE33K,UAAU,8DACVD,GAAG,eACHg8H,SAAS,KACT,kBAAgB,oBAChBn0D,MAAO,CACLk4C,QAAS,QACTuyC,gBAAiB,sBACjB/1J,UAEFq7K,EAAAA,GAAAA,KAAA,OACE33K,UAAU,gBACV1D,UAEAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACrCq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,2DACJ69G,IAAI,GACJ93E,OAAO,MACPD,MAAM,SAER43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAClBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mCAELq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,+KAetBq7K,EAAAA,GAAAA,KAAC0yB,GAAiB,aAIvB,ECnxBP,GAtEsCuJ,KAClC,MAAO14B,EAAgB24B,IAAqBn3M,EAAAA,EAAAA,UAAS,KAChDggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GAkB3C,OAJIvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAOuQ,eAAgB,KAAMyB,GAN9Bj2H,IAEZmtJ,EAAkBntJ,EAAIotJ,mBAAmB,IAIwBtyM,IACjE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKjB,GACX,KAELm2K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAEAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK4nE,MAAO,CAACkpF,aAAa,OAAOx0J,SAC/C4+K,GAAkBA,EAAet0J,KAAI,CAACs2J,EAAQr8J,KAAK,IAAAkzL,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OACpD18B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAA0C1D,UACzDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uFAAsF1D,SAAA,EACjGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACtCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sBAAsBi6D,IAAW,OAANijH,QAAM,IAANA,GAAmB,QAAb62B,EAAN72B,EAAQo3B,mBAAW,IAAAP,GAAQ,QAARC,EAAnBD,EAAqB72B,cAAM,IAAA82B,OAArB,EAANA,EAA6Bv2B,UAAW19E,MAAM,KAAKn4B,MAAO,CAACo4B,OAAO,aAEhH23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACpDq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAAEp1B,GAAI,CACnBryF,SAAU,iCACVviB,OAAO,aAAD5Z,OAAqB,OAANuiL,QAAM,IAANA,GAAmB,QAAb+2B,EAAN/2B,EAAQo3B,mBAAW,IAAAL,OAAb,EAANA,EAAqBz2B,MACzC51G,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAM,SAAU5lG,UACtCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAU,OAAN4gL,QAAM,IAANA,GAAmB,QAAbg3B,EAANh3B,EAAQo3B,mBAAW,IAAAJ,GAAQ,QAARC,EAAnBD,EAAqBh3B,cAAM,IAAAi3B,OAArB,EAANA,EAA6BpgF,aAE1D4jD,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAa4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4wE,QAAS,WAAYhzD,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,SAAUrmB,WAAY,QAASl7J,SACxN,OAAN4gL,QAAM,IAANA,GAAmB,QAAbk3B,EAANl3B,EAAQo3B,mBAAW,IAAAF,GAAQ,QAARC,EAAnBD,EAAqBl3B,cAAM,IAAAm3B,OAArB,EAANA,EAA6B/rE,cAI9BuvC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC5Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UAC5Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAoCs8L,KAAK,cAAc,gBAAc,KACpF,gBAAc,IAAI,gBAAc,MAAM10H,MAAO,CAACm4B,MAAM,GAADplG,QAAW,OAANuiL,QAAM,IAANA,OAAM,EAANA,EAAQq3B,gBAAoB,OAANr3B,QAAM,IAANA,OAAM,EAANA,EAAQs3B,aAAc,IAAG,WAIjF38B,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAACmwG,SAAS,OAAOvgB,WAAW,OAAOl7J,SAAA,CAAQ,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQq3B,cAAc,IAAQ,OAANr3B,QAAM,IAANA,OAAM,EAANA,EAAQs3B,6BA5BvE3zL,EAkCrB,SAMP,ECCP,GAnEwC4zL,KACpC,MAAOt5B,EAAiBu5B,IAAsBh4M,EAAAA,EAAAA,UAAS,KAClDggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GAkB3C,OAJIvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAOwQ,gBAAiB,KAAMwB,GAN/Bj2H,IAEZguJ,EAAmBhuJ,EAAI3yB,SAAS,IAIkCvyB,IAClE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKjB,GACX,KAELm2K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAEAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAO4nE,MAAO,CAACkpF,aAAa,OAAOx0J,SACjD6+K,GAAmBA,EAAgBv0J,KAAI,CAACs2J,EAAQr8J,KAAK,IAAA8zL,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OACtDp9B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAA0C1D,UACzDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uFAAsF1D,SAAA,EACjGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACtCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sBAAsBi6D,IAAW,OAANijH,QAAM,IAANA,GAAc,QAARy3B,EAANz3B,EAAQA,cAAM,IAAAy3B,OAAR,EAANA,EAAgBl3B,UAAW19E,MAAM,KAAKn4B,MAAO,CAACo4B,OAAO,aAEnG23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACpDq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,iBAAiBvhD,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAM,SAAU5lG,UACvEq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAU,OAAN4gL,QAAM,IAANA,GAAc,QAAR03B,EAAN13B,EAAQA,cAAM,IAAA03B,OAAR,EAANA,EAAgB7gF,aAE7C4jD,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAa4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4wE,QAAS,WAAYhzD,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,SAAUrmB,WAAY,QAASl7J,SACxN,OAAN4gL,QAAM,IAANA,GAAc,QAAR23B,EAAN33B,EAAQA,cAAM,IAAA23B,OAAR,EAANA,EAAgBvsE,cAIjBuvC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC5Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UAC5Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAoCs8L,KAAK,cAAc,gBAAc,KACpF,gBAAc,IAAI,gBAAc,MAAM10H,MAAO,CAACm4B,MAAM,aAI9B83E,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAACmwG,SAAS,OAAOvgB,WAAW,OAAOl7J,SAAA,CAAQ,OAAN4gL,QAAM,IAANA,GAAc,QAAR43B,EAAN53B,EAAQ83B,cAAM,IAAAF,OAAR,EAANA,EAAgBpjN,OAAO,IAAQ,OAANwrL,QAAM,IAANA,GAAc,QAAR63B,EAAN73B,EAAQ83B,cAAM,IAAAD,OAAR,EAANA,EAAgBrjN,wBAzBhFmvB,EA+BrB,SAMP,ECKP,GApEuCo0L,KACnC,MAAO75B,EAAiB85B,IAAsBx4M,EAAAA,EAAAA,UAAS,KAClDggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GAkB3C,OAJIvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAOyQ,gBAAiB,KAAMuB,GAN/Bj2H,IAEZwuJ,EAAmBxuJ,EAAIyuJ,oBAAoB,IAIuB3zM,IAClE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKhB,GACZ,KAELm2K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAEAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAO4nE,MAAO,CAACkpF,aAAa,OAAOx0J,SACjD8+K,GAAmBA,EAAgBx0J,KAAI,CAACs3J,EAASr9J,KAAK,IAAAu0L,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAM/9B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UAClFq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uCAAsC1D,UACrDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4EAA2E1D,SAAA,EACtFq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA4Bi6D,IAAY,OAAPikH,QAAO,IAAPA,GAAoB,QAAbk3B,EAAPl3B,EAASo2B,mBAAW,IAAAc,GAAS,QAATC,EAApBD,EAAsBl3B,eAAO,IAAAm3B,OAAtB,EAAPA,EAA+B/2B,iBAAkBv+E,MAAM,MAAMn4B,MAAO,CAACo4B,OAAO,cAEhI23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EAKjBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAAEp1B,GAAI,CACnBryF,SAAU,kCACVviB,OAAO,cAAD5Z,OAAuB,OAAPujL,QAAO,IAAPA,GAAoB,QAAbo3B,EAAPp3B,EAASo2B,mBAAW,IAAAgB,OAAb,EAAPA,EAAsB93B,MAC3C51G,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAM,SAAU5lG,UACtCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAP4hL,QAAO,IAAPA,GAAoB,QAAbq3B,EAAPr3B,EAASo2B,mBAAW,IAAAiB,GAAS,QAATC,EAApBD,EAAsBr3B,eAAO,IAAAs3B,OAAtB,EAAPA,EAA+Bp3B,oBAG5DzG,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,iBAAgB1D,SAAS,OAAP4hL,QAAO,IAAPA,GAAoB,QAAbu3B,EAAPv3B,EAASo2B,mBAAW,IAAAmB,GAAS,QAATC,EAApBD,EAAsBv3B,eAAO,IAAAw3B,OAAtB,EAAPA,EAA+Bn3B,mBAC9D1G,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC5Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UAC5Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAoCs8L,KAAK,cAAc,gBAAc,KACpF,gBAAc,IAAI,gBAAc,MAAM10H,MAAO,CAACm4B,MAAM,GAADplG,QAAY,OAAPujL,QAAO,IAAPA,OAAO,EAAPA,EAASq2B,gBAAqB,OAAPr2B,QAAO,IAAPA,OAAO,EAAPA,EAASs2B,aAAc,IAAG,WAInF38B,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAACmwG,SAAS,OAAOvgB,WAAW,OAAOl7J,SAAA,CAAS,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASq2B,cAAc,IAAS,OAAPr2B,QAAO,IAAPA,OAAO,EAAPA,EAASs2B,6BA3BZ3zL,EAiClF,SAMP,ECDP,GA/DyC80L,KACrC,MAAOt6B,EAAkBu6B,IAAwBl5M,EAAAA,EAAAA,UAAS,KACrDggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GAkB3C,OAJIvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAO0Q,iBAAkB,KAAMsB,GANhCj2H,IAEZkvJ,EAAqBlvJ,EAAI3yB,SAAS,IAIiCvyB,IACnE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKhB,GACZ,KAELm2K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAEAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAO4nE,MAAO,CAACkpF,aAAa,OAAOx0J,SACjD++K,GAAoBA,EAAiBz0J,KAAI,CAACs3J,EAASr9J,KAAK,IAAAg1L,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAMt+B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACpFq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uCAAsC1D,UACrDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4EAA2E1D,SAAA,EACtFq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA4Bi6D,IAAY,OAAPikH,QAAO,IAAPA,GAAgB,QAAT23B,EAAP33B,EAASA,eAAO,IAAA23B,OAAT,EAAPA,EAAkBv3B,iBAAkBv+E,MAAM,MAAMn4B,MAAO,CAACo4B,OAAO,cAEnH23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EAEjBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,gBAAgBvhD,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAM,SAAU5lG,UACtEq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAP4hL,QAAO,IAAPA,GAAgB,QAAT43B,EAAP53B,EAASA,eAAO,IAAA43B,OAAT,EAAPA,EAAkB13B,oBAI/CzG,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,iBAAgB1D,SAAS,OAAP4hL,QAAO,IAAPA,GAAgB,QAAT63B,EAAP73B,EAASA,eAAO,IAAA63B,OAAT,EAAPA,EAAkBx3B,mBACjD1G,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC5Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UAC5Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAoCs8L,KAAK,cAAc,gBAAc,KACpF,gBAAc,IAAI,gBAAc,MAAM10H,MAAO,CAACm4B,MAAM,aAI9B83E,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAACmwG,SAAS,OAAOvgB,WAAW,OAAOl7J,SAAA,CAAS,OAAP4hL,QAAO,IAAPA,GAAgB,QAAT83B,EAAP93B,EAASA,eAAO,IAAA83B,OAAT,EAAPA,EAAkBrsB,cAAc,IAAS,OAAPzL,QAAO,IAAPA,GAAgB,QAAT+3B,EAAP/3B,EAASA,eAAO,IAAA+3B,OAAT,EAAPA,EAAkBtsB,+BAtB5B9oK,EA4BpF,SAMP,EC8CP,GAvGyBq1L,KACvB,MAAOC,EAAcC,IAAmB15M,EAAAA,EAAAA,UAAS,WAE3C25M,EAAqBz2M,IACzBw2M,EAAgBx2M,EAAK,GAEhB02M,EAAoBC,IAAyB75M,EAAAA,EAAAA,UAAS,UAEvD85M,EAA2B52M,IAC/B22M,EAAsB32M,EAAK,EAE7B,OACE+3K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAkB4nE,MAAO,CAAEo3G,UAAW,SAAU1iL,SAAA,EAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACnBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,qBAAqB4nE,MAAO,CAACmwG,SAAS,QAAQz7K,SAAC,uBAC7Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qCAAoC1D,UACjDq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,0RAOvCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qCAAoC1D,SAAA,EACjDu7K,EAAAA,GAAAA,MAAA,UACE73K,UAAS,+BAAArF,OACgB,WAAvB27M,EACI,YACA,oBAAmB,KAEzB91M,QAASA,IAAMg2M,EAAwB,UACvC5uI,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,SAAUzjG,SAAA,CAEzC,IAAI,aAIPq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAS,+BAAArF,OACgB,WAAvB27M,EAAkC,mBAAqB,YAAW,KAEpE91M,QAASA,IAAMg2M,EAAwB,WACvC5uI,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,SAAUzjG,SAC3C,yBAIHu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACtDq7K,EAAAA,GAAAA,KAAA,UACE/3K,KAAK,SACLI,UAAS,gCAAArF,OACU,YAAjBw7M,EAA6B,iBAAmB,iBAElDvuI,MAAO,CAAEyqF,gBAAiB,SAC1B7xJ,QAASA,IAAM61M,EAAkB,WAAW/5M,SAC7C,aAIDq7K,EAAAA,GAAAA,KAAA,UACE/3K,KAAK,SACLI,UAAS,gCAAArF,OACU,cAAjBw7M,EAA+B,iBAAmB,iBAEpDvuI,MAAO,CAAEyqF,gBAAiB,SAC1B7xJ,QAASA,IAAM61M,EAAkB,aAAa/5M,SAC/C,iBAIqB,WAAvBg6M,GACC3+B,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,CACoB,YAAjB65M,IACCx+B,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAACi8B,GAA6B,MAGhB,cAAjBuC,IACCx+B,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAAC88B,GAA+B,YAMxC98B,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,CACoB,YAAjB65M,IAA8Bx+B,EAAAA,GAAAA,KAACs9B,GAA8B,IAC5C,cAAjBkB,IACCx+B,EAAAA,GAAAA,KAACg+B,GAAgC,aAM1C,ECmZP,GAtfsCc,KAAO,IAADC,EAAAC,EAAAC,EAExC,MAAOC,EAAgBC,IAAqBp6M,EAAAA,EAAAA,WAAS,IAC9Cq6M,EAAiBC,IAAsBt6M,EAAAA,EAAAA,UAAS,KAChDu6M,EAAoBC,IAAyBx6M,EAAAA,EAAAA,WAAS,IACtD8tH,EAAUiiE,IAAe/vL,EAAAA,EAAAA,UAAS,IAClCkwL,EAAaC,IAAkBnwL,EAAAA,EAAAA,UAAS,GACzCswL,GAAY90L,EAAAA,EAAAA,QAAO,OAClBi/M,EAAiBC,IAAsB16M,EAAAA,EAAAA,WAAS,IAChD26M,EAAcC,IAAmB56M,EAAAA,EAAAA,WAAS,IAC1C66M,EAAyBC,IAA8B96M,EAAAA,EAAAA,WAAS,IAChE+6M,EAAoBC,IAAyBh7M,EAAAA,EAAAA,WAAS,IACtDi7M,EAAmBC,IAAwBl7M,EAAAA,EAAAA,UAAS,KACpDm7M,EAAwBC,IAA6Bp7M,EAAAA,EAAAA,UAAS,QAC9Dq7M,EAAiBC,IAAsBt7M,EAAAA,EAAAA,UAAS,KAChDu7M,EAAiBC,IAAsBx7M,EAAAA,EAAAA,UAAS,eAChDy7M,EAAUC,IAAe17M,EAAAA,EAAAA,WAAS,IAClC27M,EAAgBC,IAAqB57M,EAAAA,EAAAA,WAAS,IAC9CggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IACtCwoL,EAAcC,IAAmBzoL,EAAAA,EAAAA,UAAS,IAC3Co0K,EAAWR,KACXn6K,EAAW+5K,IAETkV,EADc,IAAI/+G,gBAAgBlwE,EAASoe,QACpBhQ,IAAI,aAC1Bg0M,EAAcC,IAAmB97M,EAAAA,EAAAA,UAAS,IAC1C+7M,EAAgBC,IAAqBh8M,EAAAA,EAAAA,UAAS,OAI9Cw+K,EAAgB24B,IAAqBn3M,EAAAA,EAAAA,UAAS,IAC/Ci8M,EAAaA,KAUf1gC,GAAQ,MAAOtN,GAAO4Q,qBAAqB,IAAI6J,EAAU,KAAMzI,GARjDj2H,IAEZmtJ,EAAkBntJ,EAAIkyJ,gBACtBJ,EAAgB9xJ,EAAIkyJ,eAAe17B,OAAOM,KAC1Ck7B,EAAkBhyJ,EAAI,IAI8DllD,IACpF/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,GAEJrJ,EAAAA,EAAAA,YAAU,KACJitL,GACAuzB,GACJ,GACC,CAACvzB,IACN,MAGMyzB,EAAyBr2M,IAC3B,MAAMs2M,EAAet2M,EAAEjR,OAAOiB,MAClC4lN,GAAY,GAEJU,IAAiBjB,GAEjBD,EAAqBkB,GACrBZ,EAAmBY,KAInBd,EAAmBc,GAEnBZ,EAAmBY,GAEvB,GAQGC,EAA2BC,IAAgCt8M,EAAAA,EAAAA,WAAS,IAKpEu8M,EAA0BC,KAA+Bx8M,EAAAA,EAAAA,UAAS,OAMlEy8M,GAASC,KAAc18M,EAAAA,EAAAA,UAAS,IAyCjC28M,GAAoBC,IACtB,GAAmB,OAAdp+B,QAAc,IAAdA,IAAAA,EAAgB85B,OAAQ,OAAO,EACpC,MAAM58E,EAAQ8iD,EAAe85B,OAAOz1E,MAAKnH,IAAc,OAALA,QAAK,IAALA,OAAK,EAALA,EAAO2mD,WAAYu6B,IACrE,QAAOlhF,IAAa,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOmhF,UACV,GA0BhBphN,EAAAA,EAAAA,YAAU,KAvBFsgN,GAAkBA,EAAejE,cAAgBiE,EAAelE,eAgB5Dt8B,GAAQ,OAAQtN,GAAOgR,mBAAmB,IAAI48B,EAAc,KAAM57B,GAbxDj2H,IACY,KAAlBA,EAAI9hC,WACJo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CACvB4qK,UAAW,OAIfD,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACrB4qK,UAAW,MAEnB,IAGyFz+K,IACvF/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAOb,GACzB,CAACi3M,IAqCN,OAlBEtgN,EAAAA,EAAAA,YAAU,KACN,IAAI4+J,EAcJ,OAbIkgD,IACAlgD,EAAQriI,YAAW,KACfwiL,GAAsB,GAEtB8B,GAA6B,EAAM,GACpC,MAEFD,IACDT,GAAkB,GAClBvhD,EAAQriI,YAAW,KACfskL,GAA6B,EAAM,GACpC,MAEA,IAAMjvG,aAAagtD,EAAM,GACjC,CAACkgD,EAAoB8B,KAGxBphC,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACAu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAkB4nE,MAAO,CAACo3G,UAAU,SAAS1iL,SAAA,EAC5Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,qBAAoB1D,SAAC,uBACnBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAChBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qCAAoC1D,UAC/Cq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,gRAK3Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAuB1D,SAAA,EACtCq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAC,oBACxB,OAAd4+K,QAAc,IAAdA,GAAsB,QAARw7B,EAAdx7B,EAAgBgC,cAAM,IAAAw5B,OAAR,EAAdA,EAAwB33B,WAAyB,OAAd7D,QAAc,IAAdA,GAAsB,QAARy7B,EAAdz7B,EAAgBgC,cAAM,IAAAy5B,OAAR,EAAdA,EAAwB53B,QAAQn4J,KAAI,CAACm4J,EAASl+J,KAAWg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,+BAA8B1D,SAAA,EAC9Hq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACjBq7K,EAAAA,GAAAA,KAAA,SACI33K,UAAU,oCACVJ,KAAK,WACLpN,MAAM,GACNuN,GAAG,mBACH6nE,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,QAChC5tC,QAASinJ,GAAwB,OAAPt6B,QAAO,IAAPA,OAAO,EAAPA,EAASvB,KACnCljD,UAAQ,OAGhBq9C,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mCAAmC4nE,MAAO,CAAE4vF,WAAY,QAASl7J,UAC5Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8DAA6D1D,SAAA,EACxEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,MAAK1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAPyiL,QAAO,IAAPA,OAAO,EAAPA,EAASoH,oBAEpCxO,EAAAA,GAAAA,KAAA,OAAAr7K,SACK+8M,GAAwB,OAAPt6B,QAAO,IAAPA,OAAO,EAAPA,EAASvB,MAAK7F,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,mCAAsC23K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,gCAAgCQ,QAASA,IA/I1Jg5M,EAAC59M,EAAKmE,KACrBi3M,EAAmBp7M,GACnBk7M,GAAkB,GAClBsC,GAAWr5M,EAAG,EA4IiKy5M,CAAkB,OAAPz6B,QAAO,IAAPA,OAAO,EAAPA,EAAS06B,WAAmB,OAAP16B,QAAO,IAAPA,OAAO,EAAPA,EAASvB,gBAlBrH38J,OA8C3G82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gBAAe1D,SAAA,EAC5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qDAAoD1D,UACjEq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,+CAA+CQ,QApNrCk5M,KAC1B5oC,GAAU,EAAE,EAmNmFlpG,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAC,uBAI1Jq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qDAAoD1D,UACjEq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAI,CACJryF,SAAU,+BACVviB,OAAO,aAAD5Z,OAAeyqL,IACpBplL,UAAU,+CAA+C4nE,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAC,wBAIzHq7K,EAAAA,GAAAA,KAAA,OACM33K,UAAU,qDAAoD1D,UAClEq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAI,CACJryF,SAAU,0BACVviB,OAAO,eAAD5Z,OAAiByqL,EAAQ,cAAAzqL,OAA2B,OAAdugL,QAAc,IAAdA,GAAsB,QAAR07B,EAAd17B,EAAgBgC,cAAM,IAAA05B,OAAR,EAAdA,EAAwBp5B,MAErEx9K,UAAU,+CAA+C4nE,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAC,uBAQ1Hu6M,IACmBl/B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UACnKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2BAA0B1D,UAKrCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAE5Bq7K,EAAAA,GAAAA,KAAC+V,KAAW,CACJj1L,IAAKu0L,EACLpxL,IAAKm7M,EACLvjF,UAAU,EACVzzB,MAAM,OACNC,OAAO,QACPqsB,QAnNEstF,KAC9BzC,GAAsB,GACtBJ,GAAkB,GAClB,IAAIlpB,EAAat/K,KAAKue,MAAM+/J,EAAc,IACtCiB,EAAav/K,KAAKue,MAAM29F,EAAW,IACvC/vH,QAAQo7B,IAAI,qBAADl7B,OAAsB2T,KAAKue,MAAM29F,EAAW,IAAG,aAC1D/vH,QAAQo7B,IAAI,iBAADl7B,OAAkB2T,KAAKue,MAAM+/J,EAAc,IAAG,aAkBzD3U,GAAQ,OAAQtN,GAAO2Q,kBAAkB,IAAIi9B,EAAa,IAAIY,GALnD,CACPrrB,gBAAiBF,EACjBG,cAAeF,GAG2DlR,GAjBhEj2H,IACY,KAAlBA,EAAI9hC,WACJo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CACvB4qK,UAAW,OAIfD,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACrB4qK,UAAW,MAEnB,IAOiGz+K,IACjG/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EA0LwBirH,WAxLRjC,IACpBiiE,EAAYjiE,EAAS,EAwLOK,WArLR/9G,IACpB+/K,EAAe//K,EAAMs9G,cAAc,YAgM1B6sF,IACDt/B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UAC/Jq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2DAA2D69G,IAAI,GAAG93E,OAAO,MAAMD,MAAM,SAC9F43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,oCACxBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,oKAMvB66M,IACOx/B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UACnKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAEnCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,0DAAyD1D,UACpEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oFAAmF1D,SAAA,EAC9Fu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,oCAAoCj6D,UAAU,cAAc83K,IAAI,iBACzEH,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,UAAS1D,SAAE28M,GAAqD,wBAEpFthC,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,eAAegpD,OAAO,uBAAuB1oD,SArQpExI,IACtB,MAAMk7H,EAAOl7H,EAAMvG,OAAOwzJ,MAAM,GACpCm0D,GAA4BlmF,EAAKt+H,MAC7B4iN,GAAgB,EAAK,UAqQb3/B,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,SAAC,2JAEpB+6M,IACG1/B,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACIu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gCAA+B1D,SAAA,EAC1Cq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,mCAAmC4nE,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,QAASsyD,gBAAgB,YAAYnwD,MAAM,WAAa1hG,QArLxIo5M,KACzBpC,GAA2B,GAC3BJ,GAAmB,EAAM,EAmLsK96M,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,YAC/Kq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,4CAA4C4nE,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,SAAUzjG,SAAC,2BAWpIi7M,IACmB5/B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UACnKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAK/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EAEnCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2DAA2D69G,IAAI,GAAG93E,OAAO,MAAMD,MAAM,SAC9F43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,yBACxBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,4JACJq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,4CAA4C4nE,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,SAAWv/F,QAzM7Gq5M,KAEpBnC,GAAsB,EAAK,EAuM+Hp7M,SAAC,wBAUlJm7M,IACG9/B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UACnKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BAA8B1D,UAKzCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACvCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EACxEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAClBq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,UAAS1D,SAAC,YAE9Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACnBq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,UAAU4nE,MAAO,CAACg5G,YAAY,QAAQtkL,SAAC,eAInCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yCAAwC1D,UACjFq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,0BAA0Bs8L,KAAK,cAAc,gBAAc,KAC1E,gBAAc,IAAI,gBAAc,MAAM10H,MAAO,CAACm4B,MAAM,MAAOsyD,gBAAgB,gBAI7CslB,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,8CAA8C69G,IAAI,GAAG93K,UAAU,YAAYggG,OAAO,MAAMD,MAAM,YAEvG83E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,4CACxBq7K,EAAAA,GAAAA,KAAA,UAEAA,EAAAA,GAAAA,KAAA,UAC9B33K,UAAS,OAAArF,OAA6B,QAApBs9M,EAA6BA,IAAoBN,EAAqB,cAAgB,aAAgB,mBAAkB,oCAC1I/vI,MAAO,CAACo4B,OAAO,OAAQD,MAAM,SAC7BvtG,MAAM,MACNgO,QAASq4M,EACTlxI,SAA8B,eAApBswI,EAAiC37M,SAC5C,SAIDq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAS,OAAArF,OAA6B,SAApBs9M,EAA8BA,IAAoBN,EAAoB,cAAgB,aAAgB,mBAAkB,oCAC1I/vI,MAAO,CAACo4B,OAAO,OAAQD,MAAM,SAC7BvtG,MAAM,OACNgO,QAASq4M,EACTlxI,SAA8B,eAApBswI,EAAiC37M,SAC5C,UAIDq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAS,OAAArF,OAA6B,UAApBs9M,EAA+BA,IAAoBN,EAAoB,cAAgB,aAAgB,mBAAkB,oCAC3I/vI,MAAO,CAACo4B,OAAO,OAAQD,MAAM,SAC7BvtG,MAAM,QACNgO,QAASq4M,EACTlxI,SAA8B,eAApBswI,EAAiC37M,SAC5C,WAIDq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAS,OAAArF,OAA6B,UAApBs9M,EAA+BA,IAAoBN,EAAoB,cAAgB,aAAgB,mBAAkB,oCAC3I/vI,MAAO,CAACo4B,OAAO,OAAQD,MAAM,SAC7BvtG,MAAM,QACNgO,QAASq4M,EACTlxI,SAA8B,eAApBswI,EAAiC37M,SAC1C,UAI8B67M,GAAWtgC,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACZu7K,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,OAAM1D,SAAA,CAAC,uBAAmBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAIu7M,QACvClgC,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,uCAAuC4nE,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,SAAWv/F,QArYrGs5M,KAC3Bd,GAA6B,GAE7BtB,GAAsB,EAAM,EAkYoIp7M,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mBACxIq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,kCAAkC4nE,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,QAASsyD,gBAAgB,YAAYnwD,MAAM,WAAY5lG,UAAEq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,uBAcnLy8M,IACmBphC,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UACnKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAK/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EAEnCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2DAA2D69G,IAAI,GAAG93E,OAAO,MAAMD,MAAM,SAC9F43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,sDACxBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,6KAa7B,ECvXP,GA5HuCy9M,KAAO,IAADhuB,EACxBzb,KAAjB,MACMn6K,EAAW+5K,IAEXsZ,EADc,IAAInjH,gBAAgBlwE,EAASoe,QACnBhQ,IAAI,cAC3B2mH,EAAWyxD,IAAgBjgL,EAAAA,EAAAA,WAAS,IACpC4vL,EAAgBC,IAAqB7vL,EAAAA,EAAAA,UAAS,KAC9Cs9M,EAAiBC,IAAsBv9M,EAAAA,EAAAA,UAAS,OAChDowL,EAAeotB,IAAoBx9M,EAAAA,EAAAA,UAAS,GAM7Cy9M,EAA4BzzJ,IAAS,IAAD4mI,EAAAC,EACtC0sB,EAAmBvzJ,GACnB6lI,EAAkB7lI,EAAI8mI,iBACtB0sB,EAAoB,OAAHxzJ,QAAG,IAAHA,GAAoB,QAAjB4mI,EAAH5mI,EAAK8mI,uBAAe,IAAAF,GAAS,QAATC,EAApBD,EAAsBpP,eAAO,IAAAqP,OAA1B,EAAHA,EAA+B/P,IAAI,EAGlD5pK,EAAepS,IACjB/G,QAAQo7B,IAAI,0BAA2Br0B,EAAM,GAGjDrJ,EAAAA,EAAAA,YAAU,KACFqxL,GAdJvR,GAAQ,MAAOtN,GAAO+Q,qBAAqB,IAAI8N,EAAW,KAAM7M,EAAcw9B,EAA0BvmM,EAgBxG,GACD,CAAC41K,IAEJ,MAAM6vB,EAAoBC,IACtB,GAAmB,OAAdhtB,QAAc,IAAdA,IAAAA,EAAgB8tB,cAAe,OAAO,EAC3C,MAAMhiF,EAAQk0D,EAAe8tB,cAAc76E,MAAKnH,IAAc,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOA,SAAUkhF,IAC1E,QAAOlhF,GAAQA,EAAMmhF,SAAiB,EA6B1C,OAJAphN,EAAAA,EAAAA,YAAU,KArBF6hN,GAAmBA,EAAgBxF,cAAgBwF,EAAgBzF,eAe/Dt8B,GAAQ,OAAQtN,GAAOiR,oBAAoB,IAAIkR,EAAe,KAAMnQ,GAb1Dj2H,IACY,KAAlBA,EAAI9hC,WACJo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CACvB4qK,UAAW,OAIfD,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACrB4qK,UAAW,MAEnB,IAG2Fz+K,IACzF/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAMZ,GAC1B,CAACw4M,KAGAniC,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACJq7K,EAAAA,GAAAA,KAACyI,GAAc,KACfvI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAkB4nE,MAAO,CAAEo3G,UAAW,SAAU1iL,SAAA,EACvDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACjBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,qBAAoB1D,SAAC,uBACnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAChBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qCAAoC1D,UAC/Cq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,0IAMnBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UAC7Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAM4nE,MAAO,CAACkpF,aAAa,OAAOx0J,SAC5CgwL,IAAgC,OAAdA,QAAc,IAAdA,GAAuB,QAATP,EAAdO,EAAgBpO,eAAO,IAAA6N,OAAT,EAAdA,EAAyBnC,gBAAgBhjK,KAAI,CAACs3J,EAASr9J,KACtE82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACrBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kDAAiD1D,SAAA,EAC5Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACjBq7K,EAAAA,GAAAA,KAAA,SACI33K,UAAU,oCACVJ,KAAK,WACLpN,MAAM,GACNuN,GAAG,mBACH6nE,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,QAChC5tC,QAASinJ,EAAwB,OAAPn7B,QAAO,IAAPA,OAAO,EAAPA,EAASV,KACnCljD,UAAQ,OAGhBq9C,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAA0C1D,UACrDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0EAAyE1D,SAAA,EACpFq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA4Bi6D,IAAI,wDAAwD8lC,MAAM,MAAMC,OAAO,MAAM83E,IAAI,eAExIH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACjBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAI,CACNryF,SAAU,gBACVviB,OAAO,oBAAD5Z,OAA6B,OAAPujL,QAAO,IAAPA,OAAO,EAAPA,EAASV,IAAG,eAAA7iL,OAAc6uL,IACvD5hH,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAO,SAAU5lG,UACjDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASnqD,aAEtC8jD,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,iBAAgB1D,SAAA,CAAS,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAAS6L,iBAAiBv/D,SAAS,IAAS,OAAP0zD,QAAO,IAAPA,OAAO,EAAPA,EAAS6L,iBAAiBC,sBA1BvFnpK,iBAsChD,EC9EX,GA7CsBw5L,KAElBxiC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAkB4nE,MAAO,CAACo3G,UAAU,SAAS1iL,SAAA,EAC1Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACnBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,qBAAqB4nE,MAAO,CAACmwG,SAAS,QAAQz7K,SAAC,kBAC7Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qCAAoC1D,UACjDq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,kBAAiB1D,SAAC,gRAK1Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAoB4nE,MAAO,CAACkpF,aAAa,OAAOx0J,SAAA,EAC7Dq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,SAAC,kBACzBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,SAEd,IAAI7I,MAAM,IAAImzB,KAAK/F,IAClB82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,mCAAmC4nE,MAAO,CAAE4vF,WAAY,QAASl7J,UAC1Fq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6CAA4C1D,UACzDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC3Cq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAiCi6D,IAAI,uBAAuB69G,IAAI,SAAS/3E,MAAM,KAAKC,OAAO,UAE5G23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oDAAmD1D,SAAA,EAChEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,aACvBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,qBAE3Bq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,qIAZNukB,iECrBT,SAAAy5L,GAAyBnoN,EAAKN,EAAKW,GAYhD,OAXIX,KAAOM,EACTtB,OAAOoB,eAAeE,EAAKN,EAAK,CAC9BW,MAAOA,EACPrB,YAAY,EACZsB,cAAc,EACdC,UAAU,IAGZP,EAAIN,GAAOW,EAGNL,ECZF,IC0BMooN,GCfPC,GCRFC,GCuKAC,GAQEC,GAcFC,GJhMSC,GAAY,CAAC,EACbC,GAAY,GACZC,GAAA,oECON,SAASC,GAAOC,EAAKC,GAAA,IAEtB,IAAIC,KAAKD,EAAOD,EAAIE,GAAKD,EAAMC,GAAA,OACPF,EASvB,SAASG,GAAWC,GAAA,IACtBC,EAAaD,EAAKltJ,WAClBmtJ,GAAYA,EAAWvtH,YAAYstH,GEVxC,SAAgBE,GAAcC,EAAMC,EAAOC,GAAA,IAEzC7qM,EACA8qM,EACAC,EAHGC,EAAkB,CAAC,EAAD,IAIjBD,KAAKH,EACA,OAALG,EAAY/qM,EAAM4qM,EAAMG,GACd,OAALA,EAAYD,EAAMF,EAAMG,GAC5BC,EAAgBD,GAAKH,EAAMG,GAAA,GAG7BnqN,UAAUC,OAAS,IACtBmqN,EAAgBv/M,SACf7K,UAAUC,OAAS,EAAI6oN,GAAMrnN,KAAKzB,UAAW,GAAKiqN,GAKjC,mBAARF,GAA2C,MAArBA,EAAK1zI,aAAA,IAChC8zI,KAAKJ,EAAK1zI,kBAAA,IACV+zI,EAAgBD,KACnBC,EAAgBD,GAAKJ,EAAK1zI,aAAa8zI,IAAA,OAKnCE,GAAYN,EAAMK,EAAiBhrM,EAAK8qM,EAAK,MAe9C,SAASG,GAAYC,EAAMC,EAAOlrM,EAAKmrM,EAAKC,GAAA,IAG5CC,EAAQ,CACbv8M,KAAAm8M,EACA/lN,MAAAgmN,EACAnqN,IAAAif,EACArY,IAAAwjN,EAAAG,IACW,KAAA77E,GACF,KAAA87E,IACD,EAAAC,IACF,KAAAC,SAAA,EAKIC,IACE,KAAAC,IACA,KACZnqN,iBAAA,EAAaoqN,IACU,MAAZR,IAAqBzB,GAAUyB,GAAA,OAI3B,MAAZA,GAAqC,MAAjB1B,GAAQmC,OAAenC,GAAQmC,MAAMR,GAEtDA,EAOD,SAASS,GAASC,GAAA,OACjBA,EAAMvgN,SC5EP,SAASwgN,GAAUC,EAAOC,GAAA,KAC3BhnN,MAAQ+mN,EAAA,KACRh9K,QAAUi9K,EAyET,SAASC,GAAcC,EAAOC,GAAA,GAClB,MAAdA,EAAA,OAEID,EAAA38E,GACJ08E,GAAcC,EAAA38E,GAAe28E,EAAA38E,GAAA67E,IAAwBtpN,QAAQoqN,GAAS,GACtE,aAGAE,EACGD,EAAaD,EAAAd,IAAgB1qN,OAAQyrN,IAAA,GAG5B,OAFfC,EAAUF,EAAAd,IAAgBe,KAEa,MAAhBC,EAAAd,IAAA,OAIfc,EAAAd,IAAA,MASmB,mBAAdY,EAAMt9M,KAAqBq9M,GAAcC,GAAS,KAuCjE,SAASG,GAAwBC,GAAjC,IAGWC,EACJC,EAAA,GAHyB,OAA1BF,EAAQA,EAAA/8E,KAA8C,MAApB+8E,EAAAd,IAA0B,KAChEc,EAAAhB,IAAagB,EAAAd,IAAiBhjK,KAAO,KAC5B+jK,EAAI,EAAGA,EAAID,EAAAlB,IAAgB1qN,OAAQ6rN,IAAA,GAE9B,OADTC,EAAQF,EAAAlB,IAAgBmB,KACO,MAAdC,EAAAlB,IAAoB,CACxCgB,EAAAhB,IAAagB,EAAAd,IAAiBhjK,KAAOgkK,EAAAlB,IAAA,aAKhCe,GAAwBC,IAoC1B,SAASG,GAAcC,KAE1BA,EAAAnB,MACAmB,EAAAnB,KAAA,IACD7B,GAActpN,KAAKssN,KAClBC,GAAAC,OACFhD,KAAiBJ,GAAQqD,sBAEzBjD,GAAeJ,GAAQqD,oBACNlD,IAAOgD,IAK1B,SAASA,KAAA,QACJG,EACIH,GAAAC,IAAyBlD,GAAchpN,QAC9CosN,EAAQpD,GAAcj2K,MAAK,SAACs5K,EAAGC,GAAA,OAAMD,EAAArB,IAAAL,IAAkB2B,EAAAtB,IAAAL,OACvD3B,GAAgB,GAGhBoD,EAAMrjF,MAAK,SAAAwjF,GApGb,IAAyBC,EAMnBC,EACEC,EANHC,EACHC,EACAC,EAkGKN,EAAA1B,MAnGL+B,GADGD,GADoBH,EAqGQD,GAAAvB,KAAAJ,KAlG/BiC,EAAYL,EAAAM,OAGRL,EAAc,IACZC,EAAWpD,GAAO,CAAC,EAAGqD,IAAA3B,IACP2B,EAAA3B,IAAkB,EAEvC+B,GACCF,EACAF,EACAD,EACAF,EAAAQ,SAAA,IACAH,EAAUI,gBACU,MAApBN,EAAA5B,IAA2B,CAAC6B,GAAU,KACtCH,EACU,MAAVG,EAAiBrB,GAAcoB,GAASC,EACxCD,EAAA5B,KAEDmC,GAAWT,EAAaE,GAEpBA,EAAA/B,KAAcgC,GACjBjB,GAAwBgB,QCtH3B,SAAgBQ,GACfC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA3xD,GAVD,IAYK7+I,EAAG+6I,EAAG01D,EAAUC,EAAYC,EAAQC,EAAeC,EAInDC,EAAeX,GAAkBA,EAAA7C,KAA6BtB,GAE9D+E,EAAoBD,EAAYluN,OAAA,IAEpCstN,EAAA5C,IAA2B,GACtBttM,EAAI,EAAGA,EAAIiwM,EAAartN,OAAQod,IAAA,GAgDlB,OA5CjB0wM,EAAaR,EAAA5C,IAAyBttM,GADrB,OAFlB0wM,EAAaT,EAAajwM,KAEqB,kBAAd0wM,EACW,KAMtB,iBAAdA,GACc,iBAAdA,GAEc,iBAAdA,EAEoC1D,GAC1C,KACA0D,EACA,KACA,KACAA,GAES/rN,MAAMC,QAAQ8rN,GACmB1D,GAC1Cc,GACA,CAAEtgN,SAAUkjN,GACZ,KACA,KACA,MAESA,EAAAnD,IAAoB,EAKaP,GAC1C0D,EAAW5/M,KACX4/M,EAAWxpN,MACXwpN,EAAW3tN,IACX,KACA2tN,EAAA9C,KAG0C8C,GAAA,IAS5CA,EAAAj/E,GAAqBy+E,EACrBQ,EAAAnD,IAAoB2C,EAAA3C,IAAwB,EAS9B,QAHdkD,EAAWK,EAAY9wM,KAIrBywM,GACAC,EAAW3tN,KAAO0tN,EAAS1tN,KAC3B2tN,EAAW5/M,OAAS2/M,EAAS3/M,KAE9BggN,EAAY9wM,QAAA,OAAK,IAIZ+6I,EAAI,EAAGA,EAAIg2D,EAAmBh2D,IAAK,KACvC01D,EAAWK,EAAY/1D,KAKtB21D,EAAW3tN,KAAO0tN,EAAS1tN,KAC3B2tN,EAAW5/M,OAAS2/M,EAAS3/M,KAC5B,CACDggN,EAAY/1D,QAAA,EAAK,MAGlB01D,EAAW,KAObd,GACCK,EACAU,EALDD,EAAWA,GAAY1E,GAOtBqE,EACAC,EACAC,EACAC,EACAC,EACA3xD,GAGD8xD,EAASD,EAAAlD,KAEJzyD,EAAI21D,EAAW/mN,MAAQ8mN,EAAS9mN,KAAOoxJ,IACtC81D,IAAMA,EAAO,IACdJ,EAAS9mN,KAAKknN,EAAKvuN,KAAKmuN,EAAS9mN,IAAK,KAAM+mN,GAChDG,EAAKvuN,KAAKy4J,EAAG21D,EAAAhD,KAAyBiD,EAAQD,IAGjC,MAAVC,GACkB,MAAjBC,IACHA,EAAgBD,GAIU,mBAAnBD,EAAW5/M,MAClB4/M,EAAApD,MAAyBmD,EAAAnD,IAEzBoD,EAAAjD,IAAsB+C,EAASQ,GAC9BN,EACAF,EACAR,GAGDQ,EAASS,GACRjB,EACAU,EACAD,EACAK,EACAH,EACAH,GAIgC,mBAAvBN,EAAep/M,OAQzBo/M,EAAAzC,IAA0B+C,IAG3BA,GACAC,EAAAjD,KAAiBgD,GACjBA,EAAOnxJ,YAAc2wJ,IAIrBQ,EAASrC,GAAcsC,IAAA,IAIzBP,EAAA1C,IAAsBoD,EAGjB5wM,EAAI+wM,EAAmB/wM,KACL,MAAlB8wM,EAAY9wM,KAEgB,mBAAvBkwM,EAAep/M,MACC,MAAvBggN,EAAY9wM,GAAAwtM,KACZsD,EAAY9wM,GAAAwtM,KAAW0C,EAAAzC,MAKvByC,EAAAzC,IAA0BU,GAAcgC,EAAgBnwM,EAAI,IAG7DkxM,GAAQJ,EAAY9wM,GAAI8wM,EAAY9wM,KAAA,GAKlC6wM,EAAA,IACE7wM,EAAI,EAAGA,EAAI6wM,EAAKjuN,OAAQod,IAC5BmxM,GAASN,EAAK7wM,GAAI6wM,IAAO7wM,GAAI6wM,IAAO7wM,IAKvC,SAASgxM,GAAgBI,EAAYC,EAAQC,GAAA,IAA7C,IAKMC,EAHDC,EAAIJ,EAAA9D,IACJmE,EAAM,EACHD,GAAKC,EAAMD,EAAE5uN,OAAQ6uN,KACvBF,EAAQC,EAAEC,MAMbF,EAAA9/E,GAAgB2/E,EAGfC,EADwB,mBAAdE,EAAMzgN,KACPkgN,GAAgBO,EAAOF,EAAQC,GAE/BL,GACRK,EACAC,EACAA,EACAC,EACAD,EAAA/D,IACA6D,IAAA,OAMGA,EASD,SAASK,GAAaC,EAAUC,GAAA,OACtCA,EAAMA,GAAO,GACG,MAAZD,GAAuC,kBAAZA,IACpBhtN,MAAMC,QAAQ+sN,GACxBA,EAAShmF,MAAK,SAAAkmF,GACbH,GAAaG,EAAOD,MAGrBA,EAAItvN,KAAKqvN,IAEHC,EAGR,SAASX,GACRa,EACAC,EACAC,EACAC,EACAC,EACAC,GAND,IAQKC,EAuBGC,EAAiBC,EAAA,YAtBpBP,EAAAtE,IAIH2E,EAAUL,EAAAtE,IAMVsE,EAAAtE,SAAA,OACM,GACM,MAAZuE,GACAE,GAAUC,GACW,MAArBD,EAAO7yJ,WAEP55D,EAAO,GAAc,MAAV0sN,GAAkBA,EAAO9yJ,aAAeyyJ,EAClDA,EAAUp6I,YAAYw6I,GACtBE,EAAU,SACJ,KAGDC,EAASF,EAAQG,EAAI,GACxBD,EAASA,EAAO/8G,cAAgBg9G,EAAIL,EAAYrvN,OACjD0vN,GAAK,KAEDD,GAAUH,EAAA,MACPzsN,EAGRqsN,EAAUr6I,aAAay6I,EAAQC,GAC/BC,EAAUD,EAAA,gBAORC,EACMA,EAEAF,EAAO58G,YCvSlB,SAASi9G,GAASC,EAAOC,EAAKC,GACd,MAAXD,EAAI,GACPD,EAAMnwH,YAAYowH,EAAKC,GAEvBF,EAAMC,GADa,MAATC,EACG,GACa,iBAATA,GAAqBzG,GAAmBnmN,KAAK2sN,GACjDC,EAEAA,EAAQ,KAYhB,SAASC,GAAYC,EAAKC,EAAMC,EAAOC,EAAUC,GAAjD,IACFC,EAEJxtN,EAAG,GAAa,UAATotN,EAAA,GACc,iBAATC,EACVF,EAAI95I,MAAMo6I,QAAUJ,MACd,IACiB,iBAAZC,IACVH,EAAI95I,MAAMo6I,QAAUH,EAAW,IAG5BA,EAAA,IACEF,KAAQE,EACND,GAASD,KAAQC,GACtBP,GAASK,EAAI95I,MAAO+5I,EAAM,OAKzBC,EAAA,IACED,KAAQC,EACPC,GAAYD,EAAMD,KAAUE,EAASF,IACzCN,GAASK,EAAI95I,MAAO+5I,EAAMC,EAAMD,SAOhC,GAAgB,MAAZA,EAAK,IAA0B,MAAZA,EAAK,GAChCI,EAAaJ,KAAUA,EAAOA,EAAKzvM,QAAA,WAAoB,KAGxByvM,EAA3BA,EAAK52M,gBAAiB22M,EAAYC,EAAK52M,cAActW,MAAM,GACnDktN,EAAKltN,MAAM,GAElBitN,EAAI7nN,IAAY6nN,EAAI7nN,EAAa,CAAC,GACvC6nN,EAAI7nN,EAAW8nN,EAAOI,GAAcH,EAEhCA,EACEC,GAEJH,EAAI5pL,iBAAiB6pL,EADLI,EAAaE,GAAoBC,GACbH,GAIrCL,EAAIluH,oBAAoBmuH,EADRI,EAAaE,GAAoBC,GACVH,QAElC,GAAa,4BAATJ,EAAoC,IAC1CG,EAIHH,EAAOA,EAAKzvM,QAAA,aAAsB,KAAKA,QAAA,SAAkB,UACnD,GACG,SAATyvM,GACS,SAATA,GACS,SAATA,GAGS,aAATA,GACS,aAATA,GACAA,KAAQD,EAAA,IAGPA,EAAIC,GAAiB,MAATC,EAAgB,GAAKA,EAAA,MAE3BrtN,EACL,MAAOA,GAAA,CAUW,mBAAVqtN,IAGD,MAATA,KAAA,IACCA,GAAgC,MAAZD,EAAK,IAA0B,MAAZA,EAAK,IAE7CD,EAAIxkI,aAAaykI,EAAMC,GAEvBF,EAAI1wJ,gBAAgB2wJ,KAUvB,SAASO,GAAWC,GAAA,KACdtoN,EAAWsoN,EAAEviN,MAAA,GAAc46M,GAAQ1iN,MAAQ0iN,GAAQ1iN,MAAMqqN,GAAKA,GAGpE,SAASF,GAAkBG,GAAA,KACrBvoN,EAAWuoN,EAAExiN,MAAA,GAAa46M,GAAQ1iN,MAAQ0iN,GAAQ1iN,MAAMsqN,GAAKA,GCpInE,SAAgB3D,GACf4D,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GATD,IAWKC,EAoBE/zM,EAAG+6I,EAAOQ,EAAUy4D,EAAU34D,EAAU44D,EACxCC,EAKAC,EACA34D,EAqIA44D,EA/JLC,EAAUd,EAAS1iN,KAAA,YAIhB0iN,EAAShwN,YAA2B,OAAO,KAGpB,MAAvBiwN,EAAA9F,MACHoG,EAAcN,EAAA9F,IACdmG,EAASN,EAAAhG,IAAgBiG,EAAAjG,IAEzBgG,EAAA7F,IAAsB,KACtBiG,EAAoB,CAACE,KAGjBE,EAAMtI,GAAA6B,MAAgByG,EAAIR,GAAA,IAG9B/tN,EAAO,GAAsB,mBAAX6uN,EAAuB,IAEpCH,EAAWX,EAAStsN,MAKpBktN,GADJJ,EAAMM,EAAQtxG,cACQ0wG,EAAcM,EAAAtG,KAChCjyD,EAAmBu4D,EACpBI,EACCA,EAASltN,MAAMxD,MACfswN,EAAAviF,GACDiiF,EAGCD,EAAA/F,IAEHwG,GADAj0M,EAAIuzM,EAAA9F,IAAsB+F,EAAA/F,KAAAj8E,GAC0BxxH,EAAAs0M,KAGhD,cAAeD,GAAWA,EAAQ7wN,UAAUwyE,OAE/Cu9I,EAAA9F,IAAsBztM,EAAI,IAAIq0M,EAAQH,EAAU14D,IAGhD+3D,EAAA9F,IAAsBztM,EAAI,IAAI+tM,GAAUmG,EAAU14D,GAClDx7I,EAAEzc,YAAc8wN,EAChBr0M,EAAEg2D,OAASu+I,IAERJ,GAAUA,EAASnqJ,IAAIhqD,GAE3BA,EAAE/Y,MAAQitN,EACLl0M,EAAEjC,QAAOiC,EAAEjC,MAAQ,CAAC,GACzBiC,EAAEgxB,QAAUwqH,EACZx7I,EAAA2vM,IAAmB8D,EACnB14D,EAAQ/6I,EAAAwtM,KAAA,EACRxtM,EAAA0tM,IAAqB,IAIF,MAAhB1tM,EAAAw0M,MACHx0M,EAAAw0M,IAAex0M,EAAEjC,OAEsB,MAApCs2M,EAAQhxG,2BACPrjG,EAAAw0M,KAAgBx0M,EAAEjC,QACrBiC,EAAAw0M,IAAevI,GAAO,CAAC,EAAGjsM,EAAAw0M,MAG3BvI,GACCjsM,EAAAw0M,IACAH,EAAQhxG,yBAAyB6wG,EAAUl0M,EAAAw0M,OAI7Cj5D,EAAWv7I,EAAE/Y,MACb+sN,EAAWh0M,EAAEjC,MAGTg9I,EAEkC,MAApCs5D,EAAQhxG,0BACgB,MAAxBrjG,EAAEwjG,oBAEFxjG,EAAEwjG,qBAGwB,MAAvBxjG,EAAEyjG,mBACLzjG,EAAA0tM,IAAmBrrN,KAAK2d,EAAEyjG,uBAErB,IAE+B,MAApC4wG,EAAQhxG,0BACR6wG,IAAa34D,GACkB,MAA/Bv7I,EAAEkjG,2BAEFljG,EAAEkjG,0BAA0BgxG,EAAU14D,IAIpCx7I,EAAAutM,KAC0B,MAA3BvtM,EAAE4iG,wBAAA,IACF5iG,EAAE4iG,sBACDsxG,EACAl0M,EAAAw0M,IACAh5D,IAEF+3D,EAAA5F,MAAuB6F,EAAA7F,IACtB,CACD3tM,EAAE/Y,MAAQitN,EACVl0M,EAAEjC,MAAQiC,EAAAw0M,IAENjB,EAAA5F,MAAuB6F,EAAA7F,MAAoB3tM,EAAAwtM,KAAA,GAC/CxtM,EAAA2tM,IAAW4F,EACXA,EAAAhG,IAAgBiG,EAAAjG,IAChBgG,EAAAlG,IAAqBmG,EAAAnG,IACrBkG,EAAAlG,IAAmBxqN,SAAQ,SAAA4xN,GACtBA,IAAOA,EAAAjjF,GAAgB+hF,MAExBvzM,EAAA0tM,IAAmB/qN,QACtBixN,EAAYvxN,KAAK2d,GAAA,MAGZxa,EAGsB,MAAzBwa,EAAEosG,qBACLpsG,EAAEosG,oBAAoB8nG,EAAUl0M,EAAAw0M,IAAch5D,GAGnB,MAAxBx7I,EAAEqsG,oBACLrsG,EAAA0tM,IAAmBrrN,MAAK,WACvB2d,EAAEqsG,mBAAmBkvC,EAAUy4D,EAAU34D,MAK5Cr7I,EAAEgxB,QAAUwqH,EACZx7I,EAAE/Y,MAAQitN,EACVl0M,EAAEjC,MAAQiC,EAAAw0M,KAELT,EAAMtI,GAAAoD,MAAkBkF,EAAIR,GAEjCvzM,EAAAwtM,KAAA,EACAxtM,EAAA2tM,IAAW4F,EACXvzM,EAAAyvM,IAAe6D,EAEfS,EAAM/zM,EAAEg2D,OAAOh2D,EAAE/Y,MAAO+Y,EAAEjC,MAAOiC,EAAEgxB,SAGnChxB,EAAEjC,MAAQiC,EAAAw0M,IAEe,MAArBx0M,EAAE+8F,kBACL02G,EAAgBxH,GAAOA,GAAO,CAAC,EAAGwH,GAAgBzzM,EAAE+8F,oBAGhDg+C,GAAsC,MAA7B/6I,EAAEsjG,0BACf+3C,EAAWr7I,EAAEsjG,wBAAwBi4C,EAAUy4D,IAK5CI,EADI,MAAPL,GAAeA,EAAIljN,OAASg9M,IAAuB,MAAXkG,EAAIjxN,IACLixN,EAAI9sN,MAAMsG,SAAWwmN,EAE7DjE,GACCwD,EACA5uN,MAAMC,QAAQyvN,GAAgBA,EAAe,CAACA,GAC9Cb,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAGD9zM,EAAEyqC,KAAO8oK,EAAAhG,IAGTgG,EAAA7F,IAAsB,KAElB1tM,EAAA0tM,IAAmB/qN,QACtBixN,EAAYvxN,KAAK2d,GAGdi0M,IACHj0M,EAAAs0M,IAAkBt0M,EAAAwxH,GAAyB,MAG5CxxH,EAAAutM,KAAA,OAEqB,MAArBoG,GACAJ,EAAA5F,MAAuB6F,EAAA7F,KAEvB4F,EAAAlG,IAAqBmG,EAAAnG,IACrBkG,EAAAhG,IAAgBiG,EAAAjG,KAEhBgG,EAAAhG,IAgEH,SACCmH,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GARD,IAoBSC,EAsDHr2D,EACAs2D,EAjEDt5D,EAAW+4D,EAAS3tN,MACpBmuN,EAAWT,EAAS1tN,MACpBouN,EAAWV,EAAS9jN,KACpBykN,EAAI,KAGS,QAAbD,IAAoBP,GAAA,GAEC,MAArBC,EAAA,KACIO,EAAIP,EAAkBpyN,OAAQ2yN,IAAA,IAC9BJ,EAAQH,EAAkBO,KAO/B,iBAAkBJ,KAAYG,IAC7BA,EAAWH,EAAMK,YAAcF,EAA8B,IAAnBH,EAAM99H,UAChD,CACDs9H,EAAMQ,EACNH,EAAkBO,GAAK,cAMf,MAAPZ,EAAa,IACC,OAAbW,EAAA,OAEI1mL,SAASkgF,eAAeumG,GAI/BV,EADGI,EACGnmL,SAASggF,gBACd,6BAEA0mG,GAGK1mL,SAASzgC,cAEdmnN,EACAD,EAAShyH,IAAMgyH,GAKjBL,EAAoB,KAEpBE,GAAA,EAAc,GAGE,OAAbI,EAECx5D,IAAau5D,GAAcH,GAAeP,EAAIj4M,OAAS24M,IAC1DV,EAAIj4M,KAAO24M,OAEN,IAENL,EAAoBA,GAAqBvJ,GAAMrnN,KAAKuwN,EAAIz0J,YAIpD4+F,GAFJhD,EAAW+4D,EAAS3tN,OAAS6kN,IAEN3zI,wBACnBg9I,EAAUC,EAASj9I,yBAIlB88I,EAAa,IAGQ,MAArBF,EAAA,IACHl5D,EAAW,CAAC,EACPy5D,EAAI,EAAGA,EAAIZ,EAAIn0J,WAAW59D,OAAQ2yN,IACtCz5D,EAAS64D,EAAIn0J,WAAW+0J,GAAG3vN,MAAQ+uN,EAAIn0J,WAAW+0J,GAAG7xN,OAInD0xN,GAAWt2D,KAGZs2D,IACEt2D,GAAWs2D,EAAA/8I,QAAkBymF,EAAAzmF,QAC/B+8I,EAAA/8I,SAAmBs8I,EAAI51H,aAExB41H,EAAI51H,UAAaq2H,GAAWA,EAAA/8I,QAAmB,QD3X7C,SAAmBo9I,EAAKC,EAAUC,EAAUC,EAAOC,GAAA,IACrDC,EAAA,IAECA,KAAKH,EACC,aAANG,GAA0B,QAANA,GAAiBA,KAAKJ,GAC7C/C,GAAY8C,EAAKK,EAAG,KAAMH,EAASG,GAAIF,GAAA,IAIpCE,KAAKJ,EAENG,GAAiC,mBAAfH,EAASI,IACvB,aAANA,GACM,QAANA,GACM,UAANA,GACM,YAANA,GACAH,EAASG,KAAOJ,EAASI,IAEzBnD,GAAY8C,EAAKK,EAAGJ,EAASI,GAAIH,EAASG,GAAIF,GC8W/CG,CAAUpB,EAAKU,EAAUv5D,EAAUi5D,EAAOG,GAGtCE,EACHR,EAAAtH,IAAqB,WAErBiI,EAAIX,EAAS1tN,MAAMsG,SACnBuiN,GACC4E,EACAhwN,MAAMC,QAAQ2wN,GAAKA,EAAI,CAACA,GACxBX,EACAC,EACAC,EACAC,GAAsB,kBAAbO,EACTN,EACAC,EACAD,EACGA,EAAkB,GAClBH,EAAAvH,KAAsBa,GAAc0G,EAAU,GACjDK,GAIwB,MAArBF,EAAA,IACEO,EAAIP,EAAkBpyN,OAAQ2yN,KACN,MAAxBP,EAAkBO,IAAYjJ,GAAW0I,EAAkBO,IAM7DL,IAEH,UAAWG,QAAA,KACVE,EAAIF,EAAS3xN,SAKb6xN,IAAMz5D,EAASp4J,OACf6xN,IAAMZ,EAAIjxN,OACI,aAAb4xN,IAA4BC,IAE9B5C,GAAYgC,EAAK,QAASY,EAAGz5D,EAASp4J,OAAA,GAGtC,YAAa2xN,QAAA,KACZE,EAAIF,EAAS/xJ,UACdiyJ,IAAMZ,EAAIrxJ,SAEVqvJ,GAAYgC,EAAK,UAAWY,EAAGz5D,EAASx4F,SAAA,IAAS,OAK7CqxJ,EA5NWqB,CACfvC,EAAAjG,IACAgG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,IAIGC,EAAMtI,GAAQuK,SAASjC,EAAIR,GAC/B,MAAO0C,GACR1C,EAAA5F,IAAqB,MAEjBmG,GAAoC,MAArBH,KAClBJ,EAAAhG,IAAgBsG,EAChBN,EAAA7F,MAAwBoG,EACxBH,EAAkBA,EAAkB5vN,QAAQ8vN,IAAW,MAIxDpI,GAAA8B,IAAoB0I,EAAG1C,EAAUC,IAS5B,SAAS3D,GAAWqG,EAAaC,GACnC1K,GAAAgC,KAAiBhC,GAAAgC,IAAgB0I,EAAMD,GAE3CA,EAAYxqF,MAAK,SAAA0qF,GAAA,IAGfF,EAAcE,EAAA1I,IACd0I,EAAA1I,IAAqB,GACrBwI,EAAYxqF,MAAK,SAAA2qF,GAEhBA,EAAGlyN,KAAKiyN,MAER,MAAOE,GACR7K,GAAA8B,IAAoB+I,EAAGF,EAAAzI,SAwL1B,SAAgBuD,GAASqF,EAAKC,EAAOC,GAAA,IAEjB,mBAAPF,EAAmBA,EAAIC,GAC7BD,EAAIltN,QAAUmtN,EAClB,MAAOE,GACRjL,GAAA8B,IAAoBmJ,EAAGD,IAYzB,SAAgBxF,GAAQ0F,EAAOC,EAAaC,GAA5C,IACKC,EAoBMC,EAAA,GAnBNtL,GAAQj4M,SAASi4M,GAAQj4M,QAAQmjN,IAEhCG,EAAIH,EAAMjtN,OACTotN,EAAEztN,SAAWytN,EAAEztN,UAAYstN,EAAApJ,KAAY2D,GAAS4F,EAAG,KAAMF,IAGjC,OAAzBE,EAAIH,EAAAlJ,KAA2B,IAC/BqJ,EAAExmG,qBAAA,IAEJwmG,EAAExmG,uBACD,MAAO0mG,GACRvL,GAAA8B,IAAoByJ,EAAGJ,GAIzBE,EAAErsK,KAAOqsK,EAAArH,IAAe,QAGpBqH,EAAIH,EAAAtJ,IAAA,IACC0J,EAAI,EAAGA,EAAID,EAAEn0N,OAAQo0N,IACzBD,EAAEC,IACL9F,GAAQ6F,EAAEC,GAAIH,EAAkC,mBAAdD,EAAM9lN,MAKtCgmN,GAA4B,MAAdF,EAAApJ,KAAoBlB,GAAWsK,EAAApJ,KAIlDoJ,EAAApJ,IAAaoJ,EAAAnJ,SAAA,EAId,SAAS+G,GAAS0C,EAAOnsN,EAAOosN,GAAA,OACxBh6M,KAAK3Z,YAAY0zN,EAAOC,GCpfhC,SAAgBC,GAAOC,EAAOC,EAAWC,GAAzC,IAMKC,EAOAC,EAUAC,EAtBAhM,GAAAj6E,IAAei6E,GAAAj6E,GAAc4lF,EAAOC,GAYpCG,GAPAD,EAAqC,mBAAhBD,GAQtB,KACCA,GAAeA,EAAAjK,KAA0BgK,EAAAhK,IAQzCoK,EAAc,GAClB/H,GACC2H,EARDD,IACGG,GAAeD,GACjBD,GAAAhK,IACab,GAAcqB,GAAU,KAAM,CAACuJ,IAS5CI,GAAY1L,GACZA,QAAA,IACAuL,EAAUzH,iBACT2H,GAAeD,EACb,CAACA,GACDE,EACA,KACAH,EAAUt4H,WACVysH,GAAMrnN,KAAKkzN,EAAUp3J,YACrB,KACHw3J,GACCF,GAAeD,EACbA,EACAE,EACAA,EAAAjK,IACA8J,EAAUt4H,WACbw4H,GAID1H,GAAW4H,EAAaL,GPrCZ5L,GAAQO,GAAUrmN,MCfzB+lN,GAAU,CAAA8B,IOJT,SAAqBmK,EAAOC,GAAA,QAE9BC,EAAWC,EAAMC,EAEbH,EAAQA,EAAAnmF,IAAA,IACVomF,EAAYD,EAAAlK,OAAsBmK,EAAApmF,GAAA,QAErCqmF,EAAOD,EAAUr0N,cAE4B,MAAjCs0N,EAAKrtG,2BAChBotG,EAAUz3F,SAAS03F,EAAKrtG,yBAAyBktG,IACjDI,EAAUF,EAAApK,KAGwB,MAA/BoK,EAAUntG,oBACbmtG,EAAUntG,kBAAkBitG,GAC5BI,EAAUF,EAAApK,KAIPsK,EAAA,OACKF,EAAAtD,IAA0BsD,EAElC,MAAOG,GACRL,EAAQK,EAAA,MAKLL,INjCHhM,GAAU,ECuBdqC,GAAUvqN,UAAU28H,SAAW,SAAS63F,EAAQC,GAAA,IAE3CC,EAEHA,EADsB,MAAnBh7M,KAAAs3M,KAA2Bt3M,KAAAs3M,MAAoBt3M,KAAKa,MACnDb,KAAAs3M,IAEAt3M,KAAAs3M,IAAkBvI,GAAO,CAAC,EAAG/uM,KAAKa,OAGlB,mBAAVi6M,IAGVA,EAASA,EAAO/L,GAAO,CAAC,EAAGiM,GAAIh7M,KAAKjW,QAGjC+wN,GACH/L,GAAOiM,EAAGF,GAIG,MAAVA,GAEA96M,KAAAywM,MACCsK,GAAU/6M,KAAAwwM,IAAsBrrN,KAAK41N,GACzCvJ,GAAcxxM,QAUhB6wM,GAAUvqN,UAAUulK,YAAc,SAASovD,GACtCj7M,KAAAywM,MAAAzwM,KAAAqwM,KAAA,EAKC4K,GAAUj7M,KAAAwwM,IAAsBrrN,KAAK81N,GACzCzJ,GAAcxxM,QAchB6wM,GAAUvqN,UAAUwyE,OAAS63I,GAyFzBlC,GAAgB,GAQdC,GACa,mBAAXv/M,QACJA,QAAQ7I,UAAUsG,KAAKskE,KAAK/hE,QAAQC,WACpCq5B,WA2CJipL,GAAAC,IAAyB,EM5NzB,IAAIuJ,GAAU,EAqBd,SAASC,GAAY5H,EAAM4B,EAAO7sN,EAAKgZ,EAAUoC,GAAA,IAK/C9V,EACAyT,EAFGoD,EAAkB,CAAC,EAAD,IAGjBpD,KAAK8zM,EACA,OAAL9zM,EACHzT,EAAMunN,EAAM9zM,GAEZoD,EAAgBpD,GAAK8zM,EAAM9zM,GAAA,IAIvBF,EAAQ,CACbxN,KAAA4/M,EACAxpN,MAAO0a,EACP7e,IAAA0C,EACAkE,IAAAoB,EAAAuiN,IACW,KAAA77E,GACF,KAAA87E,IACD,EAAAC,IACF,KAAAC,SAAA,EACIC,IACE,KAAAC,IACA,KACZnqN,iBAAA,EAAaoqN,MACAyK,GACbzvD,SAAAnqJ,EACAkqJ,OAAA9nJ,GAAA,GAKmB,mBAAT6vM,IAAwB3lN,EAAM2lN,EAAK13I,cAAA,IACxCx6D,KAAKzT,OAAA,IACE6W,EAAgBpD,KAC1BoD,EAAgBpD,GAAKzT,EAAIyT,IAAA,OAIxBktM,GAAQmC,OAAOnC,GAAQmC,MAAMvvM,GAC1BA,MCpDRi6M,GAAe,KAhBf,SAAax1N,EAAaW,GACxB,IACEkP,OAAOgf,aAAa,cAAD/lB,OAAe9I,IAAS8gB,KAAKC,UAAUpgB,GAC1D,MAAOgP,GAAQ,OAGnB,SAAa3P,GACX,IACE,MAAMW,EAAQkP,OAAOgf,aAAa,cAAD/lB,OAAe9I,IAEhD,GAAIW,EACF,OAAOmgB,KAAKe,MAAMlhB,GAEpB,MAAOgP,GAAQ,ICbnB,MAAM8lN,GAAQ,IAAIp8I,IACZq8I,GAAW,CACf,CAAExiL,EAAG,GAAIyiL,MAAO,gBACb,CAADziL,EAAG,KAAMyiL,MAAO,wCACR,CAARziL,EAAG,GAAIyiL,MAAO,gBACb,CAADziL,EAAG,KAAMyiL,MAAO,kCACV,CAANziL,EAAG,GAAIyiL,MAAO,gBACb,CAADziL,EAAG,GAAIyiL,MAAO,gBACb,CAADziL,EAAG,EAAGyiL,MAAO,gBACZ,CAADziL,EAAG,EAAGyiL,MAAO,kCACN,CAAPziL,EAAG,EAAGyiL,MAAO,gBACZ,CAADziL,EAAG,EAAGyiL,MAAO,4BACT,CAAJziL,EAAG,EAAGyiL,MAAO,iBAmBjB,SAASC,GAAYD,GACnB,GAAIF,GAAM3pI,IAAI6pI,GACZ,OAAOF,GAAM/iN,IAAIijN,GAGnB,MAAMp6D,EAAYs6D,GAAiBF,GAGnC,OAFAF,GAAM76M,IAAI+6M,EAAOp6D,GAEVA,EAIT,MAAMs6D,GAAmB,MACvB,IAAIzrN,EAAM,KACV,IACOmtD,UAAUzyB,UAAUn8B,SAAS,WAChCyB,EAAMyhC,SACHzgC,cAAc,UACd0qN,WAAW,KAAM,CAAEC,oBAAoB,KAE5C,MAAO,CAGT,IAAK3rN,EACH,MAAO,KAAM,EAGf,MACM4rN,EAAe,GACfC,EAAWx5M,KAAKC,MAAMw5M,MAQ5B,OALA9rN,EAAI+rN,KAAOF,EAAW,uBACtB7rN,EAAIgsN,aAAe,MACnBhsN,EAAIisN,OAAOnoH,MAAQ8nH,GACnB5rN,EAAIisN,OAAOloH,OARW,GAUdi3F,IACNh7L,EAAIksN,UAAU,EAAG,EAAGN,GAXA,IAcpB5rN,EAAImsN,UAAY,UAChBnsN,EAAIosN,SAASpxB,EAAS,EAAG,IAGzBh7L,EAAImsN,UAAY,UAChBnsN,EAAIosN,SAASpxB,EAAS4wB,EAAc,IAEpC,MAAMz6M,EAAInR,EAAIqsN,aAAa,EAAG,EAAGT,EArBb,IAqB0Cr8M,KACxDynC,EAAQ7lC,EAAE1b,OAChB,IAAIF,EAAI,EAGR,KAAOA,EAAIyhD,IAAU7lC,EAAE5b,EAAI,GAAIA,GAAK,GAGpC,GAAIA,GAAKyhD,EACP,OAAO,EAKT,MAAMh+C,EAAI4yN,EAAgBr2N,EAAK,EAAKq2N,EAC9B5xJ,EAAI3nD,KAAKC,MAAM/c,EAAI,EAAIq2N,GACvBx6M,EAAIpR,EAAIqsN,aAAarzN,EAAGghE,EAAG,EAAG,GAAGzqD,KAEvC,OAAI4B,EAAE5b,KAAO6b,EAAE,IAAMD,EAAE5b,EAAI,KAAO6b,EAAE,MAMhCpR,EAAIssN,YAAYtxB,GAASl3F,OAAS8nH,EAK3B,CAEd,EAnEwB,OAqEzBW,GAAe,eAjGf,WACE,IAAK,MAAMzjL,EAAEA,EAACyiL,MAAEA,KAAWD,GACzB,GAAIE,GAAYD,GACd,OAAOziL,kBAKb,WACE,OAAI0iL,GAAY,8BCrBlB,MAAMgB,GAAW,CACf,KACA,WACA,gBACA,aACA,WACA,+BACA,cACA,MACA,SACA,eACA,WACA,QACA,MACA,aACA,SAGF,IAAIC,GAAoB,SAwExBC,GAAe,KAtEf,SAAanB,GACXkB,KAAUA,GAAQrB,GAAM9iN,IAAI,eAAiB,CAAC,GAE9C,MAAMqkN,EAAUpB,EAAMznN,IAAMynN,EACvBoB,IAELF,GAAME,KAAaF,GAAME,GAAW,GACpCF,GAAME,IAAY,EAElBvB,GAAM56M,IAAI,OAAQm8M,GAClBvB,GAAM56M,IAAI,aAAci8M,UAG1B,SAAYtsN,GAA+B,IAA9BysN,gBAAEA,EAAeC,QAAEA,GAAS1sN,EACvC,IAAKysN,EAAiB,MAAO,GAE7BH,KAAUA,GAAQrB,GAAM9iN,IAAI,eAC5B,IAAIwkN,EAAW,GAEf,IAAKL,GAAO,CACVA,GAAQ,CAAC,EAET,IAAK,IAAIl3N,KAAKi3N,GAASh0N,MAAM,EAAGq0N,GAAU,CACxC,MAAMF,EAAUH,GAASj3N,GAEzBk3N,GAAME,GAAWE,EAAUt3N,EAC3Bu3N,EAAS33N,KAAKw3N,GAGhB,OAAOG,EAGT,MAAM1sL,EAAMwsL,EAAkBC,EACxBl8I,EAAOy6I,GAAM9iN,IAAI,QAEvB,IAAK,IAAIqkN,KAAWF,GAClBK,EAAS33N,KAAKw3N,GAchB,GAXAG,EAAStkL,MAAK,CAACr3B,EAAGC,KAChB,MAAM27M,EAASN,GAAMr7M,GACf47M,EAASP,GAAMt7M,GAErB,OAAI47M,GAAUC,EACL77M,EAAEmuE,cAAcluE,GAGlB27M,EAASC,CAAM,IAGpBF,EAASr3N,OAAS2qC,EAAK,CACzB,MAAM6sL,EAAaH,EAASt0N,MAAM4nC,GAClC0sL,EAAWA,EAASt0N,MAAM,EAAG4nC,GAE7B,IAAK,IAAI8sL,KAAaD,EAChBC,GAAav8I,UACV87I,GAAMS,GAGXv8I,IAAmC,GAA3Bm8I,EAASj2N,QAAQ85E,YACpB87I,GAAMK,EAASA,EAASr3N,OAAS,IACxCq3N,EAASj2K,QAAQ,EAAG,EAAG85B,IAGzBy6I,GAAM56M,IAAI,aAAci8M,IAG1B,OAAOK,YAGkBN,UC7F3BW,GAAiBz2M,KAAKe,MAAM,kkBCA5B,IAAA21M,GAAe,CACb1rG,UAAW,CACTnrH,OAAO,GAET82N,aAAc,CACZ92N,OAAO,GAET+2N,kBAAmB,CACjB/2N,MAAO,MAETg3N,kBAAmB,CACjBh3N,MAAO,QAETi3N,gBAAiB,CACfj3N,MAAO,IAETk3N,UAAW,CACTl3N,MAAO,IAETm3N,aAAc,CACZn3N,MAAO,GACPo3N,QAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,KAAM,GAAI,KAAM,KAEnDC,aAAc,CACZr3N,MAAO,IAET+xJ,MAAO,CACL/xJ,MAAO,OACPo3N,QAAS,CAAC,OAAQ,UAAW,UAE/B7jJ,OAAQ,CACNvzE,MAAO,KACPo3N,QAAS,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAGJf,gBAAiB,CACfr2N,MAAO,GAETs3N,YAAa,CACXt3N,MAAO,MACPo3N,QAAS,CAAC,MAAO,SAAU,SAE7BG,eAAgB,CACdv3N,OAAO,GAETw3N,eAAgB,CACdx3N,MAAO,MAETs2N,QAAS,CACPt2N,MAAO,GAETy3N,aAAc,CACZz3N,MAAO,MAET03N,gBAAiB,CACf13N,MAAO,SACPo3N,QAAS,CAAC,MAAO,SAAU,SAE7BO,eAAgB,CACd33N,MAAO,SACPo3N,QAAS,CAAC,SAAU,SAAU,SAEhCn9M,IAAK,CACHja,MAAO,SACPo3N,QAAS,CAAC,SAAU,QAAS,WAAY,SAAU,YAErDQ,KAAM,CACJ53N,MAAO,EACPo3N,QAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAE3BS,iBAAkB,CAChB73N,MAAO,UACPo3N,QAAS,CAAC,UAAW,SAAU,SAEjC5tF,MAAO,CACLxpI,MAAO,OACPo3N,QAAS,CAAC,OAAQ,QAAS,SAI7BU,WAAY,KACZC,cAAe,KACfnkD,OAAQ,KACR56J,KAAM,KACNg/M,KAAM,KAGNC,YAAa,KACbC,kBAAmB,KACnBC,iBAAkB,KAClBC,eAAgB,KAChBC,cAAe,KAGfC,aAAc,CACZC,YAAY,EACZv4N,OAAO,IC5GJ,IAAIw4N,GAAO,KACPC,GAAO,KAElB,MAAMC,GAAa,CAAC,EACpBn7J,eAAeo7J,GAAUlxJ,GACvB,GAAIixJ,GAAWjxJ,GACb,OAAOixJ,GAAWjxJ,GAGpB,MAAM71C,QAAiBu0J,MAAM1+G,GACvB4+G,QAAaz0J,EAASy0J,OAG5B,OADAqyC,GAAWjxJ,GAAO4+G,EACXA,EAGT,IAAIuyC,GAAgC,KAEhCC,GAAe,KACfC,IAAc,EAEX,SAASC,GAAKrxN,GAA0B,IAAjBsxN,OAAEA,GAAQ/5N,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EAc1C,OAbA25N,KACGA,GAAU,IAAIhwN,SAASC,IACtBgwN,GAAehwN,CAAO,KAGtBnB,EAWN61D,eAAqB/5D,GACnBs1N,IAAc,EAEd,IAAI3B,aAAEA,EAAYl9M,IAAEA,EAAGs5D,OAAEA,GAAW/vE,EAKpC,GAJA2zN,IAAiBA,EAAeN,GAAYM,aAAan3N,OACzDia,IAAQA,EAAM48M,GAAY58M,IAAIja,OAC9BuzE,IAAWA,EAASsjJ,GAAYtjJ,OAAOvzE,OAElCy4N,GA0BHA,GAAKX,WAAaW,GAAKX,WAAWt5N,QAAQyc,MACrBA,EAAE/Y,WA3Bd,CACTu2N,IACyB,oBAAfj1N,EAAMwV,WAA4BxV,EAAMwV,OAASxV,EAAMwV,aACxD2/M,GAAU,6DAADxwN,OAC+CgvN,EAAY,KAAAhvN,OAAI8R,EAAG,UAGpFw+M,GAAKQ,UAAY,CAAC,EAClBR,GAAKS,QAAU,CAAC,EAEhBT,GAAKX,WAAW5zM,QAAQ,CACtB3W,GAAI,WACJ4rN,OAAQ,KAGV,IAAK,MAAMl/I,KAASw+I,GAAK5yB,QAAS,CAChC,MAAMuwB,EAAUqC,GAAK5yB,QAAQ5rH,GACvB+6I,EAAQyD,GAAKU,OAAO/C,GACrBpB,IAELA,EAAMnvB,UAAYmvB,EAAMnvB,QAAU,IAClCmvB,EAAMnvB,QAAQjnM,KAAKq7E,IAGrBw+I,GAAKW,mBAAqBX,GAAKX,WAkBjC,GARAU,IACyB,oBAAfh1N,EAAMw0N,WAA4Bx0N,EAAMw0N,OAASx0N,EAAMw0N,QACpD,MAAVzkJ,EACG8lJ,GAAAzC,UACM+B,GAAU,6DAADxwN,OACgDorE,EAAM,WAGvE/vE,EAAMowK,OACR,IAAK,IAAI50K,KAAKwE,EAAMowK,OAAQ,CAC1B50K,EAAIw7B,SAASx7B,GACb,MAAMs6N,EAAW91N,EAAMowK,OAAO50K,GACxBu6N,EAAe/1N,EAAMowK,OAAO50K,EAAI,GAEtC,GAAKs6N,EAASH,QAAWG,EAASH,OAAOj6N,OAAzC,CAEAo6N,EAAS/rN,KAAO+rN,EAAS/rN,GAAK,UAAHpF,OAAanJ,EAAI,IAC5Cs6N,EAASp3N,OAASo3N,EAASp3N,KAAOs2N,GAAKV,WAAWlkD,QAE9C2lD,IAAiBD,EAASvkJ,OAC5BukJ,EAASv6N,OAASw6N,EAAax6N,QAAUw6N,GAG3Cd,GAAKX,WAAWl5N,KAAK06N,GAErB,IAAK,MAAMtE,KAASsE,EAASH,OAC3BV,GAAKU,OAAOnE,EAAMznN,IAAMynN,CAZ+B,EAiBzDxxN,EAAMs0N,aACRW,GAAKX,WAAaW,GAAKW,mBACpB56N,QAAQyc,IACmC,GAAnCzX,EAAMs0N,WAAWx3N,QAAQ2a,EAAE1N,MAEnC0kC,MAAK,CAACo+K,EAAImB,IACEhuN,EAAMs0N,WAAWx3N,QAAQ+vN,EAAG9iN,IAC5B/J,EAAMs0N,WAAWx3N,QAAQkxN,EAAGjkN,OAM7C,IAAIisN,EAAuB,KACvBjC,EAAiB,KACV,UAAPt9M,IACFu/M,EAAuBxD,GAAcyD,gBACrClC,EAAiB/zN,EAAM+zN,gBAAkBvB,GAAcuB,kBAGzD,IAAImC,EAAgBjB,GAAKX,WAAW54N,OAChCy6N,GAAmB,EACvB,KAAOD,KAAiB,CACtB,MAAMJ,EAAWb,GAAKX,WAAW4B,GAEjC,GAAmB,YAAfJ,EAAS/rN,GAAkB,CAC7B,IAAI8oN,gBAAEA,EAAeC,QAAEA,GAAY9yN,EAEnC6yN,EACEA,GAAmB,EACfA,EACAQ,GAAYR,gBAAgBr2N,MAClCs2N,IAAYA,EAAUO,GAAYP,QAAQt2N,OAE1Cs5N,EAASH,OAAShD,GAAepkN,IAAI,iBAAEskN,UAAiBC,IAG1D,IAAKgD,EAASH,SAAWG,EAASH,OAAOj6N,OAAQ,CAC/Cu5N,GAAKX,WAAWx3K,OAAOo5K,EAAe,GACtC,SAGF,MAAM3B,cAAEA,GAAkBv0N,EAC1B,GAAIu0N,EAAe,CACjB,MAAMhjJ,EAAOgjJ,EAAcuB,EAAS/rN,IAChCwnE,IAASukJ,EAASvkJ,OACpBukJ,EAASvkJ,KAAOA,GAIpB,IAAI6kJ,EAAaN,EAASH,OAAOj6N,OACjC,KAAO06N,KAAc,CACnB,MAAMxD,EAAUkD,EAASH,OAAOS,GAC1B5E,EAAQoB,EAAQ7oN,GAAK6oN,EAAUqC,GAAKU,OAAO/C,GAE3CyD,EAASA,KACbP,EAASH,OAAO74K,OAAOs5K,EAAY,EAAE,EAGvC,IACG5E,GACAxxN,EAAM6zN,cAAgB7zN,EAAM6zN,aAAarvN,SAASgtN,EAAMznN,IAEzDssN,SAIF,GAAIL,GAAwBxE,EAAM7rN,QAAUqwN,EAC1CK,SAIF,IAAItC,GAAiC,SAAf+B,EAAS/rN,IACxBusN,GAAU9xN,SAASgtN,EAAMznN,KAMhC,IAAKynN,EAAMjzM,OAAQ,CAwBjB,GAvBA43M,GAAmB,EACnB3E,EAAMjzM,OACJ,IACA,CACE,CAACizM,EAAMznN,IAAI,GACX,CAACynN,EAAM9yN,MAAM,GACb,CAAC8yN,EAAM+E,UAAU,GACjB,CAAC/E,EAAMiE,WAAW,IAEjB7kM,KAAIppB,IAAsB,IAApB6lI,EAAS9vH,GAAM/V,EACpB,GAAK6lI,EACL,OAAQ5vI,MAAMC,QAAQ2vI,GAAWA,EAAU,CAACA,IACzCz8G,KAAK9vB,IACIyc,EAAQzc,EAAOyc,MAAM,aAAe,CAACzc,IAAS8vB,KACnDtZ,GAAMA,EAAEvC,kBAGZyhN,MAAM,IAEVA,OACAx7N,QAAQoc,GAAMA,GAAKA,EAAEgtC,SACrB75B,KAAK,KAENinM,EAAMiE,UACR,IAAK,MAAMgB,KAAYjF,EAAMiE,UACvBR,GAAKQ,UAAUgB,KACnBxB,GAAKQ,UAAUgB,GAAYjF,EAAMznN,IAIrC,IAAI2sN,EAAY,EAChB,IAAK,MAAMtC,KAAQ5C,EAAMmF,MAAO,CAC9B,IAAKvC,EAAM,SACXsC,IAEA,MAAM55E,OAAEA,GAAWs3E,EACft3E,IACFm4E,GAAKS,QAAQ54E,GAAU00E,EAAMznN,GAC7BynN,EAAMjzM,QAAU,IAAJ5Z,OAAQm4I,IAGtB,MAAM85E,EACS,GAAbF,EAAiB,GAAK,cAAH/xN,OAAiB+xN,EAAS,KAC/CtC,EAAKyC,WAAa,IAAHlyN,OAAO6sN,EAAMznN,GAAE,KAAApF,OAAIiyN,UAjDlCP,KAuDJF,GACFW,GAAYvhC,QAGd8/B,KAxNE0B,CAAM7yN,GACGsxN,IAAWF,IACpB7wN,QAAQC,KAAK,IAADC,OACL6wN,EAAM,6FAIRJ,GAoNF,SAAS4B,GAASh3N,EAAO8xE,EAAc5wE,GAC5ClB,IAAUA,EAAQ,CAAC,GAEnB,MAAM8+K,EAAS,CAAC,EAChB,IAAK,IAAIllK,KAAKk4D,EACZgtG,EAAOllK,GAAKq9M,GAAQr9M,EAAG5Z,EAAO8xE,EAAc5wE,GAG9C,OAAO49K,EAGF,SAASm4C,GAAQh3N,EAAUD,EAAO8xE,EAAc5wE,GACrD,MAAMg2N,EAAWplJ,EAAa7xE,GAC9B,IAAIzD,EACF0E,GAAYA,EAAQg4D,aAAaj5D,KACb,MAAnBD,EAAMC,SAAwC+E,GAAnBhF,EAAMC,GAC9BD,EAAMC,GACN,MAEN,OAAKi3N,GAKM,MAAT16N,GACA06N,EAAS16N,cACF06N,EAAS16N,cAAgBA,IAG9BA,EAD2B,kBAAlB06N,EAAS16N,MACD,SAATA,EAEA06N,EAAS16N,MAAMF,YAAYE,IAInC06N,EAAS1mI,WAAah0F,IACxBA,EAAQ06N,EAAS1mI,UAAUh0F,KAIlB,MAATA,GACC06N,EAAStD,UAA+C,GAApCsD,EAAStD,QAAQ92N,QAAQN,MAE9CA,EAAQ06N,EAAS16N,OAGZA,GA1BEA,ECjRX,IAAI26N,GAAO,SA8EXL,GAAe,QA5Df/8J,eAAsBv9D,GAAoC,IAA7B46N,WAAEA,EAAU5B,OAAEA,GAAQ/5N,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EACrD,IAAKe,IAAUA,EAAM4nD,OAAO1oD,OAAQ,OAAO,KAC3C07N,IAAeA,EAAa,UAEtB7B,GAAK,KAAM,CAAEC,OAAQA,GAAU,uBAErC,MAAMpkM,EAAS50B,EACZuY,cACAmH,QAAQ,QAAS,OACjBqB,MAAM,WACNviB,QAAO,CAACq8N,EAAM77N,EAAG87N,IACTD,EAAKjzK,QAAUkzK,EAAMx6N,QAAQu6N,IAAS77N,IAGjD,IAAK41B,EAAO11B,OAAQ,OAEpB,IACIy7C,EAASogL,EADTC,EAAOL,KAASA,GAAOt8N,OAAOu2B,OAAO6jM,GAAKU,SAG9C,IAAK,MAAM8B,KAASrmM,EAAQ,CAC1B,IAAKomM,EAAK97N,OAAQ,MAElBy7C,EAAU,GACVogL,EAAS,CAAC,EAEV,IAAK,MAAM/F,KAASgG,EAAM,CACxB,IAAKhG,EAAMjzM,OAAQ,SACnB,MAAM02J,EAAQu8C,EAAMjzM,OAAOzhB,QAAQ,IAAD6H,OAAK8yN,KACzB,GAAVxiD,IAEJ99H,EAAQ/7C,KAAKo2N,GACb+F,EAAO/F,EAAMznN,MAAQwtN,EAAO/F,EAAMznN,IAAM,GACxCwtN,EAAO/F,EAAMznN,KAAOynN,EAAMznN,IAAM0tN,EAAQ,EAAIxiD,EAAQ,GAGtDuiD,EAAOrgL,EAGT,OAAIA,EAAQz7C,OAAS,IAIrBy7C,EAAQ1I,MAAK,CAACr3B,EAAGC,KACf,MAAM27M,EAASuE,EAAOngN,EAAErN,IAClBkpN,EAASsE,EAAOlgN,EAAEtN,IAExB,OAAIipN,GAAUC,EACL77M,EAAErN,GAAGw7E,cAAcluE,EAAEtN,IAGvBipN,EAASC,CAAM,IAGpB97K,EAAQz7C,OAAS07N,IACnBjgL,EAAUA,EAAQ14C,MAAM,EAAG24N,KAfpBjgL,OAvDX,SAAay7K,GACX,OAAIA,EAAQ7oN,GACH6oN,EAIPqC,GAAKU,OAAO/C,IACZqC,GAAKU,OAAOV,GAAK5yB,QAAQuwB,KACzBqC,GAAKU,OAAOV,GAAKS,QAAQ9C,WAI7B,WACEuE,GAAO,uBAhBgB,6CCGlB,MAAMb,GAAY,CACvB,iBACA,gBACA,cACA,eACA,mBACA,0BACA,oBACA,qBCZK,SAASoB,GAAUtgN,EAAQC,GAChC,OACE5Z,MAAMC,QAAQ0Z,IACd3Z,MAAMC,QAAQ2Z,IACdD,EAAE1b,SAAW2b,EAAE3b,QACf0b,EAAEpT,OAAM,CAACwmB,EAAKK,IAAUL,GAAOnT,EAAEwT,KAI9BkvC,eAAe49J,KAAkB,IAAZC,EAAMn8N,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,EACnC,IAAK,IAAIgvB,IAAK,IAAIhtB,MAAMm6N,GAAQh9N,cACxB,IAAIwK,QAAQ+vL,uBAIf,SAAS0iC,GAAarG,GAA+B,IAAxB,UAAEkF,EAAY,GAAGj7N,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EACvD,MAAM24N,EACJ5C,EAAMmF,MAAMD,KAEVA,EAAY,EACLlF,EAAMmF,MAAMD,IAGjBoB,EAAiB,CACrB/tN,GAAIynN,EAAMznN,GACVrL,KAAM8yN,EAAM9yN,KACZo+I,OAAQs3E,EAAKt3E,OACbi7E,QAAS3D,EAAK2D,QACdxB,SAAU/E,EAAM+E,SAChBM,WAAYzC,EAAKyC,YAAcrF,EAAMqF,YAmBvC,OAhBIrF,EAAMmF,MAAMj7N,OAAS,IACvBo8N,EAAU1D,KAAOsC,EAAY,GAG3BtC,EAAKnwJ,MACP6zJ,EAAU7zJ,IAAMmwJ,EAAKnwJ,KAGnButJ,EAAMnvB,SAAWmvB,EAAMnvB,QAAQ3mM,SACjCo8N,EAAUz1B,QAAUmvB,EAAMnvB,SAGxBmvB,EAAMiE,WAAajE,EAAMiE,UAAU/5N,SACrCo8N,EAAUrC,UAAYjE,EAAMiE,WAGvBqC,MC8FTE,GAAe,YAhJI,CACjBvgC,SAAU,CACRwgC,QACE7G,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,qBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,8tBAGZqjL,MACEq2B,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,uBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,skCAKd04J,OACEghD,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,uBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,umBAIZ0mF,MAAO,CACL65H,QACE7G,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,qBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,sKAGZqjL,MACEq2B,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,uBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,saAKdwgN,MAAO,CACLD,QACE7G,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,qBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,u1BAGZqjL,MACEq2B,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,uBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,49DAKdygN,SAAU,CACRF,QACE7G,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,sBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,2CACR05M,GAAC,OAAI,CAAC15M,EAAE,qJAGZqjL,MACEq2B,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,uBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,+TAKd0gN,OAAQ,CACNH,QACE7G,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,sBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,6GACR05M,GAAC,OAAI,CAAC15M,EAAE,whDAGZqjL,MACEq2B,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,uBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,ouBAKdk1J,QAAS,CACPqrD,QACE7G,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,sBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,oXACR05M,GAAC,OAAI,CAAC15M,EAAE,ojBAGZqjL,MACEq2B,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,uBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,8oBAKd2gN,OAAQ,CACNJ,QACE7G,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,sBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,kJACR05M,GAAC,OAAI,CAAC15M,EAAE,gLAGZqjL,MACEq2B,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,uBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,khBAKd4gN,OAAQ,CACNL,QACE7G,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,sBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,wSACR05M,GAAC,OAAI,CAAC15M,EAAE,2rBAGZqjL,MACEq2B,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,uBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,ipBAKd3c,QAAS,CACPk9N,QACE7G,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,qBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,+4CAGZqjL,MACEq2B,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,uBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,65CAMD,CACb6gN,MACEnH,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,qBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,wGAIZwb,OACEk+L,GAAC,MAAG,CAACv7B,MAAM,6BAA6BD,QAAQ,qBAC9Cw7B,GAAC,OAAI,CAAC15M,EAAE,0JCxIC,SAAA8gN,GAAex4N,GAC5B,IAAI+J,GAAEA,EAAEqqN,KAAEA,EAAI5C,MAAEA,GAAUxxN,EAE1B,GAAIA,EAAM62N,WAAY,CACpB,MAAM9nK,EAAU/uD,EAAM62N,WAAW16M,MAAM26M,GAAY2B,kBAE/C1pK,IACFhlD,EAAKglD,EAAQ,GAETA,EAAQ,KACVqlK,EAAOrlK,EAAQ,KAMrB,GADAyiK,IAAUA,EAAQsF,GAAYvoN,IAAIxE,GAAM/J,EAAM88I,UACzC00E,EAAO,OAAOxxN,EAAMgmH,SAEzB,MAAM0yG,EAAYlH,EAAMmF,MAAMvC,EAAO,IAAM5C,EAAMmF,MAAM,GAEjDgC,EACJD,EAAUz0J,MACI,UAAbjkE,EAAMyW,KAAoBzW,EAAM44N,iBAI7B5zN,EAH6B,oBAAtBhF,EAAMy0N,YACXz0N,EAAMy0N,YAAYz0N,EAAMyW,IAAKiiN,EAAUX,SAAQ,iDAAApzN,OACE3E,EAAMyW,IAAG,gBAAA9R,OAAe3E,EAAMyW,IAAG,QAAA9R,OAAO+zN,EAAUX,QAAO,SAG5Gc,EAC+B,oBAA5B74N,EAAM00N,kBACT10N,EAAM00N,kBAAkB10N,EAAMyW,KAAI,iDAAA9R,OACe3E,EAAMyW,IAAG,gBAAA9R,OAAe3E,EAAMyW,IAAG,sBAExF,OACE26M,GAAC,OAAI,CAACloC,MAAM,mBAAmB,iBAAgBlpL,EAAMyW,aAClDkiN,EACCvH,GAAC,MAAG,CACFx/I,MAAO,CACLw1G,SAAUpnL,EAAM8zD,MAAQ,MACxBglK,UAAW94N,EAAM8zD,MAAQ,MACzBg2D,QAAS,gBAEXg4D,IAAK42C,EAAU57E,QAAU47E,EAAU7B,WACnC5yJ,IAAK00J,IAEQ,UAAb34N,EAAMyW,IACR26M,GAAC,OAAI,CACHx/I,MAAO,CACLmwG,SAAU/hL,EAAM8zD,KAChB+2H,WACE,sJAGH6tC,EAAU57E,SAGbs0E,GAAC,OAAI,CACHx/I,MAAO,CACLk4C,QAAS,QACT/f,MAAO/pG,EAAM8zD,KACbk2C,OAAQhqG,EAAM8zD,KACdu0H,gBAAiB,OAAF1jL,OAASk0N,EAAc,KACtCE,eAAgB,GAAFp0N,OAAK,IAAMswN,GAAK+D,MAAMC,KAAI,MAAAt0N,OACtC,IAAMswN,GAAK+D,MAAM9sC,KAAI,KAEvBgtC,mBAAoB,GAAFv0N,OAChB,KAAQswN,GAAK+D,MAAMC,KAAO,GAAMP,EAAUz5N,EAAC,MAAA0F,OACxC,KAAQswN,GAAK+D,MAAM9sC,KAAO,GAAMwsC,EAAUz4J,EAAC,UCnE5D,MAAMk5J,GACc,qBAAXztN,QAA0BA,OAAOs/H,YACpCt/H,OAAOs/H,YACPnwI,OAES,MAAMu+N,WAAoBD,GACvC,6BAAWE,GACT,OAAOx+N,OAAOD,KAAKqb,KAAKqjN,OAgB1BtyN,MAAAA,GAAmB,IAAZhH,EAAKvE,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EACd,IAAK,IAAIme,KAAK5Z,EACZiW,KAAKsjN,yBAAyB3/M,EAAG,KAAM5Z,EAAM4Z,IAIjD2/M,wBAAAA,CAAyBtyI,EAAMx8D,EAAG2jH,GAChC,IAAKn4H,KAAKs3H,UAAW,OAErB,MAAM/wI,EAAQy6N,GACZhwI,EACA,CAAE,CAACA,GAAOmnD,GACVn4H,KAAK3Z,YAAYg9N,MACjBrjN,MAGEA,KAAKs3H,UAAUtxB,0BACjBhmG,KAAKs3H,UAAUtxB,0BAA0B,CAAE,CAACh1B,GAAOzqF,KAEnDyZ,KAAKs3H,UAAUvtI,MAAMinF,GAAQzqF,EAC7ByZ,KAAKs3H,UAAUu0B,eAInB03D,oBAAAA,GACEvjN,KAAKwjN,cAAe,EAEhBxjN,KAAKs3H,WAAat3H,KAAKs3H,UAAUmsF,YACnCzjN,KAAKs3H,UAAUmsF,aAzCnBp9N,WAAAA,GAAwB,IAAZ0D,EAAKvE,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EAInB,GAHAw4H,QACAh+G,KAAKjW,MAAQA,EAETA,EAAM+uI,QAAU/uI,EAAMyC,IAAK,CAC7B,IAAIA,EAAM,KACV,MAAMssI,EAAS/uI,EAAM+uI,SAAWtsI,EAAMzC,EAAMyC,KAAOzC,EAAMyC,IAAIL,SAEzDK,IAAKA,EAAIo1F,UAAY,IACrBk3C,GAAQA,EAAOv+D,YAAYv6D,QCnBtB,MAAM0jN,WAAsBP,GAQzCQ,SAAAA,GACE3jN,KAAK4jN,aAAa,CAAE9kM,KAAM,SAG5B+kM,YAAAA,CAAanvE,GACX,IAAKA,EAAQ,OAEb,MAAM/4E,EAAQlqC,SAASzgC,cAAc,SACrC2qE,EAAMhZ,YAAc+xF,EAEpB10I,KAAK8jN,WAAWxpJ,aAAaqB,EAAO37D,KAAK8jN,WAAWjiI,YAjBtDx7F,WAAAA,CAAY0D,GAAwB,IAAjB2qJ,OAAEA,GAAQlvJ,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC/Bw4H,MAAMj0H,GAENiW,KAAK2jN,YACL3jN,KAAK6jN,aAAanvE,QCNtBqvE,GAAe,CACbh0G,SAAU,GACVj8G,GAAI,GACJ+yI,OAAQ,GACR+5E,WAAY,GACZ/iK,KAAM,CACJt3D,MAAO,GACPg0F,UAAYh0F,GAEL,KAAKoC,KAAKpC,GAIRA,EAHE,GAAPmI,OAAUnI,EAAK,OAQrBia,IAAK48M,GAAY58M,IACjB29M,KAAMf,GAAYe,MCdL,MAAM6F,WAAqBb,GAOxC,uBAAMc,GACJ,MAAMl6N,EAAQg3N,GAAS/gN,KAAKjW,MAAOg6N,GAAY/jN,MAC/CjW,EAAMkB,QAAU+U,KAChBjW,EAAMyC,IAAO8qI,IACXt3H,KAAKs3H,UAAYA,CAAS,QAGtBgoF,KACFt/M,KAAKwjN,cAETvJ,GAAOkB,GAACoH,GAAK,IAAKx4N,IAAWiW,MAd/B3Z,WAAAA,CAAY0D,GACVi0H,MAAMj0H,IAHRskN,GADmB2V,GACZ,QAAQD,IAoBa,qBAAnBG,gBAAmCA,eAAe5rN,IAAI,aAC/D4rN,eAAej2D,OAAO,WAAY+1D,IC1BpC,IAGIG,GAeAC,GATAC,GAAoB,GAEpBC,GAAgB/V,GAAA6B,IAChBmU,GAAkBhW,GAAAoD,IAClB6S,GAAejW,GAAQuK,OACvB2L,GAAYlW,GAAAgC,IACZmU,GAAmBnW,GAAQj4M,QA+Q/B,SAASquN,KAAA,IACJ5P,EAAA,IAEJsP,GAAkB7rL,MAAK,SAACw5K,EAAG0G,GAAA,OAAM1G,EAAAvB,IAAAL,IAAkBsI,EAAAjI,IAAAL,OAC5C2E,EAAYsP,GAAkBhtL,OAAA,GAC/B09K,EAAAxC,IAAA,IAEJwC,EAAA6P,IAAApU,IAAkC7qN,QAAQk/N,IAC1C9P,EAAA6P,IAAApU,IAAkC7qN,QAAQm/N,IAC1C/P,EAAA6P,IAAApU,IAAoC,GACnC,MAAOe,GACRwD,EAAA6P,IAAApU,IAAoC,GACpCjC,GAAA8B,IAAoBkB,EAAGwD,EAAAtE,MAtR1BlC,GAAA6B,IAAgB,SAAAyC,GACfsR,GAAmB,KACfG,IAAeA,GAAczR,IAGlCtE,GAAAoD,IAAkB,SAAAsC,GACbsQ,IAAiBA,GAAgBtQ,GAGtB,MAET6B,GAHNqO,GAAmBlQ,EAAA1D,KAAAqU,IAIf9O,IACHA,EAAAtF,IAAsB7qN,QAAQk/N,IAC9B/O,EAAAtF,IAAsB7qN,QAAQm/N,IAC9BhP,EAAAtF,IAAwB,KAI1BjC,GAAQuK,OAAS,SAAAjD,GACZ2O,IAAcA,GAAa3O,GAAA,IAEzBY,EAAIZ,EAAAtF,IACNkG,GAAKA,EAAAmO,KAAanO,EAAAmO,IAAApU,IAA0B/qN,SAsSzB,IArSX4+N,GAAkBl/N,KAAKsxN,IAqSP2N,KAAY7V,GAAQrvB,yBAC/CklC,GAAU7V,GAAQrvB,wBAvBpB,SAAwBs1B,GAAA,IAQnB+B,EAPErE,EAAO,WACZp0G,aAAa04G,GACTuO,IAAS5lC,qBAAqBo3B,GAClC9tL,WAAW+rL,IAENgC,EAAU/tL,WAAWypL,EAhTR,KAmTf6S,KACHxO,EAAMr3B,sBAAsBgzB,MAcAyS,KArS7BR,GAAmB,MAGpB5V,GAAAgC,IAAkB,SAACoH,EAAO5E,GACzBA,EAAYvkF,MAAK,SAAAorF,GAAA,IAEfA,EAAApJ,IAA2B7qN,QAAQk/N,IACnCjL,EAAApJ,IAA6BoJ,EAAApJ,IAA2BzrN,QAAO,SAAA2vN,GAAA,OAC9DA,EAAApgF,IAAYwwF,GAAapQ,MAEzB,MAAOkD,GACR7E,EAAYvkF,MAAK,SAAAmmF,GACZA,EAAAnE,MAAoBmE,EAAAnE,IAAqB,OAE9CuC,EAAc,GACdxE,GAAA8B,IAAoBuH,EAAGgC,EAAAnJ,SAIrBgU,IAAWA,GAAU9M,EAAO5E,IAGjCxE,GAAQj4M,QAAU,SAAA8jN,GACbsK,IAAkBA,GAAiBtK,GAAA,IAIlCjG,EAFC0F,EAAIO,EAAA7J,IACNsJ,GAAKA,EAAA+K,MAER/K,EAAA+K,IAAAtwF,GAAgB3uI,SAAQ,SAAA2yN,GAAA,IAEtBuM,GAAcvM,GACb,MAAOjD,GACRlB,EAAakB,MAGXlB,GAAY5F,GAAA8B,IAAoB8D,EAAY0F,EAAApJ,OA8NlD,IAAIsU,GAA0C,mBAAzB7lC,sBA2CrB,SAAS2lC,GAAcpP,GAAA,IAGhBuP,EAAOb,GACT9J,EAAU5E,EAAAlF,IACQ,mBAAX8J,IACV5E,EAAAlF,SAAA,EACA8J,KAED8J,GAAmBa,EAOpB,SAASF,GAAa5O,GAAA,IAGf0E,EAAOuJ,GACbjO,EAAA3F,IAAgB2F,EAAA5hF,KAChB6vF,GAAmBvJ,EC3Wb,SAASqK,GAAOjW,EAAKpqM,GAAA,IACtB,IAAIuwM,KAAKvwM,EAAOoqM,EAAImG,GAAKvwM,EAAMuwM,GAAA,OACPnG,EASvB,SAASkW,GAAe9V,EAAGvqM,GAAA,IAC5B,IAAI8xM,KAAKvH,EAAA,GAAa,aAANuH,KAAsBA,KAAK9xM,GAAI,OAAO,MACtD,IAAI6qM,KAAK7qM,EAAA,GAAa,aAAN6qM,GAAoBN,EAAEM,KAAO7qM,EAAE6qM,GAAI,OAAO,WCdzD,SAASyV,GAAcrV,GAAA,KACxB/lN,MAAQ+lN,GAEdqV,GAAc7+N,UAAY,IAAIuqN,IAENlrG,sBAAA,EACxBw/G,GAAc7+N,UAAUo/G,sBAAwB,SAASurG,EAAOoD,GAAA,OACxD6Q,GAAellN,KAAKjW,MAAOknN,IAAUiU,GAAellN,KAAKa,MAAOwzM,ICVxE,IAAI+Q,GAAc7W,GAAA6B,IAClB7B,GAAA6B,IAAgB,SAAAiB,GACXA,EAAM19M,MAAQ09M,EAAM19M,KAAA0xN,KAAmBhU,EAAM7kN,MAChD6kN,EAAMtnN,MAAMyC,IAAM6kN,EAAM7kN,IACxB6kN,EAAM7kN,IAAM,MAET44N,IAAaA,GAAY/T,IAIX,oBAAVlrN,QACPA,OAAO2wE,KACP3wE,OAAO2wE,IAAI,qBAkCL,IC9CFwuJ,GAAgB/W,GAAA8B,IACtB9B,GAAA8B,IAAsB,SAASwC,EAAO8E,EAAU4N,GAAA,GAC3C1S,EAAMjmN,KAAA,QAEL0nN,EACApF,EAAQyI,EAEJzI,EAAQA,EAAA56E,IAAA,IACVggF,EAAYpF,EAAAqB,MAAqB+D,EAAA/D,IAAA,OAChB,MAAjBoH,EAAAtH,MACHsH,EAAAtH,IAAgBkV,EAAAlV,IAChBsH,EAAAxH,IAAqBoV,EAAApV,KAGfmE,EAAA/D,IAA2BsC,EAAO8E,GAI5C2N,GAAczS,EAAO8E,EAAU4N,IAGhC,IAAMC,GAAajX,GAAQj4M,QAuE3B,SAAgBmvN,KAAA,KAAAC,IAEgB,OAC1BpkN,EAAc,UAAA8uM,IACQ,KAoIrB,SAASuV,GAAU1R,GAAA,IAErB2F,EAAY3F,EAAA3/E,GAAAi8E,IAAA,OACTqJ,GAAaA,EAAAvJ,KAAwBuJ,EAAAvJ,IAAqB4D,GCjOlE,SAAgB2R,KAAA,KACVnhN,EAAQ,UACRtc,EAAO,KDcbomN,GAAQj4M,QAAU,SAASgiN,GAAA,IAEpB0M,EAAY1M,EAAA/H,IACdyU,GAAaA,EAAAa,KAChBb,EAAAa,MAOGb,IAAA,IAAa1M,EAAA9H,MAChB8H,EAAM3kN,KAAO,MAGV6xN,IAAYA,GAAWlN,KAiE5BmN,GAASn/N,UAAY,IAAIuqN,IAAAN,IAOa,SAAS8E,EAASuF,GAAA,IACjDkL,EAAsBlL,EAAArK,IAGtBoI,EAAI34M,KAEW,MAAjB24M,EAAEr3M,IACLq3M,EAAEr3M,EAAc,IAEjBq3M,EAAEr3M,EAAYnc,KAAK2gO,GAAA,IAEbvU,EAAUoU,GAAUhN,EAAAlI,KAEtBd,GAAA,EACEF,EAAa,WACdE,IAEJA,GAAA,EACAmW,EAAAD,IAAiC,KAE7BtU,EACHA,EAAQtC,GAERA,MAIF6W,EAAAD,IAAiCpW,EAAA,IAE3BR,EAAuB,kBACrB0J,EAAA+M,IAA2B,IAG7B/M,EAAE93M,MAAAwvM,IAAkB,KACjBoF,EAAiBkD,EAAE93M,MAAAwvM,IACzBsI,EAAAlI,IAAAN,IAAmB,GA5EvB,SAASiG,EAAe2P,EAAOC,EAAgBlQ,GAAA,OAC1CiQ,IACHA,EAAAtV,IAAkB,KAClBsV,EAAA5V,IACC4V,EAAA5V,KACA4V,EAAA5V,IAAgBx1L,KAAI,SAAAsrM,GAAA,OACnB7P,EAAe6P,EAAOD,EAAgBlQ,MAGpCiQ,EAAAxV,KACCwV,EAAAxV,IAAAgC,MAAgCyT,IAC/BD,EAAA1V,KACHyF,EAAex7I,aAAayrJ,EAAA1V,IAAY0V,EAAAzV,KAEzCyV,EAAAxV,IAAAF,KAAA,EACA0V,EAAAxV,IAAAgC,IAA8BuD,IAK1BiQ,EApBR,CA6EKtQ,EACAA,EAAAlF,IAAAgC,IACAkD,EAAAlF,IAAA2V,KAAA,IAMEC,EAAA,IAFJxN,EAAE11F,SAAS,CAAAotF,IAAesI,EAAAvI,IAAwB,OAG1C+V,EAAYxN,EAAEr3M,EAAY+1B,OACjC8uL,EAAUt6D,gBAUP+qD,GAAA,IAAegE,EAAApK,IAChBmI,EAAA+M,OAAgC9O,GACpC+B,EAAE11F,SAAS,CAAAotF,IAAesI,EAAAvI,IAAwBuI,EAAAlI,IAAAN,IAAmB,KAEtEkF,EAAQzoN,KAAK6iN,EAAYA,IAG1BgW,GAASn/N,UAAU8sH,qBAAuB,gBACpC9xG,EAAc,IAQpBmkN,GAASn/N,UAAUwyE,OAAS,SAASy+I,EAAO6O,GAAA,GACvCpmN,KAAAowM,IAA0B,IAIzBpwM,KAAAywM,IAAAN,IAAuB,KACpBkW,EAAiB50L,SAASzgC,cAAc,OACxCwlN,EAAoBx2M,KAAAywM,IAAAN,IAAsB,GAAAI,IAAA,KAAAE,IAAAN,IAC1B,GArJzB,SAAS4I,EAAcuN,EAAOC,EAAgBlM,GAAA,OACzCiM,IACCA,EAAA/V,KAAoB+V,EAAA/V,IAAAqU,MACvB0B,EAAA/V,IAAAqU,IAAAtwF,GAA+B3uI,SAAQ,SAAAqzN,GACR,mBAAnBA,EAAAzI,KAA+ByI,EAAAzI,SAG3C+V,EAAA/V,IAAAqU,IAA2B,MAIJ,OADxB0B,EAAQrB,GAAO,CAAC,EAAGqB,IAAA/V,MAEd+V,EAAA/V,IAAAgC,MAAgC8H,IACnCiM,EAAA/V,IAAAgC,IAA8BgU,GAE/BD,EAAA/V,IAAmB,MAGpB+V,EAAAnW,IACCmW,EAAAnW,KACAmW,EAAAnW,IAAgBx1L,KAAI,SAAA6rM,GAAA,OACnBzN,EAAcyN,EAAOD,EAAgBlM,OAIjCiM,EAzBR,CAsJItmN,KAAAowM,IACAiW,EACC7P,EAAA0P,IAAuC1P,EAAAjE,KAAA,KAAAnC,IAIf,SAKtB8B,EACLkU,EAAA/V,KAAoBf,GAAcqB,GAAU,KAAM4G,EAAMxnG,UAAA,OACrDmiG,IAAUA,EAAA1B,IAAsB,MAE7B,CACNlB,GAAcqB,GAAU,KAAMyV,EAAA/V,IAAmB,KAAOkH,EAAMlnN,UAC9D6hN,IChMF,IAAMuU,GAAU,SAACtN,EAAMuN,EAAOC,GAAA,KACvBA,EAdgB,KAcSA,EAfR,IAqBtBxN,EAAKhxN,EAAK80B,OAAOypM,GAQhBvN,EAAKpvN,MAAMg+G,cACmB,MAA9BoxG,EAAKpvN,MAAMg+G,YAAY,KAAcoxG,EAAKhxN,EAAK01D,MAAA,IAQjD8oK,EAAOxN,EAAK10M,EACLkiN,GAAM,MACLA,EAAKlhO,OAAS,GACpBkhO,EAAKtvL,KAALsvL,GAAA,GAEGA,EA1CiB,GA0CMA,EA3CL,SA8CtBxN,EAAK10M,EAAQkiN,EAAOA,EA5CJ,MAmDlBf,GAAat/N,UAAY,IAAIuqN,IAAAR,IAEO,SAASuW,GAAA,IACtCC,EAAO7mN,KACP8mN,EAAYnB,GAAUkB,EAAApW,KAExBsW,EAAOF,EAAK1+N,EAAKmQ,IAAIsuN,GAAA,OACzBG,EA5DuB,KA8DhB,SAAAhU,GAAA,IACA9C,EAAmB,WACnB4W,EAAK98N,MAAMg+G,aAKfg/G,EAAK5hO,KAAK4tN,GACV0T,GAAQI,EAAMD,EAAOG,IAHrBhU,KAME+T,EACHA,EAAU7W,GAEVA,MAKH2V,GAAat/N,UAAUwyE,OAAS,SAASkuJ,GAAA,KACnCviN,EAAQ,UACRtc,EAAO,IAAI82E,IAAA,IAEVgoJ,EAAW1S,GAAayS,EAAM32N,UAChC22N,EAAMj/G,aAAwC,MAAzBi/G,EAAMj/G,YAAY,IAI1Ck/G,EAAS/8I,UAAA,IAIL,IAAIg9I,EAAID,EAASxhO,OAAQyhO,KAAA,KAYxB/+N,EAAKqY,IAAIymN,EAASC,GAAKlnN,KAAKyE,EAAQ,CAAC,EAAG,EAAGzE,KAAKyE,IAAA,OAE/CuiN,EAAM32N,UAGdu1N,GAAat/N,UAAU6oH,mBAAqBy2G,GAAat/N,UAAUigH,kBAAoB,eAAA4gH,EAAA,UAOjFh/N,EAAKxC,SAAQ,SAACyhO,EAAMC,GACxBZ,GAAQU,EAAME,EAAOD,OAAA,ICnHVE,GACM,oBAAVnhO,QAAyBA,OAAO2wE,KAAO3wE,OAAO2wE,IAAI,kBAC1D,MAEKywJ,GAAA,4OAEAC,GAA6B,oBAAb/1L,SAYtBo/K,GAAUvqN,UAAUuxH,iBAAmB,CAAC,EASxC,CACC,qBACA,4BACA,uBACClyH,SAAQ,SAAA60N,GACT51N,OAAOoB,eAAe6qN,GAAUvqN,UAAWk0N,EAAK,CAC/Ch0N,cAAA,EACA8R,IAAA,kBACQ0H,KAAK,UAAYw6M,IAEzBh6M,IAAA,SAAIinN,GACH7iO,OAAOoB,eAAega,KAAMw6M,EAAK,CAChCh0N,cAAA,EACAC,UAAA,EACAF,MAAOkhO,UAiCX,IAAIC,GAAenZ,GAAQ1iN,MAS3B,SAAS87N,KAAA,CAET,SAASC,KAAA,OACD5nN,KAAKsvF,aAGb,SAASu4H,KAAA,OACD7nN,KAAKw6D,iBAfb+zI,GAAQ1iN,MAAQ,SAAAi8N,GAAA,OACXJ,KAAcI,EAAIJ,GAAaI,IACnCA,EAAEv4H,QAAUo4H,GACZG,EAAE14H,qBAAuBw4H,GACzBE,EAAE54H,mBAAqB24H,GACfC,EAAEp7H,YAAco7H,GAazB,IAAIC,GAAsB,CACzBvhO,cAAA,EACA8R,IAAA,kBACQ0H,KAAKizK,QAIV+0C,GAAezZ,GAAQmC,MAC3BnC,GAAQmC,MAAQ,SAAAoK,GAAA,IA1FUmN,EA2FrBC,EAAOpN,EAAMnnN,KACbw0N,EAAQrN,EAAM/wN,MACdq+N,EAAkBD,EAAA,GAGF,iBAATD,EAAmB,KACvB/T,GAAA,IAAmB+T,EAAKrhO,QAAQ,SAGjC,IAAIyrN,KAFT8V,EAAkB,CAAC,EAELD,EAAO,KAChBpY,EAAQoY,EAAM7V,GAEdkV,IAAgB,aAANlV,GAA6B,aAAT4V,GAInB,UAAN5V,GAAiB,iBAAkB6V,GAAkB,MAATpY,IAK9C,iBAANuC,GACA,UAAW6V,GACI,MAAfA,EAAM5hO,MAIN+rN,EAAI,QACY,aAANA,IAAA,IAAoBvC,EAM9BA,EAAQ,GACE,iBAAiBpnN,KAAK2pN,GAChCA,EAAI,aAEJ,6BAA6B3pN,KAAK2pN,EAAI4V,KAjIhBD,EAkIHE,EAAMx0N,OAjIV,oBAAVxN,QAA4C,iBAAZA,SAAA,8BAGtCwC,KAAKs/N,IAgIJ3V,EAAI,UACM,aAAa3pN,KAAK2pN,GAC5BA,EAAI,YACM,YAAY3pN,KAAK2pN,GAC3BA,EAAI,aACM,6BAA6B3pN,KAAK2pN,GAC5CA,EAAIA,EAAExzM,cACIq1M,GAAoBoT,GAAY5+N,KAAK2pN,GAC/CA,EAAIA,EAAErsM,QAAA,WAAoB,OAAOnH,cACb,OAAVixM,IACVA,OAAA,GAGDqY,EAAgB9V,GAAKvC,GAKb,UAARmY,GACAE,EAAgB92G,UAChB9pH,MAAMC,QAAQ2gO,EAAgB7hO,SAG9B6hO,EAAgB7hO,MAAQguN,GAAa4T,EAAM93N,UAAU1K,SAAQ,SAAAs1N,GAC5DA,EAAMlxN,MAAMk3F,UAAA,GACXmnI,EAAgB7hO,MAAMM,QAAQo0N,EAAMlxN,MAAMxD,WAKjC,UAAR2hO,GAAoD,MAAhCE,EAAgBz9M,eACvCy9M,EAAgB7hO,MAAQguN,GAAa4T,EAAM93N,UAAU1K,SAAQ,SAAA0iO,GAE3DA,EAAMt+N,MAAMk3F,SADTmnI,EAAgB92G,UAAA,GAElB82G,EAAgBz9M,aAAa9jB,QAAQwhO,EAAMt+N,MAAMxD,OAGjD6hO,EAAgBz9M,cAAgB09M,EAAMt+N,MAAMxD,UAKhDu0N,EAAM/wN,MAAQq+N,EAEVD,EAAMl1C,OAASk1C,EAAMp0N,YACxBg0N,GAAoB7iO,WAAa,cAAeijO,EACzB,MAAnBA,EAAMp0N,YAAmBq0N,EAAgBn1C,MAAQk1C,EAAMp0N,WAC3DnP,OAAOoB,eAAeoiO,EAAiB,YAAaL,KAItDjN,EAAMpkJ,SAAW4wJ,GAEbU,IAAcA,GAAalN,IAKhC,IAAMwN,GAAkB/Z,GAAAoD,IACxBpD,GAAAoD,IAAkB,SAAS4W,GACtBD,IACHA,GAAgBC,GAEEA,EAAAhY,KCjNpB,MAAMiY,GAAc,CAClBzlG,MAAO,UACP0lG,KAAM,SAGO,MAAMC,WAAmBvD,GAatCwD,UAAAA,CAAW9I,GACT,MAAMvkJ,KAAEA,GAASukJ,EAEjB,GAAIvkJ,EAAM,CACR,GAAIA,EAAKstJ,IACP,OACEzN,GAAC,OAAI,CACHloC,MAAM,OACNh4G,wBAAyB,CAAEC,OAAQI,EAAKstJ,OAK9C,GAAIttJ,EAAKtN,IACP,OAAOmtJ,GAAC,MAAG,CAACntJ,IAAKsN,EAAKtN,MAI1B,MAAMswJ,EACJyD,GAAM1D,WAAWwB,EAAS/rN,KAAOiuN,GAAM1D,WAAWlkD,OAOpD,OAAOmkD,EAJe,QAApBt+M,KAAKjW,MAAMuuJ,MACPkwE,GAAYxoN,KAAKjW,MAAMgmI,OACvB/vH,KAAKjW,MAAMuuJ,QAEcgmE,EAGjCxlJ,MAAAA,GACE,IAAI+vJ,EAAwB,KAE5B,OACE1N,GAAC,MAAG,CACFrnN,GAAG,MACHm/K,MAAM,UACN,gBAAejzK,KAAKjW,MAAM+X,SAC1BqlD,IAAKnnD,KAAKjW,MAAMo9D,aAEhBg0J,GAAC,MAAG,CAACloC,MAAM,0BACRjzK,KAAKq+M,WAAW1jM,KAAI,CAACklM,EAAUt6N,KAC9B,MAAMuiI,EAAQ+3F,EAASp3N,MAAQs2N,GAAKV,WAAWwB,EAAS/rN,IAClDmtF,GACHjhF,KAAKjW,MAAM++N,WAAajJ,EAAS/rN,IAAMkM,KAAKa,MAAMkoN,WAMrD,OAJI9nI,IACF4nI,EAAwBtjO,GAIxB41N,GAAC,SAAM,CACL,aAAYrzF,EACZ,gBAAe7mC,QAAYlyF,EAC3B+4H,MAAOA,EACPn0H,KAAK,SACLs/K,MAAM,6BACN+1C,YAAczyN,GAAMA,EAAE84F,iBACtB96F,QAASA,KACPyL,KAAKjW,MAAMwK,QAAQ,UAAEsrN,IAAUt6N,GAAI,WAGpCya,KAAK2oN,WAAW9I,IACV,IAIb1E,GAAC,MAAG,CACFloC,MAAM,MACNt3G,MAAO,CACLm4B,MAAO,GAAFplG,OAAK,IAAMsR,KAAKq+M,WAAW54N,OAAM,KACtC21E,QAAkC,MAAzBytJ,EAAgC,EAAI,EAC7CtuI,UACqB,QAAnBv6E,KAAKjW,MAAMo9D,IAAa,yBAAAz4D,OAC6B,IAAxBm6N,EAA2B,oBAAAn6N,OACd,IAAxBm6N,EAA2B,cAtF3DxiO,WAAAA,GACE23H,QAEAh+G,KAAKq+M,WAAaW,GAAKX,WAAWt5N,QAAQ86N,IAChCA,EAASv6N,SAGnB0a,KAAKa,MAAQ,CACXkoN,WAAY/oN,KAAKq+M,WAAW,GAAGvqN,KCjBtB,MAAMm1N,WAA4B9D,GAC/Cz/G,qBAAAA,CAAsBie,GACpB,IAAK,IAAIhgH,KAAKggH,EACZ,GAAS,YAALhgH,GAEAggH,EAAUhgH,IAAM3D,KAAKjW,MAAM4Z,GAC7B,OAAO,EAIX,OAAO,EAGTm1D,MAAAA,GACE,OAAO94D,KAAKjW,MAAMsG,UCJtB,MAAM64N,GACW,GAGF,MAAMC,WAAetY,GAclCuY,eAAAA,GAAoC,IAApBr/N,EAAKvE,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAGwa,KAAKjW,MAC3B,MAAO,CACLo0N,KAAM/C,GAAM9iN,IAAI,SAAWvO,EAAMo0N,KACjCpuF,MAAO/vH,KAAKqpN,UAAUt/N,EAAMgmI,QAIhCzpB,kBAAAA,GACEtmG,KAAKmnD,IAAM43J,GAAKuK,IAAM,MAAQ,MAC9BtpN,KAAKglG,KAAO,CACVukH,KhC4CE,CAAEp9N,QAAS,MgC3Cbq9N,WhC2CE,CAAEr9N,QAAS,MgC1CbykI,OhC0CE,CAAEzkI,QAAS,MgCzCbmc,OhCyCE,CAAEnc,QAAS,MgCxCbs9N,YhCwCE,CAAEt9N,QAAS,MgCvCbu9N,ehCuCE,CAAEv9N,QAAS,MgCtCbw9N,chCsCE,CAAEx9N,QAAS,OgCnCf6T,KAAK4pN,WAGwB,GAA3B5pN,KAAKjW,MAAM80N,cACkB,UAA7B7+M,KAAKjW,MAAMm0N,iBAEX1vN,QAAQC,KACN,sFAGFuR,KAAKjW,MAAMm0N,eAAiB,UAIhC33G,iBAAAA,GAKE,GAJAvmG,KAAKuzH,WAELvzH,KAAK8jN,WAAa9jN,KAAKutC,KAAK2U,WAExBliD,KAAKjW,MAAM2nH,UAAW,CACxB,MAAM+3G,YAAEA,GAAgBzpN,KAAKglG,KACzBykH,EAAYt9N,SACds9N,EAAYt9N,QAAQ6tG,SAK1BgM,yBAAAA,CAA0B2d,GACxB3jH,KAAK4jH,YAAc5jH,KAAK4jH,UAAY,CAAC,GAErC,IAAK,MAAMu6B,KAAKx6B,EACd3jH,KAAK4jH,UAAUu6B,GAAKx6B,EAAUw6B,GAGhCrgD,aAAa99F,KAAK6pN,gBAClB7pN,KAAK6pN,eAAiBphM,YAAW,KAC/B,IAAIqhM,GAAoB,EAExB,IAAK,MAAMnmN,KAAK3D,KAAK4jH,UACnB5jH,KAAKjW,MAAM4Z,GAAK3D,KAAK4jH,UAAUjgH,GAErB,WAANA,GAAwB,eAANA,IACpBmmN,GAAoB,UAIjB9pN,KAAK4jH,UACZ,MAAMA,EAAY5jH,KAAKopN,kBAEvB,GAAIU,EACF,OAAO9pN,KAAKs/K,MAAM17D,GAGpB5jH,KAAKijH,SAASW,EAAU,IAI5BxQ,oBAAAA,GACEpzG,KAAKyjN,aAGP,WAAMnkC,GAAsB,IAAhB17D,EAASp+H,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,CAAC,QACjB85N,GAAKt/M,KAAKjW,OAEhBiW,KAAK4pN,WACL5pN,KAAK+pN,YAEL/pN,KAAKijH,SAASW,GAAW,KACvB5jH,KAAKgqN,oBACLhqN,KAAKiqN,aAAa,IAItB12F,QAAAA,GACE9hG,SAAS5F,iBAAiB,QAAS7rB,KAAKkqN,oBACxClqN,KAAKu6I,UAGPkpE,UAAAA,GACEhyL,SAAS81D,oBAAoB,QAASvnF,KAAKkqN,oBAC3ClqN,KAAK+pN,YAGPxvE,OAAAA,GACEv6I,KAAKgqN,oBACLhqN,KAAKiqN,cAGPF,SAAAA,GAAgC,IAAtB,OAAE5sG,EAAS,IAAI33H,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EACtBgC,MAAMC,QAAQ01H,KACjBA,EAAS,CAACA,IAGZ,IAAK,MAAMswB,KAAYztI,KAAKmqN,UACtBhtG,EAAO5uH,SAASk/I,IACpBA,EAAS+M,aAGXx6I,KAAKmqN,UAAY,GAAGz7N,OAAOyuH,GAG7BysG,QAAAA,GACE,MAAMvL,WAAEA,GAAeW,GAEvBh/M,KAAKglG,KAAKq5G,WAAa,IAAIp/I,IAE3B,MAAMmrJ,EAASpL,GAAKX,WAAW1jM,KAAKklM,GAAaA,EAAS/rN,KAAIwgB,KAAK,KAC/DtU,KAAKoqN,QAAUpqN,KAAKoqN,QAAUA,GAChCpqN,KAAKglG,KAAK4rB,OAAOzkI,UAAY6T,KAAKglG,KAAK4rB,OAAOzkI,QAAQ4tG,UAAY,GAEpE/5F,KAAKoqN,OAASA,EAEdpqN,KAAKqqN,KAAO,GACZrqN,KAAKqqN,KAAKC,QAAU,EAEpB,MAAMC,EAASA,CAACt0C,EAAM4pC,KACpB,MAAM2K,EAAM,GACZA,EAAIC,aAAe5K,EAAS/rN,GAC5B02N,EAAIE,QAAUz0C,EAAKxwL,OACnBua,KAAKqqN,KAAKllO,KAAKqlO,GAEf,MAAMG,EAAW3qN,KAAKqqN,KAAK5kO,OAAS,EAC9BmlO,EAASD,EAAWzB,GAA4B,CAAC,EhCvFrD,CAAE/8N,QAAS,MgC4Fb,OAJAy+N,EAAOh2M,MAAQ+1M,EACfC,EAAOC,SAAW7qN,KAAKqqN,KAAKC,QAAU,EACtCr0C,EAAK9wL,KAAKylO,GAEHJ,CAAG,EAGZ,IAAK,IAAIM,KAAYzM,EAAY,CAC/B,MAAMpoC,EAAO,GACb,IAAIu0C,EAAMD,EAAOt0C,EAAM60C,GAEvB,IAAK,IAAIvP,KAASuP,EAASpL,OACrB8K,EAAI/kO,QAAUua,KAAK+qN,eACrBP,EAAMD,EAAOt0C,EAAM60C,IAGrB9qN,KAAKqqN,KAAKC,SAAW,EACrBE,EAAIrlO,KAAKo2N,GAGXv7M,KAAKglG,KAAKq5G,WAAW79M,IAAIsqN,EAASh3N,GAAI,CAAE2mF,KhC5GtC,CAAEtuF,QAAS,WgC4G8C8pL,KAI/DozC,SAAAA,CAAUt5F,GACR,GAAa,QAATA,EAAiB,OAAOA,EAE5B,IAAK/vH,KAAKgrN,UAAW,CAEnB,GADAhrN,KAAKgrN,UAAYhwB,WAAW,gCACxBh7L,KAAKgrN,UAAUC,MAAM/kN,MAAM,QAAS,MAAO,QAE/ClG,KAAKgrN,UAAUhrL,aAAY,KACD,QAApBhgC,KAAKjW,MAAMgmI,OACf/vH,KAAKijH,SAAS,CAAE8M,MAAO/vH,KAAKgrN,UAAUlyK,QAAU,OAAS,SAAU,IAIvE,OAAO94C,KAAKgrN,UAAUlyK,QAAU,OAAS,QAqC3CoyK,kBAAAA,GAAuC,IAApBnhO,EAAKvE,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAGwa,KAAKjW,MAC9B,IAAKA,EAAMszN,aAAc,OACzB,MAAMpyN,QAAEA,EAAOuyN,gBAAEA,GAAoBzzN,EAE/BohO,EAAmBA,KACvB,MAAMr3H,MAAEA,GAAU7oG,EAAQ2yI,wBAC1B,OAAOv7H,KAAKC,MAAMwxF,EAAQ0pH,EAAgB,EAGtC/vE,EAAW,IAAI29E,gBAAe,KAClCprN,KAAK+pN,UAAU,CAAE5sG,OAAQswB,IACzBztI,KAAKijH,SAAS,CAAE45F,QAASsO,MAAsB,KAC7CnrN,KAAK4pN,WACL5pN,KAAK6rJ,aAAY,KACf7rJ,KAAKgqN,oBACLhqN,KAAKiqN,aAAa,GAClB,GACF,IAMJ,OAHAx8E,EAAS8M,QAAQtvJ,GACjB+U,KAAKmqN,UAAUhlO,KAAKsoJ,GAEb09E,IAGTJ,UAAAA,GACE,OAAO/qN,KAAKa,MAAMg8M,SAAW78M,KAAKjW,MAAM8yN,QAG1CwO,aAAAA,CAAa97E,GAAW,IAAT+jE,EAAIwD,GAAGvnE,EACpB,MAAM86E,EAAOrqN,KAAKa,MAAMyqN,eAAiBtrN,KAAKqqN,KACxC9O,EAAQ8O,EAAK/W,IAAO+W,EAAK/W,GAAIwD,GAEnC,GAAKyE,EACL,OAAOsF,GAAYvoN,IAAIijN,GAGzByO,iBAAAA,GACE,MAAMR,EAAaxpN,KAAKglG,KAAKwkH,WAAWr9N,QACxC,IAAKq9N,EAAY,OAEjB,MAAM+B,EAAoB,IAAItsJ,IAOxBusJ,EAAkB,CACtB/wI,KAAMz6E,KAAKglG,KAAK4rB,OAAOzkI,QACvBs/N,UAAW,CAAC,EAAK,IAGbh+E,EAAW,IAAIi+E,sBAAsBxzK,IACzC,IAAK,MAAMG,KAASH,EAAS,CAC3B,MAAMpkD,EAAKukD,EAAM/yD,OAAO6qH,QAAQr8G,GAChCy3N,EAAkB/qN,IAAI1M,EAAIukD,EAAMszK,mBAGlC,MAAMC,EAAS,IAAIL,GACnB,IAAK,MAAOz3N,EAAI+3N,KAAUD,EACxB,GAAIC,EAAO,EAnBa9C,EAoBHj1N,IAnBL01N,EAAW3oN,MAAMkoN,YACjCS,EAAWvmG,SAAS,YAAE8lG,IAmBpB,MArBsBA,QAwBzByC,GAEH,IAAK,MAAM/wI,KAAEA,KAAUz6E,KAAKglG,KAAKq5G,WAAWljM,SAC1CsyH,EAAS8M,QAAQ9/D,EAAKtuF,SAGxB6T,KAAKmqN,UAAUhlO,KAAKsoJ,GAGtBw8E,WAAAA,GACE,MAAM6B,EAAc,IAAK9rN,KAAKa,MAAMirN,aAE9Br+E,EAAW,IAAIi+E,sBAClBxzK,IACC,IAAK,MAAMG,KAASH,EAAS,CAC3B,MAAMtjC,EAAQmM,SAASs3B,EAAM/yD,OAAO6qH,QAAQv7F,OAExCyjC,EAAM0zK,eACRD,EAAYl3M,IAAS,SAEdk3M,EAAYl3M,GAIvB5U,KAAKijH,SAAS,aAAE6oG,GAAc,GAEhC,CACErxI,KAAMz6E,KAAKglG,KAAK4rB,OAAOzkI,QACvB6/N,WAAY,GAAFt9N,OACRsR,KAAKjW,MAAMyzN,iBAAmB0L,GAA4B,GAAC,WAAAx6N,OACnDsR,KAAKjW,MAAMyzN,gBAAkB0L,GAAyB,QAIpE,IAAK,MAAMjzC,KAAEA,KAAUj2K,KAAKglG,KAAKq5G,WAAWljM,SAC1C,IAAK,MAAMqvM,KAAOv0C,EACZu0C,EAAIr+N,SACNshJ,EAAS8M,QAAQiwE,EAAIr+N,SAK3B6T,KAAKmqN,UAAUhlO,KAAKsoJ,GAGtBp+C,cAAAA,CAAe94F,GACbA,EAAE84F,iBAwGJ48H,aAAAA,GACE,MAAM7rN,EAAQJ,KAAKglG,KAAKykH,YAAYt9N,QAC/BiU,GAELA,EAAM6xH,OAGR4yC,QAAAA,CAAQqF,GAAsC,IAArC3zK,EAAEA,EAAC6J,MAAEA,EAAKhT,KAAEA,EAAIC,MAAEA,EAAK8lK,GAAEA,EAAE+4D,KAAEA,GAAMhiD,EAC1C,MAAMmgD,EAAOrqN,KAAKa,MAAMyqN,eAAiBtrN,KAAKqqN,KAC9C,IAAKA,EAAK5kO,OAAQ,OAElB,IAAK6tN,EAAIwD,GAAM92M,KAAKa,MAAMm9C,IAE1B,MAAMA,EAAM,MACV,GAAU,GAANs1J,GACQ,GAANwD,IAAYvgN,EAAEm9F,SAAWtmG,GAAQ+lK,GACnC,OAAO,KAIX,IAAW,GAAPmgD,EACF,OACG/8M,EAAEm9F,SACFrmG,IAAS6+N,GACV9rN,EAAM04F,gBAAkB14F,EAAM7Z,MAAMd,OAK/B,KAHE,CAAC,EAAG,GAMf,GAAI2H,GAAQC,EAAO,CACjB,IAAIm9N,EAAMH,EAAK/W,GACf,MAAM6Y,EAAY/+N,GAAQ,EAAI,EAG9B,GADA0pN,GAAMqV,GACD3B,EAAI1T,GAAK,CAIZ,GAHAxD,GAAM6Y,EACN3B,EAAMH,EAAK/W,IAENkX,EAIH,OAHAlX,EAAKlmN,EAAO,EAAIi9N,EAAK5kO,OAAS,EAC9BqxN,EAAK1pN,EAAO,EAAIi9N,EAAK/W,GAAI7tN,OAAS,EAE3B,CAAC6tN,EAAIwD,GAGdA,EAAK1pN,EAAOo9N,EAAI/kO,OAAS,EAAI,EAG/B,MAAO,CAAC6tN,EAAIwD,GAGd,GAAI3jD,GAAM+4D,EAAM,CACd5Y,GAAMngD,GAAM,EAAI,EAChB,MAAMq3D,EAAMH,EAAK/W,GAEjB,OAAKkX,GAOAA,EAAI1T,KACPA,EAAK0T,EAAI/kO,OAAS,GAGb,CAAC6tN,EAAIwD,KAVVxD,EAAKngD,EAAK,EAAIk3D,EAAK5kO,OAAS,EAC5BqxN,EAAK3jD,EAAK,EAAIk3D,EAAK/W,GAAI7tN,OAAS,EAEzB,CAAC6tN,EAAIwD,IASjB,EA1DW,GA4DR94J,GACFznD,EAAE84F,iBASJrvF,KAAKijH,SAAS,KAAEjlE,EAAKy9E,UAAU,IAAQ,KACrCz7H,KAAK80K,SAAS,CAAE01C,IAAKxsK,EAAI,IAAK,KAR1Bh+C,KAAKa,MAAMm9C,IAAI,IAAM,GACvBh+C,KAAKijH,SAAS,CAAEjlE,IAAK,EAAE,GAAI,KAWjC82H,QAAAA,CAAQ/L,GAAsB,IAArBggD,WAAEA,EAAUyB,IAAEA,GAAKzhD,EAC1B,MAAMshD,EAAOrqN,KAAKa,MAAMyqN,eAAiBtrN,KAAKqqN,KAC9C,IAAKA,EAAK5kO,OAAQ,OAElB,MAAMmrI,EAAS5wH,KAAKglG,KAAK4rB,OAAOzkI,QAC1BigO,EAAax7F,EAAOgN,wBAE1B,IAAI7jC,EAAY,EAMhB,GAJIywH,GAAO,IACTzB,EAAasB,EAAKG,GAAKC,cAGrB1B,EAAY,CAKdhvH,GAHE/5F,KAAKglG,KAAK+jH,IAAe/oN,KAAKglG,KAAKq5G,WAAW/lN,IAAIywN,GAAYtuI,MACvCtuF,QAAQyxI,wBAER9jC,KAAOsyH,EAAWtyH,IAAM82B,EAAO72B,WAAa,EAGvE,GAAIywH,GAAO,EACT,GAAKA,EAEE,CACL,MACM6B,EAAStyH,EADEswH,EAAKG,GAAKE,QACW1qN,KAAKjW,MAAMyzN,gBAC3C8O,EACJD,EACArsN,KAAKjW,MAAMyzN,gBACkB,IAA7Bx9M,KAAKjW,MAAMyzN,gBAEb,GAAI6O,EAASz7F,EAAO72B,UAClBA,EAAYsyH,MACP,MAAIC,EAAS17F,EAAO72B,UAAYqyH,EAAWr4H,QAGhD,OAFAgG,EAAYuyH,EAASF,EAAWr4H,MAE1B,OAdRgG,EAAY,EAmBhB/5F,KAAKusN,cACL37F,EAAO72B,UAAYA,EAGrBwyH,WAAAA,GACEvsN,KAAKwsN,gBAAiB,EACtB1uH,aAAa99F,KAAKysN,kBAClBzsN,KAAKysN,iBAAmBhkM,YAAW,YAC1BzoB,KAAKwsN,cAAc,GACzB,KAOLE,eAAAA,CAAgB1uK,GACVh+C,KAAKwsN,gBAAkBxsN,KAAKa,MAAM8rN,WACtC3sN,KAAKijH,SAAS,CAAEjlE,IAAKA,GAAO,EAAE,GAAI,GAAIy9E,UAAU,IAGlDmxF,gBAAAA,CAAgBrjD,GAAoB,IAAnBhzK,EAAEA,EAACglN,MAAEA,EAAKv9J,IAAEA,GAAKurH,EAChC,GAAKvpK,KAAKjW,MAAM60N,iBAEXrD,GAASv9J,IACZu9J,EAAQv7M,KAAKqrN,cAAcrtK,IAGzBu9J,GAAO,CACT,MAAMsG,EAAYD,GAAarG,EAAO,CAAEkF,UAAWzgN,KAAKa,MAAMs9M,KAAO,IAEjEn+M,KAAKjW,MAAM6yN,iBACbF,GAAe/4L,IAAIk+L,EAAW7hN,KAAKjW,OAGrCiW,KAAKjW,MAAM60N,cAAciD,EAAWtrN,IAuBxCs2N,UAAAA,GACO7sN,KAAKa,MAAM8rN,YAChB3sN,KAAKijH,SAAS,CAAE0pG,UAAW,KAAMG,SAAU,OAE3C9sN,KAAKutC,KAAKg6C,oBAAoB,QAASvnF,KAAK+sN,iBAC5C/sN,KAAKutC,KAAKg6C,oBAAoB,UAAWvnF,KAAKgtN,oBAGhDC,mBAAAA,CAAoBH,GAClB9sN,KAAKijH,SAAS,UAAE6pG,IAGlBI,eAAAA,CAAgB/O,GACdn+M,KAAKusN,cACLvsN,KAAK6sN,aAEL7sN,KAAKijH,SAAS,MAAEk7F,EAAM2O,SAAU,OAChC1R,GAAM56M,IAAI,OAAQ29M,GAGpBgP,SAAAA,GACE,OACEhS,GAACuN,GAAU,CAETl8N,IAAKwT,KAAKglG,KAAKwkH,WACflxE,MAAOt4I,KAAKjW,MAAMuuJ,MAClBvoB,MAAO/vH,KAAKa,MAAMkvH,MAClB5oE,IAAKnnD,KAAKmnD,IACV2hK,YAAa9oN,KAAKa,MAAMyqN,cACxBxpN,SAAU9B,KAAKjW,MAAM8zN,YACrBtpN,QAASyL,KAAKotN,qBAPTptN,KAAKoqN,QAYhBvmG,aAAAA,GACE,MAAM03F,EAAQv7M,KAAKqrN,cAAcrrN,KAAKa,MAAMm9C,KACtCqvK,EACJrtN,KAAKa,MAAMyqN,gBAAkBtrN,KAAKa,MAAMyqN,cAAc7lO,OAExD,OACE01N,GAAC,MAAG,CACFrnN,GAAG,UACHm/K,MAAM,mBACN9rH,IAAKnnD,KAAKmnD,IACV,gBAAennD,KAAKjW,MAAMk0N,0BAE1B9C,GAAC,MAAG,CAACloC,MAAM,uCACTkoC,GAAC,MAAG,CACFloC,MAAM,yCACNt3G,MAAO,CACLo4B,OAAQ/zF,KAAKjW,MAAMyzN,gBACnB1xC,SAAU9rK,KAAKjW,MAAMyzN,0BAGvBrC,GAACoH,GAAK,CACJhH,MAAOA,EACPznN,GACEu5N,EACIrtN,KAAKjW,MAAMg0N,gBAAkB,MAC7B/9M,KAAKjW,MAAMi0N,eACoB,OAA9Bh+M,KAAKjW,MAAMk0N,gBACR,aACA,YAEVz9M,IAAKR,KAAKjW,MAAMyW,IAChBq9C,KAAM79C,KAAKjW,MAAMyzN,gBACjBW,KAAMn+M,KAAKa,MAAMisN,UAAY9sN,KAAKa,MAAMs9M,KACxCwE,aAAa,EACblE,kBAAmBz+M,KAAKjW,MAAM00N,sBAIlCtD,GAAC,MAAG,CAACloC,MAAK,UAAAvkL,OAAYsR,KAAKmnD,IAAI,aAE3Bg0J,GAAC,MADFI,GAAS8R,EACJ,CAACp6C,MAAK,WAAAvkL,OAAasR,KAAKmnD,IAAI,GAAE,WAAAz4D,OAAUsR,KAAKmnD,IAAI,cACnDg0J,GAAC,MAAG,CAACloC,MAAM,kCACRsoC,EAAQA,EAAM9yN,KAAOs2N,GAAKuO,sBAE7BnS,GAAC,MAAG,CAACloC,MAAM,6CACRsoC,EAAQA,EAAMmF,MAAM,GAAGE,WAAa7B,GAAKwO,wBAI1C,CAACt6C,MAAM,uCAA+B8rC,GAAKyO,aAKnDjS,GAC+B,WAA/Bv7M,KAAKjW,MAAMq0N,kBACXp+M,KAAKytN,0BAKbC,iBAAAA,CAAkBnS,EAAK/wC,GAA2B,IAAzBxsH,IAAEA,EAAG6sK,SAAEA,EAAQR,KAAEA,GAAM7/C,EAC9C,MAAM3sH,EAAO79C,KAAKjW,MAAMyzN,gBAClBW,EAAOn+M,KAAKa,MAAMisN,UAAY9sN,KAAKa,MAAMs9M,KAEzCt3E,GADY00E,EAAMmF,MAAMvC,EAAO,IAAM5C,EAAMmF,MAAM,IAC9B75E,OACnB5lD,EAAWwgI,GAAUzhN,KAAKa,MAAMm9C,IAAKA,GACrCp4D,EAAMo4D,EAAItvD,OAAO6sN,EAAMznN,IAAIwgB,KAAK,IAEtC,OACE6mM,GAAC8N,GAAmB,UAAiBhoI,OAAUk9H,OAAMtgK,WACnDs9J,GAAC,SAAM,CACL,aAAYt0E,EACZ,gBAAe5lD,QAAYlyF,EAC3B,gBAAe87N,EACf,eAAcR,EAAKC,QACnB,gBAAetqN,KAAKa,MAAM46H,SAC1B3T,MAAqC,QAA9B9nH,KAAKjW,MAAMk0N,gBAA4B1C,EAAM9yN,UAAOsG,EAC3D4E,KAAK,SACLs/K,MAAM,+BACN06C,SAAS,KACTp5N,QAAUgC,GAAMyJ,KAAK4sN,iBAAiB,GAAEr2N,QAAGglN,IAC3CqS,aAAcA,IAAM5tN,KAAK0sN,gBAAgB1uK,GACzC6vK,aAAcA,IAAM7tN,KAAK0sN,kBACzB/wJ,MAAO,CACLm4B,MAAO9zF,KAAKjW,MAAMyzN,gBAClBzpH,OAAQ/zF,KAAKjW,MAAMyzN,gBACnB1xC,SAAU9rK,KAAKjW,MAAM0zN,UACrBz5H,WAAY,aAGdm3H,GAAC,MAAG,CACF,cAAY,OACZloC,MAAM,aACNt3G,MAAO,CACLwgH,aAAcn8K,KAAKjW,MAAMwzN,kBACzBn3D,gBAAiBpmJ,KAAKjW,MAAMuzN,kBACxBt9M,KAAKjW,MAAMuzN,mBACRuN,EAAW,GAAK7qN,KAAKjW,MAAMuzN,kBAAkB73N,aAEhDsJ,KAGRosN,GAACoH,GAAK,CACJhH,MAAOA,EACP/6M,IAAKR,KAAKjW,MAAMyW,IAChBq9C,KAAM79C,KAAKjW,MAAM0zN,UACjBU,KAAMA,EACNwE,aAAa,EACblE,kBAAmBz+M,KAAKjW,MAAM00N,wBAvCV74N,GA8C9BkoO,YAAAA,GACE,MAAMC,EAC0B,QAA9B/tN,KAAKjW,MAAMk0N,iBACoB,UAA/Bj+M,KAAKjW,MAAMq0N,iBAEb,OACEjD,GAAC,MAAG,WACFA,GAAC,MAAG,CAACloC,MAAM,WACXkoC,GAAC,MAAG,CAACloC,MAAM,6BACTkoC,GAAC,MAAG,CAACloC,MAAM,sCACTkoC,GAAC,QAAK,CACJxnN,KAAK,SACLnH,IAAKwT,KAAKglG,KAAKykH,YACf75F,YAAamvF,GAAKz2M,OAClB/T,QAASyL,KAAKguN,kBACdzsB,QAASvhM,KAAKiuN,kBACdx8F,UAAWzxH,KAAKkuN,oBAChB7sB,aAAa,QAEf8Z,GAAC,OAAI,CAACloC,MAAM,2BAAmB8uC,GAAMz5M,OAAOg6M,QAC3CtiN,KAAKa,MAAMyqN,eACVnQ,GAAC,SAAM,CACLrzF,MAAM,QACN,aAAW,QACXn0H,KAAK,SACLs/K,MAAM,mBACN1+K,QAASyL,KAAKmuN,YACdnF,YAAahpN,KAAKqvF,wBAEjB0yH,GAAMz5M,OAAO2U,YAKnB8wM,GAAkB/tN,KAAKytN,6BAMhCW,mBAAAA,GACE,MAAM9C,cAAEA,GAAkBtrN,KAAKa,MAC/B,OAAKyqN,EAGHnQ,GAAC,MAAG,CAACloC,MAAM,WAAWzmL,IAAKwT,KAAKglG,KAAK18F,iBACnC6yM,GAAC,MAAG,CAACloC,MAAK,8BAAAvkL,OAAgCsR,KAAKmnD,IAAI,aAChD43J,GAAKV,WAAW/1M,SAEnB6yM,GAAC,MAAG,UACAmQ,EAAc7lO,OAOd6lO,EAAc3wM,KAAI,CAAC6vM,EAAKjlO,IAEpB41N,GAAC,MAAG,CAACloC,MAAM,gBACRu3C,EAAI7vM,KAAI,CAAC4gM,EAAO35M,IACR5B,KAAK0tN,kBAAkBnS,EAAO,CACnCv9J,IAAK,CAACz4D,EAAGqc,GACTipN,SAAUtlO,EAAIya,KAAKjW,MAAM8yN,QAAUj7M,EAAK,EACxCyoN,KAAMiB,UAbhBnQ,GAAC,MAAG,CAACloC,MAAK,uBAAAvkL,OAAyBsR,KAAKmnD,IAAI,aACzCnnD,KAAKjW,MAAM20N,kBACVvD,GAAC,IAAC,CAAC5mN,QAASyL,KAAKjW,MAAM20N,0BAAmBK,GAAKsP,oBAXhC,KAkC7BC,gBAAAA,GACE,MAAMjQ,WAAEA,GAAeW,GACjBuP,IAAWvuN,KAAKa,MAAMyqN,cACtBzO,EAAU78M,KAAK+qN,aAErB,OACE5P,GAAC,MAAG,CACFx/I,MAAO,CACL6yJ,WAAYD,EAAS,cAAWx/N,EAChC8kH,QAAS06G,EAAS,YAASx/N,EAC3BglG,OAAQ,iBAGTsqH,EAAW1jM,KAAKklM,IACf,MAAMplI,KAAEA,EAAIw7F,KAAEA,GAASj2K,KAAKglG,KAAKq5G,WAAW/lN,IAAIunN,EAAS/rN,IAEzD,OACEqnN,GAAC,MAAG,CACF,UAAS0E,EAASv6N,OAASu6N,EAASv6N,OAAOwO,GAAK+rN,EAAS/rN,GACzDm/K,MAAM,WACNzmL,IAAKiuF,YAEL0gI,GAAC,MAAG,CAACloC,MAAK,8BAAAvkL,OAAgCsR,KAAKmnD,IAAI,aAChD04J,EAASp3N,MAAQs2N,GAAKV,WAAWwB,EAAS/rN,MAE7CqnN,GAAC,MAAG,CACFloC,MAAM,WACNt3G,MAAO,CACLo4B,OAAQkiF,EAAKxwL,OAASua,KAAKjW,MAAMyzN,0BAGlCvnC,EAAKt7J,KAAI,CAAC6vM,EAAKjlO,KACd,MAAMkpO,EACJjE,EAAI51M,MAAS41M,EAAI51M,MAAQs0M,GACrBwF,EAAU1uN,KAAKa,MAAMirN,YAAY2C,GACjCjiO,EAAM,YAAag+N,EAAMA,OAAMz7N,EAErC,IAAK2/N,IAAYliO,EACf,OAAO,KAGT,MAAM6zD,EAAQ96D,EAAIs3N,EACZ59K,EAAMohB,EAAQw8J,EACdC,EAAW+C,EAASH,OAAOl3N,MAAM63D,EAAOphB,GAM9C,OAJI69K,EAASr3N,OAASo3N,GACpBC,EAAS33N,QAAQ,IAAIqC,MAAMq1N,EAAUC,EAASr3N,SAI9C01N,GAAC,MAAG,CAEF,aAAYqP,EAAI51M,MAChBpoB,IAAKA,EACLymL,MAAM,WACNt3G,MAAO,CAAEm+B,IAAKv0G,EAAIya,KAAKjW,MAAMyzN,0BAE5BkR,GACC5R,EAASniM,KAAI,CAACgiM,EAAS/6M,KACrB,IAAK+6M,EACH,OACExB,GAAC,MAAG,CACFx/I,MAAO,CACLm4B,MAAO9zF,KAAKjW,MAAMyzN,gBAClBzpH,OAAQ/zF,KAAKjW,MAAMyzN,mBAM3B,MAAMjC,EAAQsF,GAAYvoN,IAAIqkN,GAE9B,OAAO38M,KAAK0tN,kBAAkBnS,EAAO,CACnCv9J,IAAK,CAACwsK,EAAI51M,MAAOhT,GACjBipN,SAAUL,EAAIK,SAAWjpN,EACzByoN,KAAMrqN,KAAKqqN,MACX,KAzBDG,EAAI51M,MA2BL,QAIR,MAOhB64M,oBAAAA,GACE,MAAmC,QAA/BztN,KAAKjW,MAAMq0N,iBACN,KAIPjD,GAAC,MAAG,CACFloC,MAAM,yCACNt3G,MAAO,CACL75D,SAAU,WACVgyF,MAAO9zF,KAAKjW,MAAMyzN,gBAClBzpH,OAAQ/zF,KAAKjW,MAAMyzN,0BAGrBrC,GAAC,SAAM,CACLxnN,KAAK,SACLnH,IAAKwT,KAAKglG,KAAK0kH,eACfz2C,MAAM,0DACN,gBAAejzK,KAAKa,MAAM8rN,UAAY,QAAK59N,EAC3C,aAAYgwN,GAAK2B,MAAMiO,OACvB7mG,MAAOi3F,GAAK2B,MAAMiO,OAClBp6N,QAASyL,KAAK4uN,UACdjzJ,MAAO,CACLm4B,MAAO9zF,KAAKjW,MAAM0zN,UAClB1pH,OAAQ/zF,KAAKjW,MAAM0zN,oBAGrBtC,GAAC,OAAI,CAACloC,MAAK,uBAAAvkL,OAAyBsR,KAAKa,MAAMs9M,YAMvD0Q,gBAAAA,GACE,MAAMtT,EAAQv7M,KAAKqrN,cAAcrrN,KAAKa,MAAMm9C,KAG5C,OACEm9J,GAAC,MAAG,CAAC,YAAU,SAASloC,MAAM,mBAHfsoC,EAAQA,EAAM9yN,KAAO,KASxCqmO,WAAAA,GACE,MACMC,EADiB/uN,KAAKglG,KAAK0kH,eAAev9N,QACNyxI,wBACpCoxF,EAAWhvN,KAAKutC,KAAKqwF,wBAErB97H,EAAW,CAAC,EAkBlB,MAhBgB,OAAZ9B,KAAKmnD,IACPrlD,EAASzU,MAAQ2hO,EAAS3hO,MAAQ0hO,EAAmB1hO,MAAQ,EAE7DyU,EAAS1U,KAAO2hO,EAAmB3hO,KAAO4hO,EAAS5hO,KAAO,EAI5B,UAA9B4S,KAAKjW,MAAMk0N,iBACoB,WAA/Bj+M,KAAKjW,MAAMq0N,iBAEXt8M,EAAS+7H,OAASmxF,EAASnxF,OAASkxF,EAAmBj1H,IAAM,GAE7Dh4F,EAASg4F,IAAMi1H,EAAmBlxF,OAASmxF,EAASl1H,IAAM,EAC1Dh4F,EAAS+7H,OAAS,QAIlBs9E,GAAC,MAAG,CACF3uN,IAAKwT,KAAKglG,KAAKukH,KACfl5B,KAAK,aACLlpI,IAAKnnD,KAAKmnD,IACV,aAAY43J,GAAK2B,MAAMiO,OACvB17C,MAAM,cACN,gBAAenxK,EAASg4F,IAAM,MAAQ,SACtCn+B,MAAO75D,WAEN,IAAIta,MAAM,GAAG7C,QAAQg2B,KAAKp1B,IACzB,MAAM44N,EAAO54N,EAAI,EACX4gE,EAAUnmD,KAAKa,MAAMs9M,MAAQA,EAEnC,OACEhD,GAAC,MAAG,WACFA,GAAC,QAAK,CACJxnN,KAAK,QACLlL,KAAK,YACLlC,MAAO43N,EACP,aAAYY,GAAK2B,MAAMvC,GACvB3xN,IAAK25D,EAAUnmD,KAAKglG,KAAK2kH,cAAgB,KACzCrpI,eAAgBn6B,EAChB9xD,SAAUA,IAAM2L,KAAKitN,oBAAoB9O,GACzC1sF,UAAYl7H,IAEE,SAAVA,EAAE4S,MACQ,SAAV5S,EAAE4S,MACQ,OAAV5S,EAAE4S,OAEF5S,EAAE84F,iBACFrvF,KAAKktN,gBAAgB/O,OAK3BhD,GAAC,SAAM,CACL,cAAY,OACZwS,SAAS,KACTp5N,QAASA,IAAMyL,KAAKktN,gBAAgB/O,GACpCyP,aAAcA,IAAM5tN,KAAKitN,oBAAoB9O,GAC7C0P,aAAcA,IAAM7tN,KAAKitN,sBACzBh6C,MAAM,8CAENkoC,GAAC,OAAI,CAACloC,MAAK,uBAAAvkL,OAAyByvN,KACpChD,GAAC,OAAI,CAACloC,MAAM,2BAAmB8rC,GAAK2B,MAAMvC,UAExC,MAOhBrlJ,MAAAA,GACE,MAAMm2J,EAAYjvN,KAAKjW,MAAM8yN,QAAU78M,KAAKjW,MAAMyzN,gBAElD,OACErC,GAAC,UAAO,CACNrnN,GAAG,OACHm/K,MAAM,mBACN9rH,IAAKnnD,KAAKmnD,IACVwU,MAAO,CACLm4B,MAAO9zF,KAAKjW,MAAMszN,aACd,OAAM,QAAA3uN,OACEugO,EAAS,kDAEvB,iBAAgBjvN,KAAKjW,MAAMyW,IAC3B,aAAYR,KAAKa,MAAMkvH,MACvB,YAAW/vH,KAAKa,MAAM8rN,UAAY,QAAK59N,YAER,OAA9BiR,KAAKjW,MAAMk0N,iBAA4Bj+M,KAAK6jH,gBAClB,OAA1B7jH,KAAKjW,MAAM8zN,aAAwB79M,KAAKmtN,YACX,UAA7BntN,KAAKjW,MAAMm0N,gBACV/C,GAAC,MAAG,CAACloC,MAAM,sBAAcjzK,KAAK8tN,iBAGhC3S,GAAC,MAAG,CAAC3uN,IAAKwT,KAAKglG,KAAK4rB,OAAQqiD,MAAM,uCAChCkoC,GAAC,MAAG,CACFx/I,MAAO,CACLm4B,MAAO9zF,KAAKjW,MAAMszN,aAAe,OAAS4R,EAC1Cl7H,OAAQ,kBAGoB,UAA7B/zF,KAAKjW,MAAMm0N,gBAA8Bl+M,KAAK8tN,eAC9C9tN,KAAKouN,sBACLpuN,KAAKsuN,wBAIiB,UAA1BtuN,KAAKjW,MAAM8zN,aAA2B79M,KAAKmtN,YACb,UAA9BntN,KAAKjW,MAAMk0N,iBAA+Bj+M,KAAK6jH,gBAC/C7jH,KAAKa,MAAM8rN,WAAa3sN,KAAK8uN,cAC7B9uN,KAAK6uN,sBAtlCZxoO,WAAAA,CAAY0D,GACVi0H,QAkMFqwF,GAAA,2BAAsB93M,IACpB,MAAMtL,QAAEA,GAAY+U,KAAKjW,MAErBwM,EAAEjR,QAAU2F,IACV+U,KAAKa,MAAM8rN,WACb3sN,KAAK6sN,aAGH7sN,KAAKjW,MAAM40N,gBACb3+M,KAAKjW,MAAM40N,eAAepoN,OAKhC83M,GAAA,wBAAmB93M,IACZyJ,KAAKa,MAAM8rN,YACXp2N,EAAEjR,OAAO4pO,QAAQ,WACpB34N,EAAE84F,iBACF94F,EAAE44N,2BAEFnvN,KAAK6sN,kBAITxe,GAAA,0BAAqB93M,IACdyJ,KAAKa,MAAM8rN,WACH,UAATp2N,EAAE3Q,MACJ2Q,EAAE84F,iBACF94F,EAAE44N,2BAEFnvN,KAAK6sN,iBAwHTxe,GAAA,0BAAoB,KACJruM,KAAKqrN,cAAcrrN,KAAKa,MAAMm9C,MAG5Ch+C,KAAKijH,SAAS,CAAEjlE,IAAK,EAAE,GAAI,IAAK,IAGlCqwJ,GAAA,0BAAoBvqJ,UAClB,MAAM1jD,EAAQJ,KAAKglG,KAAKykH,YAAYt9N,QACpC,IAAKiU,EAAO,OAEZ,MAAM7Z,MAAEA,GAAU6Z,EACZkrN,QAAsBzK,GAAYv4M,OAAO/hB,GACzC6oO,EAAcA,KACbpvN,KAAKglG,KAAK4rB,OAAOzkI,UACtB6T,KAAKglG,KAAK4rB,OAAOzkI,QAAQ4tG,UAAY,EAAC,EAGxC,IAAKuxH,EACH,OAAOtrN,KAAKijH,SAAS,eAAEqoG,EAAettK,IAAK,EAAE,GAAI,IAAMoxK,GAGzD,MAAMpxK,EAAM59C,EAAM04F,gBAAkB14F,EAAM7Z,MAAMd,OAAS,CAAC,EAAG,GAAK,EAAE,GAAI,GAClE4kO,EAAO,GACbA,EAAKC,QAAUgB,EAAc7lO,OAC7B,IAAI+kO,EAAM,KAEV,IAAK,IAAIjP,KAAS+P,EACXjB,EAAK5kO,QAAU+kO,EAAI/kO,QAAUua,KAAK+qN,eACrCP,EAAM,GACNA,EAAIC,aAAe,SACnBD,EAAIE,QAAUL,EAAK5kO,OACnB4kO,EAAKllO,KAAKqlO,IAGZA,EAAIrlO,KAAKo2N,GAGXv7M,KAAKusN,cACLvsN,KAAKijH,SAAS,CAAEqoG,cAAejB,MAAMrsK,GAAOoxK,EAAY,IAG1D/gB,GAAA,4BAAuB93M,IAErB,MAAM6J,EAAQ7J,EAAE04F,cAGhB,OAFA14F,EAAE44N,2BAEM54N,EAAE3Q,KACR,IAAK,YAGHoa,KAAK6kK,SAAS,GAAEtuK,QAAG6J,EAAOhT,MAAM,IAChC,MAEF,IAAK,aAGH4S,KAAK6kK,SAAS,GAAEtuK,QAAG6J,EAAO/S,OAAO,IACjC,MAEF,IAAK,UAGH2S,KAAK6kK,SAAS,GAAEtuK,QAAG6J,EAAO+yJ,IAAI,IAC9B,MAEF,IAAK,YAGHnzJ,KAAK6kK,SAAS,GAAEtuK,QAAG6J,EAAO8rN,MAAM,IAChC,MAEF,IAAK,QACH31N,EAAE84F,iBACFrvF,KAAK4sN,iBAAiB,GAAEr2N,EAAGynD,IAAKh+C,KAAKa,MAAMm9C,MAC3C,MAEF,IAAK,SACHznD,EAAE84F,iBACErvF,KAAKa,MAAMyqN,cACbtrN,KAAKmuN,cAELnuN,KAAKisN,oBASb5d,GAAA,oBAAc,KACZ,MAAMjuM,EAAQJ,KAAKglG,KAAKykH,YAAYt9N,QAC/BiU,IAELA,EAAM7Z,MAAQ,GACd6Z,EAAM45F,QAENh6F,KAAKiuN,oBAAmB,IAiJ1B5f,GAAA,4BAAsBghB,IAAqB,IAApBxP,SAAEA,EAAQt6N,EAAEA,GAAG8pO,EACpCrvN,KAAK80K,SAAc,GAALvvL,EAAS,CAAEilO,KAAM,GAAM,CAAEzB,WAAYlJ,EAAS/rN,IAAK,IA0BnEu6M,GAAA,kBAAa93M,IACX,MAAM04F,cAAEA,GAAkB14F,EACpB+xI,EAAOr5C,EAAc2uC,wBAE3B59H,KAAKijH,SAAS,CAAE0pG,UAAWrkF,IAAQxkF,gBAE3B49J,GAAM,GAEZ,MAAM6H,EAAOvpN,KAAKglG,KAAKukH,KAAKp9N,QACvBo9N,IAELA,EAAKluF,UAAUhjH,OAAO,UACtBrY,KAAKglG,KAAK2kH,cAAcx9N,QAAQ6tG,QAEhCh6F,KAAKutC,KAAK1hB,iBAAiB,QAAS7rB,KAAK+sN,iBAAiB,GAC1D/sN,KAAKutC,KAAK1hB,iBAAiB,UAAW7rB,KAAKgtN,mBAAmB,GAAK,GACnE,IApnBFhtN,KAAKmqN,UAAY,GAEjBnqN,KAAKa,MAAQ,CACXm9C,IAAK,EAAE,GAAI,GACX6+J,QAAS78M,KAAKkrN,mBAAmBnhO,GACjC+hO,YAAa,CAAE,GAAG,MACf9rN,KAAKopN,gBAAgBr/N,KClBf,MAAMulO,WAAsB5L,GAOzC,uBAAMO,GACJ,MAAMl6N,EAAQg3N,GAAS/gN,KAAKjW,MAAOqzN,GAAap9M,MAChDjW,EAAMkB,QAAU+U,KAChBjW,EAAMyC,IAAO8qI,IACXt3H,KAAKs3H,UAAYA,CAAS,QAGtBgoF,GAAKv1N,GACPiW,KAAKwjN,cAETvJ,GAAOkB,GAACgO,GAAM,IAAKp/N,IAAWiW,KAAK8jN,YAdrCz9N,WAAAA,CAAY0D,GACVi0H,MAAMj0H,EAAO,CAAE2qJ,OAAQkrE,GAAA2P,OAHzBlhB,GADmBihB,GACZ,QAAQlS,IAqBW,qBAAnB8G,gBACNA,eAAe5rN,IAAI,oBAEpB4rN,eAAej2D,OAAO,kBAAmBqhE,cC7B5B,SAAAE,GAAqBzlO,GAClC,MAAMyC,GAAM,EAAAijO,EAAAA,QAAO,MACb5zH,GAAW,EAAA4zH,EAAAA,QAAO,MAcxB,OAZI5zH,EAAS1vG,SACX0vG,EAAS1vG,QAAQ4E,OAAOhH,IAG1B,EAAA2lO,EAAAA,YAAU,KACR7zH,EAAS1vG,QAAU,IAAIwjO,GAAO,IAAK5lO,MAAOyC,IAEnC,KACLqvG,EAAS1vG,QAAU,IAAI,IAExB,IAEIyjO,EAAM5+N,cAAc,MAAO,KAAExE,ICpBtC+iO,GAAiB,6xbCAjB,MAAMM,GAAejrO,OAAOwQ,OAAO,MACnCy6N,GAAmB,KAAI,IACvBA,GAAoB,MAAI,IACxBA,GAAmB,KAAI,IACvBA,GAAmB,KAAI,IACvBA,GAAsB,QAAI,IAC1BA,GAAsB,QAAI,IAC1BA,GAAmB,KAAI,IACvB,MAAMC,GAAuBlrO,OAAOwQ,OAAO,MAC3CxQ,OAAOD,KAAKkrO,IAAclqO,SAASC,IAC/BkqO,GAAqBD,GAAajqO,IAAQA,CAAG,IAEjD,MAAMmqO,GAAe,CAAEp8N,KAAM,QAAS4L,KAAM,gBCXtCywN,GAAiC,oBAATv6L,MACT,qBAATA,MACqC,6BAAzC7wC,OAAO0B,UAAUiC,SAAStB,KAAKwuC,MACjCw6L,GAA+C,oBAAhB/wN,YAE/BC,GAAUjZ,GACyB,oBAAvBgZ,YAAYC,OACpBD,YAAYC,OAAOjZ,GACnBA,GAAOA,EAAIyZ,kBAAkBT,YAEjCgxN,GAAeA,CAAA//N,EAAiBggO,EAAgBvoN,KAAa,IAA7C,KAAEjU,EAAI,KAAE4L,GAAMpP,EAChC,OAAI6/N,IAAkBzwN,aAAgBk2B,KAC9B06L,EACOvoN,EAASrI,GAGT6wN,GAAmB7wN,EAAMqI,GAG/BqoN,KACJ1wN,aAAgBL,aAAeC,GAAOI,IACnC4wN,EACOvoN,EAASrI,GAGT6wN,GAAmB,IAAI36L,KAAK,CAACl2B,IAAQqI,GAI7CA,EAASioN,GAAal8N,IAAS4L,GAAQ,IAAI,EAEhD6wN,GAAqBA,CAAC7wN,EAAMqI,KAC9B,MAAMyoN,EAAa,IAAI3xK,WAKvB,OAJA2xK,EAAWxxK,OAAS,WAChB,MAAMi0H,EAAUu9C,EAAWhhO,OAAOiY,MAAM,KAAK,GAC7CM,EAAS,KAAOkrK,GAAW,IAC/B,EACOu9C,EAAWt3E,cAAcx5I,EAAK,EAEzC,SAASysJ,GAAQzsJ,GACb,OAAIA,aAAgBG,WACTH,EAEFA,aAAgBL,YACd,IAAIQ,WAAWH,GAGf,IAAIG,WAAWH,EAAKI,OAAQJ,EAAKK,WAAYL,EAAKC,WAEjE,CACA,IAAI8wN,GClDJ,MAAMC,GAAQ,mEAER/6J,GAA+B,qBAAf91D,WAA6B,GAAK,IAAIA,WAAW,KACvE,IAAK,IAAIna,EAAI,EAAGA,EAAIgrO,GAAchrO,IAC9BiwE,GAAO+6J,GAAM9yK,WAAWl4D,IAAMA,EAE3B,MCLD0qO,GAA+C,oBAAhB/wN,YACxBsxN,GAAeA,CAACC,EAAeC,KACxC,GAA6B,kBAAlBD,EACP,MAAO,CACH98N,KAAM,UACN4L,KAAMoxN,GAAUF,EAAeC,IAGvC,MAAM/8N,EAAO88N,EAAcj9N,OAAO,GAClC,GAAa,MAATG,EACA,MAAO,CACHA,KAAM,UACN4L,KAAMqxN,GAAmBH,EAAc5jM,UAAU,GAAI6jM,IAI7D,OADmBZ,GAAqBn8N,GAIjC88N,EAAchrO,OAAS,EACxB,CACEkO,KAAMm8N,GAAqBn8N,GAC3B4L,KAAMkxN,EAAc5jM,UAAU,IAEhC,CACEl5B,KAAMm8N,GAAqBn8N,IARxBo8N,EASN,EAEHa,GAAqBA,CAACrxN,EAAMmxN,KAC9B,GAAIT,GAAuB,CACvB,MAAM3wD,EDTS15J,KACnB,IAA8DrgB,EAAUsrO,EAAUC,EAAUC,EAAUC,EAAlGjwN,EAA+B,IAAhB6E,EAAOngB,OAAemD,EAAMgd,EAAOngB,OAAW4zE,EAAI,EACnC,MAA9BzzD,EAAOA,EAAOngB,OAAS,KACvBsb,IACkC,MAA9B6E,EAAOA,EAAOngB,OAAS,IACvBsb,KAGR,MAAMkwN,EAAc,IAAI/xN,YAAY6B,GAAewf,EAAQ,IAAI7gB,WAAWuxN,GAC1E,IAAK1rO,EAAI,EAAGA,EAAIqD,EAAKrD,GAAK,EACtBsrO,EAAWr7J,GAAO5vD,EAAO63C,WAAWl4D,IACpCurO,EAAWt7J,GAAO5vD,EAAO63C,WAAWl4D,EAAI,IACxCwrO,EAAWv7J,GAAO5vD,EAAO63C,WAAWl4D,EAAI,IACxCyrO,EAAWx7J,GAAO5vD,EAAO63C,WAAWl4D,EAAI,IACxCg7B,EAAM84C,KAAQw3J,GAAY,EAAMC,GAAY,EAC5CvwM,EAAM84C,MAAoB,GAAXy3J,IAAkB,EAAMC,GAAY,EACnDxwM,EAAM84C,MAAoB,EAAX03J,IAAiB,EAAiB,GAAXC,EAE1C,OAAOC,CAAW,ECTEx+L,CAAOlzB,GACvB,OAAOoxN,GAAUrxD,EAASoxD,EAC9B,CAEI,MAAO,CAAE9qN,QAAQ,EAAMrG,OAC3B,EAEEoxN,GAAYA,CAACpxN,EAAMmxN,IAEZ,SADDA,EAEInxN,aAAgBk2B,KAETl2B,EAIA,IAAIk2B,KAAK,CAACl2B,IAIjBA,aAAgBL,YAETK,EAIAA,EAAKI,OCvDtBuxN,GAAY56M,OAAO8yC,aAAa,IA4B/B,SAAS+nK,KACZ,OAAO,IAAIC,gBAAgB,CACvB72I,SAAAA,CAAU82I,EAAQC,IHmBnB,SAA8BD,EAAQzpN,GACrCooN,IAAkBqB,EAAO9xN,gBAAgBk2B,KAClC47L,EAAO9xN,KAAK0kM,cAAcr3M,KAAKo/J,IAASp/J,KAAKgb,GAE/CqoN,KACJoB,EAAO9xN,gBAAgBL,aAAeC,GAAOkyN,EAAO9xN,OAC9CqI,EAASokJ,GAAQqlE,EAAO9xN,OAEnC2wN,GAAamB,GAAQ,GAAQE,IACpBjB,KACDA,GAAe,IAAIkB,aAEvB5pN,EAAS0oN,GAAazqN,OAAO0rN,GAAS,GAE9C,CGhCYE,CAAqBJ,GAASZ,IAC1B,MAAMiB,EAAgBjB,EAAchrO,OACpC,IAAIszC,EAEJ,GAAI24L,EAAgB,IAChB34L,EAAS,IAAIr5B,WAAW,GACxB,IAAIoB,SAASi4B,EAAOp5B,QAAQoC,SAAS,EAAG2vN,QAEvC,GAAIA,EAAgB,MAAO,CAC5B34L,EAAS,IAAIr5B,WAAW,GACxB,MAAMqtB,EAAO,IAAIjsB,SAASi4B,EAAOp5B,QACjCotB,EAAKhrB,SAAS,EAAG,KACjBgrB,EAAK4kM,UAAU,EAAGD,EACtB,KACK,CACD34L,EAAS,IAAIr5B,WAAW,GACxB,MAAMqtB,EAAO,IAAIjsB,SAASi4B,EAAOp5B,QACjCotB,EAAKhrB,SAAS,EAAG,KACjBgrB,EAAK6kM,aAAa,EAAGtzJ,OAAOozJ,GAChC,CAEIL,EAAO9xN,MAA+B,kBAAhB8xN,EAAO9xN,OAC7Bw5B,EAAO,IAAM,KAEjBu4L,EAAWO,QAAQ94L,GACnBu4L,EAAWO,QAAQpB,EAAc,GAEzC,GAER,CACA,IAAIqB,GACJ,SAAS1uN,GAAY2uN,GACjB,OAAOA,EAAO3jO,QAAO,CAACw6L,EAAKhhK,IAAUghK,EAAMhhK,EAAMniC,QAAQ,EAC7D,CACA,SAASusO,GAAaD,EAAQl0K,GAC1B,GAAIk0K,EAAO,GAAGtsO,SAAWo4D,EACrB,OAAOk0K,EAAO5uN,QAElB,MAAMxD,EAAS,IAAID,WAAWm+C,GAC9B,IAAI8J,EAAI,EACR,IAAK,IAAIpiE,EAAI,EAAGA,EAAIs4D,EAAMt4D,IACtBoa,EAAOpa,GAAKwsO,EAAO,GAAGpqK,KAClBA,IAAMoqK,EAAO,GAAGtsO,SAChBssO,EAAO5uN,QACPwkD,EAAI,GAMZ,OAHIoqK,EAAOtsO,QAAUkiE,EAAIoqK,EAAO,GAAGtsO,SAC/BssO,EAAO,GAAKA,EAAO,GAAGvpO,MAAMm/D,IAEzBhoD,CACX,CC/EO,SAAS8hI,GAAQv7I,GACtB,GAAIA,EAAK,OAWX,SAAeA,GACb,IAAK,IAAIN,KAAO67I,GAAQn7I,UACtBJ,EAAIN,GAAO67I,GAAQn7I,UAAUV,GAE/B,OAAOM,CACT,CAhBkBi6C,CAAMj6C,EACxB,CA0BAu7I,GAAQn7I,UAAU+F,GAClBo1I,GAAQn7I,UAAUulC,iBAAmB,SAAShgC,EAAO8lB,GAInD,OAHA3R,KAAKiyN,WAAajyN,KAAKiyN,YAAc,CAAC,GACrCjyN,KAAKiyN,WAAW,IAAMpmO,GAASmU,KAAKiyN,WAAW,IAAMpmO,IAAU,IAC7D1G,KAAKwsB,GACD3R,IACT,EAYAyhI,GAAQn7I,UAAUuoE,KAAO,SAAShjE,EAAO8lB,GACvC,SAAStlB,IACP2T,KAAK1T,IAAIT,EAAOQ,GAChBslB,EAAGvsB,MAAM4a,KAAMxa,UACjB,CAIA,OAFA6G,EAAGslB,GAAKA,EACR3R,KAAK3T,GAAGR,EAAOQ,GACR2T,IACT,EAYAyhI,GAAQn7I,UAAUgG,IAClBm1I,GAAQn7I,UAAU+wB,eAClBoqH,GAAQn7I,UAAU6vC,mBAClBsrG,GAAQn7I,UAAUihG,oBAAsB,SAAS17F,EAAO8lB,GAItD,GAHA3R,KAAKiyN,WAAajyN,KAAKiyN,YAAc,CAAC,EAGlC,GAAKzsO,UAAUC,OAEjB,OADAua,KAAKiyN,WAAa,CAAC,EACZjyN,KAIT,IAUIlU,EAVAs7C,EAAYpnC,KAAKiyN,WAAW,IAAMpmO,GACtC,IAAKu7C,EAAW,OAAOpnC,KAGvB,GAAI,GAAKxa,UAAUC,OAEjB,cADOua,KAAKiyN,WAAW,IAAMpmO,GACtBmU,KAKT,IAAK,IAAIza,EAAI,EAAGA,EAAI6hD,EAAU3hD,OAAQF,IAEpC,IADAuG,EAAKs7C,EAAU7hD,MACJosB,GAAM7lB,EAAG6lB,KAAOA,EAAI,CAC7By1B,EAAUP,OAAOthD,EAAG,GACpB,KACF,CASF,OAJyB,IAArB6hD,EAAU3hD,eACLua,KAAKiyN,WAAW,IAAMpmO,GAGxBmU,IACT,EAUAyhI,GAAQn7I,UAAUkgC,KAAO,SAAS36B,GAChCmU,KAAKiyN,WAAajyN,KAAKiyN,YAAc,CAAC,EAKtC,IAHA,IAAIzyL,EAAO,IAAIh4C,MAAMhC,UAAUC,OAAS,GACpC2hD,EAAYpnC,KAAKiyN,WAAW,IAAMpmO,GAE7BtG,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IACpCi6C,EAAKj6C,EAAI,GAAKC,UAAUD,GAG1B,GAAI6hD,EAEG,CAAI7hD,EAAI,EAAb,IAAK,IAAWqD,GADhBw+C,EAAYA,EAAU5+C,MAAM,IACI/C,OAAQF,EAAIqD,IAAOrD,EACjD6hD,EAAU7hD,GAAGH,MAAM4a,KAAMw/B,EADK/5C,CAKlC,OAAOua,IACT,EAGAyhI,GAAQn7I,UAAU4rO,aAAezwF,GAAQn7I,UAAUkgC,KAUnDi7G,GAAQn7I,UAAUg7C,UAAY,SAASz1C,GAErC,OADAmU,KAAKiyN,WAAajyN,KAAKiyN,YAAc,CAAC,EAC/BjyN,KAAKiyN,WAAW,IAAMpmO,IAAU,EACzC,EAUA41I,GAAQn7I,UAAU6rO,aAAe,SAAStmO,GACxC,QAAUmU,KAAKshC,UAAUz1C,GAAOpG,MAClC,ECxKO,MAAM2sO,GACW,qBAAT7zN,KACAA,KAEgB,qBAAX9I,OACLA,OAGAmnE,SAAS,cAATA,GCPR,SAAS4wJ,GAAKtnO,GAAc,QAAA0lI,EAAApmI,UAAAC,OAANurF,EAAI,IAAAxpF,MAAAokI,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ96C,EAAI86C,EAAA,GAAAtmI,UAAAsmI,GAC7B,OAAO96C,EAAK5iF,QAAO,CAACw6L,EAAKjlL,KACjBzd,EAAIgD,eAAeya,KACnBilL,EAAIjlL,GAAKzd,EAAIyd,IAEVilL,IACR,CAAC,EACR,CAEA,MAAMypC,GAAqB53D,GAAWhyI,WAChC6pM,GAAuB73D,GAAW38D,aACjC,SAASy0H,GAAsBrsO,EAAK85D,GACnCA,EAAKwyK,iBACLtsO,EAAIusO,aAAeJ,GAAmBnhK,KAAKupG,IAC3Cv0K,EAAIwsO,eAAiBJ,GAAqBphK,KAAKupG,MAG/Cv0K,EAAIusO,aAAeh4D,GAAWhyI,WAAWyoC,KAAKupG,IAC9Cv0K,EAAIwsO,eAAiBj4D,GAAW38D,aAAa5sC,KAAKupG,IAE1D,CCjBO,MAAMk4D,WAAuBtoO,MAChChE,WAAAA,CAAYyzK,EAAQ4f,EAAa5lJ,GAC7BkqF,MAAM87C,GACN95J,KAAK05K,YAAcA,EACnB15K,KAAK8zB,QAAUA,EACf9zB,KAAKrM,KAAO,gBAChB,EAEG,MAAMi/N,WAAkBnxF,GAO3Bp7I,WAAAA,CAAY25D,GACRg+D,QACAh+G,KAAKvZ,UAAW,EAChB8rO,GAAsBvyN,KAAMggD,GAC5BhgD,KAAKggD,KAAOA,EACZhgD,KAAKuI,MAAQy3C,EAAKz3C,MAClBvI,KAAK6yN,OAAS7yK,EAAK6yK,MACvB,CAUAprI,OAAAA,CAAQqyE,EAAQ4f,EAAa5lJ,GAEzB,OADAkqF,MAAMk0G,aAAa,QAAS,IAAIS,GAAe74D,EAAQ4f,EAAa5lJ,IAC7D9zB,IACX,CAIAssB,IAAAA,GAGI,OAFAtsB,KAAK8rB,WAAa,UAClB9rB,KAAK8yN,SACE9yN,IACX,CAIA0zI,KAAAA,GAKI,MAJwB,YAApB1zI,KAAK8rB,YAAgD,SAApB9rB,KAAK8rB,aACtC9rB,KAAK+yN,UACL/yN,KAAKi0K,WAEFj0K,IACX,CAMA4X,IAAAA,CAAKo7M,GACuB,SAApBhzN,KAAK8rB,YACL9rB,KAAKqD,MAAM2vN,EAKnB,CAMAC,MAAAA,GACIjzN,KAAK8rB,WAAa,OAClB9rB,KAAKvZ,UAAW,EAChBu3H,MAAMk0G,aAAa,OACvB,CAOAgB,MAAAA,CAAO3zN,GACH,MAAM8xN,EAASb,GAAajxN,EAAMS,KAAK6yN,OAAOnC,YAC9C1wN,KAAKmzN,SAAS9B,EAClB,CAMA8B,QAAAA,CAAS9B,GACLrzG,MAAMk0G,aAAa,SAAUb,EACjC,CAMAp9C,OAAAA,CAAQm/C,GACJpzN,KAAK8rB,WAAa,SAClBkyF,MAAMk0G,aAAa,QAASkB,EAChC,CAMApyG,KAAAA,CAAMf,GAAW,CACjBozG,SAAAA,CAAUC,GAAoB,IAAZ/qN,EAAK/iB,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EACvB,OAAQ8tO,EACJ,MACAtzN,KAAKuzN,YACLvzN,KAAKwzN,QACLxzN,KAAKggD,KAAKt4C,KACV1H,KAAKyzN,OAAOlrN,EACpB,CACAgrN,SAAAA,GACI,MAAMvsM,EAAWhnB,KAAKggD,KAAKh5B,SAC3B,OAAkC,IAA3BA,EAASngC,QAAQ,KAAcmgC,EAAW,IAAMA,EAAW,GACtE,CACAwsM,KAAAA,GACI,OAAIxzN,KAAKggD,KAAKj3B,OACR/oB,KAAKggD,KAAK0zK,QAAUj5M,OAA0B,MAAnBza,KAAKggD,KAAKj3B,QACjC/oB,KAAKggD,KAAK0zK,QAAqC,KAA3Bj5M,OAAOza,KAAKggD,KAAKj3B,OACpC,IAAM/oB,KAAKggD,KAAKj3B,KAGhB,EAEf,CACA0qM,MAAAA,CAAOlrN,GACH,MAAMorN,ECjIP,SAAgBztO,GACnB,IAAIqN,EAAM,GACV,IAAK,IAAIhO,KAAKW,EACNA,EAAIgD,eAAe3D,KACfgO,EAAI9N,SACJ8N,GAAO,KACXA,GAAO+pD,mBAAmB/3D,GAAK,IAAM+3D,mBAAmBp3D,EAAIX,KAGpE,OAAOgO,CACX,CDuH6BsS,CAAO0C,GAC5B,OAAOorN,EAAaluO,OAAS,IAAMkuO,EAAe,EACtD,EEzIJ,MAAMC,GAAW,mEAAmEtsN,MAAM,IAAK7hB,GAAS,GAAIk1B,GAAM,CAAC,EACnH,IAAqBw5C,GAAjBuoF,GAAO,EAAGn3J,GAAI,EAQX,SAASsgB,GAAOiqD,GACnB,IAAIyhK,EAAU,GACd,GACIA,EAAUqC,GAAS9jK,EAAMrqE,IAAU8rO,EACnCzhK,EAAMztD,KAAKC,MAAMwtD,EAAMrqE,UAClBqqE,EAAM,GACf,OAAOyhK,CACX,CAqBO,SAASsC,KACZ,MAAMl5L,EAAM90B,IAAQ,IAAIuK,MACxB,OAAIuqB,IAAQw5B,IACDuoF,GAAO,EAAGvoF,GAAOx5B,GACrBA,EAAM,IAAM90B,GAAO62I,KAC9B,CAIA,KAAOn3J,GAAIE,GAAQF,KACfo1B,GAAIi5M,GAASruO,KAAMA,GChDvB,IAAIgB,IAAQ,EACZ,IACIA,GAAkC,qBAAnBolC,gBACX,oBAAqB,IAAIA,cACjC,CACA,MAAOzjC,IAEH,CAEG,MAAM4rO,GAAUvtO,GCPhB,SAASwtO,GAAI/zK,GAChB,MAAMg0K,EAAUh0K,EAAKg0K,QAErB,IACI,GAAI,qBAAuBroM,kBAAoBqoM,GAAWF,IACtD,OAAO,IAAInoM,cAEnB,CACA,MAAOp1B,IAAK,CACZ,IAAKy9N,EACD,IACI,OAAO,IAAIv5D,GAAW,CAAC,UAAU/rK,OAAO,UAAU4lB,KAAK,OAAM,oBACjE,CACA,MAAO/d,IAAK,CAEpB,CCXA,SAASs9D,KAAU,CACnB,MAAMogK,GAIK,MAHK,IAAItoM,GAAe,CAC3BqoM,SAAS,IAEMrnM,aAkNhB,MAAMxf,WAAgBs0H,GAOzBp7I,WAAAA,CAAY2rC,EAAKguB,GACbg+D,QACAu0G,GAAsBvyN,KAAMggD,GAC5BhgD,KAAKggD,KAAOA,EACZhgD,KAAKsqB,OAAS01B,EAAK11B,QAAU,MAC7BtqB,KAAKgyB,IAAMA,EACXhyB,KAAKT,UAAOxQ,IAAcixD,EAAKzgD,KAAOygD,EAAKzgD,KAAO,KAClDS,KAAK5K,QACT,CAMAA,MAAAA,GACI,IAAI6M,EACJ,MAAM+9C,EAAOwtK,GAAKxtN,KAAKggD,KAAM,QAAS,MAAO,MAAO,aAAc,OAAQ,KAAM,UAAW,qBAAsB,aACjHA,EAAKg0K,UAAYh0N,KAAKggD,KAAK0vC,GAC3B,MAAMhkE,EAAO1rB,KAAK0rB,IAAM,IAAIC,GAAeq0B,GAC3C,IACIt0B,EAAIY,KAAKtsB,KAAKsqB,OAAQtqB,KAAKgyB,KAAK,GAChC,IACI,GAAIhyB,KAAKggD,KAAKk0K,aAAc,CACxBxoM,EAAIyoM,uBAAyBzoM,EAAIyoM,uBAAsB,GACvD,IAAK,IAAI5uO,KAAKya,KAAKggD,KAAKk0K,aAChBl0N,KAAKggD,KAAKk0K,aAAahrO,eAAe3D,IACtCmmC,EAAIc,iBAAiBjnC,EAAGya,KAAKggD,KAAKk0K,aAAa3uO,GAG3D,CACJ,CACA,MAAOgR,IAAK,CACZ,GAAI,SAAWyJ,KAAKsqB,OAChB,IACIoB,EAAIc,iBAAiB,eAAgB,2BACzC,CACA,MAAOj2B,IAAK,CAEhB,IACIm1B,EAAIc,iBAAiB,SAAU,MACnC,CACA,MAAOj2B,IAAK,CACmB,QAA9B0L,EAAKjC,KAAKggD,KAAKo0K,iBAA8B,IAAPnyN,GAAyBA,EAAGoyN,WAAW3oM,GAE1E,oBAAqBA,IACrBA,EAAIgB,gBAAkB1sB,KAAKggD,KAAKtzB,iBAEhC1sB,KAAKggD,KAAKs0K,iBACV5oM,EAAIvgB,QAAUnL,KAAKggD,KAAKs0K,gBAE5B5oM,EAAIklD,mBAAqB,KACrB,IAAI3uE,EACmB,IAAnBypB,EAAII,aAC2B,QAA9B7pB,EAAKjC,KAAKggD,KAAKo0K,iBAA8B,IAAPnyN,GAAyBA,EAAGsyN,aAAa7oM,IAEhF,IAAMA,EAAII,aAEV,MAAQJ,EAAInC,QAAU,OAASmC,EAAInC,OACnCvpB,KAAKy7K,SAKLz7K,KAAKyyN,cAAa,KACdzyN,KAAKynF,QAA8B,kBAAf/7D,EAAInC,OAAsBmC,EAAInC,OAAS,EAAE,GAC9D,GACP,EAEJmC,EAAI9T,KAAK5X,KAAKT,KAClB,CACA,MAAOhJ,IAOH,YAHAyJ,KAAKyyN,cAAa,KACdzyN,KAAKynF,QAAQlxF,GAAE,GAChB,EAEP,CACwB,qBAAbk7B,WACPzxB,KAAK4U,MAAQzH,GAAQqnN,gBACrBrnN,GAAQg+G,SAASnrH,KAAK4U,OAAS5U,KAEvC,CAMAynF,OAAAA,CAAQv/F,GACJ8X,KAAKkyN,aAAa,QAAShqO,EAAK8X,KAAK0rB,KACrC1rB,KAAKijC,SAAQ,EACjB,CAMAA,OAAAA,CAAQwxL,GACJ,GAAI,qBAAuBz0N,KAAK0rB,KAAO,OAAS1rB,KAAK0rB,IAArD,CAIA,GADA1rB,KAAK0rB,IAAIklD,mBAAqB/c,GAC1B4gK,EACA,IACIz0N,KAAK0rB,IAAIgS,OACb,CACA,MAAOnnC,IAAK,CAEQ,qBAAbk7B,iBACAtkB,GAAQg+G,SAASnrH,KAAK4U,OAEjC5U,KAAK0rB,IAAM,IAXX,CAYJ,CAMA+vJ,MAAAA,GACI,MAAMl8K,EAAOS,KAAK0rB,IAAIsB,aACT,OAATztB,IACAS,KAAKkyN,aAAa,OAAQ3yN,GAC1BS,KAAKkyN,aAAa,WAClBlyN,KAAKijC,UAEb,CAMAvF,KAAAA,GACI19B,KAAKijC,SACT,EASJ,GAPA91B,GAAQqnN,cAAgB,EACxBrnN,GAAQg+G,SAAW,CAAC,EAMI,qBAAb15F,SAEP,GAA2B,oBAAhBkmE,YAEPA,YAAY,WAAY+8H,SAEvB,GAAgC,oBAArB7oM,iBAAiC,CAE7CA,iBADyB,eAAgB,GAAa,WAAa,SAChC6oM,IAAe,EACtD,CAEJ,SAASA,KACL,IAAK,IAAInvO,KAAK4nB,GAAQg+G,SACdh+G,GAAQg+G,SAASjiI,eAAe3D,IAChC4nB,GAAQg+G,SAAS5lI,GAAGm4C,OAGhC,CCpYO,MAAMa,GACqC,oBAAZpvC,SAAqD,oBAApBA,QAAQC,QAE/DtD,GAAOqD,QAAQC,UAAUxC,KAAKd,GAG/B,CAACA,EAAI2mO,IAAiBA,EAAa3mO,EAAI,GAGzC6oO,GAAYl6D,GAAWk6D,WAAal6D,GAAWm6D,aCJtDC,GAAqC,qBAAd13K,WACI,kBAAtBA,UAAU23K,SACmB,gBAApC33K,UAAU23K,QAAQh2N,cCLf,MAAMi2N,GAAa,CACtBC,UDKG,cAAiBpC,GAOpBvsO,WAAAA,CAAY25D,GACRg+D,MAAMh+D,GACNhgD,KAAKmwN,gBAAkBnwK,EAAKi1K,WAChC,CACA,QAAIxsO,GACA,MAAO,WACX,CACAqqO,MAAAA,GACI,IAAK9yN,KAAKk1N,QAEN,OAEJ,MAAMljM,EAAMhyB,KAAKgyB,MACX0gH,EAAY1yI,KAAKggD,KAAK0yF,UAEtB1yF,EAAO60K,GACP,CAAC,EACDrH,GAAKxtN,KAAKggD,KAAM,QAAS,oBAAqB,MAAO,MAAO,aAAc,OAAQ,KAAM,UAAW,qBAAsB,eAAgB,kBAAmB,SAAU,aAAc,SAAU,uBAChMhgD,KAAKggD,KAAKk0K,eACVl0K,EAAKxnC,QAAUxY,KAAKggD,KAAKk0K,cAE7B,IACIl0N,KAAKm1N,GACyBN,GAIpB,IAAIF,GAAU3iM,EAAK0gH,EAAW1yF,GAH9B0yF,EACI,IAAIiiF,GAAU3iM,EAAK0gH,GACnB,IAAIiiF,GAAU3iM,EAEhC,CACA,MAAO9pC,IACH,OAAO8X,KAAKkyN,aAAa,QAAShqO,GACtC,CACA8X,KAAKm1N,GAAGzE,WAAa1wN,KAAK6yN,OAAOnC,WACjC1wN,KAAKo1N,mBACT,CAMAA,iBAAAA,GACIp1N,KAAKm1N,GAAGE,OAAS,KACTr1N,KAAKggD,KAAKs1K,WACVt1N,KAAKm1N,GAAGI,QAAQC,QAEpBx1N,KAAKizN,QAAQ,EAEjBjzN,KAAKm1N,GAAGM,QAAWC,GAAe11N,KAAKi0K,QAAQ,CAC3CyF,YAAa,8BACb5lJ,QAAS4hM,IAEb11N,KAAKm1N,GAAG5nE,UAAaooE,GAAO31N,KAAKkzN,OAAOyC,EAAGp2N,MAC3CS,KAAKm1N,GAAGv2K,QAAWroD,GAAMyJ,KAAKynF,QAAQ,kBAAmBlxF,EAC7D,CACA8M,KAAAA,CAAM2vN,GACFhzN,KAAKvZ,UAAW,EAGhB,IAAK,IAAIlB,EAAI,EAAGA,EAAIytO,EAAQvtO,OAAQF,IAAK,CACrC,MAAM8rO,EAAS2B,EAAQztO,GACjBqwO,EAAarwO,IAAMytO,EAAQvtO,OAAS,EAC1CyqO,GAAamB,EAAQrxN,KAAKmwN,gBAAiB5wN,IAmBvC,IAGQS,KAAKm1N,GAAGv9M,KAAKrY,EAKrB,CACA,MAAOhJ,IACP,CACIq/N,GAGAr3L,IAAS,KACLv+B,KAAKvZ,UAAW,EAChBuZ,KAAKkyN,aAAa,QAAQ,GAC3BlyN,KAAKyyN,aACZ,GAER,CACJ,CACAM,OAAAA,GAC2B,qBAAZ/yN,KAAKm1N,KACZn1N,KAAKm1N,GAAGzhF,QACR1zI,KAAKm1N,GAAK,KAElB,CAMAnjM,GAAAA,GACI,MAAMshM,EAAStzN,KAAKggD,KAAK0zK,OAAS,MAAQ,KACpCnrN,EAAQvI,KAAKuI,OAAS,CAAC,EAS7B,OAPIvI,KAAKggD,KAAK61K,oBACVttN,EAAMvI,KAAKggD,KAAK81K,gBAAkBjC,MAGjC7zN,KAAKmwN,iBACN5nN,EAAMmsD,IAAM,GAET10D,KAAKqzN,UAAUC,EAAQ/qN,EAClC,CAOA2sN,KAAAA,GACI,QAASP,EACb,GCjJAoB,aCFG,cAAiBnD,GACpB,QAAInqO,GACA,MAAO,cACX,CACAqqO,MAAAA,GAEgC,oBAAjBkD,eAIXh2N,KAAKi2N,UAAY,IAAID,aAAah2N,KAAKqzN,UAAU,SAAUrzN,KAAKggD,KAAKk2K,iBAAiBl2N,KAAKvX,OAC3FuX,KAAKi2N,UAAUE,OACVvpO,MAAK,KACNoT,KAAKi0K,SAAS,IAEb/1E,OAAOh2G,IACR8X,KAAKynF,QAAQ,qBAAsBv/F,EAAI,IAG3C8X,KAAKi2N,UAAUG,MAAMxpO,MAAK,KACtBoT,KAAKi2N,UAAUI,4BAA4BzpO,MAAM+yB,IAC7C,MAAM22M,Eb8Df,SAAmCC,EAAY7F,GAC7CoB,KACDA,GAAe,IAAI0E,aAEvB,MAAMzE,EAAS,GACf,IAAIlxN,EAAQ,EACR41N,GAAkB,EAClBj3M,GAAW,EACf,OAAO,IAAI4xM,gBAAgB,CACvB72I,SAAAA,CAAU3yD,EAAO0pM,GAEb,IADAS,EAAO5sO,KAAKyiC,KACC,CACT,GAAc,IAAV/mB,EAAqC,CACrC,GAAIuC,GAAY2uN,GAAU,EACtB,MAEJ,MAAMh5L,EAASi5L,GAAaD,EAAQ,GACpCvyM,EAAkC,OAAV,IAAZuZ,EAAO,IACnB09L,EAA6B,IAAZ19L,EAAO,GAEpBl4B,EADA41N,EAAiB,IACT,EAEgB,MAAnBA,EACG,EAGA,CAEhB,MACK,GAAc,IAAV51N,EAAiD,CACtD,GAAIuC,GAAY2uN,GAAU,EACtB,MAEJ,MAAM2E,EAAc1E,GAAaD,EAAQ,GACzC0E,EAAiB,IAAI31N,SAAS41N,EAAY/2N,OAAQ+2N,EAAY92N,WAAY82N,EAAYjxO,QAAQkxO,UAAU,GACxG91N,EAAQ,CACZ,MACK,GAAc,IAAVA,EAAiD,CACtD,GAAIuC,GAAY2uN,GAAU,EACtB,MAEJ,MAAM2E,EAAc1E,GAAaD,EAAQ,GACnChlM,EAAO,IAAIjsB,SAAS41N,EAAY/2N,OAAQ+2N,EAAY92N,WAAY82N,EAAYjxO,QAC5E6C,EAAIykC,EAAKtqB,UAAU,GACzB,GAAIna,EAAI+Z,KAAKM,IAAI,EAAG,IAAW,EAAG,CAE9B2uN,EAAWO,QAAQ9B,IACnB,KACJ,CACA0G,EAAiBnuO,EAAI+Z,KAAKM,IAAI,EAAG,IAAMoqB,EAAKtqB,UAAU,GACtD5B,EAAQ,CACZ,KACK,CACD,GAAIuC,GAAY2uN,GAAU0E,EACtB,MAEJ,MAAMl3N,EAAOyyN,GAAaD,EAAQ0E,GAClCnF,EAAWO,QAAQrB,GAAahxM,EAAWjgB,EAAOuyN,GAAar/L,OAAOlzB,GAAOmxN,IAC7E7vN,EAAQ,CACZ,CACA,GAAuB,IAAnB41N,GAAwBA,EAAiBF,EAAY,CACrDjF,EAAWO,QAAQ9B,IACnB,KACJ,CACJ,CACJ,GAER,CajIsC6G,CAA0Bn8M,OAAOo8M,iBAAkB72N,KAAK6yN,OAAOnC,YAC/E/xK,EAASh/B,EAAO6e,SAASs4L,YAAYR,GAAeS,YACpDC,EAAgB7F,KACtB6F,EAAcx4L,SAASy4L,OAAOt3M,EAAOl5B,UACrCuZ,KAAKk3N,OAASF,EAAcvwO,SAAS0wO,YACrC,MAAMtwM,EAAOA,KACT83B,EACK93B,OACAj6B,MAAKuD,IAAqB,IAApB,KAAElI,EAAI,MAAE1B,GAAO4J,EAClBlI,IAGJ+X,KAAKmzN,SAAS5sO,GACdsgC,IAAM,IAELq3E,OAAOh2G,OACV,EAEN2+B,IACA,MAAMwqM,EAAS,CAAE19N,KAAM,QACnBqM,KAAKuI,MAAM6uN,MACX/F,EAAO9xN,KAAO,WAAH7Q,OAAcsR,KAAKuI,MAAM6uN,IAAG,OAE3Cp3N,KAAKk3N,OAAO7zN,MAAMguN,GAAQzkO,MAAK,IAAMoT,KAAKizN,UAAS,GACrD,IAEV,CACA5vN,KAAAA,CAAM2vN,GACFhzN,KAAKvZ,UAAW,EAChB,IAAK,IAAIlB,EAAI,EAAGA,EAAIytO,EAAQvtO,OAAQF,IAAK,CACrC,MAAM8rO,EAAS2B,EAAQztO,GACjBqwO,EAAarwO,IAAMytO,EAAQvtO,OAAS,EAC1Cua,KAAKk3N,OAAO7zN,MAAMguN,GAAQzkO,MAAK,KACvBgpO,GACAr3L,IAAS,KACLv+B,KAAKvZ,UAAW,EAChBuZ,KAAKkyN,aAAa,QAAQ,GAC3BlyN,KAAKyyN,aACZ,GAER,CACJ,CACAM,OAAAA,GACI,IAAI9wN,EACsB,QAAzBA,EAAKjC,KAAKi2N,iBAA8B,IAAPh0N,GAAyBA,EAAGyxI,OAClE,GD/DA2jF,QHQG,cAAsBzE,GAOzBvsO,WAAAA,CAAY25D,GAGR,GAFAg+D,MAAMh+D,GACNhgD,KAAKq3N,SAAU,EACS,qBAAbntO,SAA0B,CACjC,MAAMotO,EAAQ,WAAaptO,SAASmgC,SACpC,IAAItB,EAAO7+B,SAAS6+B,KAEfA,IACDA,EAAOuuM,EAAQ,MAAQ,MAE3Bt3N,KAAK0vF,GACoB,qBAAbxlG,UACJ81D,EAAKh5B,WAAa98B,SAAS88B,UAC3B+B,IAASi3B,EAAKj3B,IAC1B,CAIA,MAAMksM,EAAcj1K,GAAQA,EAAKi1K,YACjCj1N,KAAKmwN,eAAiB8D,KAAYgB,EAC9Bj1N,KAAKggD,KAAKtzB,kBACV1sB,KAAKo0N,eAAYmD,EAEzB,CACA,QAAI9uO,GACA,MAAO,SACX,CAOAqqO,MAAAA,GACI9yN,KAAKw3N,MACT,CAOAx2G,KAAAA,CAAMf,GACFjgH,KAAK8rB,WAAa,UAClB,MAAMk1F,EAAQA,KACVhhH,KAAK8rB,WAAa,SAClBm0F,GAAS,EAEb,GAAIjgH,KAAKq3N,UAAYr3N,KAAKvZ,SAAU,CAChC,IAAIohC,EAAQ,EACR7nB,KAAKq3N,UACLxvM,IACA7nB,KAAK6uD,KAAK,gBAAgB,aACpBhnC,GAASm5F,GACf,KAEChhH,KAAKvZ,WACNohC,IACA7nB,KAAK6uD,KAAK,SAAS,aACbhnC,GAASm5F,GACf,IAER,MAEIA,GAER,CAMAw2G,IAAAA,GACIx3N,KAAKq3N,SAAU,EACfr3N,KAAKy3N,SACLz3N,KAAKkyN,aAAa,OACtB,CAMAgB,MAAAA,CAAO3zN,GTpFWm4N,EAACC,EAAgBjH,KACnC,MAAMkH,EAAiBD,EAAerwN,MAAM4pN,IACtC8B,EAAU,GAChB,IAAK,IAAIztO,EAAI,EAAGA,EAAIqyO,EAAenyO,OAAQF,IAAK,CAC5C,MAAMsyO,EAAgBrH,GAAaoH,EAAeryO,GAAImrO,GAEtD,GADAsC,EAAQ7tO,KAAK0yO,GACc,UAAvBA,EAAclkO,KACd,KAER,CACA,OAAOq/N,CAAO,ESyFV0E,CAAcn4N,EAAMS,KAAK6yN,OAAOnC,YAAY/qO,SAd1B0rO,IAMd,GAJI,YAAcrxN,KAAK8rB,YAA8B,SAAhBulM,EAAO19N,MACxCqM,KAAKizN,SAGL,UAAY5B,EAAO19N,KAEnB,OADAqM,KAAKi0K,QAAQ,CAAEyF,YAAa,oCACrB,EAGX15K,KAAKmzN,SAAS9B,EAAO,IAKrB,WAAarxN,KAAK8rB,aAElB9rB,KAAKq3N,SAAU,EACfr3N,KAAKkyN,aAAa,gBACd,SAAWlyN,KAAK8rB,YAChB9rB,KAAKw3N,OAKjB,CAMAzE,OAAAA,GACI,MAAMr/E,EAAQA,KACV1zI,KAAKqD,MAAM,CAAC,CAAE1P,KAAM,UAAW,EAE/B,SAAWqM,KAAK8rB,WAChB4nH,IAKA1zI,KAAK6uD,KAAK,OAAQ6kF,EAE1B,CAOArwI,KAAAA,CAAM2vN,GACFhzN,KAAKvZ,UAAW,ETxJFqxO,EAAC9E,EAASprN,KAE5B,MAAMniB,EAASutO,EAAQvtO,OACjBmyO,EAAiB,IAAIpwO,MAAM/B,GACjC,IAAIuhD,EAAQ,EACZgsL,EAAQrtO,SAAQ,CAAC0rO,EAAQ9rO,KAErB2qO,GAAamB,GAAQ,GAAQZ,IACzBmH,EAAeryO,GAAKkrO,IACdzpL,IAAUvhD,GACZmiB,EAASgwN,EAAetjN,KAAK48M,IACjC,GACF,GACJ,ES4IE4G,CAAc9E,GAAUzzN,IACpBS,KAAK+3N,QAAQx4N,GAAM,KACfS,KAAKvZ,UAAW,EAChBuZ,KAAKkyN,aAAa,QAAQ,GAC5B,GAEV,CAMAlgM,GAAAA,GACI,MAAMshM,EAAStzN,KAAKggD,KAAK0zK,OAAS,QAAU,OACtCnrN,EAAQvI,KAAKuI,OAAS,CAAC,EAQ7B,OANI,IAAUvI,KAAKggD,KAAK61K,oBACpBttN,EAAMvI,KAAKggD,KAAK81K,gBAAkBjC,MAEjC7zN,KAAKmwN,gBAAmB5nN,EAAM6uN,MAC/B7uN,EAAMmsD,IAAM,GAET10D,KAAKqzN,UAAUC,EAAQ/qN,EAClC,CAOAmN,OAAAA,GAAmB,IAAXsqC,EAAIx6D,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEZ,OADAZ,OAAOsyC,OAAO8oB,EAAM,CAAE0vC,GAAI1vF,KAAK0vF,GAAI0kI,UAAWp0N,KAAKo0N,WAAap0N,KAAKggD,MAC9D,IAAI7yC,GAAQnN,KAAKgyB,MAAOguB,EACnC,CAQA+3K,OAAAA,CAAQx4N,EAAMoS,GACV,MAAM+L,EAAM1d,KAAK0V,QAAQ,CACrB4U,OAAQ,OACR/qB,KAAMA,IAEVme,EAAIrxB,GAAG,UAAWslB,GAClB+L,EAAIrxB,GAAG,SAAS,CAAC2rO,EAAWlkM,KACxB9zB,KAAKynF,QAAQ,iBAAkBuwI,EAAWlkM,EAAQ,GAE1D,CAMA2jM,MAAAA,GACI,MAAM/5M,EAAM1d,KAAK0V,UACjBgI,EAAIrxB,GAAG,OAAQ2T,KAAKkzN,OAAOhiK,KAAKlxD,OAChC0d,EAAIrxB,GAAG,SAAS,CAAC2rO,EAAWlkM,KACxB9zB,KAAKynF,QAAQ,iBAAkBuwI,EAAWlkM,EAAQ,IAEtD9zB,KAAKi4N,QAAUv6M,CACnB,IKzMEm5E,GAAK,sPACLxvF,GAAQ,CACV,SAAU,WAAY,YAAa,WAAY,OAAQ,WAAY,OAAQ,OAAQ,WAAY,OAAQ,YAAa,OAAQ,QAAS,UAElI,SAASI,GAAMlU,GAClB,GAAIA,EAAI9N,OAAS,IACb,KAAM,eAEV,MAAMuoE,EAAMz6D,EAAK6N,EAAI7N,EAAI1M,QAAQ,KAAM0P,EAAIhD,EAAI1M,QAAQ,MAC7C,GAANua,IAAiB,GAAN7K,IACXhD,EAAMA,EAAIs5B,UAAU,EAAGzrB,GAAK7N,EAAIs5B,UAAUzrB,EAAG7K,GAAG0P,QAAQ,KAAM,KAAO1S,EAAIs5B,UAAUt2B,EAAGhD,EAAI9N,SAE9F,IAAIwhE,EAAI4vC,GAAG9/C,KAAKxjD,GAAO,IAAKy+B,EAAM,CAAC,EAAGzsC,EAAI,GAC1C,KAAOA,KACHysC,EAAI3qB,GAAM9hB,IAAM0hE,EAAE1hE,IAAM,GAU5B,OARU,GAAN6b,IAAiB,GAAN7K,IACXy7B,EAAItsC,OAASsoE,EACbh8B,EAAI7M,KAAO6M,EAAI7M,KAAK0H,UAAU,EAAGmF,EAAI7M,KAAK1/B,OAAS,GAAGwgB,QAAQ,KAAM,KACpE+rB,EAAIkmM,UAAYlmM,EAAIkmM,UAAUjyN,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,KAAM,KAC9E+rB,EAAImmM,SAAU,GAElBnmM,EAAIomM,UAIR,SAAmBlyO,EAAKwhB,GACpB,MAAM2wN,EAAO,WAAYrjG,EAAQttH,EAAKzB,QAAQoyN,EAAM,KAAK/wN,MAAM,KACvC,KAApBI,EAAKlf,MAAM,EAAG,IAA6B,IAAhBkf,EAAKjiB,QAChCuvI,EAAMnuF,OAAO,EAAG,GAEE,KAAlBn/B,EAAKlf,OAAO,IACZwsI,EAAMnuF,OAAOmuF,EAAMvvI,OAAS,EAAG,GAEnC,OAAOuvI,CACX,CAboBojG,CAAUpmM,EAAKA,EAAU,MACzCA,EAAIsmM,SAaR,SAAkBtmM,EAAKzpB,GACnB,MAAMhJ,EAAO,CAAC,EAMd,OALAgJ,EAAMtC,QAAQ,6BAA6B,SAAUsyN,EAAIC,EAAIC,GACrDD,IACAj5N,EAAKi5N,GAAMC,EAEnB,IACOl5N,CACX,CArBmB+4N,CAAStmM,EAAKA,EAAW,OACjCA,CACX,CCrCO,MAAM0mM,WAAej3F,GAOxBp7I,WAAAA,CAAY2rC,GAAgB,IAAXguB,EAAIx6D,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,CAAC,EACrBw4H,QACAh+G,KAAK0wN,WLJoB,cKKzB1wN,KAAK24N,YAAc,GACf3mM,GAAO,kBAAoBA,IAC3BguB,EAAOhuB,EACPA,EAAM,MAENA,GACAA,EAAMvqB,GAAMuqB,GACZguB,EAAKh5B,SAAWgL,EAAI7M,KACpB66B,EAAK0zK,OAA0B,UAAjB1hM,EAAI3H,UAAyC,QAAjB2H,EAAI3H,SAC9C21B,EAAKj3B,KAAOiJ,EAAIjJ,KACZiJ,EAAIzpB,QACJy3C,EAAKz3C,MAAQypB,EAAIzpB,QAEhBy3C,EAAK76B,OACV66B,EAAKh5B,SAAWvf,GAAMu4C,EAAK76B,MAAMA,MAErCotM,GAAsBvyN,KAAMggD,GAC5BhgD,KAAK0zN,OACD,MAAQ1zK,EAAK0zK,OACP1zK,EAAK0zK,OACe,qBAAbxpO,UAA4B,WAAaA,SAASmgC,SAC/D21B,EAAKh5B,WAAag5B,EAAKj3B,OAEvBi3B,EAAKj3B,KAAO/oB,KAAK0zN,OAAS,MAAQ,MAEtC1zN,KAAKgnB,SACDg5B,EAAKh5B,WACoB,qBAAb98B,SAA2BA,SAAS88B,SAAW,aAC/DhnB,KAAK+oB,KACDi3B,EAAKj3B,OACoB,qBAAb7+B,UAA4BA,SAAS6+B,KACvC7+B,SAAS6+B,KACT/oB,KAAK0zN,OACD,MACA,MAClB1zN,KAAK+0N,WAAa/0K,EAAK+0K,YAAc,CACjC,UACA,YACA,gBAEJ/0N,KAAK24N,YAAc,GACnB34N,KAAK44N,cAAgB,EACrB54N,KAAKggD,KAAOp7D,OAAOsyC,OAAO,CACtBxvB,KAAM,aACN21C,OAAO,EACP3wB,iBAAiB,EACjBmsM,SAAS,EACT/C,eAAgB,IAChBgD,iBAAiB,EACjBC,kBAAkB,EAClBC,oBAAoB,EACpBC,kBAAmB,CACfxN,UAAW,MAEfyK,iBAAkB,CAAC,EACnBgD,qBAAqB,GACtBl5K,GACHhgD,KAAKggD,KAAKt4C,KACN1H,KAAKggD,KAAKt4C,KAAKzB,QAAQ,MAAO,KACzBjG,KAAKggD,KAAK+4K,iBAAmB,IAAM,IACb,kBAApB/4N,KAAKggD,KAAKz3C,QACjBvI,KAAKggD,KAAKz3C,MVrDf,SAAgBmzC,GACnB,IAAIy9K,EAAM,CAAC,EACPtsJ,EAAQnxB,EAAGp0C,MAAM,KACrB,IAAK,IAAI/hB,EAAI,EAAGqI,EAAIi/E,EAAMpnF,OAAQF,EAAIqI,EAAGrI,IAAK,CAC1C,IAAI8+J,EAAOx3E,EAAMtnF,GAAG+hB,MAAM,KAC1B6xN,EAAI3+K,mBAAmB6pG,EAAK,KAAO7pG,mBAAmB6pG,EAAK,GAC/D,CACA,OAAO80E,CACX,CU6C8B1mM,CAAOzyB,KAAKggD,KAAKz3C,QAGvCvI,KAAKlM,GAAK,KACVkM,KAAKo5N,SAAW,KAChBp5N,KAAKq5N,aAAe,KACpBr5N,KAAKs5N,YAAc,KAEnBt5N,KAAKu5N,iBAAmB,KACQ,oBAArB1tM,mBACH7rB,KAAKggD,KAAKk5K,sBAIVl5N,KAAKw5N,0BAA4B,KACzBx5N,KAAKi2N,YAELj2N,KAAKi2N,UAAU9/L,qBACfn2B,KAAKi2N,UAAUviF,QACnB,EAEJ7nH,iBAAiB,eAAgB7rB,KAAKw5N,2BAA2B,IAE/C,cAAlBx5N,KAAKgnB,WACLhnB,KAAKy5N,qBAAuB,KACxBz5N,KAAKi0K,QAAQ,kBAAmB,CAC5ByF,YAAa,2BACf,EAEN7tJ,iBAAiB,UAAW7rB,KAAKy5N,sBAAsB,KAG/Dz5N,KAAKssB,MACT,CAQAotM,eAAAA,CAAgBjxO,GACZ,MAAM8f,EAAQ3jB,OAAOsyC,OAAO,CAAC,EAAGl3B,KAAKggD,KAAKz3C,OAE1CA,EAAMoxN,IfgCU,Ee9BhBpxN,EAAM0tN,UAAYxtO,EAEduX,KAAKlM,KACLyU,EAAM6uN,IAAMp3N,KAAKlM,IACrB,MAAMksD,EAAOp7D,OAAOsyC,OAAO,CAAC,EAAGl3B,KAAKggD,KAAM,CACtCz3C,QACAsqN,OAAQ7yN,KACRgnB,SAAUhnB,KAAKgnB,SACf0sM,OAAQ1zN,KAAK0zN,OACb3qM,KAAM/oB,KAAK+oB,MACZ/oB,KAAKggD,KAAKk2K,iBAAiBztO,IAC9B,OAAO,IAAIssO,GAAWtsO,GAAMu3D,EAChC,CAMA1zB,IAAAA,GACI,IAAI2pM,EACJ,GAAIj2N,KAAKggD,KAAK84K,iBACVJ,GAAOkB,wBACmC,IAA1C55N,KAAK+0N,WAAWluO,QAAQ,aACxBovO,EAAY,gBAEX,IAAI,IAAMj2N,KAAK+0N,WAAWtvO,OAK3B,YAHAua,KAAKyyN,cAAa,KACdzyN,KAAKkyN,aAAa,QAAS,0BAA0B,GACtD,GAIH+D,EAAYj2N,KAAK+0N,WAAW,EAChC,CACA/0N,KAAK8rB,WAAa,UAElB,IACImqM,EAAYj2N,KAAK05N,gBAAgBzD,EACrC,CACA,MAAO1/N,IAGH,OAFAyJ,KAAK+0N,WAAW5xN,aAChBnD,KAAKssB,MAET,CACA2pM,EAAU3pM,OACVtsB,KAAK65N,aAAa5D,EACtB,CAMA4D,YAAAA,CAAa5D,GACLj2N,KAAKi2N,WACLj2N,KAAKi2N,UAAU9/L,qBAGnBn2B,KAAKi2N,UAAYA,EAEjBA,EACK5pO,GAAG,QAAS2T,KAAK85N,QAAQ5oK,KAAKlxD,OAC9B3T,GAAG,SAAU2T,KAAKmzN,SAASjiK,KAAKlxD,OAChC3T,GAAG,QAAS2T,KAAKynF,QAAQv2B,KAAKlxD,OAC9B3T,GAAG,SAAUytK,GAAW95J,KAAKi0K,QAAQ,kBAAmBna,IACjE,CAOAigE,KAAAA,CAAMtxO,GACF,IAAIwtO,EAAYj2N,KAAK05N,gBAAgBjxO,GACjCm6C,GAAS,EACb81L,GAAOkB,uBAAwB,EAC/B,MAAMI,EAAkBA,KAChBp3L,IAEJqzL,EAAUr+M,KAAK,CAAC,CAAEjkB,KAAM,OAAQ4L,KAAM,WACtC02N,EAAUpnK,KAAK,UAAW3lD,IACtB,IAAI05B,EAEJ,GAAI,SAAW15B,EAAIvV,MAAQ,UAAYuV,EAAI3J,KAAM,CAG7C,GAFAS,KAAKi6N,WAAY,EACjBj6N,KAAKkyN,aAAa,YAAa+D,IAC1BA,EACD,OACJyC,GAAOkB,sBAAwB,cAAgB3D,EAAUxtO,KACzDuX,KAAKi2N,UAAUj1G,OAAM,KACbp+E,GAEA,WAAa5iC,KAAK8rB,aAEtBmX,IACAjjC,KAAK65N,aAAa5D,GAClBA,EAAUr+M,KAAK,CAAC,CAAEjkB,KAAM,aACxBqM,KAAKkyN,aAAa,UAAW+D,GAC7BA,EAAY,KACZj2N,KAAKi6N,WAAY,EACjBj6N,KAAKk6N,QAAO,GAEpB,KACK,CACD,MAAMhyO,EAAM,IAAImC,MAAM,eAEtBnC,EAAI+tO,UAAYA,EAAUxtO,KAC1BuX,KAAKkyN,aAAa,eAAgBhqO,EACtC,KACF,EAEN,SAASiyO,IACDv3L,IAGJA,GAAS,EACTK,IACAgzL,EAAUviF,QACVuiF,EAAY,KAChB,CAEA,MAAMr3K,EAAW12D,IACb,MAAMqN,EAAQ,IAAIlL,MAAM,gBAAkBnC,GAE1CqN,EAAM0gO,UAAYA,EAAUxtO,KAC5B0xO,IACAn6N,KAAKkyN,aAAa,eAAgB38N,EAAM,EAE5C,SAAS6kO,IACLx7K,EAAQ,mBACZ,CAEA,SAAS62K,IACL72K,EAAQ,gBACZ,CAEA,SAASy7K,EAAUn9G,GACX+4G,GAAa/4G,EAAGz0H,OAASwtO,EAAUxtO,MACnC0xO,GAER,CAEA,MAAMl3L,EAAUA,KACZgzL,EAAU5+M,eAAe,OAAQ2iN,GACjC/D,EAAU5+M,eAAe,QAASunC,GAClCq3K,EAAU5+M,eAAe,QAAS+iN,GAClCp6N,KAAK1T,IAAI,QAASmpO,GAClBz1N,KAAK1T,IAAI,YAAa+tO,EAAU,EAEpCpE,EAAUpnK,KAAK,OAAQmrK,GACvB/D,EAAUpnK,KAAK,QAASjQ,GACxBq3K,EAAUpnK,KAAK,QAASurK,GACxBp6N,KAAK6uD,KAAK,QAAS4mK,GACnBz1N,KAAK6uD,KAAK,YAAawrK,IACwB,IAA3Cr6N,KAAKo5N,SAASvyO,QAAQ,iBACb,iBAAT4B,EAEAuX,KAAKyyN,cAAa,KACT7vL,GACDqzL,EAAU3pM,MACd,GACD,KAGH2pM,EAAU3pM,MAElB,CAMA2mM,MAAAA,GAOI,GANAjzN,KAAK8rB,WAAa,OAClB4sM,GAAOkB,sBAAwB,cAAgB55N,KAAKi2N,UAAUxtO,KAC9DuX,KAAKkyN,aAAa,QAClBlyN,KAAKk6N,QAGD,SAAWl6N,KAAK8rB,YAAc9rB,KAAKggD,KAAK64K,QAAS,CACjD,IAAItzO,EAAI,EACR,MAAMqI,EAAIoS,KAAKo5N,SAAS3zO,OACxB,KAAOF,EAAIqI,EAAGrI,IACVya,KAAK+5N,MAAM/5N,KAAKo5N,SAAS7zO,GAEjC,CACJ,CAMA4tO,QAAAA,CAAS9B,GACL,GAAI,YAAcrxN,KAAK8rB,YACnB,SAAW9rB,KAAK8rB,YAChB,YAAc9rB,KAAK8rB,WAKnB,OAJA9rB,KAAKkyN,aAAa,SAAUb,GAE5BrxN,KAAKkyN,aAAa,aAClBlyN,KAAKs6N,mBACGjJ,EAAO19N,MACX,IAAK,OACDqM,KAAKu6N,YAAY7zN,KAAKe,MAAM4pN,EAAO9xN,OACnC,MACJ,IAAK,OACDS,KAAKw6N,WAAW,QAChBx6N,KAAKkyN,aAAa,QAClBlyN,KAAKkyN,aAAa,QAClB,MACJ,IAAK,QACD,MAAMhqO,EAAM,IAAImC,MAAM,gBAEtBnC,EAAIihB,KAAOkoN,EAAO9xN,KAClBS,KAAKynF,QAAQv/F,GACb,MACJ,IAAK,UACD8X,KAAKkyN,aAAa,OAAQb,EAAO9xN,MACjCS,KAAKkyN,aAAa,UAAWb,EAAO9xN,MAMpD,CAOAg7N,WAAAA,CAAYh7N,GACRS,KAAKkyN,aAAa,YAAa3yN,GAC/BS,KAAKlM,GAAKyL,EAAK63N,IACfp3N,KAAKi2N,UAAU1tN,MAAM6uN,IAAM73N,EAAK63N,IAChCp3N,KAAKo5N,SAAWp5N,KAAKy6N,eAAel7N,EAAK65N,UACzCp5N,KAAKq5N,aAAe95N,EAAK85N,aACzBr5N,KAAKs5N,YAAc/5N,EAAK+5N,YACxBt5N,KAAKu2N,WAAah3N,EAAKg3N,WACvBv2N,KAAKizN,SAED,WAAajzN,KAAK8rB,YAEtB9rB,KAAKs6N,kBACT,CAMAA,gBAAAA,GACIt6N,KAAK0yN,eAAe1yN,KAAKu5N,kBACzBv5N,KAAKu5N,iBAAmBv5N,KAAKyyN,cAAa,KACtCzyN,KAAKi0K,QAAQ,eAAe,GAC7Bj0K,KAAKq5N,aAAer5N,KAAKs5N,aACxBt5N,KAAKggD,KAAKs1K,WACVt1N,KAAKu5N,iBAAiB/D,OAE9B,CAMAsE,OAAAA,GACI95N,KAAK24N,YAAY9xL,OAAO,EAAG7mC,KAAK44N,eAIhC54N,KAAK44N,cAAgB,EACjB,IAAM54N,KAAK24N,YAAYlzO,OACvBua,KAAKkyN,aAAa,SAGlBlyN,KAAKk6N,OAEb,CAMAA,KAAAA,GACI,GAAI,WAAal6N,KAAK8rB,YAClB9rB,KAAKi2N,UAAUxvO,WACduZ,KAAKi6N,WACNj6N,KAAK24N,YAAYlzO,OAAQ,CACzB,MAAMutO,EAAUhzN,KAAK06N,qBACrB16N,KAAKi2N,UAAUr+M,KAAKo7M,GAGpBhzN,KAAK44N,cAAgB5F,EAAQvtO,OAC7Bua,KAAKkyN,aAAa,QACtB,CACJ,CAOAwI,kBAAAA,GAII,KAH+B16N,KAAKu2N,YACR,YAAxBv2N,KAAKi2N,UAAUxtO,MACfuX,KAAK24N,YAAYlzO,OAAS,GAE1B,OAAOua,KAAK24N,YAEhB,IAAIgC,EAAc,EAClB,IAAK,IAAIp1O,EAAI,EAAGA,EAAIya,KAAK24N,YAAYlzO,OAAQF,IAAK,CAC9C,MAAMga,EAAOS,KAAK24N,YAAYpzO,GAAGga,KAIjC,GAHIA,IACAo7N,GZzZO,kBADIz0O,EY0ZeqZ,GZnZ1C,SAAoBhM,GAChB,IAAIiO,EAAI,EAAG/b,EAAS,EACpB,IAAK,IAAIF,EAAI,EAAGqI,EAAI2F,EAAI9N,OAAQF,EAAIqI,EAAGrI,IACnCic,EAAIjO,EAAIkqD,WAAWl4D,GACfic,EAAI,IACJ/b,GAAU,EAEL+b,EAAI,KACT/b,GAAU,EAEL+b,EAAI,OAAUA,GAAK,MACxB/b,GAAU,GAGVF,IACAE,GAAU,GAGlB,OAAOA,CACX,CAxBem1O,CAAW10O,GAGfmc,KAAKwhC,KAPQ,MAOF39C,EAAIsZ,YAActZ,EAAI23D,QYuZ5Bt4D,EAAI,GAAKo1O,EAAc36N,KAAKu2N,WAC5B,OAAOv2N,KAAK24N,YAAYnwO,MAAM,EAAGjD,GAErCo1O,GAAe,CACnB,CZhaD,IAAoBz0O,EYianB,OAAO8Z,KAAK24N,WAChB,CASAt1N,KAAAA,CAAM6F,EAAKjb,EAAS0jB,GAEhB,OADA3R,KAAKw6N,WAAW,UAAWtxN,EAAKjb,EAAS0jB,GAClC3R,IACX,CACA4X,IAAAA,CAAK1O,EAAKjb,EAAS0jB,GAEf,OADA3R,KAAKw6N,WAAW,UAAWtxN,EAAKjb,EAAS0jB,GAClC3R,IACX,CAUAw6N,UAAAA,CAAW7mO,EAAM4L,EAAMtR,EAAS0jB,GAS5B,GARI,oBAAsBpS,IACtBoS,EAAKpS,EACLA,OAAOxQ,GAEP,oBAAsBd,IACtB0jB,EAAK1jB,EACLA,EAAU,MAEV,YAAc+R,KAAK8rB,YAAc,WAAa9rB,KAAK8rB,WACnD,QAEJ79B,EAAUA,GAAW,CAAC,GACd4sO,UAAW,IAAU5sO,EAAQ4sO,SACrC,MAAMxJ,EAAS,CACX19N,KAAMA,EACN4L,KAAMA,EACNtR,QAASA,GAEb+R,KAAKkyN,aAAa,eAAgBb,GAClCrxN,KAAK24N,YAAYxzO,KAAKksO,GAClB1/M,GACA3R,KAAK6uD,KAAK,QAASl9C,GACvB3R,KAAKk6N,OACT,CAIAxmF,KAAAA,GACI,MAAMA,EAAQA,KACV1zI,KAAKi0K,QAAQ,gBACbj0K,KAAKi2N,UAAUviF,OAAO,EAEpBonF,EAAkBA,KACpB96N,KAAK1T,IAAI,UAAWwuO,GACpB96N,KAAK1T,IAAI,eAAgBwuO,GACzBpnF,GAAO,EAELqnF,EAAiBA,KAEnB/6N,KAAK6uD,KAAK,UAAWisK,GACrB96N,KAAK6uD,KAAK,eAAgBisK,EAAgB,EAqB9C,MAnBI,YAAc96N,KAAK8rB,YAAc,SAAW9rB,KAAK8rB,aACjD9rB,KAAK8rB,WAAa,UACd9rB,KAAK24N,YAAYlzO,OACjBua,KAAK6uD,KAAK,SAAS,KACX7uD,KAAKi6N,UACLc,IAGArnF,GACJ,IAGC1zI,KAAKi6N,UACVc,IAGArnF,KAGD1zI,IACX,CAMAynF,OAAAA,CAAQv/F,GACJwwO,GAAOkB,uBAAwB,EAC/B55N,KAAKkyN,aAAa,QAAShqO,GAC3B8X,KAAKi0K,QAAQ,kBAAmB/rL,EACpC,CAMA+rL,OAAAA,CAAQna,EAAQ4f,GACR,YAAc15K,KAAK8rB,YACnB,SAAW9rB,KAAK8rB,YAChB,YAAc9rB,KAAK8rB,aAEnB9rB,KAAK0yN,eAAe1yN,KAAKu5N,kBAEzBv5N,KAAKi2N,UAAU9/L,mBAAmB,SAElCn2B,KAAKi2N,UAAUviF,QAEf1zI,KAAKi2N,UAAU9/L,qBACoB,oBAAxBoxD,sBACPA,oBAAoB,eAAgBvnF,KAAKw5N,2BAA2B,GACpEjyI,oBAAoB,UAAWvnF,KAAKy5N,sBAAsB,IAG9Dz5N,KAAK8rB,WAAa,SAElB9rB,KAAKlM,GAAK,KAEVkM,KAAKkyN,aAAa,QAASp4D,EAAQ4f,GAGnC15K,KAAK24N,YAAc,GACnB34N,KAAK44N,cAAgB,EAE7B,CAOA6B,cAAAA,CAAerB,GACX,MAAM4B,EAAmB,GACzB,IAAIz1O,EAAI,EACR,MAAMoiE,EAAIyxK,EAAS3zO,OACnB,KAAOF,EAAIoiE,EAAGpiE,KACLya,KAAK+0N,WAAWluO,QAAQuyO,EAAS7zO,KAClCy1O,EAAiB71O,KAAKi0O,EAAS7zO,IAEvC,OAAOy1O,CACX,EAEJtC,GAAOruM,SfvbiB,EgBxJAquM,GAAOruM,SCF/B,MAAM4lM,GAA+C,oBAAhB/wN,YAC/BC,GAAUjZ,GACyB,oBAAvBgZ,YAAYC,OACpBD,YAAYC,OAAOjZ,GACnBA,EAAIyZ,kBAAkBT,YAE1B3W,GAAW3D,OAAO0B,UAAUiC,SAC5BynO,GAAiC,oBAATv6L,MACT,qBAATA,MACoB,6BAAxBltC,GAAStB,KAAKwuC,MAChBwlM,GAAiC,oBAATC,MACT,qBAATA,MACoB,6BAAxB3yO,GAAStB,KAAKi0O,MAMf,SAAS17M,GAASt5B,GACrB,OAAS+pO,KAA0B/pO,aAAegZ,aAAeC,GAAOjZ,KACnE8pO,IAAkB9pO,aAAeuvC,MACjCwlM,IAAkB/0O,aAAeg1O,IAC1C,CACO,SAASC,GAAUj1O,EAAKs4B,GAC3B,IAAKt4B,GAAsB,kBAARA,EACf,OAAO,EAEX,GAAIsB,MAAMC,QAAQvB,GAAM,CACpB,IAAK,IAAIX,EAAI,EAAGqI,EAAI1H,EAAIT,OAAQF,EAAIqI,EAAGrI,IACnC,GAAI41O,GAAUj1O,EAAIX,IACd,OAAO,EAGf,OAAO,CACX,CACA,GAAIi6B,GAASt5B,GACT,OAAO,EAEX,GAAIA,EAAIs4B,QACkB,oBAAft4B,EAAIs4B,QACU,IAArBh5B,UAAUC,OACV,OAAO01O,GAAUj1O,EAAIs4B,UAAU,GAEnC,IAAK,MAAM54B,KAAOM,EACd,GAAItB,OAAO0B,UAAU4C,eAAejC,KAAKf,EAAKN,IAAQu1O,GAAUj1O,EAAIN,IAChE,OAAO,EAGf,OAAO,CACX,CCzCO,SAASw1O,GAAkB/J,GAC9B,MAAM/pM,EAAU,GACV+zM,EAAahK,EAAO9xN,KACpB+7N,EAAOjK,EAGb,OAFAiK,EAAK/7N,KAAOg8N,GAAmBF,EAAY/zM,GAC3Cg0M,EAAKE,YAAcl0M,EAAQ7hC,OACpB,CAAE4rO,OAAQiK,EAAMh0M,QAASA,EACpC,CACA,SAASi0M,GAAmBh8N,EAAM+nB,GAC9B,IAAK/nB,EACD,OAAOA,EACX,GAAIigB,GAASjgB,GAAO,CAChB,MAAMqwH,EAAc,CAAE6rG,cAAc,EAAM3rK,IAAKxoC,EAAQ7hC,QAEvD,OADA6hC,EAAQniC,KAAKoa,GACNqwH,CACX,CACK,GAAIpoI,MAAMC,QAAQ8X,GAAO,CAC1B,MAAMm8N,EAAU,IAAIl0O,MAAM+X,EAAK9Z,QAC/B,IAAK,IAAIF,EAAI,EAAGA,EAAIga,EAAK9Z,OAAQF,IAC7Bm2O,EAAQn2O,GAAKg2O,GAAmBh8N,EAAKha,GAAI+hC,GAE7C,OAAOo0M,CACX,CACK,GAAoB,kBAATn8N,KAAuBA,aAAgB6Q,MAAO,CAC1D,MAAMsrN,EAAU,CAAC,EACjB,IAAK,MAAM91O,KAAO2Z,EACV3a,OAAO0B,UAAU4C,eAAejC,KAAKsY,EAAM3Z,KAC3C81O,EAAQ91O,GAAO21O,GAAmBh8N,EAAK3Z,GAAM0hC,IAGrD,OAAOo0M,CACX,CACA,OAAOn8N,CACX,CASO,SAASo8N,GAAkBtK,EAAQ/pM,GAGtC,OAFA+pM,EAAO9xN,KAAOq8N,GAAmBvK,EAAO9xN,KAAM+nB,UACvC+pM,EAAOmK,YACPnK,CACX,CACA,SAASuK,GAAmBr8N,EAAM+nB,GAC9B,IAAK/nB,EACD,OAAOA,EACX,GAAIA,IAA8B,IAAtBA,EAAKk8N,aAAuB,CAIpC,GAHyC,kBAAbl8N,EAAKuwD,KAC7BvwD,EAAKuwD,KAAO,GACZvwD,EAAKuwD,IAAMxoC,EAAQ7hC,OAEnB,OAAO6hC,EAAQ/nB,EAAKuwD,KAGpB,MAAM,IAAIzlE,MAAM,sBAExB,CACK,GAAI7C,MAAMC,QAAQ8X,GACnB,IAAK,IAAIha,EAAI,EAAGA,EAAIga,EAAK9Z,OAAQF,IAC7Bga,EAAKha,GAAKq2O,GAAmBr8N,EAAKha,GAAI+hC,QAGzC,GAAoB,kBAAT/nB,EACZ,IAAK,MAAM3Z,KAAO2Z,EACV3a,OAAO0B,UAAU4C,eAAejC,KAAKsY,EAAM3Z,KAC3C2Z,EAAK3Z,GAAOg2O,GAAmBr8N,EAAK3Z,GAAM0hC,IAItD,OAAO/nB,CACX,CC5EA,MAAMs8N,GAAkB,CACpB,UACA,gBACA,aACA,gBACA,cACA,kBAOSxxM,GAAW,EACjB,IAAIyxM,IACX,SAAWA,GACPA,EAAWA,EAAoB,QAAI,GAAK,UACxCA,EAAWA,EAAuB,WAAI,GAAK,aAC3CA,EAAWA,EAAkB,MAAI,GAAK,QACtCA,EAAWA,EAAgB,IAAI,GAAK,MACpCA,EAAWA,EAA0B,cAAI,GAAK,gBAC9CA,EAAWA,EAAyB,aAAI,GAAK,eAC7CA,EAAWA,EAAuB,WAAI,GAAK,YAC9C,CARD,CAQGA,KAAeA,GAAa,CAAC,IAIzB,MAAMC,GAMT11O,WAAAA,CAAY2+J,GACRhlJ,KAAKglJ,SAAWA,CACpB,CAOAn/I,MAAAA,CAAO3f,GACH,OAAIA,EAAIyN,OAASmoO,GAAWE,OAAS91O,EAAIyN,OAASmoO,GAAWG,MACrDd,GAAUj1O,GAWX,CAAC8Z,KAAKk8N,eAAeh2O,IAVb8Z,KAAKm8N,eAAe,CACvBxoO,KAAMzN,EAAIyN,OAASmoO,GAAWE,MACxBF,GAAWM,aACXN,GAAWO,WACjBC,IAAKp2O,EAAIo2O,IACT/8N,KAAMrZ,EAAIqZ,KACVzL,GAAI5N,EAAI4N,IAKxB,CAIAooO,cAAAA,CAAeh2O,GAEX,IAAIqN,EAAM,GAAKrN,EAAIyN,KAmBnB,OAjBIzN,EAAIyN,OAASmoO,GAAWM,cACxBl2O,EAAIyN,OAASmoO,GAAWO,aACxB9oO,GAAOrN,EAAIs1O,YAAc,KAIzBt1O,EAAIo2O,KAAO,MAAQp2O,EAAIo2O,MACvB/oO,GAAOrN,EAAIo2O,IAAM,KAGjB,MAAQp2O,EAAI4N,KACZP,GAAOrN,EAAI4N,IAGX,MAAQ5N,EAAIqZ,OACZhM,GAAOmT,KAAKC,UAAUzgB,EAAIqZ,KAAMS,KAAKglJ,WAElCzxJ,CACX,CAMA4oO,cAAAA,CAAej2O,GACX,MAAMq2O,EAAiBnB,GAAkBl1O,GACnCo1O,EAAOt7N,KAAKk8N,eAAeK,EAAelL,QAC1C/pM,EAAUi1M,EAAej1M,QAE/B,OADAA,EAAQ7c,QAAQ6wN,GACTh0M,CACX,EAGJ,SAAS8mC,GAAS7nE,GACd,MAAiD,oBAA1C3B,OAAO0B,UAAUiC,SAAStB,KAAKV,EAC1C,CAMO,MAAMi2O,WAAgB/6F,GAMzBp7I,WAAAA,CAAYo2O,GACRz+G,QACAh+G,KAAKy8N,QAAUA,CACnB,CAMA94M,GAAAA,CAAIz9B,GACA,IAAImrO,EACJ,GAAmB,kBAARnrO,EAAkB,CACzB,GAAI8Z,KAAK08N,cACL,MAAM,IAAIryO,MAAM,mDAEpBgnO,EAASrxN,KAAK28N,aAAaz2O,GAC3B,MAAM02O,EAAgBvL,EAAO19N,OAASmoO,GAAWM,aAC7CQ,GAAiBvL,EAAO19N,OAASmoO,GAAWO,YAC5ChL,EAAO19N,KAAOipO,EAAgBd,GAAWE,MAAQF,GAAWG,IAE5Dj8N,KAAK08N,cAAgB,IAAIG,GAAoBxL,GAElB,IAAvBA,EAAOmK,aACPx9G,MAAMk0G,aAAa,UAAWb,IAKlCrzG,MAAMk0G,aAAa,UAAWb,EAEtC,KACK,KAAI7xM,GAASt5B,KAAQA,EAAI0f,OAe1B,MAAM,IAAIvb,MAAM,iBAAmBnE,GAbnC,IAAK8Z,KAAK08N,cACN,MAAM,IAAIryO,MAAM,oDAGhBgnO,EAASrxN,KAAK08N,cAAcI,eAAe52O,GACvCmrO,IAEArxN,KAAK08N,cAAgB,KACrB1+G,MAAMk0G,aAAa,UAAWb,GAM1C,CACJ,CAOAsL,YAAAA,CAAappO,GACT,IAAIhO,EAAI,EAER,MAAM8zE,EAAI,CACN1lE,KAAM8mB,OAAOlnB,EAAIC,OAAO,KAE5B,QAA2BzE,IAAvB+sO,GAAWziK,EAAE1lE,MACb,MAAM,IAAItJ,MAAM,uBAAyBgvE,EAAE1lE,MAG/C,GAAI0lE,EAAE1lE,OAASmoO,GAAWM,cACtB/iK,EAAE1lE,OAASmoO,GAAWO,WAAY,CAClC,MAAMh8K,EAAQ96D,EAAI,EAClB,KAA2B,MAApBgO,EAAIC,SAASjO,IAAcA,GAAKgO,EAAI9N,SAC3C,MAAM+sC,EAAMj/B,EAAIs5B,UAAUwzB,EAAO96D,GACjC,GAAIitC,GAAO/X,OAAO+X,IAA0B,MAAlBj/B,EAAIC,OAAOjO,GACjC,MAAM,IAAI8E,MAAM,uBAEpBgvE,EAAEmiK,YAAc/gN,OAAO+X,EAC3B,CAEA,GAAI,MAAQj/B,EAAIC,OAAOjO,EAAI,GAAI,CAC3B,MAAM86D,EAAQ96D,EAAI,EAClB,OAASA,GAAG,CAER,GAAI,MADMgO,EAAIC,OAAOjO,GAEjB,MACJ,GAAIA,IAAMgO,EAAI9N,OACV,KACR,CACA4zE,EAAEijK,IAAM/oO,EAAIs5B,UAAUwzB,EAAO96D,EACjC,MAEI8zE,EAAEijK,IAAM,IAGZ,MAAMt0O,EAAOuL,EAAIC,OAAOjO,EAAI,GAC5B,GAAI,KAAOyC,GAAQyyB,OAAOzyB,IAASA,EAAM,CACrC,MAAMq4D,EAAQ96D,EAAI,EAClB,OAASA,GAAG,CACR,MAAMic,EAAIjO,EAAIC,OAAOjO,GACrB,GAAI,MAAQic,GAAKiZ,OAAOjZ,IAAMA,EAAG,GAC3Bjc,EACF,KACJ,CACA,GAAIA,IAAMgO,EAAI9N,OACV,KACR,CACA4zE,EAAEvlE,GAAK2mB,OAAOlnB,EAAIs5B,UAAUwzB,EAAO96D,EAAI,GAC3C,CAEA,GAAIgO,EAAIC,SAASjO,GAAI,CACjB,MAAMkqC,EAAUzvB,KAAK+8N,SAASxpO,EAAIuvB,OAAOv9B,IACzC,IAAIi3O,GAAQQ,eAAe3jK,EAAE1lE,KAAM87B,GAI/B,MAAM,IAAIplC,MAAM,mBAHhBgvE,EAAE95D,KAAOkwB,CAKjB,CACA,OAAO4pC,CACX,CACA0jK,QAAAA,CAASxpO,GACL,IACI,OAAOmT,KAAKe,MAAMlU,EAAKyM,KAAKy8N,QAChC,CACA,MAAOlmO,IACH,OAAO,CACX,CACJ,CACA,qBAAOymO,CAAerpO,EAAM87B,GACxB,OAAQ97B,GACJ,KAAKmoO,GAAWmB,QACZ,OAAO7uK,GAAS3+B,GACpB,KAAKqsM,GAAWoB,WACZ,YAAmBnuO,IAAZ0gC,EACX,KAAKqsM,GAAWqB,cACZ,MAA0B,kBAAZ1tM,GAAwB2+B,GAAS3+B,GACnD,KAAKqsM,GAAWE,MAChB,KAAKF,GAAWM,aACZ,OAAQ50O,MAAMC,QAAQgoC,KACK,kBAAfA,EAAQ,IACW,kBAAfA,EAAQ,KAC6B,IAAzCosM,GAAgBh1O,QAAQ4oC,EAAQ,KAChD,KAAKqsM,GAAWG,IAChB,KAAKH,GAAWO,WACZ,OAAO70O,MAAMC,QAAQgoC,GAEjC,CAIAn6B,OAAAA,GACQ0K,KAAK08N,gBACL18N,KAAK08N,cAAcU,yBACnBp9N,KAAK08N,cAAgB,KAE7B,EAUJ,MAAMG,GACFx2O,WAAAA,CAAYgrO,GACRrxN,KAAKqxN,OAASA,EACdrxN,KAAKsnB,QAAU,GACftnB,KAAKq9N,UAAYhM,CACrB,CASAyL,cAAAA,CAAeQ,GAEX,GADAt9N,KAAKsnB,QAAQniC,KAAKm4O,GACdt9N,KAAKsnB,QAAQ7hC,SAAWua,KAAKq9N,UAAU7B,YAAa,CAEpD,MAAMnK,EAASsK,GAAkB37N,KAAKq9N,UAAWr9N,KAAKsnB,SAEtD,OADAtnB,KAAKo9N,yBACE/L,CACX,CACA,OAAO,IACX,CAIA+L,sBAAAA,GACIp9N,KAAKq9N,UAAY,KACjBr9N,KAAKsnB,QAAU,EACnB,ECrTG,SAASj7B,GAAGnG,EAAKyvO,EAAIhkN,GAExB,OADAzrB,EAAImG,GAAGspO,EAAIhkN,GACJ,WACHzrB,EAAIoG,IAAIqpO,EAAIhkN,EAChB,CACJ,CCEA,MAAMkqN,GAAkBj3O,OAAO24O,OAAO,CAClCC,QAAS,EACTC,cAAe,EACfjjF,WAAY,EACZkjF,cAAe,EAEfhvK,YAAa,EACbr3C,eAAgB,IA0Bb,MAAMqhN,WAAej3F,GAIxBp7I,WAAAA,CAAYs3O,EAAIrB,EAAKt8K,GACjBg+D,QAeAh+G,KAAK49N,WAAY,EAKjB59N,KAAK69N,WAAY,EAIjB79N,KAAK89N,cAAgB,GAIrB99N,KAAK+9N,WAAa,GAOlB/9N,KAAKg+N,OAAS,GAKdh+N,KAAKi+N,UAAY,EACjBj+N,KAAK24C,IAAM,EAwBX34C,KAAKk+N,KAAO,CAAC,EACbl+N,KAAKmoF,MAAQ,CAAC,EACdnoF,KAAK29N,GAAKA,EACV39N,KAAKs8N,IAAMA,EACPt8K,GAAQA,EAAKzG,OACbv5C,KAAKu5C,KAAOyG,EAAKzG,MAErBv5C,KAAKm+N,MAAQv5O,OAAOsyC,OAAO,CAAC,EAAG8oB,GAC3BhgD,KAAK29N,GAAGS,cACRp+N,KAAKssB,MACb,CAeA,gBAAIk3L,GACA,OAAQxjN,KAAK49N,SACjB,CAMAS,SAAAA,GACI,GAAIr+N,KAAKs+N,KACL,OACJ,MAAMX,EAAK39N,KAAK29N,GAChB39N,KAAKs+N,KAAO,CACRjyO,GAAGsxO,EAAI,OAAQ39N,KAAKq1N,OAAOnkK,KAAKlxD,OAChC3T,GAAGsxO,EAAI,SAAU39N,KAAKu+N,SAASrtK,KAAKlxD,OACpC3T,GAAGsxO,EAAI,QAAS39N,KAAK4+C,QAAQsS,KAAKlxD,OAClC3T,GAAGsxO,EAAI,QAAS39N,KAAKy1N,QAAQvkK,KAAKlxD,OAE1C,CAkBA,UAAIq9B,GACA,QAASr9B,KAAKs+N,IAClB,CAWAd,OAAAA,GACI,OAAIx9N,KAAK49N,YAET59N,KAAKq+N,YACAr+N,KAAK29N,GAAkB,eACxB39N,KAAK29N,GAAGrxM,OACR,SAAWtsB,KAAK29N,GAAGa,aACnBx+N,KAAKq1N,UALEr1N,IAOf,CAIAssB,IAAAA,GACI,OAAOtsB,KAAKw9N,SAChB,CAgBA5lN,IAAAA,GAAc,QAAAg0G,EAAApmI,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAAokI,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJtsF,EAAIssF,GAAAtmI,UAAAsmI,GAGR,OAFAtsF,EAAK/0B,QAAQ,WACbzK,KAAKwmB,KAAKphC,MAAM4a,KAAMw/B,GACfx/B,IACX,CAkBAwmB,IAAAA,CAAKmvM,GACD,GAAIkG,GAAgB3yO,eAAeysO,GAC/B,MAAM,IAAItrO,MAAM,IAAMsrO,EAAGptO,WAAa,8BACzC,QAAAyjI,EAAAxmI,UAAAC,OAHO+5C,EAAI,IAAAh4C,MAAAwkI,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJzsF,EAAIysF,EAAA,GAAAzmI,UAAAymI,GAKZ,GADAzsF,EAAK/0B,QAAQkrN,GACT31N,KAAKm+N,MAAMM,UAAYz+N,KAAKmoF,MAAMu2I,YAAc1+N,KAAKmoF,MAAMw2I,SAE3D,OADA3+N,KAAK4+N,YAAYp/L,GACVx/B,KAEX,MAAMqxN,EAAS,CACX19N,KAAMmoO,GAAWE,MACjBz8N,KAAMigC,EAEV6xL,QAAiB,CAAC,GAGlB,GAFAA,EAAOpjO,QAAQ4sO,UAAmC,IAAxB76N,KAAKmoF,MAAM0yI,SAEjC,oBAAsBr7L,EAAKA,EAAK/5C,OAAS,GAAI,CAC7C,MAAMqO,EAAKkM,KAAK24C,MACVkmL,EAAMr/L,EAAKnI,MACjBr3B,KAAK8+N,qBAAqBhrO,EAAI+qO,GAC9BxN,EAAOv9N,GAAKA,CAChB,CACA,MAAMirO,EAAsB/+N,KAAK29N,GAAGzgL,QAChCl9C,KAAK29N,GAAGzgL,OAAO+4K,WACfj2N,KAAK29N,GAAGzgL,OAAO+4K,UAAUxvO,SAY7B,OAXsBuZ,KAAKmoF,MAAMw2I,YAAcI,IAAwB/+N,KAAK49N,aAGnE59N,KAAK49N,WACV59N,KAAKg/N,wBAAwB3N,GAC7BrxN,KAAKqxN,OAAOA,IAGZrxN,KAAK+9N,WAAW54O,KAAKksO,IAEzBrxN,KAAKmoF,MAAQ,CAAC,EACPnoF,IACX,CAIA8+N,oBAAAA,CAAqBhrO,EAAI+qO,GAAK,IACtB58N,EADsB87G,EAAA,KAE1B,MAAM5yG,EAAwC,QAA7BlJ,EAAKjC,KAAKmoF,MAAMh9E,eAA4B,IAAPlJ,EAAgBA,EAAKjC,KAAKm+N,MAAMc,WACtF,QAAgBlwO,IAAZoc,EAEA,YADAnL,KAAKk+N,KAAKpqO,GAAM+qO,GAIpB,MAAM/zE,EAAQ9qJ,KAAK29N,GAAGlL,cAAa,YACxBzyN,KAAKk+N,KAAKpqO,GACjB,IAAK,IAAIvO,EAAI,EAAGA,EAAIya,KAAK+9N,WAAWt4O,OAAQF,IACpCya,KAAK+9N,WAAWx4O,GAAGuO,KAAOA,GAC1BkM,KAAK+9N,WAAWl3L,OAAOthD,EAAG,GAGlCs5O,EAAI53O,KAAK+Y,KAAM,IAAI3V,MAAM,2BAA2B,GACrD8gB,GACGwG,EAAK,WAEPosG,EAAK4/G,GAAGjL,eAAe5nE,GAAO,QAAAo0E,EAAA15O,UAAAC,OAFnB+5C,EAAI,IAAAh4C,MAAA03O,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ3/L,EAAI2/L,GAAA35O,UAAA25O,GAGfN,EAAIz5O,MAAM24H,EAAMv+E,EACpB,EACA7tB,EAAGytN,WAAY,EACfp/N,KAAKk+N,KAAKpqO,GAAM6d,CACpB,CAiBA0tN,WAAAA,CAAY1J,GAAa,QAAA2J,EAAA95O,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAA83O,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ//L,EAAI+/L,EAAA,GAAA/5O,UAAA+5O,GACnB,OAAO,IAAIpwO,SAAQ,CAACC,EAAS8wC,KACzB,MAAMvuB,EAAKA,CAAC6tN,EAAMC,IACPD,EAAOt/L,EAAOs/L,GAAQpwO,EAAQqwO,GAEzC9tN,EAAGytN,WAAY,EACf5/L,EAAKr6C,KAAKwsB,GACV3R,KAAKwmB,KAAKmvM,KAAOn2L,EAAK,GAE9B,CAMAo/L,WAAAA,CAAYp/L,GAAM,IAAAw6F,EAAA,KACd,IAAI6kG,EACiC,oBAA1Br/L,EAAKA,EAAK/5C,OAAS,KAC1Bo5O,EAAMr/L,EAAKnI,OAEf,MAAMg6L,EAAS,CACXv9N,GAAIkM,KAAKi+N,YACTyB,SAAU,EACVt7H,SAAS,EACT5kE,OACA2oD,MAAOvjG,OAAOsyC,OAAO,CAAEwnM,WAAW,GAAQ1+N,KAAKmoF,QAEnD3oD,EAAKr6C,MAAK,SAAC+C,GACP,GAAImpO,IAAWr3F,EAAKgkG,OAAO,GAEvB,OAGJ,GADyB,OAAR91O,EAETmpO,EAAOqO,SAAW1lG,EAAKmkG,MAAMM,UAC7BzkG,EAAKgkG,OAAO76N,QACR07N,GACAA,EAAI32O,SAMZ,GADA8xI,EAAKgkG,OAAO76N,QACR07N,EAAK,SAAAc,EAAAn6O,UAAAC,OAhBEm6O,EAAY,IAAAp4O,MAAAm4O,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAZD,EAAYC,EAAA,GAAAr6O,UAAAq6O,GAiBnBhB,EAAI,QAASe,EACjB,CAGJ,OADAvO,EAAOjtH,SAAU,EACV41B,EAAK8lG,aAChB,IACA9/N,KAAKg+N,OAAO74O,KAAKksO,GACjBrxN,KAAK8/N,aACT,CAOAA,WAAAA,GAA2B,IAAf1lG,EAAK50I,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,IAAAA,UAAA,GACb,IAAKwa,KAAK49N,WAAoC,IAAvB59N,KAAKg+N,OAAOv4O,OAC/B,OAEJ,MAAM4rO,EAASrxN,KAAKg+N,OAAO,GACvB3M,EAAOjtH,UAAYg2B,IAGvBi3F,EAAOjtH,SAAU,EACjBitH,EAAOqO,WACP1/N,KAAKmoF,MAAQkpI,EAAOlpI,MACpBnoF,KAAKwmB,KAAKphC,MAAM4a,KAAMqxN,EAAO7xL,MACjC,CAOA6xL,MAAAA,CAAOA,GACHA,EAAOiL,IAAMt8N,KAAKs8N,IAClBt8N,KAAK29N,GAAGoC,QAAQ1O,EACpB,CAMAgE,MAAAA,GAC4B,mBAAbr1N,KAAKu5C,KACZv5C,KAAKu5C,MAAMh6C,IACPS,KAAKggO,mBAAmBzgO,EAAK,IAIjCS,KAAKggO,mBAAmBhgO,KAAKu5C,KAErC,CAOAymL,kBAAAA,CAAmBzgO,GACfS,KAAKqxN,OAAO,CACR19N,KAAMmoO,GAAWmB,QACjB19N,KAAMS,KAAKigO,KACLr7O,OAAOsyC,OAAO,CAAE8hI,IAAKh5J,KAAKigO,KAAM/8N,OAAQlD,KAAKkgO,aAAe3gO,GAC5DA,GAEd,CAOAq/C,OAAAA,CAAQ12D,GACC8X,KAAK49N,WACN59N,KAAKkyN,aAAa,gBAAiBhqO,EAE3C,CAQAutO,OAAAA,CAAQ37D,EAAQ4f,GACZ15K,KAAK49N,WAAY,SACV59N,KAAKlM,GACZkM,KAAKkyN,aAAa,aAAcp4D,EAAQ4f,GACxC15K,KAAKmgO,YACT,CAOAA,UAAAA,GACIv7O,OAAOD,KAAKqb,KAAKk+N,MAAMv4O,SAASmO,IAE5B,IADmBkM,KAAK+9N,WAAWvvG,MAAM6iG,GAAW/6M,OAAO+6M,EAAOv9N,MAAQA,IACzD,CAEb,MAAM+qO,EAAM7+N,KAAKk+N,KAAKpqO,UACfkM,KAAKk+N,KAAKpqO,GACb+qO,EAAIO,WACJP,EAAI53O,KAAK+Y,KAAM,IAAI3V,MAAM,gCAEjC,IAER,CAOAk0O,QAAAA,CAASlN,GAEL,GADsBA,EAAOiL,MAAQt8N,KAAKs8N,IAG1C,OAAQjL,EAAO19N,MACX,KAAKmoO,GAAWmB,QACR5L,EAAO9xN,MAAQ8xN,EAAO9xN,KAAK63N,IAC3Bp3N,KAAKogO,UAAU/O,EAAO9xN,KAAK63N,IAAK/F,EAAO9xN,KAAKy5J,KAG5Ch5J,KAAKkyN,aAAa,gBAAiB,IAAI7nO,MAAM,8LAEjD,MACJ,KAAKyxO,GAAWE,MAChB,KAAKF,GAAWM,aACZp8N,KAAKqgO,QAAQhP,GACb,MACJ,KAAKyK,GAAWG,IAChB,KAAKH,GAAWO,WACZr8N,KAAKsgO,MAAMjP,GACX,MACJ,KAAKyK,GAAWoB,WACZl9N,KAAKugO,eACL,MACJ,KAAKzE,GAAWqB,cACZn9N,KAAK1K,UACL,MAAMpN,EAAM,IAAImC,MAAMgnO,EAAO9xN,KAAK6J,SAElClhB,EAAIqX,KAAO8xN,EAAO9xN,KAAKA,KACvBS,KAAKkyN,aAAa,gBAAiBhqO,GAG/C,CAOAm4O,OAAAA,CAAQhP,GACJ,MAAM7xL,EAAO6xL,EAAO9xN,MAAQ,GACxB,MAAQ8xN,EAAOv9N,IACf0rC,EAAKr6C,KAAK6a,KAAK6+N,IAAIxN,EAAOv9N,KAE1BkM,KAAK49N,UACL59N,KAAKw9B,UAAUgC,GAGfx/B,KAAK89N,cAAc34O,KAAKP,OAAO24O,OAAO/9L,GAE9C,CACAhC,SAAAA,CAAUgC,GACN,GAAIx/B,KAAKwgO,eAAiBxgO,KAAKwgO,cAAc/6O,OAAQ,CACjD,MAAM67C,EAAYthC,KAAKwgO,cAAch4O,QACrC,IAAK,MAAMi+C,KAAYnF,EACnBmF,EAASrhD,MAAM4a,KAAMw/B,EAE7B,CACAw+E,MAAMx3F,KAAKphC,MAAM4a,KAAMw/B,GACnBx/B,KAAKigO,MAAQzgM,EAAK/5C,QAA2C,kBAA1B+5C,EAAKA,EAAK/5C,OAAS,KACtDua,KAAKkgO,YAAc1gM,EAAKA,EAAK/5C,OAAS,GAE9C,CAMAo5O,GAAAA,CAAI/qO,GACA,MAAMyK,EAAOyB,KACb,IAAIy+B,GAAO,EACX,OAAO,WAEH,IAAIA,EAAJ,CAEAA,GAAO,EAAK,QAAAgiM,EAAAj7O,UAAAC,OAJI+5C,EAAI,IAAAh4C,MAAAi5O,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJlhM,EAAIkhM,GAAAl7O,UAAAk7O,GAKpBniO,EAAK8yN,OAAO,CACR19N,KAAMmoO,GAAWG,IACjBnoO,GAAIA,EACJyL,KAAMigC,GALA,CAOd,CACJ,CAOA8gM,KAAAA,CAAMjP,GACF,MAAMwN,EAAM7+N,KAAKk+N,KAAK7M,EAAOv9N,IACV,oBAAR+qO,WAGJ7+N,KAAKk+N,KAAK7M,EAAOv9N,IAEpB+qO,EAAIO,WACJ/N,EAAO9xN,KAAKkL,QAAQ,MAGxBo0N,EAAIz5O,MAAM4a,KAAMqxN,EAAO9xN,MAC3B,CAMA6gO,SAAAA,CAAUtsO,EAAIklK,GACVh5J,KAAKlM,GAAKA,EACVkM,KAAK69N,UAAY7kE,GAAOh5J,KAAKigO,OAASjnE,EACtCh5J,KAAKigO,KAAOjnE,EACZh5J,KAAK49N,WAAY,EACjB59N,KAAK2gO,eACL3gO,KAAKkyN,aAAa,WAClBlyN,KAAK8/N,aAAY,EACrB,CAMAa,YAAAA,GACI3gO,KAAK89N,cAAcn4O,SAAS65C,GAASx/B,KAAKw9B,UAAUgC,KACpDx/B,KAAK89N,cAAgB,GACrB99N,KAAK+9N,WAAWp4O,SAAS0rO,IACrBrxN,KAAKg/N,wBAAwB3N,GAC7BrxN,KAAKqxN,OAAOA,EAAO,IAEvBrxN,KAAK+9N,WAAa,EACtB,CAMAwC,YAAAA,GACIvgO,KAAK1K,UACL0K,KAAKy1N,QAAQ,uBACjB,CAQAngO,OAAAA,GACQ0K,KAAKs+N,OAELt+N,KAAKs+N,KAAK34O,SAASi7O,GAAeA,MAClC5gO,KAAKs+N,UAAOvvO,GAEhBiR,KAAK29N,GAAa,SAAE39N,KACxB,CAiBAw6I,UAAAA,GAUI,OATIx6I,KAAK49N,WACL59N,KAAKqxN,OAAO,CAAE19N,KAAMmoO,GAAWoB,aAGnCl9N,KAAK1K,UACD0K,KAAK49N,WAEL59N,KAAKy1N,QAAQ,wBAEVz1N,IACX,CAMA0zI,KAAAA,GACI,OAAO1zI,KAAKw6I,YAChB,CAUAqgF,QAAAA,CAASA,GAEL,OADA76N,KAAKmoF,MAAM0yI,SAAWA,EACf76N,IACX,CAUA,YAAI2+N,GAEA,OADA3+N,KAAKmoF,MAAMw2I,UAAW,EACf3+N,IACX,CAcAmL,OAAAA,CAAQA,GAEJ,OADAnL,KAAKmoF,MAAMh9E,QAAUA,EACdnL,IACX,CAYA6gO,KAAAA,CAAMp6L,GAGF,OAFAzmC,KAAKwgO,cAAgBxgO,KAAKwgO,eAAiB,GAC3CxgO,KAAKwgO,cAAcr7O,KAAKshD,GACjBzmC,IACX,CAYA8gO,UAAAA,CAAWr6L,GAGP,OAFAzmC,KAAKwgO,cAAgBxgO,KAAKwgO,eAAiB,GAC3CxgO,KAAKwgO,cAAc/1N,QAAQg8B,GACpBzmC,IACX,CAmBA+gO,MAAAA,CAAOt6L,GACH,IAAKzmC,KAAKwgO,cACN,OAAOxgO,KAEX,GAAIymC,EAAU,CACV,MAAMnF,EAAYthC,KAAKwgO,cACvB,IAAK,IAAIj7O,EAAI,EAAGA,EAAI+7C,EAAU77C,OAAQF,IAClC,GAAIkhD,IAAanF,EAAU/7C,GAEvB,OADA+7C,EAAUuF,OAAOthD,EAAG,GACbya,IAGnB,MAEIA,KAAKwgO,cAAgB,GAEzB,OAAOxgO,IACX,CAKAghO,YAAAA,GACI,OAAOhhO,KAAKwgO,eAAiB,EACjC,CAcAS,aAAAA,CAAcx6L,GAGV,OAFAzmC,KAAKkhO,sBAAwBlhO,KAAKkhO,uBAAyB,GAC3DlhO,KAAKkhO,sBAAsB/7O,KAAKshD,GACzBzmC,IACX,CAcAmhO,kBAAAA,CAAmB16L,GAGf,OAFAzmC,KAAKkhO,sBAAwBlhO,KAAKkhO,uBAAyB,GAC3DlhO,KAAKkhO,sBAAsBz2N,QAAQg8B,GAC5BzmC,IACX,CAmBAohO,cAAAA,CAAe36L,GACX,IAAKzmC,KAAKkhO,sBACN,OAAOlhO,KAEX,GAAIymC,EAAU,CACV,MAAMnF,EAAYthC,KAAKkhO,sBACvB,IAAK,IAAI37O,EAAI,EAAGA,EAAI+7C,EAAU77C,OAAQF,IAClC,GAAIkhD,IAAanF,EAAU/7C,GAEvB,OADA+7C,EAAUuF,OAAOthD,EAAG,GACbya,IAGnB,MAEIA,KAAKkhO,sBAAwB,GAEjC,OAAOlhO,IACX,CAKAqhO,oBAAAA,GACI,OAAOrhO,KAAKkhO,uBAAyB,EACzC,CAQAlC,uBAAAA,CAAwB3N,GACpB,GAAIrxN,KAAKkhO,uBAAyBlhO,KAAKkhO,sBAAsBz7O,OAAQ,CACjE,MAAM67C,EAAYthC,KAAKkhO,sBAAsB14O,QAC7C,IAAK,MAAMi+C,KAAYnF,EACnBmF,EAASrhD,MAAM4a,KAAMqxN,EAAO9xN,KAEpC,CACJ,ECr2BG,SAAS+hO,GAAQthL,GACpBA,EAAOA,GAAQ,CAAC,EAChBhgD,KAAKuhO,GAAKvhL,EAAK7vB,KAAO,IACtBnwB,KAAKowB,IAAM4vB,EAAK5vB,KAAO,IACvBpwB,KAAKwhO,OAASxhL,EAAKwhL,QAAU,EAC7BxhO,KAAKyhO,OAASzhL,EAAKyhL,OAAS,GAAKzhL,EAAKyhL,QAAU,EAAIzhL,EAAKyhL,OAAS,EAClEzhO,KAAK0hO,SAAW,CACpB,CAOAJ,GAAQh7O,UAAUi4H,SAAW,WACzB,IAAIgjH,EAAKvhO,KAAKuhO,GAAKl/N,KAAKM,IAAI3C,KAAKwhO,OAAQxhO,KAAK0hO,YAC9C,GAAI1hO,KAAKyhO,OAAQ,CACb,IAAIE,EAAOt/N,KAAKw+C,SACZ+gL,EAAYv/N,KAAKC,MAAMq/N,EAAO3hO,KAAKyhO,OAASF,GAChDA,EAAoC,IAAN,EAAxBl/N,KAAKC,MAAa,GAAPq/N,IAAuBJ,EAAKK,EAAYL,EAAKK,CAClE,CACA,OAAgC,EAAzBv/N,KAAK8tB,IAAIoxM,EAAIvhO,KAAKowB,IAC7B,EAMAkxM,GAAQh7O,UAAUg5L,MAAQ,WACtBt/K,KAAK0hO,SAAW,CACpB,EAMAJ,GAAQh7O,UAAUu7O,OAAS,SAAU1xM,GACjCnwB,KAAKuhO,GAAKpxM,CACd,EAMAmxM,GAAQh7O,UAAUw7O,OAAS,SAAU1xM,GACjCpwB,KAAKowB,IAAMA,CACf,EAMAkxM,GAAQh7O,UAAUy7O,UAAY,SAAUN,GACpCzhO,KAAKyhO,OAASA,CAClB,EC3DO,MAAMO,WAAgBvgG,GACzBp7I,WAAAA,CAAY2rC,EAAKguB,GACb,IAAI/9C,EACJ+7G,QACAh+G,KAAKiiO,KAAO,CAAC,EACbjiO,KAAKs+N,KAAO,GACRtsM,GAAO,kBAAoBA,IAC3BguB,EAAOhuB,EACPA,OAAMjjC,IAEVixD,EAAOA,GAAQ,CAAC,GACXt4C,KAAOs4C,EAAKt4C,MAAQ,aACzB1H,KAAKggD,KAAOA,EACZuyK,GAAsBvyN,KAAMggD,GAC5BhgD,KAAKkiO,cAAmC,IAAtBliL,EAAKkiL,cACvBliO,KAAKmiO,qBAAqBniL,EAAKmiL,sBAAwBx0K,KACvD3tD,KAAKoiO,kBAAkBpiL,EAAKoiL,mBAAqB,KACjDpiO,KAAKqiO,qBAAqBriL,EAAKqiL,sBAAwB,KACvDriO,KAAKsiO,oBAAwD,QAAnCrgO,EAAK+9C,EAAKsiL,2BAAwC,IAAPrgO,EAAgBA,EAAK,IAC1FjC,KAAKuiO,QAAU,IAAIjB,GAAQ,CACvBnxM,IAAKnwB,KAAKoiO,oBACVhyM,IAAKpwB,KAAKqiO,uBACVZ,OAAQzhO,KAAKsiO,wBAEjBtiO,KAAKmL,QAAQ,MAAQ60C,EAAK70C,QAAU,IAAQ60C,EAAK70C,SACjDnL,KAAKw+N,YAAc,SACnBx+N,KAAKgyB,IAAMA,EACX,MAAMwwM,EAAUxiL,EAAK9/B,QAAUA,EAC/BlgB,KAAKyiO,QAAU,IAAID,EAAQzG,QAC3B/7N,KAAK0iO,QAAU,IAAIF,EAAQhG,QAC3Bx8N,KAAKo+N,cAAoC,IAArBp+K,EAAK2iL,YACrB3iO,KAAKo+N,cACLp+N,KAAKssB,MACb,CACA41M,YAAAA,CAAappM,GACT,OAAKtzC,UAAUC,QAEfua,KAAK4iO,gBAAkB9pM,EAChB94B,MAFIA,KAAK4iO,aAGpB,CACAT,oBAAAA,CAAqBrpM,GACjB,YAAU/pC,IAAN+pC,EACO94B,KAAK6iO,uBAChB7iO,KAAK6iO,sBAAwB/pM,EACtB94B,KACX,CACAoiO,iBAAAA,CAAkBtpM,GACd,IAAI72B,EACJ,YAAUlT,IAAN+pC,EACO94B,KAAK8iO,oBAChB9iO,KAAK8iO,mBAAqBhqM,EACF,QAAvB72B,EAAKjC,KAAKuiO,eAA4B,IAAPtgO,GAAyBA,EAAG4/N,OAAO/oM,GAC5D94B,KACX,CACAsiO,mBAAAA,CAAoBxpM,GAChB,IAAI72B,EACJ,YAAUlT,IAAN+pC,EACO94B,KAAK+iO,sBAChB/iO,KAAK+iO,qBAAuBjqM,EACJ,QAAvB72B,EAAKjC,KAAKuiO,eAA4B,IAAPtgO,GAAyBA,EAAG8/N,UAAUjpM,GAC/D94B,KACX,CACAqiO,oBAAAA,CAAqBvpM,GACjB,IAAI72B,EACJ,YAAUlT,IAAN+pC,EACO94B,KAAKgjO,uBAChBhjO,KAAKgjO,sBAAwBlqM,EACL,QAAvB72B,EAAKjC,KAAKuiO,eAA4B,IAAPtgO,GAAyBA,EAAG6/N,OAAOhpM,GAC5D94B,KACX,CACAmL,OAAAA,CAAQ2tB,GACJ,OAAKtzC,UAAUC,QAEfua,KAAKijO,SAAWnqM,EACT94B,MAFIA,KAAKijO,QAGpB,CAOAC,oBAAAA,IAESljO,KAAKmjO,eACNnjO,KAAK4iO,eACqB,IAA1B5iO,KAAKuiO,QAAQb,UAEb1hO,KAAKojO,WAEb,CAQA92M,IAAAA,CAAK3a,GACD,IAAK3R,KAAKw+N,YAAY33O,QAAQ,QAC1B,OAAOmZ,KACXA,KAAKk9C,OAAS,IAAImmL,GAAOrjO,KAAKgyB,IAAKhyB,KAAKggD,MACxC,MAAM6yK,EAAS7yN,KAAKk9C,OACd3+C,EAAOyB,KACbA,KAAKw+N,YAAc,UACnBx+N,KAAKsjO,eAAgB,EAErB,MAAMC,EAAiBl3O,GAAGwmO,EAAQ,QAAQ,WACtCt0N,EAAK82N,SACL1jN,GAAMA,GACV,IACM81E,EAAWv/F,IACb8X,KAAKijC,UACLjjC,KAAKw+N,YAAc,SACnBx+N,KAAKkyN,aAAa,QAAShqO,GACvBypB,EACAA,EAAGzpB,GAIH8X,KAAKkjO,sBACT,EAGEM,EAAWn3O,GAAGwmO,EAAQ,QAASprI,GACrC,IAAI,IAAUznF,KAAKijO,SAAU,CACzB,MAAM93N,EAAUnL,KAAKijO,SAEfn4E,EAAQ9qJ,KAAKyyN,cAAa,KAC5B8Q,IACA97I,EAAQ,IAAIp9F,MAAM,YAClBwoO,EAAOn/E,OAAO,GACfvoI,GACCnL,KAAKggD,KAAKs1K,WACVxqE,EAAM0qE,QAEVx1N,KAAKs+N,KAAKn5O,MAAK,KACX6a,KAAK0yN,eAAe5nE,EAAM,GAElC,CAGA,OAFA9qJ,KAAKs+N,KAAKn5O,KAAKo+O,GACfvjO,KAAKs+N,KAAKn5O,KAAKq+O,GACRxjO,IACX,CAOAw9N,OAAAA,CAAQ7rN,GACJ,OAAO3R,KAAKssB,KAAK3a,EACrB,CAMA0jN,MAAAA,GAEIr1N,KAAKijC,UAELjjC,KAAKw+N,YAAc,OACnBx+N,KAAKkyN,aAAa,QAElB,MAAMW,EAAS7yN,KAAKk9C,OACpBl9C,KAAKs+N,KAAKn5O,KAAKkH,GAAGwmO,EAAQ,OAAQ7yN,KAAKyjO,OAAOvyK,KAAKlxD,OAAQ3T,GAAGwmO,EAAQ,OAAQ7yN,KAAK0jO,OAAOxyK,KAAKlxD,OAAQ3T,GAAGwmO,EAAQ,QAAS7yN,KAAK4+C,QAAQsS,KAAKlxD,OAAQ3T,GAAGwmO,EAAQ,QAAS7yN,KAAKy1N,QAAQvkK,KAAKlxD,OAAQ3T,GAAG2T,KAAK0iO,QAAS,UAAW1iO,KAAK2jO,UAAUzyK,KAAKlxD,OACvP,CAMAyjO,MAAAA,GACIzjO,KAAKkyN,aAAa,OACtB,CAMAwR,MAAAA,CAAOnkO,GACH,IACIS,KAAK0iO,QAAQ/+M,IAAIpkB,EACrB,CACA,MAAOhJ,IACHyJ,KAAKy1N,QAAQ,cAAel/N,GAChC,CACJ,CAMAotO,SAAAA,CAAUtS,GAEN9yL,IAAS,KACLv+B,KAAKkyN,aAAa,SAAUb,EAAO,GACpCrxN,KAAKyyN,aACZ,CAMA7zK,OAAAA,CAAQ12D,GACJ8X,KAAKkyN,aAAa,QAAShqO,EAC/B,CAOA2qO,MAAAA,CAAOyJ,EAAKt8K,GACR,IAAI6yK,EAAS7yN,KAAKiiO,KAAK3F,GAQvB,OAPKzJ,EAII7yN,KAAKo+N,eAAiBvL,EAAOx1L,QAClCw1L,EAAO2K,WAJP3K,EAAS,IAAI6F,GAAO14N,KAAMs8N,EAAKt8K,GAC/BhgD,KAAKiiO,KAAK3F,GAAOzJ,GAKdA,CACX,CAOA+Q,QAAAA,CAAS/Q,GACL,MAAMoP,EAAOr9O,OAAOD,KAAKqb,KAAKiiO,MAC9B,IAAK,MAAM3F,KAAO2F,EAAM,CAEpB,GADejiO,KAAKiiO,KAAK3F,GACdj/L,OACP,MAER,CACAr9B,KAAK6jO,QACT,CAOA9D,OAAAA,CAAQ1O,GACJ,MAAMuG,EAAiB53N,KAAKyiO,QAAQ58N,OAAOwrN,GAC3C,IAAK,IAAI9rO,EAAI,EAAGA,EAAIqyO,EAAenyO,OAAQF,IACvCya,KAAKk9C,OAAO75C,MAAMu0N,EAAeryO,GAAI8rO,EAAOpjO,QAEpD,CAMAg1C,OAAAA,GACIjjC,KAAKs+N,KAAK34O,SAASi7O,GAAeA,MAClC5gO,KAAKs+N,KAAK74O,OAAS,EACnBua,KAAK0iO,QAAQptO,SACjB,CAMAuuO,MAAAA,GACI7jO,KAAKsjO,eAAgB,EACrBtjO,KAAKmjO,eAAgB,EACrBnjO,KAAKy1N,QAAQ,gBACTz1N,KAAKk9C,QACLl9C,KAAKk9C,OAAOw2F,OACpB,CAMA8G,UAAAA,GACI,OAAOx6I,KAAK6jO,QAChB,CAMApO,OAAAA,CAAQ37D,EAAQ4f,GACZ15K,KAAKijC,UACLjjC,KAAKuiO,QAAQjjD,QACbt/K,KAAKw+N,YAAc,SACnBx+N,KAAKkyN,aAAa,QAASp4D,EAAQ4f,GAC/B15K,KAAK4iO,gBAAkB5iO,KAAKsjO,eAC5BtjO,KAAKojO,WAEb,CAMAA,SAAAA,GACI,GAAIpjO,KAAKmjO,eAAiBnjO,KAAKsjO,cAC3B,OAAOtjO,KACX,MAAMzB,EAAOyB,KACb,GAAIA,KAAKuiO,QAAQb,UAAY1hO,KAAK6iO,sBAC9B7iO,KAAKuiO,QAAQjjD,QACbt/K,KAAKkyN,aAAa,oBAClBlyN,KAAKmjO,eAAgB,MAEpB,CACD,MAAM56M,EAAQvoB,KAAKuiO,QAAQhkH,WAC3Bv+G,KAAKmjO,eAAgB,EACrB,MAAMr4E,EAAQ9qJ,KAAKyyN,cAAa,KACxBl0N,EAAK+kO,gBAETtjO,KAAKkyN,aAAa,oBAAqB3zN,EAAKgkO,QAAQb,UAEhDnjO,EAAK+kO,eAET/kO,EAAK+tB,MAAMpkC,IACHA,GACAqW,EAAK4kO,eAAgB,EACrB5kO,EAAK6kO,YACLpjO,KAAKkyN,aAAa,kBAAmBhqO,IAGrCqW,EAAKulO,aACT,IACF,GACHv7M,GACCvoB,KAAKggD,KAAKs1K,WACVxqE,EAAM0qE,QAEVx1N,KAAKs+N,KAAKn5O,MAAK,KACX6a,KAAK0yN,eAAe5nE,EAAM,GAElC,CACJ,CAMAg5E,WAAAA,GACI,MAAMC,EAAU/jO,KAAKuiO,QAAQb,SAC7B1hO,KAAKmjO,eAAgB,EACrBnjO,KAAKuiO,QAAQjjD,QACbt/K,KAAKkyN,aAAa,YAAa6R,EACnC,EC9VJ,MAAM3wK,GAAQ,CAAC,EACf,SAASoC,GAAOxjC,EAAKguB,GACE,kBAARhuB,IACPguB,EAAOhuB,EACPA,OAAMjjC,GAGV,MAAMuB,ECHH,SAAa0hC,GAAqB,IAAhBtqB,EAAIliB,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAG,GAAIw+O,EAAGx+O,UAAAC,OAAA,EAAAD,UAAA,QAAAuJ,EAC/B7I,EAAM8rC,EAEVgyM,EAAMA,GAA4B,qBAAb95O,UAA4BA,SAC7C,MAAQ8nC,IACRA,EAAMgyM,EAAI35M,SAAW,KAAO25M,EAAI7+M,MAEjB,kBAAR6M,IACH,MAAQA,EAAIx+B,OAAO,KAEfw+B,EADA,MAAQA,EAAIx+B,OAAO,GACbwwO,EAAI35M,SAAW2H,EAGfgyM,EAAI7+M,KAAO6M,GAGpB,sBAAsBrpC,KAAKqpC,KAExBA,EADA,qBAAuBgyM,EACjBA,EAAI35M,SAAW,KAAO2H,EAGtB,WAAaA,GAI3B9rC,EAAMuhB,GAAMuqB,IAGX9rC,EAAI6iC,OACD,cAAcpgC,KAAKzC,EAAImkC,UACvBnkC,EAAI6iC,KAAO,KAEN,eAAepgC,KAAKzC,EAAImkC,YAC7BnkC,EAAI6iC,KAAO,QAGnB7iC,EAAIwhB,KAAOxhB,EAAIwhB,MAAQ,IACvB,MACMyd,GADkC,IAA3Bj/B,EAAIi/B,KAAKt+B,QAAQ,KACV,IAAMX,EAAIi/B,KAAO,IAAMj/B,EAAIi/B,KAS/C,OAPAj/B,EAAI4N,GAAK5N,EAAImkC,SAAW,MAAQlF,EAAO,IAAMj/B,EAAI6iC,KAAOrhB,EAExDxhB,EAAIulC,KACAvlC,EAAImkC,SACA,MACAlF,GACC6+M,GAAOA,EAAIj7M,OAAS7iC,EAAI6iC,KAAO,GAAK,IAAM7iC,EAAI6iC,MAChD7iC,CACX,CD7CmByJ,CAAIqiC,GADnBguB,EAAOA,GAAQ,CAAC,GACat4C,MAAQ,cAC/BhiB,EAAS4K,EAAO5K,OAChBoO,EAAKxD,EAAOwD,GACZ4T,EAAOpX,EAAOoX,KACdu8N,EAAgB7wK,GAAMt/D,IAAO4T,KAAQ0rD,GAAMt/D,GAAU,KAK3D,IAAI6pO,EAaJ,OAjBsB39K,EAAKkkL,UACvBlkL,EAAK,0BACL,IAAUA,EAAKmkL,WACfF,EAGAtG,EAAK,IAAIqE,GAAQt8O,EAAQs6D,IAGpBoT,GAAMt/D,KACPs/D,GAAMt/D,GAAM,IAAIkuO,GAAQt8O,EAAQs6D,IAEpC29K,EAAKvqK,GAAMt/D,IAEXxD,EAAOiY,QAAUy3C,EAAKz3C,QACtBy3C,EAAKz3C,MAAQjY,EAAOgoO,UAEjBqF,EAAG9K,OAAOviO,EAAOoX,KAAMs4C,EAClC,CAGAp7D,OAAOsyC,OAAOs+B,GAAQ,CAClBwsK,QAAO,GACPtJ,OAAM,GACNiF,GAAInoK,GACJgoK,QAAShoK,KExCb,MAAM4uK,IAAgBv0O,EAAAA,EAAAA,iBAETw0O,GAAYA,KAAMjzO,EAAAA,EAAAA,YAAWgzO,IAE7BE,GAAiBn0O,IAAmB,IAAlB,SAAEE,GAAUF,EACvC,MAAM0iO,EAAS0R,GAAS,8BAExB,OACI74D,EAAAA,GAAAA,KAAC04D,GAAcnzO,SAAQ,CAAC1K,MAAOssO,EAAOxiO,SACjCA,GACoB,ECogBjC,GArgBcm0O,KACb,MAAM3R,EAASwR,KACNn6O,EAAW+5K,IACXmP,EAAiB3+J,aAAa83J,QAAQ,aACrC4B,EAAMs2D,IAAWh0O,EAAAA,EAAAA,UAAS2iL,EAAiB1sK,KAAKe,MAAM2rK,GAAkB,OACxEhqK,EAASs7N,IAAcj0O,EAAAA,EAAAA,UAAS,KAChCk0O,EAAYC,IAAiBn0O,EAAAA,EAAAA,WAAS,IACtCosN,EAASgoB,IAAcp0O,EAAAA,EAAAA,UAAS,KAChCq0O,EAAcC,IAAmBt0O,EAAAA,EAAAA,UAAS,OAC1Cu0O,EAAUC,IAAex0O,EAAAA,EAAAA,WAAS,IAClCy0O,EAAWC,IAAgB10O,EAAAA,EAAAA,UAAS,KACpC20O,EAAYC,IAAiB50O,EAAAA,EAAAA,UAAS,OACtC60O,EAAmBC,IAAwB90O,EAAAA,EAAAA,UAAS,OACpD+0O,EAAaC,IAAkBh1O,EAAAA,EAAAA,UAAS,KACxCi1O,EAAoBC,IAAyBl1O,EAAAA,EAAAA,UAAS,OACtDywB,EAAa0kN,IAAkBn1O,EAAAA,EAAAA,UAAS,SACxCo1O,EAAkBC,IAAuBr1O,EAAAA,EAAAA,UAAS,IAEnDs1O,EAAchvF,IAChB,MAAM/mI,EAAO,IAAII,KAAK2mI,GAEtB,IAAIivF,EAAgB,IAAIC,KAAKC,eAAe,QAD5B,CAAEC,KAAM,UAAWC,OAAQ,UAAWC,QAAQ,IACA59N,OAAOuH,GAErE,OADAg2N,EAAgBA,EAAc//N,QAAQ,KAAM,MAAMA,QAAQ,KAAM,MACzD+/N,CAAa,GAExB95O,EAAAA,EAAAA,YAAU,KAEFiiL,IACA0kD,EAAOrsM,KAAK,aAAe2nJ,GAG3B0kD,EAAOrsM,KAAK,cAAgB2nJ,GAC5B0kD,EAAOxmO,GAAG,WAAYkT,IAElB4lO,EAAiB,OAAJ5lO,QAAI,IAAJA,OAAI,EAAJA,EAAM+mO,QAAQ,IAUnC,GACD,CAACn4D,KAEJjiL,EAAAA,EAAAA,YAAU,KACN,MACMq6O,EADQ,IAAInsK,gBAAgBlwE,EAASoe,QAChBhQ,IAAI,gBAC3BiuO,IAEAZ,EAAsBY,GACtBC,EAAWD,GAOf1T,EAAOrsM,KAAK,YAAc2nJ,EAAMo4D,GAChC1T,EAAOxmO,GAAG,YAAakT,IACnBkmO,EAAmB,OAAJlmO,QAAI,IAAJA,OAAI,EAAJA,EAAM6gB,SAAS,IAGlC,GACD,CAACl2B,IAwDJ,MA4BQu8O,EAAiB3iL,UACrB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EA2BAg9E,EAAkBjgJ,UACpB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EA0CHy/G,EAAaE,IAAU,IAADC,EAAAC,EAAAC,EAAAC,EAC3B,MAAMC,GAAc,OAAJL,QAAI,IAAJA,GAAW,QAAPC,EAAJD,EAAMM,aAAK,IAAAL,GAAK,QAALC,EAAXD,EAAc,UAAE,IAAAC,OAAZ,EAAJA,EAAkBr1D,QAAY,OAAJm1D,QAAI,IAAJA,OAAI,EAAJA,EAAMn1D,KAAU,OAAJm1D,QAAI,IAAJA,GAAW,QAAPG,EAAJH,EAAMM,aAAK,IAAAH,OAAP,EAAJA,EAAc,GAAS,OAAJH,QAAI,IAAJA,GAAW,QAAPI,EAAJJ,EAAMM,aAAK,IAAAF,OAAP,EAAJA,EAAc,GAGjFvB,EAAqBwB,GAErB1B,EAAqB,OAAP0B,QAAO,IAAPA,OAAO,EAAPA,EAASx1D,KACvBshD,EAAOrsM,KAAK,YAAc2nJ,EAAa,OAAP44D,QAAO,IAAPA,OAAO,EAAPA,EAASx1D,KACzCshD,EAAOxmO,GAAG,YAAakT,IACnBkmO,EAAmB,OAAJlmO,QAAI,IAAJA,OAAI,EAAJA,EAAM6gB,SAAS,GAIhC,EAgCN,OA7BHl0B,EAAAA,EAAAA,YAAU,KACoB+6O,MACnB,MAAMC,EAAgBz1M,SAASwuG,cAAc,kBACzCinG,IACAA,EAAcntI,UAAYmtI,EAAcC,aAC5C,EAGJF,GAEA,MAAM9b,EAAmBA,KACrB,MAAMic,EAAqB31M,SAASwuG,cAAc,yBAClD,GAAImnG,EAAoB,CACpB,MAAMC,EAAeD,EAAmBE,YAClCC,EAAgBllO,KAAKC,MAAM+kO,EAAe,IAChDxC,EAAW0C,EACf,GAOJ,OAJApc,IAEA11N,OAAOo2B,iBAAiB,SAAUs/L,GAE3B,KACH11N,OAAO8xF,oBAAoB,SAAU4jI,EAAiB,CACzD,GACF,CAACqa,KAIA95D,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAAEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAkB4nE,MAAO,CAAEo3G,UAAW,SAAU1iL,SAAA,EAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACjBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,qBAAqB4nE,MAAO,CAAEmwG,SAAU,QAASz7K,SAAC,WAChEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAChBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qCAAoC1D,UAC/Cq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,kBAAiB1D,SAAC,+MAKlDq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,UAAU4nE,MAAO,CAAEkpF,aAAc,OAAQx0J,UACrDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC3Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,UAAS1D,SAAA,EACpBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BAA8B1D,UACzCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACvBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACvCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iCAAgC1D,SAAA,EAC3Cq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,kCAAkC67H,YAAY,eAAej0D,MAAO,CAAEyqF,gBAAiB,cACpHslB,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oDAAmD1D,UAC9Dq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,4CAM5BmxO,GAAaA,EAAUvqN,KAAK+rN,IAAI,IAAAc,EAAAC,EAAAC,EAAAC,EAjF3CzkL,EAAMykB,EAiFqC,OAC7B+jG,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,sDAAsDQ,QAASA,IAAMiyO,EAAUE,GAAMr2O,UACnGu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EACxDq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAS,OAAJ04K,QAAI,IAAJA,GAAW,QAAPc,EAAJd,EAAMM,aAAK,IAAAQ,GAAK,QAALC,EAAXD,EAAc,UAAE,IAAAC,OAAZ,EAAJA,EAAkBrzD,OAAQrgL,UAAU,sBAAsB83K,IAAI,aAAa/3E,MAAM,KAAKC,OAAO,QACvG63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACvBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAkC4nE,MAAO,CAAEmwG,SAAU,QAASz7K,SAAA,EACzEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAClBq7K,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAQ,OAAJq2O,QAAI,IAAJA,GAAW,QAAPgB,EAAJhB,EAAMM,aAAK,IAAAU,GAAK,QAALC,EAAXD,EAAc,UAAE,IAAAC,OAAZ,EAAJA,EAAkBryD,gBAEhC5J,EAAAA,GAAAA,KAAA,OAAAr7K,UAAKq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAY1D,SAAE01O,EAAe,OAAJW,QAAI,IAAJA,OAAI,EAAJA,EAAMkB,mBAExDl8D,EAAAA,GAAAA,KAAA,OAAK/vG,MAAO,CAAEmwG,SAAU,QAAU/3K,UAAU,aAAY1D,UAACq7K,EAAAA,GAAAA,KAAA,QAAAr7K,UA5FnF6yD,EA4F2G,OAAJwjL,QAAI,IAAJA,OAAI,EAAJA,EAAMmB,YA5FvGlgK,EA4FoH,IA3FpI,OAAJzkB,QAAI,IAAJA,OAAI,EAAJA,EAAMz9D,QAASkiF,EACRzkB,EAAKr2B,UAAU,EAAG86C,GAAa,OAEnCzkB,cA2FkC,UAIrBwoH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BAA8B1D,UACzCu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,0BAAyB1D,UACZu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iCAAgC1D,SAAA,EAC3Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAsB,OAAjBs3K,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBlxD,OAAQrgL,UAAU,sBAAsB83K,IAAI,gBAAgB/3E,MAAM,KAAKC,OAAO,UAE/G63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAuB1D,SAAA,EAClCq7K,EAAAA,GAAAA,KAAA,UAAAr7K,SAA0B,OAAjBi1O,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBhwD,WACV,OAAjBgwD,QAAiB,IAAjBA,GAAAA,EAAmBwC,UAAWl8D,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,CAAC,eAAWq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,6CAC5F63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,CAAC,YAAQq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,iDAE9D23K,EAAAA,GAAAA,KAAA,gBAM5BA,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC1Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,SACjCm1O,GAAeA,EAAYh9O,QAAQ0hF,UAAUvvD,KAAI,CAACzR,EAAK0L,KAAK,IAAAmzN,EAAA,OACzDn8D,EAAAA,GAAAA,MAAA,OAAiB73K,UAAS,gBAAArF,OAAkBwa,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,QAAU,OAAM,SAAQlhL,SAAA,EAC/Fq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAK9kD,EAAI8+N,OAAO5zD,OAAQrgL,UAAU,sBAAsB83K,IAAI,OAAO/3E,MAAM,KAAKC,OAAO,UAE9F63E,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,CACkB,UAAb6Y,EAAIvV,MACD+3K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,0BAA0Bi6D,IAAK9kD,EAAIE,QAASyiK,IAAI,OAAOlwG,MAAO,CAAEw1G,SAAU,UAC5E,SAAbjoK,EAAIvV,MACJ+3K,EAAAA,GAAAA,KAAA,KAAGjgJ,KAAMviB,EAAIE,QAASrV,UAAU,+BAA+B4nE,MAAO,CAAEk4C,QAAS,QAASy9D,eAAgB,OAAQr7E,MAAO/sF,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,QAAU,QAASnrB,gBAAiBl9I,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,OAAS,QAAS4K,aAAcjzK,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,qBAAuB,sBAAwBjsL,OAAO,SAASs2E,IAAI,sBAAqBvrE,UAC9Wu7K,EAAAA,GAAAA,MAAA,UAAQj4K,KAAK,SAASI,UAAU,kBAAkB,0BAAoB1D,SAAA,CAAC,cAAUq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,mCAErF,UAAbmV,EAAIvV,MACJ+3K,EAAAA,GAAAA,KAAC+V,KAAW,CACZ1tL,UAAU,+BACNpE,IAAKuZ,EAAIE,QACTm+G,UAAQ,EACRzzB,MAAM,OACNC,OAAO,UAGX23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAS,gCAAArF,OAAkCwa,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,UAAY,YAAc51G,MAAO,CAAEwgH,aAAcjzK,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,qBAAuB,qBAAsBt7E,MAAO/sF,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,QAAU,SAAUlhL,SACjQ6Y,EAAIE,WAGbwiK,EAAAA,GAAAA,MAAA,OAAK73K,UAAS,cAAArF,QAAmB,OAAHwa,QAAG,IAAHA,GAAW,QAAR6+N,EAAH7+N,EAAK8+N,cAAM,IAAAD,OAAR,EAAHA,EAAax2D,QAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,WAAa,GAAE,gCAA+BlhL,SAAA,CACxG01O,EAAW78N,EAAI++N,WAAW,IAAK,OAAH/+N,QAAG,IAAHA,GAAAA,EAAK8tE,MAAO00F,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,KAAQ,aAzB5Fj3J,EA4BJ,SAMcg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8BAA6B1D,SAAA,EACxCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gCAA+B1D,SAAA,EAC1Cq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mCAAmCz5D,QApLnE4+I,KACjByxF,GAAeD,EAAW,EAmLiF94D,IAAI,QAE3EH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UAC7Bq7K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLI,UAAU,wBACV67H,YAAY,oBACZrpI,MAAO6iB,EACP/U,SAtMrBkC,IACvBmuO,EAAWnuO,EAAEjR,OAAOiB,OACpB0+O,EAAsC,KAA1B1uO,EAAEjR,OAAOiB,MAAM4nD,QACjCy3L,EAAe,OAAO,EAoM4BrxO,QAzL3B2zO,KACjBtD,GAAc,EAAM,OA2LgBh5D,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLopD,OAAO,uDACP4e,MAAO,CAAEk4C,QAAS,QAClB//G,GAAG,YACHO,SAvUvByvD,UACrB,MAYMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,GAbmB,CACnB,kBACA,aACA,qBACA,0EACA,kBACA,0CACA,2BACA,oEACA,gCACA,6EAGuBx4H,SAASw4H,EAAKpzH,MAAO,CAC5CmyO,EAAoB/+G,EAAKt+H,MACzB,MAAM27M,QAAgBqiC,EAAe1/G,GAErC29G,EAAWtgC,GAEXwhC,EAAe,QACnBX,EAAsC,KAA1B1uO,EAAEjR,OAAOiB,MAAM4nD,OAE3B,MACIksI,MAAM,8BACV,KAgTwC3O,EAAAA,GAAAA,KAAA,SAAO8Q,QAAQ,YAAYzoL,UAAU,OAAM1D,UACvCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,cAAclwG,MAAO,CAAE6qE,OAAQ,mBAGhFolC,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLopD,OAAO,kBACP4e,MAAO,CAAEk4C,QAAS,QAClB//G,GAAG,aACHO,SAtRtByvD,UACtB,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,GAAQA,EAAKpzH,KAAKmnC,WAAW,UAAW,CACxC,MAAMspK,QAAgBL,EAAgBh9E,GAEtC29G,EAAWtgC,GAEXwhC,EAAe,SACnBX,EAAsC,KAA1B1uO,EAAEjR,OAAOiB,MAAM4nD,OAE3B,MACM,GAAG44E,GAAQA,EAAKpzH,KAAKmnC,WAAW,UAAU,CAExC,MAAMspK,QAAgBL,EAAgBh9E,GAEtC29G,EAAWtgC,GAEXwhC,EAAe,SACnBX,EAAsC,KAA1B1uO,EAAEjR,OAAOiB,MAAM4nD,OAC9B,MAGGksI,MAAM,6CACV,KAiQwC3O,EAAAA,GAAAA,KAAA,SAAO8Q,QAAQ,aAAazoL,UAAU,oBAAmB1D,UACrDq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yBAAyB69G,IAAI,eAAelwG,MAAO,CAAE6qE,OAAQ,mBAG9EklC,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAQ4nE,MAAO,CAAC6qE,OAAO,WAAajyI,QAhNxE4zO,KACS,KAAnB/+N,EAAQ+kC,QAAiBi3L,IAO1BvS,EAAOrsM,KAAK,eAAgB2nJ,EAAMi3D,EAAWh8N,EAAQ8X,GAErDwjN,EAAW,IACf,EAqM2Gr0O,UAC/Dq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,uBAAuB69G,IAAI,GAAG/3E,MAAM,OAAOC,OAAO,eAYvE23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,SACZs0O,IACGj5D,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uBAAsB1D,UACjCq7K,EAAAA,GAAAA,KAAC14B,GAAM,CACH4rE,cA7O1BrD,IACtBmpB,EAAWt7N,EAAUmyM,EAAM10E,OAAO,EA6Ocn1B,WAAW,EACX+rG,UAAW,GACXD,gBAAiB,GACjBD,kBAAmB,OACnBD,kBAAmB,CAAC,OAAQ,OAAQ,uBACpCI,aAAc,GACdplE,MAAO,OACPx+E,OAAQ,KACR8iJ,gBAAiB,EACjBiB,YAAa,MACbhB,QAASA,EACTmB,aAAc,WACdC,gBAAiB,OACjBC,eAAgB,SAChB19M,IAAK,SACL29M,KAAM,EACNpuF,MAAO,kCAY9C,ECtdjB,GAnD0Bq4G,KACtB,MAAO75D,EAAO85D,IAAY53O,EAAAA,EAAAA,UAAS,KAC5BggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GAoB7C,OAVIvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAO6P,MAAO,KAAMmC,GAJrBj2H,IACZ4tL,EAAY,OAAH5tL,QAAG,IAAHA,OAAG,EAAHA,EAAK8zH,MAAM,IAGoCh5K,IACxD/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAMnB,GACT,KAOLm2K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACAu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACvCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC5Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oCAAmC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,SAAC,kBAC7Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mCAM3B23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kCAAiC1D,UAC5Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,SAEzBk+K,IAAU7C,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,mBAAmBknE,wBAAyB,CAAEC,OArBxE,SAAoBkgE,GAClB,MAAMw3C,EAAMnhJ,SAASzgC,cAAc,YAEnC,OADA4hL,EAAIhxF,UAAYw5C,EACTw3C,EAAIrsL,KACb,CAiBgFssL,CAAgB,OAALtE,QAAK,IAALA,OAAK,EAALA,EAAOuE,oBASjG,ECOP,GAtDsBw1D,KAClB,MAAOliO,EAAQmiO,IAAa93O,EAAAA,EAAAA,UAAS,KAChCggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GAqB3C,OAVIvE,EAAAA,EAAAA,YAAU,KAJR8/K,GAAQ,MAAOtN,GAAOt4J,OAAQ,KAAMsqK,GAJtBj2H,IACZ8tL,EAAa,OAAH9tL,QAAG,IAAHA,OAAG,EAAHA,EAAKr0C,OAAO,IAGmC7Q,IACzD/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAMlB,GACV,KAOLm2K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACAu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACvCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC5Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oCAAmC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,SAAC,oBAC7Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mCAM3B23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kCAAiC1D,UAC5Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,SAEzB+V,IAAWslK,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,mBAAmBknE,wBAAyB,CAAEC,OArBzE,SAAoBkgE,GAClB,MAAMw3C,EAAMnhJ,SAASzgC,cAAc,YAEnC,OADA4hL,EAAIhxF,UAAYw5C,EACTw3C,EAAIrsL,KACb,CAiBiFssL,CAAiB,OAANzsK,QAAM,IAANA,OAAM,EAANA,EAAQ0sK,oBAWnG,ECkkCP,GA7mCoB3iL,IAAwB,IAAvB,cAAEqjL,GAAerjL,EACpC,MAAO4d,EAASy6N,IAAc/3O,EAAAA,EAAAA,UAAS,KAC9Bo0M,EAAgBC,IAAqBr0M,EAAAA,EAAAA,UAAS,KAChD00M,EAAsBC,IAA2B30M,EAAAA,EAAAA,WAAS,IAC1Dk0M,EAAgBC,IAAqBn0M,EAAAA,EAAAA,WAAS,IAC9C60M,EAAcC,IAAmB90M,EAAAA,EAAAA,UAAS,KAC1Ci1M,EAAoBC,IAAyBl1M,EAAAA,EAAAA,WAAS,IACtDs0M,EAAeC,IAAoBv0M,EAAAA,EAAAA,UAAS,KAC5Cw0M,EAAqBC,IAA0Bz0M,EAAAA,EAAAA,WAAS,IACxDg4O,EAAiBC,IAAsBj4O,EAAAA,EAAAA,UAAS,KAChDk4O,EAAqBC,IAA0Bn4O,EAAAA,EAAAA,WAAS,IACxDo4O,EAAuBC,IAA4Br4O,EAAAA,EAAAA,UAAS,KAC5Ds4O,EAA2BC,IAAgCv4O,EAAAA,EAAAA,WAAS,IACpE6xM,EAAaC,IAAkB9xM,EAAAA,EAAAA,UAAS,KACtC+xM,EAAiBC,IAAsBhyM,EAAAA,EAAAA,WAAS,IAChDiyM,EAAoBC,IAAyBlyM,EAAAA,EAAAA,UAAS,KACtDmyM,EAAwBC,IAA6BpyM,EAAAA,EAAAA,WAAS,IAC9Dw4O,EAAkBC,IAAuBz4O,EAAAA,EAAAA,WAAS,IAClD2jL,EAAQwvB,IAAanzM,EAAAA,EAAAA,UAAS,OAChCq/K,EAAOu1B,IAAY50M,EAAAA,EAAAA,UAAS,IAC7B2iL,EAAiB3+J,aAAa83J,QAAQ,aACrC8G,EAAUC,IAAe7iL,EAAAA,EAAAA,UAAS2iL,EAAiB1sK,KAAKe,MAAM2rK,GAAkB,OAC9E+1D,EAASC,IAAc34O,EAAAA,EAAAA,UAAS,KAChC44O,EAAYC,IAAiB74O,EAAAA,EAAAA,UAAS,KACtC84O,EAAQC,IAAa/4O,EAAAA,EAAAA,UAAS,KAC9Bg5O,EAAWC,IAAgBj5O,EAAAA,EAAAA,UAAS,KACpCk5O,EAAWC,IAAgBn5O,EAAAA,EAAAA,UAAS,KACpCo5O,GAAiBC,KAAsBr5O,EAAAA,EAAAA,WAAS,IAElDggL,GAAWC,KAAgBjgL,EAAAA,EAAAA,WAAS,GAEnCs5O,GAAaA,KAkBjB/9D,GAAQ,MAAOtN,GAAO3wJ,QAAS,KAAM2iK,IAjBvBj2H,IAAS,IAADwkJ,EAAA+qC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACpBpD,EAAc,OAAH/tL,QAAG,IAAHA,GAAS,QAANwkJ,EAAHxkJ,EAAKl7C,YAAI,IAAA0/L,OAAN,EAAHA,EAAW4sC,KACtBzC,EAAc,OAAH3uL,QAAG,IAAHA,GAAS,QAANuvL,EAAHvvL,EAAKl7C,YAAI,IAAAyqO,GAAK,QAALC,EAATD,EAAW6B,WAAG,IAAA5B,OAAX,EAAHA,EAAgB30D,UAC3Bg0D,EAAiB,OAAH7uL,QAAG,IAAHA,GAAS,QAANyvL,EAAHzvL,EAAKl7C,YAAI,IAAA2qO,GAAK,QAALC,EAATD,EAAW2B,WAAG,IAAA1B,GAAU,QAAVC,EAAdD,EAAgBjgP,gBAAQ,IAAAkgP,OAArB,EAAHA,EAA0B5iC,SACxC1C,EAAqB,OAAHrqJ,QAAG,IAAHA,GAAS,QAAN4vL,EAAH5vL,EAAKl7C,YAAI,IAAA8qO,GAAK,QAALC,EAATD,EAAWwB,WAAG,IAAAvB,OAAX,EAAHA,EAAgB7iC,QAClC+hC,EAAa,OAAH/uL,QAAG,IAAHA,GAAS,QAAN8vL,EAAH9vL,EAAKl7C,YAAI,IAAAgrO,GAAK,QAALC,EAATD,EAAWsB,WAAG,IAAArB,OAAX,EAAHA,EAAgB5kC,KAC1B8jC,EAAgB,OAAHjvL,QAAG,IAAHA,GAAS,QAANgwL,EAAHhwL,EAAKl7C,YAAI,IAAAkrO,GAAK,QAALC,EAATD,EAAWoB,WAAG,IAAAnB,GAAQ,QAARC,EAAdD,EAAgB5kC,cAAM,IAAA6kC,OAAnB,EAAHA,EAAwBpkP,OACrC6/M,GAAqB,OAAH3rJ,QAAG,IAAHA,GAAS,QAANmwL,EAAHnwL,EAAKl7C,YAAI,IAAAqrO,GAAK,QAALC,EAATD,EAAWiB,WAAG,IAAAhB,GAAQ,QAARC,EAAdD,EAAgB/kC,cAAM,IAAAglC,OAAnB,EAAHA,EAAwB/sD,MAC1C6rD,EAAgB,OAAHnvL,QAAG,IAAHA,GAAS,QAANswL,EAAHtwL,EAAKl7C,YAAI,IAAAwrO,GAAK,QAALC,EAATD,EAAWc,WAAG,IAAAb,GAAQ,QAARC,EAAdD,EAAgBj3I,cAAM,IAAAk3I,OAAnB,EAAHA,EAAwB1kP,OACrCggN,GAAqB,OAAH9rJ,QAAG,IAAHA,GAAS,QAANywL,EAAHzwL,EAAKl7C,YAAI,IAAA2rO,GAAK,QAALC,EAATD,EAAWW,WAAG,IAAAV,GAAQ,QAARC,EAAdD,EAAgBp3I,cAAM,IAAAq3I,OAAnB,EAAHA,EAAwBrtD,MAC1CwnB,EAAmB,OAAH9qJ,QAAG,IAAHA,GAAS,QAAN4wL,EAAH5wL,EAAKl7C,YAAI,IAAA8rO,GAAK,QAALC,EAATD,EAAWQ,WAAG,IAAAP,OAAX,EAAHA,EAAgBx7D,OAChCk1B,EAAoB,OAAHvqJ,QAAG,IAAHA,GAAS,QAAN8wL,EAAH9wL,EAAKl7C,YAAI,IAAAgsO,GAAK,QAALC,EAATD,EAAWM,WAAG,IAAAL,OAAX,EAAHA,EAAgB9jC,eACjC9D,EAAa,OAAHnpJ,QAAG,IAAHA,GAAS,QAANgxL,EAAHhxL,EAAKl7C,YAAI,IAAAksO,GAAK,QAALC,EAATD,EAAWI,WAAG,IAAAH,OAAX,EAAHA,EAAgBt3D,QAC1B01D,GAAsB,OAAHrvL,QAAG,IAAHA,GAAS,QAANkxL,EAAHlxL,EAAKl7C,YAAI,IAAAosO,GAAK,QAALC,EAATD,EAAWE,WAAG,IAAAD,OAAX,EAAHA,EAAgB/B,gBAAgB,IAIOt0O,IAC1D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,GAWJrJ,EAAAA,EAAAA,YAAU,KAER69O,KANA/9D,GAAQ,MAAOtN,GAAOoR,MAAO,KAAMY,IAJrBj2H,IAAS,IAADqxL,EACpBzmC,EAAY,OAAH5qJ,QAAG,IAAHA,GAAS,QAANqxL,EAAHrxL,EAAKl7C,YAAI,IAAAusO,OAAN,EAAHA,EAAWn7D,KAAK,IAG+Bp7K,IACxD/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAMnB,GACT,IACH,MA6GIwuM,GAAkBjgJ,UACtB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAMI89C,GAAWR,KAqDT0nE,GAA2BA,KAC3BzpC,IAAgBI,GAAsBJ,IAAemmC,EA7BpC3kL,WAwBrBkoH,GAAQ,QAAQtN,GAAOgP,eALZ,CACTs+D,gBAAiBvD,EACjBwD,YAAa3pC,GAG4B5xB,IApB7Bj2H,IACW,MAAnBA,EAAI9hC,YACNwlK,IAAa,GACb1pK,aAAaq4J,QAAQ,WAAY,MAC7Br4J,aAAaq4J,QAAQ,cAAe,IACpCr4J,aAAaq4J,QAAQ,eAAgB,IACrCwG,EAAY,KAGhBS,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAQ8Dz+K,IAC9D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAKE22O,GAEA7xD,MAAM,uEACV,GAIG6D,GAAWC,KAAgB1tL,EAAAA,EAAAA,WAAS,IACpCqwM,GAAKW,KAAUhxM,EAAAA,EAAAA,UAAS,KACxBmvM,GAAY8B,KAAiBjxM,EAAAA,EAAAA,UAAS,CACzCqjG,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,SACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,SAMhB53F,EAAAA,EAAAA,YAAU,KACR,MAAM01M,EAAeA,KACjB,MAAM9tG,EAAQr+F,OAAOosM,WAEjBH,GADA5tG,GAAS,IACK,CACVA,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,QACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAETgQ,GAAS,IACF,CACVA,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,QACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAGF,CACVgQ,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,SACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAEpB,EAMJ,IAAIgnE,EASJ,OAZA82C,IACAnsM,OAAOo2B,iBAAiB,SAAU+1K,GAG9B1jB,KACApzB,EAAQriI,YAAW,KACf01J,IAAa,GACbtZ,GAAS,UACT2O,GAAc,EAAM,GACrB,MAGA,KACH/9K,OAAO8xF,oBAAoB,SAAUq6G,GACrC9jG,aAAagtD,EAAM,CACtB,GACF,CAACozB,GAAWwjB,KAEb,MAGGyqC,GAAaC,KAAkB37O,EAAAA,EAAAA,WAAS,IACxC47O,GAAcC,KAAmB77O,EAAAA,EAAAA,WAAS,IAC1C87O,GAAgBC,KAAqB/7O,EAAAA,EAAAA,WAAS,IAC9Cg8O,GAAeC,KAAoBj8O,EAAAA,EAAAA,WAAS,GAC7Ck8O,GAAoBA,KACxBP,IAAe,GACfE,IAAgB,GAChBE,IAAkB,GAClBE,IAAiB,GACjBxD,GAAoB,EAAM,EA2BpBjjC,GAAsB1/M,IAC1Bu+M,EAAkBv+M,GAClB6+M,GAAwB,EAAM,GAuBhCl5M,EAAAA,EAAAA,YAAU,KACRsC,QAAQo7B,IAAI07K,EAAa,GACxB,CAACA,IACJ,MAGOa,GAAgBC,KAAqB31M,EAAAA,EAAAA,UAAS,MAE/C41M,GAAoBA,CAAC9qK,EAAMhlC,KAC/BA,EAAE84F,iBACF+2G,GAAkB7qK,EAAK,GAElB+qK,GAAgBC,KAAqB91M,EAAAA,EAAAA,UAAS,MAE/C+1M,GAAoBA,CAACjrK,EAAMhlC,KAC/BA,EAAE84F,iBACFk3G,GAAkBhrK,EAAK,EAEnB2qK,GAAqB3/M,IACzBy+M,EAAiBz+M,GACjB2+M,GAAuB,EAAM,EAQ/B,OACEt5B,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KACfvI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACvCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC5Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oCAAmC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,SAAC,kBAC7Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mCAK3B23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qCAAoC1D,UACvBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,uNAGnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACjBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAC5Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EACxDq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAY,OAAPjgD,QAAO,IAAPA,OAAO,EAAPA,EAASqmK,OAAQvI,IAAI,SAAS93K,UAAU,mCAAmC4nE,MAAO,CAAEm4B,MAAO,QAASC,OAAO,YACrH23E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAP0d,QAAO,IAAPA,OAAO,EAAPA,EAASunK,cAC/C5J,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAkB4nE,MAAO,CAACmwG,SAAS,QAAQz7K,SAAS,OAAP0d,QAAO,IAAPA,OAAO,EAAPA,EAASmoF,SACnEw1E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yCACf63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EACjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAsC4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QAASo4O,GAAkBt8O,SAAA,EACzGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,oBAExBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyC69G,IAAI,WAGtDD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAsC4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QAASo4O,GAAkBt8O,SAAA,EAC3Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,oBAExBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yBAAwB1D,UACjDq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,mBACVJ,KAAK,WACLgoE,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,QAChCs8F,KAAK,SACLv8L,GAAG,yBACHqyD,QAAS0jL,GACTx1O,SA7asBxI,IAC1B,MAAMssI,EAAWtsI,EAAMvG,OAAO6gE,QAC9B2jL,GAAmB3xG,EAAS,UA+ahByzC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAsC4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QAzHrEq4O,KAC3BR,IAAe,GACfE,IAAgB,GAChBE,IAAkB,GAClBtD,GAAoB,GACpBwD,IAAiB,EAAM,EAoHuGr8O,SAAA,EAC9Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,uBAExBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyC69G,IAAI,WAGtDD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAsC4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QA1HtEs4O,KAC1BT,IAAe,GACfE,IAAgB,GAChBE,IAAkB,GAClBtD,GAAoB,GACpBwD,IAAiB,EAAK,EAqHuGr8O,SAAA,EAC7Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,sBAExBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyC69G,IAAI,qBAOpEH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAKlBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oEAAmE1D,UAC5Eq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAEpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,6FAA4F1D,SAAA,CACzH87O,KAAevgE,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAClEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,6CAA4C1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAKomH,IAAiB,OAAPrmK,QAAO,IAAPA,OAAO,EAAPA,EAASqmK,QAAQvI,IAAI,SAAS93K,UAAU,2BAA2B+/F,MAAM,MAAMn4B,MAAO,CAAEm4B,MAAO,QAASC,OAAQ,YACpI63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8DAA6D1D,SAAA,EACxEq7K,EAAAA,GAAAA,KAAA,SAAO8Q,QAAQ,cAAczoL,UAAU,eAAc1D,UACjDq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,oCAAoC69G,IAAI,QAErDH,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOG,GAAG,cAAcipD,OAAO,UAAU4e,MAAO,CAAEk4C,QAAS,QAAUx/G,SAjXrFyvD,UAC5B,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR,MAAMq9E,QAAgBL,GAAgBh9E,GACtC68E,EAAUQ,EAEZ,YA8WwB14B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UACxBq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,yBAEtCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACjCq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,WAAUnsL,SAAC,eACzDq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,4CAA4CD,GAAG,WAAWvN,MAAO4iP,EAAS90O,SAvZzGkC,IACxB,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1B6iP,EAAWjxG,EAAS,EAqZyIx8D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAEpL63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACjCq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,WAAUnsL,SAAC,cACzDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,4CAA4CD,GAAG,WAAWvN,MAAO8iP,EAAYh1O,SAxZ/GkC,IAC3B,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1B+iP,EAAcnxG,EAAS,EAsZkJx8D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,WACtL23E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yDAAwD1D,UACpEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,yCAI3B63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EACpCq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,YAG/Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gCAAiC4nE,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAAS1jG,SAAA,CACnGw0M,GAAkC,sBACnCn5B,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,wEAAwEQ,QApKrFwyM,KAC3B3B,GAAyBD,EAAqB,EAmKgG90M,UAC5Gq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,uCAAuC69G,IAAI,UAG/Ds5B,IAC3Bz5B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,UACNq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,QAAQlL,KAAK,SAASlC,MAAM,OAAO4/D,QAA4B,SAAnB0+I,EAA2BlpI,MAAO,CAACyiH,YAAY,UAAWtqF,MAAO,OAAQC,OAAQ,OAAQ4gF,YAAa,OAAStgL,SAAUA,IAAM4xM,GAAmB,gBAI9Mv6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,qDAAoD1D,SAAA,EACnEq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,YACNq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,QAAQlL,KAAK,SAASlC,MAAM,SAAS4/D,QAA4B,WAAnB0+I,EAA4BlpI,MAAO,CAACyiH,YAAY,UAAWtqF,MAAO,OAAQC,OAAQ,OAAQ4gF,YAAa,OAAStgL,SAAUA,IAAM4xM,GAAmB,+BAa/Lr6B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC5Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,oBAC/Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,SAASI,UAAU,4CAA4CD,GAAG,MAAMvN,MAAOgjP,EAAQl1O,SAnctGkC,IACvB,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1BijP,EAAUrxG,EAAS,EAicqIx8D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,gBAI/K23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,YAC/Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACzCq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,SAAS05E,KAAK,OAAOt5E,UAAU,4CAA4CD,GAAG,SAASvN,MAAOkjP,EAAWp1O,SAzczGkC,IAC1B,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1BmjP,EAAavxG,EAAS,EAuc2Ix8D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,aAElM63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0BAAyB1D,SAAA,EACtCq7K,EAAAA,GAAAA,KAAA,UAAQ/3K,KAAK,SAASI,UAAU,+CAA+C,iBAAe,WAAW,gBAAc,QAAQ4nE,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAAS1jG,SAClL81M,MAEHv6B,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,gBAAe1D,SAAA,EACvCq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,GAAkB,KAAM9vM,GAAGlG,SAC5C,SAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,GAAkB,MAAO9vM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,GAAkB,KAAM9vM,GAAGlG,SAC5C,SAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,GAAkB,MAAO9vM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,GAAkB,MAAO9vM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAM8vM,GAAkB,MAAO9vM,GAAGlG,SAC7C,0BAUHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,YAC/Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6BAA4B1D,UACzCq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,SAAS05E,KAAK,OAAOt5E,UAAU,4CAA4CD,GAAG,SAASvN,MAAOojP,EAAWt1O,SAxgBzGkC,IAC1B,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1BqjP,EAAazxG,EAAS,EAsgB2Ix8D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,aAElM63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0BAAyB1D,SAAA,EACtCq7K,EAAAA,GAAAA,KAAA,UAAQ/3K,KAAK,SAASI,UAAU,8CAA8C,iBAAe,WAAW,gBAAc,QAAQ4nE,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAAS1jG,SACjLi2M,MAEH16B,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,gBAAe1D,SAAA,EAC3Cq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAMiwM,GAAkB,KAAMjwM,GAAGlG,SAC5C,SAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAMiwM,GAAkB,MAAOjwM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAMiwM,GAAkB,MAAOjwM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAMiwM,GAAkB,MAAOjwM,GAAGlG,SAC7C,UAIHq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,UACE33K,UAAU,gBACVQ,QAAUgC,GAAMiwM,GAAkB,MAAOjwM,GAAGlG,SAC7C,0BAUCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EACdq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,uBAGDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,gCACV4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QACR1jG,SAAA,EAEFq7K,EAAAA,GAAAA,KAAA,KAAI/vG,MAAO,CAAEopF,WAAY,SAAUpjD,SAAU,SAAU8kG,aAAc,WAAYt1B,SAAU,OAAQ9gL,UAC5G,OAAZi1M,QAAY,IAAZA,OAAY,EAAZA,EAAc7/M,QAAS,GACpBimL,EAAAA,GAAAA,KAAA,QAAAr7K,SAzUDy/K,EAAM/qL,QAAQiiN,GAAS1B,EAAa/2M,SAASy4M,EAAKz1B,OACtD52J,KAAKqsL,GAASA,EAAKv+M,OACnB6rB,KAAK,SAwUAo3J,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAY1D,SAAC,0BAEXq7K,EAAAA,GAAAA,KAAA,QACE33K,UAAU,wEACVQ,QAtUH0yM,KACzBtB,GAAuBD,EAAmB,EAqUcr1M,UAE5Bq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,uCACJ69G,IAAI,UAIT65B,IACrBh6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,SACjBy/K,GAASA,EAAMn1J,KAAKqsL,IACnBt7B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAO22M,EAAKv+M,QACZijL,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,WACLlL,KAAK,OACLlC,MAAOygN,EAAKv+M,KACZ09D,QAASm/I,EAAa/2M,SAASy4M,EAAKz1B,KACpC51G,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IArXF2yM,KACxBzB,GAAiB2B,GACXA,EAAkB34M,SAASy4M,EAAKz1B,KAE3B21B,EAAkBniN,QAAQoiN,GAAWA,IAAWH,EAAKz1B,MAGrD,IAAI21B,EAAmBF,EAAKz1B,MAErC,EA4W8B61B,CAAiBJ,SAdVA,EAAKz1B,oBAyB1B3F,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,6BAGHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,gCACV4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QACR1jG,SAAA,CAED00M,IAEGr5B,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,WAAU1D,SAAC,wBAC/Bq7K,EAAAA,GAAAA,KAAA,QACE33K,UAAU,wEACVQ,QA7WF8yM,KAC1BnC,GAAwBD,EAAoB,EA4Wa50M,UAE7Bq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,uCACJ69G,IAAI,UAITo5B,IACCv5B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,cACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,WACN4/D,QAA2B,aAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,GAAkB,oBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,qDAAoD1D,SAAA,EACnEq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,kBACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,eACN4/D,QAA2B,iBAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,GAAkB,wBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,aACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,UACN4/D,QAA2B,YAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,GAAkB,gCAehCx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UAC7Bq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CJ,KAAK,SAASY,QAlzBhFuvD,UACpB,IAAKqlL,EAEH,YADA9uD,MAAM,oBAIR,IAAKovD,EAEH,YADApvD,MAAM,qBAIR,IAAKsvD,EAEH,YADAtvD,MAAM,qBAGR,IAAKirB,EAEH,YADAjrB,MAAM,uBAGR,IAAKgvD,EAEH,YADAhvD,MAAM,sBA0CRrO,GAAQ,QAAQtN,GAAOuP,YAxBZ,CACTqH,SAAU6zD,EACV/0D,OAAQA,EACRlqL,SAAU,CACRyJ,KAAM,QACN4zM,YAAa,CAAC,UAAW,UACzBC,QAAS6hC,GAGX5hC,OAAQ5C,EACRe,IAAK2jC,EACPzjC,OAAQ,CACNv/M,MAAOkjP,EACP1rD,KAAMooB,IAERpyG,OAAQ,CACNxtG,MAAOojP,EACP5rD,KAAMuoB,IAERx2B,MAAOw1B,EACPoC,cAAe3C,EACf8kC,gBAAiBA,IAGuBn5D,IAtC1Bj2H,IACW,MAAnBA,EAAI9hC,YACNoxN,KACAh2D,GAAMv3I,QAAQ,+BAAgC,CACtCw3I,UAAW,QAGnBD,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IA4B2Dz+K,IAC3D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAkvB0HomE,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAE,kBAWrLk8O,KAAkB7gE,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACjBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,qBACxBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,SAAC,wPACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,sBAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAMg1O,EAAsB,OAAS,WACrC50O,UAAU,4CACVD,GAAG,kBACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAGVxtG,MAAOkiP,EACPp0O,SA3rBakC,IACnCmyO,EAAmBnyO,EAAEjR,OAAOiB,MAAM,IA4rBO,KAApBkiP,IAA2B78D,EAAAA,GAAAA,MAAA,SAC1B4Q,QAAQ,cACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,GAAG93K,UAAU,SAAQ,uBAEhE23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMqtK,EAAsBzqC,GAAaC,GACzC5pM,QAnsBcu4O,KACtClE,GAAwBD,EAAoB,EAmsBpBhtK,MAAO,CAAE6qE,OAAQ,UAAWw8D,WAAY,mBAK9Dp3B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EACpBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,kBAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAM6uM,EAAkB,OAAS,WACjCzuM,UAAU,4CACVD,GAAG,cACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAGVxtG,MAAO+7M,EACPjuM,SAptBSkC,IAC7BgsM,EAAehsM,EAAEjR,OAAOiB,MAAM,IAqtBK,KAAhB+7M,IAAuB12B,EAAAA,GAAAA,MAAA,SACtB4Q,QAAQ,cACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,GAAG93K,UAAU,SAAQ,mBAEhE23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMknI,EAAkBtE,GAAaC,GACrC5pM,QA5tBYwuM,KAClCN,GAAoBD,EAAgB,EA4tBd7mI,MAAO,CAAE6qE,OAAQ,UAAWw8D,WAAY,mBAKhDp3B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAClCq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,0BAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAMivM,EAAyB,OAAS,WACxC7uM,UAAU,4CACVD,GAAG,qBACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAGVxtG,MAAOm8M,EACPruM,SA7uBkBkC,IACtCosM,EAAsBpsM,EAAEjR,OAAOiB,MAAM,IA8uBK,KAAvBm8M,IAA8B92B,EAAAA,GAAAA,MAAA,SAC7B4Q,QAAQ,WACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,GAAG93K,UAAU,SAAQ,gBAEhE23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMsnI,EAAyB1E,GAAaC,GAC5C5pM,QArvBmB0uM,KACzCJ,GAA2BD,EAAuB,EAqvB5BjnI,MAAO,CAAE6qE,OAAQ,UAAWw8D,WAAY,mBAKhDt3B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAGnEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CQ,QAAUgC,IAAQA,EAAE84F,iBAAkB08I,IAA0B,EAAKpwK,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAE,0BAOtL6tL,KACexS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UACnKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAE/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EAEnCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2DAA2D69G,IAAI,GAAG93E,OAAO,MAAMD,MAAM,SAC9F43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mCACxBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,oKAQ/Bo8O,KAAiB/gE,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAChBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,oBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oCAAmC1D,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,gCAAgCj6D,UAAU,YAAY83K,IAAI,QAEnEH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,2BAA0B1D,SAAC,oCAGxCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,QAAO1D,SAAC,qQACrBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,0PACHu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,cAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAMo1O,EAA4B,OAAS,WAC3Ch1O,UAAU,4CACVD,GAAG,wBACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAGVxtG,MAAOsiP,EACPx0O,SAv0BmBkC,IACzCuyO,EAAyBvyO,EAAEjR,OAAOiB,MAAM,IAw0BO,KAA1BsiP,IAAiCj9D,EAAAA,GAAAA,MAAA,SAChC4Q,QAAQ,cACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,GAAG93K,UAAU,SAAQ,eAEhE23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMytK,EAA4B7qC,GAAaC,GAC/C5pM,QA/0BoBw4O,KAC5C/D,GAA8BD,EAA0B,EA+0BhCptK,MAAO,CAAE6qE,OAAQ,UAAWw8D,WAAY,mBAKhDt3B,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,aAAY1D,SAAC,iJAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACnDq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0C4nE,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAU1hG,QA/1BlFy4O,KAC7B9D,GAAoB,GACpBwD,IAAiB,EAAM,EA61BwHr8O,SAAC,0BAKjJ44O,IAAmBv9D,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAClBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,oBACxBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,QAAO1D,SAAC,6JACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yFAAyF4nE,MAAO,CAAEipF,UAAW,OAAQv0J,UAClGu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAE7Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAEhCq7K,EAAAA,GAAAA,KAAC02B,GAAQ,CACzC77M,MAAOu6M,GACPzsM,SA3tBcysM,IACpBW,GAAOX,EAAI,EA2tBLvB,UAAW,EACXK,WAAYA,GACZJ,YAAcz1M,IAAU2hL,EAAAA,GAAAA,KAAA,YAAW3hL,OAGC2hL,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAClCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,cAAa1D,SAAA,EAC5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UACdu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,+BAA2Bq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,OAAM,iBAE3Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAClBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,2BAMfq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAE3Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CQ,QAAUgC,IAAQA,EAAE84F,iBAAkB08I,IAA0B,EAAKpwK,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAE,wDAmB1O,ECt4BP,GAvOiC48O,KAC7B,MAAMpoE,EAAWR,MACV6Z,EAAWC,IAAgB1tL,EAAAA,EAAAA,WAAS,GACrCvG,EAAW+5K,KACX,OAAE7zE,GAAWlmG,EAAS2W,OAAS,CAAC,GACjC4vK,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IAGlC69K,EAAkB4+D,IAAuBz8O,EAAAA,EAAAA,UAAS,CACrDgqL,SAAU,GACVl0D,SAAU,GACViuD,QAAS,GACTC,UAAW,GACXiG,QAAS,KAGL+lB,EAAoBA,CAACzqJ,EAAOzvD,KAChC2mP,GAAoBC,IAAS,IACxBA,EACH,CAACn3L,GAAQzvD,KACR,EAuEP,OAXA2F,EAAAA,EAAAA,YAAU,KACN,IAAI4+J,EAOJ,OANIozB,IACFpzB,EAAQriI,YAAW,KACjB01J,GAAa,GACbtZ,EAAS,kBAAkB,GAC1B,MAEE,IAAM/mE,aAAagtD,EAAM,GACjC,CAACozB,KAGAtS,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KACXzI,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,kBAAiB1D,UAChCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAChBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qCAAqC4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,UAC5Eq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mEAAkE1D,UAC7Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EAClBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACtCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAiBi6D,IAAI,kCAAkC69G,IAAI,GAAG93E,OAAO,KAAKD,MAAM,QAC/F43E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,4BAA2B1D,SAAC,+BAEhDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wFAAwF4nE,MAAO,CAAEipF,UAAW,OAAQv0J,SAAA,EAC/Hu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAC7Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,SAAC,8BAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,8BAA6B1D,SAAC,8FAE/Cu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACtCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAqC1D,SAAA,EAClDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,qDAAqD69G,IAAI,QAEpEH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UACpBq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,iDACV67H,YAAY,oBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7C1jE,QAAQ,2CACRy3F,MAAM,2BACNvhI,MAAO+nL,EAAiBmM,SACxBpmL,SAAWkC,GAAMkqM,EAAkB,WAAYlqM,EAAEjR,OAAOiB,eAI9DqlL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAqC1D,SAAA,EAClDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yDAAyD69G,IAAI,QAExEH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UACpBq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,iDACV67H,YAAY,oBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7C1jE,QAAQ,2CACRy3F,MAAM,2BACNvhI,MAAO+nL,EAAiB/nD,SACxBlyH,SAAWkC,GAAMkqM,EAAkB,WAAYlqM,EAAEjR,OAAOiB,eAI9DqlL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAqC1D,SAAA,EAClDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yDAAyD69G,IAAI,QAExEH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UACpBq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,iDACV67H,YAAY,mBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7C1jE,QAAQ,2CACRy3F,MAAM,2BACNvhI,MAAO+nL,EAAiBkG,QACxBngL,SAAWkC,GAAMkqM,EAAkB,UAAWlqM,EAAEjR,OAAOiB,eAI7DqlL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAqC1D,SAAA,EAClDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yDAAyD69G,IAAI,QAExEH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UACpBq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,iDACV67H,YAAY,qBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7C1jE,QAAQ,2CACRy3F,MAAM,2BACNvhI,MAAO+nL,EAAiBmG,UACxBpgL,SAAWkC,GAAMkqM,EAAkB,YAAalqM,EAAEjR,OAAOiB,eAI/DqlL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAqC1D,SAAA,EAClDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yDAAyD69G,IAAI,QAExEH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UACpBq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,iDACV67H,YAAY,mBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7C1jE,QAAQ,2CACRy3F,MAAM,2BACNvhI,MAAO+nL,EAAiBoM,QACxBrmL,SAAWkC,GAAMkqM,EAAkB,UAAWlqM,EAAEjR,OAAOiB,kBAMvBmlL,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAC3Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CQ,QAxI/EgC,IAC7BA,EAAE84F,iBAKgC,KAA9Bi/E,EAAiBmM,UAAiD,KAA9BnM,EAAiB/nD,UAA+C,KAA7B+nD,EAAiBkG,SAAgD,KAA/BlG,EAAiBmG,WAC1HjmL,QAAQo7B,IAAI,sBAAuB0kJ,GA1CrB8+D,MAElB5+O,QAAQo7B,IAAI0kJ,GACZ,IAaIruJ,EAAO,CACTq1J,SAAUllF,EAAOklF,SACjBlB,OAAQhkF,EAAOgkF,OACflqL,SAAU,CACRyJ,KAAM,QACN4zM,YAAa,CAAC,UAAW,UACzBC,QAASp3G,EAAOlmG,UAGlBwvL,YAAatpF,EAAOspF,YACpBpL,iBAAkBA,GAEpB9/K,QAAQo7B,IAAI3J,GACZ+rJ,GAAQ,OAAQtN,GAAOoP,gBAAiB7tJ,EAAMywJ,GA1BhCj2H,IACU,KAAlBA,EAAI9hC,WAENwlK,GAAa,GAIbpK,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAgBmEz+K,IACnE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAYE63O,IAEA/yD,MAAM,qCAEV,EA4H8I1+G,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAC,sBAKpK6tL,IACGxS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UAC/Jq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,eAAe4nE,MAAO,CAAEipF,UAAW,MAAOv0J,UACrDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2DAA2D69G,IAAI,GAAG93E,OAAO,MAAMD,MAAM,SAC9F43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mCACxBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,+KAUxCq7K,EAAAA,GAAAA,KAAC0yB,GAAiB,aAI/B,ECxDX,GA3K8BivC,KAC1B,MAAMxoE,EAAWR,MACV6Z,EAAWC,IAAgB1tL,EAAAA,EAAAA,WAAS,IACpCs/K,EAAWu9D,IAAgB78O,EAAAA,EAAAA,UAAS,KACpC88O,EAAmBC,IAAwB/8O,EAAAA,EAAAA,UAAS,IACrDvG,EAAW+5K,KACX,OAAE7zE,GAAWlmG,EAAS2W,OAAS,CAAC,GAC/B4vK,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IA2D3CvE,EAAAA,EAAAA,YAAU,KApDN8/K,GAAQ,MAAOtN,GAAOqR,UAAW,KAAMW,GAJzBj2H,IACV6yL,EAAa7yL,EAAIl7C,KAAKoxK,KAAK,IAG+Bp7K,IAC5D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAoDf,GACb,IAuCL,OAvBArJ,EAAAA,EAAAA,YAAU,KACN,IAAI4+J,EAOJ,OANIozB,IACApzB,EAAQriI,YAAW,KACf01J,GAAa,GACbtZ,EAAS,eAAe,GACzB,MAEA,IAAM/mE,aAAagtD,EAAM,GACjC,CAACozB,EAAWrZ,KAeX+G,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KACXzI,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,kBAAiB1D,UAChCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAChBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qCAAqC4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,UAC5Eq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mEAAkE1D,UAC7Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EAClBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACtCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAiBi6D,IAAI,kCAAkC69G,IAAI,GAAI93E,OAAO,KAAKD,MAAM,QAChG43E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,4BAA2B1D,SAAC,+BAEhDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wFAAwF4nE,MAAO,CAAEipF,UAAW,OAAQv0J,SAAA,EAC/Hu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAC7Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,SAAC,sBAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,8BAA6B1D,SAAC,8FAE/Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,SACrB0/K,GAAaA,EAAUp1J,KAAI,CAACo1J,EAAWn7J,KACpCg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,sCAAqC1D,SAAA,EAC5Dq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,UAAS1D,SAAW,OAAT0/K,QAAS,IAATA,OAAS,EAATA,EAAWtnL,UAEvCijL,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,mBAAmB4nE,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,OAAQqoF,aAAc,OAASxoL,KAAK,WAAWpN,MAAM,GAAG8N,SAAUA,KAAMo5O,OAhEnK35O,EAgEyLi8K,EAAUwB,SA/DhOi8D,GAAsBE,GAChBA,EAAsBn/O,SAASuF,GAE1B45O,EAAsB3oP,QAAQ4oP,GAAgBA,IAAgB75O,IAG9D,IAAI45O,EAAuB55O,KAPTA,KAgEwM,EAACA,GAAE,eAAApF,OAAiBkmB,EAAQ,SAL3MA,QAUlB82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAC3Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CQ,QAzF/EgC,IAC7BA,EAAE84F,iBAGF,MAAMu+I,EAAyBL,EAAkB/+G,MAAKuhD,GAAkC,KAArBA,EAAU5hI,SAEzEy/L,GACAp/O,QAAQo7B,IAAI,aAAc2jN,GAzCVH,MAEpB,IAaIntN,EAAO,CACTq1J,SAAUllF,EAAOklF,SACjBlB,OAAQhkF,EAAOgkF,OACflqL,SAAU,CACRyJ,KAAM,QACN4zM,YAAa,CAAC,UAAW,UACzBC,QAASp3G,EAAOlmG,UAGlBwvL,YAAatpF,EAAOspF,YACpB3J,UAAWw9D,GAEb/+O,QAAQo7B,IAAI3J,GACZ+rJ,GAAQ,OAAQtN,GAAOoP,gBAAiB7tJ,EAAMywJ,GA1BhCj2H,IACU,KAAlBA,EAAI9hC,WAENwlK,GAAa,GAIbpK,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAgBmEz+K,IACjE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAYA63O,IAEA/yD,MAAM,iDAEV,EA6E8I1+G,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAC,sBAKpK6tL,IACGxS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UAC/Jq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAAEipF,UAAW,MAAOv0J,UACtDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2DAA2D69G,IAAI,GAAG93E,OAAO,MAAMD,MAAM,SAC9F43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mCACxBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,+KAUxCq7K,EAAAA,GAAAA,KAAC0yB,GAAiB,aAI/B,ECoCX,GA5M0ByvC,KACtB,MAAM3jP,EAAW+5K,KACViP,EAAYC,IAAiB1iL,EAAAA,EAAAA,UAASvG,EAAS2gC,WAC/C0oJ,EAAYC,IAAiB/iL,EAAAA,EAAAA,UAASgkB,aAAa83J,QAAQ,iBAC5D1H,EAAWR,MACVoM,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GACrC2iL,EAAiB3+J,aAAa83J,QAAQ,aACrC8G,EAAUC,IAAe7iL,EAAAA,EAAAA,UAAS2iL,EAAiB1sK,KAAKe,MAAM2rK,GAAkB,OAEvFlnL,EAAAA,EAAAA,YAAU,KACRinL,EAAcjpL,EAAS2gC,SAAS,GAC/B,CAAC3gC,EAAS2gC,WAYb,MA8BKqzJ,EAAWC,IAAgB1tL,EAAAA,EAAAA,WAAS,GAmB3C,OAjBAvE,EAAAA,EAAAA,YAAU,KACR,IAAI4+J,EAOJ,OANIozB,IACFpzB,EAAQriI,YAAW,KACjBhU,aAAay/J,WAAW,gBACxBrP,EAAS,IAAI,GACZ,MAEE,IAAM/mE,aAAagtD,EAAM,GAC/B,CAACozB,KASFtS,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EAGAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yCAAyC4nE,MAAO,CAACknJ,UAAU,UAAUxyN,UAC5Eq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mCAAkC1D,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8CAA6C1D,UAC1Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sBAAsBi6D,IAAI,2CAA2C69G,IAAI,QAE1FH,EAAAA,GAAAA,KAAA,UACAE,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,oCAAmC1D,SAAA,EACjDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,gBAAe1D,SACT,eAAfkjL,GAA6B3H,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,CAAE,KAACq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,kBAAkBnpH,UAAS,iCAAArF,OAAkD,oBAAfwkL,GAAkD,4BAAdA,GAAyD,6BAAdA,GAA0D,mCAAdA,EAAgD,kBAAoB,IAAK7iL,UAC5Su7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC3Cq7K,EAAAA,GAAAA,KAAA,OAAAr7K,SACgB,oBAAf6iL,GAAiD,4BAAdA,GAAyD,6BAAdA,GAA0D,mCAAdA,GAAiDxH,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,6CAA6C69G,IAAI,MAAMH,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,6CAA6C69G,IAAI,QAEtSH,EAAAA,GAAAA,KAAA,OAAK/vG,MAAO,CAACipF,UAAU,OAAOv0J,UAC9Bq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,mBAAkB1D,SAAC,gBAG9B,QAAMu7K,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,CAAE,KAACq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,eAAenpH,UAAS,iCAAArF,OAAkD,iBAAfwkL,GAA+C,0BAAdA,GAAuD,0BAAdA,GAAuD,iCAAdA,EAA8C,kBAAoB,IAAK7iL,UAC9Qu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC3Cq7K,EAAAA,GAAAA,KAAA,OAAAr7K,SACgB,iBAAf6iL,GAA8C,0BAAdA,GAAuD,0BAAdA,GAAuD,iCAAdA,GAA+CxH,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,6CAA6C69G,IAAI,MAAMH,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,6CAA6C69G,IAAI,QAE5RH,EAAAA,GAAAA,KAAA,OAAK/vG,MAAO,CAACipF,UAAU,OAAOv0J,UAC9Bq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,mBAAkB1D,SAAC,sBAKvCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,gBAAe1D,SACX,eAAfkjL,GAA6B7H,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,8BAA8BnpH,UAAS,iCAAArF,OAAkD,gCAAfwkL,EAA+C,kBAAoB,IAAK7iL,UACzLu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC3Cq7K,EAAAA,GAAAA,KAAA,OAAAr7K,SACc,gCAAf6iL,GAA8CxH,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,8CAA8C69G,IAAI,MAAMH,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,8CAA8C69G,IAAI,QAEzKH,EAAAA,GAAAA,KAAA,OAAK/vG,MAAO,CAACipF,UAAU,OAAOv0J,UAC9Bq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,mBAAkB1D,SAAC,8BAG5Bq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,2BAA2BnpH,UAAS,iCAAArF,OAAkD,6BAAfwkL,EAA4C,kBAAoB,IAAK7iL,UAC9Ju7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC3Cq7K,EAAAA,GAAAA,KAAA,OAAAr7K,SACc,6BAAf6iL,GAA2CxH,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,8CAA8C69G,IAAI,MAAMH,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,8CAA8C69G,IAAI,QAEtKH,EAAAA,GAAAA,KAAA,OAAK/vG,MAAO,CAACipF,UAAU,OAAOv0J,UAC9Bq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,mBAAkB1D,SAAC,gCAKvCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,gBAAe1D,UAC3Bq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,sBAAsBnpH,UAAS,iCAAArF,OAAkD,wBAAfwkL,EAAuC,kBAAoB,IAAK7iL,UACzIu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC7Cq7K,EAAAA,GAAAA,KAAA,OAAAr7K,SACc,wBAAf6iL,GAAsCxH,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,gDAAgD69G,IAAI,MAAMH,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,gDAAgD69G,IAAI,QAErKH,EAAAA,GAAAA,KAAA,OAAK/vG,MAAO,CAACipF,UAAU,OAAOv0J,UAC9Bq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,mBAAkB1D,SAAC,0BAQzCu7K,EAAAA,GAAAA,MAAA,OAAKjwG,MAAO,CAACipF,UAAU,SAASv0J,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,UACAA,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oCAAmC1D,UAC/Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,gBAAe1D,UAC3Bu7K,EAAAA,GAAAA,MAAA,UAAQ73K,UAAU,iCAAkCQ,QA1H7Cu/K,KACnB,IAAIg6D,EAAUrzL,IACY,KAAlBA,EAAI9hC,aAEJlE,aAAaq4J,QAAQ,WAAY,MACjCr4J,aAAaq4J,QAAQ,cAAe,IACpCr4J,aAAaq4J,QAAQ,eAAgB,IACrCwG,EAAY,IACZ6K,GAAa,GAEjB,EAkBJnS,GAAQ,OAAQtN,GAAOkP,OAAO,KAAO8C,EAAco9D,EAAQA,EAAO,EA8FoBz9O,SAAA,EAC1Eq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,8CAA8C69G,IAAI,MACzDH,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,mBAAkB1D,SAAC,4BAoB5C6tL,IACWxS,EAAAA,GAAAA,KAAA,OACA33K,UAAU,8DACVD,GAAG,eACHg8H,SAAS,KACT,kBAAgB,oBAChBn0D,MAAO,CACLk4C,QAAS,QACTuyC,gBAAiB,sBACjB/1J,UAEFq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,eAAes8L,KAAK,WAAUhgM,UAC3Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACrCq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,2DACJ69G,IAAI,GACJ93E,OAAO,MACPD,MAAM,SAER43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAClBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,+BAELq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,sKAUzB,ECjCP,GA1K0BF,IAAuB,IAAtB,aAAE6gL,GAAc7gL,EACzC,MAAOygL,EAAaC,IAAkBpgL,EAAAA,EAAAA,UAAS,IAOzC2iL,EAAiB3+J,aAAa83J,QAAQ,aACnC8G,EAAUC,IAAe7iL,EAAAA,EAAAA,UAAS2iL,EAAiB1sK,KAAKe,MAAM2rK,GAAkB,OAClFG,EAAYC,IAAiB/iL,EAAAA,EAAAA,UAASgkB,aAAa83J,QAAQ,iBAC5D1H,EAAWR,KACXn6K,EAAW+5K,KACViP,EAAYC,IAAiB1iL,EAAAA,EAAAA,UAASvG,EAAS2gC,WACtD3+B,EAAAA,EAAAA,YAAU,KACRinL,EAAcjpL,EAAS2gC,SAAS,GAC/B,CAAC3gC,EAAS2gC,WAiBb,OACE6gJ,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uCAAsC1D,UAC3Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAkB4nE,MAAO,CAAEw1G,SAAU,OAAQ9gL,SAAA,EAC5Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gBAAe1D,SAAA,CAAC,KACrCu7K,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,eAAc1D,SAAA,CAAC,SAAe,OAARgjL,QAAQ,IAARA,OAAQ,EAARA,EAAUiC,SAAS,OAAM,KAC7D1J,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,OAAM1D,SAAA,CAAC,IAAqC,4IAIjDq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,iBAAiBJ,KAAK,SAAS,iBAAe,WAAW,iBAAe,0BAA0B,gBAAc,yBAAyB,gBAAc,QAAQ,aAAW,oBAAmBtD,UAC7Mq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,2BAElB63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,2BAA2B4nE,MAAO,CAAC4vF,WAAW,OAAQz3J,GAAG,yBAAwBzD,SAAA,EAEpGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4CAA2C1D,SAWtC,iBAAf6iL,GAAgD,oBAAfA,GAAkCtH,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EACjHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sBAAqB1D,UAChCq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,qCAAqC4nE,MAAO,CAACwgH,aAAc,IAAI4xD,oBAAoB,OAAOC,uBAAuB,QAAQ39O,UACrIq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,uCAGrB23K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLI,UAAU,yBACV67H,YAAY,YACZrpI,MAAOqqL,EACPv8K,SAnEgBkC,IACpB,MAAMgS,EAAQhS,EAAEjR,OAAOiB,MACvBsqL,EAAetoK,GACfyoK,EAAazoK,EAAM,EAiEfozD,MAAO,CAAEyqF,gBAAiB,UAAW+1B,aAAc,IAAI8xD,qBAAqB,OAAOC,wBAAwB,cAE3GxiE,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,OAIID,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,qBAAoB1D,SAAA,EAClCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,SACD,eAAdkjL,GAA2B7H,EAAAA,GAAAA,KAACp5B,GAAI,CAAEv+I,UAAU,kBAAkB,eAAa,OAAOmpH,GAAG,kBAAiB7sH,SAAC,UAAYq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAAEv+I,UAAU,kBAAkB,eAAa,OAAOmpH,GAAG,eAAc7sH,SAAC,YAEjMq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,SACL,eAAdkjL,GAA2B7H,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAU,WAAWmpH,GAAG,8BAA6B7sH,SAAC,uBAAyBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAU,WAAWmpH,GAAG,2BAA0B7sH,SAAC,yBAE9Kq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAU,WAAWmpH,GAAG,sBAAqB7sH,SAAE,gBAEzDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UACpBq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,WAAWQ,QA/DVu/K,KAEnBr/J,aAAay/J,WAAW,gBAExBV,GAAc,GACd3O,EAAS,SAAS,EA0DiCx0K,SAAE,mBAI3Du7K,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,6BAA4B1D,SAAA,EACtCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,4BAsC1B23K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,yBAAwB1D,UAElCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAOQ,QAhHHm/K,KACf7O,EAAS,mBAAmB,EA+GYlpG,MAAO,CAAC6qE,OAAO,WAAYx4E,IAAI,2BAA2B69G,IAAI,QAG9GH,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,WAAU1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAa,OAARqlH,QAAQ,IAARA,OAAQ,EAARA,EAAUe,OAIfvI,IAAI,GACJ93K,UAAU,iBACV4nE,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,0BAoB/B,ECXP,GArJuBo6I,KAErB,MAAOl+D,EAAWm+D,IAAgB39O,EAAAA,EAAAA,UAAS,KACpCggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GACrCo0K,EAAWR,MAmDjBn4K,EAAAA,EAAAA,YAAU,KA7CR8/K,GAAQ,MAAOtN,GAAOuR,UAAW,KAAMS,GAJzBj2H,IAAS,IAADwkJ,EACpBmvC,EAAgB,OAAH3zL,QAAG,IAAHA,GAAS,QAANwkJ,EAAHxkJ,EAAKl7C,YAAI,IAAA0/L,OAAN,EAAHA,EAAWxwB,QAAQ,IAG4Bl5K,IAC5D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GA8Cf,GACb,IACH,MAAOu7K,EAAkBC,IAAuBtgL,EAAAA,EAAAA,UAAS,KAEzDvE,EAAAA,EAAAA,YAAU,KACR6kL,EAAoBd,EAAU,GAC7B,CAACA,IAaJ,OACErE,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KACbzI,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAElBq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,CAACr9D,aArBPzoK,IACpB,GAAqB,KAAjBA,EAAM4lC,OAER4iI,EAAoBd,OACf,CAEL,MAAM1iG,EAAW0iG,EAAUlrL,QAAOksL,IAAM,IAAAC,EAAA,OAChC,OAAND,QAAM,IAANA,GAAa,QAAPC,EAAND,EAAQnpD,aAAK,IAAAopD,OAAP,EAANA,EAAepyK,cAAcvQ,SAASga,EAAMzJ,cAAc,IAE5DiyK,EAAoBxjG,EACtB,MAYQq+F,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,gBACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,SACnBygL,GAAoBA,EAAiBn2J,KAAI,CAACs2J,EAAQr8J,KAAY82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,oBAAmB1D,UAC3Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAA0C1D,UACjEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uFAAsF1D,SAAA,EACjGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACtCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAai6D,IAAW,OAANijH,QAAM,IAANA,OAAM,EAANA,EAAQO,UAAW19E,MAAM,KAAKn4B,MAAO,CAACo4B,OAAO,aAElF23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACpDq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAAEp1B,GAAI,CACnBryF,SAAU,2BACVviB,OAAO,aAAD5Z,OAAqB,OAANuiL,QAAM,IAANA,OAAM,EAANA,EAAQM,MAC5B51G,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAM,SAAU5lG,UACtCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAU,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQnpD,aAErC8jD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gCAA+B1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,kBAAkB4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4wE,QAAS,WAAYhzD,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,SACzM,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQ50C,WAGTuvC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACzDq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,uCAAuC4nE,MAAO,CAAC6qE,OAAO,WACjE,iBAAe,WACf,gBAAc,WAChBolC,EAAAA,GAAAA,MAAA,MAAI73K,UAAU,mCAAmC4nE,MAAO,CAAEvuE,KAAM,SAAUiD,SAAA,EACxEq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIu7K,EAAAA,GAAAA,MAACt5B,GAAI,CAACp1B,GAAI,CACNryF,SAAU,wBACVviB,OAAO,aAAD5Z,OAAqB,OAANuiL,QAAM,IAANA,OAAM,EAANA,EAAQM,MAC5Bx9K,UAAU,wCAAuC1D,SAAA,CAAE,KAACq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAQi6D,IAAI,wBAAwB69G,IAAI,KAAK,eAEzHH,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIu7K,EAAAA,GAAAA,MAAA,UAAQj4K,KAAK,SAASI,UAAU,2BAA0B1D,SAAA,EAAEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAOi6D,IAAI,yCAAyC69G,IAAI,KAAK,4BAO5HD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EACxDq7K,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAACmwG,SAAS,QAAQz7K,UAACu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAQ,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQY,YAC7CnG,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAACmwG,SAAS,QAAQz7K,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mCAxC4BukB,WAiD3E82J,EAAAA,GAAAA,KAAA,OAAK/3K,KAAK,SAASY,QA5HPy6K,KAkBpBhD,GAAQ,MAAOtN,GAAOsQ,cAAe,KAAM0B,GAjB7Bj2H,IACRA,EAAI6zL,YACNzpE,EAAS,2BASTkP,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAGgEz+K,IAChE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAwGkDxB,UAAU,WAAU1D,UAChEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAYi6D,IAAI,0CAA0C69G,IAAI,qBAMlF,EC1JQ,SAAS,GAAQ1jL,GAG9B,OAAO,GAAU,mBAAqBhC,QAAU,iBAAmBA,OAAOC,SAAW,SAAU+B,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBhC,QAAUgC,EAAE9B,cAAgBF,QAAUgC,IAAMhC,OAAOG,UAAY,gBAAkB6B,CACpH,EAAG,GAAQA,EACb,CCNe,SAASomP,GAAcjtO,GACpC,IAAI/b,ECFS,SAAqB+b,EAAGzT,GACrC,GAAI,UAAY,GAAQyT,KAAOA,EAAG,OAAOA,EACzC,IAAI/K,EAAI+K,EAAEnb,OAAOqoP,aACjB,QAAI,IAAWj4O,EAAG,CAChB,IAAIhR,EAAIgR,EAAEtP,KAAKqa,EAAGzT,GAAK,WACvB,GAAI,UAAY,GAAQtI,GAAI,OAAOA,EACnC,MAAM,IAAIuD,UAAU,+CACtB,CACA,OAAQ,WAAa+E,EAAIyoB,OAASmE,QAAQnZ,EAC5C,CDPUktO,CAAYltO,EAAG,UACvB,MAAO,UAAY,GAAQ/b,GAAKA,EAAI+wB,OAAO/wB,EAC7C,CEJe,SAAS,GAAgBW,EAAKN,EAAKW,GAYhD,OAXAX,EAAM2oP,GAAc3oP,MACTM,EACTtB,OAAOoB,eAAeE,EAAKN,EAAK,CAC9BW,MAAOA,EACPrB,YAAY,EACZsB,cAAc,EACdC,UAAU,IAGZP,EAAIN,GAAOW,EAENL,CACT,CCRA,SAAS06B,GAAMkY,GACb,OAAOA,EAAI,GAAM,CACnB,CACA,MAAM21M,GAAMA,CAAC31M,EAAGlrC,EAAGstD,IAAM74C,KAAK+tB,IAAI/tB,KAAK8tB,IAAI2I,EAAGoiB,GAAIttD,GAClD,SAAS8gP,GAAI51M,GACX,OAAO21M,GAAI7tN,GAAU,KAAJkY,GAAW,EAAG,IACjC,CAIA,SAAS61M,GAAI71M,GACX,OAAO21M,GAAI7tN,GAAU,IAAJkY,GAAU,EAAG,IAChC,CACA,SAAS81M,GAAI91M,GACX,OAAO21M,GAAI7tN,GAAMkY,EAAI,MAAQ,IAAK,EAAG,EACvC,CACA,SAAS+1M,GAAI/1M,GACX,OAAO21M,GAAI7tN,GAAU,IAAJkY,GAAU,EAAG,IAChC,CAEA,MAAMg2M,GAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG/vJ,EAAG,GAAIpjE,EAAG,GAAI4vE,EAAG,GAAIuQ,EAAG,GAAI/hC,EAAG,GAAIwiC,EAAG,GAAIp7F,EAAG,GAAIC,EAAG,GAAII,EAAG,GAAIC,EAAG,GAAIlL,EAAG,GAAImN,EAAG,IACrJ2sD,GAAM,IAAI,oBACVxtD,GAAKzB,GAAKivD,GAAQ,GAAJjvD,GACd0B,GAAK1B,GAAKivD,IAAS,IAAJjvD,IAAa,GAAKivD,GAAQ,GAAJjvD,GACrCwyE,GAAKxyE,IAAW,IAAJA,IAAa,KAAY,GAAJA,GAyBvC,SAAS2tO,GAAUj2M,GACjB,IAAIp1B,EAzBUo1B,IAAK86C,GAAG96C,EAAEjrC,IAAM+lF,GAAG96C,EAAEi2B,IAAM6kB,GAAG96C,EAAE13B,IAAMwyE,GAAG96C,EAAE33B,GAyBjD6tO,CAAQl2M,GAAKj2B,GAAKC,GAC1B,OAAOg2B,EACH,IAAMp1B,EAAEo1B,EAAEjrC,GAAK6V,EAAEo1B,EAAEi2B,GAAKrrD,EAAEo1B,EAAE13B,GAJpB6tO,EAAC9tO,EAAGuC,IAAMvC,EAAI,IAAMuC,EAAEvC,GAAK,GAIF8tO,CAAMn2M,EAAE33B,EAAGuC,QAC5C3U,CACN,CAEA,MAAMmgP,GAAS,+GACf,SAASC,GAASj0L,EAAG75C,EAAGzT,GACtB,MAAMuT,EAAIE,EAAIgB,KAAK8tB,IAAIviC,EAAG,EAAIA,GACxB8V,EAAI,SAACpb,GAAC,IAAEqb,EAACne,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,IAAI8C,EAAI4yD,EAAI,IAAM,GAAE,OAAKttD,EAAIuT,EAAIkB,KAAK+tB,IAAI/tB,KAAK8tB,IAAIxsB,EAAI,EAAG,EAAIA,EAAG,IAAK,EAAE,EACvF,MAAO,CAACD,EAAE,GAAIA,EAAE,GAAIA,EAAE,GACxB,CACA,SAAS0rO,GAASl0L,EAAG75C,EAAGy3B,GACtB,MAAMp1B,EAAI,SAACpb,GAAC,IAAEqb,EAACne,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,IAAI8C,EAAI4yD,EAAI,IAAM,EAAC,OAAKpiB,EAAIA,EAAIz3B,EAAIgB,KAAK+tB,IAAI/tB,KAAK8tB,IAAIxsB,EAAG,EAAIA,EAAG,GAAI,EAAE,EACrF,MAAO,CAACD,EAAE,GAAIA,EAAE,GAAIA,EAAE,GACxB,CACA,SAAS2rO,GAASn0L,EAAGz3C,EAAGrC,GACtB,MAAMkuO,EAAMH,GAASj0L,EAAG,EAAG,IAC3B,IAAI31D,EAMJ,IALIke,EAAIrC,EAAI,IACV7b,EAAI,GAAKke,EAAIrC,GACbqC,GAAKle,EACL6b,GAAK7b,GAEFA,EAAI,EAAGA,EAAI,EAAGA,IACjB+pP,EAAI/pP,IAAM,EAAIke,EAAIrC,EAClBkuO,EAAI/pP,IAAMke,EAEZ,OAAO6rO,CACT,CAUA,SAASC,GAAQz2M,GACf,MACMjrC,EAAIirC,EAAEjrC,EADE,IAERkhE,EAAIj2B,EAAEi2B,EAFE,IAGR3tD,EAAI03B,EAAE13B,EAHE,IAIRgvB,EAAM/tB,KAAK+tB,IAAIviC,EAAGkhE,EAAG3tD,GACrB+uB,EAAM9tB,KAAK8tB,IAAItiC,EAAGkhE,EAAG3tD,GACrBxT,GAAKwiC,EAAMD,GAAO,EACxB,IAAI+qB,EAAG75C,EAAGI,EAOV,OANI2uB,IAAQD,IACV1uB,EAAI2uB,EAAMD,EACV9uB,EAAIzT,EAAI,GAAM6T,GAAK,EAAI2uB,EAAMD,GAAO1uB,GAAK2uB,EAAMD,GAC/C+qB,EArBJ,SAAkBrtD,EAAGkhE,EAAG3tD,EAAGK,EAAG2uB,GAC5B,OAAIviC,IAAMuiC,GACC2+B,EAAI3tD,GAAKK,GAAMstD,EAAI3tD,EAAI,EAAI,GAElC2tD,IAAM3+B,GACAhvB,EAAIvT,GAAK4T,EAAI,GAEf5T,EAAIkhE,GAAKttD,EAAI,CACvB,CAaQ+tO,CAAS3hP,EAAGkhE,EAAG3tD,EAAGK,EAAG2uB,GACzB8qB,EAAQ,GAAJA,EAAS,IAER,CAAK,EAAJA,EAAO75C,GAAK,EAAGzT,EACzB,CACA,SAAS6hP,GAAM/rO,EAAGvC,EAAGC,EAAGI,GACtB,OACEha,MAAMC,QAAQ0Z,GACVuC,EAAEvC,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAChBuC,EAAEvC,EAAGC,EAAGI,IACZmZ,IAAIg0N,GACR,CACA,SAASe,GAAQx0L,EAAG75C,EAAGzT,GACrB,OAAO6hP,GAAMN,GAAUj0L,EAAG75C,EAAGzT,EAC/B,CAOA,SAAS+hP,GAAIz0L,GACX,OAAQA,EAAI,IAAM,KAAO,GAC3B,CACA,SAAS00L,GAASr8O,GAChB,MAAM0zD,EAAIioL,GAAOn4L,KAAKxjD,GACtB,IACIulC,EADA33B,EAAI,IAER,IAAK8lD,EACH,OAEEA,EAAE,KAAOnuB,IACX33B,EAAI8lD,EAAE,GAAKynL,IAAKznL,EAAE,IAAM0nL,IAAK1nL,EAAE,KAEjC,MAAM/L,EAAIy0L,IAAK1oL,EAAE,IACXqsJ,GAAMrsJ,EAAE,GAAK,IACb6vJ,GAAM7vJ,EAAE,GAAK,IAQnB,OANEnuB,EADW,QAATmuB,EAAE,GAtBR,SAAiB/L,EAAGz3C,EAAGrC,GACrB,OAAOquO,GAAMJ,GAAUn0L,EAAGz3C,EAAGrC,EAC/B,CAqBQyuO,CAAQ30L,EAAGo4J,EAAIwD,GACD,QAAT7vJ,EAAE,GArBf,SAAiB/L,EAAG75C,EAAGy3B,GACrB,OAAO22M,GAAML,GAAUl0L,EAAG75C,EAAGy3B,EAC/B,CAoBQg3M,CAAQ50L,EAAGo4J,EAAIwD,GAEf44B,GAAQx0L,EAAGo4J,EAAIwD,GAEd,CACLjpN,EAAGirC,EAAE,GACLi2B,EAAGj2B,EAAE,GACL13B,EAAG03B,EAAE,GACL33B,EAAGA,EAEP,CAsBA,MAAMwZ,GAAM,CACV3xB,EAAG,OACHmyE,EAAG,QACHq5C,EAAG,KACHzB,EAAG,MACHvhD,EAAG,KACH0gD,EAAG,SACHF,EAAG,QACHjzB,EAAG,KACHttB,EAAG,KACHh2C,EAAG,KACHE,EAAG,KACH4vE,EAAG,QACHuQ,EAAG,QACHwO,EAAG,KACH1B,EAAG,WACH7uC,EAAG,KACHwuC,EAAG,KACH5uC,EAAG,KACHj+C,EAAG,KACHd,EAAG,KACHK,EAAG,QACHshF,EAAG,KACHjrC,EAAG,KACH0tC,EAAG,OACHztC,EAAG,KACH6vC,EAAG,QACH9E,EAAG,MAECyzI,GAAU,CACdC,OAAQ,SACRC,YAAa,SACbC,KAAM,OACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,OAAQ,SACRC,MAAO,IACPC,aAAc,SACd31I,GAAI,KACJ41I,QAAS,SACTC,KAAM,SACNC,UAAW,SACXC,OAAQ,SACRC,SAAU,SACVC,QAAS,SACTC,IAAK,SACLC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,KAAM,OACNC,IAAK,KACLC,MAAO,OACPC,QAAS,SACTC,KAAM,SACNC,KAAM,OACNC,KAAM,SACNC,OAAQ,SACRC,QAAS,SACTC,SAAU,SACVC,OAAQ,SACRC,MAAO,SACPC,IAAK,SACLC,OAAQ,SACRC,OAAQ,SACRC,KAAM,SACNC,MAAO,SACPC,MAAO,SACPC,IAAK,OACLC,OAAQ,SACRC,OAAQ,SACRC,SAAU,OACVC,OAAQ,SACRC,OAAQ,SACRC,SAAU,SACVC,SAAU,SACVC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,IAAK,SACLC,OAAQ,SACRC,IAAK,SACLC,IAAK,OACLC,MAAO,SACPC,IAAK,SACLC,QAAS,SACTC,OAAQ,SACRC,QAAS,SACTC,MAAO,SACPC,KAAM,SACNC,MAAO,SACPC,OAAQ,SACRC,UAAW,SACXC,QAAS,SACTC,WAAY,SACZC,IAAK,SACLC,KAAM,SACNC,MAAO,SACPC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,QAAS,SACTC,IAAK,SACLC,KAAM,OACNC,QAAS,SACTC,IAAK,SACLC,OAAQ,SACRC,MAAO,SACPC,WAAY,SACZC,IAAK,KACLC,MAAO,SACPC,OAAQ,SACRC,OAAQ,SACRC,KAAM,SACNC,UAAW,OACXC,IAAK,SACLC,SAAU,SACVC,WAAY,SACZC,QAAS,SACTC,SAAU,SACVC,QAAS,SACTC,WAAY,SACZC,KAAM,KACNC,OAAQ,SACRC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,QAAS,SACTC,KAAM,SACNC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,WAAY,SACZC,UAAW,SACXC,QAAS,SACTC,KAAM,SACNC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,YAAa,SACb1iJ,GAAI,SACJ2iJ,SAAU,SACVC,MAAO,SACPC,UAAW,SACXC,MAAO,SACPC,UAAW,SACXC,MAAO,SACPC,QAAS,SACTC,MAAO,SACPC,OAAQ,SACRC,MAAO,SACPC,IAAK,SACLC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,SAAU,OACVC,OAAQ,SACRC,IAAK,SACLC,IAAK,OACLC,MAAO,SACPC,OAAQ,SACRx+I,GAAI,SACJy+I,MAAO,SACPC,IAAK,SACLC,KAAM,SACNC,UAAW,SACXC,GAAI,SACJC,MAAO,UAmBT,IAAIhkH,GACJ,SAASikH,GAAU1lP,GACZyhI,KACHA,GApBJ,WACE,MAAMkkH,EAAW,CAAC,EACZv0P,EAAOC,OAAOD,KAAKorP,IACnBoJ,EAAQv0P,OAAOD,KAAKg2B,IAC1B,IAAIp1B,EAAGoiE,EAAGhkD,EAAG2wG,EAAID,EACjB,IAAK9uH,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAAK,CAEhC,IADA+uH,EAAKD,EAAK1vH,EAAKY,GACVoiE,EAAI,EAAGA,EAAIwxL,EAAM1zP,OAAQkiE,IAC5BhkD,EAAIw1O,EAAMxxL,GACV0sD,EAAKA,EAAGpuG,QAAQtC,EAAGgX,GAAIhX,IAEzBA,EAAIod,SAASgvN,GAAQz7H,GAAK,IAC1B4kI,EAAS7kI,GAAM,CAAC1wG,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EACjD,CACA,OAAOu1O,CACT,CAKYE,GACRpkH,GAAMqkH,YAAc,CAAC,EAAG,EAAG,EAAG,IAEhC,MAAMl4O,EAAI6zH,GAAMzhI,EAAIuL,eACpB,OAAOqC,GAAK,CACVtT,EAAGsT,EAAE,GACL4tD,EAAG5tD,EAAE,GACLC,EAAGD,EAAE,GACLA,EAAgB,IAAbA,EAAE1b,OAAe0b,EAAE,GAAK,IAE/B,CAEA,MAAMm4O,GAAS,uGAiCf,MAAMp8H,GAAKpkF,GAAKA,GAAK,SAAgB,MAAJA,EAAqC,MAAzBz2B,KAAKM,IAAIm2B,EAAG,EAAM,KAAe,KACxEpwC,GAAOowC,GAAKA,GAAK,OAAUA,EAAI,MAAQz2B,KAAKM,KAAKm2B,EAAI,MAAS,MAAO,KAa3E,SAASygN,GAAOzgN,EAAGvzC,EAAGsmO,GACpB,GAAI/yL,EAAG,CACL,IAAIhB,EAAMy3M,GAAQz2M,GAClBhB,EAAIvyC,GAAK8c,KAAK+tB,IAAI,EAAG/tB,KAAK8tB,IAAI2H,EAAIvyC,GAAKuyC,EAAIvyC,GAAKsmO,EAAa,IAANtmO,EAAU,IAAM,IACvEuyC,EAAM43M,GAAQ53M,GACdgB,EAAEjrC,EAAIiqC,EAAI,GACVgB,EAAEi2B,EAAIj3B,EAAI,GACVgB,EAAE13B,EAAI02B,EAAI,EACZ,CACF,CACA,SAASk/B,GAAMl+B,EAAGozG,GAChB,OAAOpzG,EAAIl0C,OAAOsyC,OAAOg1G,GAAS,CAAC,EAAGpzG,GAAKA,CAC7C,CACA,SAASstB,GAAWhmD,GAClB,IAAI04B,EAAI,CAACjrC,EAAG,EAAGkhE,EAAG,EAAG3tD,EAAG,EAAGD,EAAG,KAY9B,OAXI3Z,MAAMC,QAAQ2Y,GACZA,EAAM3a,QAAU,IAClBqzC,EAAI,CAACjrC,EAAGuS,EAAM,GAAI2uD,EAAG3uD,EAAM,GAAIgB,EAAGhB,EAAM,GAAIe,EAAG,KAC3Cf,EAAM3a,OAAS,IACjBqzC,EAAE33B,EAAIwtO,GAAIvuO,EAAM,OAIpB04B,EAAIk+B,GAAM52D,EAAO,CAACvS,EAAG,EAAGkhE,EAAG,EAAG3tD,EAAG,EAAGD,EAAG,KACrCA,EAAIwtO,GAAI71M,EAAE33B,GAEP23B,CACT,CACA,SAAS0gN,GAAcjmP,GACrB,MAAsB,MAAlBA,EAAIC,OAAO,GA3EjB,SAAkBD,GAChB,MAAM0zD,EAAIqyL,GAAOviM,KAAKxjD,GACtB,IACI1F,EAAGkhE,EAAG3tD,EADND,EAAI,IAER,GAAK8lD,EAAL,CAGA,GAAIA,EAAE,KAAOp5D,EAAG,CACd,MAAMirC,GAAKmuB,EAAE,GACb9lD,EAAI8lD,EAAE,GAAKynL,GAAI51M,GAAK21M,GAAQ,IAAJ31M,EAAS,EAAG,IACtC,CAOA,OANAjrC,GAAKo5D,EAAE,GACP8H,GAAK9H,EAAE,GACP7lD,GAAK6lD,EAAE,GACPp5D,EAAI,KAAOo5D,EAAE,GAAKynL,GAAI7gP,GAAK4gP,GAAI5gP,EAAG,EAAG,MACrCkhE,EAAI,KAAO9H,EAAE,GAAKynL,GAAI3/K,GAAK0/K,GAAI1/K,EAAG,EAAG,MACrC3tD,EAAI,KAAO6lD,EAAE,GAAKynL,GAAIttO,GAAKqtO,GAAIrtO,EAAG,EAAG,MAC9B,CACLvT,EAAGA,EACHkhE,EAAGA,EACH3tD,EAAGA,EACHD,EAAGA,EAfL,CAiBF,CAqDWs4O,CAASlmP,GAEXq8O,GAASr8O,EAClB,CACA,MAAMmmP,GACJrzP,WAAAA,CAAY+Z,GACV,GAAIA,aAAiBs5O,GACnB,OAAOt5O,EAET,MAAMzM,SAAcyM,EACpB,IAAI04B,EACS,WAATnlC,EACFmlC,EAAIstB,GAAWhmD,GACG,WAATzM,IACTmlC,EAjcN,SAAkBvlC,GAChB,IACIo3D,EADA/hE,EAAM2K,EAAI9N,OAmBd,MAjBe,MAAX8N,EAAI,KACM,IAAR3K,GAAqB,IAARA,EACf+hE,EAAM,CACJ98D,EAAG,IAAsB,GAAhBihP,GAAMv7O,EAAI,IACnBw7D,EAAG,IAAsB,GAAhB+/K,GAAMv7O,EAAI,IACnB6N,EAAG,IAAsB,GAAhB0tO,GAAMv7O,EAAI,IACnB4N,EAAW,IAARvY,EAA4B,GAAhBkmP,GAAMv7O,EAAI,IAAW,KAErB,IAAR3K,GAAqB,IAARA,IACtB+hE,EAAM,CACJ98D,EAAGihP,GAAMv7O,EAAI,KAAO,EAAIu7O,GAAMv7O,EAAI,IAClCw7D,EAAG+/K,GAAMv7O,EAAI,KAAO,EAAIu7O,GAAMv7O,EAAI,IAClC6N,EAAG0tO,GAAMv7O,EAAI,KAAO,EAAIu7O,GAAMv7O,EAAI,IAClC4N,EAAW,IAARvY,EAAakmP,GAAMv7O,EAAI,KAAO,EAAIu7O,GAAMv7O,EAAI,IAAO,OAIrDo3D,CACT,CA4aUgvL,CAASv5O,IAAU64O,GAAU74O,IAAUo5O,GAAcp5O,IAE3DJ,KAAK45O,KAAO9gN,EACZ94B,KAAK65O,SAAW/gN,CAClB,CACA,SAAIghN,GACF,OAAO95O,KAAK65O,MACd,CACA,OAAIvK,GACF,IAAIx2M,EAAIk+B,GAAMh3D,KAAK45O,MAInB,OAHI9gN,IACFA,EAAE33B,EAAIytO,GAAI91M,EAAE33B,IAEP23B,CACT,CACA,OAAIw2M,CAAIppP,GACN8Z,KAAK45O,KAAOxzL,GAAWlgE,EACzB,CACA6zP,SAAAA,GACE,OAAO/5O,KAAK65O,OArFhB,SAAmB/gN,GACjB,OAAOA,IACLA,EAAE33B,EAAI,IAAG,QAAAzS,OACGoqC,EAAEjrC,EAAC,MAAAa,OAAKoqC,EAAEi2B,EAAC,MAAArgE,OAAKoqC,EAAE13B,EAAC,MAAA1S,OAAKkgP,GAAI91M,EAAE33B,GAAE,YAAAzS,OACjCoqC,EAAEjrC,EAAC,MAAAa,OAAKoqC,EAAEi2B,EAAC,MAAArgE,OAAKoqC,EAAE13B,EAAC,KAElC,CA+EyB24O,CAAU/5O,KAAK45O,WAAQ7qP,CAC9C,CACAggP,SAAAA,GACE,OAAO/uO,KAAK65O,OAAS9K,GAAU/uO,KAAK45O,WAAQ7qP,CAC9C,CACAirP,SAAAA,GACE,OAAOh6O,KAAK65O,OApVhB,SAAmB/gN,GACjB,IAAKA,EACH,OAEF,MAAM33B,EAAIouO,GAAQz2M,GACZoiB,EAAI/5C,EAAE,GACNE,EAAIwtO,GAAI1tO,EAAE,IACVvT,EAAIihP,GAAI1tO,EAAE,IAChB,OAAO23B,EAAE33B,EAAI,IAAG,QAAAzS,OACJwsD,EAAC,MAAAxsD,OAAK2S,EAAC,OAAA3S,OAAMd,EAAC,OAAAc,OAAMkgP,GAAI91M,EAAE33B,GAAE,YAAAzS,OAC7BwsD,EAAC,MAAAxsD,OAAK2S,EAAC,OAAA3S,OAAMd,EAAC,KAC3B,CAyUyBosP,CAAUh6O,KAAK45O,WAAQ7qP,CAC9C,CACAkrP,GAAAA,CAAIhkJ,EAAO6vG,GACT,GAAI7vG,EAAO,CACT,MAAM2gH,EAAK52M,KAAKsvO,IACVv3B,EAAK9hH,EAAMq5I,IACjB,IAAI4K,EACJ,MAAM7gL,EAAIysI,IAAWo0C,EAAK,GAAMp0C,EAC1BriM,EAAI,EAAI41D,EAAI,EACZl4D,EAAIy1M,EAAGz1M,EAAI42M,EAAG52M,EACdwyM,IAAOlwM,EAAItC,KAAO,EAAIsC,GAAKA,EAAItC,IAAM,EAAIsC,EAAItC,IAAM,GAAK,EAC9D+4O,EAAK,EAAIvmC,EACTiD,EAAG/oN,EAAI,IAAO8lN,EAAKiD,EAAG/oN,EAAIqsP,EAAKniC,EAAGlqN,EAAI,GACtC+oN,EAAG7nJ,EAAI,IAAO4kJ,EAAKiD,EAAG7nJ,EAAImrL,EAAKniC,EAAGhpJ,EAAI,GACtC6nJ,EAAGx1M,EAAI,IAAOuyM,EAAKiD,EAAGx1M,EAAI84O,EAAKniC,EAAG32M,EAAI,GACtCw1M,EAAGz1M,EAAIk4D,EAAIu9I,EAAGz1M,GAAK,EAAIk4D,GAAK0+I,EAAG52M,EAC/BnB,KAAKsvO,IAAM14B,CACb,CACA,OAAO52M,IACT,CACAm6O,WAAAA,CAAYlkJ,EAAO30F,GAIjB,OAHI20F,IACFj2F,KAAK45O,KAvGX,SAAqBQ,EAAMC,EAAM/4O,GAC/B,MAAMzT,EAAInF,GAAKkmP,GAAIwL,EAAKvsP,IAClBkhE,EAAIrmE,GAAKkmP,GAAIwL,EAAKrrL,IAClB3tD,EAAI1Y,GAAKkmP,GAAIwL,EAAKh5O,IACxB,MAAO,CACLvT,EAAG8gP,GAAIzxH,GAAGrvH,EAAIyT,GAAK5Y,GAAKkmP,GAAIyL,EAAKxsP,IAAMA,KACvCkhE,EAAG4/K,GAAIzxH,GAAGnuD,EAAIztD,GAAK5Y,GAAKkmP,GAAIyL,EAAKtrL,IAAMA,KACvC3tD,EAAGutO,GAAIzxH,GAAG97G,EAAIE,GAAK5Y,GAAKkmP,GAAIyL,EAAKj5O,IAAMA,KACvCD,EAAGi5O,EAAKj5O,EAAIG,GAAK+4O,EAAKl5O,EAAIi5O,EAAKj5O,GAEnC,CA6FkBg5O,CAAYn6O,KAAK45O,KAAM3jJ,EAAM2jJ,KAAMt4O,IAE1CtB,IACT,CACAg3D,KAAAA,GACE,OAAO,IAAI0iL,GAAM15O,KAAKsvO,IACxB,CACAL,KAAAA,CAAM9tO,GAEJ,OADAnB,KAAK45O,KAAKz4O,EAAIwtO,GAAIxtO,GACXnB,IACT,CACAs6O,OAAAA,CAAQzuB,GAGN,OAFY7rN,KAAK45O,KACbz4O,GAAK,EAAI0qN,EACN7rN,IACT,CACAu6O,SAAAA,GACE,MAAMjL,EAAMtvO,KAAK45O,KACXrlO,EAAMqM,GAAc,GAAR0uN,EAAIzhP,EAAkB,IAARyhP,EAAIvgL,EAAmB,IAARugL,EAAIluO,GAEnD,OADAkuO,EAAIzhP,EAAIyhP,EAAIvgL,EAAIugL,EAAIluO,EAAImT,EACjBvU,IACT,CACAw6O,OAAAA,CAAQ3uB,GAGN,OAFY7rN,KAAK45O,KACbz4O,GAAK,EAAI0qN,EACN7rN,IACT,CACAwgB,MAAAA,GACE,MAAMsY,EAAI94B,KAAK45O,KAIf,OAHA9gN,EAAEjrC,EAAI,IAAMirC,EAAEjrC,EACdirC,EAAEi2B,EAAI,IAAMj2B,EAAEi2B,EACdj2B,EAAE13B,EAAI,IAAM03B,EAAE13B,EACPpB,IACT,CACAy6O,OAAAA,CAAQ5uB,GAEN,OADA0tB,GAAOv5O,KAAK45O,KAAM,EAAG/tB,GACd7rN,IACT,CACA06O,MAAAA,CAAO7uB,GAEL,OADA0tB,GAAOv5O,KAAK45O,KAAM,GAAI/tB,GACf7rN,IACT,CACA26O,QAAAA,CAAS9uB,GAEP,OADA0tB,GAAOv5O,KAAK45O,KAAM,EAAG/tB,GACd7rN,IACT,CACA46O,UAAAA,CAAW/uB,GAET,OADA0tB,GAAOv5O,KAAK45O,KAAM,GAAI/tB,GACf7rN,IACT,CACAooL,MAAAA,CAAOyyD,GAEL,OAtaJ,SAAgB/hN,EAAG+hN,GACjB,IAAI3/L,EAAIq0L,GAAQz2M,GAChBoiB,EAAE,GAAKy0L,GAAIz0L,EAAE,GAAK2/L,GAClB3/L,EAAIw0L,GAAQx0L,GACZpiB,EAAEjrC,EAAIqtD,EAAE,GACRpiB,EAAEi2B,EAAI7T,EAAE,GACRpiB,EAAE13B,EAAI85C,EAAE,EACV,CA8ZIktI,CAAOpoL,KAAK45O,KAAMiB,GACX76O,IACT,EC3jBK,SAAS89B,KACJ,CAML,MAAM87C,GAAO,MAClB,IAAI9lF,EAAK,EACT,MAAO,IAAMA,GACd,EAHmB,GAUb,SAASgnP,GAAcv0P,GAC5B,OAAiB,OAAVA,GAAmC,qBAAVA,CAClC,CAOO,SAASkB,GAAqBlB,GACnC,GAAIiB,MAAMC,SAAWD,MAAMC,QAAQlB,GACjC,OAAO,EAET,MAAMoN,EAAO/O,OAAO0B,UAAUiC,SAAStB,KAAKV,GAC5C,MAAyB,YAArBoN,EAAKnL,MAAM,EAAG,IAAuC,WAAnBmL,EAAKnL,OAAO,EAIpD,CAOO,SAAS4lE,GAAS7nE,GACvB,OAAiB,OAAVA,GAA4D,oBAA1C3B,OAAO0B,UAAUiC,SAAStB,KAAKV,EAC1D,CAMA,SAASw0P,GAAex0P,GACtB,OAAyB,kBAAVA,GAAsBA,aAAiBk0B,SAAWiwC,UAAUnkE,EAC7E,CAUO,SAASy0P,GAAgBz0P,EAAgBokB,GAC9C,OAAOowO,GAAex0P,GAASA,EAAQokB,CACzC,CAOO,SAASswO,GAAkB10P,EAAsBokB,GACtD,MAAwB,qBAAVpkB,EAAwBokB,EAAepkB,CACvD,OAOa20P,GAAcA,CAAC30P,EAAwB40P,IACjC,kBAAV50P,GAAsBA,EAAMw0C,SAAS,KAC1CtH,WAAWltC,GAAS,IAAM40P,GACvB50P,EASA,SAASqhB,GACd+J,EACA6tB,EACAy8B,GAEA,GAAItqD,GAAyB,oBAAZA,EAAG1qB,KAClB,OAAO0qB,EAAGvsB,MAAM62E,EAASz8B,EAE7B,CAuBO,SAAS32B,GACduyO,EACAzpO,EACAsqD,EACAiO,GAEA,IAAI3kF,EAAWqD,EAAajE,EAC5B,GAAI8C,GAAQ2zP,GAEV,GADAxyP,EAAMwyP,EAAS31P,OACXykF,EACF,IAAK3kF,EAAIqD,EAAM,EAAGrD,GAAK,EAAGA,IACxBosB,EAAG1qB,KAAKg1E,EAASm/K,EAAS71P,GAAIA,QAGhC,IAAKA,EAAI,EAAGA,EAAIqD,EAAKrD,IACnBosB,EAAG1qB,KAAKg1E,EAASm/K,EAAS71P,GAAIA,QAG7B,GAAI6oE,GAASgtL,GAGlB,IAFAz2P,EAAOC,OAAOD,KAAKy2P,GACnBxyP,EAAMjE,EAAKc,OACNF,EAAI,EAAGA,EAAIqD,EAAKrD,IACnBosB,EAAG1qB,KAAKg1E,EAASm/K,EAASz2P,EAAKY,IAAKZ,EAAKY,GAG/C,CAQO,SAAS81P,GAAeC,EAAuB55F,GACpD,IAAIn8J,EAAWg2P,EAAcC,EAAqB59F,EAElD,IAAK09F,IAAO55F,GAAM45F,EAAG71P,SAAWi8J,EAAGj8J,OACjC,OAAO,EAGT,IAAKF,EAAI,EAAGg2P,EAAOD,EAAG71P,OAAQF,EAAIg2P,IAAQh2P,EAIxC,GAHAi2P,EAAKF,EAAG/1P,GACRq4J,EAAK8D,EAAGn8J,GAEJi2P,EAAGC,eAAiB79F,EAAG69F,cAAgBD,EAAG5mO,QAAUgpI,EAAGhpI,MACzD,OAAO,EAIX,OAAO,CACT,CAMO,SAASoiD,GAAStxE,GACvB,GAAI+B,GAAQ/B,GACV,OAAOA,EAAOi1B,IAAIq8C,IAGpB,GAAI5I,GAAS1oE,GAAS,CACpB,MAAMJ,EAASV,OAAOwQ,OAAO,MACvBzQ,EAAOC,OAAOD,KAAKe,GACnBg2P,EAAO/2P,EAAKc,OAClB,IAAIke,EAAI,EAER,KAAOA,EAAI+3O,IAAQ/3O,EACjBre,EAAOX,EAAKgf,IAAMqzD,GAAMtxE,EAAOf,EAAKgf,KAGtC,OAAOre,EAGT,OAAOI,CACT,CAEA,SAASi2P,GAAW/1P,GAClB,OAAmE,IAA5D,CAAC,YAAa,YAAa,eAAeiB,QAAQjB,EAC3D,CAOO,SAASg2P,GAAQh2P,EAAaN,EAAmBI,EAAmBuI,GACzE,IAAK0tP,GAAW/1P,GACd,OAGF,MAAMi2P,EAAOv2P,EAAOM,GACdk2P,EAAOp2P,EAAOE,GAEhBwoE,GAASytL,IAASztL,GAAS0tL,GAE7BlxO,GAAMixO,EAAMC,EAAM7tP,GAElB3I,EAAOM,GAAOoxE,GAAM8kL,EAExB,CA0BO,SAASlxO,GAAStlB,EAAWI,EAAqBuI,GACvD,MAAM8uI,EAAUt1I,GAAQ/B,GAAUA,EAAS,CAACA,GACtC61P,EAAOx+G,EAAQt3I,OAErB,IAAK2oE,GAAS9oE,GACZ,OAAOA,EAIT,MAAMy2P,GADN9tP,EAAUA,GAAW,CAAC,GACC8tP,QAAUH,GACjC,IAAIzvP,EAEJ,IAAK,IAAI5G,EAAI,EAAGA,EAAIg2P,IAAQh2P,EAAG,CAE7B,GADA4G,EAAU4wI,EAAQx3I,IACb6oE,GAASjiE,GACZ,SAGF,MAAMxH,EAAOC,OAAOD,KAAKwH,GACzB,IAAK,IAAIwX,EAAI,EAAG+3O,EAAO/2P,EAAKc,OAAQke,EAAI+3O,IAAQ/3O,EAC9Co4O,EAAOp3P,EAAKgf,GAAIre,EAAQ6G,EAAS8B,EAErC,CAEA,OAAO3I,CACT,CAgBO,SAAS02P,GAAW12P,EAAWI,GAEpC,OAAOklB,GAAStlB,EAAQI,EAAQ,CAACq2P,OAAQE,IAC3C,CAMO,SAASA,GAAUr2P,EAAaN,EAAmBI,GACxD,IAAKi2P,GAAW/1P,GACd,OAGF,MAAMi2P,EAAOv2P,EAAOM,GACdk2P,EAAOp2P,EAAOE,GAEhBwoE,GAASytL,IAASztL,GAAS0tL,GAC7BE,GAAQH,EAAMC,GACJl3P,OAAO0B,UAAU4C,eAAejC,KAAK3B,EAAQM,KACvDN,EAAOM,GAAOoxE,GAAM8kL,GAExB,CAaA,MAAMI,GAAe,CAEnB,GAAIpjN,GAAKA,EAET9vC,EAAGb,GAAKA,EAAEa,EACVghE,EAAG7hE,GAAKA,EAAE6hE,GAqCL,SAASmyL,GAAiBj2P,EAAgBN,GAC/C,MAAMw2P,EAAWF,GAAat2P,KAASs2P,GAAat2P,GAhBtD,SAAyBA,GACvB,MAAMjB,EAjBD,SAAmBiB,GACxB,MAAMyhB,EAAQzhB,EAAI0hB,MAAM,KAClB3iB,EAAiB,GACvB,IAAImzC,EAAM,GACV,IAAK,MAAMiO,KAAQ1+B,EACjBywB,GAAOiO,EACHjO,EAAIiD,SAAS,MACfjD,EAAMA,EAAItvC,MAAM,GAAI,GAAK,KAEzB7D,EAAKQ,KAAK2yC,GACVA,EAAM,IAGV,OAAOnzC,CACT,CAGe03P,CAAUz2P,GACvB,OAAOM,IACL,IAAK,MAAMyd,KAAKhf,EAAM,CACpB,GAAU,KAANgf,EAGF,MAEFzd,EAAMA,GAAOA,EAAIyd,EACnB,CACA,OAAOzd,CAAA,CAEX,CAG6Do2P,CAAgB12P,IAC3E,OAAOw2P,EAASl2P,EAClB,CAKO,SAASq2P,GAAYhpP,GAC1B,OAAOA,EAAIC,OAAO,GAAGC,cAAgBF,EAAI/K,MAAM,EACjD,OAGa2kM,GAAW5mM,GAAoC,qBAAVA,EAErC4nE,GAAc5nE,GAAsE,oBAAVA,EAG1Ei2P,GAAYA,CAAIr7O,EAAWC,KACtC,GAAID,EAAE08C,OAASz8C,EAAEy8C,KACf,OAAO,EAGT,IAAK,MAAMtiB,KAAQp6B,EACjB,IAAKC,EAAEswE,IAAIn2C,GACT,OAAO,EAIX,OAAO,CAAI,EC9YN,MAAMyjJ,GAAK38K,KAAK28K,GACVy9D,GAAM,EAAIz9D,GACV09D,GAAQD,GAAMz9D,GACd29D,GAAWliO,OAAOmiO,kBAClBC,GAAc79D,GAAK,IACnB89D,GAAU99D,GAAK,EACf+9D,GAAa/9D,GAAK,EAClBg+D,GAAqB,EAALh+D,GAAS,EAEzBi+D,GAAQ56O,KAAK46O,MACb32O,GAAOjE,KAAKiE,KAElB,SAAS42O,GAAal0P,EAAWghE,EAAWmzL,GACjD,OAAO96O,KAAKse,IAAI33B,EAAIghE,GAAKmzL,CAC3B,CAKO,SAASC,GAAQ/mJ,GACtB,MAAMgnJ,EAAeh7O,KAAKue,MAAMy1E,GAChCA,EAAQ6mJ,GAAa7mJ,EAAOgnJ,EAAchnJ,EAAQ,KAAQgnJ,EAAehnJ,EACzE,MAAMinJ,EAAYj7O,KAAKM,IAAI,GAAIN,KAAKC,MAAM26O,GAAM5mJ,KAC1C+sB,EAAW/sB,EAAQinJ,EAEzB,OADqBl6H,GAAY,EAAI,EAAIA,GAAY,EAAI,EAAIA,GAAY,EAAI,EAAI,IAC3Dk6H,CACxB,CAyBO,SAASrlF,GAAS3vK,GACvB,OAAQw2C,MAAMrL,WAAWnrC,KAAiBoiE,SAASpiE,EACrD,CAUO,SAASi1P,GACd9yP,EACAnF,EACAolB,GAEA,IAAInlB,EAAWg2P,EAAch1P,EAE7B,IAAKhB,EAAI,EAAGg2P,EAAO9wP,EAAMhF,OAAQF,EAAIg2P,EAAMh2P,IACzCgB,EAAQkE,EAAMlF,GAAGmlB,GACZo0B,MAAMv4C,KACTjB,EAAO6qC,IAAM9tB,KAAK8tB,IAAI7qC,EAAO6qC,IAAK5pC,GAClCjB,EAAO8qC,IAAM/tB,KAAK+tB,IAAI9qC,EAAO8qC,IAAK7pC,GAGxC,CAEO,SAASi3P,GAAUC,GACxB,OAAOA,GAAWz+D,GAAK,IACzB,CAEO,SAAS0+D,GAAUC,GACxB,OAAOA,GAAW,IAAM3+D,GAC1B,CASO,SAAS4+D,GAAe50P,GAC7B,IAAK+xP,GAAe/xP,GAClB,OAEF,IAAIuN,EAAI,EACJ8iE,EAAI,EACR,KAAOh3D,KAAKue,MAAM53B,EAAIuN,GAAKA,IAAMvN,GAC/BuN,GAAK,GACL8iE,IAEF,OAAOA,CACT,CAGO,SAASwkL,GACdC,EACAC,GAEA,MAAMC,EAAsBD,EAAW/0P,EAAI80P,EAAY90P,EACjDi1P,EAAsBF,EAAW/zL,EAAI8zL,EAAY9zL,EACjDk0L,EAA2B77O,KAAK87O,KAAKH,EAAsBA,EAAsBC,EAAsBA,GAE7G,IAAIG,EAAQ/7O,KAAKg8O,MAAMJ,EAAqBD,GAM5C,OAJII,GAAU,GAAMp/D,KAClBo/D,GAAS3B,IAGJ,CACL2B,QACAE,SAAUJ,EAEd,CAEO,SAASK,GAAsBC,EAAYC,GAChD,OAAOp8O,KAAK87O,KAAK97O,KAAKM,IAAI87O,EAAIz1P,EAAIw1P,EAAIx1P,EAAG,GAAKqZ,KAAKM,IAAI87O,EAAIz0L,EAAIw0L,EAAIx0L,EAAG,GACxE,CAMO,SAAS00L,GAAWv9O,EAAWC,GACpC,OAAQD,EAAIC,EAAIs7O,IAASD,GAAMz9D,EACjC,CAMO,SAAS2/D,GAAgBx9O,GAC9B,OAAQA,EAAIs7O,GAAMA,IAAOA,EAC3B,CAKO,SAASmC,GAAcR,EAAe/9L,EAAephB,EAAa4/M,GACvE,MAAM19O,EAAIw9O,GAAgBP,GACpB/8O,EAAIs9O,GAAgBt+L,GACpB9pD,EAAIooP,GAAgB1/M,GACpB6/M,EAAeH,GAAgBt9O,EAAIF,GACnC49O,EAAaJ,GAAgBpoP,EAAI4K,GACjC69O,EAAeL,GAAgBx9O,EAAIE,GACnC49O,EAAaN,GAAgBx9O,EAAI5K,GACvC,OAAO4K,IAAME,GAAKF,IAAM5K,GAAMsoP,GAAyBx9O,IAAM9K,GACvDuoP,EAAeC,GAAcC,EAAeC,CACpD,CASO,SAASC,GAAY34P,EAAe4pC,EAAaC,GACtD,OAAO/tB,KAAK+tB,IAAID,EAAK9tB,KAAK8tB,IAAIC,EAAK7pC,GACrC,CAiBO,SAAS44P,GAAW54P,EAAe85D,EAAephB,GAA6B,IAAhBk+M,EAAU33P,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,QAC9E,OAAOe,GAAS8b,KAAK8tB,IAAIkwB,EAAOphB,GAAOk+M,GAAW52P,GAAS8b,KAAK+tB,IAAIiwB,EAAOphB,GAAOk+M,CACpF,CCpLO,SAASiC,GACdC,EACA94P,EACA+4P,GAEAA,EAAMA,GAAA,CAAS1qO,GAAUyqO,EAAMzqO,GAASruB,GACxC,IAEIg5P,EAFAh3L,EAAK82L,EAAM55P,OAAS,EACpB+iE,EAAK,EAGT,KAAOD,EAAKC,EAAK,GACf+2L,EAAO/2L,EAAKD,GAAO,EACf+2L,EAAIC,GACN/2L,EAAK+2L,EAELh3L,EAAKg3L,EAIT,MAAO,CAAC/2L,KAAID,KACd,CAUO,MAAMi3L,GAAeA,CAC1BH,EACAz5P,EACAW,EACAo6E,IAEAy+K,GAAQC,EAAO94P,EAAOo6E,EAClB/rD,IACA,MAAMo2F,EAAKq0I,EAAMzqO,GAAOhvB,GACxB,OAAOolH,EAAKzkH,GAASykH,IAAOzkH,GAAS84P,EAAMzqO,EAAQ,GAAGhvB,KAASW,CAAA,EAE/DquB,GAASyqO,EAAMzqO,GAAOhvB,GAAOW,GAStBk5P,GAAgBA,CAC3BJ,EACAz5P,EACAW,IAEA64P,GAAQC,EAAO94P,GAAOquB,GAASyqO,EAAMzqO,GAAOhvB,IAAQW,IAyBtD,MAAMm5P,GAAc,CAAC,OAAQ,MAAO,QAAS,SAAU,WA0DhD,SAASC,GAAoBl1P,EAAOg8C,GACzC,MAAMm5M,EAAOn1P,EAAMo1P,SACnB,IAAKD,EACH,OAGF,MAAMt+M,EAAYs+M,EAAKt+M,UACjB1sB,EAAQ0sB,EAAUz6C,QAAQ4/C,IACjB,IAAX7xB,GACF0sB,EAAUuF,OAAOjyB,EAAO,GAGtB0sB,EAAU77C,OAAS,IAIvBi6P,GAAY/5P,SAASC,WACZ6E,EAAM7E,EAAI,WAGZ6E,EAAMo1P,SACf,CAKO,SAASC,GAAgB7hN,GAC9B,MAAMz9B,EAAM,IAAI4+D,IAAOnhC,GAEvB,OAAIz9B,EAAIq9C,OAAS5f,EAAMx4C,OACdw4C,EAGFz2C,MAAMkB,KAAK8X,EACpB,CCnLa,MAAAu/O,GACW,qBAAXtqP,OACF,SAASmS,GACd,OAAOA,GACT,EAEKnS,OAAOypL,sBAOT,SAAS8gE,GACdruO,EACAsqD,GAEA,IAAIgkL,EAAY,GACZC,GAAU,EAEd,OAAO,WAAyB,QAAAl0H,EAAAxmI,UAAAC,OAAb+5C,EAAW,IAAAh4C,MAAAwkI,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAXzsF,EAAWysF,GAAAzmI,UAAAymI,GAE5Bg0H,EAAYzgN,EACP0gN,IACHA,GAAU,EACVH,GAAiB94P,KAAKwO,QAAQ,KAC5ByqP,GAAU,EACVvuO,EAAGvsB,MAAM62E,EAASgkL,EAAA,IAGxB,CACF,CAsBO,MAAME,GAAsB1nG,GAAgD,UAAVA,EAAoB,OAAmB,QAAVA,EAAkB,QAAU,SAMrH2nG,GAAiBA,CAAC3nG,EAAmCp4F,EAAephB,IAA0B,UAAVw5G,EAAoBp4F,EAAkB,QAAVo4F,EAAkBx5G,GAAOohB,EAAQphB,GAAO,EAe9J,SAASohN,GAAiCx6J,EAAqCy6J,EAAwBC,GAC5G,MAAMC,EAAaF,EAAO76P,OAE1B,IAAI46D,EAAQ,EACRrZ,EAAQw5M,EAEZ,GAAI36J,EAAK46J,QAAS,CAChB,MAAM,OAACC,EAAA,QAAQC,GAAW96J,EACpB+6J,EAAOF,EAAOE,MACd,IAACzwN,EAAG,IAAEC,EAAG,WAAEywN,EAAU,WAAEC,GAAcJ,EAAOK,gBAE9CF,IACFxgM,EAAQ6+L,GAAY78O,KAAK8tB,IAEvBqvN,GAAamB,EAASC,EAAMzwN,GAAKq4B,GAEjC+3L,EAAqBC,EAAahB,GAAac,EAAQM,EAAMF,EAAOM,iBAAiB7wN,IAAMq4B,IAC7F,EAAGg4L,EAAa,IAGhBx5M,EADE85M,EACM5B,GAAY78O,KAAK+tB,IAEvBovN,GAAamB,EAASD,EAAOE,KAAMxwN,GAAK,GAAMm4B,GAAK,EAEnDg4L,EAAqB,EAAIf,GAAac,EAAQM,EAAMF,EAAOM,iBAAiB5wN,IAAM,GAAMm4B,GAAK,GAC/FlI,EAAOmgM,GAAcngM,EAEbmgM,EAAangM,EAIzB,MAAO,CAACA,QAAOrZ,QACjB,CAQO,SAASi6M,GAAoBp7J,GAClC,MAAM,OAACq7J,EAAM,OAAEC,EAAA,aAAQC,GAAgBv7J,EACjCw7J,EAAY,CAChBC,KAAMJ,EAAO/wN,IACboxN,KAAML,EAAO9wN,IACboxN,KAAML,EAAOhxN,IACbsxN,KAAMN,EAAO/wN,KAEf,IAAKgxN,EAEH,OADAv7J,EAAKu7J,aAAeC,GACb,EAET,MAAMK,EAAUN,EAAaE,OAASJ,EAAO/wN,KAC1CixN,EAAaG,OAASL,EAAO9wN,KAC7BgxN,EAAaI,OAASL,EAAOhxN,KAC7BixN,EAAaK,OAASN,EAAO/wN,IAGhC,OADAxrC,OAAOsyC,OAAOkqN,EAAcC,GACrBK,CACT,CC/IA,MAAMC,GAAUrgP,GAAoB,IAANA,GAAiB,IAANA,EACnCsgP,GAAYA,CAACtgP,EAAWD,EAAWg4D,KAAgBh3D,KAAKM,IAAI,EAAG,IAAMrB,GAAK,IAAMe,KAAKw/O,KAAKvgP,EAAID,GAAKo7O,GAAMpjL,GACzGyoL,GAAaA,CAACxgP,EAAWD,EAAWg4D,IAAch3D,KAAKM,IAAI,GAAI,GAAKrB,GAAKe,KAAKw/O,KAAKvgP,EAAID,GAAKo7O,GAAMpjL,GAAK,EAOvGgrC,GAAU,CACd09I,OAASzgP,GAAcA,EAEvB0gP,WAAa1gP,GAAcA,EAAIA,EAE/B2gP,YAAc3gP,IAAeA,GAAKA,EAAI,GAEtC4gP,cAAgB5gP,IAAgBA,GAAK,IAAO,EACxC,GAAMA,EAAIA,GACT,MAAUA,GAAMA,EAAI,GAAK,GAE9B6gP,YAAc7gP,GAAcA,EAAIA,EAAIA,EAEpC8gP,aAAe9gP,IAAeA,GAAK,GAAKA,EAAIA,EAAI,EAEhD+gP,eAAiB/gP,IAAgBA,GAAK,IAAO,EACzC,GAAMA,EAAIA,EAAIA,EACd,KAAQA,GAAK,GAAKA,EAAIA,EAAI,GAE9BghP,YAAchhP,GAAcA,EAAIA,EAAIA,EAAIA,EAExCihP,aAAejhP,MAAiBA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,GAEtDkhP,eAAiBlhP,IAAgBA,GAAK,IAAO,EACzC,GAAMA,EAAIA,EAAIA,EAAIA,GACjB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,GAEnCmhP,YAAcnhP,GAAcA,EAAIA,EAAIA,EAAIA,EAAIA,EAE5CohP,aAAephP,IAAeA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,EAExDqhP,eAAiBrhP,IAAgBA,GAAK,IAAO,EACzC,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EACtB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,GAEtCshP,WAAathP,GAAuC,EAAxBe,KAAKwgP,IAAIvhP,EAAIw7O,IAEzCgG,YAAcxhP,GAAce,KAAKw/O,IAAIvgP,EAAIw7O,IAEzCiG,cAAgBzhP,IAAe,IAAOe,KAAKwgP,IAAI7jE,GAAK19K,GAAK,GAEzD0hP,WAAa1hP,GAAqB,IAAPA,EAAY,EAAIe,KAAKM,IAAI,EAAG,IAAMrB,EAAI,IAEjE2hP,YAAc3hP,GAAqB,IAAPA,EAAY,EAA4B,EAAvBe,KAAKM,IAAI,GAAI,GAAKrB,GAE/D4hP,cAAgB5hP,GAAcqgP,GAAOrgP,GAAKA,EAAIA,EAAI,GAC9C,GAAMe,KAAKM,IAAI,EAAG,IAAU,EAAJrB,EAAQ,IAChC,IAAyC,EAAjCe,KAAKM,IAAI,GAAI,IAAU,EAAJrB,EAAQ,KAEvC6hP,WAAa7hP,GAAcA,GAAM,EAAKA,IAAMe,KAAK87O,KAAK,EAAI78O,EAAIA,GAAK,GAEnE8hP,YAAc9hP,GAAce,KAAK87O,KAAK,GAAK78O,GAAK,GAAKA,GAErD+hP,cAAgB/hP,IAAgBA,GAAK,IAAO,GACvC,IAAOe,KAAK87O,KAAK,EAAI78O,EAAIA,GAAK,GAC/B,IAAOe,KAAK87O,KAAK,GAAK78O,GAAK,GAAKA,GAAK,GAEzCgiP,cAAgBhiP,GAAcqgP,GAAOrgP,GAAKA,EAAIsgP,GAAUtgP,EAAG,KAAO,IAElEiiP,eAAiBjiP,GAAcqgP,GAAOrgP,GAAKA,EAAIwgP,GAAWxgP,EAAG,KAAO,IAEpEkiP,gBAAAA,CAAiBliP,GACf,MAAMD,EAAI,MAEV,OAAOsgP,GAAOrgP,GAAKA,EACjBA,EAAI,GACA,GAAMsgP,GAAc,EAAJtgP,EAAOD,EAHnB,KAIJ,GAAM,GAAMygP,GAAe,EAAJxgP,EAAQ,EAAGD,EAJ9B,IAKZ,EAEAoiP,UAAAA,CAAWniP,GACT,MAAMD,EAAI,QACV,OAAOC,EAAIA,IAAMD,EAAI,GAAKC,EAAID,EAChC,EAEAqiP,WAAAA,CAAYpiP,GACV,MAAMD,EAAI,QACV,OAAQC,GAAK,GAAKA,IAAMD,EAAI,GAAKC,EAAID,GAAK,CAC5C,EAEAsiP,aAAAA,CAAcriP,GACZ,IAAID,EAAI,QACR,OAAKC,GAAK,IAAO,EACDA,EAAIA,IAAuB,GAAhBD,GAAM,QAAeC,EAAID,GAA3C,GAEF,KAAQC,GAAK,GAAKA,IAAuB,GAAhBD,GAAM,QAAeC,EAAID,GAAK,EAChE,EAEAuiP,aAAetiP,GAAc,EAAI+iG,GAAQw/I,cAAc,EAAIviP,GAE3DuiP,aAAAA,CAAcviP,GACZ,MAAM2lD,EAAI,OACJxlD,EAAI,KACV,OAAIH,EAAK,EAAIG,EACJwlD,EAAI3lD,EAAIA,EAEbA,EAAK,EAAIG,EACJwlD,GAAK3lD,GAAM,IAAMG,GAAMH,EAAI,IAEhCA,EAAK,IAAMG,EACNwlD,GAAK3lD,GAAM,KAAOG,GAAMH,EAAI,MAE9B2lD,GAAK3lD,GAAM,MAAQG,GAAMH,EAAI,OACtC,EAEAwiP,gBAAkBxiP,GAAeA,EAAI,GACH,GAA9B+iG,GAAQu/I,aAAiB,EAAJtiP,GACc,GAAnC+iG,GAAQw/I,cAAkB,EAAJviP,EAAQ,GAAW,ICpHxC,SAASyiP,GAAoBx9P,GAClC,GAAIA,GAA0B,kBAAVA,EAAoB,CACtC,MAAMoN,EAAOpN,EAAMgC,WACnB,MAAgB,2BAAToL,GAA8C,4BAATA,EAG9C,OAAO,CACT,CAWO,SAASsiG,GAAM1vG,GACpB,OAAOw9P,GAAoBx9P,GAASA,EAAQ,IAAImzP,GAAMnzP,EACxD,CAKO,SAASy9P,GAAcz9P,GAC5B,OAAOw9P,GAAoBx9P,GACvBA,EACA,IAAImzP,GAAMnzP,GAAOo0P,SAAS,IAAKD,OAAO,IAAK3L,WACjD,CC/BA,MAAMkV,GAAU,CAAC,IAAK,IAAK,cAAe,SAAU,WAC9C3sF,GAAS,CAAC,QAAS,cAAe,mBCAxC,MAAM4sF,GAAY,IAAIjlL,IAaf,SAASklL,GAAar0L,EAAagK,EAAgB7rE,GACxD,OAZF,SAAyB6rE,EAAgB7rE,GACvCA,EAAUA,GAAW,CAAC,EACtB,MAAMyoB,EAAWojD,EAASpzD,KAAKC,UAAU1Y,GACzC,IAAIswD,EAAY2lM,GAAU5rP,IAAIoe,GAK9B,OAJK6nC,IACHA,EAAY,IAAI0nL,KAAKme,aAAatqL,EAAQ7rE,GAC1Ci2P,GAAU1jP,IAAIkW,EAAU6nC,IAEnBA,CACT,CAGS8lM,CAAgBvqL,EAAQ7rE,GAASwa,OAAOqnD,EACjD,CCRA,MAAMw0L,GAAa,CAOjBnpO,OAAO50B,GACEkB,GAAQlB,GAAkCA,EAAS,GAAKA,EAWjEg+P,OAAAA,CAAQC,EAAW5vO,EAAO6vO,GACxB,GAAkB,IAAdD,EACF,MAAO,IAGT,MAAM1qL,EAAS95D,KAAK0kP,MAAMz2P,QAAQ6rE,OAClC,IAAI6qL,EACAx7N,EAAQq7N,EAEZ,GAAIC,EAAMh/P,OAAS,EAAG,CAEpB,MAAMm/P,EAAUviP,KAAK+tB,IAAI/tB,KAAKse,IAAI8jO,EAAM,GAAGl+P,OAAQ8b,KAAKse,IAAI8jO,EAAMA,EAAMh/P,OAAS,GAAGc,SAChFq+P,EAAU,MAAQA,EAAU,QAC9BD,EAAW,cAGbx7N,EAyCN,SAAwBq7N,EAAWC,GAGjC,IAAIt7N,EAAQs7N,EAAMh/P,OAAS,EAAIg/P,EAAM,GAAGl+P,MAAQk+P,EAAM,GAAGl+P,MAAQk+P,EAAM,GAAGl+P,MAAQk+P,EAAM,GAAGl+P,MAGvF8b,KAAKse,IAAIwI,IAAU,GAAKq7N,IAAcniP,KAAKC,MAAMkiP,KAEnDr7N,EAAQq7N,EAAYniP,KAAKC,MAAMkiP,IAEjC,OAAOr7N,CACT,CApDc07N,CAAeL,EAAWC,GAGpC,MAAMK,EAAW7H,GAAM56O,KAAKse,IAAIwI,IAO1B47N,EAAajmN,MAAMgmN,GAAY,EAAIziP,KAAK+tB,IAAI/tB,KAAK8tB,KAAK,EAAI9tB,KAAKC,MAAMwiP,GAAW,IAAK,GAErF72P,EAAU,CAAC02P,WAAUK,sBAAuBD,EAAYE,sBAAuBF,GAGrF,OAFAngQ,OAAOsyC,OAAOjpC,EAAS+R,KAAK/R,QAAQw2P,MAAMh8O,QAEnC07O,GAAaK,EAAW1qL,EAAQ7rE,EACzC,EAWAi3P,WAAAA,CAAYV,EAAW5vO,EAAO6vO,GAC5B,GAAkB,IAAdD,EACF,MAAO,IAET,MAAMW,EAASV,EAAM7vO,GAAOwwO,aAAgBZ,EAAaniP,KAAKM,IAAI,GAAIN,KAAKC,MAAM26O,GAAMuH,KACvF,MAAI,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIj2P,SAAS42P,IAAWvwO,EAAQ,GAAM6vO,EAAMh/P,OACxD6+P,GAAWC,QAAQt9P,KAAK+Y,KAAMwkP,EAAW5vO,EAAO6vO,GAElD,EACT,GAsBF,IAAAY,GAAe,CAACf,qBC/FHgB,GAAY1gQ,OAAOwQ,OAAO,MAC1BqhK,GAAc7xK,OAAOwQ,OAAO,MAOzC,SAASmwP,GAASn6P,EAAMxF,GACtB,IAAKA,EACH,OAAOwF,EAET,MAAMzG,EAAOiB,EAAI0hB,MAAM,KACvB,IAAK,IAAI/hB,EAAI,EAAG+C,EAAI3D,EAAKc,OAAQF,EAAI+C,IAAK/C,EAAG,CAC3C,MAAMoe,EAAIhf,EAAKY,GACf6F,EAAOA,EAAKuY,KAAOvY,EAAKuY,GAAK/e,OAAOwQ,OAAO,MAC7C,CACA,OAAOhK,CACT,CAEA,SAASoV,GAAIi6E,EAAM5kC,EAAO16B,GACxB,MAAqB,kBAAV06B,EACFjrC,GAAM26O,GAAS9qK,EAAM5kC,GAAQ16B,GAE/BvQ,GAAM26O,GAAS9qK,EAAM,IAAK5kC,EACnC,CAMO,MAAM2vM,GACXn/P,WAAAA,CAAYo/P,EAAcC,GACxB1lP,KAAKg7F,eAAYjsG,EACjBiR,KAAKomJ,gBAAkB,kBACvBpmJ,KAAKoxK,YAAc,kBACnBpxK,KAAKi2F,MAAQ,OACbj2F,KAAK2lP,SAAW,CAAC,EACjB3lP,KAAK4lP,iBAAoB9xN,GAAYA,EAAQ4wN,MAAMtnM,SAASyoM,sBAC5D7lP,KAAKlT,SAAW,CAAC,EACjBkT,KAAKqP,OAAS,CACZ,YACA,WACA,QACA,aACA,aAEFrP,KAAK+7M,KAAO,CACVpvB,OAAQ,qDACR9uI,KAAM,GACN8d,MAAO,SACPqoB,WAAY,IACZ8hH,OAAQ,MAEV9lM,KAAK8lP,MAAQ,CAAC,EACd9lP,KAAK+lP,qBAAuB,CAAC/1P,EAAK/B,IAAY+1P,GAAc/1P,EAAQm4J,iBACpEpmJ,KAAKgmP,iBAAmB,CAACh2P,EAAK/B,IAAY+1P,GAAc/1P,EAAQmjL,aAChEpxK,KAAKimP,WAAa,CAACj2P,EAAK/B,IAAY+1P,GAAc/1P,EAAQgoG,OAC1Dj2F,KAAKkmP,UAAY,IACjBlmP,KAAKmmP,YAAc,CACjBrnO,KAAM,UACNsnO,WAAW,EACXC,kBAAkB,GAEpBrmP,KAAKsmP,qBAAsB,EAC3BtmP,KAAKumP,QAAU,KACfvmP,KAAKzL,QAAU,KACfyL,KAAKwmP,SAAU,EACfxmP,KAAKymP,QAAU,CAAC,EAChBzmP,KAAK0mP,YAAa,EAClB1mP,KAAK2mP,WAAQ53P,EACbiR,KAAK4mP,OAAS,CAAC,EACf5mP,KAAK6mP,UAAW,EAChB7mP,KAAK8mP,yBAA0B,EAE/B9mP,KAAK+mP,SAAStB,GACdzlP,KAAK5a,MAAMsgQ,EACb,CAMAllP,GAAAA,CAAIq1C,EAAO16B,GACT,OAAO3a,GAAIR,KAAM61C,EAAO16B,EAC1B,CAKA7iB,GAAAA,CAAIu9C,GACF,OAAO0vM,GAASvlP,KAAM61C,EACxB,CAMAkxM,QAAAA,CAASlxM,EAAO16B,GACd,OAAO3a,GAAIi2J,GAAa5gH,EAAO16B,EACjC,CAEA6rO,QAAAA,CAASnxM,EAAO16B,GACd,OAAO3a,GAAI8kP,GAAWzvM,EAAO16B,EAC/B,CAmBAykJ,KAAAA,CAAM/pH,EAAOptD,EAAMw+P,EAAaC,GAC9B,MAAMC,EAAc5B,GAASvlP,KAAM61C,GAC7BuxM,EAAoB7B,GAASvlP,KAAMinP,GACnCI,EAAc,IAAM5+P,EAE1B7D,OAAOmB,iBAAiBohQ,EAAa,CAEnC,CAACE,GAAc,CACb9gQ,MAAO4gQ,EAAY1+P,GACnBhC,UAAU,GAGZ,CAACgC,GAAO,CACNvD,YAAY,EACZoT,GAAAA,GACE,MAAMgvP,EAAQtnP,KAAKqnP,GACb/hQ,EAAS8hQ,EAAkBF,GACjC,OAAI94L,GAASk5L,GACJ1iQ,OAAOsyC,OAAO,CAAC,EAAG5xC,EAAQgiQ,GAE5BrM,GAAeqM,EAAOhiQ,EAC/B,EACAkb,GAAAA,CAAIja,GACFyZ,KAAKqnP,GAAe9gQ,CACtB,IAGN,CAEAnB,KAAAA,CAAMmiQ,GACJA,EAAS5hQ,SAASP,GAAUA,EAAM4a,OACpC,EAIF,IAAAihN,GAA+B,IAAIukC,GAAS,CAC1CgC,YAAc/+P,IAAUA,EAAKqyC,WAAW,MACxC2sN,WAAah/P,GAAkB,WAATA,EACtBq9P,MAAO,CACL4B,UAAW,eAEbvB,YAAa,CACXqB,aAAa,EACbC,YAAY,IAEb,CH3KI,SAAiCxmC,GACtCA,EAASzgN,IAAI,YAAa,CACxB+nB,WAAOx5B,EACPwvH,SAAU,IACVopI,OAAQ,eACRh2O,QAAI5iB,EACJrG,UAAMqG,EACNoxH,UAAMpxH,EACNmuH,QAAInuH,EACJ4E,UAAM5E,IAGRkyN,EAAS8lC,SAAS,YAAa,CAC7BW,WAAW,EACXD,YAAY,EACZD,YAAc/+P,GAAkB,eAATA,GAAkC,eAATA,GAAkC,OAATA,IAG3Ew4N,EAASzgN,IAAI,aAAc,CACzB82J,OAAQ,CACN3jK,KAAM,QACN09H,WAAYimC,IAEd2sF,QAAS,CACPtwP,KAAM,SACN09H,WAAY4yH,MAIhBhjC,EAAS8lC,SAAS,aAAc,CAC9BW,UAAW,cAGbzmC,EAASzgN,IAAI,cAAe,CAC1B68B,OAAQ,CACN29D,UAAW,CACTujB,SAAU,MAGdqpI,OAAQ,CACN5sJ,UAAW,CACTujB,SAAU,IAGdmpC,KAAM,CACJmgG,WAAY,CACVvwF,OAAQ,CACN5uK,KAAM,eAERgmO,QAAS,CACP/6N,KAAM,UACN4qH,SAAU,KAIhB25B,KAAM,CACJ2vG,WAAY,CACVvwF,OAAQ,CACNp6C,GAAI,eAENwxG,QAAS,CACP/6N,KAAM,UACNg0P,OAAQ,SACRh2O,GAAImnB,GAAS,EAAJA,MAKnB,EIvEO,SAA8BmoL,GACnCA,EAASzgN,IAAI,SAAU,CACrBsnP,aAAa,EACbjhF,QAAS,CACP/sE,IAAK,EACLzsG,MAAO,EACPwwI,OAAQ,EACRzwI,KAAM,IAGZ,ECRO,SAA4B6zN,GACjCA,EAASzgN,IAAI,QAAS,CACpBqzG,SAAS,EACT3wG,QAAQ,EACRgnE,SAAS,EACT69K,aAAa,EASbt4H,OAAQ,QAERu4H,MAAM,EAMNC,MAAO,EAGP59B,KAAM,CACJx2G,SAAS,EACTo7G,UAAW,EACXi5B,iBAAiB,EACjBC,WAAW,EACXC,WAAY,EACZC,UAAWA,CAACC,EAAMr6P,IAAYA,EAAQghO,UACtCs5B,UAAWA,CAACD,EAAMr6P,IAAYA,EAAQgoG,MACtC/yF,QAAQ,GAGVg5K,OAAQ,CACNroE,SAAS,EACT20I,KAAM,GACNC,WAAY,EACZ30J,MAAO,GAITg0B,MAAO,CAELjU,SAAS,EAGT3wD,KAAM,GAGN2jH,QAAS,CACP/sE,IAAK,EACL+jC,OAAQ,IAKZ4mH,MAAO,CACLiE,YAAa,EACbC,YAAa,GACbC,QAAQ,EACRC,gBAAiB,EACjBC,gBAAiB,GACjBjiF,QAAS,EACThzD,SAAS,EACTk1I,UAAU,EACVC,gBAAiB,EACjBC,YAAa,EAEbrhP,SAAUy9O,GAAMf,WAAWnpO,OAC3B+tO,MAAO,CAAC,EACRC,MAAO,CAAC,EACR1wG,MAAO,SACP2wG,WAAY,OAEZC,mBAAmB,EACnBC,cAAe,4BACfC,gBAAiB,KAIrBtoC,EAASrhD,MAAM,cAAe,QAAS,GAAI,SAC3CqhD,EAASrhD,MAAM,aAAc,QAAS,GAAI,eAC1CqhD,EAASrhD,MAAM,eAAgB,QAAS,GAAI,eAC5CqhD,EAASrhD,MAAM,cAAe,QAAS,GAAI,SAE3CqhD,EAAS8lC,SAAS,QAAS,CACzBW,WAAW,EACXF,YAAc/+P,IAAUA,EAAKqyC,WAAW,YAAcryC,EAAKqyC,WAAW,UAAqB,aAATryC,GAAgC,WAATA,EACzGg/P,WAAah/P,GAAkB,eAATA,GAAkC,mBAATA,GAAsC,SAATA,IAG9Ew4N,EAAS8lC,SAAS,SAAU,CAC1BW,UAAW,UAGbzmC,EAAS8lC,SAAS,cAAe,CAC/BS,YAAc/+P,GAAkB,oBAATA,GAAuC,aAATA,EACrDg/P,WAAah/P,GAAkB,oBAATA,GAE1B,IClEO,SAAS+gQ,GACdx5P,EACAuP,EACAkqF,EACAggK,EACA5+P,GAEA,IAAI6+P,EAAYnqP,EAAK1U,GAQrB,OAPK6+P,IACHA,EAAYnqP,EAAK1U,GAAUmF,EAAIssN,YAAYzxN,GAAQipG,MACnDrK,EAAGtkG,KAAK0F,IAEN6+P,EAAYD,IACdA,EAAUC,GAELD,CACT,CASO,SAASE,GACd35P,EACA+rN,EACA6tC,EACAx2L,GAGA,IAAI7zD,GADJ6zD,EAAQA,GAAS,CAAC,GACD7zD,KAAO6zD,EAAM7zD,MAAQ,CAAC,EACnCkqF,EAAKr2B,EAAMy2L,eAAiBz2L,EAAMy2L,gBAAkB,GAEpDz2L,EAAM2oJ,OAASA,IACjBx8M,EAAO6zD,EAAM7zD,KAAO,CAAC,EACrBkqF,EAAKr2B,EAAMy2L,eAAiB,GAC5Bz2L,EAAM2oJ,KAAOA,GAGf/rN,EAAImpJ,OAEJnpJ,EAAI+rN,KAAOA,EACX,IAAI0tC,EAAU,EACd,MAAMlO,EAAOqO,EAAcnkQ,OAC3B,IAAIF,EAAWoiE,EAAWmiM,EAAcC,EAAwBC,EAChE,IAAKzkQ,EAAI,EAAGA,EAAIg2P,EAAMh2P,IAIpB,GAHAwkQ,EAAQH,EAAcrkQ,QAGRwJ,IAAVg7P,GAAiC,OAAVA,GAAmBtiQ,GAAQsiQ,IAE/C,GAAItiQ,GAAQsiQ,GAGjB,IAAKpiM,EAAI,EAAGmiM,EAAOC,EAAMtkQ,OAAQkiE,EAAImiM,EAAMniM,IACzCqiM,EAAcD,EAAMpiM,QAEA54D,IAAhBi7P,GAA6C,OAAhBA,GAAyBviQ,GAAQuiQ,KAChEP,EAAUD,GAAax5P,EAAKuP,EAAMkqF,EAAIggK,EAASO,SARnDP,EAAUD,GAAax5P,EAAKuP,EAAMkqF,EAAIggK,EAASM,GAcnD/5P,EAAIu3I,UAEJ,MAAM0iH,EAAQxgK,EAAGhkG,OAAS,EAC1B,GAAIwkQ,EAAQL,EAAcnkQ,OAAQ,CAChC,IAAKF,EAAI,EAAGA,EAAI0kQ,EAAO1kQ,WACdga,EAAKkqF,EAAGlkG,IAEjBkkG,EAAG5iD,OAAO,EAAGojN,GAEf,OAAOR,CACT,CAUO,SAASS,GAAYxF,EAAcyF,EAAer2J,GACvD,MAAM8xJ,EAAmBlB,EAAM0F,wBACzBC,EAAsB,IAAVv2J,EAAczxF,KAAK+tB,IAAI0jE,EAAQ,EAAG,IAAO,EAC3D,OAAOzxF,KAAKue,OAAOupO,EAAQE,GAAazE,GAAoBA,EAAmByE,CACjF,CAKO,SAASC,GAAYruC,EAA2BjsN,IACrDA,EAAMA,GAAOisN,EAAOP,WAAW,OAE3BviE,OAGJnpJ,EAAIu6P,iBACJv6P,EAAIksN,UAAU,EAAG,EAAGD,EAAOnoH,MAAOmoH,EAAOloH,QACzC/jG,EAAIu3I,SACN,CASO,SAASijH,GACdx6P,EACA/B,EACAjF,EACAghE,GAGAygM,GAAgBz6P,EAAK/B,EAASjF,EAAGghE,EAAG,KACtC,CAGO,SAASygM,GACdz6P,EACA/B,EACAjF,EACAghE,EACAvmD,GAEA,IAAI9P,EAAc+2P,EAAiBC,EAAiB9sM,EAAc+sM,EAAsB92J,EAAe+2J,EAAkBC,EACzH,MAAMnvL,EAAQ1tE,EAAQ88P,WAChBnsE,EAAW3wL,EAAQ2wL,SACnBosE,EAAS/8P,EAAQ+8P,OACvB,IAAIC,GAAOrsE,GAAY,GAAKi+D,GAE5B,GAAIlhL,GAA0B,kBAAVA,IAClBhoE,EAAOgoE,EAAMpzE,WACA,8BAAToL,GAAiD,+BAATA,GAM1C,OALA3D,EAAImpJ,OACJnpJ,EAAI+uB,UAAU/1B,EAAGghE,GACjBh6D,EAAIo4L,OAAO6iE,GACXj7P,EAAIk7P,UAAUvvL,GAAQA,EAAMm4B,MAAQ,GAAIn4B,EAAMo4B,OAAS,EAAGp4B,EAAMm4B,MAAOn4B,EAAMo4B,aAC7E/jG,EAAIu3I,UAKR,KAAIzoG,MAAMksN,IAAWA,GAAU,GAA/B,CAMA,OAFAh7P,EAAIm7P,YAEIxvL,GAEN,QACMl4D,EACFzT,EAAIo7P,QAAQpiQ,EAAGghE,EAAGvmD,EAAI,EAAGunP,EAAQ,EAAG,EAAGvO,IAEvCzsP,EAAIq7P,IAAIriQ,EAAGghE,EAAGghM,EAAQ,EAAGvO,IAE3BzsP,EAAIs7P,YACJ,MACF,IAAK,WACHx3J,EAAQrwF,EAAIA,EAAI,EAAIunP,EACpBh7P,EAAIu7P,OAAOviQ,EAAIqZ,KAAKw/O,IAAIoJ,GAAOn3J,EAAO9pC,EAAI3nD,KAAKwgP,IAAIoI,GAAOD,GAC1DC,GAAOjO,GACPhtP,EAAIw7P,OAAOxiQ,EAAIqZ,KAAKw/O,IAAIoJ,GAAOn3J,EAAO9pC,EAAI3nD,KAAKwgP,IAAIoI,GAAOD,GAC1DC,GAAOjO,GACPhtP,EAAIw7P,OAAOxiQ,EAAIqZ,KAAKw/O,IAAIoJ,GAAOn3J,EAAO9pC,EAAI3nD,KAAKwgP,IAAIoI,GAAOD,GAC1Dh7P,EAAIs7P,YACJ,MACF,IAAK,cAQHV,EAAwB,KAATI,EACfntM,EAAOmtM,EAASJ,EAChBF,EAAUroP,KAAKwgP,IAAIoI,EAAMlO,IAAcl/L,EACvCgtM,EAAWxoP,KAAKwgP,IAAIoI,EAAMlO,KAAet5O,EAAIA,EAAI,EAAImnP,EAAe/sM,GACpE8sM,EAAUtoP,KAAKw/O,IAAIoJ,EAAMlO,IAAcl/L,EACvCitM,EAAWzoP,KAAKw/O,IAAIoJ,EAAMlO,KAAet5O,EAAIA,EAAI,EAAImnP,EAAe/sM,GACpE7tD,EAAIq7P,IAAIriQ,EAAI6hQ,EAAU7gM,EAAI2gM,EAASC,EAAcK,EAAMjsE,GAAIisE,EAAMnO,IACjE9sP,EAAIq7P,IAAIriQ,EAAI8hQ,EAAU9gM,EAAI0gM,EAASE,EAAcK,EAAMnO,GAASmO,GAChEj7P,EAAIq7P,IAAIriQ,EAAI6hQ,EAAU7gM,EAAI2gM,EAASC,EAAcK,EAAKA,EAAMnO,IAC5D9sP,EAAIq7P,IAAIriQ,EAAI8hQ,EAAU9gM,EAAI0gM,EAASE,EAAcK,EAAMnO,GAASmO,EAAMjsE,IACtEhvL,EAAIs7P,YACJ,MACF,IAAK,OACH,IAAK1sE,EAAU,CACb/gI,EAAOx7C,KAAKopP,QAAUT,EACtBl3J,EAAQrwF,EAAIA,EAAI,EAAIo6C,EACpB7tD,EAAIs4I,KAAKt/I,EAAI8qG,EAAO9pC,EAAInM,EAAM,EAAIi2C,EAAO,EAAIj2C,GAC7C,MAEFotM,GAAOlO,GAET,IAAK,UACH8N,EAAWxoP,KAAKwgP,IAAIoI,IAAQxnP,EAAIA,EAAI,EAAIunP,GACxCN,EAAUroP,KAAKwgP,IAAIoI,GAAOD,EAC1BL,EAAUtoP,KAAKw/O,IAAIoJ,GAAOD,EAC1BF,EAAWzoP,KAAKw/O,IAAIoJ,IAAQxnP,EAAIA,EAAI,EAAIunP,GACxCh7P,EAAIu7P,OAAOviQ,EAAI6hQ,EAAU7gM,EAAI2gM,GAC7B36P,EAAIw7P,OAAOxiQ,EAAI8hQ,EAAU9gM,EAAI0gM,GAC7B16P,EAAIw7P,OAAOxiQ,EAAI6hQ,EAAU7gM,EAAI2gM,GAC7B36P,EAAIw7P,OAAOxiQ,EAAI8hQ,EAAU9gM,EAAI0gM,GAC7B16P,EAAIs7P,YACJ,MACF,IAAK,WACHL,GAAOlO,GAET,IAAK,QACH8N,EAAWxoP,KAAKwgP,IAAIoI,IAAQxnP,EAAIA,EAAI,EAAIunP,GACxCN,EAAUroP,KAAKwgP,IAAIoI,GAAOD,EAC1BL,EAAUtoP,KAAKw/O,IAAIoJ,GAAOD,EAC1BF,EAAWzoP,KAAKw/O,IAAIoJ,IAAQxnP,EAAIA,EAAI,EAAIunP,GACxCh7P,EAAIu7P,OAAOviQ,EAAI6hQ,EAAU7gM,EAAI2gM,GAC7B36P,EAAIw7P,OAAOxiQ,EAAI6hQ,EAAU7gM,EAAI2gM,GAC7B36P,EAAIu7P,OAAOviQ,EAAI8hQ,EAAU9gM,EAAI0gM,GAC7B16P,EAAIw7P,OAAOxiQ,EAAI8hQ,EAAU9gM,EAAI0gM,GAC7B,MACF,IAAK,OACHG,EAAWxoP,KAAKwgP,IAAIoI,IAAQxnP,EAAIA,EAAI,EAAIunP,GACxCN,EAAUroP,KAAKwgP,IAAIoI,GAAOD,EAC1BL,EAAUtoP,KAAKw/O,IAAIoJ,GAAOD,EAC1BF,EAAWzoP,KAAKw/O,IAAIoJ,IAAQxnP,EAAIA,EAAI,EAAIunP,GACxCh7P,EAAIu7P,OAAOviQ,EAAI6hQ,EAAU7gM,EAAI2gM,GAC7B36P,EAAIw7P,OAAOxiQ,EAAI6hQ,EAAU7gM,EAAI2gM,GAC7B36P,EAAIu7P,OAAOviQ,EAAI8hQ,EAAU9gM,EAAI0gM,GAC7B16P,EAAIw7P,OAAOxiQ,EAAI8hQ,EAAU9gM,EAAI0gM,GAC7BO,GAAOlO,GACP8N,EAAWxoP,KAAKwgP,IAAIoI,IAAQxnP,EAAIA,EAAI,EAAIunP,GACxCN,EAAUroP,KAAKwgP,IAAIoI,GAAOD,EAC1BL,EAAUtoP,KAAKw/O,IAAIoJ,GAAOD,EAC1BF,EAAWzoP,KAAKw/O,IAAIoJ,IAAQxnP,EAAIA,EAAI,EAAIunP,GACxCh7P,EAAIu7P,OAAOviQ,EAAI6hQ,EAAU7gM,EAAI2gM,GAC7B36P,EAAIw7P,OAAOxiQ,EAAI6hQ,EAAU7gM,EAAI2gM,GAC7B36P,EAAIu7P,OAAOviQ,EAAI8hQ,EAAU9gM,EAAI0gM,GAC7B16P,EAAIw7P,OAAOxiQ,EAAI8hQ,EAAU9gM,EAAI0gM,GAC7B,MACF,IAAK,OACHA,EAAUjnP,EAAIA,EAAI,EAAIpB,KAAKwgP,IAAIoI,GAAOD,EACtCL,EAAUtoP,KAAKw/O,IAAIoJ,GAAOD,EAC1Bh7P,EAAIu7P,OAAOviQ,EAAI0hQ,EAAS1gM,EAAI2gM,GAC5B36P,EAAIw7P,OAAOxiQ,EAAI0hQ,EAAS1gM,EAAI2gM,GAC5B,MACF,IAAK,OACH36P,EAAIu7P,OAAOviQ,EAAGghE,GACdh6D,EAAIw7P,OAAOxiQ,EAAIqZ,KAAKwgP,IAAIoI,IAAQxnP,EAAIA,EAAI,EAAIunP,GAAShhM,EAAI3nD,KAAKw/O,IAAIoJ,GAAOD,GACzE,MACF,KAAK,EACHh7P,EAAIs7P,YAIRt7P,EAAI4iC,OACA3kC,EAAQy9P,YAAc,GACxB17P,EAAIs2J,SAER,CASO,SAASqlG,GACdC,EACAvmK,EACAs8G,GAIA,OAFAA,EAASA,GAAU,IAEXt8G,GAASumK,GAASA,EAAM5iQ,EAAIq8F,EAAKj4F,KAAOu0M,GAAUiqD,EAAM5iQ,EAAIq8F,EAAKh4F,MAAQs0M,GACjFiqD,EAAM5hM,EAAIq7B,EAAKyU,IAAM6nG,GAAUiqD,EAAM5hM,EAAIq7B,EAAKw4C,OAAS8jE,CACzD,CAEO,SAASkqD,GAAS77P,EAA+Bq1F,GACtDr1F,EAAImpJ,OACJnpJ,EAAIm7P,YACJn7P,EAAIs4I,KAAKjjD,EAAKj4F,KAAMi4F,EAAKyU,IAAKzU,EAAKh4F,MAAQg4F,EAAKj4F,KAAMi4F,EAAKw4C,OAASx4C,EAAKyU,KACzE9pG,EAAIg4P,MACN,CAEO,SAAS8D,GAAW97P,GACzBA,EAAIu3I,SACN,CAKO,SAASwkH,GACd/7P,EACAg8P,EACA1mQ,EACAm4M,EACA3+K,GAEA,IAAKktO,EACH,OAAOh8P,EAAIw7P,OAAOlmQ,EAAO0D,EAAG1D,EAAO0kE,GAErC,GAAa,WAATlrC,EAAmB,CACrB,MAAMmtO,GAAYD,EAAShjQ,EAAI1D,EAAO0D,GAAK,EAC3CgH,EAAIw7P,OAAOS,EAAUD,EAAShiM,GAC9Bh6D,EAAIw7P,OAAOS,EAAU3mQ,EAAO0kE,EAC9B,KAAoB,UAATlrC,MAAuB2+K,EAChCztM,EAAIw7P,OAAOQ,EAAShjQ,EAAG1D,EAAO0kE,GAE9Bh6D,EAAIw7P,OAAOlmQ,EAAO0D,EAAGgjQ,EAAShiM,GAEhCh6D,EAAIw7P,OAAOlmQ,EAAO0D,EAAG1D,EAAO0kE,EAC9B,CAKO,SAASkiM,GACdl8P,EACAg8P,EACA1mQ,EACAm4M,GAEA,IAAKuuD,EACH,OAAOh8P,EAAIw7P,OAAOlmQ,EAAO0D,EAAG1D,EAAO0kE,GAErCh6D,EAAIm8P,cACF1uD,EAAOuuD,EAASI,KAAOJ,EAASK,KAChC5uD,EAAOuuD,EAASM,KAAON,EAASO,KAChC9uD,EAAOn4M,EAAO+mQ,KAAO/mQ,EAAO8mQ,KAC5B3uD,EAAOn4M,EAAOinQ,KAAOjnQ,EAAOgnQ,KAC5BhnQ,EAAO0D,EACP1D,EAAO0kE,EACX,CAwBA,SAASwiM,GACPx8P,EACAhH,EACAghE,EACA9gC,EACA82B,GAEA,GAAIA,EAAKysM,eAAiBzsM,EAAK0sM,UAAW,CAQxC,MAAMC,EAAU38P,EAAIssN,YAAYpzL,GAC1B97B,EAAOpE,EAAI2jQ,EAAQC,sBACnBv/P,EAAQrE,EAAI2jQ,EAAQE,uBACpB/yJ,EAAM9vC,EAAI2iM,EAAQG,wBAClBjvH,EAAS7zE,EAAI2iM,EAAQI,yBACrBC,EAAchtM,EAAKysM,eAAiB3yJ,EAAM+jC,GAAU,EAAIA,EAE9D7tI,EAAIi9P,YAAcj9P,EAAImsN,UACtBnsN,EAAIm7P,YACJn7P,EAAIi/N,UAAYjvK,EAAKktM,iBAAmB,EACxCl9P,EAAIu7P,OAAOn+P,EAAM4/P,GACjBh9P,EAAIw7P,OAAOn+P,EAAO2/P,GAClBh9P,EAAIs2J,SAER,CAEA,SAAS6mG,GAAan9P,EAA+BgwD,GACnD,MAAMotM,EAAWp9P,EAAImsN,UAErBnsN,EAAImsN,UAAYn8J,EAAKi2C,MACrBjmG,EAAIq9P,SAASrtM,EAAK5yD,KAAM4yD,EAAK85C,IAAK95C,EAAK8zC,MAAO9zC,EAAK+zC,QACnD/jG,EAAImsN,UAAYixC,CAClB,CAKO,SAASE,GACdt9P,EACAkzD,EACAl6D,EACAghE,EACA+xJ,GAEA,IADA/7J,EAAuBx6D,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,MAEvB,MAAM20I,EAAQ1yI,GAAQy7D,GAAQA,EAAO,CAACA,GAChCojG,EAAStmG,EAAK8kC,YAAc,GAA0B,KAArB9kC,EAAKutM,YAC5C,IAAIhoQ,EAAW2jC,EAMf,IAJAl5B,EAAImpJ,OACJnpJ,EAAI+rN,KAAOA,EAAKlxN,OA7ElB,SAAuBmF,EAA+BgwD,GAChDA,EAAKwtM,aACPx9P,EAAI+uB,UAAUihC,EAAKwtM,YAAY,GAAIxtM,EAAKwtM,YAAY,IAGjD1S,GAAc96L,EAAK4+H,WACtB5uL,EAAIo4L,OAAOpoI,EAAK4+H,UAGd5+H,EAAKi2C,QACPjmG,EAAImsN,UAAYn8J,EAAKi2C,OAGnBj2C,EAAKyxH,YACPzhL,EAAIyhL,UAAYzxH,EAAKyxH,WAGnBzxH,EAAKg8J,eACPhsN,EAAIgsN,aAAeh8J,EAAKg8J,aAE5B,CA0DEyxC,CAAcz9P,EAAKgwD,GAEdz6D,EAAI,EAAGA,EAAI40I,EAAM10I,SAAUF,EAC9B2jC,EAAOixG,EAAM50I,GAETy6D,EAAK0tM,UACPP,GAAan9P,EAAKgwD,EAAK0tM,UAGrBpnG,IACEtmG,EAAKutM,cACPv9P,EAAIi9P,YAAcjtM,EAAKutM,aAGpBzS,GAAc96L,EAAK8kC,eACtB90F,EAAIi/N,UAAYjvK,EAAK8kC,aAGvB90F,EAAI29P,WAAWzkO,EAAMlgC,EAAGghE,EAAGhK,EAAKmxH,WAGlCnhL,EAAIosN,SAASlzL,EAAMlgC,EAAGghE,EAAGhK,EAAKmxH,UAC9Bq7E,GAAax8P,EAAKhH,EAAGghE,EAAG9gC,EAAM82B,GAE9BgK,GAAKvvC,OAAOshM,EAAK/3H,YAGnBh0F,EAAIu3I,SACN,CAOO,SAASqmH,GACd59P,EACAs4I,GAEA,MAAM,EAACt/I,EAAC,EAAEghE,EAAC,EAAEvmD,EAAC,EAAEy3C,EAAC,OAAE8vM,GAAU1iH,EAG7Bt4I,EAAIq7P,IAAIriQ,EAAIgiQ,EAAO6C,QAAS7jM,EAAIghM,EAAO6C,QAAS7C,EAAO6C,QAAS,IAAM7uE,GAAIA,IAAI,GAG9EhvL,EAAIw7P,OAAOxiQ,EAAGghE,EAAI9O,EAAI8vM,EAAO8C,YAG7B99P,EAAIq7P,IAAIriQ,EAAIgiQ,EAAO8C,WAAY9jM,EAAI9O,EAAI8vM,EAAO8C,WAAY9C,EAAO8C,WAAY9uE,GAAI89D,IAAS,GAG1F9sP,EAAIw7P,OAAOxiQ,EAAIya,EAAIunP,EAAO+C,YAAa/jM,EAAI9O,GAG3ClrD,EAAIq7P,IAAIriQ,EAAIya,EAAIunP,EAAO+C,YAAa/jM,EAAI9O,EAAI8vM,EAAO+C,YAAa/C,EAAO+C,YAAajR,GAAS,GAAG,GAGhG9sP,EAAIw7P,OAAOxiQ,EAAIya,EAAGumD,EAAIghM,EAAOgD,UAG7Bh+P,EAAIq7P,IAAIriQ,EAAIya,EAAIunP,EAAOgD,SAAUhkM,EAAIghM,EAAOgD,SAAUhD,EAAOgD,SAAU,GAAIlR,IAAS,GAGpF9sP,EAAIw7P,OAAOxiQ,EAAIgiQ,EAAO6C,QAAS7jM,EACjC,CCpgBA,MAAMikM,GAAc,uCACdC,GAAa,wEAcZ,SAASC,GAAa5nQ,EAAwBs3D,GACnD,MAAM/E,GAAW,GAAKvyD,GAAO2f,MAAM+nP,IACnC,IAAKn1M,GAA0B,WAAfA,EAAQ,GACtB,OAAc,IAAP+E,EAKT,OAFAt3D,GAASuyD,EAAQ,GAETA,EAAQ,IACd,IAAK,KACH,OAAOvyD,EACT,IAAK,IACHA,GAAS,IAMb,OAAOs3D,EAAOt3D,CAChB,CAEA,MAAM6nQ,GAAgBt1N,IAAgBA,GAAK,EAQpC,SAASu1N,GAAkB9nQ,EAAwCwD,GACxE,MAAM4gE,EAAM,CAAC,EACPgtB,EAAWvpB,GAASrkE,GACpBpF,EAAOgzF,EAAW/yF,OAAOD,KAAKoF,GAASA,EACvC88B,EAAOunC,GAAS7nE,GAClBoxF,EACEp4B,GAAQ07L,GAAe10P,EAAMg5D,GAAOh5D,EAAMwD,EAAMw1D,KAChDA,GAAQh5D,EAAMg5D,GAChB,IAAMh5D,EAEV,IAAK,MAAMg5D,KAAQ56D,EACjBgmE,EAAIpL,GAAQ6uM,GAAavnO,EAAK04B,IAEhC,OAAOoL,CACT,CAUO,SAAS2jM,GAAO/nQ,GACrB,OAAO8nQ,GAAkB9nQ,EAAO,CAACuzG,IAAK,IAAKzsG,MAAO,IAAKwwI,OAAQ,IAAKzwI,KAAM,KAC5E,CASO,SAASmhQ,GAAchoQ,GAC5B,OAAO8nQ,GAAkB9nQ,EAAO,CAAC,UAAW,WAAY,aAAc,eACxE,CAUO,SAASioQ,GAAUjoQ,GACxB,MAAML,EAAMooQ,GAAO/nQ,GAKnB,OAHAL,EAAI4tG,MAAQ5tG,EAAIkH,KAAOlH,EAAImH,MAC3BnH,EAAI6tG,OAAS7tG,EAAI4zG,IAAM5zG,EAAI23I,OAEpB33I,CACT,CAUO,SAASuoQ,GAAOxgQ,EAA4B8hH,GACjD9hH,EAAUA,GAAW,CAAC,EACtB8hH,EAAWA,GAAYkxG,GAASlF,KAEhC,IAAIl+J,EAAOo9L,GAAehtP,EAAQ4vD,KAAMkyD,EAASlyD,MAE7B,kBAATA,IACTA,EAAO98B,SAAS88B,EAAM,KAExB,IAAI8d,EAAQs/K,GAAehtP,EAAQ0tE,MAAOo0C,EAASp0C,OAC/CA,KAAW,GAAKA,GAAOz1D,MAAMgoP,MAC/B1/P,QAAQC,KAAK,kCAAoCktE,EAAQ,KACzDA,OAAQ5sE,GAGV,MAAMgtN,EAAO,CACXpvB,OAAQsuD,GAAehtP,EAAQ0+L,OAAQ58E,EAAS48E,QAChD3oG,WAAYmqK,GAAalT,GAAehtP,EAAQ+1F,WAAY+rB,EAAS/rB,YAAanmC,GAClFA,OACA8d,QACAmqI,OAAQm1C,GAAehtP,EAAQ63M,OAAQ/1F,EAAS+1F,QAChDj7M,OAAQ,IAIV,OADAkxN,EAAKlxN,ODlHA,SAAsBkxN,GAC3B,OAAKA,GAAQ++B,GAAc/+B,EAAKl+J,OAASi9L,GAAc/+B,EAAKpvB,QACnD,MAGDovB,EAAKpgJ,MAAQogJ,EAAKpgJ,MAAQ,IAAM,KACrCogJ,EAAKjW,OAASiW,EAAKjW,OAAS,IAAM,IACnCiW,EAAKl+J,KAAO,MACZk+J,EAAKpvB,MACT,CCyGgB+hE,CAAa3yC,GACpBA,CACT,CAaO,SAAS3sN,GAAQu/P,EAAwB76N,EAAkBlf,EAAgB4xB,GAChF,IACIjhD,EAAWg2P,EAAch1P,EADzBqoQ,GAAY,EAGhB,IAAKrpQ,EAAI,EAAGg2P,EAAOoT,EAAOlpQ,OAAQF,EAAIg2P,IAAQh2P,EAE5C,GADAgB,EAAQooQ,EAAOppQ,QACDwJ,IAAVxI,SAGYwI,IAAZ+kC,GAA0C,oBAAVvtC,IAClCA,EAAQA,EAAMutC,GACd86N,GAAY,QAEA7/P,IAAV6lB,GAAuBntB,GAAQlB,KACjCA,EAAQA,EAAMquB,EAAQruB,EAAMd,QAC5BmpQ,GAAY,QAEA7/P,IAAVxI,GAIF,OAHIigD,IAASooN,IACXpoN,EAAKooN,WAAY,GAEZroQ,CAGb,CA0BO,SAASsJ,GAAcg/P,EAAuB/6N,GACnD,OAAOlvC,OAAOsyC,OAAOtyC,OAAOwQ,OAAOy5P,GAAgB/6N,EACrD,CCnLO,SAASg7N,GAIdC,GAKA,IAJAjoE,EAAWthM,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAC,GAADA,UAAC,GAAD,CAAC,IAEZuqH,EAA4BvqH,UAAAC,OAAA,EAAAD,UAAA,QAAAuJ,EAC5BigQ,EAAAxpQ,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAY,IAAMupQ,EAAO,GAEzB,MAAME,GAJQzpQ,UAAAC,OAAA,EAAAD,UAAA,QAAAuJ,IAIwBggQ,EACd,qBAAbh/I,IACTA,EAAWm/I,GAAS,YAAaH,IAEnC,MAAM37L,EAA6B,CACjC,CAACjtE,OAAO21E,aAAc,SACtBqzL,YAAY,EACZC,QAASL,EACTM,YAAaJ,EACbvH,UAAW33I,EACXu/I,WAAYN,EACZhI,SAAWnxM,GAAqBi5M,GAAgB,CAACj5M,KAAUk5M,GAASjoE,EAAUmoE,EAAiBl/I,IAEjG,OAAO,IAAI7wC,MAAM9L,EAAO,CAItBm8L,eAAeA,CAAAjqQ,EAAQi6D,YACdj6D,EAAOi6D,UACPj6D,EAAOkqQ,aACPT,EAAO,GAAGxvM,IACV,GAMTjnD,IAAIA,CAAAhT,EAAQi6D,IACHkwM,GAAQnqQ,EAAQi6D,GACrB,IAoUR,SACEA,EACAunI,EACAioE,EACAW,GAEA,IAAInpQ,EACJ,IAAK,MAAMwrC,KAAU+0J,EAEnB,GADAvgM,EAAQ2oQ,GAASS,GAAQ59N,EAAQwtB,GAAOwvM,GACnB,qBAAVxoQ,EACT,OAAOqpQ,GAAiBrwM,EAAMh5D,GAC1BspQ,GAAkBd,EAAQW,EAAOnwM,EAAMh5D,GACvCA,CAGV,CAnVcupQ,CAAqBvwM,EAAMunI,EAAUioE,EAAQzpQ,KAOvDL,yBAAyBA,CAAAK,EAAQi6D,IACxB4f,QAAQl6E,yBAAyBK,EAAO8pQ,QAAQ,GAAI7vM,GAM7D1S,eAAiBA,IACRsyB,QAAQtyB,eAAekiN,EAAO,IAMvCr9K,IAAIA,CAAApsF,EAAQi6D,IACHwwM,GAAqBzqQ,GAAQiJ,SAASgxD,GAM/C/6D,QAAQc,GACCyqQ,GAAqBzqQ,GAM9Bkb,GAAAA,CAAIlb,EAAQi6D,EAAch5D,GACxB,MAAM2sB,EAAU5tB,EAAO0qQ,WAAa1qQ,EAAO0qQ,SAAWhB,KAGtD,OAFA1pQ,EAAOi6D,GAAQrsC,EAAQqsC,GAAQh5D,SACxBjB,EAAOkqQ,OACP,CACT,GAEJ,CAUO,SAASS,GAIdP,EACA57N,EACAo8N,EACAC,GAEA,MAAM/8L,EAA4B,CAChC+7L,YAAY,EACZiB,OAAQV,EACRnwK,SAAUzrD,EACVu8N,UAAWH,EACXI,OAAQ,IAAIlxL,IACZqmL,aAAcA,GAAaiK,EAAOS,GAClCz/P,WAAaV,GAAmBigQ,GAAeP,EAAO1/P,EAAKkgQ,EAAUC,GACrEnJ,SAAWnxM,GAAqBo6M,GAAeP,EAAM1I,SAASnxM,GAAQ/hB,EAASo8N,EAAUC,IAE3F,OAAO,IAAIjxL,MAAM9L,EAAO,CAItBm8L,eAAeA,CAAAjqQ,EAAQi6D,YACdj6D,EAAOi6D,UACPmwM,EAAMnwM,IACN,GAMTjnD,IAAG,CAAChT,EAAQi6D,EAAc2c,IACjBuzL,GAAQnqQ,EAAQi6D,GACrB,IAiFR,SACEj6D,EACAi6D,EACA2c,GAEA,MAAM,OAACk0L,EAAM,SAAE7wK,EAAQ,UAAE8wK,EAAW5K,aAAchvF,GAAenxK,EACjE,IAAIiB,EAAQ6pQ,EAAO7wM,GAGf4O,GAAW5nE,IAAUkwK,EAAY85F,aAAahxM,KAChDh5D,EAYJ,SACEg5D,EACAg5B,EACAjzF,EACA42E,GAEA,MAAM,OAACk0L,EAAA,SAAQ7wK,EAAA,UAAU8wK,EAAS,OAAEC,GAAUhrQ,EAC9C,GAAIgrQ,EAAO5+K,IAAInyB,GACb,MAAM,IAAIl1D,MAAM,uBAAyB7C,MAAMkB,KAAK4nQ,GAAQh8O,KAAK,MAAQ,KAAOirC,GAElF+wM,EAAO3sO,IAAI47B,GACX,IAAIh5D,EAAQgyF,EAASgH,EAAU8wK,GAAan0L,GAC5Co0L,EAAOrzO,OAAOsiC,GACVqwM,GAAiBrwM,EAAMh5D,KAEzBA,EAAQspQ,GAAkBO,EAAOhB,QAASgB,EAAQ7wM,EAAMh5D,IAE1D,OAAOA,CACT,CA9BYiqQ,CAAmBjxM,EAAMh5D,EAAOjB,EAAQ42E,IAE9Cz0E,GAAQlB,IAAUA,EAAMd,SAC1Bc,EA6BJ,SACEg5D,EACAh5D,EACAjB,EACAmrQ,GAEA,MAAM,OAACL,EAAM,SAAE7wK,EAAQ,UAAE8wK,EAAW5K,aAAchvF,GAAenxK,EAEjE,GAA8B,qBAAnBi6F,EAAS3qE,OAAyB67O,EAAYlxM,GACvD,OAAOh5D,EAAMg5F,EAAS3qE,MAAQruB,EAAMd,QAC/B,GAAI2oE,GAAS7nE,EAAM,IAAK,CAE7B,MAAMY,EAAMZ,EACNwoQ,EAASqB,EAAOhB,QAAQrqQ,QAAOsc,GAAKA,IAAMla,IAChDZ,EAAQ,GACR,IAAK,MAAMg1C,KAAQp0C,EAAK,CACtB,MAAMi1P,EAAWyT,GAAkBd,EAAQqB,EAAQ7wM,EAAMhkB,GACzDh1C,EAAMpB,KAAK8qQ,GAAe7T,EAAU78J,EAAU8wK,GAAaA,EAAU9wM,GAAOk3G,GAC9E,EAEF,OAAOlwK,CACT,CAlDYmqQ,CAAcnxM,EAAMh5D,EAAOjB,EAAQmxK,EAAYg6F,cAErDb,GAAiBrwM,EAAMh5D,KAEzBA,EAAQ0pQ,GAAe1pQ,EAAOg5F,EAAU8wK,GAAaA,EAAU9wM,GAAOk3G,IAExE,OAAOlwK,CACT,CArGcoqQ,CAAoBrrQ,EAAQi6D,EAAM2c,KAO5Cj3E,yBAAyBA,CAAAK,EAAQi6D,IACxBj6D,EAAOmgQ,aAAa93P,QACvBwxE,QAAQuS,IAAIg+K,EAAOnwM,GAAQ,CAACr6D,YAAY,EAAMsB,cAAc,QAAQuI,EACpEowE,QAAQl6E,yBAAyByqQ,EAAOnwM,GAM9C1S,eAAiBA,IACRsyB,QAAQtyB,eAAe6iN,GAMhCh+K,IAAIA,CAAApsF,EAAQi6D,IACH4f,QAAQuS,IAAIg+K,EAAOnwM,GAM5B/6D,QAAUA,IACD26E,QAAQ36E,QAAQkrQ,GAMzBlvP,IAAG,CAAClb,EAAQi6D,EAAMh5D,KAChBmpQ,EAAMnwM,GAAQh5D,SACPjB,EAAOi6D,IACP,IAGb,CAKO,SAASkmM,GACdiK,GAEY,IADZzuC,EAA+Bz7N,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,IAACorQ,YAAY,EAAMC,WAAW,GAE7D,MAAM,YAACrJ,EAAcvmC,EAAS2vC,WAAU,WAAEnJ,EAAaxmC,EAAS4vC,UAAS,SAAEC,EAAW7vC,EAAStzN,SAAW+hQ,EAC1G,MAAO,CACL/hQ,QAASmjQ,EACTF,WAAYpJ,EACZqJ,UAAWpJ,EACX8I,aAAcpiM,GAAWq5L,GAAeA,EAAc,IAAMA,EAC5DiJ,YAAatiM,GAAWs5L,GAAcA,EAAa,IAAMA,EAE7D,CAEA,MAAMkI,GAAUA,CAAC59N,EAAgBtpC,IAAiBspC,EAASA,EAASwqN,GAAY9zP,GAAQA,EAClFmnQ,GAAmBA,CAACrwM,EAAch5D,IAAmB6nE,GAAS7nE,IAAmB,aAATg5D,IAC1C,OAAjC36D,OAAOioD,eAAetmD,IAAmBA,EAAMF,cAAgBzB,QAElE,SAAS6qQ,GACPnqQ,EACAi6D,EACAnwD,GAEA,GAAIxK,OAAO0B,UAAU4C,eAAejC,KAAK3B,EAAQi6D,GAC/C,OAAOj6D,EAAOi6D,GAGhB,MAAMh5D,EAAQ6I,IAGd,OADA9J,EAAOi6D,GAAQh5D,EACRA,CACT,CAmEA,SAASwqQ,GACPhhJ,EACAxwD,EACAh5D,GAEA,OAAO4nE,GAAW4hD,GAAYA,EAASxwD,EAAMh5D,GAASwpH,CACxD,CAEA,MAAMihJ,GAAWA,CAACprQ,EAAwBkzI,KAA8B,IAARlzI,EAAekzI,EAC5D,kBAARlzI,EAAmBu2P,GAAiBrjH,EAAQlzI,QAAOmJ,EAE9D,SAASkiQ,GACPzwP,EACA0wP,EACAtrQ,EACAurQ,EACA5qQ,GAEA,IAAK,MAAMuyI,KAAUo4H,EAAc,CACjC,MAAMr7M,EAAQm7M,GAASprQ,EAAKkzI,GAC5B,GAAIjjF,EAAO,CACTr1C,EAAImjB,IAAIkyB,GACR,MAAMk6D,EAAWghJ,GAAgBl7M,EAAM6xM,UAAW9hQ,EAAKW,GACvD,GAAwB,qBAAbwpH,GAA4BA,IAAanqH,GAAOmqH,IAAaohJ,EAGtE,OAAOphJ,OAEJ,IAAc,IAAVl6D,GAA6C,qBAAnBs7M,GAAkCvrQ,IAAQurQ,EAG7E,OAAO,IAEX,CACA,OAAO,CACT,CAEA,SAAStB,GACPqB,EACA9U,EACA78L,EACAh5D,GAEA,MAAM6qQ,EAAahV,EAASiT,YACtBt/I,EAAWghJ,GAAgB3U,EAASsL,UAAWnoM,EAAMh5D,GACrD8qQ,EAAY,IAAIH,KAAiBE,GACjC5wP,EAAM,IAAI4+D,IAChB5+D,EAAImjB,IAAIp9B,GACR,IAAIX,EAAM0rQ,GAAiB9wP,EAAK6wP,EAAW9xM,EAAMwwD,GAAYxwD,EAAMh5D,GACnE,OAAY,OAARX,KAGoB,qBAAbmqH,GAA4BA,IAAaxwD,IAClD35D,EAAM0rQ,GAAiB9wP,EAAK6wP,EAAWthJ,EAAUnqH,EAAKW,GAC1C,OAARX,KAICkpQ,GAAgBtnQ,MAAMkB,KAAK8X,GAAM,CAAC,IAAK4wP,EAAYrhJ,GACxD,IAgBJ,SACEqsI,EACA78L,EACAh5D,GAEA,MAAMuyI,EAASsjH,EAASkT,aAClB/vM,KAAQu5E,IACZA,EAAOv5E,GAAQ,CAAC,GAElB,MAAMj6D,EAASwzI,EAAOv5E,GACtB,GAAI93D,GAAQnC,IAAW8oE,GAAS7nE,GAE9B,OAAOA,EAET,OAAOjB,GAAU,CAAC,CACpB,CA/BUisQ,CAAanV,EAAU78L,EAAgBh5D,KACjD,CAEA,SAAS+qQ,GACP9wP,EACA6wP,EACAzrQ,EACAmqH,EACAx0E,GAEA,KAAO31C,GACLA,EAAMqrQ,GAAUzwP,EAAK6wP,EAAWzrQ,EAAKmqH,EAAUx0E,GAEjD,OAAO31C,CACT,CAoCA,SAASspQ,GAAStpQ,EAAampQ,GAC7B,IAAK,MAAMl5M,KAASk5M,EAAQ,CAC1B,IAAKl5M,EACH,SAEF,MAAMtvD,EAAQsvD,EAAMjwD,GACpB,GAAqB,qBAAVW,EACT,OAAOA,CAEX,CACF,CAEA,SAASwpQ,GAAqBzqQ,GAC5B,IAAIX,EAAOW,EAAOkqQ,MAIlB,OAHK7qQ,IACHA,EAAOW,EAAOkqQ,MAKlB,SAAkCT,GAChC,MAAMvuP,EAAM,IAAI4+D,IAChB,IAAK,MAAMvpB,KAASk5M,EAClB,IAAK,MAAMnpQ,KAAOhB,OAAOD,KAAKkxD,GAAO9wD,QAAO4e,IAAMA,EAAEm3B,WAAW,OAC7Dt6B,EAAImjB,IAAI/9B,GAGZ,OAAO4B,MAAMkB,KAAK8X,EACpB,CAb0BgxP,CAAyBlsQ,EAAO8pQ,UAEjDzqQ,CACT,CAYO,SAAS8sQ,GACd5rK,EACAtmF,EACA8gD,EACArZ,GAEA,MAAM,OAAC05M,GAAU76J,GACX,IAACjgG,EAAM,KAAOoa,KAAK0xP,SACnBphQ,EAAS,IAAI9I,MAAoBw/C,GACvC,IAAIzhD,EAAWg2P,EAAc3mO,EAAe2mB,EAE5C,IAAKh2C,EAAI,EAAGg2P,EAAOv0M,EAAOzhD,EAAIg2P,IAAQh2P,EACpCqvB,EAAQrvB,EAAI86D,EACZ9kB,EAAOh8B,EAAKqV,GACZtkB,EAAO/K,GAAK,CACVsI,EAAG6yP,EAAOj5O,MAAM00O,GAAiB5gN,EAAM31C,GAAMgvB,IAGjD,OAAOtkB,CACT,CClcA,MAAMqhQ,GAAUl3O,OAAOk3O,SAAW,MAG5BC,GAAWA,CAACtR,EAAuB/6P,IAAmCA,EAAI+6P,EAAO76P,SAAW66P,EAAO/6P,GAAGssQ,MAAQvR,EAAO/6P,GACrHusQ,GAAgB5L,GAAuC,MAAdA,EAAoB,IAAM,IAElE,SAAS6L,GACdC,EACAC,EACAC,EACA5wP,GAUA,MAAM0qP,EAAWgG,EAAWH,KAAOI,EAAcD,EAC3C7lQ,EAAU8lQ,EACVjqQ,EAAOkqQ,EAAWL,KAAOI,EAAcC,EACvCC,EAAM5T,GAAsBpyP,EAAS6/P,GACrCoG,EAAM7T,GAAsBv2P,EAAMmE,GAExC,IAAIkmQ,EAAMF,GAAOA,EAAMC,GACnBE,EAAMF,GAAOD,EAAMC,GAGvBC,EAAMvzN,MAAMuzN,GAAO,EAAIA,EACvBC,EAAMxzN,MAAMwzN,GAAO,EAAIA,EAEvB,MAAM91K,EAAKl7E,EAAI+wP,EACTrxK,EAAK1/E,EAAIgxP,EAEf,MAAO,CACLtG,SAAU,CACRhjQ,EAAGmD,EAAQnD,EAAIwzF,GAAMx0F,EAAKgB,EAAIgjQ,EAAShjQ,GACvCghE,EAAG79D,EAAQ69D,EAAIwyB,GAAMx0F,EAAKgiE,EAAIgiM,EAAShiM,IAEzChiE,KAAM,CACJgB,EAAGmD,EAAQnD,EAAIg4F,GAAMh5F,EAAKgB,EAAIgjQ,EAAShjQ,GACvCghE,EAAG79D,EAAQ69D,EAAIg3B,GAAMh5F,EAAKgiE,EAAIgiM,EAAShiM,IAG7C,CAsEO,SAASuoM,GAAoBjS,GAAmD,IAA5B4F,EAAA1gQ,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAuB,IAChF,MAAMgtQ,EAAYV,GAAa5L,GACzBuM,EAAYnS,EAAO76P,OACnBitQ,EAAmBlrQ,MAAMirQ,GAAW7/N,KAAK,GACzC+/N,EAAenrQ,MAAMirQ,GAG3B,IAAIltQ,EAAGqtQ,EAAkCC,EACrCC,EAAalB,GAAStR,EAAQ,GAElC,IAAK/6P,EAAI,EAAGA,EAAIktQ,IAAaltQ,EAI3B,GAHAqtQ,EAAcC,EACdA,EAAeC,EACfA,EAAalB,GAAStR,EAAQ/6P,EAAI,GAC7BstQ,EAAL,CAIA,GAAIC,EAAY,CACd,MAAMC,EAAaD,EAAW5M,GAAa2M,EAAa3M,GAGxDwM,EAAOntQ,GAAoB,IAAfwtQ,GAAoBD,EAAWN,GAAaK,EAAaL,IAAcO,EAAa,EAElGJ,EAAGptQ,GAAMqtQ,EACJE,EACExsP,GAAKosP,EAAOntQ,EAAI,MAAQ+gB,GAAKosP,EAAOntQ,IAAO,GACzCmtQ,EAAOntQ,EAAI,GAAKmtQ,EAAOntQ,IAAM,EAFpBmtQ,EAAOntQ,EAAI,GADNmtQ,EAAOntQ,IAzFlC,SAAwB+6P,EAAuBoS,EAAkBC,GAC/D,MAAMF,EAAYnS,EAAO76P,OAEzB,IAAIutQ,EAAgBC,EAAeC,EAAcC,EAA0BN,EACvEC,EAAalB,GAAStR,EAAQ,GAClC,IAAK,IAAI/6P,EAAI,EAAGA,EAAIktQ,EAAY,IAAKltQ,EACnCstQ,EAAeC,EACfA,EAAalB,GAAStR,EAAQ/6P,EAAI,GAC7BstQ,GAAiBC,IAIlB5V,GAAawV,EAAOntQ,GAAI,EAAGosQ,IAC7BgB,EAAGptQ,GAAKotQ,EAAGptQ,EAAI,GAAK,GAItBytQ,EAASL,EAAGptQ,GAAKmtQ,EAAOntQ,GACxB0tQ,EAAQN,EAAGptQ,EAAI,GAAKmtQ,EAAOntQ,GAC3B4tQ,EAAmB9wP,KAAKM,IAAIqwP,EAAQ,GAAK3wP,KAAKM,IAAIswP,EAAO,GACrDE,GAAoB,IAIxBD,EAAO,EAAI7wP,KAAK87O,KAAKgV,GACrBR,EAAGptQ,GAAKytQ,EAASE,EAAOR,EAAOntQ,GAC/BotQ,EAAGptQ,EAAI,GAAK0tQ,EAAQC,EAAOR,EAAOntQ,KAEtC,CAmEE6tQ,CAAe9S,EAAQoS,EAAQC,GAjEjC,SAAyBrS,EAAuBqS,GAA0C,IAA5BzM,EAAA1gQ,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAuB,IACnF,MAAMgtQ,EAAYV,GAAa5L,GACzBuM,EAAYnS,EAAO76P,OACzB,IAAI0jC,EAAeypO,EAAkCC,EACjDC,EAAalB,GAAStR,EAAQ,GAElC,IAAK,IAAI/6P,EAAI,EAAGA,EAAIktQ,IAAaltQ,EAAG,CAIlC,GAHAqtQ,EAAcC,EACdA,EAAeC,EACfA,EAAalB,GAAStR,EAAQ/6P,EAAI,IAC7BstQ,EACH,SAGF,MAAMQ,EAASR,EAAa3M,GACtBoN,EAAST,EAAaL,GACxBI,IACFzpO,GAASkqO,EAAST,EAAY1M,IAAc,EAC5C2M,EAAa,MAADnkQ,OAAOw3P,IAAemN,EAASlqO,EAC3C0pO,EAAa,MAADnkQ,OAAO8jQ,IAAec,EAASnqO,EAAQwpO,EAAGptQ,IAEpDutQ,IACF3pO,GAAS2pO,EAAW5M,GAAamN,GAAU,EAC3CR,EAAa,MAADnkQ,OAAOw3P,IAAemN,EAASlqO,EAC3C0pO,EAAa,MAADnkQ,OAAO8jQ,IAAec,EAASnqO,EAAQwpO,EAAGptQ,GAE1D,CACF,CAwCEguQ,CAAgBjT,EAAQqS,EAAIzM,EAC9B,CAEA,SAASsN,GAAgBC,EAAYtjO,EAAaC,GAChD,OAAO/tB,KAAK+tB,IAAI/tB,KAAK8tB,IAAIsjO,EAAIrjO,GAAMD,EACrC,CA2BO,SAASujO,GACdpT,EACAryP,EACAo3F,EACA86B,EACA+lI,GAEA,IAAI3gQ,EAAWg2P,EAAcqQ,EAAoB+H,EAOjD,GAJI1lQ,EAAQ2lQ,WACVtT,EAASA,EAAOv7P,QAAQ0uQ,IAAQA,EAAG5B,QAGE,aAAnC5jQ,EAAQ4lQ,uBACVtB,GAAoBjS,EAAQ4F,OACvB,CACL,IAAI/xL,EAAOgsD,EAAOmgI,EAAOA,EAAO76P,OAAS,GAAK66P,EAAO,GACrD,IAAK/6P,EAAI,EAAGg2P,EAAO+E,EAAO76P,OAAQF,EAAIg2P,IAAQh2P,EAC5CqmQ,EAAQtL,EAAO/6P,GACfouQ,EAAgB5B,GACd59L,EACAy3L,EACAtL,EAAOj+O,KAAK8tB,IAAI5qC,EAAI,EAAGg2P,GAAQp7H,EAAO,EAAI,IAAMo7H,GAChDttP,EAAQ6lQ,SAEVlI,EAAMQ,KAAOuH,EAAc3H,SAAShjQ,EACpC4iQ,EAAMU,KAAOqH,EAAc3H,SAAShiM,EACpC4hM,EAAMS,KAAOsH,EAAc3rQ,KAAKgB,EAChC4iQ,EAAMW,KAAOoH,EAAc3rQ,KAAKgiE,EAChCmK,EAAOy3L,EAIP39P,EAAQ8lQ,iBA3Dd,SAAyBzT,EAAuBj7J,GAC9C,IAAI9/F,EAAGg2P,EAAMqQ,EAAOoI,EAAQC,EACxBC,EAAavI,GAAerL,EAAO,GAAIj7J,GAC3C,IAAK9/F,EAAI,EAAGg2P,EAAO+E,EAAO76P,OAAQF,EAAIg2P,IAAQh2P,EAC5C0uQ,EAAaD,EACbA,EAASE,EACTA,EAAa3uQ,EAAIg2P,EAAO,GAAKoQ,GAAerL,EAAO/6P,EAAI,GAAI8/F,GACtD2uK,IAGLpI,EAAQtL,EAAO/6P,GACX0uQ,IACFrI,EAAMQ,KAAOoH,GAAgB5H,EAAMQ,KAAM/mK,EAAKj4F,KAAMi4F,EAAKh4F,OACzDu+P,EAAMU,KAAOkH,GAAgB5H,EAAMU,KAAMjnK,EAAKyU,IAAKzU,EAAKw4C,SAEtDq2H,IACFtI,EAAMS,KAAOmH,GAAgB5H,EAAMS,KAAMhnK,EAAKj4F,KAAMi4F,EAAKh4F,OACzDu+P,EAAMW,KAAOiH,GAAgB5H,EAAMW,KAAMlnK,EAAKyU,IAAKzU,EAAKw4C,SAG9D,CAwCIk2H,CAAgBzT,EAAQj7J,EAE5B,CC9MO,SAAS8uK,KACd,MAAyB,qBAAX1+P,QAA8C,qBAAbg8B,QACjD,CAKO,SAAS2iO,GAAen/P,GAC7B,IAAI6jI,EAAS7jI,EAAQitD,WAIrB,OAHI42E,GAAgC,wBAAtBA,EAAOvwI,aACnBuwI,EAAUA,EAAsB3zG,MAE3B2zG,CACT,CAOA,SAASu7H,GAAcC,EAA6BlpQ,EAAmBmpQ,GACrE,IAAIC,EAYJ,MAX0B,kBAAfF,GACTE,EAAgBzzO,SAASuzO,EAAY,KAEJ,IAA7BA,EAAWztQ,QAAQ,OAErB2tQ,EAAgBA,EAAiB,IAAOppQ,EAAK82D,WAAWqyM,KAG1DC,EAAgBF,EAGXE,CACT,CAEA,MAAMjwG,GAAoBt5J,GACxBA,EAAQ61F,cAAckY,YAAYurD,iBAAiBt5J,EAAS,MAM9D,MAAM09I,GAAY,CAAC,MAAO,QAAS,SAAU,QAC7C,SAAS8rH,GAAmB//G,EAA6B/4E,EAAehiC,GACtE,MAAMtqC,EAAS,CAAC,EAChBsqC,EAASA,EAAS,IAAMA,EAAS,GACjC,IAAK,IAAIp0C,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAMy4D,EAAM2qF,GAAUpjJ,GACtB8J,EAAO2uD,GAAOvqB,WAAWihH,EAAO/4E,EAAQ,IAAM3d,EAAMrkB,KAAY,CAClE,CAGA,OAFAtqC,EAAOykG,MAAQzkG,EAAOjC,KAAOiC,EAAOhC,MACpCgC,EAAO0kG,OAAS1kG,EAAOyqG,IAAMzqG,EAAOwuI,OAC7BxuI,CACT,CAEA,MAAMqlQ,GAAeA,CAAC1rQ,EAAWghE,EAAW1kE,KACzC0D,EAAI,GAAKghE,EAAI,MAAQ1kE,IAAWA,EAAwBw+N,YAuCpD,SAAS6wC,GACd9oQ,EACA64P,GAEA,GAAI,WAAY74P,EACd,OAAOA,EAGT,MAAM,OAACowN,EAAA,wBAAQmuC,GAA2B1F,EACpC/oL,EAAQ4oF,GAAiB03D,GACzB24C,EAAgC,eAApBj5L,EAAMk5L,UAClBC,EAAWL,GAAmB94L,EAAO,WACrCo5L,EAAUN,GAAmB94L,EAAO,SAAU,UAC9C,EAAC3yE,EAAA,EAAGghE,EAAA,IAAGgrM,GA7Cf,SACEz+P,EACA0lN,GAMA,MAAMznH,EAAUj+F,EAAkBi+F,QAC5B9uG,EAAU8uG,GAAWA,EAAQ/uG,OAAS+uG,EAAQ,GAAKj+F,GACnD,QAAC0+P,EAAA,QAASC,GAAWxvQ,EAC3B,IACIsD,EAAGghE,EADHgrM,GAAM,EAEV,GAAIN,GAAaO,EAASC,EAAS3+P,EAAEjR,QACnC0D,EAAIisQ,EACJjrM,EAAIkrM,MACC,CACL,MAAM5sH,EAAO2zE,EAAOr+E,wBACpB50I,EAAItD,EAAO+qG,QAAU63C,EAAKl7I,KAC1B48D,EAAItkE,EAAOgrG,QAAU43C,EAAKxuC,IAC1Bk7J,GAAM,EAER,MAAO,CAAChsQ,IAAGghE,IAAGgrM,MAChB,CAsBsBG,CAAkBtpQ,EAAOowN,GACvCyuC,EAAUoK,EAAS1nQ,MAAQ4nQ,GAAOD,EAAQ3nQ,MAC1Cu9P,EAAUmK,EAASh7J,KAAOk7J,GAAOD,EAAQj7J,KAE/C,IAAI,MAAChG,EAAA,OAAOC,GAAU2wJ,EAKtB,OAJIkQ,IACF9gK,GAASghK,EAAShhK,MAAQihK,EAAQjhK,MAClCC,GAAU+gK,EAAS/gK,OAASghK,EAAQhhK,QAE/B,CACL/qG,EAAGqZ,KAAKue,OAAO53B,EAAI0hQ,GAAW52J,EAAQmoH,EAAOnoH,MAAQs2J,GACrDpgM,EAAG3nD,KAAKue,OAAOopC,EAAI2gM,GAAW52J,EAASkoH,EAAOloH,OAASq2J,GAE3D,CA6BA,MAAMgL,GAAUt8N,GAAcz2B,KAAKue,MAAU,GAAJkY,GAAU,GAG5C,SAASu8N,GACdp5C,EACAq5C,EACAC,EACAjzK,GAEA,MAAM3mB,EAAQ4oF,GAAiB03D,GACzBu5C,EAAUf,GAAmB94L,EAAO,UACpCw1G,EAAWkjF,GAAc14L,EAAMw1G,SAAU8qC,EAAQ,gBAAkB0gC,GACnE95B,EAAYwxC,GAAc14L,EAAMknJ,UAAW5G,EAAQ,iBAAmB0gC,GACtE8Y,EAxCR,SAA0Bx5C,EAA2BnoH,EAAeC,GAClE,IAAIo9E,EAAkB0xC,EAEtB,QAAc9zN,IAAV+kG,QAAkC/kG,IAAXglG,EAAsB,CAC/C,MAAMonC,EAAYi5H,GAAen4C,GACjC,GAAK9gF,EAGE,CACL,MAAMmN,EAAOnN,EAAUyC,wBACjBviE,EAAiBkpF,GAAiBppB,GAClCu6H,EAAkBjB,GAAmBp5L,EAAgB,SAAU,SAC/Ds6L,EAAmBlB,GAAmBp5L,EAAgB,WAC5Dy4B,EAAQw0C,EAAKx0C,MAAQ6hK,EAAiB7hK,MAAQ4hK,EAAgB5hK,MAC9DC,EAASu0C,EAAKv0C,OAAS4hK,EAAiB5hK,OAAS2hK,EAAgB3hK,OACjEo9E,EAAWkjF,GAAch5L,EAAe81G,SAAUh2C,EAAW,eAC7D0nF,EAAYwxC,GAAch5L,EAAewnJ,UAAW1nF,EAAW,qBAV/DrnC,EAAQmoH,EAAOqrB,YACfvzI,EAASkoH,EAAO25C,aAYpB,MAAO,CACL9hK,QACAC,SACAo9E,SAAUA,GAAYwrE,GACtB95B,UAAWA,GAAa85B,GAE5B,CAewBkZ,CAAiB55C,EAAQq5C,EAASC,GACxD,IAAI,MAACzhK,EAAA,OAAOC,GAAU0hK,EAEtB,GAAwB,gBAApB95L,EAAMk5L,UAA6B,CACrC,MAAME,EAAUN,GAAmB94L,EAAO,SAAU,SAC9Cm5L,EAAWL,GAAmB94L,EAAO,WAC3Cm4B,GAASghK,EAAShhK,MAAQihK,EAAQjhK,MAClCC,GAAU+gK,EAAS/gK,OAASghK,EAAQhhK,OAEtCD,EAAQzxF,KAAK+tB,IAAI,EAAG0jE,EAAQ0hK,EAAQ1hK,OACpCC,EAAS1xF,KAAK+tB,IAAI,EAAGkyD,EAAcwR,EAAQxR,EAAcyR,EAASyhK,EAAQzhK,QAC1ED,EAAQshK,GAAO/yP,KAAK8tB,IAAI2jE,EAAOq9E,EAAUskF,EAActkF,WACvDp9E,EAASqhK,GAAO/yP,KAAK8tB,IAAI4jE,EAAQ8uH,EAAW4yC,EAAc5yC,YACtD/uH,IAAUC,IAGZA,EAASqhK,GAAOthK,EAAQ,IAU1B,YAPmC/kG,IAAZumQ,QAAsCvmQ,IAAbwmQ,IAE1BjzK,GAAemzK,EAAc1hK,QAAUA,EAAS0hK,EAAc1hK,SAClFA,EAAS0hK,EAAc1hK,OACvBD,EAAQshK,GAAO/yP,KAAKC,MAAMyxF,EAASzR,KAG9B,CAACwR,QAAOC,SACjB,CAQO,SAAS+hK,GACdpR,EACAqR,EACAC,GAEA,MAAMC,EAAaF,GAAc,EAC3BG,EAAe7zP,KAAKC,MAAMoiP,EAAM3wJ,OAASkiK,GACzCE,EAAc9zP,KAAKC,MAAMoiP,EAAM5wJ,MAAQmiK,GAE7CvR,EAAM3wJ,OAAS1xF,KAAKC,MAAMoiP,EAAM3wJ,QAChC2wJ,EAAM5wJ,MAAQzxF,KAAKC,MAAMoiP,EAAM5wJ,OAE/B,MAAMmoH,EAASyoC,EAAMzoC,OAUrB,OALIA,EAAOtgJ,QAAUq6L,IAAgB/5C,EAAOtgJ,MAAMo4B,SAAWkoH,EAAOtgJ,MAAMm4B,SACxEmoH,EAAOtgJ,MAAMo4B,OAAS,GAAHrlG,OAAMg2P,EAAM3wJ,OAAM,MACrCkoH,EAAOtgJ,MAAMm4B,MAAQ,GAAHplG,OAAMg2P,EAAM5wJ,MAAK,QAGjC4wJ,EAAM0F,0BAA4B6L,GAC/Bh6C,EAAOloH,SAAWmiK,GAClBj6C,EAAOnoH,QAAUqiK,KACtBzR,EAAM0F,wBAA0B6L,EAChCh6C,EAAOloH,OAASmiK,EAChBj6C,EAAOnoH,MAAQqiK,EACfzR,EAAM10P,IAAIomQ,aAAaH,EAAY,EAAG,EAAGA,EAAY,EAAG,IACjD,EAGX,CAOa,MAAAI,GAAgC,WAC3C,IAAIC,GAAmB,EACvB,IACE,MAAMroQ,EAAU,CACd,WAAIouG,GAEF,OADAi6J,GAAmB,GACZ,CACT,GAGEnC,OACF1+P,OAAOo2B,iBAAiB,OAAQ,KAAM59B,GACtCwH,OAAO8xF,oBAAoB,OAAQ,KAAMt5F,GAE7C,CAAE,MAAOsI,KAGT,OAAO+/P,CACT,CAlB6C,GA8BtC,SAASC,GACdtrQ,EACAyf,GAEA,MAAMnkB,EAzOD,SAAkB4xH,EAAiBztG,GACxC,OAAO65I,GAAiBpsC,GAAI4/E,iBAAiBrtL,EAC/C,CAuOgB8rP,CAASvrQ,EAASyf,GAC1BouC,EAAUvyD,GAASA,EAAM2f,MAAM,qBACrC,OAAO4yC,GAAWA,EAAQ,QAAK/pD,CACjC,CC9RO,SAAS0nQ,GAAanjD,EAAWwD,EAAWx1M,EAAWwd,GAC5D,MAAO,CACL91B,EAAGsqN,EAAGtqN,EAAIsY,GAAKw1M,EAAG9tN,EAAIsqN,EAAGtqN,GACzBghE,EAAGspJ,EAAGtpJ,EAAI1oD,GAAKw1M,EAAG9sJ,EAAIspJ,EAAGtpJ,GAE7B,CAKO,SAAS0sM,GACdpjD,EACAwD,EACAx1M,EAAWwd,GAEX,MAAO,CACL91B,EAAGsqN,EAAGtqN,EAAIsY,GAAKw1M,EAAG9tN,EAAIsqN,EAAGtqN,GACzBghE,EAAY,WAATlrC,EAAoBxd,EAAI,GAAMgyM,EAAGtpJ,EAAI8sJ,EAAG9sJ,EAC9B,UAATlrC,EAAmBxd,EAAI,EAAIgyM,EAAGtpJ,EAAI8sJ,EAAG9sJ,EACnC1oD,EAAI,EAAIw1M,EAAG9sJ,EAAIspJ,EAAGtpJ,EAE5B,CAKO,SAAS2sM,GAAqBrjD,EAAiBwD,EAAiBx1M,EAAWwd,GAChF,MAAM83O,EAAM,CAAC5tQ,EAAGsqN,EAAG+4C,KAAMriM,EAAGspJ,EAAGi5C,MACzBsK,EAAM,CAAC7tQ,EAAG8tN,EAAGs1C,KAAMpiM,EAAG8sJ,EAAGw1C,MACzBnrP,EAAIs1P,GAAanjD,EAAIsjD,EAAKt1P,GAC1BF,EAAIq1P,GAAaG,EAAKC,EAAKv1P,GAC3BE,EAAIi1P,GAAaI,EAAK//C,EAAIx1M,GAC1BG,EAAIg1P,GAAat1P,EAAGC,EAAGE,GACvB/K,EAAIkgQ,GAAar1P,EAAGI,EAAGF,GAC7B,OAAOm1P,GAAah1P,EAAGlL,EAAG+K,EAC5B,CCUO,SAASw1P,GAAcxtC,EAAcytC,EAAejjK,GACzD,OAAOw1H,EA3CqB,SAASytC,EAAejjK,GACpD,MAAO,CACL9qG,EAAEA,GACO+tQ,EAAQA,EAAQjjK,EAAQ9qG,EAEjCguQ,QAAAA,CAASvzP,GACPqwF,EAAQrwF,CACV,EACAguK,UAAUh5B,GACM,WAAVA,EACKA,EAEQ,UAAVA,EAAoB,OAAS,QAEtCw+G,MAAMA,CAAAjuQ,EAAGzC,IACAyC,EAAIzC,EAEb2wQ,WAAWA,CAAAluQ,EAAGmuQ,IACLnuQ,EAAImuQ,EAGjB,CAsBeC,CAAsBL,EAAOjjK,GAnBnC,CACL9qG,EAAEA,GACOA,EAETguQ,QAAAA,CAASvzP,GAAI,EAEbguK,UAAUh5B,GACDA,EAETw+G,MAAMA,CAAAjuQ,EAAGzC,IACAyC,EAAIzC,EAEb2wQ,WAAWA,CAAAluQ,EAAGquQ,IACLruQ,EAOb,CAEO,SAASsuQ,GAAsBtnQ,EAA+Bg2J,GACnE,IAAIrqF,EAA4B8R,EACd,QAAdu4E,GAAqC,QAAdA,IACzBrqF,EAAQ3rE,EAAIisN,OAAOtgJ,MACnB8R,EAAW,CACT9R,EAAMo8H,iBAAiB,aACvBp8H,EAAM47L,oBAAoB,cAG5B57L,EAAMupB,YAAY,YAAa8gE,EAAW,aACzCh2J,EAAiDwnQ,kBAAoB/pL,EAE1E,CAEO,SAASgqL,GAAqBznQ,EAA+By9E,QACjD1+E,IAAb0+E,WACMz9E,EAAiDwnQ,kBACzDxnQ,EAAIisN,OAAOtgJ,MAAMupB,YAAY,YAAazX,EAAS,GAAIA,EAAS,IAEpE,CC/DA,SAASiqL,GAAWhtP,GAClB,MAAiB,UAAbA,EACK,CACLitP,QAAS/Y,GACT70L,QAAS20L,GACTlwG,UAAWmwG,IAGR,CACLgZ,QAASxY,GACTp1L,QAASA,CAAC5oD,EAAGC,IAAMD,EAAIC,EACvBotI,UAAWxlJ,GAAKA,EAEpB,CAEA,SAAS4uQ,GAAiBznQ,GAAkC,IAAlC,MAACkwD,EAAK,IAAEphB,EAAG,MAAE+H,EAAK,KAAEm5E,EAAI,MAAExkD,GAAMxrE,EACxD,MAAO,CACLkwD,MAAOA,EAAQrZ,EACf/H,IAAKA,EAAM+H,EACXm5E,KAAMA,IAASlhF,EAAMohB,EAAQ,GAAKrZ,IAAU,EAC5C20B,QAEJ,CA4CO,SAASk8L,GAAc72F,EAASs/E,EAAQ7wH,GAC7C,IAAKA,EACH,MAAO,CAACuxC,GAGV,MAAM,SAACt2J,EAAU21C,MAAOy3M,EAAY74N,IAAK84N,GAAYtoI,EAC/CzoF,EAAQs5M,EAAO76P,QACf,QAACskE,EAAA,QAAS4tM,EAAA,UAASnpH,GAAakpH,GAAWhtP,IAC3C,MAAC21C,EAAA,IAAOphB,EAAA,KAAKkhF,EAAA,MAAMxkD,GAlD3B,SAAoBqlG,EAASs/E,EAAQ7wH,GACnC,MAAM,SAAC/kH,EAAU21C,MAAOy3M,EAAY74N,IAAK84N,GAAYtoI,GAC/C,QAACkoI,EAAO,UAAEnpH,GAAakpH,GAAWhtP,GAClCs8B,EAAQs5M,EAAO76P,OAErB,IACIF,EAAGg2P,GADH,MAACl7L,EAAK,IAAEphB,EAAA,KAAKkhF,GAAQ6gD,EAGzB,GAAI7gD,EAAM,CAGR,IAFA9/D,GAASrZ,EACT/H,GAAO+H,EACFzhD,EAAI,EAAGg2P,EAAOv0M,EAAOzhD,EAAIg2P,GACvBoc,EAAQnpH,EAAU8xG,EAAOjgM,EAAQrZ,GAAOt8B,IAAYotP,EAAYC,KADjCxyQ,EAIpC86D,IACAphB,IAEFohB,GAASrZ,EACT/H,GAAO+H,EAMT,OAHI/H,EAAMohB,IACRphB,GAAO+H,GAEF,CAACqZ,QAAOphB,MAAKkhF,OAAMxkD,MAAOqlG,EAAQrlG,MAC3C,CAwBoCq8L,CAAWh3F,EAASs/E,EAAQ7wH,GAExDpgI,EAAS,GACf,IAEI9I,EAAOqlQ,EAAOqM,EAFdC,GAAS,EACTC,EAAW,KAGf,MAEMC,EAAcA,IAAMF,GAFEP,EAAQG,EAAYG,EAAW1xQ,IAA6C,IAAnCwjE,EAAQ+tM,EAAYG,GAGnFI,EAAaA,KAAOH,GAF6B,IAA7BnuM,EAAQguM,EAAUxxQ,IAAgBoxQ,EAAQI,EAAUE,EAAW1xQ,GAIzF,IAAK,IAAIhB,EAAI86D,EAAO8T,EAAO9T,EAAO96D,GAAK05C,IAAO15C,EAC5CqmQ,EAAQtL,EAAO/6P,EAAIyhD,GAEf4kN,EAAMiG,OAIVtrQ,EAAQioJ,EAAUo9G,EAAMlhP,IAEpBnkB,IAAU0xQ,IAIdC,EAASP,EAAQpxQ,EAAOuxQ,EAAYC,GAEnB,OAAbI,GAAqBC,MACvBD,EAA0C,IAA/BpuM,EAAQxjE,EAAOuxQ,GAAoBvyQ,EAAI4uE,GAGnC,OAAbgkM,GAAqBE,MACvBhpQ,EAAOlK,KAAKyyQ,GAAiB,CAACv3M,MAAO83M,EAAUl5N,IAAK15C,EAAG46H,OAAMn5E,QAAO20B,WACpEw8L,EAAW,MAEbhkM,EAAO5uE,EACP0yQ,EAAY1xQ,IAOd,OAJiB,OAAb4xQ,GACF9oQ,EAAOlK,KAAKyyQ,GAAiB,CAACv3M,MAAO83M,EAAUl5N,MAAKkhF,OAAMn5E,QAAO20B,WAG5DtsE,CACT,CAYO,SAASipQ,GAAepvO,EAAMumG,GACnC,MAAMpgI,EAAS,GACT+wK,EAAWl3I,EAAKk3I,SAEtB,IAAK,IAAI76K,EAAI,EAAGA,EAAI66K,EAAS36K,OAAQF,IAAK,CACxC,MAAMunE,EAAM+qM,GAAcz3F,EAAS76K,GAAI2jC,EAAKo3N,OAAQ7wH,GAChD3iE,EAAIrnE,QACN4J,EAAOlK,QAAQ2nE,EAEnB,CACA,OAAOz9D,CACT,CAiHA,SAASkpQ,GAAcrvO,EAAMk3I,EAAUkgF,EAAQkY,GAC7C,OAAKA,GAAmBA,EAAe9nQ,YAAe4vP,EAaxD,SAAyBp3N,EAAMk3I,EAAUkgF,EAAQkY,GAC/C,MAAMC,EAAevvO,EAAKwvO,OAAOh9C,aAC3Bi9C,EAAYC,GAAU1vO,EAAKj7B,UAC1B4qQ,cAAepd,EAAcxtP,SAAS,SAAC2lQ,IAAa1qO,EACrD8d,EAAQs5M,EAAO76P,OACf4J,EAAS,GACf,IAAIypQ,EAAYH,EACZt4M,EAAQ+/G,EAAS,GAAG//G,MACpB96D,EAAI86D,EAER,SAAS04M,EAAS13P,EAAG9K,EAAG3I,EAAGorQ,GACzB,MAAM7xM,EAAMysM,GAAY,EAAI,EAC5B,GAAIvyP,IAAM9K,EAAV,CAKA,IADA8K,GAAK2lC,EACEs5M,EAAOj/O,EAAI2lC,GAAO6qN,MACvBxwP,GAAK8lD,EAEP,KAAOm5L,EAAO/pP,EAAIywC,GAAO6qN,MACvBt7P,GAAK4wD,EAEH9lD,EAAI2lC,IAAUzwC,EAAIywC,IACpB33C,EAAOlK,KAAK,CAACk7D,MAAOh/C,EAAI2lC,EAAO/H,IAAK1oC,EAAIywC,EAAOm5E,KAAMvyH,EAAG+tE,MAAOq9L,IAC/DF,EAAYE,EACZ34M,EAAQ9pD,EAAIywC,GAEhB,CAEA,IAAK,MAAMg6H,KAAWZ,EAAU,CAC9B//G,EAAQuzM,EAAWvzM,EAAQ2gH,EAAQ3gH,MACnC,IACIsb,EADAxH,EAAOmsL,EAAOjgM,EAAQrZ,GAE1B,IAAKzhD,EAAI86D,EAAQ,EAAG96D,GAAKy7K,EAAQ/hI,IAAK15C,IAAK,CACzC,MAAMkuQ,EAAKnT,EAAO/6P,EAAIyhD,GACtB20B,EAAQi9L,GAAUJ,EAAe9nQ,WAAWb,GAAc4oQ,EAAc,CACtE9kQ,KAAM,UACNslQ,GAAI9kM,EACJm/I,GAAImgD,EACJyF,aAAc3zQ,EAAI,GAAKyhD,EACvBmyN,YAAa5zQ,EAAIyhD,EACjBy0M,mBAEE2d,GAAaz9L,EAAOm9L,IACtBC,EAAS14M,EAAO96D,EAAI,EAAGy7K,EAAQ7gD,KAAM24I,GAEvC3kM,EAAOs/L,EACPqF,EAAYn9L,CACd,CACItb,EAAQ96D,EAAI,GACdwzQ,EAAS14M,EAAO96D,EAAI,EAAGy7K,EAAQ7gD,KAAM24I,EAEzC,CAEA,OAAOzpQ,CACT,CAlESgqQ,CAAgBnwO,EAAMk3I,EAAUkgF,EAAQkY,GAFtCp4F,CAGX,CAmEA,SAASw4F,GAAU3qQ,GACjB,MAAO,CACLm4J,gBAAiBn4J,EAAQm4J,gBACzBkzG,eAAgBrrQ,EAAQqrQ,eACxBC,WAAYtrQ,EAAQsrQ,WACpBC,iBAAkBvrQ,EAAQurQ,iBAC1BC,gBAAiBxrQ,EAAQwrQ,gBACzB/N,YAAaz9P,EAAQy9P,YACrBt6E,YAAanjL,EAAQmjL,YAEzB,CAEA,SAASgoF,GAAaz9L,EAAOm9L,GAC3B,IAAKA,EACH,OAAO,EAET,MAAM1lM,EAAQ,GACR4xF,EAAW,SAASp/J,EAAKW,GAC7B,OAAKw9P,GAAoBx9P,IAGpB6sE,EAAM7kE,SAAShI,IAClB6sE,EAAMjuE,KAAKoB,GAEN6sE,EAAMvsE,QAAQN,IALZA,CAMX,EACA,OAAOmgB,KAAKC,UAAUg1D,EAAOqpF,KAAct+I,KAAKC,UAAUmyP,EAAW9zG,EACvE,CChWO,MAAM00G,GACXrzQ,WAAAA,GACE2Z,KAAK25P,SAAW,KAChB35P,KAAK45P,QAAU,IAAI36L,IACnBj/D,KAAK65P,UAAW,EAChB75P,KAAK85P,eAAY/qQ,CACnB,CAKAgrQ,OAAAA,CAAQrV,EAAOsV,EAAOhqP,EAAMrc,GAC1B,MAAMyzC,EAAY4yN,EAAM14N,UAAU3tC,GAC5BsmQ,EAAWD,EAAMz7I,SAEvBn3E,EAAUzhD,SAAQgsB,GAAMA,EAAG,CACzB+yO,QACAtuH,QAAS4jI,EAAM5jI,QACf6jI,WACAC,YAAa73P,KAAK8tB,IAAIngB,EAAOgqP,EAAM35M,MAAO45M,MAE9C,CAKAE,QAAAA,GACMn6P,KAAK25P,WAGT35P,KAAK65P,UAAW,EAEhB75P,KAAK25P,SAAW5Z,GAAiB94P,KAAKwO,QAAQ,KAC5CuK,KAAKo6P,UACLp6P,KAAK25P,SAAW,KAEZ35P,KAAK65P,UACP75P,KAAKm6P,cAGX,CAKAC,OAAAA,GAA2B,IAAnBpqP,EAAAxqB,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAO4qB,KAAKuqB,MACdja,EAAY,EAEhB1gB,KAAK45P,QAAQj0Q,SAAQ,CAACq0Q,EAAOtV,KAC3B,IAAKsV,EAAMK,UAAYL,EAAM/7N,MAAMx4C,OACjC,OAEF,MAAMw4C,EAAQ+7N,EAAM/7N,MACpB,IAEI1C,EAFAh2C,EAAI04C,EAAMx4C,OAAS,EACnB60Q,GAAO,EAGX,KAAO/0Q,GAAK,IAAKA,EACfg2C,EAAO0C,EAAM14C,GAETg2C,EAAKg/N,SACHh/N,EAAKi/N,OAASR,EAAMz7I,WAGtBy7I,EAAMz7I,SAAWhjF,EAAKi/N,QAExBj/N,EAAKk/N,KAAKzqP,GACVsqP,GAAO,IAIPr8N,EAAM14C,GAAK04C,EAAMA,EAAMx4C,OAAS,GAChCw4C,EAAM5G,OAINijO,IACF5V,EAAM4V,OACNt6P,KAAK+5P,QAAQrV,EAAOsV,EAAOhqP,EAAM,aAG9BiuB,EAAMx4C,SACTu0Q,EAAMK,SAAU,EAChBr6P,KAAK+5P,QAAQrV,EAAOsV,EAAOhqP,EAAM,YACjCgqP,EAAM5jI,SAAU,GAGlB11G,GAAaud,EAAMx4C,MAAM,IAG3Bua,KAAK85P,UAAY9pP,EAEC,IAAd0Q,IACF1gB,KAAK65P,UAAW,EAEpB,CAKAa,SAAAA,CAAUhW,GACR,MAAMiW,EAAS36P,KAAK45P,QACpB,IAAII,EAAQW,EAAOriQ,IAAIosP,GAavB,OAZKsV,IACHA,EAAQ,CACNK,SAAS,EACTjkI,SAAS,EACTn4F,MAAO,GACPqD,UAAW,CACT7E,SAAU,GACV3U,SAAU,KAGd6yO,EAAOn6P,IAAIkkP,EAAOsV,IAEbA,CACT,CAOAzrH,MAAAA,CAAOm2G,EAAO74P,EAAOC,GACnBkU,KAAK06P,UAAUhW,GAAOpjN,UAAUz1C,GAAO1G,KAAK2G,EAC9C,CAOA63B,GAAAA,CAAI+gO,EAAOzmN,GACJA,GAAUA,EAAMx4C,QAGrBua,KAAK06P,UAAUhW,GAAOzmN,MAAM94C,QAAQ84C,EACtC,CAMAyzC,GAAAA,CAAIgzK,GACF,OAAO1kP,KAAK06P,UAAUhW,GAAOzmN,MAAMx4C,OAAS,CAC9C,CAMA46D,KAAAA,CAAMqkM,GACJ,MAAMsV,EAAQh6P,KAAK45P,QAAQthQ,IAAIosP,GAC1BsV,IAGLA,EAAMK,SAAU,EAChBL,EAAM35M,MAAQjwC,KAAKuqB,MACnBq/N,EAAMz7I,SAAWy7I,EAAM/7N,MAAM7vC,QAAO,CAACw6L,EAAKhvC,IAAQv3I,KAAK+tB,IAAIw4J,EAAKhvC,EAAIghH,YAAY,GAChF56P,KAAKm6P,WACP,CAEAE,OAAAA,CAAQ3V,GACN,IAAK1kP,KAAK65P,SACR,OAAO,EAET,MAAMG,EAAQh6P,KAAK45P,QAAQthQ,IAAIosP,GAC/B,SAAKsV,GAAUA,EAAMK,SAAYL,EAAM/7N,MAAMx4C,OAI/C,CAMA2nF,IAAAA,CAAKs3K,GACH,MAAMsV,EAAQh6P,KAAK45P,QAAQthQ,IAAIosP,GAC/B,IAAKsV,IAAUA,EAAM/7N,MAAMx4C,OACzB,OAEF,MAAMw4C,EAAQ+7N,EAAM/7N,MACpB,IAAI14C,EAAI04C,EAAMx4C,OAAS,EAEvB,KAAOF,GAAK,IAAKA,EACf04C,EAAM14C,GAAG6zJ,SAEX4gH,EAAM/7N,MAAQ,GACdj+B,KAAK+5P,QAAQrV,EAAOsV,EAAO5pP,KAAKuqB,MAAO,WACzC,CAMAtiB,MAAAA,CAAOqsO,GACL,OAAO1kP,KAAK45P,QAAQ38O,OAAOynO,EAC7B,EAIF,IAAAmW,GAA+B,IAAInB,GCjNnC,MAAMrgB,GAAc,cACdyhB,GAAgB,CACpBC,QAAO,CAACryQ,EAAMw0H,EAAIskH,IACTA,EAAS,GAAMtkH,EAAKx0H,EAO7ButG,KAAAA,CAAMvtG,EAAMw0H,EAAIskH,GACd,MAAMw5B,EAAK/kK,GAAavtG,GAAQ2wP,IAC1BziC,EAAKokD,EAAGlhB,OAAS7jJ,GAAainB,GAAMm8H,IAC1C,OAAOziC,GAAMA,EAAGkjC,MACZljC,EAAGqjC,IAAI+gB,EAAIx5B,GAAQuN,YACnB7xH,CACN,EACAtyH,OAAM,CAAClC,EAAMw0H,EAAIskH,IACR94O,GAAQw0H,EAAKx0H,GAAQ84O,GAIjB,MAAMy5B,GACnB50Q,WAAAA,CAAY60Q,EAAK51Q,EAAQi6D,EAAM29D,GAC7B,MAAMmzC,EAAe/qK,EAAOi6D,GAE5B29D,EAAK9tH,GAAQ,CAAC8rQ,EAAIh+I,GAAIA,EAAImzC,EAAc6qG,EAAIxyQ,OAC5C,MAAMA,EAAO0G,GAAQ,CAAC8rQ,EAAIxyQ,KAAM2nK,EAAcnzC,IAE9Cl9G,KAAKu6P,SAAU,EACfv6P,KAAKm7P,IAAMD,EAAIvpP,IAAMmpP,GAAcI,EAAIvnQ,aAAejL,GACtDsX,KAAKo7P,QAAU/2J,GAAQ62J,EAAIvT,SAAWtjJ,GAAQ09I,OAC9C/hP,KAAKq7P,OAASh5P,KAAKC,MAAM8N,KAAKuqB,OAASugO,EAAI3yO,OAAS,IACpDvoB,KAAK46P,UAAY56P,KAAKw6P,OAASn4P,KAAKC,MAAM44P,EAAI38I,UAC9Cv+G,KAAKs7P,QAAUJ,EAAI/6I,KACnBngH,KAAKu7P,QAAUj2Q,EACf0a,KAAKw7P,MAAQj8M,EACbv/C,KAAKy7P,MAAQ/yQ,EACbsX,KAAK07P,IAAMx+I,EACXl9G,KAAK27P,eAAY5sQ,CACnB,CAEAsuC,MAAAA,GACE,OAAOr9B,KAAKu6P,OACd,CAEAxpQ,MAAAA,CAAOmqQ,EAAKh+I,EAAIltG,GACd,GAAIhQ,KAAKu6P,QAAS,CAChBv6P,KAAK+5P,SAAQ,GAEb,MAAM1pG,EAAerwJ,KAAKu7P,QAAQv7P,KAAKw7P,OACjCI,EAAU5rP,EAAOhQ,KAAKq7P,OACtBlW,EAASnlP,KAAK46P,UAAYgB,EAChC57P,KAAKq7P,OAASrrP,EACdhQ,KAAK46P,UAAYv4P,KAAKC,MAAMD,KAAK+tB,IAAI+0N,EAAQ+V,EAAI38I,WACjDv+G,KAAKw6P,QAAUoB,EACf57P,KAAKs7P,QAAUJ,EAAI/6I,KACnBngH,KAAK07P,IAAMtsQ,GAAQ,CAAC8rQ,EAAIh+I,GAAIA,EAAImzC,EAAc6qG,EAAIxyQ,OAClDsX,KAAKy7P,MAAQrsQ,GAAQ,CAAC8rQ,EAAIxyQ,KAAM2nK,EAAcnzC,IAElD,CAEAk8B,MAAAA,GACMp5I,KAAKu6P,UAEPv6P,KAAKy6P,KAAKrqP,KAAKuqB,OACf36B,KAAKu6P,SAAU,EACfv6P,KAAK+5P,SAAQ,GAEjB,CAEAU,IAAAA,CAAKzqP,GACH,MAAM4rP,EAAU5rP,EAAOhQ,KAAKq7P,OACtB98I,EAAWv+G,KAAK46P,UAChBr7M,EAAOv/C,KAAKw7P,MACZ9yQ,EAAOsX,KAAKy7P,MACZt7I,EAAOngH,KAAKs7P,MACZp+I,EAAKl9G,KAAK07P,IAChB,IAAIl6B,EAIJ,GAFAxhO,KAAKu6P,QAAU7xQ,IAASw0H,IAAOiD,GAASy7I,EAAUr9I,IAE7Cv+G,KAAKu6P,QAGR,OAFAv6P,KAAKu7P,QAAQh8M,GAAQ29D,OACrBl9G,KAAK+5P,SAAQ,GAIX6B,EAAU,EACZ57P,KAAKu7P,QAAQh8M,GAAQ72D,GAIvB84O,EAAUo6B,EAAUr9I,EAAY,EAChCijH,EAASrhH,GAAQqhH,EAAS,EAAI,EAAIA,EAASA,EAC3CA,EAASxhO,KAAKo7P,QAAQ/4P,KAAK8tB,IAAI,EAAG9tB,KAAK+tB,IAAI,EAAGoxM,KAE9CxhO,KAAKu7P,QAAQh8M,GAAQv/C,KAAKm7P,IAAIzyQ,EAAMw0H,EAAIskH,GAC1C,CAEAjgM,IAAAA,GACE,MAAMg6H,EAAWv7J,KAAK27P,YAAc37P,KAAK27P,UAAY,IACrD,OAAO,IAAIxsQ,SAAQ,CAACsrD,EAAK8/G,KACvBgB,EAASp2K,KAAK,CAACs1D,MAAK8/G,OAAK,GAE7B,CAEAw/F,OAAAA,CAAQnsP,GACN,MAAM0c,EAAS1c,EAAW,MAAQ,MAC5B2tJ,EAAWv7J,KAAK27P,WAAa,GACnC,IAAK,IAAIp2Q,EAAI,EAAGA,EAAIg2K,EAAS91K,OAAQF,IACnCg2K,EAASh2K,GAAG+kC,IAEhB,EChHa,MAAMuxO,GACnBx1Q,WAAAA,CAAYq+P,EAAOn3O,GACjBvN,KAAK04P,OAAShU,EACd1kP,KAAK87P,YAAc,IAAI78L,IACvBj/D,KAAKqc,UAAU9O,EACjB,CAEA8O,SAAAA,CAAU9O,GACR,IAAK6gD,GAAS7gD,GACZ,OAGF,MAAMwuP,EAAmBn3Q,OAAOD,KAAKs8N,GAASjmH,WACxCghK,EAAgBh8P,KAAK87P,YAE3Bl3Q,OAAO68E,oBAAoBl0D,GAAQ5nB,SAAQC,IACzC,MAAMs1Q,EAAM3tP,EAAO3nB,GACnB,IAAKwoE,GAAS8sM,GACZ,OAEF,MAAMttP,EAAW,CAAC,EAClB,IAAK,MAAMwlI,KAAU2oH,EACnBnuP,EAASwlI,GAAU8nH,EAAI9nH,IAGxB3rJ,GAAQyzQ,EAAI7pI,aAAe6pI,EAAI7pI,YAAc,CAACzrI,IAAMD,SAAS45D,IACxDA,IAAS35D,GAAQo2Q,EAActqL,IAAInyB,IACrCy8M,EAAcx7P,IAAI++C,EAAM3xC,KAE1B,GAEN,CAMAquP,eAAAA,CAAgB32Q,EAAQ61B,GACtB,MAAM9sB,EAAa8sB,EAAOltB,QACpBA,EAsGV,SAA8B3I,EAAQ+I,GACpC,IAAKA,EACH,OAEF,IAAIJ,EAAU3I,EAAO2I,QACrB,IAAKA,EAEH,YADA3I,EAAO2I,QAAUI,GAGfJ,EAAQiuQ,UAGV52Q,EAAO2I,QAAUA,EAAUrJ,OAAOsyC,OAAO,CAAC,EAAGjpC,EAAS,CAACiuQ,SAAS,EAAOC,YAAa,CAAC,KAEvF,OAAOluQ,CACT,CArHoBmuQ,CAAqB92Q,EAAQ+I,GAC7C,IAAKJ,EACH,MAAO,GAGT,MAAM45P,EAAa7nP,KAAKq8P,kBAAkBpuQ,EAASI,GAYnD,OAXIA,EAAW6tQ,SAmFnB,SAAkBrU,EAAYx2H,GAC5B,MAAMgpI,EAAU,GACV11Q,EAAOC,OAAOD,KAAK0sI,GACzB,IAAK,IAAI9rI,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAAK,CACpC,MAAM+2Q,EAAOzU,EAAWljQ,EAAKY,IACzB+2Q,GAAQA,EAAKj/N,UACfg9N,EAAQl1Q,KAAKm3Q,EAAK/6N,OAEtB,CAEA,OAAOpyC,QAAQ0oE,IAAIwiM,EACrB,CA1FMkC,CAASj3Q,EAAO2I,QAAQkuQ,YAAa9tQ,GAAYzB,MAAK,KACpDtH,EAAO2I,QAAUI,CAAA,IAChB,SAKEw5P,CACT,CAKAwU,iBAAAA,CAAkB/2Q,EAAQ61B,GACxB,MAAM6gP,EAAgBh8P,KAAK87P,YACrBjU,EAAa,GACbwS,EAAU/0Q,EAAO62Q,cAAgB72Q,EAAO62Q,YAAc,CAAC,GACvDpyQ,EAAQnF,OAAOD,KAAKw2B,GACpBnL,EAAOI,KAAKuqB,MAClB,IAAIp1C,EAEJ,IAAKA,EAAIwE,EAAMtE,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACtC,MAAMg6D,EAAOx1D,EAAMxE,GACnB,GAAuB,MAAnBg6D,EAAK/rD,OAAO,GACd,SAGF,GAAa,YAAT+rD,EAAoB,CACtBsoM,EAAW1iQ,QAAQ6a,KAAKi8P,gBAAgB32Q,EAAQ61B,IAChD,SAEF,MAAM50B,EAAQ40B,EAAOokC,GACrB,IAAIy7C,EAAYq/J,EAAQ96M,GACxB,MAAM27M,EAAMc,EAAc1jQ,IAAIinD,GAE9B,GAAIy7C,EAAW,CACb,GAAIkgK,GAAOlgK,EAAU39D,SAAU,CAE7B29D,EAAUjqG,OAAOmqQ,EAAK30Q,EAAOypB,GAC7B,SAEAgrF,EAAUo+C,SAGT8hH,GAAQA,EAAI38I,UAMjB87I,EAAQ96M,GAAQy7C,EAAY,IAAIigK,GAAUC,EAAK51Q,EAAQi6D,EAAMh5D,GAC7DshQ,EAAW1iQ,KAAK61G,IALd11G,EAAOi6D,GAAQh5D,CAMnB,CACA,OAAOshQ,CACT,CASA92P,MAAAA,CAAOzL,EAAQ61B,GACb,GAA8B,IAA1Bnb,KAAK87P,YAAYj+M,KAGnB,YADAj5D,OAAOsyC,OAAO5xC,EAAQ61B,GAIxB,MAAM0sO,EAAa7nP,KAAKq8P,kBAAkB/2Q,EAAQ61B,GAElD,OAAI0sO,EAAWpiQ,QACbo1Q,GAASl3O,IAAI3jB,KAAK04P,OAAQ7Q,IACnB,QAFT,CAIF,ECvHF,SAAS2U,GAAU7V,EAAO8V,GACxB,MAAMz8M,EAAO2mM,GAASA,EAAM14P,SAAW,CAAC,EAClCi8E,EAAUlqB,EAAKkqB,QACf/5C,OAAmBphC,IAAbixD,EAAK7vB,IAAoBssO,EAAkB,EACjDrsO,OAAmBrhC,IAAbixD,EAAK5vB,IAAoBqsO,EAAkB,EACvD,MAAO,CACLp8M,MAAO6pB,EAAU95C,EAAMD,EACvB8O,IAAKirC,EAAU/5C,EAAMC,EAEzB,CAsCA,SAASssO,GAAwBhY,EAAOiY,GACtC,MAAMh4Q,EAAO,GACPi4Q,EAAWlY,EAAMmY,uBAAuBF,GAC9C,IAAIp3Q,EAAGg2P,EAEP,IAAKh2P,EAAI,EAAGg2P,EAAOqhB,EAASn3Q,OAAQF,EAAIg2P,IAAQh2P,EAC9CZ,EAAKQ,KAAKy3Q,EAASr3Q,GAAGqvB,OAExB,OAAOjwB,CACT,CAEA,SAASm4Q,GAAWp9M,EAAOn5D,EAAOw2Q,GAAuB,IAAd9uQ,EAAAzI,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAU,CAAC,EACpD,MAAMb,EAAO+6D,EAAM/6D,KACbq4Q,EAA8B,WAAjB/uQ,EAAQ6wB,KAC3B,IAAIv5B,EAAGg2P,EAAME,EAAcwhB,EAE3B,GAAc,OAAV12Q,EAAJ,CAIA,IAAKhB,EAAI,EAAGg2P,EAAO52P,EAAKc,OAAQF,EAAIg2P,IAAQh2P,EAAG,CAE7C,GADAk2P,GAAgB92P,EAAKY,GACjBk2P,IAAiBshB,EAAS,CAC5B,GAAI9uQ,EAAQ4pE,IACV,SAEF,MAEFolM,EAAav9M,EAAMvkC,OAAOsgO,GACtBV,GAASkiB,KAAgBD,GAAyB,IAAVz2Q,GAAe+f,GAAK/f,KAAW+f,GAAK22P,MAC9E12Q,GAAS02Q,EAEb,CACA,OAAO12Q,EACT,CAgBA,SAAS22Q,GAAUvW,EAAO9gK,GACxB,MAAMpO,EAAUkvK,GAASA,EAAM14P,QAAQwpF,QACvC,OAAOA,QAAwB1oF,IAAZ0oF,QAAwC1oF,IAAf82F,EAAKnmC,KACnD,CAcA,SAASy9M,GAAiBC,EAAQC,EAAUC,GAC1C,MAAMC,EAAWH,EAAOC,KAAcD,EAAOC,GAAY,CAAC,GAC1D,OAAOE,EAASD,KAAgBC,EAASD,GAAc,CAAC,EAC1D,CAEA,SAASE,GAAoB99M,EAAO+9M,EAAQC,EAAU/pQ,GACpD,IAAK,MAAMkyF,KAAQ43K,EAAOE,wBAAwBhqQ,GAAMu2E,UAAW,CACjE,MAAM3jF,EAAQm5D,EAAMmmC,EAAKjxE,OACzB,GAAI8oP,GAAan3Q,EAAQ,IAAQm3Q,GAAYn3Q,EAAQ,EACnD,OAAOs/F,EAAKjxE,KAEhB,CAEA,OAAO,IACT,CAEA,SAASgpP,GAAatsC,EAAYhhO,GAChC,MAAM,MAACo0P,EAAOmZ,YAAah4K,GAAQyrI,EAC7B8rC,EAAS1Y,EAAMoZ,UAAYpZ,EAAMoZ,QAAU,CAAC,IAC5C,OAACpd,EAAA,OAAQ+c,EAAQ7oP,MAAO6mO,GAAgB51J,EACxCk4K,EAAQrd,EAAOE,KACfod,EAAQP,EAAO7c,KACfh7P,EAlCR,SAAqBq4Q,EAAYC,EAAYr4K,GAC3C,MAAO,GAAPn3F,OAAUuvQ,EAAWnqQ,GAAE,KAAApF,OAAIwvQ,EAAWpqQ,GAAE,KAAApF,OAAIm3F,EAAKnmC,OAASmmC,EAAKlyF,KACjE,CAgCcwqQ,CAAYzd,EAAQ+c,EAAQ53K,GAClC01J,EAAOjrP,EAAO7K,OACpB,IAAIi6D,EAEJ,IAAK,IAAIn6D,EAAI,EAAGA,EAAIg2P,IAAQh2P,EAAG,CAC7B,MAAMg2C,EAAOjrC,EAAO/K,IACb,CAACw4Q,GAAQnpP,EAAO,CAACopP,GAAQz3Q,GAASg1C,EAEzCmkB,GADmBnkB,EAAKuiO,UAAYviO,EAAKuiO,QAAU,CAAC,IACjCE,GAASb,GAAiBC,EAAQx3Q,EAAKgvB,GAC1D8qC,EAAM+7L,GAAgBl1P,EAEtBm5D,EAAM0+M,KAAOZ,GAAoB99M,EAAO+9M,GAAQ,EAAM53K,EAAKlyF,MAC3D+rD,EAAM2+M,QAAUb,GAAoB99M,EAAO+9M,GAAQ,EAAO53K,EAAKlyF,OAE1C+rD,EAAM4+M,gBAAkB5+M,EAAM4+M,cAAgB,CAAC,IACvD7iB,GAAgBl1P,CAC/B,CACF,CAEA,SAASg4Q,GAAgB7Z,EAAO9D,GAC9B,MAAMgG,EAASlC,EAAMkC,OACrB,OAAOhiQ,OAAOD,KAAKiiQ,GAAQ7hQ,QAAOa,GAAOghQ,EAAOhhQ,GAAKg7P,OAASA,IAAMz9O,OACtE,CA4BA,SAASq7P,GAAY34K,EAAM5nD,GAEzB,MAAMw9M,EAAe51J,EAAKyrI,WAAW18M,MAC/BgsO,EAAO/6J,EAAK43K,QAAU53K,EAAK43K,OAAO7c,KACxC,GAAKA,EAAL,CAIA3iN,EAAQA,GAAS4nD,EAAK86J,QACtB,IAAK,MAAMrwP,KAAU2tC,EAAO,CAC1B,MAAMm/N,EAAS9sQ,EAAOwtQ,QACtB,IAAKV,QAA2BruQ,IAAjBquQ,EAAOxc,SAAsD7xP,IAA/BquQ,EAAOxc,GAAMnF,GACxD,cAEK2hB,EAAOxc,GAAMnF,QACe1sP,IAA/BquQ,EAAOxc,GAAM0d,oBAA4EvvQ,IAA7CquQ,EAAOxc,GAAM0d,cAAc7iB,WAClE2hB,EAAOxc,GAAM0d,cAAc7iB,EAEtC,EACF,CAEA,MAAMgjB,GAAsB3/O,GAAkB,UAATA,GAA6B,SAATA,EACnD4/O,GAAmBA,CAACC,EAAQx6J,IAAWA,EAASw6J,EAAS/5Q,OAAOsyC,OAAO,CAAC,EAAGynO,GAIlE,MAAMC,GAqBnBv4Q,WAAAA,CAAYq+P,EAAOjJ,GACjBz7O,KAAK0kP,MAAQA,EACb1kP,KAAKsoP,KAAO5D,EAAM10P,IAClBgQ,KAAK4U,MAAQ6mO,EACbz7O,KAAK6+P,gBAAkB,CAAC,EACxB7+P,KAAK69P,YAAc79P,KAAK8+P,UACxB9+P,KAAK++P,MAAQ/+P,KAAK69P,YAAYlqQ,KAC9BqM,KAAK/R,aAAUc,EAEfiR,KAAK0xP,UAAW,EAChB1xP,KAAKg/P,WAAQjwQ,EACbiR,KAAKi/P,iBAAclwQ,EACnBiR,KAAKk/P,oBAAiBnwQ,EACtBiR,KAAKm/P,gBAAapwQ,EAClBiR,KAAKo/P,gBAAarwQ,EAClBiR,KAAKq/P,qBAAsB,EAC3Br/P,KAAKs/P,oBAAqB,EAC1Bt/P,KAAKu/P,cAAWxwQ,EAChBiR,KAAKw/P,UAAY,GACjBx/P,KAAKy/P,8BAAgCA,mBACrCz/P,KAAK0/P,2BAA6BA,gBAElC1/P,KAAK2e,YACP,CAEAA,UAAAA,GACE,MAAMknE,EAAO7lF,KAAK69P,YAClB79P,KAAKqc,YACLrc,KAAK2/P,aACL95K,EAAK+5K,SAAW1C,GAAUr3K,EAAK43K,OAAQ53K,GACvC7lF,KAAK6/P,cAED7/P,KAAK/R,QAAQ2kC,OAAS5yB,KAAK0kP,MAAMob,gBAAgB,WACnDtxQ,QAAQC,KAAK,qKAEjB,CAEAsxQ,WAAAA,CAAYtkB,GACNz7O,KAAK4U,QAAU6mO,GACjB+iB,GAAYx+P,KAAK69P,aAEnB79P,KAAK4U,MAAQ6mO,CACf,CAEAkkB,UAAAA,GACE,MAAMjb,EAAQ1kP,KAAK0kP,MACb7+J,EAAO7lF,KAAK69P,YACZ1tJ,EAAUnwG,KAAKggQ,aAEfC,EAAWA,CAACrf,EAAM53P,EAAGghE,EAAGn8D,IAAe,MAAT+yP,EAAe53P,EAAa,MAAT43P,EAAe/yP,EAAIm8D,EAEpEk2M,EAAMr6K,EAAKs6K,QAAUllB,GAAe9qI,EAAQgwJ,QAAS5B,GAAgB7Z,EAAO,MAC5E0b,EAAMv6K,EAAKw6K,QAAUplB,GAAe9qI,EAAQkwJ,QAAS9B,GAAgB7Z,EAAO,MAC5E4b,EAAMz6K,EAAK06K,QAAUtlB,GAAe9qI,EAAQowJ,QAAShC,GAAgB7Z,EAAO,MAC5EwB,EAAYrgK,EAAKqgK,UACjBsa,EAAM36K,EAAK46K,QAAUR,EAAS/Z,EAAWga,EAAKE,EAAKE,GACnDI,EAAM76K,EAAK86K,QAAUV,EAAS/Z,EAAWka,EAAKF,EAAKI,GACzDz6K,EAAKq7J,OAASlhP,KAAK4gQ,cAAcV,GACjCr6K,EAAKs7J,OAASnhP,KAAK4gQ,cAAcR,GACjCv6K,EAAKg7K,OAAS7gQ,KAAK4gQ,cAAcN,GACjCz6K,EAAK66J,OAAS1gP,KAAK4gQ,cAAcJ,GACjC36K,EAAK43K,OAASz9P,KAAK4gQ,cAAcF,EACnC,CAEAV,UAAAA,GACE,OAAOhgQ,KAAK0kP,MAAMnlP,KAAKomP,SAAS3lP,KAAK4U,MACvC,CAEAkqP,OAAAA,GACE,OAAO9+P,KAAK0kP,MAAMoc,eAAe9gQ,KAAK4U,MACxC,CAMAgsP,aAAAA,CAAcG,GACZ,OAAO/gQ,KAAK0kP,MAAMkC,OAAOma,EAC3B,CAKAC,cAAAA,CAAera,GACb,MAAM9gK,EAAO7lF,KAAK69P,YAClB,OAAOlX,IAAU9gK,EAAK66J,OAClB76J,EAAK43K,OACL53K,EAAK66J,MACX,CAEAphE,KAAAA,GACEt/K,KAAKo6P,QAAQ,QACf,CAKAx2B,QAAAA,GACE,MAAM/9I,EAAO7lF,KAAK69P,YACd79P,KAAKg/P,OACPrf,GAAoB3/O,KAAKg/P,MAAOh/P,MAE9B6lF,EAAK+5K,UACPpB,GAAY34K,EAEhB,CAKAo7K,UAAAA,GACE,MAAM9wJ,EAAUnwG,KAAKggQ,aACfzgQ,EAAO4wG,EAAQ5wG,OAAS4wG,EAAQ5wG,KAAO,IACvCy/P,EAAQh/P,KAAKg/P,MAMnB,GAAI5wM,GAAS7uD,GACXS,KAAKg/P,MA9QX,SAAkCz/P,GAChC,MAAM5a,EAAOC,OAAOD,KAAK4a,GACnB2hQ,EAAQ,IAAI15Q,MAAM7C,EAAKc,QAC7B,IAAIF,EAAGg2P,EAAM31P,EACb,IAAKL,EAAI,EAAGg2P,EAAO52P,EAAKc,OAAQF,EAAIg2P,IAAQh2P,EAC1CK,EAAMjB,EAAKY,GACX27Q,EAAM37Q,GAAK,CACTyD,EAAGpD,EACHokE,EAAGzqD,EAAK3Z,IAGZ,OAAOs7Q,CACT,CAkQmBC,CAAyB5hQ,QACjC,GAAIy/P,IAAUz/P,EAAM,CACzB,GAAIy/P,EAAO,CAETrf,GAAoBqf,EAAOh/P,MAE3B,MAAM6lF,EAAO7lF,KAAK69P,YAClBW,GAAY34K,GACZA,EAAK86J,QAAU,GAEbphP,GAAQ3a,OAAOw8Q,aAAa7hQ,IrBnQ/B,SAA2B9U,EAAOg8C,GACnCh8C,EAAMo1P,SACRp1P,EAAMo1P,SAASv+M,UAAUn8C,KAAKshD,IAIhC7hD,OAAOoB,eAAeyE,EAAO,WAAY,CACvCjE,cAAc,EACdtB,YAAY,EACZqB,MAAO,CACL+6C,UAAW,CAACmF,MAIhBi5M,GAAY/5P,SAASC,IACnB,MAAM0kC,EAAS,UAAYiyN,GAAY32P,GACjC2nD,EAAO9iD,EAAM7E,GAEnBhB,OAAOoB,eAAeyE,EAAO7E,EAAK,CAChCY,cAAc,EACdtB,YAAY,EACZqB,KAAAA,GAAe,QAAAqlI,EAAApmI,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAAokI,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJtsF,EAAIssF,GAAAtmI,UAAAsmI,GACX,MAAMrxE,EAAMlN,EAAKnoD,MAAM4a,KAAMw/B,GAQ7B,OANA/0C,EAAMo1P,SAASv+M,UAAU37C,SAASlB,IACF,oBAAnBA,EAAO6lC,IAChB7lC,EAAO6lC,MAAWkV,MAIfib,CACT,GACA,IAEN,CqBkOQ4mN,CAAkB9hQ,EAAMS,MAE1BA,KAAKw/P,UAAY,GACjBx/P,KAAKg/P,MAAQz/P,EAEjB,CAEAsgQ,WAAAA,GACE,MAAMh6K,EAAO7lF,KAAK69P,YAElB79P,KAAKihQ,aAEDjhQ,KAAKy/P,qBACP55K,EAAKsqB,QAAU,IAAInwG,KAAKy/P,mBAE5B,CAEA6B,qBAAAA,CAAsBC,GACpB,MAAM17K,EAAO7lF,KAAK69P,YACZ1tJ,EAAUnwG,KAAKggQ,aACrB,IAAIwB,GAAe,EAEnBxhQ,KAAKihQ,aAGL,MAAMQ,EAAa57K,EAAK+5K,SACxB/5K,EAAK+5K,SAAW1C,GAAUr3K,EAAK43K,OAAQ53K,GAGnCA,EAAKnmC,QAAUywD,EAAQzwD,QACzB8hN,GAAe,EAEfhD,GAAY34K,GACZA,EAAKnmC,MAAQywD,EAAQzwD,OAKvB1/C,KAAK0hQ,gBAAgBH,IAGjBC,GAAgBC,IAAe57K,EAAK+5K,WACtChC,GAAa59P,KAAM6lF,EAAK86J,QAE5B,CAMAtkO,SAAAA,GACE,MAAM9O,EAASvN,KAAK0kP,MAAMn3O,OACpBo0P,EAAYp0P,EAAOq0P,iBAAiB5hQ,KAAK++P,OACzChQ,EAASxhP,EAAOs0P,gBAAgB7hQ,KAAKggQ,aAAc2B,GAAW,GACpE3hQ,KAAK/R,QAAUsf,EAAOu0P,eAAe/S,EAAQ/uP,KAAK07M,cAClD17M,KAAK0xP,SAAW1xP,KAAK/R,QAAQu4P,QAC7BxmP,KAAK6+P,gBAAkB,CAAC,CAC1B,CAMAp3P,KAAAA,CAAM44C,EAAOrZ,GACX,MAAO62N,YAAah4K,EAAMm5K,MAAOz/P,GAAQS,MACnC,OAAC0gP,EAAA,SAAQkf,GAAY/5K,EACrBk4K,EAAQrd,EAAOE,KAErB,IAEIr7P,EAAGq0J,EAAKtpJ,EAFRyxQ,EAAmB,IAAV1hN,GAAerZ,IAAUznC,EAAK9Z,QAAgBogG,EAAK46J,QAC5DtsL,EAAO9T,EAAQ,GAAKwlC,EAAK86J,QAAQtgM,EAAQ,GAG7C,IAAsB,IAAlBrgD,KAAK0xP,SACP7rK,EAAK86J,QAAUphP,EACfsmF,EAAK46J,SAAU,EACfnwP,EAASiP,MACJ,CAEHjP,EADE7I,GAAQ8X,EAAK8gD,IACNrgD,KAAKgiQ,eAAen8K,EAAMtmF,EAAM8gD,EAAOrZ,GACvConB,GAAS7uD,EAAK8gD,IACdrgD,KAAKiiQ,gBAAgBp8K,EAAMtmF,EAAM8gD,EAAOrZ,GAExChnC,KAAKkiQ,mBAAmBr8K,EAAMtmF,EAAM8gD,EAAOrZ,GAGtD,MAAMm7N,EAA6BA,IAAqB,OAAfvoH,EAAImkH,IAAoB5pM,GAAQylF,EAAImkH,GAAS5pM,EAAK4pM,GAC3F,IAAKx4Q,EAAI,EAAGA,EAAIyhD,IAASzhD,EACvBsgG,EAAK86J,QAAQp7P,EAAI86D,GAASu5F,EAAMtpJ,EAAO/K,GACnCw8Q,IACEI,MACFJ,GAAS,GAEX5tM,EAAOylF,GAGX/zD,EAAK46J,QAAUshB,EAGbnC,GACFhC,GAAa59P,KAAM1P,EAEvB,CAaA4xQ,kBAAAA,CAAmBr8K,EAAMtmF,EAAM8gD,EAAOrZ,GACpC,MAAM,OAAC05M,EAAA,OAAQ+c,GAAU53K,EACnBk4K,EAAQrd,EAAOE,KACfod,EAAQP,EAAO7c,KACf/pN,EAAS6pN,EAAO0hB,YAChBC,EAAc3hB,IAAW+c,EACzBntQ,EAAS,IAAI9I,MAAMw/C,GACzB,IAAIzhD,EAAGg2P,EAAM3mO,EAEb,IAAKrvB,EAAI,EAAGg2P,EAAOv0M,EAAOzhD,EAAIg2P,IAAQh2P,EACpCqvB,EAAQrvB,EAAI86D,EACZ/vD,EAAO/K,GAAK,CACV,CAACw4Q,GAAQsE,GAAe3hB,EAAOj5O,MAAMovB,EAAOjiB,GAAQA,GACpD,CAACopP,GAAQP,EAAOh2P,MAAMlI,EAAKqV,GAAQA,IAGvC,OAAOtkB,CACT,CAaA0xQ,cAAAA,CAAen8K,EAAMtmF,EAAM8gD,EAAOrZ,GAChC,MAAM,OAACk6M,EAAA,OAAQC,GAAUt7J,EACnBv1F,EAAS,IAAI9I,MAAMw/C,GACzB,IAAIzhD,EAAGg2P,EAAM3mO,EAAO2mB,EAEpB,IAAKh2C,EAAI,EAAGg2P,EAAOv0M,EAAOzhD,EAAIg2P,IAAQh2P,EACpCqvB,EAAQrvB,EAAI86D,EACZ9kB,EAAOh8B,EAAKqV,GACZtkB,EAAO/K,GAAK,CACVyD,EAAGk4P,EAAOz5O,MAAM8zB,EAAK,GAAI3mB,GACzBo1C,EAAGm3L,EAAO15O,MAAM8zB,EAAK,GAAI3mB,IAG7B,OAAOtkB,CACT,CAaA2xQ,eAAAA,CAAgBp8K,EAAMtmF,EAAM8gD,EAAOrZ,GACjC,MAAM,OAACk6M,EAAA,OAAQC,GAAUt7J,GACnB,SAACy8K,EAAW,aAAKC,EAAW,KAAOviQ,KAAK0xP,SACxCphQ,EAAS,IAAI9I,MAAMw/C,GACzB,IAAIzhD,EAAGg2P,EAAM3mO,EAAO2mB,EAEpB,IAAKh2C,EAAI,EAAGg2P,EAAOv0M,EAAOzhD,EAAIg2P,IAAQh2P,EACpCqvB,EAAQrvB,EAAI86D,EACZ9kB,EAAOh8B,EAAKqV,GACZtkB,EAAO/K,GAAK,CACVyD,EAAGk4P,EAAOz5O,MAAM00O,GAAiB5gN,EAAM+mO,GAAW1tP,GAClDo1C,EAAGm3L,EAAO15O,MAAM00O,GAAiB5gN,EAAMgnO,GAAW3tP,IAGtD,OAAOtkB,CACT,CAKAkyQ,SAAAA,CAAU5tP,GACR,OAAO5U,KAAK69P,YAAYld,QAAQ/rO,EAClC,CAKA6tP,cAAAA,CAAe7tP,GACb,OAAO5U,KAAK69P,YAAYt+P,KAAKqV,EAC/B,CAKAkoP,UAAAA,CAAWnW,EAAOr2P,EAAQwuB,GACxB,MAAM4lO,EAAQ1kP,KAAK0kP,MACb7+J,EAAO7lF,KAAK69P,YACZt3Q,EAAQ+J,EAAOq2P,EAAM/F,MAK3B,OAAOkc,GAJO,CACZn4Q,KAAM+3Q,GAAwBhY,GAAO,GACrCvpO,OAAQ7qB,EAAOwtQ,QAAQnX,EAAM/F,MAAM0d,eAEZ/3Q,EAAOs/F,EAAKjxE,MAAO,CAACkK,QAC/C,CAKA4jP,qBAAAA,CAAsBrsK,EAAOswJ,EAAOr2P,EAAQovD,GAC1C,MAAMijN,EAAcryQ,EAAOq2P,EAAM/F,MACjC,IAAIr6P,EAAwB,OAAhBo8Q,EAAuBxgM,IAAMwgM,EACzC,MAAMxnP,EAASukC,GAASpvD,EAAOwtQ,QAAQnX,EAAM/F,MACzClhM,GAASvkC,IACXukC,EAAMvkC,OAASA,EACf50B,EAAQu2Q,GAAWp9M,EAAOijN,EAAa3iQ,KAAK69P,YAAYjpP,QAE1DyhF,EAAMlmE,IAAM9tB,KAAK8tB,IAAIkmE,EAAMlmE,IAAK5pC,GAChC8vG,EAAMjmE,IAAM/tB,KAAK+tB,IAAIimE,EAAMjmE,IAAK7pC,EAClC,CAKAq8Q,SAAAA,CAAUjc,EAAOkc,GACf,MAAMh9K,EAAO7lF,KAAK69P,YACZld,EAAU96J,EAAK86J,QACfohB,EAASl8K,EAAK46J,SAAWkG,IAAU9gK,EAAK66J,OACxCnF,EAAOoF,EAAQl7P,OACfq9Q,EAAa9iQ,KAAKghQ,eAAera,GACjCjnM,EA3YUqjN,EAACF,EAAUh9K,EAAM6+J,IAAUme,IAAah9K,EAAK0oI,QAAU1oI,EAAK+5K,UAC3E,CAACj7Q,KAAM+3Q,GAAwBhY,GAAO,GAAOvpO,OAAQ,MA0YxC4nP,CAAYF,EAAUh9K,EAAM7lF,KAAK0kP,OACzCruJ,EAAQ,CAAClmE,IAAK1V,OAAOmiO,kBAAmBxsN,IAAK3V,OAAOuoP,oBACnD7yO,IAAK8yO,EAAU7yO,IAAK8yO,GApf/B,SAAuBvc,GACrB,MAAM,IAACx2N,EAAG,IAAEC,EAAG,WAAEywN,EAAU,WAAEC,GAAc6F,EAAM5F,gBACjD,MAAO,CACL5wN,IAAK0wN,EAAa1wN,EAAM1V,OAAOuoP,kBAC/B5yO,IAAK0wN,EAAa1wN,EAAM3V,OAAOmiO,kBAEnC,CA8e2CmE,CAAc+hB,GACrD,IAAIv9Q,EAAG+K,EAEP,SAAS6yQ,IACP7yQ,EAASqwP,EAAQp7P,GACjB,MAAM03Q,EAAa3sQ,EAAOwyQ,EAAWliB,MACrC,OAAQ7F,GAASzqP,EAAOq2P,EAAM/F,QAAUqiB,EAAWhG,GAAciG,EAAWjG,CAC9E,CAEA,IAAK13Q,EAAI,EAAGA,EAAIg2P,IACV4nB,MAGJnjQ,KAAK0iQ,sBAAsBrsK,EAAOswJ,EAAOr2P,EAAQovD,IAC7CqiN,MALkBx8Q,GAUxB,GAAIw8Q,EAEF,IAAKx8Q,EAAIg2P,EAAO,EAAGh2P,GAAK,IAAKA,EAC3B,IAAI49Q,IAAJ,CAGAnjQ,KAAK0iQ,sBAAsBrsK,EAAOswJ,EAAOr2P,EAAQovD,GACjD,MAGJ,OAAO22C,CACT,CAEA+sK,kBAAAA,CAAmBzc,GACjB,MAAMr2P,EAAS0P,KAAK69P,YAAYld,QAC1BxlO,EAAS,GACf,IAAI51B,EAAGg2P,EAAMh1P,EAEb,IAAKhB,EAAI,EAAGg2P,EAAOjrP,EAAO7K,OAAQF,EAAIg2P,IAAQh2P,EAC5CgB,EAAQ+J,EAAO/K,GAAGohQ,EAAM/F,MACpB7F,GAASx0P,IACX40B,EAAOh2B,KAAKoB,GAGhB,OAAO40B,CACT,CAMAkoP,cAAAA,GACE,OAAO,CACT,CAKAC,gBAAAA,CAAiB1uP,GACf,MAAMixE,EAAO7lF,KAAK69P,YACZnd,EAAS76J,EAAK66J,OACd+c,EAAS53K,EAAK43K,OACdntQ,EAAS0P,KAAKwiQ,UAAU5tP,GAC9B,MAAO,CACLmiB,MAAO2pN,EAAS,GAAKA,EAAO6iB,iBAAiBjzQ,EAAOowP,EAAOE,OAAS,GACpEr6P,MAAOk3Q,EAAS,GAAKA,EAAO8F,iBAAiBjzQ,EAAOmtQ,EAAO7c,OAAS,GAExE,CAKAwZ,OAAAA,CAAQt7O,GACN,MAAM+mE,EAAO7lF,KAAK69P,YAClB79P,KAAKjP,OAAO+tB,GAAQ,WACpB+mE,EAAK29K,MA9oBT,SAAgBj9Q,GACd,IAAI+a,EAAGzT,EAAGuT,EAAGxT,EAWb,OATIwgE,GAAS7nE,IACX+a,EAAI/a,EAAMuzG,IACVjsG,EAAItH,EAAM8G,MACV+T,EAAI7a,EAAMs3I,OACVjwI,EAAIrH,EAAM6G,MAEVkU,EAAIzT,EAAIuT,EAAIxT,EAAIrH,EAGX,CACLuzG,IAAKx4F,EACLjU,MAAOQ,EACPgwI,OAAQz8H,EACRhU,KAAMQ,EACN8tE,UAAoB,IAAVn1E,EAEd,CA2nBiBk9Q,CAAOxoB,GAAej7O,KAAK/R,QAAQ+5P,KA7pBpD,SAAqB9G,EAAQC,EAAQsb,GACnC,IAAwB,IAApBA,EACF,OAAO,EAET,MAAMzzQ,EAAIwzQ,GAAUtb,EAAQub,GACtBzyM,EAAIwyM,GAAUrb,EAAQsb,GAE5B,MAAO,CACL3iK,IAAK9vC,EAAE/qB,IACP5xC,MAAOrE,EAAEi2C,IACT4+F,OAAQ7zE,EAAE3J,MACVjzD,KAAMpE,EAAEq3D,MAEZ,CAgpB0DqjN,CAAY79K,EAAKq7J,OAAQr7J,EAAKs7J,OAAQnhP,KAAKqjQ,mBACnG,CAKAtyQ,MAAAA,CAAO+tB,GAAO,CAEdw7O,IAAAA,GACE,MAAMtqQ,EAAMgQ,KAAKsoP,KACX5D,EAAQ1kP,KAAK0kP,MACb7+J,EAAO7lF,KAAK69P,YACZ/wQ,EAAW+4F,EAAKtmF,MAAQ,GACxB8lF,EAAOq/J,EAAMif,UACbtmO,EAAS,GACTgjB,EAAQrgD,KAAKm/P,YAAc,EAC3Bn4N,EAAQhnC,KAAKo/P,YAAetyQ,EAASrH,OAAS46D,EAC9CymM,EAA0B9mP,KAAK/R,QAAQ64P,wBAC7C,IAAIvhQ,EAMJ,IAJIsgG,EAAKsqB,SACPtqB,EAAKsqB,QAAQmqJ,KAAKtqQ,EAAKq1F,EAAMhlC,EAAOrZ,GAGjCzhD,EAAI86D,EAAO96D,EAAI86D,EAAQrZ,IAASzhD,EAAG,CACtC,MAAM0F,EAAU6B,EAASvH,GACrB0F,EAAQsjO,SAGRtjO,EAAQoyC,QAAUypN,EACpBzpN,EAAOl4C,KAAK8F,GAEZA,EAAQqvQ,KAAKtqQ,EAAKq1F,GAEtB,CAEA,IAAK9/F,EAAI,EAAGA,EAAI83C,EAAO53C,SAAUF,EAC/B83C,EAAO93C,GAAG+0Q,KAAKtqQ,EAAKq1F,EAExB,CASAmxK,QAAAA,CAAS5hP,EAAOyoB,GACd,MAAMve,EAAOue,EAAS,SAAW,UACjC,YAAiBtuC,IAAV6lB,GAAuB5U,KAAK69P,YAAY1tJ,QAC3CnwG,KAAK4jQ,6BAA6B9kP,GAClC9e,KAAK6jQ,0BAA0BjvP,GAAS,EAAGkK,EACjD,CAKA48L,UAAAA,CAAW9mM,EAAOyoB,EAAQve,GACxB,MAAMqxF,EAAUnwG,KAAKggQ,aACrB,IAAIlsO,EACJ,GAAIlf,GAAS,GAAKA,EAAQ5U,KAAK69P,YAAYt+P,KAAK9Z,OAAQ,CACtD,MAAMwF,EAAU+U,KAAK69P,YAAYt+P,KAAKqV,GACtCkf,EAAU7oC,EAAQs0Q,WACft0Q,EAAQs0Q,SA3jBjB,SAA2BzmI,EAAQlkH,EAAO3pB,GACxC,OAAO4E,GAAcipI,EAAQ,CAC3Bz7F,QAAQ,EACRymO,UAAWlvP,EACXtkB,YAAQvB,EACRrC,SAAKqC,EACL9D,UACA2pB,QACAkK,KAAM,UACNnrB,KAAM,QAEV,CAgjB4BowQ,CAAkB/jQ,KAAK07M,aAAc9mM,EAAO3pB,IAClE6oC,EAAQxjC,OAAS0P,KAAKwiQ,UAAU5tP,GAChCkf,EAAQpnC,IAAMyjH,EAAQ5wG,KAAKqV,GAC3Bkf,EAAQlf,MAAQkf,EAAQgwO,UAAYlvP,OAEpCkf,EAAU9zB,KAAKu/P,WACZv/P,KAAKu/P,SA9kBd,SAA8BzmI,EAAQlkH,GACpC,OAAO/kB,GAAcipI,EACnB,CACEz7F,QAAQ,EACR8yE,aAASphH,EACT0sP,aAAc7mO,EACdA,QACAkK,KAAM,UACNnrB,KAAM,WAGZ,CAmkByBqwQ,CAAqBhkQ,KAAK0kP,MAAMhpC,aAAc17M,KAAK4U,QACtEkf,EAAQq8E,QAAUA,EAClBr8E,EAAQlf,MAAQkf,EAAQ2nN,aAAez7O,KAAK4U,MAK9C,OAFAkf,EAAQuJ,SAAWA,EACnBvJ,EAAQhV,KAAOA,EACRgV,CACT,CAMA8vO,4BAAAA,CAA6B9kP,GAC3B,OAAO9e,KAAKikQ,uBAAuBjkQ,KAAKy/P,mBAAmB3rQ,GAAIgrB,EACjE,CAOA+kP,yBAAAA,CAA0BjvP,EAAOkK,GAC/B,OAAO9e,KAAKikQ,uBAAuBjkQ,KAAK0/P,gBAAgB5rQ,GAAIgrB,EAAMlK,EACpE,CAKAqvP,sBAAAA,CAAuB/4Q,GAAsC,IAAzB4zB,EAAAt5B,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAO,UAAWovB,EAAKpvB,UAAAC,OAAA,EAAAD,UAAA,QAAAuJ,EACzD,MAAMsuC,EAAkB,WAATve,EACTs0C,EAAQpzD,KAAK6+P,gBACbnoP,EAAWxrB,EAAc,IAAM4zB,EAC/B6/O,EAASvrM,EAAM18C,GACf6yG,EAAUvpH,KAAKq/P,qBAAuBlyE,GAAQv4K,GACpD,GAAI+pP,EACF,OAAOD,GAAiBC,EAAQp1I,GAElC,MAAMh8G,EAASvN,KAAK0kP,MAAMn3O,OACpBo0P,EAAYp0P,EAAO22P,wBAAwBlkQ,KAAK++P,MAAO7zQ,GACvD47L,EAAWzpJ,EAAS,IAAA3uC,OAAIxD,EAAY,SAAQ,QAASA,EAAa,IAAM,CAACA,EAAa,IACtF6jQ,EAASxhP,EAAOs0P,gBAAgB7hQ,KAAKggQ,aAAc2B,GACnD3sI,EAAQpwI,OAAOD,KAAKs8N,GAASn0N,SAAS5B,IAItCiwB,EAAS5N,EAAO42P,oBAAoBpV,EAAQ/5H,GADlClhG,IAAM9zB,KAAK07M,WAAW9mM,EAAOyoB,EAAQve,IACagoK,GAalE,OAXI3rK,EAAO+gP,UAGT/gP,EAAO+gP,QAAU3yI,EAKjBn2D,EAAM18C,GAAY9xB,OAAO24O,OAAOmhC,GAAiBvjP,EAAQouG,KAGpDpuG,CACT,CAMAipP,kBAAAA,CAAmBxvP,EAAOgoB,EAAYS,GACpC,MAAMqnN,EAAQ1kP,KAAK0kP,MACbtxL,EAAQpzD,KAAK6+P,gBACbnoP,EAAW,aAAAhoB,OAAakuC,GACxB+hO,EAASvrM,EAAM18C,GACrB,GAAIioP,EACF,OAAOA,EAET,IAAI1wQ,EACJ,IAAgC,IAA5By2P,EAAMz2P,QAAQ+sG,UAAqB,CACrC,MAAMztF,EAASvN,KAAK0kP,MAAMn3O,OACpBo0P,EAAYp0P,EAAO82P,0BAA0BrkQ,KAAK++P,MAAOniO,GACzDmyN,EAASxhP,EAAOs0P,gBAAgB7hQ,KAAKggQ,aAAc2B,GACzD1zQ,EAAUsf,EAAOu0P,eAAe/S,EAAQ/uP,KAAK07M,WAAW9mM,EAAOyoB,EAAQT,IAEzE,MAAMirN,EAAa,IAAIgU,GAAWnX,EAAOz2P,GAAWA,EAAQ45P,YAI5D,OAHI55P,GAAWA,EAAQkhQ,aACrB/7L,EAAM18C,GAAY9xB,OAAO24O,OAAOsqB,IAE3BA,CACT,CAMAyc,gBAAAA,CAAiBr2Q,GACf,GAAKA,EAAQiuQ,QAGb,OAAOl8P,KAAKk/P,iBAAmBl/P,KAAKk/P,eAAiBt6Q,OAAOsyC,OAAO,CAAC,EAAGjpC,GACzE,CAMAs2Q,cAAAA,CAAezlP,EAAM0lP,GACnB,OAAQA,GAAiB/F,GAAmB3/O,IAAS9e,KAAK0kP,MAAM+f,mBAClE,CAKAC,iBAAAA,CAAkBrkN,EAAOvhC,GACvB,MAAM6lP,EAAY3kQ,KAAK6jQ,0BAA0BxjN,EAAOvhC,GAClD8lP,EAA0B5kQ,KAAKk/P,eAC/BsF,EAAgBxkQ,KAAKskQ,iBAAiBK,GACtCJ,EAAiBvkQ,KAAKukQ,eAAezlP,EAAM0lP,IAAmBA,IAAkBI,EAEtF,OADA5kQ,KAAK6kQ,oBAAoBL,EAAe1lP,EAAM6lP,GACvC,CAACH,gBAAeD,iBACzB,CAMAO,aAAAA,CAAc75Q,EAAS2pB,EAAOy8G,EAAYvyG,GACpC2/O,GAAmB3/O,GACrBl6B,OAAOsyC,OAAOjsC,EAASomI,GAEvBrxH,KAAKokQ,mBAAmBxvP,EAAOkK,GAAM/tB,OAAO9F,EAASomI,EAEzD,CAMAwzI,mBAAAA,CAAoBL,EAAe1lP,EAAMzwB,GACnCm2Q,IAAkB/F,GAAmB3/O,IACvC9e,KAAKokQ,wBAAmBr1Q,EAAW+vB,GAAM/tB,OAAOyzQ,EAAen2Q,EAEnE,CAKA02Q,SAAAA,CAAU95Q,EAAS2pB,EAAOkK,EAAMue,GAC9BpyC,EAAQoyC,OAASA,EACjB,MAAMpvC,EAAU+R,KAAKw2P,SAAS5hP,EAAOyoB,GACrCr9B,KAAKokQ,mBAAmBxvP,EAAOkK,EAAMue,GAAQtsC,OAAO9F,EAAS,CAG3DgD,SAAWovC,GAAUr9B,KAAKskQ,iBAAiBr2Q,IAAaA,GAE5D,CAEA+2Q,gBAAAA,CAAiB/5Q,EAASwwP,EAAc7mO,GACtC5U,KAAK+kQ,UAAU95Q,EAAS2pB,EAAO,UAAU,EAC3C,CAEAqwP,aAAAA,CAAch6Q,EAASwwP,EAAc7mO,GACnC5U,KAAK+kQ,UAAU95Q,EAAS2pB,EAAO,UAAU,EAC3C,CAKAswP,wBAAAA,GACE,MAAMj6Q,EAAU+U,KAAK69P,YAAY1tJ,QAE7BllH,GACF+U,KAAK+kQ,UAAU95Q,OAAS8D,EAAW,UAAU,EAEjD,CAKAo2Q,qBAAAA,GACE,MAAMl6Q,EAAU+U,KAAK69P,YAAY1tJ,QAE7BllH,GACF+U,KAAK+kQ,UAAU95Q,OAAS8D,EAAW,UAAU,EAEjD,CAKA2yQ,eAAAA,CAAgBH,GACd,MAAMhiQ,EAAOS,KAAKg/P,MACZlyQ,EAAWkT,KAAK69P,YAAYt+P,KAGlC,IAAK,MAAO+qB,EAAQk1M,EAAMC,KAASz/N,KAAKw/P,UACtCx/P,KAAKsqB,GAAQk1M,EAAMC,GAErBz/N,KAAKw/P,UAAY,GAEjB,MAAM4F,EAAUt4Q,EAASrH,OACnB4/Q,EAAU9lQ,EAAK9Z,OACfuhD,EAAQ3kC,KAAK8tB,IAAIk1O,EAASD,GAE5Bp+N,GAKFhnC,KAAKyH,MAAM,EAAGu/B,GAGZq+N,EAAUD,EACZplQ,KAAKslQ,gBAAgBF,EAASC,EAAUD,EAAS7D,GACxC8D,EAAUD,GACnBplQ,KAAKulQ,gBAAgBF,EAASD,EAAUC,EAE5C,CAKAC,eAAAA,CAAgBjlN,EAAOrZ,GAAgC,IAAzBu6N,IAAA/7Q,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,KAAAA,UAAA,GAC5B,MAAMqgG,EAAO7lF,KAAK69P,YACZt+P,EAAOsmF,EAAKtmF,KACZ0/B,EAAMohB,EAAQrZ,EACpB,IAAIzhD,EAEJ,MAAM0lJ,EAAQ9jJ,IAEZ,IADAA,EAAI1B,QAAUuhD,EACTzhD,EAAI4B,EAAI1B,OAAS,EAAGF,GAAK05C,EAAK15C,IACjC4B,EAAI5B,GAAK4B,EAAI5B,EAAIyhD,EACnB,EAIF,IAFAikG,EAAK1rI,GAEAha,EAAI86D,EAAO96D,EAAI05C,IAAO15C,EACzBga,EAAKha,GAAK,IAAIya,KAAK0/P,gBAGjB1/P,KAAK0xP,UACPzmH,EAAKplD,EAAK86J,SAEZ3gP,KAAKyH,MAAM44C,EAAOrZ,GAEdu6N,GACFvhQ,KAAKwlQ,eAAejmQ,EAAM8gD,EAAOrZ,EAAO,QAE5C,CAEAw+N,cAAAA,CAAev6Q,EAASo1D,EAAOrZ,EAAOloB,GAAO,CAK7CymP,eAAAA,CAAgBllN,EAAOrZ,GACrB,MAAM6+C,EAAO7lF,KAAK69P,YAClB,GAAI79P,KAAK0xP,SAAU,CACjB,MAAM+T,EAAU5/K,EAAK86J,QAAQ95M,OAAOwZ,EAAOrZ,GACvC6+C,EAAK+5K,UACPpB,GAAY34K,EAAM4/K,GAGtB5/K,EAAKtmF,KAAKsnC,OAAOwZ,EAAOrZ,EAC1B,CAKA0+N,KAAAA,CAAMlmO,GACJ,GAAIx/B,KAAK0xP,SACP1xP,KAAKw/P,UAAUr6Q,KAAKq6C,OACf,CACL,MAAOlV,EAAQk1M,EAAMC,GAAQjgM,EAC7Bx/B,KAAKsqB,GAAQk1M,EAAMC,GAErBz/N,KAAK0kP,MAAMihB,aAAaxgR,KAAK,CAAC6a,KAAK4U,SAAU4qB,GAC/C,CAEAomO,WAAAA,GACE,MAAM5+N,EAAQxhD,UAAUC,OACxBua,KAAK0lQ,MAAM,CAAC,kBAAmB1lQ,KAAKggQ,aAAazgQ,KAAK9Z,OAASuhD,EAAOA,GACxE,CAEA6+N,UAAAA,GACE7lQ,KAAK0lQ,MAAM,CAAC,kBAAmB1lQ,KAAK69P,YAAYt+P,KAAK9Z,OAAS,EAAG,GACnE,CAEAqgR,YAAAA,GACE9lQ,KAAK0lQ,MAAM,CAAC,kBAAmB,EAAG,GACpC,CAEAK,aAAAA,CAAc1lN,EAAOrZ,GACfA,GACFhnC,KAAK0lQ,MAAM,CAAC,kBAAmBrlN,EAAOrZ,IAExC,MAAMg/N,EAAWxgR,UAAUC,OAAS,EAChCugR,GACFhmQ,KAAK0lQ,MAAM,CAAC,kBAAmBrlN,EAAO2lN,GAE1C,CAEAC,cAAAA,GACEjmQ,KAAK0lQ,MAAM,CAAC,kBAAmB,EAAGlgR,UAAUC,QAC9C,EChhCF,SAASygR,GAAqBrgL,GAC5B,MAAM8gK,EAAQ9gK,EAAK66J,OACbvlO,EAnBR,SAA2BwrO,EAAOhzP,GAChC,IAAKgzP,EAAMwf,OAAOC,KAAM,CACtB,MAAMC,EAAe1f,EAAMgX,wBAAwBhqQ,GACnD,IAAIwnB,EAAS,GAEb,IAAK,IAAI51B,EAAI,EAAGg2P,EAAO8qB,EAAa5gR,OAAQF,EAAIg2P,EAAMh2P,IACpD41B,EAASA,EAAOzsB,OAAO23Q,EAAa9gR,GAAG+rO,WAAW8xC,mBAAmBzc,IAEvEA,EAAMwf,OAAOC,KAAOtmB,GAAa3kO,EAAOqd,MAAK,CAACr3B,EAAGC,IAAMD,EAAIC,KAE7D,OAAOulP,EAAMwf,OAAOC,IACtB,CAQiBE,CAAkB3f,EAAO9gK,EAAKlyF,MAC7C,IACIpO,EAAGg2P,EAAMgrB,EAAMpyM,EADfhkC,EAAMw2N,EAAM90G,QAEhB,MAAM20H,EAAmBA,KACV,QAATD,IAA4B,QAAVA,IAIlBp5E,GAAQh5H,KAEVhkC,EAAM9tB,KAAK8tB,IAAIA,EAAK9tB,KAAKse,IAAI4lP,EAAOpyM,IAAShkC,IAE/CgkC,EAAOoyM,EAAA,EAGT,IAAKhhR,EAAI,EAAGg2P,EAAOpgO,EAAO11B,OAAQF,EAAIg2P,IAAQh2P,EAC5CghR,EAAO5f,EAAM3F,iBAAiB7lO,EAAO51B,IACrCihR,IAIF,IADAryM,OAAOplE,EACFxJ,EAAI,EAAGg2P,EAAOoL,EAAMlC,MAAMh/P,OAAQF,EAAIg2P,IAAQh2P,EACjDghR,EAAO5f,EAAM8f,gBAAgBlhR,GAC7BihR,IAGF,OAAOr2O,CACT,CA2FA,SAASu2O,GAAWruN,EAAO9c,EAAMkiO,EAAQl4Q,GAMvC,OALIkC,GAAQ4wD,GA5Bd,SAAuBA,EAAO9c,EAAMkiO,EAAQl4Q,GAC1C,MAAMohR,EAAalJ,EAAOh2P,MAAM4wC,EAAM,GAAI9yD,GACpCqhR,EAAWnJ,EAAOh2P,MAAM4wC,EAAM,GAAI9yD,GAClC4qC,EAAM9tB,KAAK8tB,IAAIw2O,EAAYC,GAC3Bx2O,EAAM/tB,KAAK+tB,IAAIu2O,EAAYC,GACjC,IAAIC,EAAW12O,EACX22O,EAAS12O,EAET/tB,KAAKse,IAAIwP,GAAO9tB,KAAKse,IAAIyP,KAC3By2O,EAAWz2O,EACX02O,EAAS32O,GAKXoL,EAAKkiO,EAAO7c,MAAQkmB,EAEpBvrO,EAAKwrO,QAAU,CACbF,WACAC,SACAzmN,MAAOsmN,EACP1nO,IAAK2nO,EACLz2O,MACAC,MAEJ,CAII42O,CAAc3uN,EAAO9c,EAAMkiO,EAAQl4Q,GAEnCg2C,EAAKkiO,EAAO7c,MAAQ6c,EAAOh2P,MAAM4wC,EAAO9yD,GAEnCg2C,CACT,CAEA,SAAS0rO,GAAsBphL,EAAMtmF,EAAM8gD,EAAOrZ,GAChD,MAAM05M,EAAS76J,EAAK66J,OACd+c,EAAS53K,EAAK43K,OACd5mO,EAAS6pN,EAAO0hB,YAChBC,EAAc3hB,IAAW+c,EACzBntQ,EAAS,GACf,IAAI/K,EAAGg2P,EAAMhgN,EAAM8c,EAEnB,IAAK9yD,EAAI86D,EAAOk7L,EAAOl7L,EAAQrZ,EAAOzhD,EAAIg2P,IAAQh2P,EAChD8yD,EAAQ94C,EAAKha,GACbg2C,EAAO,CAAC,EACRA,EAAKmlN,EAAOE,MAAQyhB,GAAe3hB,EAAOj5O,MAAMovB,EAAOtxC,GAAIA,GAC3D+K,EAAOnL,KAAKuhR,GAAWruN,EAAO9c,EAAMkiO,EAAQl4Q,IAE9C,OAAO+K,CACT,CAEA,SAAS42Q,GAAW/sG,GAClB,OAAOA,QAA8BprK,IAApBorK,EAAO0sG,eAA4C93Q,IAAlBorK,EAAO2sG,MAC3D,CA8BA,SAASK,GAAiB91I,EAAYpjI,EAASyxD,EAAO9qC,GACpD,IAAIwyP,EAAOn5Q,EAAQo5Q,cACnB,MAAM5sN,EAAM,CAAC,EAEb,IAAK2sN,EAEH,YADA/1I,EAAWg2I,cAAgB5sN,GAI7B,IAAa,IAAT2sN,EAEF,YADA/1I,EAAWg2I,cAAgB,CAACvtK,KAAK,EAAMzsG,OAAO,EAAMwwI,QAAQ,EAAMzwI,MAAM,IAI1E,MAAM,MAACizD,EAAA,IAAOphB,EAAA,QAAKirC,EAAA,IAAS4vB,EAAA,OAAK+jC,GAnCnC,SAAqBxM,GACnB,IAAInnD,EAAS7pB,EAAOphB,EAAK66D,EAAK+jC,EAiB9B,OAhBIxM,EAAWi2I,YACbp9L,EAAUmnD,EAAW9jF,KAAO8jF,EAAWroI,EACvCq3D,EAAQ,OACRphB,EAAM,UAENirC,EAAUmnD,EAAW9jF,KAAO8jF,EAAWrnE,EACvC3J,EAAQ,SACRphB,EAAM,OAEJirC,GACF4vB,EAAM,MACN+jC,EAAS,UAET/jC,EAAM,QACN+jC,EAAS,OAEJ,CAACx9E,QAAOphB,MAAKirC,UAAS4vB,MAAK+jC,SACpC,CAgB6C0pI,CAAYl2I,GAE1C,WAAT+1I,GAAqB1nN,IACvB2xE,EAAWm2I,oBAAqB,GAC3B9nN,EAAM0+M,MAAQ,KAAOxpP,EACxBwyP,EAAOttK,GACGp6C,EAAM2+M,SAAW,KAAOzpP,EAClCwyP,EAAOvpI,GAEPpjF,EAAIgtN,GAAU5pI,EAAQx9E,EAAOphB,EAAKirC,KAAY,EAC9Ck9L,EAAOttK,IAIXr/C,EAAIgtN,GAAUL,EAAM/mN,EAAOphB,EAAKirC,KAAY,EAC5CmnD,EAAWg2I,cAAgB5sN,CAC7B,CAEA,SAASgtN,GAAUL,EAAMjmQ,EAAGC,EAAG8oE,GAU/B,IAAcw9L,EAAM9pH,EAAIC,EAHtB,OANI3zE,GASkB2zE,EARCz8I,EACrBgmQ,EAAOO,GADPP,GAQUM,EAREN,MAQIxpH,EAREz8I,GASC08I,EAAK6pH,IAAS7pH,EAAKD,EAAK8pH,EARrBtmQ,EAAGD,IAEzBimQ,EAAOO,GAASP,EAAMjmQ,EAAGC,GAEpBgmQ,CACT,CAMA,SAASO,GAAS7uO,EAAGunB,EAAOphB,GAC1B,MAAa,UAANnG,EAAgBunB,EAAc,QAANvnB,EAAcmG,EAAMnG,CACrD,CAEA,SAAS8uO,GAAiBv2I,EAAUlhI,EAAmB07N,GAAO,IAAxB,cAACg8C,GAAc13Q,EACnDkhI,EAAWw2I,cAAkC,SAAlBA,EACb,IAAVh8C,EAAc,IAAO,EACrBg8C,CACN,CDyyBAhiR,GAz0BqB+4Q,GAAA,WAKD,CAAC,GAAE/4Q,GALF+4Q,GAAA,qBAUS,MAAI/4Q,GAVb+4Q,GAAA,kBAeM,MCmBZ,MAAMkJ,WAAsBlJ,GAgDzCsD,kBAAAA,CAAmBr8K,EAAMtmF,EAAM8gD,EAAOrZ,GACpC,OAAOigO,GAAsBphL,EAAMtmF,EAAM8gD,EAAOrZ,EAClD,CAOAg7N,cAAAA,CAAen8K,EAAMtmF,EAAM8gD,EAAOrZ,GAChC,OAAOigO,GAAsBphL,EAAMtmF,EAAM8gD,EAAOrZ,EAClD,CAOAi7N,eAAAA,CAAgBp8K,EAAMtmF,EAAM8gD,EAAOrZ,GACjC,MAAM,OAAC05M,EAAA,OAAQ+c,GAAU53K,GACnB,SAACy8K,EAAW,aAAKC,EAAW,KAAOviQ,KAAK0xP,SACxCqW,EAA2B,MAAhBrnB,EAAOE,KAAe0hB,EAAWC,EAC5CyF,EAA2B,MAAhBvK,EAAO7c,KAAe0hB,EAAWC,EAC5CjyQ,EAAS,GACf,IAAI/K,EAAGg2P,EAAMhgN,EAAMr1C,EACnB,IAAKX,EAAI86D,EAAOk7L,EAAOl7L,EAAQrZ,EAAOzhD,EAAIg2P,IAAQh2P,EAChDW,EAAMqZ,EAAKha,GACXg2C,EAAO,CAAC,EACRA,EAAKmlN,EAAOE,MAAQF,EAAOj5O,MAAM00O,GAAiBj2P,EAAK6hR,GAAWxiR,GAClE+K,EAAOnL,KAAKuhR,GAAWvqB,GAAiBj2P,EAAK8hR,GAAWzsO,EAAMkiO,EAAQl4Q,IAExE,OAAO+K,CACT,CAKAoyQ,qBAAAA,CAAsBrsK,EAAOswJ,EAAOr2P,EAAQovD,GAC1Cs+D,MAAM0kJ,sBAAsBrsK,EAAOswJ,EAAOr2P,EAAQovD,GAClD,MAAMy6G,EAAS7pK,EAAOy2Q,QAClB5sG,GAAUwsF,IAAU3mP,KAAK69P,YAAYJ,SAEvCpnK,EAAMlmE,IAAM9tB,KAAK8tB,IAAIkmE,EAAMlmE,IAAKgqI,EAAOhqI,KACvCkmE,EAAMjmE,IAAM/tB,KAAK+tB,IAAIimE,EAAMjmE,IAAK+pI,EAAO/pI,KAE3C,CAMAizO,cAAAA,GACE,OAAO,CACT,CAKAC,gBAAAA,CAAiB1uP,GACf,MAAMixE,EAAO7lF,KAAK69P,aACZ,OAACnd,EAAA,OAAQ+c,GAAU53K,EACnBv1F,EAAS0P,KAAKwiQ,UAAU5tP,GACxBulJ,EAAS7pK,EAAOy2Q,QAChBxgR,EAAQ2gR,GAAW/sG,GACrB,IAAMA,EAAO95G,MAAQ,KAAO85G,EAAOl7H,IAAM,IACzC,GAAKw+N,EAAO8F,iBAAiBjzQ,EAAOmtQ,EAAO7c,OAE/C,MAAO,CACL7pN,MAAO,GAAK2pN,EAAO6iB,iBAAiBjzQ,EAAOowP,EAAOE,OAClDr6P,QAEJ,CAEAo4B,UAAAA,GACE3e,KAAKq/P,qBAAsB,EAE3BrhJ,MAAMr/F,aAEO3e,KAAK69P,YACbn+M,MAAQ1/C,KAAKggQ,aAAatgN,KACjC,CAEA3uD,MAAAA,CAAO+tB,GACL,MAAM+mE,EAAO7lF,KAAK69P,YAClB79P,KAAKwlQ,eAAe3/K,EAAKtmF,KAAM,EAAGsmF,EAAKtmF,KAAK9Z,OAAQq5B,EACtD,CAEA0mP,cAAAA,CAAeyC,EAAM5nN,EAAOrZ,EAAOloB,GACjC,MAAMwgK,EAAiB,UAATxgK,GACR,MAAClK,EAAOipP,aAAa,OAACJ,IAAWz9P,KACjCutC,EAAOkwN,EAAOyK,eACdZ,EAAa7J,EAAO0K,eACpBC,EAAQpoQ,KAAKqoQ,aACb,cAAC7D,EAAa,eAAED,GAAkBvkQ,KAAK0kQ,kBAAkBrkN,EAAOvhC,GAEtE,IAAK,IAAIv5B,EAAI86D,EAAO96D,EAAI86D,EAAQrZ,EAAOzhD,IAAK,CAC1C,MAAM+K,EAAS0P,KAAKwiQ,UAAUj9Q,GACxB+iR,EAAUhpF,GAASw7D,GAAcxqP,EAAOmtQ,EAAO7c,OAAS,CAACrzM,OAAMsjC,KAAMtjC,GAAQvtC,KAAKuoQ,yBAAyBhjR,GAC3GijR,EAAUxoQ,KAAKyoQ,yBAAyBljR,EAAG6iR,GAC3C1oN,GAASpvD,EAAOwtQ,SAAW,CAAC,GAAGL,EAAO7c,MAEtCvvH,EAAa,CACjBi2I,aACA/5N,KAAM+6N,EAAQ/6N,KACdi6N,oBAAqB9nN,GAASwnN,GAAW52Q,EAAOy2Q,UAAanyP,IAAU8qC,EAAM0+M,MAAQxpP,IAAU8qC,EAAM2+M,QACrGr1Q,EAAGs+Q,EAAagB,EAAQz3L,KAAO23L,EAAQE,OACvC1+M,EAAGs9M,EAAakB,EAAQE,OAASJ,EAAQz3L,KACzCkjB,OAAQuzK,EAAakB,EAAQ3qN,KAAOx7C,KAAKse,IAAI2nP,EAAQzqN,MACrDi2C,MAAOwzK,EAAajlQ,KAAKse,IAAI2nP,EAAQzqN,MAAQ2qN,EAAQ3qN,MAGnD0mN,IACFlzI,EAAWpjI,QAAUu2Q,GAAiBxkQ,KAAK6jQ,0BAA0Bt+Q,EAAG0iR,EAAK1iR,GAAG83C,OAAS,SAAWve,IAEtG,MAAM7wB,EAAUojI,EAAWpjI,SAAWg6Q,EAAK1iR,GAAG0I,QAC9Ck5Q,GAAiB91I,EAAYpjI,EAASyxD,EAAO9qC,GAC7CgzP,GAAiBv2I,EAAYpjI,EAASm6Q,EAAMv8C,OAC5C7rN,KAAK8kQ,cAAcmD,EAAK1iR,GAAIA,EAAG8rI,EAAYvyG,EAC7C,CACF,CASA6pP,UAAAA,CAAWhoM,EAAMmjM,GACf,MAAM,OAACpjB,GAAU1gP,KAAK69P,YAChBjB,EAAWlc,EAAOid,wBAAwB39P,KAAK++P,OAClDh6Q,QAAO8gG,GAAQA,EAAKyrI,WAAWrjO,QAAQ26Q,UACpCnxL,EAAUipK,EAAOzyP,QAAQwpF,QACzB2lL,EAAS,GAETyL,EAAYhjL,IAChB,MAAMv1F,EAASu1F,EAAKyrI,WAAWkxC,UAAUsB,GACnCvvP,EAAMjkB,GAAUA,EAAOu1F,EAAK43K,OAAO7c,MAEzC,GAAI9F,GAAcvmO,IAAQuqB,MAAMvqB,GAC9B,OAAO,GAIX,IAAK,MAAMsxE,KAAQ+2K,EACjB,SAAkB7tQ,IAAd+0Q,IAA2B+E,EAAShjL,QASxB,IAAZpO,IAAqD,IAAhC2lL,EAAOv2Q,QAAQg/F,EAAKnmC,aAClC3wD,IAAZ0oF,QAAwC1oF,IAAf82F,EAAKnmC,QAC3B09M,EAAOj4Q,KAAK0gG,EAAKnmC,OAEfmmC,EAAKjxE,QAAU+rD,GACjB,MAWJ,OAJKy8L,EAAO33Q,QACV23Q,EAAOj4Q,UAAK4J,GAGPquQ,CACT,CAMA0L,cAAAA,CAAel0P,GACb,OAAO5U,KAAK2oQ,gBAAW55Q,EAAW6lB,GAAOnvB,MAC3C,CAUAsjR,cAAAA,CAAettB,EAAchzP,EAAMq7Q,GACjC,MAAM1G,EAASp9P,KAAK2oQ,WAAWltB,EAAcqoB,GACvClvP,OAAkB7lB,IAAVtG,EACV20Q,EAAOv2Q,QAAQ4B,IACd,EAEL,OAAmB,IAAXmsB,EACJwoP,EAAO33Q,OAAS,EAChBmvB,CACN,CAKAyzP,SAAAA,GACE,MAAMroN,EAAOhgD,KAAK/R,QACZ43F,EAAO7lF,KAAK69P,YACZnd,EAAS76J,EAAK66J,OACdsoB,EAAS,GACf,IAAIzjR,EAAGg2P,EAEP,IAAKh2P,EAAI,EAAGg2P,EAAO11J,EAAKtmF,KAAK9Z,OAAQF,EAAIg2P,IAAQh2P,EAC/CyjR,EAAO7jR,KAAKu7P,EAAOM,iBAAiBhhP,KAAKwiQ,UAAUj9Q,GAAGm7P,EAAOE,MAAOr7P,IAGtE,MAAM0jR,EAAejpN,EAAKipN,aAG1B,MAAO,CACL94O,IAHU84O,GAAgB/C,GAAqBrgL,GAI/CmjL,SACA3oN,MAAOqgM,EAAOwoB,YACdjqO,IAAKyhN,EAAOyoB,UACZC,WAAYppQ,KAAK8oQ,iBACjBniB,MAAOjG,EACPkoB,QAAS5oN,EAAK4oN,QAEd/8C,MAAOo9C,EAAe,EAAIjpN,EAAKqpN,mBAAqBrpN,EAAKspN,cAE7D,CAMAf,wBAAAA,CAAyB3zP,GACvB,MAAOipP,aAAa,OAACJ,EAAA,SAAQmC,EAAUhrP,MAAO6mO,GAAextP,SAAUs/C,KAAMg8N,EAAS,aAAEC,IAAiBxpQ,KACnGypQ,EAAaF,GAAa,EAC1Bj5Q,EAAS0P,KAAKwiQ,UAAU5tP,GACxBulJ,EAAS7pK,EAAOy2Q,QAChB2C,EAAWxC,GAAW/sG,GAC5B,IAGItpF,EAAMhzB,EAHNt3D,EAAQ+J,EAAOmtQ,EAAO7c,MACtBvgM,EAAQ,EACR56D,EAASm6Q,EAAW5/P,KAAK88P,WAAWW,EAAQntQ,EAAQsvQ,GAAYr5Q,EAGhEd,IAAWc,IACb85D,EAAQ56D,EAASc,EACjBd,EAASc,GAGPmjR,IACFnjR,EAAQ4zK,EAAO0sG,SACfphR,EAAS00K,EAAO2sG,OAAS3sG,EAAO0sG,SAElB,IAAVtgR,GAAe+f,GAAK/f,KAAW+f,GAAK6zJ,EAAO2sG,UAC7CzmN,EAAQ,GAEVA,GAAS95D,GAGX,MAAMogR,EAAc7rB,GAAcyuB,IAAeG,EAAuBrpN,EAAZkpN,EAC5D,IAAIh8N,EAAOkwN,EAAOzc,iBAAiB2lB,GAWnC,GARE91L,EADE7wE,KAAK0kP,MAAMilB,kBAAkB/0P,GACxB6oP,EAAOzc,iBAAiB3gM,EAAQ56D,GAGhC8nD,EAGTsQ,EAAOgzB,EAAOtjC,EAEVlrC,KAAKse,IAAIk9B,GAAQ2rN,EAAc,CACjC3rN,EArZN,SAAiBA,EAAM4/M,EAAQgM,GAC7B,OAAa,IAAT5rN,EACKv3C,GAAKu3C,IAEN4/M,EAAO0K,eAAiB,GAAK,IAAM1K,EAAOttO,KAAOs5O,EAAa,GAAK,EAC7E,CAgZaG,CAAQ/rN,EAAM4/M,EAAQgM,GAAcD,EACvCjjR,IAAUkjR,IACZl8N,GAAQsQ,EAAO,GAEjB,MAAMgsN,EAAapM,EAAOqM,mBAAmB,GACvCC,EAAWtM,EAAOqM,mBAAmB,GACrC35O,EAAM9tB,KAAK8tB,IAAI05O,EAAYE,GAC3B35O,EAAM/tB,KAAK+tB,IAAIy5O,EAAYE,GACjCx8N,EAAOlrC,KAAK+tB,IAAI/tB,KAAK8tB,IAAIod,EAAMnd,GAAMD,GACrC0gD,EAAOtjC,EAAOsQ,EAEV+hN,IAAa8J,IAEfp5Q,EAAOwtQ,QAAQL,EAAO7c,MAAM0d,cAAc7iB,GAAgBgiB,EAAOuM,iBAAiBn5L,GAAQ4sL,EAAOuM,iBAAiBz8N,IAItH,GAAIA,IAASkwN,EAAOzc,iBAAiByoB,GAAa,CAChD,MAAMQ,EAAW3jQ,GAAKu3C,GAAQ4/M,EAAOyM,qBAAqBT,GAAc,EACxEl8N,GAAQ08N,EACRpsN,GAAQosN,EAGV,MAAO,CACLpsN,OACAtQ,OACAsjC,OACA63L,OAAQ73L,EAAOhzB,EAAO,EAE1B,CAKA4qN,wBAAAA,CAAyB7zP,EAAOwzP,GAC9B,MAAMzhB,EAAQyhB,EAAMzhB,MACd14P,EAAU+R,KAAK/R,QACf46Q,EAAW56Q,EAAQ46Q,SACnBsB,EAAkBlvB,GAAehtP,EAAQk8Q,gBAAiBx8M,KAChE,IAAI+6M,EAAQ7qN,EACZ,GAAIuqN,EAAMQ,QAAS,CACjB,MAAMQ,EAAaP,EAAW7oQ,KAAK8oQ,eAAel0P,GAASwzP,EAAMgB,WAC3D/yK,EAAiC,SAAzBpoG,EAAQg7Q,aAphB5B,SAAmCr0P,EAAOwzP,EAAOn6Q,EAASm7Q,GACxD,MAAMJ,EAASZ,EAAMY,OACfzC,EAAOyC,EAAOp0P,GACpB,IAAIu/C,EAAOv/C,EAAQ,EAAIo0P,EAAOp0P,EAAQ,GAAK,KACvC5sB,EAAO4sB,EAAQo0P,EAAOvjR,OAAS,EAAIujR,EAAOp0P,EAAQ,GAAK,KAC3D,MAAMw1P,EAAUn8Q,EAAQo7Q,mBAEX,OAATl1M,IAGFA,EAAOoyM,GAAiB,OAATv+Q,EAAgBogR,EAAMnpO,IAAMmpO,EAAM/nN,MAAQr4D,EAAOu+Q,IAGrD,OAATv+Q,IAEFA,EAAOu+Q,EAAOA,EAAOpyM,GAGvB,MAAM9T,EAAQkmN,GAAQA,EAAOlkQ,KAAK8tB,IAAIgkC,EAAMnsE,IAAS,EAAIoiR,EAGzD,MAAO,CACLxiP,MAHWvlB,KAAKse,IAAI34B,EAAOmsE,GAAQ,EAAIi2M,EAGzBhB,EACdv9C,MAAO59N,EAAQq7Q,cACfjpN,QAEJ,CA2fUgqN,CAA0Bz1P,EAAOwzP,EAAOn6Q,EAASm7Q,GAjjB3D,SAAkCx0P,EAAOwzP,EAAOn6Q,EAASm7Q,GACvD,MAAMkB,EAAYr8Q,EAAQg7Q,aAC1B,IAAIprN,EAAMguK,EAaV,OAXIivB,GAAcwvB,IAChBzsN,EAAOuqN,EAAMj4O,IAAMliC,EAAQo7Q,mBAC3Bx9C,EAAQ59N,EAAQq7Q,gBAKhBzrN,EAAOysN,EAAYlB,EACnBv9C,EAAQ,GAGH,CACLjkM,MAAOi2B,EAAOurN,EACdv9C,QACAxrK,MAAO+nN,EAAMY,OAAOp0P,GAAUipC,EAAO,EAEzC,CA8hBU0sN,CAAyB31P,EAAOwzP,EAAOn6Q,EAASm7Q,GAE9CoB,EAAaxqQ,KAAK+oQ,eAAe/oQ,KAAK4U,MAAO5U,KAAK69P,YAAYn+M,MAAOmpN,EAAWj0P,OAAQ7lB,GAC9F25Q,EAASryK,EAAMh2C,MAASg2C,EAAMzuE,MAAQ4iP,EAAen0K,EAAMzuE,MAAQ,EACnEi2B,EAAOx7C,KAAK8tB,IAAIg6O,EAAiB9zK,EAAMzuE,MAAQyuE,EAAMw1H,YAGrD68C,EAAS/hB,EAAM3F,iBAAiBhhP,KAAKwiQ,UAAU5tP,GAAO+xO,EAAM/F,MAAOhsO,GACnEipC,EAAOx7C,KAAK8tB,IAAIg6O,EAAiB/B,EAAMj4O,IAAMi4O,EAAMv8C,OAGrD,MAAO,CACLt+K,KAAMm7N,EAAS7qN,EAAO,EACtBgzB,KAAM63L,EAAS7qN,EAAO,EACtB6qN,SACA7qN,OAEJ,CAEAy8M,IAAAA,GACE,MAAMz0K,EAAO7lF,KAAK69P,YACZJ,EAAS53K,EAAK43K,OACdgN,EAAQ5kL,EAAKtmF,KACbg8O,EAAOkvB,EAAMhlR,OACnB,IAAIF,EAAI,EAER,KAAOA,EAAIg2P,IAAQh2P,EACsB,OAAnCya,KAAKwiQ,UAAUj9Q,GAAGk4Q,EAAO7c,OAC3B6pB,EAAMllR,GAAG+0Q,KAAKt6P,KAAKsoP,KAGzB,EAEFziQ,GA9YqBiiR,GAAsB,KAE7B,OAAMjiR,GAFCiiR,GAAsB,WAOvB,CAChBrI,oBAAoB,EACpBC,gBAAiB,MAEjB2J,mBAAoB,GACpBC,cAAe,GACfV,SAAS,EAET/gB,WAAY,CACV5D,QAAS,CACPtwP,KAAM,SACN09H,WAAY,CAAC,IAAK,IAAK,OAAQ,QAAS,cAG5CxrI,GArBiBiiR,GAAsB,YA0BtB,CACjBlhB,OAAQ,CACN8jB,QAAS,CACP/2Q,KAAM,WACNuP,QAAQ,EACRmnN,KAAM,CACJnnN,QAAQ,IAGZynQ,QAAS,CACPh3Q,KAAM,SACNo0P,aAAa,MCnSN,MAAM6iB,WAAyBhM,GAiC5CjgP,UAAAA,GACE3e,KAAKq/P,qBAAsB,EAC3BrhJ,MAAMr/F,YACR,CAMAujP,kBAAAA,CAAmBr8K,EAAMtmF,EAAM8gD,EAAOrZ,GACpC,MAAM12C,EAAS0tH,MAAMkkJ,mBAAmBr8K,EAAMtmF,EAAM8gD,EAAOrZ,GAC3D,IAAK,IAAIzhD,EAAI,EAAGA,EAAI+K,EAAO7K,OAAQF,IACjC+K,EAAO/K,GAAGwhR,QAAU/mQ,KAAK6jQ,0BAA0Bt+Q,EAAI86D,GAAO2qM,OAEhE,OAAO16P,CACT,CAMA0xQ,cAAAA,CAAen8K,EAAMtmF,EAAM8gD,EAAOrZ,GAChC,MAAM12C,EAAS0tH,MAAMgkJ,eAAen8K,EAAMtmF,EAAM8gD,EAAOrZ,GACvD,IAAK,IAAIzhD,EAAI,EAAGA,EAAI+K,EAAO7K,OAAQF,IAAK,CACtC,MAAMg2C,EAAOh8B,EAAK8gD,EAAQ96D,GAC1B+K,EAAO/K,GAAGwhR,QAAU9rB,GAAe1/M,EAAK,GAAIv7B,KAAK6jQ,0BAA0Bt+Q,EAAI86D,GAAO2qM,OACxF,CACA,OAAO16P,CACT,CAMA2xQ,eAAAA,CAAgBp8K,EAAMtmF,EAAM8gD,EAAOrZ,GACjC,MAAM12C,EAAS0tH,MAAMikJ,gBAAgBp8K,EAAMtmF,EAAM8gD,EAAOrZ,GACxD,IAAK,IAAIzhD,EAAI,EAAGA,EAAI+K,EAAO7K,OAAQF,IAAK,CACtC,MAAMg2C,EAAOh8B,EAAK8gD,EAAQ96D,GAC1B+K,EAAO/K,GAAGwhR,QAAU9rB,GAAe1/M,GAAQA,EAAK1tC,IAAM0tC,EAAK1tC,EAAGmS,KAAK6jQ,0BAA0Bt+Q,EAAI86D,GAAO2qM,OAC1G,CACA,OAAO16P,CACT,CAKA+yQ,cAAAA,GACE,MAAM9jQ,EAAOS,KAAK69P,YAAYt+P,KAE9B,IAAI6wB,EAAM,EACV,IAAK,IAAI7qC,EAAIga,EAAK9Z,OAAS,EAAGF,GAAK,IAAKA,EACtC6qC,EAAM/tB,KAAK+tB,IAAIA,EAAK7wB,EAAKha,GAAGs4D,KAAK79C,KAAK6jQ,0BAA0Bt+Q,IAAM,GAExE,OAAO6qC,EAAM,GAAKA,CACpB,CAKAkzO,gBAAAA,CAAiB1uP,GACf,MAAMixE,EAAO7lF,KAAK69P,YACZhnO,EAAS72B,KAAK0kP,MAAMnlP,KAAKs3B,QAAU,IACnC,OAACqqN,EAAA,OAAQC,GAAUt7J,EACnBv1F,EAAS0P,KAAKwiQ,UAAU5tP,GACxB5rB,EAAIk4P,EAAOqiB,iBAAiBjzQ,EAAOtH,GACnCghE,EAAIm3L,EAAOoiB,iBAAiBjzQ,EAAO05D,GACnCn8D,EAAIyC,EAAOy2Q,QAEjB,MAAO,CACLhwO,MAAOF,EAAOjiB,IAAU,GACxBruB,MAAO,IAAMyC,EAAI,KAAOghE,GAAKn8D,EAAI,KAAOA,EAAI,IAAM,IAEtD,CAEAkD,MAAAA,CAAO+tB,GACL,MAAMwhO,EAAStgP,KAAK69P,YAAYt+P,KAGhCS,KAAKwlQ,eAAellB,EAAQ,EAAGA,EAAO76P,OAAQq5B,EAChD,CAEA0mP,cAAAA,CAAellB,EAAQjgM,EAAOrZ,EAAOloB,GACnC,MAAMwgK,EAAiB,UAATxgK,GACR,OAAC4hO,EAAA,OAAQ+c,GAAUz9P,KAAK69P,aACxB,cAAC2G,EAAa,eAAED,GAAkBvkQ,KAAK0kQ,kBAAkBrkN,EAAOvhC,GAChEi/O,EAAQrd,EAAOE,KACfod,EAAQP,EAAO7c,KAErB,IAAK,IAAIr7P,EAAI86D,EAAO96D,EAAI86D,EAAQrZ,EAAOzhD,IAAK,CAC1C,MAAMqmQ,EAAQtL,EAAO/6P,GACf+K,GAAUgvL,GAASt/K,KAAKwiQ,UAAUj9Q,GAClC8rI,EAAa,CAAC,EACdgiI,EAAShiI,EAAW0sI,GAASz+E,EAAQohE,EAAOopB,mBAAmB,IAAOppB,EAAOM,iBAAiB1wP,EAAOytQ,IACrGzK,EAASjiI,EAAW2sI,GAAS1+E,EAAQm+E,EAAOyK,eAAiBzK,EAAOzc,iBAAiB1wP,EAAO0tQ,IAElG3sI,EAAWwgI,KAAO/yN,MAAMu0N,IAAWv0N,MAAMw0N,GAErCiR,IACFlzI,EAAWpjI,QAAUu2Q,GAAiBxkQ,KAAK6jQ,0BAA0Bt+Q,EAAGqmQ,EAAMvuN,OAAS,SAAWve,GAE9FwgK,IACFjuD,EAAWpjI,QAAQ+8P,OAAS,IAIhChrP,KAAK8kQ,cAAclZ,EAAOrmQ,EAAG8rI,EAAYvyG,EAC3C,CACF,CAOA+kP,yBAAAA,CAA0BjvP,EAAOkK,GAC/B,MAAMxuB,EAAS0P,KAAKwiQ,UAAU5tP,GAC9B,IAAIuG,EAAS6iG,MAAM6lJ,0BAA0BjvP,EAAOkK,GAGhD3D,EAAO+gP,UACT/gP,EAASv2B,OAAOsyC,OAAO,CAAC,EAAG/b,EAAQ,CAAC+gP,SAAS,KAI/C,MAAMlR,EAAS7vO,EAAO6vO,OAMtB,MALa,WAATlsO,IACF3D,EAAO6vO,OAAS,GAElB7vO,EAAO6vO,QAAU/P,GAAe3qP,GAAUA,EAAOy2Q,QAAS/b,GAEnD7vO,CACT,EACFt1B,GArKqB+kR,GAAyB,KAEhC,UAAS/kR,GAFF+kR,GAAyB,WAO1B,CAChBnL,oBAAoB,EACpBC,gBAAiB,QAEjB7X,WAAY,CACV5D,QAAS,CACPtwP,KAAM,SACN09H,WAAY,CAAC,IAAK,IAAK,cAAe,cAG1CxrI,GAjBiB+kR,GAAyB,YAsBzB,CACjBhkB,OAAQ,CACN59P,EAAG,CACD2K,KAAM,UAERq2D,EAAG,CACDr2D,KAAM,aCKC,MAAMk3Q,WAA2BjM,GA0F9Cv4Q,WAAAA,CAAYq+P,EAAOjJ,GACjBz9H,MAAM0mI,EAAOjJ,GAEbz7O,KAAKq/P,qBAAsB,EAC3Br/P,KAAK8qQ,iBAAc/7Q,EACnBiR,KAAK+qQ,iBAAch8Q,EACnBiR,KAAKi1P,aAAUlmQ,EACfiR,KAAKk1P,aAAUnmQ,CACjB,CAEA4wQ,UAAAA,GAAc,CAKdl4P,KAAAA,CAAM44C,EAAOrZ,GACX,MAAMznC,EAAOS,KAAKggQ,aAAazgQ,KACzBsmF,EAAO7lF,KAAK69P,YAElB,IAAsB,IAAlB79P,KAAK0xP,SACP7rK,EAAK86J,QAAUphP,MACV,CACL,IAOIha,EAAGg2P,EAPHjpH,EAAU/sI,IAAOga,EAAKha,GAE1B,GAAI6oE,GAAS7uD,EAAK8gD,IAAS,CACzB,MAAM,IAACz6D,EAAM,SAAWoa,KAAK0xP,SAC7Bp/H,EAAU/sI,IAAO42P,GAAiB58O,EAAKha,GAAIK,GAI7C,IAAKL,EAAI86D,EAAOk7L,EAAOl7L,EAAQrZ,EAAOzhD,EAAIg2P,IAAQh2P,EAChDsgG,EAAK86J,QAAQp7P,GAAK+sI,EAAO/sI,GAG/B,CAKAylR,YAAAA,GACE,OAAOxtB,GAAUx9O,KAAK/R,QAAQ2wL,SAAW,GAC3C,CAKAqsF,iBAAAA,GACE,OAAOztB,GAAUx9O,KAAK/R,QAAQi9Q,cAChC,CAMAC,mBAAAA,GACE,IAAIh7O,EAAMssN,GACNrsN,GAAOqsN,GAEX,IAAK,IAAIl3P,EAAI,EAAGA,EAAIya,KAAK0kP,MAAMnlP,KAAKomP,SAASlgQ,SAAUF,EACrD,GAAIya,KAAK0kP,MAAM0mB,iBAAiB7lR,IAAMya,KAAK0kP,MAAMoc,eAAev7Q,GAAGoO,OAASqM,KAAK++P,MAAO,CACtF,MAAMztC,EAAatxN,KAAK0kP,MAAMoc,eAAev7Q,GAAG+rO,WAC1C1yC,EAAW0yC,EAAW05C,eACtBE,EAAgB55C,EAAW25C,oBAEjC96O,EAAM9tB,KAAK8tB,IAAIA,EAAKyuJ,GACpBxuJ,EAAM/tB,KAAK+tB,IAAIA,EAAKwuJ,EAAWssF,GAInC,MAAO,CACLtsF,SAAUzuJ,EACV+6O,cAAe96O,EAAMD,EAEzB,CAKAp/B,MAAAA,CAAO+tB,GACL,MAAM4lO,EAAQ1kP,KAAK0kP,OACb,UAACif,GAAajf,EACd7+J,EAAO7lF,KAAK69P,YACZwN,EAAOxlL,EAAKtmF,KACZ+rQ,EAAUtrQ,KAAKurQ,oBAAsBvrQ,KAAKwrQ,aAAaH,GAAQrrQ,KAAK/R,QAAQq9Q,QAC5En4M,EAAU9wD,KAAK+tB,KAAK/tB,KAAK8tB,IAAIwzO,EAAU7vK,MAAO6vK,EAAU5vK,QAAUu3K,GAAW,EAAG,GAChFG,EAASppQ,KAAK8tB,I1B9HIu7O,EAACnlR,EAAwB40P,IAClC,kBAAV50P,GAAsBA,EAAMw0C,SAAS,KAC1CtH,WAAWltC,GAAS,KACjBA,EAAQ40P,E0B2HauwB,CAAa1rQ,KAAK/R,QAAQw9Q,OAAQt4M,GAAU,GAC9Dw4M,EAAc3rQ,KAAK4rQ,eAAe5rQ,KAAK4U,QAKvC,cAACs2P,EAAA,SAAetsF,GAAY5+K,KAAKmrQ,uBACjC,OAACU,EAAA,OAAQC,EAAA,QAAQ7W,EAAA,QAASC,GAjNpC,SAA2Bt2E,EAAUssF,EAAeO,GAClD,IAAII,EAAS,EACTC,EAAS,EACT7W,EAAU,EACVC,EAAU,EAEd,GAAIgW,EAAgBzuB,GAAK,CACvB,MAAMsvB,EAAantF,EACbotF,EAAWD,EAAab,EACxBe,EAAS5pQ,KAAKwgP,IAAIkpB,GAClBG,EAAS7pQ,KAAKw/O,IAAIkqB,GAClBI,EAAO9pQ,KAAKwgP,IAAImpB,GAChBI,EAAO/pQ,KAAKw/O,IAAImqB,GAChBK,EAAUA,CAACjuB,EAAOj9O,EAAGC,IAAMw9O,GAAcR,EAAO2tB,EAAYC,GAAU,GAAQ,EAAI3pQ,KAAK+tB,IAAIjvB,EAAGA,EAAIsqQ,EAAQrqQ,EAAGA,EAAIqqQ,GACjHa,EAAUA,CAACluB,EAAOj9O,EAAGC,IAAMw9O,GAAcR,EAAO2tB,EAAYC,GAAU,IAAS,EAAI3pQ,KAAK8tB,IAAIhvB,EAAGA,EAAIsqQ,EAAQrqQ,EAAGA,EAAIqqQ,GAClHc,EAAOF,EAAQ,EAAGJ,EAAQE,GAC1BK,EAAOH,EAAQvvB,GAASovB,EAAQE,GAChCK,EAAOH,EAAQttF,GAAIitF,EAAQE,GAC3BO,EAAOJ,EAAQttF,GAAK89D,GAASovB,EAAQE,GAC3CP,GAAUU,EAAOE,GAAQ,EACzBX,GAAUU,EAAOE,GAAQ,EACzBzX,IAAYsX,EAAOE,GAAQ,EAC3BvX,IAAYsX,EAAOE,GAAQ,EAE7B,MAAO,CAACb,SAAQC,SAAQ7W,UAASC,UACnC,CAwL+CyX,CAAkB/tF,EAAUssF,EAAeO,GAChFt6F,GAAYwyF,EAAU7vK,MAAQw3K,GAAWO,EACzChpD,GAAa8gD,EAAU5vK,OAASu3K,GAAWQ,EAC3Cc,EAAYvqQ,KAAK+tB,IAAI/tB,KAAK8tB,IAAIghJ,EAAU0xC,GAAa,EAAG,GACxDkoD,EAAc7vB,GAAYl7O,KAAK/R,QAAQ+8P,OAAQ4hB,GAE/CC,GAAgB9B,EADF1oQ,KAAK+tB,IAAI26O,EAAcU,EAAQ,IACAzrQ,KAAK8sQ,gCACxD9sQ,KAAKi1P,QAAUA,EAAU8V,EACzB/qQ,KAAKk1P,QAAUA,EAAU6V,EAEzBllL,EAAKh+D,MAAQ7nB,KAAK+sQ,iBAElB/sQ,KAAK+qQ,YAAcA,EAAc8B,EAAe7sQ,KAAKgtQ,qBAAqBhtQ,KAAK4U,OAC/E5U,KAAK8qQ,YAAczoQ,KAAK+tB,IAAIpwB,KAAK+qQ,YAAc8B,EAAelB,EAAa,GAE3E3rQ,KAAKwlQ,eAAe6F,EAAM,EAAGA,EAAK5lR,OAAQq5B,EAC5C,CAKAmuP,cAAAA,CAAe1nR,EAAG+5L,GAChB,MAAMt/H,EAAOhgD,KAAK/R,QACZ43F,EAAO7lF,KAAK69P,YACZqN,EAAgBlrQ,KAAKirQ,oBAC3B,OAAI3rF,GAAUt/H,EAAKg7C,UAAUkyK,gBAAmBltQ,KAAK0kP,MAAMilB,kBAAkBpkR,IAA0B,OAApBsgG,EAAK86J,QAAQp7P,IAAesgG,EAAKtmF,KAAKha,GAAGgpO,OACnH,EAEFvuN,KAAKmtQ,uBAAuBtnL,EAAK86J,QAAQp7P,GAAK2lR,EAAgBzuB,GACvE,CAEA+oB,cAAAA,CAAe6F,EAAMhrN,EAAOrZ,EAAOloB,GACjC,MAAMwgK,EAAiB,UAATxgK,EACR4lO,EAAQ1kP,KAAK0kP,MACbif,EAAYjf,EAAMif,UAElByJ,EADO1oB,EAAMz2P,QACQ+sG,UACrBqyK,GAAW1J,EAAUv2Q,KAAOu2Q,EAAUt2Q,OAAS,EAC/CigR,GAAW3J,EAAU7pK,IAAM6pK,EAAU9lI,QAAU,EAC/C0vI,EAAejuF,GAAS8tF,EAAcG,aACtCzC,EAAcyC,EAAe,EAAIvtQ,KAAK8qQ,YACtCC,EAAcwC,EAAe,EAAIvtQ,KAAK+qQ,aACtC,cAACvG,EAAa,eAAED,GAAkBvkQ,KAAK0kQ,kBAAkBrkN,EAAOvhC,GACtE,IACIv5B,EADAwmR,EAAa/rQ,KAAKgrQ,eAGtB,IAAKzlR,EAAI,EAAGA,EAAI86D,IAAS96D,EACvBwmR,GAAc/rQ,KAAKitQ,eAAe1nR,EAAG+5L,GAGvC,IAAK/5L,EAAI86D,EAAO96D,EAAI86D,EAAQrZ,IAASzhD,EAAG,CACtC,MAAM2lR,EAAgBlrQ,KAAKitQ,eAAe1nR,EAAG+5L,GACvC+rE,EAAMggB,EAAK9lR,GACX8rI,EAAa,CACjBroI,EAAGqkR,EAAUrtQ,KAAKi1P,QAClBjrM,EAAGsjN,EAAUttQ,KAAKk1P,QAClB6W,aACAC,SAAUD,EAAab,EACvBA,gBACAH,cACAD,eAEEvG,IACFlzI,EAAWpjI,QAAUu2Q,GAAiBxkQ,KAAK6jQ,0BAA0Bt+Q,EAAG8lQ,EAAIhuN,OAAS,SAAWve,IAElGitP,GAAcb,EAEdlrQ,KAAK8kQ,cAAczZ,EAAK9lQ,EAAG8rI,EAAYvyG,EACzC,CACF,CAEAiuP,cAAAA,GACE,MAAMlnL,EAAO7lF,KAAK69P,YACZ2P,EAAW3nL,EAAKtmF,KACtB,IACIha,EADAsiC,EAAQ,EAGZ,IAAKtiC,EAAI,EAAGA,EAAIioR,EAAS/nR,OAAQF,IAAK,CACpC,MAAMgB,EAAQs/F,EAAK86J,QAAQp7P,GACb,OAAVgB,GAAmBu4C,MAAMv4C,KAAUyZ,KAAK0kP,MAAMilB,kBAAkBpkR,IAAOioR,EAASjoR,GAAGgpO,SACrF1mM,GAASxlB,KAAKse,IAAIp6B,GAEtB,CAEA,OAAOshC,CACT,CAEAslP,sBAAAA,CAAuB5mR,GACrB,MAAMshC,EAAQ7nB,KAAK69P,YAAYh2O,MAC/B,OAAIA,EAAQ,IAAMiX,MAAMv4C,GACfk2P,IAAOp6O,KAAKse,IAAIp6B,GAASshC,GAE3B,CACT,CAEAy7O,gBAAAA,CAAiB1uP,GACf,MAAMixE,EAAO7lF,KAAK69P,YACZnZ,EAAQ1kP,KAAK0kP,MACb7tN,EAAS6tN,EAAMnlP,KAAKs3B,QAAU,GAC9BtwC,EAAQ49P,GAAat+J,EAAK86J,QAAQ/rO,GAAQ8vO,EAAMz2P,QAAQ6rE,QAE9D,MAAO,CACL/iC,MAAOF,EAAOjiB,IAAU,GACxBruB,QAEJ,CAEAglR,iBAAAA,CAAkBF,GAChB,IAAIj7O,EAAM,EACV,MAAMs0N,EAAQ1kP,KAAK0kP,MACnB,IAAIn/P,EAAGg2P,EAAM11J,EAAMyrI,EAAYrjO,EAE/B,IAAKo9Q,EAEH,IAAK9lR,EAAI,EAAGg2P,EAAOmJ,EAAMnlP,KAAKomP,SAASlgQ,OAAQF,EAAIg2P,IAAQh2P,EACzD,GAAIm/P,EAAM0mB,iBAAiB7lR,GAAI,CAC7BsgG,EAAO6+J,EAAMoc,eAAev7Q,GAC5B8lR,EAAOxlL,EAAKtmF,KACZ+xN,EAAazrI,EAAKyrI,WAClB,MAKN,IAAK+5C,EACH,OAAO,EAGT,IAAK9lR,EAAI,EAAGg2P,EAAO8vB,EAAK5lR,OAAQF,EAAIg2P,IAAQh2P,EAC1C0I,EAAUqjO,EAAWuyC,0BAA0Bt+Q,GACnB,UAAxB0I,EAAQw/Q,cACVr9O,EAAM/tB,KAAK+tB,IAAIA,EAAKniC,EAAQy9P,aAAe,EAAGz9P,EAAQy/Q,kBAAoB,IAG9E,OAAOt9O,CACT,CAEAo7O,YAAAA,CAAaH,GACX,IAAIj7O,EAAM,EAEV,IAAK,IAAI7qC,EAAI,EAAGg2P,EAAO8vB,EAAK5lR,OAAQF,EAAIg2P,IAAQh2P,EAAG,CACjD,MAAM0I,EAAU+R,KAAK6jQ,0BAA0Bt+Q,GAC/C6qC,EAAM/tB,KAAK+tB,IAAIA,EAAKniC,EAAQiV,QAAU,EAAGjV,EAAQ0/Q,aAAe,EAClE,CACA,OAAOv9O,CACT,CAMA48O,oBAAAA,CAAqBvxB,GACnB,IAAImyB,EAAmB,EAEvB,IAAK,IAAIroR,EAAI,EAAGA,EAAIk2P,IAAgBl2P,EAC9Bya,KAAK0kP,MAAM0mB,iBAAiB7lR,KAC9BqoR,GAAoB5tQ,KAAK4rQ,eAAermR,IAI5C,OAAOqoR,CACT,CAKAhC,cAAAA,CAAenwB,GACb,OAAOp5O,KAAK+tB,IAAI6qN,GAAej7O,KAAK0kP,MAAMnlP,KAAKomP,SAASlK,GAAc31C,OAAQ,GAAI,EACpF,CAMAgnE,6BAAAA,GACE,OAAO9sQ,KAAKgtQ,qBAAqBhtQ,KAAK0kP,MAAMnlP,KAAKomP,SAASlgQ,SAAW,CACvE,EACFI,GAvWqBglR,GAA2B,KAElC,YAAWhlR,GAFJglR,GAA2B,WAO5B,CAChBpL,oBAAoB,EACpBC,gBAAiB,MACjB1kK,UAAW,CAETkyK,eAAe,EAEfK,cAAc,GAEhB1lB,WAAY,CACV5D,QAAS,CACPtwP,KAAM,SACN09H,WAAY,CAAC,gBAAiB,WAAY,cAAe,cAAe,aAAc,IAAK,IAAK,SAAU,cAAe,aAI7Ho6I,OAAQ,MAGR7sF,SAAU,EAGVssF,cAAe,IAGflgB,OAAQ,OAGRsgB,QAAS,EAETplB,UAAW,MACXrgQ,GAtCiBglR,GAA2B,cAwCzB,CACnBrjB,YAAc/+P,GAAkB,YAATA,EACvBg/P,WAAah/P,GAAkB,YAATA,IAAuBA,EAAKqyC,WAAW,gBAAkBryC,EAAKqyC,WAAW,qBAC/Fj1C,GA3CiBglR,GAA2B,YAgD3B,CACjBvoL,YAAa,EAGbmkK,QAAS,CACPonB,OAAQ,CACNh3O,OAAQ,CACNi3O,cAAAA,CAAeppB,GACb,MAAMnlP,EAAOmlP,EAAMnlP,KACnB,GAAIA,EAAKs3B,OAAOpxC,QAAU8Z,EAAKomP,SAASlgQ,OAAQ,CAC9C,MAAOoxC,QAAQ,WAACk0N,EAAA,MAAY90J,IAAUyuJ,EAAMmpB,OAAO5/Q,QAEnD,OAAOsR,EAAKs3B,OAAOlc,KAAI,CAACoc,EAAOxxC,KAC7B,MACMo2E,EADO+oL,EAAMoc,eAAe,GACfxvC,WAAWklC,SAASjxQ,GAEvC,MAAO,CACL29D,KAAMnsB,EACNolL,UAAWxgJ,EAAMyqF,gBACjB6mG,YAAatxL,EAAMy1G,YACnB28F,UAAW93K,EACXg5H,UAAWtzJ,EAAM+vL,YACjBX,WAAYA,EACZx8B,QAASm2B,EAAMilB,kBAAkBpkR,GAGjCqvB,MAAOrvB,EACR,IAGL,MAAO,EACT,GAGFgP,OAAAA,CAAQgC,EAAGy3Q,EAAYH,GACrBA,EAAOnpB,MAAMupB,qBAAqBD,EAAWp5P,OAC7Ci5P,EAAOnpB,MAAM3zP,QACf,MCpHO,MAAMm9Q,WAAuBtP,GA6B1CjgP,UAAAA,GACE3e,KAAKq/P,qBAAsB,EAC3Br/P,KAAKs/P,oBAAqB,EAC1BthJ,MAAMr/F,YACR,CAEA5tB,MAAAA,CAAO+tB,GACL,MAAM+mE,EAAO7lF,KAAK69P,aACX1tJ,QAASjnF,EAAM3pB,KAAM+gP,EAAS,GAAE,SAAE6tB,GAAYtoL,EAE/C06J,EAAqBvgP,KAAK0kP,MAAM+f,oBACtC,IAAI,MAACpkN,EAAA,MAAOrZ,GAASq5M,GAAiCx6J,EAAMy6J,EAAQC,GAEpEvgP,KAAKm/P,WAAa9+M,EAClBrgD,KAAKo/P,WAAap4N,EAEdi6M,GAAoBp7J,KACtBxlC,EAAQ,EACRrZ,EAAQs5M,EAAO76P,QAIjByjC,EAAKwvO,OAAS14P,KAAK0kP,MACnBx7N,EAAK2vO,cAAgB74P,KAAK4U,MAC1BsU,EAAKklP,aAAeD,EAASC,WAC7BllP,EAAKo3N,OAASA,EAEd,MAAMryP,EAAU+R,KAAK4jQ,6BAA6B9kP,GAC7C9e,KAAK/R,QAAQ44P,WAChB54P,EAAQy9P,YAAc,GAExBz9P,EAAQ+yK,QAAUhhK,KAAK/R,QAAQ+yK,QAC/BhhK,KAAK8kQ,cAAc57O,OAAMn6B,EAAW,CAClCs/Q,UAAW9tB,EACXtyP,WACC6wB,GAGH9e,KAAKwlQ,eAAellB,EAAQjgM,EAAOrZ,EAAOloB,EAC5C,CAEA0mP,cAAAA,CAAellB,EAAQjgM,EAAOrZ,EAAOloB,GACnC,MAAMwgK,EAAiB,UAATxgK,GACR,OAAC4hO,EAAA,OAAQ+c,EAAA,SAAQmC,EAAA,SAAUuO,GAAYnuQ,KAAK69P,aAC5C,cAAC2G,EAAa,eAAED,GAAkBvkQ,KAAK0kQ,kBAAkBrkN,EAAOvhC,GAChEi/O,EAAQrd,EAAOE,KACfod,EAAQP,EAAO7c,MACf,SAACgT,EAAA,QAAU5yF,GAAWhhK,KAAK/R,QAC3BqgR,EAAer2G,GAAS27F,GAAYA,EAAWn5O,OAAOmiO,kBACtD2xB,EAAevuQ,KAAK0kP,MAAM+f,qBAAuBnlF,GAAkB,SAATxgK,EAC1DmgB,EAAMohB,EAAQrZ,EACdwnO,EAAcluB,EAAO76P,OAC3B,IAAIgpR,EAAapuN,EAAQ,GAAKrgD,KAAKwiQ,UAAUniN,EAAQ,GAErD,IAAK,IAAI96D,EAAI,EAAGA,EAAIipR,IAAejpR,EAAG,CACpC,MAAMqmQ,EAAQtL,EAAO/6P,GACf8rI,EAAak9I,EAAe3iB,EAAQ,GAE1C,GAAIrmQ,EAAI86D,GAAS96D,GAAK05C,EAAK,CACzBoyF,EAAWwgI,MAAO,EAClB,SAGF,MAAMvhQ,EAAS0P,KAAKwiQ,UAAUj9Q,GACxBmpR,EAAW5zB,GAAcxqP,EAAO0tQ,IAChC3K,EAAShiI,EAAW0sI,GAASrd,EAAOM,iBAAiB1wP,EAAOytQ,GAAQx4Q,GACpE+tQ,EAASjiI,EAAW2sI,GAAS1+E,GAASovF,EAAWjR,EAAOyK,eAAiBzK,EAAOzc,iBAAiB4e,EAAW5/P,KAAK88P,WAAWW,EAAQntQ,EAAQsvQ,GAAYtvQ,EAAO0tQ,GAAQz4Q,GAE7K8rI,EAAWwgI,KAAO/yN,MAAMu0N,IAAWv0N,MAAMw0N,IAAWob,EACpDr9I,EAAWjkD,KAAO7nF,EAAI,GAAK8c,KAAMse,IAAIrwB,EAAOytQ,GAAS0Q,EAAW1Q,IAAWuQ,EACvEttG,IACF3vC,EAAW/gI,OAASA,EACpB+gI,EAAW3kI,IAAMyhR,EAAS5uQ,KAAKha,IAG7Bg/Q,IACFlzI,EAAWpjI,QAAUu2Q,GAAiBxkQ,KAAK6jQ,0BAA0Bt+Q,EAAGqmQ,EAAMvuN,OAAS,SAAWve,IAG/FyvP,GACHvuQ,KAAK8kQ,cAAclZ,EAAOrmQ,EAAG8rI,EAAYvyG,GAG3C2vP,EAAan+Q,CACf,CACF,CAKA+yQ,cAAAA,GACE,MAAMx9K,EAAO7lF,KAAK69P,YACZ1tJ,EAAUtqB,EAAKsqB,QACf+rE,EAAS/rE,EAAQliH,SAAWkiH,EAAQliH,QAAQy9P,aAAe,EAC3DnsP,EAAOsmF,EAAKtmF,MAAQ,GAC1B,IAAKA,EAAK9Z,OACR,OAAOy2L,EAET,MAAM81E,EAAazyP,EAAK,GAAGs+C,KAAK79C,KAAK6jQ,0BAA0B,IACzD8K,EAAYpvQ,EAAKA,EAAK9Z,OAAS,GAAGo4D,KAAK79C,KAAK6jQ,0BAA0BtkQ,EAAK9Z,OAAS,IAC1F,OAAO4c,KAAK+tB,IAAI8rJ,EAAQ81E,EAAY2c,GAAa,CACnD,CAEArU,IAAAA,GACE,MAAMz0K,EAAO7lF,KAAK69P,YAClBh4K,EAAKsqB,QAAQy+J,oBAAoB5uQ,KAAK0kP,MAAMif,UAAW99K,EAAK66J,OAAOE,MACnE5iI,MAAMs8I,MACR,EACFz0Q,GAzIqBqoR,GAAuB,KAE9B,QAAOroR,GAFAqoR,GAAuB,WAOxB,CAChBzO,mBAAoB,OACpBC,gBAAiB,QAEjB7Y,UAAU,EACV+M,UAAU,IACV/tQ,GAbiBqoR,GAAuB,YAkBvB,CACjBtnB,OAAQ,CACN8jB,QAAS,CACP/2Q,KAAM,YAERg3Q,QAAS,CACPh3Q,KAAM,aC1BC,MAAMk7Q,WAA4BjQ,GAoF/Cv4Q,WAAAA,CAAYq+P,EAAOjJ,GACjBz9H,MAAM0mI,EAAOjJ,GAEbz7O,KAAK8qQ,iBAAc/7Q,EACnBiR,KAAK+qQ,iBAAch8Q,CACrB,CAEAu0Q,gBAAAA,CAAiB1uP,GACf,MAAMixE,EAAO7lF,KAAK69P,YACZnZ,EAAQ1kP,KAAK0kP,MACb7tN,EAAS6tN,EAAMnlP,KAAKs3B,QAAU,GAC9BtwC,EAAQ49P,GAAat+J,EAAK86J,QAAQ/rO,GAAO/mB,EAAG62P,EAAMz2P,QAAQ6rE,QAEhE,MAAO,CACL/iC,MAAOF,EAAOjiB,IAAU,GACxBruB,QAEJ,CAEA07Q,eAAAA,CAAgBp8K,EAAMtmF,EAAM8gD,EAAOrZ,GACjC,OAAOyqN,GAA4BvgM,KAAKlxD,KAAjCyxP,CAAuC5rK,EAAMtmF,EAAM8gD,EAAOrZ,EACnE,CAEAj2C,MAAAA,CAAO+tB,GACL,MAAMusP,EAAOrrQ,KAAK69P,YAAYt+P,KAE9BS,KAAK8uQ,gBACL9uQ,KAAKwlQ,eAAe6F,EAAM,EAAGA,EAAK5lR,OAAQq5B,EAC5C,CAKA8jP,SAAAA,GACE,MAAM/8K,EAAO7lF,KAAK69P,YACZxnK,EAAQ,CAAClmE,IAAK1V,OAAOmiO,kBAAmBxsN,IAAK3V,OAAOuoP,mBAgB1D,OAdAn9K,EAAKtmF,KAAK5Z,SAAQ,CAACsF,EAAS2pB,KAC1B,MAAMtkB,EAAS0P,KAAKwiQ,UAAU5tP,GAAO/mB,GAEhCixC,MAAMxuC,IAAW0P,KAAK0kP,MAAMilB,kBAAkB/0P,KAC7CtkB,EAAS+lG,EAAMlmE,MACjBkmE,EAAMlmE,IAAM7/B,GAGVA,EAAS+lG,EAAMjmE,MACjBimE,EAAMjmE,IAAM9/B,OAKX+lG,CACT,CAKAy4K,aAAAA,GACE,MAAMpqB,EAAQ1kP,KAAK0kP,MACbif,EAAYjf,EAAMif,UAClB3jN,EAAO0kM,EAAMz2P,QACb8gR,EAAU1sQ,KAAK8tB,IAAIwzO,EAAUt2Q,MAAQs2Q,EAAUv2Q,KAAMu2Q,EAAU9lI,OAAS8lI,EAAU7pK,KAElFixK,EAAc1oQ,KAAK+tB,IAAI2+O,EAAU,EAAG,GAEpClC,GAAgB9B,EADF1oQ,KAAK+tB,IAAI4vB,EAAKgvN,iBAAmBjE,EAAe,IAAQ/qN,EAAKgvN,iBAAoB,EAAG,IACrDtqB,EAAMuqB,yBAEzDjvQ,KAAK+qQ,YAAcA,EAAe8B,EAAe7sQ,KAAK4U,MACtD5U,KAAK8qQ,YAAc9qQ,KAAK+qQ,YAAc8B,CACxC,CAEArH,cAAAA,CAAe6F,EAAMhrN,EAAOrZ,EAAOloB,GACjC,MAAMwgK,EAAiB,UAATxgK,EACR4lO,EAAQ1kP,KAAK0kP,MAEb0oB,EADO1oB,EAAMz2P,QACQ+sG,UACrB2rJ,EAAQ3mP,KAAK69P,YAAYgD,OACzBwM,EAAU1mB,EAAMuoB,QAChB5B,EAAU3mB,EAAMwoB,QAChBC,EAAoBzoB,EAAM0oB,cAAc,GAAK,GAAMrwF,GACzD,IACIz5L,EADA64P,EAAQgxB,EAGZ,MAAME,EAAe,IAAMtvQ,KAAKuvQ,uBAEhC,IAAKhqR,EAAI,EAAGA,EAAI86D,IAAS96D,EACvB64P,GAASp+O,KAAKwvQ,cAAcjqR,EAAGu5B,EAAMwwP,GAEvC,IAAK/pR,EAAI86D,EAAO96D,EAAI86D,EAAQrZ,EAAOzhD,IAAK,CACtC,MAAM8lQ,EAAMggB,EAAK9lR,GACjB,IAAIwmR,EAAa3tB,EACb4tB,EAAW5tB,EAAQp+O,KAAKwvQ,cAAcjqR,EAAGu5B,EAAMwwP,GAC/CvE,EAAcrmB,EAAMilB,kBAAkBpkR,GAAKohQ,EAAM8oB,8BAA8BzvQ,KAAKwiQ,UAAUj9Q,GAAGsI,GAAK,EAC1GuwP,EAAQ4tB,EAEJ1sF,IACE8tF,EAAcG,eAChBxC,EAAc,GAEZqC,EAAcF,gBAChBnB,EAAaC,EAAWoD,IAI5B,MAAM/9I,EAAa,CACjBroI,EAAGqkR,EACHrjN,EAAGsjN,EACHxC,YAAa,EACbC,cACAgB,aACAC,WACA/9Q,QAAS+R,KAAK6jQ,0BAA0Bt+Q,EAAG8lQ,EAAIhuN,OAAS,SAAWve,IAGrE9e,KAAK8kQ,cAAczZ,EAAK9lQ,EAAG8rI,EAAYvyG,EACzC,CACF,CAEAywP,oBAAAA,GACE,MAAM1pL,EAAO7lF,KAAK69P,YAClB,IAAI72N,EAAQ,EAQZ,OANA6+C,EAAKtmF,KAAK5Z,SAAQ,CAACsF,EAAS2pB,MACrBkqB,MAAM9+B,KAAKwiQ,UAAU5tP,GAAO/mB,IAAMmS,KAAK0kP,MAAMilB,kBAAkB/0P,IAClEoyB,OAIGA,CACT,CAKAwoO,aAAAA,CAAc56P,EAAOkK,EAAMwwP,GACzB,OAAOtvQ,KAAK0kP,MAAMilB,kBAAkB/0P,GAChC4oO,GAAUx9O,KAAK6jQ,0BAA0BjvP,EAAOkK,GAAMs/N,OAASkxB,GAC/D,CACN,EACFzpR,GA/NqBgpR,GAA4B,KAEnC,aAAYhpR,GAFLgpR,GAA4B,WAO7B,CAChBnP,gBAAiB,MACjB1kK,UAAW,CACTkyK,eAAe,EACfK,cAAc,GAEhB1lB,WAAY,CACV5D,QAAS,CACPtwP,KAAM,SACN09H,WAAY,CAAC,IAAK,IAAK,aAAc,WAAY,cAAe,iBAGpE60H,UAAW,IACX6lB,WAAY,IACZlmR,GArBiBgpR,GAA4B,YA0B5B,CACjBvsL,YAAa,EAEbmkK,QAAS,CACPonB,OAAQ,CACNh3O,OAAQ,CACNi3O,cAAAA,CAAeppB,GACb,MAAMnlP,EAAOmlP,EAAMnlP,KACnB,GAAIA,EAAKs3B,OAAOpxC,QAAU8Z,EAAKomP,SAASlgQ,OAAQ,CAC9C,MAAOoxC,QAAQ,WAACk0N,EAAA,MAAY90J,IAAUyuJ,EAAMmpB,OAAO5/Q,QAEnD,OAAOsR,EAAKs3B,OAAOlc,KAAI,CAACoc,EAAOxxC,KAC7B,MACMo2E,EADO+oL,EAAMoc,eAAe,GACfxvC,WAAWklC,SAASjxQ,GAEvC,MAAO,CACL29D,KAAMnsB,EACNolL,UAAWxgJ,EAAMyqF,gBACjB6mG,YAAatxL,EAAMy1G,YACnB28F,UAAW93K,EACXg5H,UAAWtzJ,EAAM+vL,YACjBX,WAAYA,EACZx8B,QAASm2B,EAAMilB,kBAAkBpkR,GAGjCqvB,MAAOrvB,EACR,IAGL,MAAO,EACT,GAGFgP,OAAAA,CAAQgC,EAAGy3Q,EAAYH,GACrBA,EAAOnpB,MAAMupB,qBAAqBD,EAAWp5P,OAC7Ci5P,EAAOnpB,MAAM3zP,QACf,IAIJ61P,OAAQ,CACN/4P,EAAG,CACD8F,KAAM,eACN+7Q,WAAY,CACV77J,SAAS,GAEXk0I,aAAa,EACb19B,KAAM,CACJ1+E,UAAU,GAEZgkI,YAAa,CACX97J,SAAS,GAEXk4J,WAAY,MC/EL,MAAM6D,WAAsB/E,IAoB3ChlR,GApBqB+pR,GAAsB,KAE7B,OAAM/pR,GAFC+pR,GAAsB,WAOvB,CAEhBnE,OAAQ,EAGR7sF,SAAU,EAGVssF,cAAe,IAGflgB,OAAQ,SClBG,MAAM6kB,WAAwBjR,GAmC3C0E,gBAAAA,CAAiB1uP,GACf,MAAM6oP,EAASz9P,KAAK69P,YAAYJ,OAC1BntQ,EAAS0P,KAAKwiQ,UAAU5tP,GAE9B,MAAO,CACLmiB,MAAO0mO,EAAO2E,YAAYxtP,GAC1BruB,MAAO,GAAKk3Q,EAAO8F,iBAAiBjzQ,EAAOmtQ,EAAO7c,OAEtD,CAEAqhB,eAAAA,CAAgBp8K,EAAMtmF,EAAM8gD,EAAOrZ,GACjC,OAAOyqN,GAA4BvgM,KAAKlxD,KAAjCyxP,CAAuC5rK,EAAMtmF,EAAM8gD,EAAOrZ,EACnE,CAEAj2C,MAAAA,CAAO+tB,GACL,MAAM+mE,EAAO7lF,KAAK69P,YACZ30O,EAAO28D,EAAKsqB,QACZmwI,EAASz6J,EAAKtmF,MAAQ,GACtBs3B,EAASgvD,EAAK66J,OAAO0hB,YAK3B,GAFAl5O,EAAKo3N,OAASA,EAED,WAATxhO,EAAmB,CACrB,MAAM7wB,EAAU+R,KAAK4jQ,6BAA6B9kP,GAC7C9e,KAAK/R,QAAQ44P,WAChB54P,EAAQy9P,YAAc,GAGxB,MAAMr6H,EAAa,CACjBiqI,OAAO,EACPwU,UAAWj5O,EAAOpxC,SAAW66P,EAAO76P,OACpCwI,WAGF+R,KAAK8kQ,cAAc57O,OAAMn6B,EAAWsiI,EAAYvyG,GAIlD9e,KAAKwlQ,eAAellB,EAAQ,EAAGA,EAAO76P,OAAQq5B,EAChD,CAEA0mP,cAAAA,CAAellB,EAAQjgM,EAAOrZ,EAAOloB,GACnC,MAAM6nO,EAAQ3mP,KAAK69P,YAAYgD,OACzBvhF,EAAiB,UAATxgK,EAEd,IAAK,IAAIv5B,EAAI86D,EAAO96D,EAAI86D,EAAQrZ,EAAOzhD,IAAK,CAC1C,MAAMqmQ,EAAQtL,EAAO/6P,GACf0I,EAAU+R,KAAK6jQ,0BAA0Bt+Q,EAAGqmQ,EAAMvuN,OAAS,SAAWve,GACtEixP,EAAgBppB,EAAMqpB,yBAAyBzqR,EAAGya,KAAKwiQ,UAAUj9Q,GAAGsI,GAEpE7E,EAAIs2L,EAAQqnE,EAAMuoB,QAAUa,EAAc/mR,EAC1CghE,EAAIs1H,EAAQqnE,EAAMwoB,QAAUY,EAAc/lN,EAE1CqnE,EAAa,CACjBroI,IACAghE,IACAo0L,MAAO2xB,EAAc3xB,MACrByT,KAAM/yN,MAAM91C,IAAM81C,MAAMkrB,GACxB/7D,WAGF+R,KAAK8kQ,cAAclZ,EAAOrmQ,EAAG8rI,EAAYvyG,EAC3C,CACF,EACFj5B,GApGqBgqR,GAAwB,KAE/B,SAAQhqR,GAFDgqR,GAAwB,WAOzB,CAChBpQ,mBAAoB,OACpBC,gBAAiB,QACjBxZ,UAAW,IACXW,UAAU,EACV/5P,SAAU,CACRo8B,KAAM,CACJ0J,KAAM,YAGV/sC,GAjBiBgqR,GAAwB,YAsBxB,CACjBvtL,YAAa,EAEbskK,OAAQ,CACN/4P,EAAG,CACD8F,KAAM,mBCzBC,MAAMs8Q,WAA0BrR,GAoC7C0E,gBAAAA,CAAiB1uP,GACf,MAAMixE,EAAO7lF,KAAK69P,YACZhnO,EAAS72B,KAAK0kP,MAAMnlP,KAAKs3B,QAAU,IACnC,OAACqqN,EAAA,OAAQC,GAAUt7J,EACnBv1F,EAAS0P,KAAKwiQ,UAAU5tP,GACxB5rB,EAAIk4P,EAAOqiB,iBAAiBjzQ,EAAOtH,GACnCghE,EAAIm3L,EAAOoiB,iBAAiBjzQ,EAAO05D,GAEzC,MAAO,CACLjzB,MAAOF,EAAOjiB,IAAU,GACxBruB,MAAO,IAAMyC,EAAI,KAAOghE,EAAI,IAEhC,CAEAj5D,MAAAA,CAAO+tB,GACL,MAAM+mE,EAAO7lF,KAAK69P,aACXt+P,KAAM+gP,EAAS,IAAMz6J,EAEtB06J,EAAqBvgP,KAAK0kP,MAAM+f,oBACtC,IAAI,MAACpkN,EAAA,MAAOrZ,GAASq5M,GAAiCx6J,EAAMy6J,EAAQC,GAUpE,GARAvgP,KAAKm/P,WAAa9+M,EAClBrgD,KAAKo/P,WAAap4N,EAEdi6M,GAAoBp7J,KACtBxlC,EAAQ,EACRrZ,EAAQs5M,EAAO76P,QAGbua,KAAK/R,QAAQ44P,SAAU,CAGpB7mP,KAAKy/P,oBACRz/P,KAAK6/P,cAEP,MAAO1vJ,QAASjnF,EAAA,SAAMilP,GAAYtoL,EAGlC38D,EAAKwvO,OAAS14P,KAAK0kP,MACnBx7N,EAAK2vO,cAAgB74P,KAAK4U,MAC1BsU,EAAKklP,aAAeD,EAASC,WAC7BllP,EAAKo3N,OAASA,EAEd,MAAMryP,EAAU+R,KAAK4jQ,6BAA6B9kP,GAClD7wB,EAAQ+yK,QAAUhhK,KAAK/R,QAAQ+yK,QAC/BhhK,KAAK8kQ,cAAc57O,OAAMn6B,EAAW,CAClCs/Q,UAAW9tB,EACXtyP,WACC6wB,EACL,MAAW9e,KAAKy/P,4BAEP55K,EAAKsqB,QACZnwG,KAAKy/P,oBAAqB,GAI5Bz/P,KAAKwlQ,eAAellB,EAAQjgM,EAAOrZ,EAAOloB,EAC5C,CAEA+gP,WAAAA,GACE,MAAM,SAAChZ,GAAY7mP,KAAK/R,SAEnB+R,KAAKy/P,oBAAsB5Y,IAC9B7mP,KAAKy/P,mBAAqBz/P,KAAK0kP,MAAMwrB,SAAS3zF,WAAW,SAG3Dv+D,MAAM6hJ,aACR,CAEA2F,cAAAA,CAAellB,EAAQjgM,EAAOrZ,EAAOloB,GACnC,MAAMwgK,EAAiB,UAATxgK,GACR,OAAC4hO,EAAA,OAAQ+c,EAAA,SAAQmC,EAAA,SAAUuO,GAAYnuQ,KAAK69P,YAC5C8G,EAAY3kQ,KAAK6jQ,0BAA0BxjN,EAAOvhC,GAClD0lP,EAAgBxkQ,KAAKskQ,iBAAiBK,GACtCJ,EAAiBvkQ,KAAKukQ,eAAezlP,EAAM0lP,GAC3CzG,EAAQrd,EAAOE,KACfod,EAAQP,EAAO7c,MACf,SAACgT,EAAA,QAAU5yF,GAAWhhK,KAAK/R,QAC3BqgR,EAAer2G,GAAS27F,GAAYA,EAAWn5O,OAAOmiO,kBACtD2xB,EAAevuQ,KAAK0kP,MAAM+f,qBAAuBnlF,GAAkB,SAATxgK,EAChE,IAAI2vP,EAAapuN,EAAQ,GAAKrgD,KAAKwiQ,UAAUniN,EAAQ,GAErD,IAAK,IAAI96D,EAAI86D,EAAO96D,EAAI86D,EAAQrZ,IAASzhD,EAAG,CAC1C,MAAMqmQ,EAAQtL,EAAO/6P,GACf+K,EAAS0P,KAAKwiQ,UAAUj9Q,GACxB8rI,EAAak9I,EAAe3iB,EAAQ,GACpC8iB,EAAW5zB,GAAcxqP,EAAO0tQ,IAChC3K,EAAShiI,EAAW0sI,GAASrd,EAAOM,iBAAiB1wP,EAAOytQ,GAAQx4Q,GACpE+tQ,EAASjiI,EAAW2sI,GAAS1+E,GAASovF,EAAWjR,EAAOyK,eAAiBzK,EAAOzc,iBAAiB4e,EAAW5/P,KAAK88P,WAAWW,EAAQntQ,EAAQsvQ,GAAYtvQ,EAAO0tQ,GAAQz4Q,GAE7K8rI,EAAWwgI,KAAO/yN,MAAMu0N,IAAWv0N,MAAMw0N,IAAWob,EACpDr9I,EAAWjkD,KAAO7nF,EAAI,GAAK8c,KAAMse,IAAIrwB,EAAOytQ,GAAS0Q,EAAW1Q,IAAWuQ,EACvEttG,IACF3vC,EAAW/gI,OAASA,EACpB+gI,EAAW3kI,IAAMyhR,EAAS5uQ,KAAKha,IAG7Bg/Q,IACFlzI,EAAWpjI,QAAUu2Q,GAAiBxkQ,KAAK6jQ,0BAA0Bt+Q,EAAGqmQ,EAAMvuN,OAAS,SAAWve,IAG/FyvP,GACHvuQ,KAAK8kQ,cAAclZ,EAAOrmQ,EAAG8rI,EAAYvyG,GAG3C2vP,EAAan+Q,CACf,CAEA0P,KAAK6kQ,oBAAoBL,EAAe1lP,EAAM6lP,EAChD,CAKAtB,cAAAA,GACE,MAAMx9K,EAAO7lF,KAAK69P,YACZt+P,EAAOsmF,EAAKtmF,MAAQ,GAE1B,IAAKS,KAAK/R,QAAQ44P,SAAU,CAC1B,IAAIz2N,EAAM,EACV,IAAK,IAAI7qC,EAAIga,EAAK9Z,OAAS,EAAGF,GAAK,IAAKA,EACtC6qC,EAAM/tB,KAAK+tB,IAAIA,EAAK7wB,EAAKha,GAAGs4D,KAAK79C,KAAK6jQ,0BAA0Bt+Q,IAAM,GAExE,OAAO6qC,EAAM,GAAKA,EAGpB,MAAM+/E,EAAUtqB,EAAKsqB,QACf+rE,EAAS/rE,EAAQliH,SAAWkiH,EAAQliH,QAAQy9P,aAAe,EAEjE,IAAKnsP,EAAK9Z,OACR,OAAOy2L,EAGT,MAAM81E,EAAazyP,EAAK,GAAGs+C,KAAK79C,KAAK6jQ,0BAA0B,IACzD8K,EAAYpvQ,EAAKA,EAAK9Z,OAAS,GAAGo4D,KAAK79C,KAAK6jQ,0BAA0BtkQ,EAAK9Z,OAAS,IAC1F,OAAO4c,KAAK+tB,IAAI8rJ,EAAQ81E,EAAY2c,GAAa,CACnD,EACF9oR,GA7KqBoqR,GAA0B,KAEjC,WAAUpqR,GAFHoqR,GAA0B,WAO3B,CAChBxQ,oBAAoB,EACpBC,gBAAiB,QACjB7Y,UAAU,EACVj0N,MAAM,IACN/sC,GAZiBoqR,GAA0B,YAiB1B,CAEjB9pB,YAAa,CACXrnO,KAAM,SAGR8nO,OAAQ,CACN59P,EAAG,CACD2K,KAAM,UAERq2D,EAAG,CACDr2D,KAAM,iNC+Bd,SAAS+7L,KACP,MAAM,IAAIrlM,MAAM,kFAClB,CAQA,MAAM8lR,GAYJ,eAAOnpB,CACL9wO,GAEAtxB,OAAOsyC,OAAOi5O,GAAgB7pR,UAAW4vB,EAC3C,CAIA7vB,WAAAA,CAAY4H,GAAoBpI,GAAA,uBAC9Bma,KAAK/R,QAAUA,GAAW,CAAC,CAC7B,CAGAksE,IAAAA,GAAQ,CAERu1D,OAAAA,GACE,OAAOggE,IACT,CAEAjoL,KAAAA,GACE,OAAOioL,IACT,CAEAjnL,MAAAA,GACE,OAAOinL,IACT,CAEA/rK,GAAAA,GACE,OAAO+rK,IACT,CAEAh6D,IAAAA,GACE,OAAOg6D,IACT,CAEA0gF,OAAAA,GACE,OAAO1gF,IACT,CAEA2gF,KAAAA,GACE,OAAO3gF,IACT,EAGF,IAAA4gF,GACSH,GC9GT,SAASI,GAAaC,EAAS5vB,EAAMr6P,EAAO6/P,GAC1C,MAAM,WAAC90B,EAAU,KAAE/xN,EAAA,QAAMkhP,GAAW+vB,EAC9B9vB,EAASpvB,EAAWusC,YAAYnd,OACtC,GAAIA,GAAUE,IAASF,EAAOE,MAAiB,MAATA,GAAgBH,GAAWlhP,EAAK9Z,OAAQ,CAC5E,MAAMgrR,EAAe/vB,EAAOgwB,eAAiBjxB,GAAgBD,GAC7D,IAAK4G,EACH,OAAOqqB,EAAalxQ,EAAMqhP,EAAMr6P,GAC3B,GAAI+qO,EAAW4tC,eAAgB,CAIpC,MAAM/mJ,EAAK54G,EAAK,GACV82F,EAA+B,oBAAhB8hB,EAAG+lB,UAA2B/lB,EAAG+lB,SAAS0iH,GAC/D,GAAIvqJ,EAAO,CACT,MAAMh2C,EAAQowN,EAAalxQ,EAAMqhP,EAAMr6P,EAAQ8vG,GACzCp3D,EAAMwxO,EAAalxQ,EAAMqhP,EAAMr6P,EAAQ8vG,GAC7C,MAAO,CAAC7tC,GAAInI,EAAMmI,GAAID,GAAItpB,EAAIspB,MAKpC,MAAO,CAACC,GAAI,EAAGD,GAAIhpD,EAAK9Z,OAAS,EACnC,CAUA,SAASkrR,GAAyBjsB,EAAO9D,EAAM9+O,EAAU2sD,EAAS23L,GAChE,MAAMwW,EAAWlY,EAAMksB,+BACjBrqR,EAAQub,EAAS8+O,GACvB,IAAK,IAAIr7P,EAAI,EAAGg2P,EAAOqhB,EAASn3Q,OAAQF,EAAIg2P,IAAQh2P,EAAG,CACrD,MAAM,MAACqvB,EAAA,KAAOrV,GAAQq9P,EAASr3Q,IACzB,GAACijE,EAAA,GAAID,GAAMgoN,GAAa3T,EAASr3Q,GAAIq7P,EAAMr6P,EAAO6/P,GACxD,IAAK,IAAIz+L,EAAIa,EAAIb,GAAKY,IAAMZ,EAAG,CAC7B,MAAM18D,EAAUsU,EAAKooD,GAChB18D,EAAQ4mQ,MACXpjM,EAAQxjE,EAAS2pB,EAAO+yC,EAE5B,CACF,CACF,CA2BA,SAASkpN,GAAkBnsB,EAAO5iP,EAAU8+O,EAAMkwB,EAAkBzqB,GAClE,MAAMpoN,EAAQ,GAEd,IAAKooN,IAAqB3B,EAAMqsB,cAAcjvQ,GAC5C,OAAOm8B,EAaT,OADA0yO,GAAyBjsB,EAAO9D,EAAM9+O,GATf,SAAS7W,EAASwwP,EAAc7mO,IAChDyxO,GAAqBsF,GAAe1gQ,EAASy5P,EAAMif,UAAW,KAG/D14Q,EAAQ+lR,QAAQlvQ,EAAS9Y,EAAG8Y,EAASkoD,EAAG8mN,IAC1C7yO,EAAM94C,KAAK,CAAC8F,UAASwwP,eAAc7mO,SAEvC,IAEgE,GACzDqpB,CACT,CAoCA,SAASgzO,GAAyBvsB,EAAO5iP,EAAU8+O,EAAMwF,EAAW0qB,EAAkBzqB,GACpF,IAAIpoN,EAAQ,GACZ,MAAMizO,EA5ER,SAAkCtwB,GAChC,MAAMuwB,GAA8B,IAAvBvwB,EAAK/5P,QAAQ,KACpBuqR,GAA8B,IAAvBxwB,EAAK/5P,QAAQ,KAE1B,OAAO,SAAS23P,EAAKC,GACnB,MAAM5pJ,EAASs8K,EAAO9uQ,KAAKse,IAAI69N,EAAIx1P,EAAIy1P,EAAIz1P,GAAK,EAC1C+rG,EAASq8K,EAAO/uQ,KAAKse,IAAI69N,EAAIx0L,EAAIy0L,EAAIz0L,GAAK,EAChD,OAAO3nD,KAAK87O,KAAK97O,KAAKM,IAAIkyF,EAAQ,GAAKxyF,KAAKM,IAAIoyF,EAAQ,GAC1D,CACF,CAmEyBs8K,CAAyBzwB,GAChD,IAAI0wB,EAAc72P,OAAOmiO,kBAyBzB,OADA+zB,GAAyBjsB,EAAO9D,EAAM9+O,GAtBtC,SAAwB7W,EAASwwP,EAAc7mO,GAC7C,MAAMo8P,EAAU/lR,EAAQ+lR,QAAQlvQ,EAAS9Y,EAAG8Y,EAASkoD,EAAG8mN,GACxD,GAAI1qB,IAAc4qB,EAChB,OAGF,MAAMtI,EAASz9Q,EAAQsmR,eAAeT,GAEtC,OADsBzqB,GAAoB3B,EAAMqsB,cAAcrI,MACzCsI,EACnB,OAGF,MAAM1yB,EAAW4yB,EAAepvQ,EAAU4mQ,GACtCpqB,EAAWgzB,GACbrzO,EAAQ,CAAC,CAAChzC,UAASwwP,eAAc7mO,UACjC08P,EAAchzB,GACLA,IAAagzB,GAEtBrzO,EAAM94C,KAAK,CAAC8F,UAASwwP,eAAc7mO,SAEvC,IAGOqpB,CACT,CAYA,SAASuzO,GAAgB9sB,EAAO5iP,EAAU8+O,EAAMwF,EAAW0qB,EAAkBzqB,GAC3E,OAAKA,GAAqB3B,EAAMqsB,cAAcjvQ,GAI9B,MAAT8+O,GAAiBwF,EAEpB6qB,GAAyBvsB,EAAO5iP,EAAU8+O,EAAMwF,EAAW0qB,EAAkBzqB,GA1EnF,SAA+B3B,EAAO5iP,EAAU8+O,EAAMkwB,GACpD,IAAI7yO,EAAQ,GAYZ,OADA0yO,GAAyBjsB,EAAO9D,EAAM9+O,GATtC,SAAwB7W,EAASwwP,EAAc7mO,GAC7C,MAAM,WAACm3P,EAAA,SAAYC,GAAY/gR,EAAQwmR,SAAS,CAAC,aAAc,YAAaX,IACtE,MAAC1yB,GAASP,GAAkB5yP,EAAS,CAACjC,EAAG8Y,EAAS9Y,EAAGghE,EAAGloD,EAASkoD,IAEnE40L,GAAcR,EAAO2tB,EAAYC,IACnC/tO,EAAM94C,KAAK,CAAC8F,UAASwwP,eAAc7mO,SAEvC,IAGOqpB,CACT,CA2DMyzO,CAAsBhtB,EAAO5iP,EAAU8+O,EAAMkwB,GAJxC,EAMX,CAWA,SAASa,GAAajtB,EAAO5iP,EAAU8+O,EAAMwF,EAAW0qB,GACtD,MAAM7yO,EAAQ,GACR2zO,EAAuB,MAAThxB,EAAe,WAAa,WAChD,IAAIixB,GAAiB,EAWrB,OATAlB,GAAyBjsB,EAAO9D,EAAM9+O,GAAU,CAAC7W,EAASwwP,EAAc7mO,KAClE3pB,EAAQ2mR,GAAa9vQ,EAAS8+O,GAAOkwB,KACvC7yO,EAAM94C,KAAK,CAAC8F,UAASwwP,eAAc7mO,UACnCi9P,EAAiBA,GAAkB5mR,EAAQ+lR,QAAQlvQ,EAAS9Y,EAAG8Y,EAASkoD,EAAG8mN,OAM3E1qB,IAAcyrB,EACT,GAEF5zO,CACT,CAMA,IAAA6zO,GAAe,CAEbnB,4BAGAoB,MAAO,CAYLn9P,KAAAA,CAAM8vO,EAAOnuP,EAAGtI,EAAS6iR,GACvB,MAAMhvQ,EAAW6yP,GAAoBp+P,EAAGmuP,GAElC9D,EAAO3yP,EAAQ2yP,MAAQ,IACvByF,EAAmBp4P,EAAQo4P,mBAAoB,EAC/CpoN,EAAQhwC,EAAQm4P,UAClByqB,GAAkBnsB,EAAO5iP,EAAU8+O,EAAMkwB,EAAkBzqB,GAC3DmrB,GAAgB9sB,EAAO5iP,EAAU8+O,GAAM,EAAOkwB,EAAkBzqB,GAC9Dv5P,EAAW,GAEjB,OAAKmxC,EAAMx4C,QAIXi/P,EAAMksB,+BAA+BjrR,SAASkgG,IAC5C,MAAMjxE,EAAQqpB,EAAM,GAAGrpB,MACjB3pB,EAAU46F,EAAKtmF,KAAKqV,GAGtB3pB,IAAYA,EAAQ4mQ,MACtB/kQ,EAAS3H,KAAK,CAAC8F,UAASwwP,aAAc51J,EAAKjxE,MAAOA,aAI/C9nB,GAbE,EAcX,EAYAqjH,OAAAA,CAAQu0I,EAAOnuP,EAAGtI,EAAS6iR,GACzB,MAAMhvQ,EAAW6yP,GAAoBp+P,EAAGmuP,GAClC9D,EAAO3yP,EAAQ2yP,MAAQ,KACvByF,EAAmBp4P,EAAQo4P,mBAAoB,EACrD,IAAIpoN,EAAQhwC,EAAQm4P,UAChByqB,GAAkBnsB,EAAO5iP,EAAU8+O,EAAMkwB,EAAkBzqB,GAC7DmrB,GAAgB9sB,EAAO5iP,EAAU8+O,GAAM,EAAOkwB,EAAkBzqB,GAElE,GAAIpoN,EAAMx4C,OAAS,EAAG,CACpB,MAAMg2P,EAAex9M,EAAM,GAAGw9M,aACxBl8O,EAAOmlP,EAAMoc,eAAerlB,GAAcl8O,KAChD0+B,EAAQ,GACR,IAAK,IAAI14C,EAAI,EAAGA,EAAIga,EAAK9Z,SAAUF,EACjC04C,EAAM94C,KAAK,CAAC8F,QAASsU,EAAKha,GAAIk2P,eAAc7mO,MAAOrvB,IAIvD,OAAO04C,CACT,EAYA2tN,MAAK,CAAClH,EAAOnuP,EAAGtI,EAAS6iR,IAIhBD,GAAkBnsB,EAHRiQ,GAAoBp+P,EAAGmuP,GAC3Bz2P,EAAQ2yP,MAAQ,KAEmBkwB,EADvB7iR,EAAQo4P,mBAAoB,GAavD2rB,OAAAA,CAAQttB,EAAOnuP,EAAGtI,EAAS6iR,GACzB,MAAMhvQ,EAAW6yP,GAAoBp+P,EAAGmuP,GAClC9D,EAAO3yP,EAAQ2yP,MAAQ,KACvByF,EAAmBp4P,EAAQo4P,mBAAoB,EACrD,OAAOmrB,GAAgB9sB,EAAO5iP,EAAU8+O,EAAM3yP,EAAQm4P,UAAW0qB,EAAkBzqB,EACrF,EAWAr9P,EAAC,CAAC07P,EAAOnuP,EAAGtI,EAAS6iR,IAEZa,GAAajtB,EADHiQ,GAAoBp+P,EAAGmuP,GACH,IAAKz2P,EAAQm4P,UAAW0qB,GAY/D9mN,EAAC,CAAC06L,EAAOnuP,EAAGtI,EAAS6iR,IAEZa,GAAajtB,EADHiQ,GAAoBp+P,EAAGmuP,GACH,IAAKz2P,EAAQm4P,UAAW0qB,KCpWnE,MAAMmB,GAAmB,CAAC,OAAQ,MAAO,QAAS,UAElD,SAASC,GAAiBznR,EAAOqX,GAC/B,OAAOrX,EAAM1F,QAAO+zC,GAAKA,EAAEklB,MAAQl8C,GACrC,CAEA,SAASqwQ,GAA4B1nR,EAAOm2P,GAC1C,OAAOn2P,EAAM1F,QAAO+zC,IAA0C,IAArCm5O,GAAiBprR,QAAQiyC,EAAEklB,MAAellB,EAAEk8N,IAAIpU,OAASA,GACpF,CAEA,SAASwxB,GAAa3nR,EAAOy/E,GAC3B,OAAOz/E,EAAM+tC,MAAK,CAACr3B,EAAGC,KACpB,MAAMo6O,EAAKtxK,EAAU9oE,EAAID,EACnBy8I,EAAK1zE,EAAU/oE,EAAIC,EACzB,OAAOo6O,EAAG11C,SAAWloD,EAAGkoD,OACtB01C,EAAG5mO,MAAQgpI,EAAGhpI,MACd4mO,EAAG11C,OAASloD,EAAGkoD,MAAM,GAE3B,CAuCA,SAASusE,GAAcC,EAASlhQ,GAC9B,MAAMgsP,EAlBR,SAAqBkV,GACnB,MAAMlV,EAAS,CAAC,EAChB,IAAK,MAAMr8H,KAAQuxI,EAAS,CAC1B,MAAM,MAAC5yN,EAAK,IAAE1B,EAAA,YAAKu0N,GAAexxI,EAClC,IAAKrhF,IAAUuyN,GAAiB1jR,SAASyvD,GACvC,SAEF,MAAMsyM,EAAS8M,EAAO19M,KAAW09M,EAAO19M,GAAS,CAAC1Y,MAAO,EAAGwrO,OAAQ,EAAG1sE,OAAQ,EAAGjoJ,KAAM,IACxFyyM,EAAOtpN,QACPspN,EAAOxqD,QAAUysE,CACnB,CACA,OAAOnV,CACT,CAMiBqV,CAAYH,IACrB,aAACI,EAAA,cAAcC,GAAiBvhQ,EACtC,IAAI7rB,EAAGg2P,EAAMq3B,EACb,IAAKrtR,EAAI,EAAGg2P,EAAO+2B,EAAQ7sR,OAAQF,EAAIg2P,IAAQh2P,EAAG,CAChDqtR,EAASN,EAAQ/sR,GACjB,MAAM,SAACstR,GAAYD,EAAO5d,IACpBt1M,EAAQ09M,EAAOwV,EAAOlzN,OACtB8hL,EAAS9hL,GAASkzN,EAAOL,YAAc7yN,EAAMomJ,OAC/C8sE,EAAOtL,YACTsL,EAAO9+K,MAAQ0tI,EAASA,EAASkxC,EAAeG,GAAYzhQ,EAAO0hQ,eACnEF,EAAO7+K,OAAS4+K,IAEhBC,EAAO9+K,MAAQ4+K,EACfE,EAAO7+K,OAASytI,EAASA,EAASmxC,EAAgBE,GAAYzhQ,EAAO2hQ,gBAEzE,CACA,OAAO3V,CACT,CAsBA,SAAS4V,GAAeC,EAAYtP,EAAWxiQ,EAAGC,GAChD,OAAOiB,KAAK+tB,IAAI6iP,EAAW9xQ,GAAIwiQ,EAAUxiQ,IAAMkB,KAAK+tB,IAAI6iP,EAAW7xQ,GAAIuiQ,EAAUviQ,GACnF,CAEA,SAAS8xQ,GAAiBD,EAAYE,GACpCF,EAAWn5K,IAAMz3F,KAAK+tB,IAAI6iP,EAAWn5K,IAAKq5K,EAAWr5K,KACrDm5K,EAAW7lR,KAAOiV,KAAK+tB,IAAI6iP,EAAW7lR,KAAM+lR,EAAW/lR,MACvD6lR,EAAWp1I,OAASx7H,KAAK+tB,IAAI6iP,EAAWp1I,OAAQs1I,EAAWt1I,QAC3Do1I,EAAW5lR,MAAQgV,KAAK+tB,IAAI6iP,EAAW5lR,MAAO8lR,EAAW9lR,MAC3D,CAEA,SAAS+lR,GAAWzP,EAAWvyP,EAAQwhQ,EAAQxV,GAC7C,MAAM,IAACp/M,EAAA,IAAKg3M,GAAO4d,EACbK,EAAatP,EAAUsP,WAG7B,IAAK7kN,GAASpQ,GAAM,CACd40N,EAAO/0N,OAET8lN,EAAU3lN,IAAQ40N,EAAO/0N,MAE3B,MAAM6B,EAAQ09M,EAAOwV,EAAOlzN,QAAU,CAAC7B,KAAM,EAAG7W,MAAO,GACvD0Y,EAAM7B,KAAOx7C,KAAK+tB,IAAIsvB,EAAM7B,KAAM+0N,EAAOtL,WAAatS,EAAIjhK,OAASihK,EAAIlhK,OACvE8+K,EAAO/0N,KAAO6B,EAAM7B,KAAO6B,EAAM1Y,MACjC28N,EAAU3lN,IAAQ40N,EAAO/0N,KAGvBm3M,EAAIqe,YACNH,GAAiBD,EAAYje,EAAIqe,cAGnC,MAAMC,EAAWjxQ,KAAK+tB,IAAI,EAAGhf,EAAOmiQ,WAAaP,GAAeC,EAAYtP,EAAW,OAAQ,UACzFh6B,EAAYtnO,KAAK+tB,IAAI,EAAGhf,EAAOoiQ,YAAcR,GAAeC,EAAYtP,EAAW,MAAO,WAC1F8P,EAAeH,IAAa3P,EAAUlgQ,EACtCiwQ,EAAgB/pC,IAAcg6B,EAAUzoN,EAK9C,OAJAyoN,EAAUlgQ,EAAI6vQ,EACd3P,EAAUzoN,EAAIyuL,EAGPipC,EAAOtL,WACV,CAACqM,KAAMF,EAAcl/L,MAAOm/L,GAC5B,CAACC,KAAMD,EAAen/L,MAAOk/L,EACnC,CAgBA,SAASG,GAAWtM,EAAY3D,GAC9B,MAAMsP,EAAatP,EAAUsP,WAE7B,SAASY,EAAmBlrI,GAC1B,MAAMg5D,EAAS,CAACv0M,KAAM,EAAG0sG,IAAK,EAAGzsG,MAAO,EAAGwwI,OAAQ,GAInD,OAHA8K,EAAUhjJ,SAASq4D,IACjB2jJ,EAAO3jJ,GAAO37C,KAAK+tB,IAAIuzO,EAAU3lN,GAAMi1N,EAAWj1N,GAAI,IAEjD2jJ,CACT,CAEA,OACIkyE,EADGvM,EACgB,CAAC,OAAQ,SACT,CAAC,MAAO,UACjC,CAEA,SAASwM,GAASC,EAAOpQ,EAAWvyP,EAAQgsP,GAC1C,MAAM4W,EAAa,GACnB,IAAIzuR,EAAGg2P,EAAMq3B,EAAQ5d,EAAKif,EAAOvyB,EAEjC,IAAKn8P,EAAI,EAAGg2P,EAAOw4B,EAAMtuR,OAAQwuR,EAAQ,EAAG1uR,EAAIg2P,IAAQh2P,EAAG,CACzDqtR,EAASmB,EAAMxuR,GACfyvQ,EAAM4d,EAAO5d,IAEbA,EAAIjkQ,OACF6hR,EAAO9+K,OAAS6vK,EAAUlgQ,EAC1BmvQ,EAAO7+K,QAAU4vK,EAAUzoN,EAC3B04N,GAAWhB,EAAOtL,WAAY3D,IAEhC,MAAM,KAACgQ,EAAA,MAAMp/L,GAAS6+L,GAAWzP,EAAWvyP,EAAQwhQ,EAAQxV,GAI5D6W,GAASN,GAAQK,EAAWvuR,OAG5Bi8P,EAAUA,GAAWntK,EAEhBygL,EAAI6d,UACPmB,EAAW7uR,KAAKytR,EAEpB,CAEA,OAAOqB,GAASH,GAASE,EAAYrQ,EAAWvyP,EAAQgsP,IAAW1b,CACrE,CAEA,SAASwyB,GAAWlf,EAAK5nQ,EAAM0sG,EAAKhG,EAAOC,GACzCihK,EAAIl7J,IAAMA,EACVk7J,EAAI5nQ,KAAOA,EACX4nQ,EAAI3nQ,MAAQD,EAAO0mG,EACnBkhK,EAAIn3H,OAAS/jC,EAAM/F,EACnBihK,EAAIlhK,MAAQA,EACZkhK,EAAIjhK,OAASA,CACf,CAEA,SAASogL,GAAWJ,EAAOpQ,EAAWvyP,EAAQgsP,GAC5C,MAAMgX,EAAchjQ,EAAOy1J,QAC3B,IAAI,EAAC79K,EAAA,EAAGghE,GAAK25M,EAEb,IAAK,MAAMiP,KAAUmB,EAAO,CAC1B,MAAM/e,EAAM4d,EAAO5d,IACbt1M,EAAQ09M,EAAOwV,EAAOlzN,QAAU,CAAC1Y,MAAO,EAAGwrO,OAAQ,EAAG1sE,OAAQ,GAC9DA,EAAS8sE,EAAQL,YAAc7yN,EAAMomJ,QAAW,EACtD,GAAI8sE,EAAOtL,WAAY,CACrB,MAAMxzK,EAAQ6vK,EAAUlgQ,EAAIqiM,EACtB/xG,EAASr0C,EAAM7B,MAAQm3M,EAAIjhK,OAC7Bo5F,GAAQztI,EAAMW,SAChB2J,EAAItK,EAAMW,OAER20M,EAAI6d,SACNqB,GAAWlf,EAAKof,EAAYhnR,KAAM48D,EAAG54C,EAAOmiQ,WAAaa,EAAY/mR,MAAQ+mR,EAAYhnR,KAAM2mG,GAE/FmgL,GAAWlf,EAAK2O,EAAUv2Q,KAAOsyD,EAAM8yN,OAAQxoN,EAAG8pC,EAAOC,GAE3Dr0C,EAAMW,MAAQ2J,EACdtK,EAAM8yN,QAAU1+K,EAChB9pC,EAAIgrM,EAAIn3H,WACH,CACL,MAAM9pC,EAAS4vK,EAAUzoN,EAAI4qJ,EACvBhyG,EAAQp0C,EAAM7B,MAAQm3M,EAAIlhK,MAC5Bq5F,GAAQztI,EAAMW,SAChBr3D,EAAI02D,EAAMW,OAER20M,EAAI6d,SACNqB,GAAWlf,EAAKhsQ,EAAGorR,EAAYt6K,IAAKhG,EAAO1iF,EAAOoiQ,YAAcY,EAAYv2I,OAASu2I,EAAYt6K,KAEjGo6K,GAAWlf,EAAKhsQ,EAAG26Q,EAAU7pK,IAAMp6C,EAAM8yN,OAAQ1+K,EAAOC,GAE1Dr0C,EAAMW,MAAQr3D,EACd02D,EAAM8yN,QAAUz+K,EAChB/qG,EAAIgsQ,EAAI3nQ,MAEZ,CAEAs2Q,EAAU36Q,EAAIA,EACd26Q,EAAU35M,EAAIA,CAChB,CAwBA,IAAAsoN,GAAe,CAQb+B,MAAAA,CAAO3vB,EAAOnpN,GACPmpN,EAAMqvB,QACTrvB,EAAMqvB,MAAQ,IAIhBx4O,EAAKs3O,SAAWt3O,EAAKs3O,WAAY,EACjCt3O,EAAKz5B,SAAWy5B,EAAKz5B,UAAY,MACjCy5B,EAAKuqK,OAASvqK,EAAKuqK,QAAU,EAE7BvqK,EAAK+4O,QAAU/4O,EAAK+4O,SAAW,WAC7B,MAAO,CAAC,CACNljN,EAAG,EACHkpM,IAAAA,CAAKqJ,GACHpoO,EAAK++N,KAAKqJ,EACZ,GAEJ,EAEAjf,EAAMqvB,MAAM5uR,KAAKo2C,EACnB,EAOAg5O,SAAAA,CAAU7vB,EAAO8vB,GACf,MAAM5/P,EAAQ8vO,EAAMqvB,MAAQrvB,EAAMqvB,MAAMltR,QAAQ2tR,IAAe,GAChD,IAAX5/P,GACF8vO,EAAMqvB,MAAMltO,OAAOjyB,EAAO,EAE9B,EAQAyH,SAAAA,CAAUqoO,EAAOnpN,EAAMttC,GACrBstC,EAAKs3O,SAAW5kR,EAAQ4kR,SACxBt3O,EAAKz5B,SAAW7T,EAAQ6T,SACxBy5B,EAAKuqK,OAAS73M,EAAQ63M,MACxB,EAUA/0M,MAAAA,CAAO2zP,EAAO5wJ,EAAOC,EAAQ0gL,GAC3B,IAAK/vB,EACH,OAGF,MAAM79E,EAAU2nF,GAAU9J,EAAMz2P,QAAQ2kR,OAAO/rG,SACzCisG,EAAiBzwQ,KAAK+tB,IAAI0jE,EAAQ+yE,EAAQ/yE,MAAO,GACjDi/K,EAAkB1wQ,KAAK+tB,IAAI2jE,EAAS8yE,EAAQ9yE,OAAQ,GACpDggL,EA5QV,SAA0BA,GACxB,MAAMW,EA1DR,SAAmBX,GACjB,MAAMW,EAAc,GACpB,IAAInvR,EAAGg2P,EAAMyZ,EAAKh3M,EAAK0B,EAAO6yN,EAE9B,IAAKhtR,EAAI,EAAGg2P,GAAQw4B,GAAS,IAAItuR,OAAQF,EAAIg2P,IAAQh2P,EACnDyvQ,EAAM+e,EAAMxuR,KACVuc,SAAUk8C,EAAK/vD,SAAUyxD,QAAO6yN,cAAc,IAAMvd,GACtD0f,EAAYvvR,KAAK,CACfyvB,MAAOrvB,EACPyvQ,MACAh3M,MACAspN,WAAYtS,EAAImT,eAChBriE,OAAQkvD,EAAIlvD,OACZpmJ,MAAOA,GAAU1B,EAAM0B,EACvB6yN,gBAGJ,OAAOmC,CACT,CAwCsBC,CAAUZ,GACxBlB,EAAWT,GAAasC,EAAY3vR,QAAOg8I,GAAQA,EAAKi0H,IAAI6d,YAAW,GACvEzlR,EAAOglR,GAAaF,GAAiBwC,EAAa,SAAS,GAC3DrnR,EAAQ+kR,GAAaF,GAAiBwC,EAAa,UACnD56K,EAAMs4K,GAAaF,GAAiBwC,EAAa,QAAQ,GACzD72I,EAASu0I,GAAaF,GAAiBwC,EAAa,WACpDE,EAAmBzC,GAA4BuC,EAAa,KAC5DG,EAAiB1C,GAA4BuC,EAAa,KAEhE,MAAO,CACL7B,WACAiC,WAAY1nR,EAAKsB,OAAOorG,GACxBi7K,eAAgB1nR,EAAMqB,OAAOmmR,GAAgBnmR,OAAOmvI,GAAQnvI,OAAOkmR,GACnEjR,UAAWuO,GAAiBwC,EAAa,aACzCM,SAAU5nR,EAAKsB,OAAOrB,GAAOqB,OAAOmmR,GACpCvN,WAAYxtK,EAAIprG,OAAOmvI,GAAQnvI,OAAOkmR,GAE1C,CA0PkBK,CAAiBvwB,EAAMqvB,OAC/BmB,EAAgBnB,EAAMiB,SACtBG,EAAkBpB,EAAMzM,WAI9Bz+P,GAAK67O,EAAMqvB,OAAO/e,IACgB,oBAArBA,EAAIogB,cACbpgB,EAAIogB,kBA+BR,MAAMC,EAA0BH,EAAc9mR,QAAO,CAACy5B,EAAOk5G,IAC3DA,EAAKi0H,IAAI/mQ,UAAwC,IAA7B8yI,EAAKi0H,IAAI/mQ,QAAQ4lH,QAAoBhsF,EAAQA,EAAQ,GAAG,IAAM,EAE9EzW,EAASxsB,OAAO24O,OAAO,CAC3Bg2C,WAAYz/K,EACZ0/K,YAAaz/K,EACb8yE,UACAisG,iBACAC,kBACAL,aAAcI,EAAiB,EAAIuC,EACnC1C,cAAeI,EAAkB,IAE7BE,EAAaruR,OAAOsyC,OAAO,CAAC,EAAG2vI,GACrCqsG,GAAiBD,EAAYzkB,GAAUimB,IACvC,MAAM9Q,EAAY/+Q,OAAOsyC,OAAO,CAC9B+7O,aACAxvQ,EAAGqvQ,EACH53N,EAAG63N,EACH/pR,EAAG69K,EAAQz5K,KACX48D,EAAG68G,EAAQ/sE,KACV+sE,GAEGu2F,EAASiV,GAAc6C,EAAcxmR,OAAOymR,GAAkB/jQ,GAGpE0iQ,GAASC,EAAMlB,SAAUlP,EAAWvyP,EAAQgsP,GAG5C0W,GAASoB,EAAevR,EAAWvyP,EAAQgsP,GAGvC0W,GAASqB,EAAiBxR,EAAWvyP,EAAQgsP,IAE/C0W,GAASoB,EAAevR,EAAWvyP,EAAQgsP,GApRjD,SAA0BuG,GACxB,MAAMsP,EAAatP,EAAUsP,WAE7B,SAASqC,EAAUt3N,GACjB,MAAMi/E,EAAS56H,KAAK+tB,IAAI6iP,EAAWj1N,GAAO2lN,EAAU3lN,GAAM,GAE1D,OADA2lN,EAAU3lN,IAAQi/E,EACXA,CACT,CACA0mI,EAAU35M,GAAKsrN,EAAU,OACzB3R,EAAU36Q,GAAKssR,EAAU,QACzBA,EAAU,SACVA,EAAU,SACZ,CA2QIC,CAAiB5R,GAGjBwQ,GAAWJ,EAAMe,WAAYnR,EAAWvyP,EAAQgsP,GAGhDuG,EAAU36Q,GAAK26Q,EAAUlgQ,EACzBkgQ,EAAU35M,GAAK25M,EAAUzoN,EAEzBi5N,GAAWJ,EAAMgB,eAAgBpR,EAAWvyP,EAAQgsP,GAEpD1Y,EAAMif,UAAY,CAChBv2Q,KAAMu2Q,EAAUv2Q,KAChB0sG,IAAK6pK,EAAU7pK,IACfzsG,MAAOs2Q,EAAUv2Q,KAAOu2Q,EAAUlgQ,EAClCo6H,OAAQ8lI,EAAU7pK,IAAM6pK,EAAUzoN,EAClC64C,OAAQ4vK,EAAUzoN,EAClB44C,MAAO6vK,EAAUlgQ,GAInBoF,GAAKkrQ,EAAMpQ,WAAYiP,IACrB,MAAM5d,EAAM4d,EAAO5d,IACnBpwQ,OAAOsyC,OAAO89N,EAAKtQ,EAAMif,WACzB3O,EAAIjkQ,OAAO4yQ,EAAUlgQ,EAAGkgQ,EAAUzoN,EAAG,CAAC9tD,KAAM,EAAG0sG,IAAK,EAAGzsG,MAAO,EAAGwwI,OAAQ,GAAG,GAEhF,GC7ba,MAAM23I,GAOnBC,cAAAA,CAAex5D,EAAQ35H,GAAc,CAQrCozL,cAAAA,CAAe5hP,GACb,OAAO,CACT,CASAjI,gBAAAA,CAAiB64N,EAAO/wP,EAAM8yC,GAAW,CAQzC8gD,mBAAAA,CAAoBm9J,EAAO/wP,EAAM8yC,GAAW,CAK5Co/M,mBAAAA,GACE,OAAO,CACT,CASAwP,cAAAA,CAAepqQ,EAAS6oG,EAAOC,EAAQzR,GAGrC,OAFAwR,EAAQzxF,KAAK+tB,IAAI,EAAG0jE,GAAS7oG,EAAQ6oG,OACrCC,EAASA,GAAU9oG,EAAQ8oG,OACpB,CACLD,QACAC,OAAQ1xF,KAAK+tB,IAAI,EAAGkyD,EAAcjgF,KAAKC,MAAMwxF,EAAQxR,GAAeyR,GAExE,CAMA4hL,UAAAA,CAAW15D,GACT,OAAO,CACT,CAMA25D,YAAAA,CAAaroQ,GAEb,ECrEa,MAAMsoQ,WAAsBL,GACzCC,cAAAA,CAAel6O,GAIb,OAAOA,GAAQA,EAAKmgL,YAAcngL,EAAKmgL,WAAW,OAAS,IAC7D,CACAk6D,YAAAA,CAAaroQ,GACXA,EAAOtf,QAAQ+sG,WAAY,CAC7B,ECRF,MAAM86K,GAAc,WAOdC,GAAc,CAClBC,WAAY,YACZC,UAAW,YACXC,SAAU,UACVC,aAAc,aACdC,YAAa,YACbC,YAAa,YACbC,UAAW,UACXC,aAAc,WACdC,WAAY,YAGRC,GAAgBlwR,GAAmB,OAAVA,GAA4B,KAAVA,EA8DjD,MAAMmwR,KAAuBrgB,IAA+B,CAACh6J,SAAS,GAQtE,SAAShlF,GAAeqtO,EAAO/wP,EAAM8yC,GAC/Bi+M,GAASA,EAAMzoC,QACjByoC,EAAMzoC,OAAO10H,oBAAoB5zF,EAAM8yC,EAAUiwO,GAErD,CAcA,SAASC,GAAiBC,EAAU36D,GAClC,IAAK,MAAM7wN,KAAQwrR,EACjB,GAAIxrR,IAAS6wN,GAAU7wN,EAAKy9E,SAASozI,GACnC,OAAO,CAGb,CAEA,SAAS46D,GAAqBnyB,EAAO/wP,EAAM8yC,GACzC,MAAMw1K,EAASyoC,EAAMzoC,OACfxuE,EAAW,IAAI6M,kBAAiBpiG,IACpC,IAAIy7F,GAAU,EACd,IAAK,MAAMt7F,KAASH,EAClBy7F,EAAUA,GAAWgjI,GAAiBt+N,EAAMmyF,WAAYyxE,GACxDtoE,EAAUA,IAAYgjI,GAAiBt+N,EAAMoyF,aAAcwxE,GAEzDtoE,GACFltG,OAIJ,OADAgnG,EAAS8M,QAAQ9oH,SAAU,CAAC0oH,WAAW,EAAMC,SAAS,IAC/C3M,CACT,CAEA,SAASqpI,GAAqBpyB,EAAO/wP,EAAM8yC,GACzC,MAAMw1K,EAASyoC,EAAMzoC,OACfxuE,EAAW,IAAI6M,kBAAiBpiG,IACpC,IAAIy7F,GAAU,EACd,IAAK,MAAMt7F,KAASH,EAClBy7F,EAAUA,GAAWgjI,GAAiBt+N,EAAMoyF,aAAcwxE,GAC1DtoE,EAAUA,IAAYgjI,GAAiBt+N,EAAMmyF,WAAYyxE,GAEvDtoE,GACFltG,OAIJ,OADAgnG,EAAS8M,QAAQ9oH,SAAU,CAAC0oH,WAAW,EAAMC,SAAS,IAC/C3M,CACT,CAEA,MAAMspI,GAAqB,IAAI93M,IAC/B,IAAI+3M,GAAsB,EAE1B,SAASC,KACP,MAAMC,EAAMzhR,OAAOmwP,iBACfsxB,IAAQF,KAGZA,GAAsBE,EACtBH,GAAmBpxR,SAAQ,CAACiiQ,EAAQlD,KAC9BA,EAAM0F,0BAA4B8sB,GACpCtvB,OAGN,CAgBA,SAASuvB,GAAqBzyB,EAAO/wP,EAAM8yC,GACzC,MAAMw1K,EAASyoC,EAAMzoC,OACf9gF,EAAY8gF,GAAUm4C,GAAen4C,GAC3C,IAAK9gF,EACH,OAEF,MAAMysH,EAAS5H,IAAU,CAAClsJ,EAAOC,KAC/B,MAAMtwF,EAAI03H,EAAUmsG,YACpB7gM,EAASqtD,EAAOC,GACZtwF,EAAI03H,EAAUmsG,aAQhB7gM,MAEDhxC,QAGGg4I,EAAW,IAAI29E,gBAAelzK,IAClC,MAAMG,EAAQH,EAAQ,GAChB47C,EAAQz7C,EAAM++N,YAAYtjL,MAC1BC,EAAS17C,EAAM++N,YAAYrjL,OAInB,IAAVD,GAA0B,IAAXC,GAGnB6zJ,EAAO9zJ,EAAOC,EAAA,IAKhB,OAHA05C,EAAS8M,QAAQpf,GAhDnB,SAAuCupH,EAAOkD,GACvCmvB,GAAmBl5N,MACtBpoD,OAAOo2B,iBAAiB,SAAUorP,IAEpCF,GAAmBv2Q,IAAIkkP,EAAOkD,EAChC,CA4CEyvB,CAA8B3yB,EAAOkD,GAE9Bn6G,CACT,CAEA,SAAS6pI,GAAgB5yB,EAAO/wP,EAAM85I,GAChCA,GACFA,EAAS+M,aAEE,WAAT7mJ,GAnDN,SAAyC+wP,GACvCqyB,GAAmB95P,OAAOynO,GACrBqyB,GAAmBl5N,MACtBpoD,OAAO8xF,oBAAoB,SAAU0vL,GAEzC,CA+CIM,CAAgC7yB,EAEpC,CAEA,SAAS8yB,GAAqB9yB,EAAO/wP,EAAM8yC,GACzC,MAAMw1K,EAASyoC,EAAMzoC,OACfyzC,EAAQ1P,IAAWn0P,IAIL,OAAd64P,EAAM10P,KACRy2C,EA1IN,SAAyB56C,EAAO64P,GAC9B,MAAM/wP,EAAOoiR,GAAYlqR,EAAM8H,OAAS9H,EAAM8H,MACxC,EAAC3K,EAAC,EAAEghE,GAAK2qM,GAAoB9oQ,EAAO64P,GAC1C,MAAO,CACL/wP,OACA+wP,QACA79G,OAAQh7I,EACR7C,OAAS+F,IAAN/F,EAAkBA,EAAI,KACzBghE,OAASj7D,IAANi7D,EAAkBA,EAAI,KAE7B,CAgIeytN,CAAgB5rR,EAAO64P,MAEjCA,GAIH,OA5JF,SAAqBt5P,EAAMuI,EAAM8yC,GAC3Br7C,GACFA,EAAKygC,iBAAiBl4B,EAAM8yC,EAAUiwO,GAE1C,CAsJE12O,CAAYi8K,EAAQtoN,EAAM+7P,GAEnBA,CACT,CAMe,MAAMgoB,WAAoBlC,GAOvCC,cAAAA,CAAex5D,EAAQ35H,GAIrB,MAAMxuD,EAAUmoL,GAAUA,EAAOP,YAAcO,EAAOP,WAAW,MASjE,OAAI5nL,GAAWA,EAAQmoL,SAAWA,GA/OtC,SAAoBA,EAAQ35H,GAC1B,MAAM3mB,EAAQsgJ,EAAOtgJ,MAIfg8M,EAAe17D,EAAOh5J,aAAa,UACnC20N,EAAc37D,EAAOh5J,aAAa,SAsBxC,GAnBAg5J,EAAO65D,IAAe,CACpB1/I,QAAS,CACPriC,OAAQ4jL,EACR7jL,MAAO8jL,EACPj8M,MAAO,CACLk4C,QAASl4C,EAAMk4C,QACf9f,OAAQp4B,EAAMo4B,OACdD,MAAOn4B,EAAMm4B,SAQnBn4B,EAAMk4C,QAAUl4C,EAAMk4C,SAAW,QAEjCl4C,EAAMk5L,UAAYl5L,EAAMk5L,WAAa,aAEjC4hB,GAAcmB,GAAc,CAC9B,MAAMC,EAAethB,GAAat6C,EAAQ,cACrBltN,IAAjB8oR,IACF57D,EAAOnoH,MAAQ+jL,GAInB,GAAIpB,GAAckB,GAChB,GAA4B,KAAxB17D,EAAOtgJ,MAAMo4B,OAIfkoH,EAAOloH,OAASkoH,EAAOnoH,OAASxR,GAAe,OAC1C,CACL,MAAMw1L,EAAgBvhB,GAAat6C,EAAQ,eACrBltN,IAAlB+oR,IACF77D,EAAOloH,OAAS+jL,GAMxB,CAgMMC,CAAW97D,EAAQ35H,GACZxuD,GAGF,IACT,CAKA4hP,cAAAA,CAAe5hP,GACb,MAAMmoL,EAASnoL,EAAQmoL,OACvB,IAAKA,EAAO65D,IACV,OAAO,EAGT,MAAM1/I,EAAU6lF,EAAO65D,IAAa1/I,QACpC,CAAC,SAAU,SAASzwI,SAAS45D,IAC3B,MAAMh5D,EAAQ6vI,EAAQ72E,GAClBu7L,GAAcv0P,GAChB01N,EAAOl3J,gBAAgBxF,GAEvB08J,EAAOhrI,aAAa1xB,EAAMh5D,MAI9B,MAAMo1E,EAAQy6D,EAAQz6D,OAAS,CAAC,EAahC,OAZA/2E,OAAOD,KAAKg3E,GAAOh2E,SAASC,IAC1Bq2N,EAAOtgJ,MAAM/1E,GAAO+1E,EAAM/1E,EAAI,IAQhCq2N,EAAOnoH,MAAQmoH,EAAOnoH,aAEfmoH,EAAO65D,KACP,CACT,CAQAjqP,gBAAAA,CAAiB64N,EAAO/wP,EAAM8yC,GAE5BzmC,KAAKunF,oBAAoBm9J,EAAO/wP,GAEhC,MAAMqkR,EAAUtzB,EAAMuzB,WAAavzB,EAAMuzB,SAAW,CAAC,GAM/CxpN,EALW,CACfm5E,OAAQivI,GACR5sI,OAAQ6sI,GACRlvB,OAAQuvB,IAEexjR,IAAS6jR,GAClCQ,EAAQrkR,GAAQ86D,EAAQi2L,EAAO/wP,EAAM8yC,EACvC,CAOA8gD,mBAAAA,CAAoBm9J,EAAO/wP,GACzB,MAAMqkR,EAAUtzB,EAAMuzB,WAAavzB,EAAMuzB,SAAW,CAAC,GAC/CvoB,EAAQsoB,EAAQrkR,GAEtB,IAAK+7P,EACH,QAGe,CACf9nH,OAAQ0vI,GACRrtI,OAAQqtI,GACR1vB,OAAQ0vB,IAEe3jR,IAAS0jB,IAC1BqtO,EAAO/wP,EAAM+7P,GACrBsoB,EAAQrkR,QAAQ5E,CAClB,CAEA82P,mBAAAA,GACE,OAAOpwP,OAAOmwP,gBAChB,CAQAyP,cAAAA,CAAep5C,EAAQnoH,EAAOC,EAAQzR,GACpC,OAAO+yK,GAAep5C,EAAQnoH,EAAOC,EAAQzR,EAC/C,CAKAqzL,UAAAA,CAAW15D,GACT,MAAM9gF,EAAYi5H,GAAen4C,GACjC,SAAU9gF,IAAaA,EAAU+8I,YACnC,EC9Xa,MAAMrkR,GAAAxN,WAAAA,GAAAR,GAAA,iBAAAA,GAAA,iBAAAA,GAAA,eAOV,GAAKA,GAAA,uBAAAA,GAAA,2BAIdsyR,eAAAA,CAAgBrH,GACd,MAAM,EAAC9nR,EAAA,EAAGghE,GAAKhqD,KAAKyxQ,SAAS,CAAC,IAAK,KAAMX,GACzC,MAAO,CAAC9nR,IAAGghE,IACb,CAEAouN,QAAAA,GACE,OAAOngH,GAASj4J,KAAKhX,IAAMivK,GAASj4J,KAAKgqD,EAC3C,CASAynN,QAAAA,CAAS1nR,EAAiBsuR,GACxB,MAAMre,EAAQh6P,KAAKm8P,YACnB,IAAKkc,IAAUre,EAEb,OAAOh6P,KAET,MAAM2qD,EAA+B,CAAC,EAItC,OAHA5gE,EAAMpE,SAAS45D,IACboL,EAAIpL,GAAQy6M,EAAMz6M,IAASy6M,EAAMz6M,GAAMliB,SAAW28N,EAAMz6M,GAAMm8M,IAAM17P,KAAKu/C,EAAe,IAEnFoL,CACT,EC3BK,SAASo+L,GAASpC,EAAOlC,GAC9B,MAAM6zB,EAAW3xB,EAAM14P,QAAQw2P,MACzB8zB,EA8BR,SAA2B5xB,GACzB,MAAMzjP,EAASyjP,EAAM14P,QAAQiV,OACvBklP,EAAazB,EAAM6xB,YACnBC,EAAW9xB,EAAM90G,QAAUu2G,GAAcllP,EAAS,EAAI,GACtDw1Q,EAAW/xB,EAAMgyB,WAAavwB,EACpC,OAAO/lP,KAAKC,MAAMD,KAAK8tB,IAAIsoP,EAAUC,GACvC,CApC6BE,CAAkBjyB,GACvCkyB,EAAax2Q,KAAK8tB,IAAImoP,EAASQ,eAAiBP,EAAoBA,GACpEQ,EAAeT,EAASnvB,MAAM58M,QAgEtC,SAAyBk4M,GACvB,MAAMp1P,EAAS,GACf,IAAI9J,EAAGg2P,EACP,IAAKh2P,EAAI,EAAGg2P,EAAOkJ,EAAMh/P,OAAQF,EAAIg2P,EAAMh2P,IACrCk/P,EAAMl/P,GAAG4jQ,OACX95P,EAAOlK,KAAKI,GAGhB,OAAO8J,CACT,CAzEgD2pR,CAAgBv0B,GAAS,GACjEw0B,EAAkBF,EAAatzR,OAC/Bi7E,EAAQq4M,EAAa,GACrBp4M,EAAOo4M,EAAaE,EAAkB,GACtCC,EAAW,GAGjB,GAAID,EAAkBJ,EAEpB,OAwEJ,SAAoBp0B,EAAOy0B,EAAUH,EAAczN,GACjD,IAEI/lR,EAFAyhD,EAAQ,EACRh/C,EAAO+wR,EAAa,GAIxB,IADAzN,EAAUjpQ,KAAKwhC,KAAKynO,GACf/lR,EAAI,EAAGA,EAAIk/P,EAAMh/P,OAAQF,IACxBA,IAAMyC,IACRkxR,EAAS/zR,KAAKs/P,EAAMl/P,IACpByhD,IACAh/C,EAAO+wR,EAAa/xO,EAAQskO,GAGlC,CAtFI6N,CAAW10B,EAAOy0B,EAAUH,EAAcE,EAAkBJ,GACrDK,EAGT,MAAM5N,EA6BR,SAA0ByN,EAAct0B,EAAOo0B,GAC7C,MAAMO,EA6FR,SAAwBjyR,GACtB,MAAMyB,EAAMzB,EAAI1B,OAChB,IAAIF,EAAGmwI,EAEP,GAAI9sI,EAAM,EACR,OAAO,EAGT,IAAK8sI,EAAOvuI,EAAI,GAAI5B,EAAI,EAAGA,EAAIqD,IAAOrD,EACpC,GAAI4B,EAAI5B,GAAK4B,EAAI5B,EAAI,KAAOmwI,EAC1B,OAAO,EAGX,OAAOA,CACT,CA3G2B2jJ,CAAeN,GAClCzN,EAAU7mB,EAAMh/P,OAASozR,EAI/B,IAAKO,EACH,OAAO/2Q,KAAK+tB,IAAIk7O,EAAS,GAG3B,MAAMgO,EtC/BD,SAAoB/yR,GACzB,MAAM8I,EAAmB,GACnB8uP,EAAO97O,KAAK87O,KAAK53P,GACvB,IAAIhB,EAEJ,IAAKA,EAAI,EAAGA,EAAI44P,EAAM54P,IAChBgB,EAAQhB,IAAM,IAChB8J,EAAOlK,KAAKI,GACZ8J,EAAOlK,KAAKoB,EAAQhB,IAQxB,OALI44P,KAAiB,EAAPA,IACZ9uP,EAAOlK,KAAKg5P,GAGd9uP,EAAOmpC,MAAK,CAACr3B,EAAGC,IAAMD,EAAIC,IAAGi2B,MACtBhoC,CACT,CsCckBkqR,CAAWH,GAC3B,IAAK,IAAI7zR,EAAI,EAAGg2P,EAAO+9B,EAAQ7zR,OAAS,EAAGF,EAAIg2P,EAAMh2P,IAAK,CACxD,MAAMi8O,EAAS83C,EAAQ/zR,GACvB,GAAIi8O,EAAS8pC,EACX,OAAO9pC,CAEX,CACA,OAAOn/N,KAAK+tB,IAAIk7O,EAAS,EAC3B,CA/CkBkO,CAAiBT,EAAct0B,EAAOo0B,GAEtD,GAAII,EAAkB,EAAG,CACvB,IAAI1zR,EAAGg2P,EACP,MAAMk+B,EAAkBR,EAAkB,EAAI52Q,KAAKue,OAAO+/C,EAAOD,IAAUu4M,EAAkB,IAAM,KAEnG,IADApnB,GAAKpN,EAAOy0B,EAAU5N,EAASxwB,GAAc2+B,GAAmB,EAAI/4M,EAAQ+4M,EAAiB/4M,GACxFn7E,EAAI,EAAGg2P,EAAO09B,EAAkB,EAAG1zR,EAAIg2P,EAAMh2P,IAChDssQ,GAAKpN,EAAOy0B,EAAU5N,EAASyN,EAAaxzR,GAAIwzR,EAAaxzR,EAAI,IAGnE,OADAssQ,GAAKpN,EAAOy0B,EAAU5N,EAAS3qM,EAAMm6K,GAAc2+B,GAAmBh1B,EAAMh/P,OAASk7E,EAAO84M,GACrFP,EAGT,OADArnB,GAAKpN,EAAOy0B,EAAU5N,GACf4N,CACT,CA6EA,SAASrnB,GAAKpN,EAAOy0B,EAAU5N,EAASoO,EAAYC,GAClD,MAAMt5N,EAAQ46L,GAAey+B,EAAY,GACnCz6O,EAAM58B,KAAK8tB,IAAI8qN,GAAe0+B,EAAUl1B,EAAMh/P,QAASg/P,EAAMh/P,QACnE,IACIA,EAAQF,EAAGyC,EADXg/C,EAAQ,EAWZ,IARAskO,EAAUjpQ,KAAKwhC,KAAKynO,GAChBqO,IACFl0R,EAASk0R,EAAWD,EACpBpO,EAAU7lR,EAAS4c,KAAKC,MAAM7c,EAAS6lR,IAGzCtjR,EAAOq4D,EAEAr4D,EAAO,GACZg/C,IACAh/C,EAAOqa,KAAKue,MAAMy/B,EAAQrZ,EAAQskO,GAGpC,IAAK/lR,EAAI8c,KAAK+tB,IAAIiwB,EAAO,GAAI96D,EAAI05C,EAAK15C,IAChCA,IAAMyC,IACRkxR,EAAS/zR,KAAKs/P,EAAMl/P,IACpByhD,IACAh/C,EAAOqa,KAAKue,MAAMy/B,EAAQrZ,EAAQskO,GAGxC,CDzGAzlR,GAvCqBgO,GAAA,WAED,CAAC,GAAEhO,GAFFgO,GAAA,qBAGI9E,GEAzB,MACM6qR,GAAiBA,CAACjzB,EAAOygB,EAAMlkQ,IAAoB,QAATkkQ,GAA2B,SAATA,EAAkBzgB,EAAMygB,GAAQlkQ,EAASyjP,EAAMygB,GAAQlkQ,EACnH22Q,GAAgBA,CAACC,EAAahB,IAAkBz2Q,KAAK8tB,IAAI2oP,GAAiBgB,EAAaA,GAY7F,SAASC,GAAO5yR,EAAK6yR,GACnB,MAAM3qR,EAAS,GACT88N,EAAYhlO,EAAI1B,OAASu0R,EACzBpxR,EAAMzB,EAAI1B,OAChB,IAAIF,EAAI,EAER,KAAOA,EAAIqD,EAAKrD,GAAK4mO,EACnB98N,EAAOlK,KAAKgC,EAAIkb,KAAKC,MAAM/c,KAE7B,OAAO8J,CACT,CAOA,SAAS4qR,GAAoBtzB,EAAO/xO,EAAOslQ,GACzC,MAAMz0R,EAASkhQ,EAAMlC,MAAMh/P,OACrB00R,EAAa93Q,KAAK8tB,IAAIvb,EAAOnvB,EAAS,GACtC46D,EAAQsmM,EAAMuiB,YACdjqO,EAAM0nN,EAAMwiB,UACZhsB,EAAU,KAChB,IACIj6O,EADAk3Q,EAAYzzB,EAAM8f,gBAAgB0T,GAGtC,KAAID,IAEAh3Q,EADa,IAAXzd,EACO4c,KAAK+tB,IAAIgqP,EAAY/5N,EAAOphB,EAAMm7O,GACxB,IAAVxlQ,GACC+xO,EAAM8f,gBAAgB,GAAK2T,GAAa,GAExCA,EAAYzzB,EAAM8f,gBAAgB0T,EAAa,IAAM,EAEjEC,GAAaD,EAAavlQ,EAAQ1R,GAAUA,EAGxCk3Q,EAAY/5N,EAAQ88L,GAAWi9B,EAAYn7O,EAAMk+M,IAIvD,OAAOi9B,CACT,CAuBA,SAASC,GAAkBpsR,GACzB,OAAOA,EAAQk6P,UAAYl6P,EAAQm6P,WAAa,CAClD,CAKA,SAASkyB,GAAersR,EAAS8hH,GAC/B,IAAK9hH,EAAQ4lH,QACX,OAAO,EAGT,MAAMkoG,EAAO0yC,GAAOxgQ,EAAQ8tN,KAAMhsG,GAC5B82D,EAAU2nF,GAAUvgQ,EAAQ44K,SAGlC,OAFcp/K,GAAQwG,EAAQi1D,MAAQj1D,EAAQi1D,KAAKz9D,OAAS,GAE5Cs2N,EAAK/3H,WAAc6iF,EAAQ9yE,MAC7C,CAiBA,SAASwmL,GAAW9hI,EAAO32I,EAAUooE,GAEnC,IAAIvf,EAAMw1L,GAAmB1nG,GAI7B,OAHIvuE,GAAyB,UAAbpoE,IAA2BooE,GAAwB,UAAbpoE,KACpD6oD,EArHkB8tF,IAAoB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,OAASA,EAqHhF+hI,CAAa7vN,IAEdA,CACT,CAuCe,MAAM8vN,WAAc5mR,GAGjCxN,WAAAA,CAAY60Q,GACVl9I,QAGAh+G,KAAKlM,GAAKonQ,EAAIpnQ,GAEdkM,KAAKrM,KAAOunQ,EAAIvnQ,KAEhBqM,KAAK/R,aAAUc,EAEfiR,KAAKhQ,IAAMkrQ,EAAIlrQ,IAEfgQ,KAAK0kP,MAAQwW,EAAIxW,MAIjB1kP,KAAK85F,SAAM/qG,EAEXiR,KAAK69H,YAAS9uI,EAEdiR,KAAK5S,UAAO2B,EAEZiR,KAAK3S,WAAQ0B,EAEbiR,KAAK8zF,WAAQ/kG,EAEbiR,KAAK+zF,YAAShlG,EACdiR,KAAK06Q,SAAW,CACdttR,KAAM,EACNC,MAAO,EACPysG,IAAK,EACL+jC,OAAQ,GAGV79H,KAAKmxK,cAAWpiL,EAEhBiR,KAAK6iN,eAAY9zN,EAEjBiR,KAAKw1K,gBAAazmL,EAElBiR,KAAK26Q,mBAAgB5rR,EAErBiR,KAAK46Q,iBAAc7rR,EAEnBiR,KAAKqxK,kBAAetiL,EAIpBiR,KAAK4gP,UAAO7xP,EAEZiR,KAAK66Q,mBAAgB9rR,EACrBiR,KAAKmwB,SAAMphC,EACXiR,KAAKowB,SAAMrhC,EACXiR,KAAK86Q,YAAS/rR,EAEdiR,KAAKykP,MAAQ,GAEbzkP,KAAK+6Q,eAAiB,KAEtB/6Q,KAAKg7Q,YAAc,KAEnBh7Q,KAAKi7Q,YAAc,KACnBj7Q,KAAK6xI,QAAU,EACf7xI,KAAK24Q,WAAa,EAClB34Q,KAAKk7Q,kBAAoB,CAAC,EAE1Bl7Q,KAAKkpQ,iBAAcn6Q,EAEnBiR,KAAKmpQ,eAAYp6Q,EACjBiR,KAAK0wQ,gBAAiB,EACtB1wQ,KAAKm7Q,cAAWpsR,EAChBiR,KAAKo7Q,cAAWrsR,EAChBiR,KAAKq7Q,mBAAgBtsR,EACrBiR,KAAKs7Q,mBAAgBvsR,EACrBiR,KAAKu7Q,aAAe,EACpBv7Q,KAAKw7Q,aAAe,EACpBx7Q,KAAKmmQ,OAAS,CAAC,EACfnmQ,KAAKy7Q,mBAAoB,EACzBz7Q,KAAKu/P,cAAWxwQ,CAClB,CAMAorE,IAAAA,CAAKlsE,GACH+R,KAAK/R,QAAUA,EAAQyC,WAAWsP,KAAK07M,cAEvC17M,KAAK4gP,KAAO3yP,EAAQ2yP,KAGpB5gP,KAAKo7Q,SAAWp7Q,KAAKyH,MAAMxZ,EAAQkiC,KACnCnwB,KAAKm7Q,SAAWn7Q,KAAKyH,MAAMxZ,EAAQmiC,KACnCpwB,KAAKs7Q,cAAgBt7Q,KAAKyH,MAAMxZ,EAAQytR,cACxC17Q,KAAKq7Q,cAAgBr7Q,KAAKyH,MAAMxZ,EAAQ0tR,aAC1C,CAQAl0Q,KAAAA,CAAM/a,EAAKkoB,GACT,OAAOloB,CACT,CAOAq0P,aAAAA,GACE,IAAI,SAACq6B,EAAQ,SAAED,EAAQ,cAAEG,EAAA,cAAeD,GAAiBr7Q,KAKzD,OAJAo7Q,EAAWpgC,GAAgBogC,EAAU3gQ,OAAOmiO,mBAC5Cu+B,EAAWngC,GAAgBmgC,EAAU1gQ,OAAOuoP,mBAC5CsY,EAAgBtgC,GAAgBsgC,EAAe7gQ,OAAOmiO,mBACtDy+B,EAAgBrgC,GAAgBqgC,EAAe5gQ,OAAOuoP,mBAC/C,CACL7yO,IAAK6qN,GAAgBogC,EAAUE,GAC/BlrP,IAAK4qN,GAAgBmgC,EAAUE,GAC/Bx6B,WAAY9F,GAASqgC,GACrBt6B,WAAY/F,GAASogC,GAEzB,CAQAvY,SAAAA,CAAUC,GAER,IACIxsK,GADA,IAAClmE,EAAA,IAAKC,EAAA,WAAKywN,EAAA,WAAYC,GAAc9gP,KAAK+gP,gBAG9C,GAAIF,GAAcC,EAChB,MAAO,CAAC3wN,MAAKC,OAGf,MAAMwrP,EAAQ57Q,KAAK29P,0BACnB,IAAK,IAAIp4Q,EAAI,EAAGg2P,EAAOqgC,EAAMn2R,OAAQF,EAAIg2P,IAAQh2P,EAC/C8wG,EAAQulL,EAAMr2R,GAAG+rO,WAAWsxC,UAAU5iQ,KAAM6iQ,GACvChiB,IACH1wN,EAAM9tB,KAAK8tB,IAAIA,EAAKkmE,EAAMlmE,MAEvB2wN,IACH1wN,EAAM/tB,KAAK+tB,IAAIA,EAAKimE,EAAMjmE,MAQ9B,OAHAD,EAAM2wN,GAAc3wN,EAAMC,EAAMA,EAAMD,EACtCC,EAAMywN,GAAc1wN,EAAMC,EAAMD,EAAMC,EAE/B,CACLD,IAAK6qN,GAAgB7qN,EAAK6qN,GAAgB5qN,EAAKD,IAC/CC,IAAK4qN,GAAgB5qN,EAAK4qN,GAAgB7qN,EAAKC,IAEnD,CAOAijP,UAAAA,GACE,MAAO,CACLjmR,KAAM4S,KAAK46Q,aAAe,EAC1B9gL,IAAK95F,KAAKw1K,YAAc,EACxBnoL,MAAO2S,KAAKqxK,cAAgB,EAC5BxzC,OAAQ79H,KAAK26Q,eAAiB,EAElC,CAOAkB,QAAAA,GACE,OAAO77Q,KAAKykP,KACd,CAKA2d,SAAAA,GACE,MAAM7iQ,EAAOS,KAAK0kP,MAAMnlP,KACxB,OAAOS,KAAK/R,QAAQ4oC,SAAW72B,KAAKmoQ,eAAiB5oQ,EAAKu8Q,QAAUv8Q,EAAKw8Q,UAAYx8Q,EAAKs3B,QAAU,EACtG,CAKAmlP,aAAAA,GAAgD,IAAlCrY,EAAYn+Q,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAAwa,KAAK0kP,MAAMif,UAEnC,OADc3jQ,KAAKg7Q,cAAgBh7Q,KAAKg7Q,YAAch7Q,KAAKi8Q,mBAAmBtY,GAEhF,CAGAyR,YAAAA,GACEp1Q,KAAKmmQ,OAAS,CAAC,EACfnmQ,KAAKy7Q,mBAAoB,CAC3B,CAMAS,YAAAA,GACEt0Q,GAAK5H,KAAK/R,QAAQiuR,aAAc,CAACl8Q,MACnC,CAUAjP,MAAAA,CAAOogL,EAAU0xC,EAAW2yC,GAC1B,MAAM,YAACzN,EAAW,MAAEE,EAAOxD,MAAO6zB,GAAYt4Q,KAAK/R,QAC7CkuR,EAAa7D,EAAS6D,WAG5Bn8Q,KAAKk8Q,eAGLl8Q,KAAKmxK,SAAWA,EAChBnxK,KAAK6iN,UAAYA,EACjB7iN,KAAK06Q,SAAWllB,EAAU5wQ,OAAOsyC,OAAO,CACtC9pC,KAAM,EACNC,MAAO,EACPysG,IAAK,EACL+jC,OAAQ,GACP23H,GAEHx1P,KAAKykP,MAAQ,KACbzkP,KAAKi7Q,YAAc,KACnBj7Q,KAAK+6Q,eAAiB,KACtB/6Q,KAAKg7Q,YAAc,KAGnBh7Q,KAAKo8Q,sBACLp8Q,KAAKq8Q,gBACLr8Q,KAAKs8Q,qBAELt8Q,KAAK24Q,WAAa34Q,KAAKmoQ,eACnBnoQ,KAAK8zF,MAAQ0hK,EAAQpoQ,KAAOooQ,EAAQnoQ,MACpC2S,KAAK+zF,OAASyhK,EAAQ17J,IAAM07J,EAAQ33H,OAGnC79H,KAAKy7Q,oBACRz7Q,KAAKu8Q,mBACLv8Q,KAAKw8Q,sBACLx8Q,KAAKy8Q,kBACLz8Q,KAAK86Q,O3BpPJ,SAAmB4B,EAAuCz0B,EAAwBF,GACvF,MAAM,IAAC53N,EAAA,IAAKC,GAAOssP,EACbz/I,EAASi+G,GAAY+M,GAAQ73N,EAAMD,GAAO,GAC1CwsP,EAAWA,CAACp2R,EAAeo9B,IAAgBokO,GAAyB,IAAVxhQ,EAAc,EAAIA,EAAQo9B,EAC1F,MAAO,CACLwM,IAAKwsP,EAASxsP,GAAM9tB,KAAKse,IAAIs8G,IAC7B7sG,IAAKusP,EAASvsP,EAAK6sG,GAEvB,C2B4OoB2/I,CAAU58Q,KAAMioP,EAAOF,GACrC/nP,KAAKy7Q,mBAAoB,GAG3Bz7Q,KAAK68Q,mBAEL78Q,KAAKykP,MAAQzkP,KAAK88Q,cAAgB,GAGlC98Q,KAAK+8Q,kBAIL,MAAMC,EAAkBb,EAAan8Q,KAAKykP,MAAMh/P,OAChDua,KAAKi9Q,sBAAsBD,EAAkBjD,GAAO/5Q,KAAKykP,MAAO03B,GAAcn8Q,KAAKykP,OAMnFzkP,KAAKqc,YAGLrc,KAAKk9Q,+BACLl9Q,KAAKm9Q,yBACLn9Q,KAAKo9Q,8BAGD9E,EAASzkK,UAAYykK,EAASvvB,UAAgC,SAApBuvB,EAAS5yR,UACrDsa,KAAKykP,MAAQsE,GAAS/oP,KAAMA,KAAKykP,OACjCzkP,KAAKi7Q,YAAc,KACnBj7Q,KAAKq9Q,iBAGHL,GAEFh9Q,KAAKi9Q,sBAAsBj9Q,KAAKykP,OAGlCzkP,KAAKs9Q,YACLt9Q,KAAKu9Q,MACLv9Q,KAAKw9Q,WAILx9Q,KAAKy9Q,aACP,CAKAphQ,SAAAA,GACE,IACIwtP,EAAYE,EADZ2T,EAAgB19Q,KAAK/R,QAAQi8E,QAG7BlqE,KAAKmoQ,gBACP0B,EAAa7pQ,KAAK5S,KAClB28Q,EAAW/pQ,KAAK3S,QAEhBw8Q,EAAa7pQ,KAAK85F,IAClBiwK,EAAW/pQ,KAAK69H,OAEhB6/I,GAAiBA,GAEnB19Q,KAAKkpQ,YAAcW,EACnB7pQ,KAAKmpQ,UAAYY,EACjB/pQ,KAAK0wQ,eAAiBgN,EACtB19Q,KAAK6xI,QAAUk4H,EAAWF,EAC1B7pQ,KAAK29Q,eAAiB39Q,KAAK/R,QAAQ2vR,aACrC,CAEAH,WAAAA,GACE71Q,GAAK5H,KAAK/R,QAAQwvR,YAAa,CAACz9Q,MAClC,CAIAo8Q,mBAAAA,GACEx0Q,GAAK5H,KAAK/R,QAAQmuR,oBAAqB,CAACp8Q,MAC1C,CACAq8Q,aAAAA,GAEMr8Q,KAAKmoQ,gBAEPnoQ,KAAK8zF,MAAQ9zF,KAAKmxK,SAClBnxK,KAAK5S,KAAO,EACZ4S,KAAK3S,MAAQ2S,KAAK8zF,QAElB9zF,KAAK+zF,OAAS/zF,KAAK6iN,UAGnB7iN,KAAK85F,IAAM,EACX95F,KAAK69H,OAAS79H,KAAK+zF,QAIrB/zF,KAAK46Q,YAAc,EACnB56Q,KAAKw1K,WAAa,EAClBx1K,KAAKqxK,aAAe,EACpBrxK,KAAK26Q,cAAgB,CACvB,CACA2B,kBAAAA,GACE10Q,GAAK5H,KAAK/R,QAAQquR,mBAAoB,CAACt8Q,MACzC,CAEA69Q,UAAAA,CAAWp1R,GACTuX,KAAK0kP,MAAMo5B,cAAcr1R,EAAMuX,KAAK07M,cACpC9zM,GAAK5H,KAAK/R,QAAQxF,GAAO,CAACuX,MAC5B,CAGAu8Q,gBAAAA,GACEv8Q,KAAK69Q,WAAW,mBAClB,CACArB,mBAAAA,GAAuB,CACvBC,eAAAA,GACEz8Q,KAAK69Q,WAAW,kBAClB,CAGAhB,gBAAAA,GACE78Q,KAAK69Q,WAAW,mBAClB,CAIAf,UAAAA,GACE,MAAO,EACT,CACAC,eAAAA,GACE/8Q,KAAK69Q,WAAW,kBAClB,CAEAE,2BAAAA,GACEn2Q,GAAK5H,KAAK/R,QAAQ8vR,4BAA6B,CAAC/9Q,MAClD,CAKAg+Q,kBAAAA,CAAmBv5B,GACjB,MAAM6zB,EAAWt4Q,KAAK/R,QAAQw2P,MAC9B,IAAIl/P,EAAGg2P,EAAMkf,EACb,IAAKl1Q,EAAI,EAAGg2P,EAAOkJ,EAAMh/P,OAAQF,EAAIg2P,EAAMh2P,IACzCk1Q,EAAOhW,EAAMl/P,GACbk1Q,EAAK1jO,MAAQnvB,GAAK0wQ,EAAS1wQ,SAAU,CAAC6yP,EAAKl0Q,MAAOhB,EAAGk/P,GAAQzkP,KAEjE,CACAi+Q,0BAAAA,GACEr2Q,GAAK5H,KAAK/R,QAAQgwR,2BAA4B,CAACj+Q,MACjD,CAIAk9Q,4BAAAA,GACEt1Q,GAAK5H,KAAK/R,QAAQivR,6BAA8B,CAACl9Q,MACnD,CACAm9Q,sBAAAA,GACE,MAAMlvR,EAAU+R,KAAK/R,QACfqqR,EAAWrqR,EAAQw2P,MACnBy5B,EAAWrE,GAAc75Q,KAAKykP,MAAMh/P,OAAQwI,EAAQw2P,MAAMq0B,eAC1DpwB,EAAc4vB,EAAS5vB,aAAe,EACtCC,EAAc2vB,EAAS3vB,YAC7B,IACIN,EAAWxlC,EAAWs7D,EADtBtD,EAAgBnyB,EAGpB,IAAK1oP,KAAKo+Q,eAAiB9F,EAASzkK,SAAW60I,GAAeC,GAAeu1B,GAAY,IAAMl+Q,KAAKmoQ,eAElG,YADAnoQ,KAAK66Q,cAAgBnyB,GAIvB,MAAM21B,EAAar+Q,KAAKs+Q,iBAClBC,EAAgBF,EAAWG,OAAO1qL,MAClC2qL,EAAiBJ,EAAWK,QAAQ3qL,OAIpCo9E,EAAW+tE,GAAYl/O,KAAK0kP,MAAM5wJ,MAAQyqL,EAAe,EAAGv+Q,KAAKmxK,UACvEk3E,EAAYp6P,EAAQiV,OAASlD,KAAKmxK,SAAW+sG,EAAW/sG,GAAY+sG,EAAW,GAG3EK,EAAgB,EAAIl2B,IACtBA,EAAYl3E,GAAY+sG,GAAYjwR,EAAQiV,OAAS,GAAM,IAC3D2/M,EAAY7iN,KAAK6iN,UAAYw3D,GAAkBpsR,EAAQo8N,MACvDiuD,EAASzxG,QAAUyzG,GAAersR,EAAQ65H,MAAO9nH,KAAK0kP,MAAMz2P,QAAQ8tN,MACpEoiE,EAAmB97Q,KAAK87O,KAAKogC,EAAgBA,EAAgBE,EAAiBA,GAC9E5D,EAAgBn9B,GAAUr7O,KAAK8tB,IAC7B9tB,KAAKs8Q,KAAKz/B,IAAam/B,EAAWK,QAAQ3qL,OAAS,GAAKs0J,GAAY,EAAG,IACvEhmP,KAAKs8Q,KAAKz/B,GAAYr8B,EAAYs7D,GAAmB,EAAG,IAAM97Q,KAAKs8Q,KAAKz/B,GAAYu/B,EAAiBN,GAAmB,EAAG,MAE7HtD,EAAgBx4Q,KAAK+tB,IAAIs4N,EAAarmP,KAAK8tB,IAAIw4N,EAAakyB,KAG9D76Q,KAAK66Q,cAAgBA,CACvB,CACAuC,2BAAAA,GACEx1Q,GAAK5H,KAAK/R,QAAQmvR,4BAA6B,CAACp9Q,MAClD,CACAq9Q,aAAAA,GAAiB,CAIjBC,SAAAA,GACE11Q,GAAK5H,KAAK/R,QAAQqvR,UAAW,CAACt9Q,MAChC,CACAu9Q,GAAAA,GAEE,MAAMxO,EAAU,CACdj7K,MAAO,EACPC,OAAQ,IAGJ,MAAC2wJ,EAAOz2P,SAAUw2P,MAAO6zB,EAAUxwJ,MAAO82J,EAAWv0D,KAAMw0D,IAAa7+Q,KACxE6zG,EAAU7zG,KAAKo+Q,aACfjW,EAAenoQ,KAAKmoQ,eAE1B,GAAIt0J,EAAS,CACX,MAAMirK,EAAcxE,GAAesE,EAAWl6B,EAAMz2P,QAAQ8tN,MAU5D,GATIosD,GACF4G,EAAQj7K,MAAQ9zF,KAAKmxK,SACrB49F,EAAQh7K,OAASsmL,GAAkBwE,GAAYC,IAE/C/P,EAAQh7K,OAAS/zF,KAAK6iN,UACtBksD,EAAQj7K,MAAQumL,GAAkBwE,GAAYC,GAI5CxG,EAASzkK,SAAW7zG,KAAKykP,MAAMh/P,OAAQ,CACzC,MAAM,MAACi7E,EAAA,KAAOC,EAAA,OAAM69M,EAAA,QAAQE,GAAW1+Q,KAAKs+Q,iBACtCS,EAAiC,EAAnBzG,EAASzxG,QACvBm4G,EAAexhC,GAAUx9O,KAAK66Q,eAC9Bh4B,EAAMxgP,KAAKwgP,IAAIm8B,GACfn9B,EAAMx/O,KAAKw/O,IAAIm9B,GAErB,GAAI7W,EAAc,CAEhB,MAAM8W,EAAc3G,EAAS1vB,OAAS,EAAI/G,EAAM28B,EAAO1qL,MAAQ+uJ,EAAM67B,EAAQ3qL,OAC7Eg7K,EAAQh7K,OAAS1xF,KAAK8tB,IAAInwB,KAAK6iN,UAAWksD,EAAQh7K,OAASkrL,EAAcF,OACpE,CAGL,MAAMG,EAAa5G,EAAS1vB,OAAS,EAAI/F,EAAM27B,EAAO1qL,MAAQ+tJ,EAAM68B,EAAQ3qL,OAE5Eg7K,EAAQj7K,MAAQzxF,KAAK8tB,IAAInwB,KAAKmxK,SAAU49F,EAAQj7K,MAAQorL,EAAaH,GAEvE/+Q,KAAKm/Q,kBAAkBz+M,EAAOC,EAAMkhL,EAAKgB,IAI7C7iP,KAAKo/Q,iBAEDjX,GACFnoQ,KAAK8zF,MAAQ9zF,KAAK6xI,QAAU6yG,EAAM5wJ,MAAQ9zF,KAAK06Q,SAASttR,KAAO4S,KAAK06Q,SAASrtR,MAC7E2S,KAAK+zF,OAASg7K,EAAQh7K,SAEtB/zF,KAAK8zF,MAAQi7K,EAAQj7K,MACrB9zF,KAAK+zF,OAAS/zF,KAAK6xI,QAAU6yG,EAAM3wJ,OAAS/zF,KAAK06Q,SAAS5gL,IAAM95F,KAAK06Q,SAAS78I,OAElF,CAEAshJ,iBAAAA,CAAkBz+M,EAAOC,EAAMkhL,EAAKgB,GAClC,MAAO4B,OAAO,MAAChsG,EAAA,QAAOouB,GAAQ,SAAE/kK,GAAY9B,KAAK/R,QAC3CoxR,EAAmC,IAAvBr/Q,KAAK66Q,cACjByE,EAAgC,QAAbx9Q,GAAoC,MAAd9B,KAAK4gP,KAEpD,GAAI5gP,KAAKmoQ,eAAgB,CACvB,MAAMoX,EAAav/Q,KAAKymQ,gBAAgB,GAAKzmQ,KAAK5S,KAC5CoyR,EAAcx/Q,KAAK3S,MAAQ2S,KAAKymQ,gBAAgBzmQ,KAAKykP,MAAMh/P,OAAS,GAC1E,IAAIm1R,EAAc,EACdvpG,EAAe,EAIfguG,EACEC,GACF1E,EAAc/3B,EAAMniL,EAAMozB,MAC1Bu9E,EAAewwE,EAAMlhL,EAAKozB,SAE1B6mL,EAAc/4B,EAAMnhL,EAAMqzB,OAC1Bs9E,EAAewxE,EAAMliL,EAAKmzB,OAET,UAAV2kD,EACT44B,EAAe1wG,EAAKmzB,MACD,QAAV2kD,EACTmiI,EAAcl6M,EAAMozB,MACD,UAAV2kD,IACTmiI,EAAcl6M,EAAMozB,MAAQ,EAC5Bu9E,EAAe1wG,EAAKmzB,MAAQ,GAI9B9zF,KAAK46Q,YAAcv4Q,KAAK+tB,KAAKwqP,EAAc2E,EAAa14G,GAAW7mK,KAAK8zF,OAAS9zF,KAAK8zF,MAAQyrL,GAAa,GAC3Gv/Q,KAAKqxK,aAAehvK,KAAK+tB,KAAKihJ,EAAemuG,EAAc34G,GAAW7mK,KAAK8zF,OAAS9zF,KAAK8zF,MAAQ0rL,GAAc,OAC1G,CACL,IAAIhqG,EAAa70G,EAAKozB,OAAS,EAC3B4mL,EAAgBj6M,EAAMqzB,OAAS,EAErB,UAAV0kD,GACF+8B,EAAa,EACbmlG,EAAgBj6M,EAAMqzB,QACH,QAAV0kD,IACT+8B,EAAa70G,EAAKozB,OAClB4mL,EAAgB,GAGlB36Q,KAAKw1K,WAAaA,EAAa3O,EAC/B7mK,KAAK26Q,cAAgBA,EAAgB9zG,EAEzC,CAMAu4G,cAAAA,GACMp/Q,KAAK06Q,WACP16Q,KAAK06Q,SAASttR,KAAOiV,KAAK+tB,IAAIpwB,KAAK46Q,YAAa56Q,KAAK06Q,SAASttR,MAC9D4S,KAAK06Q,SAAS5gL,IAAMz3F,KAAK+tB,IAAIpwB,KAAKw1K,WAAYx1K,KAAK06Q,SAAS5gL,KAC5D95F,KAAK06Q,SAASrtR,MAAQgV,KAAK+tB,IAAIpwB,KAAKqxK,aAAcrxK,KAAK06Q,SAASrtR,OAChE2S,KAAK06Q,SAAS78I,OAASx7H,KAAK+tB,IAAIpwB,KAAK26Q,cAAe36Q,KAAK06Q,SAAS78I,QAEtE,CAEA2/I,QAAAA,GACE51Q,GAAK5H,KAAK/R,QAAQuvR,SAAU,CAACx9Q,MAC/B,CAMAmoQ,YAAAA,GACE,MAAM,KAACvnB,EAAA,SAAM9+O,GAAY9B,KAAK/R,QAC9B,MAAoB,QAAb6T,GAAmC,WAAbA,GAAkC,MAAT8+O,CACxD,CAIA6+B,UAAAA,GACE,OAAOz/Q,KAAK/R,QAAQ4kR,QACtB,CAMAoK,qBAAAA,CAAsBx4B,GAMpB,IAAIl/P,EAAGg2P,EACP,IANAv7O,KAAK+9Q,8BAEL/9Q,KAAKg+Q,mBAAmBv5B,GAInBl/P,EAAI,EAAGg2P,EAAOkJ,EAAMh/P,OAAQF,EAAIg2P,EAAMh2P,IACrCu1P,GAAc2J,EAAMl/P,GAAGwxC,SACzB0tN,EAAM59M,OAAOthD,EAAG,GAChBg2P,IACAh2P,KAIJya,KAAKi+Q,4BACP,CAMAK,cAAAA,GACE,IAAID,EAAar+Q,KAAKi7Q,YAEtB,IAAKoD,EAAY,CACf,MAAMlC,EAAan8Q,KAAK/R,QAAQw2P,MAAM03B,WACtC,IAAI13B,EAAQzkP,KAAKykP,MACb03B,EAAa13B,EAAMh/P,SACrBg/P,EAAQs1B,GAAOt1B,EAAO03B,IAGxBn8Q,KAAKi7Q,YAAcoD,EAAar+Q,KAAK0/Q,mBAAmBj7B,EAAOA,EAAMh/P,OAAQua,KAAK/R,QAAQw2P,MAAMq0B,eAGlG,OAAOuF,CACT,CAQAqB,kBAAAA,CAAmBj7B,EAAOh/P,EAAQqzR,GAChC,MAAM,IAAC9oR,EAAKkrR,kBAAmByE,GAAU3/Q,KACnC4/Q,EAAS,GACTC,EAAU,GACV1zD,EAAY9pN,KAAKC,MAAM7c,EAASo0R,GAAcp0R,EAAQqzR,IAC5D,IAEIvzR,EAAGoiE,EAAGmiM,EAAM/yN,EAAO+oP,EAAUC,EAAY3sN,EAAO4wB,EAAY8P,EAAOC,EAAQisL,EAF3EC,EAAkB,EAClBC,EAAmB,EAGvB,IAAK36R,EAAI,EAAGA,EAAIE,EAAQF,GAAK4mO,EAAW,CAQtC,GAPAp1L,EAAQ0tN,EAAMl/P,GAAGwxC,MACjB+oP,EAAW9/Q,KAAKmgR,wBAAwB56R,GACxCyK,EAAI+rN,KAAOgkE,EAAaD,EAASj1R,OACjCuoE,EAAQusN,EAAOI,GAAcJ,EAAOI,IAAe,CAACxgR,KAAM,CAAC,EAAGkqF,GAAI,IAClEzF,EAAa87L,EAAS97L,WACtB8P,EAAQC,EAAS,EAEZ+mJ,GAAc/jN,IAAWtvC,GAAQsvC,IAG/B,GAAItvC,GAAQsvC,GAEjB,IAAK4wB,EAAI,EAAGmiM,EAAO/yN,EAAMtxC,OAAQkiE,EAAImiM,IAAQniM,EAC3Cq4N,EAAqCjpP,EAAM4wB,GAEtCmzL,GAAcklC,IAAiBv4R,GAAQu4R,KAC1ClsL,EAAQ01J,GAAax5P,EAAKojE,EAAM7zD,KAAM6zD,EAAMq2B,GAAIqK,EAAOksL,GACvDjsL,GAAU/P,QATd8P,EAAQ01J,GAAax5P,EAAKojE,EAAM7zD,KAAM6zD,EAAMq2B,GAAIqK,EAAO/8D,GACvDg9D,EAAS/P,EAYX47L,EAAOz6R,KAAK2uG,GACZ+rL,EAAQ16R,KAAK4uG,GACbksL,EAAkB59Q,KAAK+tB,IAAI0jE,EAAOmsL,GAClCC,EAAmB79Q,KAAK+tB,IAAI2jE,EAAQmsL,EACtC,EAhxBJ,SAAwBP,EAAQl6R,GAC9BojB,GAAK82Q,GAASvsN,IACZ,MAAMq2B,EAAKr2B,EAAMq2B,GACXwgK,EAAQxgK,EAAGhkG,OAAS,EAC1B,IAAIF,EACJ,GAAI0kQ,EAAQxkQ,EAAQ,CAClB,IAAKF,EAAI,EAAGA,EAAI0kQ,IAAS1kQ,SAChB6tE,EAAM7zD,KAAKkqF,EAAGlkG,IAEvBkkG,EAAG5iD,OAAO,EAAGojN,MAGnB,CAqwBIJ,CAAe81B,EAAQl6R,GAEvB,MAAM+4R,EAASoB,EAAO/4R,QAAQo5R,GACxBvB,EAAUmB,EAAQh5R,QAAQq5R,GAE1BE,EAAWjhO,IAAA,CAAU20C,MAAO8rL,EAAOzgO,IAAQ,EAAG40C,OAAQ8rL,EAAQ1gO,IAAQ,IAE5E,MAAO,CACLuhB,MAAO0/M,EAAQ,GACfz/M,KAAMy/M,EAAQ36R,EAAS,GACvB+4R,OAAQ4B,EAAQ5B,GAChBE,QAAS0B,EAAQ1B,GACjBkB,SACAC,UAEJ,CAOAtc,gBAAAA,CAAiBh9Q,GACf,OAAOA,CACT,CASAy6P,gBAAAA,CAAiBz6P,EAAOquB,GACtB,OAAOutD,GACT,CAQA6nM,gBAAAA,CAAiB7f,GAAQ,CAQzBsc,eAAAA,CAAgB7xP,GACd,MAAM6vO,EAAQzkP,KAAKykP,MACnB,OAAI7vO,EAAQ,GAAKA,EAAQ6vO,EAAMh/P,OAAS,EAC/B,KAEFua,KAAKghP,iBAAiByD,EAAM7vO,GAAOruB,MAC5C,CAQAujR,kBAAAA,CAAmBuW,GACbrgR,KAAK0wQ,iBACP2P,EAAU,EAAIA,GAGhB,MAAMl2B,EAAQnqP,KAAKkpQ,YAAcmX,EAAUrgR,KAAK6xI,QAChD,OvCpuBG,SAAqBtrJ,GAC1B,OAAO24P,GAAY34P,GAAQ,MAAO,MACpC,CuCkuBW+5R,CAAYtgR,KAAK29Q,eAAiBzzB,GAAYlqP,KAAK0kP,MAAOyF,EAAO,GAAKA,EAC/E,CAMAo2B,kBAAAA,CAAmBp2B,GACjB,MAAMk2B,GAAWl2B,EAAQnqP,KAAKkpQ,aAAelpQ,KAAK6xI,QAClD,OAAO7xI,KAAK0wQ,eAAiB,EAAI2P,EAAUA,CAC7C,CAOAnY,YAAAA,GACE,OAAOloQ,KAAKghP,iBAAiBhhP,KAAKwgR,eACpC,CAKAA,YAAAA,GACE,MAAM,IAACrwP,EAAG,IAAEC,GAAOpwB,KAEnB,OAAOmwB,EAAM,GAAKC,EAAM,EAAIA,EAC1BD,EAAM,GAAKC,EAAM,EAAID,EACrB,CACJ,CAKAurL,UAAAA,CAAW9mM,GACT,MAAM6vO,EAAQzkP,KAAKykP,OAAS,GAE5B,GAAI7vO,GAAS,GAAKA,EAAQ6vO,EAAMh/P,OAAQ,CACtC,MAAMg1Q,EAAOhW,EAAM7vO,GACnB,OAAO6lP,EAAK8E,WACb9E,EAAK8E,SAt1BV,SAA2BzmI,EAAQlkH,EAAO6lP,GACxC,OAAO5qQ,GAAcipI,EAAQ,CAC3B2hI,OACA7lP,QACAjhB,KAAM,QAEV,CAg1BqB8sR,CAAkBzgR,KAAK07M,aAAc9mM,EAAO6lP,IAE7D,OAAOz6P,KAAKu/P,WACZv/P,KAAKu/P,SA/1BA1vQ,GA+1B8BmQ,KAAK0kP,MAAMhpC,aA/1BnB,CAC3BirC,MA81B4D3mP,KA71B5DrM,KAAM,UA81BR,CAMA6kR,SAAAA,GACE,MAAMkI,EAAc1gR,KAAK/R,QAAQw2P,MAG3Bk8B,EAAMnjC,GAAUx9O,KAAK66Q,eACrBh4B,EAAMxgP,KAAKse,IAAIte,KAAKwgP,IAAI89B,IACxB9+B,EAAMx/O,KAAKse,IAAIte,KAAKw/O,IAAI8+B,IAExBtC,EAAar+Q,KAAKs+Q,iBAClBz3G,EAAU65G,EAAY13B,iBAAmB,EACzCvlP,EAAI46Q,EAAaA,EAAWG,OAAO1qL,MAAQ+yE,EAAU,EACrD3rH,EAAImjO,EAAaA,EAAWK,QAAQ3qL,OAAS8yE,EAAU,EAG7D,OAAO7mK,KAAKmoQ,eACRjtN,EAAI2nM,EAAMp/O,EAAIo+O,EAAMp+O,EAAIo/O,EAAM3nM,EAAI2mM,EAClC3mM,EAAI2mM,EAAMp+O,EAAIo/O,EAAM3nM,EAAI2nM,EAAMp/O,EAAIo+O,CACxC,CAMAu8B,UAAAA,GACE,MAAMvqK,EAAU7zG,KAAK/R,QAAQ4lH,QAE7B,MAAgB,SAAZA,IACOA,EAGJ7zG,KAAK29P,0BAA0Bl4Q,OAAS,CACjD,CAKAm7R,qBAAAA,CAAsBjd,GACpB,MAAM/iB,EAAO5gP,KAAK4gP,KACZ8D,EAAQ1kP,KAAK0kP,MACbz2P,EAAU+R,KAAK/R,SACf,KAACo8N,EAAI,SAAEvoN,EAAA,OAAUo6K,GAAUjuL,EAC3BiV,EAASmnN,EAAKnnN,OACdilQ,EAAenoQ,KAAKmoQ,eAEpB2R,EADQ95Q,KAAKykP,MACOh/P,QAAUyd,EAAS,EAAI,GAC3CovD,EAAK+nN,GAAkBhwD,GACvBpsL,EAAQ,GAER4iP,EAAa3kG,EAAOxrL,WAAWsP,KAAK07M,cACpColE,EAAYD,EAAWhtK,QAAUgtK,EAAW/sL,MAAQ,EACpDitL,EAAgBD,EAAY,EAC5BE,EAAmB,SAAS72B,GAChC,OAAOD,GAAYxF,EAAOyF,EAAO22B,EACnC,EACA,IAAIG,EAAa17R,EAAG60R,EAAW8G,EAC3BC,EAAKC,EAAKC,EAAKC,EAAKhjI,EAAID,EAAIG,EAAIG,EAEpC,GAAiB,QAAb78I,EACFm/Q,EAAcD,EAAiBhhR,KAAK69H,QACpCujJ,EAAMphR,KAAK69H,OAASvrE,EACpBgvN,EAAML,EAAcF,EACpB1iI,EAAK2iI,EAAiBrd,EAAU7pK,KAAOinL,EACvCpiI,EAAKglH,EAAU9lI,YACV,GAAiB,WAAb/7H,EACTm/Q,EAAcD,EAAiBhhR,KAAK85F,KACpCukD,EAAKslH,EAAU7pK,IACf6kD,EAAKqiI,EAAiBrd,EAAU9lI,QAAUkjJ,EAC1CK,EAAMH,EAAcF,EACpBO,EAAMthR,KAAK85F,IAAMxnC,OACZ,GAAiB,SAAbxwD,EACTm/Q,EAAcD,EAAiBhhR,KAAK3S,OACpC8zR,EAAMnhR,KAAK3S,MAAQilE,EACnB+uN,EAAMJ,EAAcF,EACpBziI,EAAK0iI,EAAiBrd,EAAUv2Q,MAAQ2zR,EACxCviI,EAAKmlH,EAAUt2Q,WACV,GAAiB,UAAbyU,EACTm/Q,EAAcD,EAAiBhhR,KAAK5S,MACpCkxJ,EAAKqlH,EAAUv2Q,KACfoxJ,EAAKwiI,EAAiBrd,EAAUt2Q,OAAS0zR,EACzCI,EAAMF,EAAcF,EACpBM,EAAMrhR,KAAK5S,KAAOklE,OACb,GAAa,MAATsuL,EAAc,CACvB,GAAiB,WAAb9+O,EACFm/Q,EAAcD,GAAkBrd,EAAU7pK,IAAM6pK,EAAU9lI,QAAU,EAAI,SACnE,GAAIzvE,GAAStsD,GAAW,CAC7B,MAAMy/Q,EAAiB38R,OAAOD,KAAKmd,GAAU,GACvCvb,EAAQub,EAASy/Q,GACvBN,EAAcD,EAAiBhhR,KAAK0kP,MAAMkC,OAAO26B,GAAgBvgC,iBAAiBz6P,IAGpF83J,EAAKslH,EAAU7pK,IACf6kD,EAAKglH,EAAU9lI,OACfujJ,EAAMH,EAAcF,EACpBO,EAAMF,EAAM9uN,OACP,GAAa,MAATsuL,EAAc,CACvB,GAAiB,WAAb9+O,EACFm/Q,EAAcD,GAAkBrd,EAAUv2Q,KAAOu2Q,EAAUt2Q,OAAS,QAC/D,GAAI+gE,GAAStsD,GAAW,CAC7B,MAAMy/Q,EAAiB38R,OAAOD,KAAKmd,GAAU,GACvCvb,EAAQub,EAASy/Q,GACvBN,EAAcD,EAAiBhhR,KAAK0kP,MAAMkC,OAAO26B,GAAgBvgC,iBAAiBz6P,IAGpF46R,EAAMF,EAAcF,EACpBM,EAAMF,EAAM7uN,EACZgsF,EAAKqlH,EAAUv2Q,KACfoxJ,EAAKmlH,EAAUt2Q,MAGjB,MAAMw/D,EAAQouL,GAAehtP,EAAQw2P,MAAMq0B,cAAegB,GACpDzsM,EAAOhrE,KAAK+tB,IAAI,EAAG/tB,KAAKwhC,KAAKi2O,EAAcjtN,IACjD,IAAKtnE,EAAI,EAAGA,EAAIu0R,EAAav0R,GAAK8nF,EAAM,CACtC,MAAMv5C,EAAU9zB,KAAK07M,WAAWn2N,GAC1Bi8R,EAAcn3D,EAAK35N,WAAWojC,GAC9B2tP,EAAoBvlG,EAAOxrL,WAAWojC,GAEtCm7L,EAAYuyD,EAAYvyD,UACxByyD,EAAYF,EAAYvrL,MACxBsjK,EAAakoB,EAAkBj5B,MAAQ,GACvCgR,EAAmBioB,EAAkBh5B,WAErCJ,EAAYm5B,EAAYn5B,UACxBE,EAAYi5B,EAAYj5B,UACxBo5B,EAAiBH,EAAYG,gBAAkB,GAC/CC,EAAuBJ,EAAYI,qBAEzCxH,EAAYH,GAAoBj6Q,KAAMza,EAAG2d,QAGvBnU,IAAdqrR,IAIJ8G,EAAmBh3B,GAAYxF,EAAO01B,EAAWnrD,GAE7Ck5C,EACFgZ,EAAME,EAAM/iI,EAAKE,EAAK0iI,EAEtBE,EAAME,EAAMjjI,EAAKM,EAAKuiI,EAGxBjjP,EAAM94C,KAAK,CACTg8R,MACAC,MACAC,MACAC,MACAhjI,KACAD,KACAG,KACAG,KACA7qD,MAAOm7H,EACPh5H,MAAOyrL,EACPnoB,aACAC,mBACAnR,YACAE,YACAo5B,iBACAC,yBAEJ,CAKA,OAHA5hR,KAAKu7Q,aAAezB,EACpB95Q,KAAKw7Q,aAAeyF,EAEbhjP,CACT,CAKAg+O,kBAAAA,CAAmBtY,GACjB,MAAM/iB,EAAO5gP,KAAK4gP,KACZ3yP,EAAU+R,KAAK/R,SACf,SAAC6T,EAAU2iP,MAAOi8B,GAAezyR,EACjCk6Q,EAAenoQ,KAAKmoQ,eACpB1jB,EAAQzkP,KAAKykP,OACb,MAAChsG,EAAA,WAAO2wG,EAAA,QAAYviF,EAAO,OAAE+hF,GAAU83B,EACvCpuN,EAAK+nN,GAAkBpsR,EAAQo8N,MAC/Bw3D,EAAiBvvN,EAAKu0G,EACtBi7G,EAAkBl5B,GAAU/hF,EAAUg7G,EACtCjjG,GAAY4+D,GAAUx9O,KAAK66Q,eAC3B58O,EAAQ,GACd,IAAI14C,EAAGg2P,EAAMkf,EAAM1jO,EAAO/tC,EAAGghE,EAAGynH,EAAW04E,EAAOpuC,EAAM/3H,EAAY+9L,EAAWC,EAC3EhmE,EAAe,SAEnB,GAAiB,QAAbl6M,EACFkoD,EAAIhqD,KAAK69H,OAASikJ,EAClBrwG,EAAYzxK,KAAKiiR,+BACZ,GAAiB,WAAbngR,EACTkoD,EAAIhqD,KAAK85F,IAAMgoL,EACfrwG,EAAYzxK,KAAKiiR,+BACZ,GAAiB,SAAbngR,EAAqB,CAC9B,MAAM6oD,EAAM3qD,KAAKkiR,wBAAwB5vN,GACzCm/G,EAAY9mH,EAAI8mH,UAChBzoL,EAAI2hE,EAAI3hE,OACH,GAAiB,UAAb8Y,EAAsB,CAC/B,MAAM6oD,EAAM3qD,KAAKkiR,wBAAwB5vN,GACzCm/G,EAAY9mH,EAAI8mH,UAChBzoL,EAAI2hE,EAAI3hE,OACH,GAAa,MAAT43P,EAAc,CACvB,GAAiB,WAAb9+O,EACFkoD,GAAM25M,EAAU7pK,IAAM6pK,EAAU9lI,QAAU,EAAKgkJ,OAC1C,GAAIzzN,GAAStsD,GAAW,CAC7B,MAAMy/Q,EAAiB38R,OAAOD,KAAKmd,GAAU,GACvCvb,EAAQub,EAASy/Q,GACvBv3N,EAAIhqD,KAAK0kP,MAAMkC,OAAO26B,GAAgBvgC,iBAAiBz6P,GAASs7R,EAElEpwG,EAAYzxK,KAAKiiR,+BACZ,GAAa,MAATrhC,EAAc,CACvB,GAAiB,WAAb9+O,EACF9Y,GAAM26Q,EAAUv2Q,KAAOu2Q,EAAUt2Q,OAAS,EAAKw0R,OAC1C,GAAIzzN,GAAStsD,GAAW,CAC7B,MAAMy/Q,EAAiB38R,OAAOD,KAAKmd,GAAU,GACvCvb,EAAQub,EAASy/Q,GACvBv4R,EAAIgX,KAAK0kP,MAAMkC,OAAO26B,GAAgBvgC,iBAAiBz6P,GAEzDkrL,EAAYzxK,KAAKkiR,wBAAwB5vN,GAAIm/G,UAGlC,MAATmvE,IACY,UAAVnoG,EACFujE,EAAe,MACI,QAAVvjE,IACTujE,EAAe,WAInB,MAAMqiE,EAAar+Q,KAAKs+Q,iBACxB,IAAK/4R,EAAI,EAAGg2P,EAAOkJ,EAAMh/P,OAAQF,EAAIg2P,IAAQh2P,EAAG,CAC9Ck1Q,EAAOhW,EAAMl/P,GACbwxC,EAAQ0jO,EAAK1jO,MAEb,MAAMyqP,EAAcd,EAAYhwR,WAAWsP,KAAK07M,WAAWn2N,IAC3D4kQ,EAAQnqP,KAAKymQ,gBAAgBlhR,GAAKm7R,EAAYz3B,YAC9CltC,EAAO/7M,KAAKmgR,wBAAwB56R,GACpCy+F,EAAa+3H,EAAK/3H,WAClB+9L,EAAYt6R,GAAQsvC,GAASA,EAAMtxC,OAAS,EAC5C,MAAM08R,EAAYJ,EAAY,EACxB9rL,EAAQurL,EAAYvrL,MACpBs3J,EAAci0B,EAAY14B,gBAC1BhkK,EAAc08L,EAAY34B,gBAChC,IA4CI6E,EA5CA00B,EAAgB3wG,EA8CpB,GA5CI02F,GACFn/Q,EAAImhQ,EAEc,UAAd14E,IAEA2wG,EADE78R,IAAMg2P,EAAO,EACEv7O,KAAK/R,QAAQi8E,QAAoB,OAAV,QACzB,IAAN3kF,EACQya,KAAK/R,QAAQi8E,QAAmB,QAAT,OAExB,UAMhB83M,EAFa,QAAblgR,EACiB,SAAfsnP,GAAsC,IAAbxqE,GACbmjG,EAAY/9L,EAAaA,EAAa,EAC5B,WAAfolK,GACKi1B,EAAWK,QAAQ3qL,OAAS,EAAIouL,EAAYn+L,EAAaA,GAEzDq6L,EAAWK,QAAQ3qL,OAAS/P,EAAa,EAItC,SAAfolK,GAAsC,IAAbxqE,EACd56F,EAAa,EACF,WAAfolK,EACIi1B,EAAWK,QAAQ3qL,OAAS,EAAIouL,EAAYn+L,EAE5Cq6L,EAAWK,QAAQ3qL,OAASguL,EAAY/9L,EAGrD4kK,IACFo5B,IAAe,GAEA,IAAbpjG,GAAmB4iG,EAAYn4B,oBACjCrgQ,GAAKg7F,EAAc,EAAK3hF,KAAKw/O,IAAIjjE,MAGnC50H,EAAImgM,EACJ63B,GAAc,EAAID,GAAa/9L,EAAa,GAK1Cw9L,EAAYn4B,kBAAmB,CACjC,MAAMg5B,EAAe7zB,GAAUgzB,EAAYj4B,iBACrCx1J,EAASsqL,EAAWwB,QAAQt6R,GAC5BuuG,EAAQuqL,EAAWuB,OAAOr6R,GAEhC,IAAIu0G,EAAMkoL,EAAaK,EAAavoL,IAChC1sG,EAAO,EAAIi1R,EAAaj1R,KAE5B,OAAQ4uN,GACR,IAAK,SACHliH,GAAO/F,EAAS,EAChB,MACF,IAAK,SACH+F,GAAO/F,EAMT,OAAQ09E,GACR,IAAK,SACHrkL,GAAQ0mG,EAAQ,EAChB,MACF,IAAK,QACH1mG,GAAQ0mG,EACR,MACF,IAAK,QACCvuG,IAAMg2P,EAAO,EACfnuP,GAAQ0mG,EACCvuG,EAAI,IACb6H,GAAQ0mG,EAAQ,GAOpB45J,EAAW,CACTtgQ,OACA0sG,MACAhG,MAAOA,EAAQuuL,EAAavuL,MAC5BC,OAAQA,EAASsuL,EAAatuL,OAE9BkC,MAAOurL,EAAYl4B,eAIvBrrN,EAAM94C,KAAK,CACT4xC,QACAglL,OACAimE,aACA/zR,QAAS,CACP2wL,WACA3oF,QACAs3J,cACAzoK,cACA2sF,UAAW2wG,EACXpmE,eACAwxC,YAAa,CAACxkQ,EAAGghE,GACjB0jM,aAGN,CAEA,OAAOzvN,CACT,CAEAgkP,uBAAAA,GACE,MAAM,SAACngR,EAAA,MAAU2iP,GAASzkP,KAAK/R,QAG/B,IAFkBuvP,GAAUx9O,KAAK66Q,eAG/B,MAAoB,QAAb/4Q,EAAqB,OAAS,QAGvC,IAAI22I,EAAQ,SAUZ,MARoB,UAAhBgsG,EAAMhsG,MACRA,EAAQ,OACiB,QAAhBgsG,EAAMhsG,MACfA,EAAQ,QACiB,UAAhBgsG,EAAMhsG,QACfA,EAAQ,SAGHA,CACT,CAEAypI,uBAAAA,CAAwB5vN,GACtB,MAAM,SAACxwD,EAAU2iP,OAAO,WAAC2E,EAAA,OAAYR,EAAA,QAAQ/hF,IAAY7mK,KAAK/R,QAExD4zR,EAAiBvvN,EAAKu0G,EACtB23G,EAFax+Q,KAAKs+Q,iBAEEE,OAAO1qL,MAEjC,IAAI29E,EACAzoL,EA0DJ,MAxDiB,SAAb8Y,EACE8mP,GACF5/P,EAAIgX,KAAK3S,MAAQw5K,EAEE,SAAfuiF,EACF33E,EAAY,OACY,WAAf23E,GACT33E,EAAY,SACZzoL,GAAMw1R,EAAS,IAEf/sG,EAAY,QACZzoL,GAAKw1R,KAGPx1R,EAAIgX,KAAK3S,MAAQw0R,EAEE,SAAfz4B,EACF33E,EAAY,QACY,WAAf23E,GACT33E,EAAY,SACZzoL,GAAMw1R,EAAS,IAEf/sG,EAAY,OACZzoL,EAAIgX,KAAK5S,OAGS,UAAb0U,EACL8mP,GACF5/P,EAAIgX,KAAK5S,KAAOy5K,EAEG,SAAfuiF,EACF33E,EAAY,QACY,WAAf23E,GACT33E,EAAY,SACZzoL,GAAMw1R,EAAS,IAEf/sG,EAAY,OACZzoL,GAAKw1R,KAGPx1R,EAAIgX,KAAK5S,KAAOy0R,EAEG,SAAfz4B,EACF33E,EAAY,OACY,WAAf23E,GACT33E,EAAY,SACZzoL,GAAKw1R,EAAS,IAEd/sG,EAAY,QACZzoL,EAAIgX,KAAK3S,QAIbokL,EAAY,QAGP,CAACA,YAAWzoL,IACrB,CAKAs5R,iBAAAA,GACE,GAAItiR,KAAK/R,QAAQw2P,MAAMmE,OACrB,OAGF,MAAMlE,EAAQ1kP,KAAK0kP,MACb5iP,EAAW9B,KAAK/R,QAAQ6T,SAE9B,MAAiB,SAAbA,GAAoC,UAAbA,EAClB,CAACg4F,IAAK,EAAG1sG,KAAM4S,KAAK5S,KAAMywI,OAAQ6mH,EAAM3wJ,OAAQ1mG,MAAO2S,KAAK3S,OAClD,QAAbyU,GAAmC,WAAbA,EACnB,CAACg4F,IAAK95F,KAAK85F,IAAK1sG,KAAM,EAAGywI,OAAQ79H,KAAK69H,OAAQxwI,MAAOq3P,EAAM5wJ,YADlE,CAGJ,CAKAyuL,cAAAA,GACE,MAAM,IAACvyR,EAAK/B,SAAS,gBAACm4J,GAAgB,KAAEh5J,EAAI,IAAE0sG,EAAA,MAAKhG,EAAA,OAAOC,GAAU/zF,KAChEomJ,IACFp2J,EAAImpJ,OACJnpJ,EAAImsN,UAAY/1D,EAChBp2J,EAAIq9P,SAASjgQ,EAAM0sG,EAAKhG,EAAOC,GAC/B/jG,EAAIu3I,UAER,CAEA2iI,oBAAAA,CAAqB3jR,GACnB,MAAM8jO,EAAOrqN,KAAK/R,QAAQo8N,KAC1B,IAAKrqN,KAAKo+Q,eAAiB/zD,EAAKx2G,QAC9B,OAAO,EAET,MACMj/F,EADQ5U,KAAKykP,MACC/8E,WAAUpmK,GAAKA,EAAE/a,QAAUA,IAC/C,GAAIquB,GAAS,EAAG,CAEd,OADay1M,EAAK35N,WAAWsP,KAAK07M,WAAW9mM,IACjCq6M,UAEd,OAAO,CACT,CAKAuzD,QAAAA,CAAS7e,GACP,MAAMt5C,EAAOrqN,KAAK/R,QAAQo8N,KACpBr6N,EAAMgQ,KAAKhQ,IACXiuC,EAAQj+B,KAAK+6Q,iBAAmB/6Q,KAAK+6Q,eAAiB/6Q,KAAK4gR,sBAAsBjd,IACvF,IAAIp+Q,EAAGg2P,EAEP,MAAMknC,EAAWA,CAACnvE,EAAIwD,EAAIn7I,KACnBA,EAAMm4B,OAAUn4B,EAAMs6B,QAG3BjmG,EAAImpJ,OACJnpJ,EAAIi/N,UAAYtzJ,EAAMm4B,MACtB9jG,EAAIi9P,YAActxL,EAAMs6B,MACxBjmG,EAAI0yR,YAAY/mN,EAAM49L,YAAc,IACpCvpQ,EAAI2yR,eAAiBhnN,EAAM69L,iBAE3BxpQ,EAAIm7P,YACJn7P,EAAIu7P,OAAOj4C,EAAGtqN,EAAGsqN,EAAGtpJ,GACpBh6D,EAAIw7P,OAAO10C,EAAG9tN,EAAG8tN,EAAG9sJ,GACpBh6D,EAAIs2J,SACJt2J,EAAIu3I,UAAS,EAGf,GAAI8iF,EAAKx2G,QACP,IAAKtuH,EAAI,EAAGg2P,EAAOt9M,EAAMx4C,OAAQF,EAAIg2P,IAAQh2P,EAAG,CAC9C,MAAMg2C,EAAO0C,EAAM14C,GAEf8kO,EAAK69B,iBACPu6B,EACE,CAACz5R,EAAGuyC,EAAK+iH,GAAIt0F,EAAGzuB,EAAK8iH,IACrB,CAACr1J,EAAGuyC,EAAKijH,GAAIx0F,EAAGzuB,EAAKojH,IACrBpjH,GAIA8uL,EAAK89B,WACPs6B,EACE,CAACz5R,EAAGuyC,EAAK4lP,IAAKn3N,EAAGzuB,EAAK6lP,KACtB,CAACp4R,EAAGuyC,EAAK8lP,IAAKr3N,EAAGzuB,EAAK+lP,KACtB,CACErrL,MAAO16D,EAAKgtN,UACZz0J,MAAOv4D,EAAK8sN,UACZkR,WAAYh+N,EAAKomP,eACjBnoB,iBAAkBj+N,EAAKqmP,sBAI/B,CAEJ,CAKAgB,UAAAA,GACE,MAAM,MAACl+B,EAAA,IAAO10P,EAAK/B,SAAS,OAACiuL,EAAM,KAAEmuC,IAASrqN,KACxC6gR,EAAa3kG,EAAOxrL,WAAWsP,KAAK07M,cACpColE,EAAY5kG,EAAOroE,QAAUgtK,EAAW/sL,MAAQ,EACtD,IAAKgtL,EACH,OAEF,MAAM+B,EAAgBx4D,EAAK35N,WAAWsP,KAAK07M,WAAW,IAAIuT,UACpDgyD,EAAcjhR,KAAKw7Q,aACzB,IAAIl9H,EAAIE,EAAIH,EAAIM,EAEZ3+I,KAAKmoQ,gBACP7pH,EAAK4rG,GAAYxF,EAAO1kP,KAAK5S,KAAM0zR,GAAaA,EAAY,EAC5DtiI,EAAK0rG,GAAYxF,EAAO1kP,KAAK3S,MAAOw1R,GAAiBA,EAAgB,EACrExkI,EAAKM,EAAKsiI,IAEV5iI,EAAK6rG,GAAYxF,EAAO1kP,KAAK85F,IAAKgnL,GAAaA,EAAY,EAC3DniI,EAAKurG,GAAYxF,EAAO1kP,KAAK69H,OAAQglJ,GAAiBA,EAAgB,EACtEvkI,EAAKE,EAAKyiI,GAEZjxR,EAAImpJ,OACJnpJ,EAAIi/N,UAAY4xD,EAAW/sL,MAC3B9jG,EAAIi9P,YAAc4zB,EAAW5qL,MAE7BjmG,EAAIm7P,YACJn7P,EAAIu7P,OAAOjtG,EAAID,GACfruJ,EAAIw7P,OAAOhtG,EAAIG,GACf3uJ,EAAIs2J,SAEJt2J,EAAIu3I,SACN,CAKAu7I,UAAAA,CAAWnf,GAGT,IAFoB3jQ,KAAK/R,QAAQw2P,MAEhB5wI,QACf,OAGF,MAAM7jH,EAAMgQ,KAAKhQ,IAEXq1F,EAAOrlF,KAAKsiR,oBACdj9L,GACFwmK,GAAS77P,EAAKq1F,GAGhB,MAAMpnD,EAAQj+B,KAAKg8Q,cAAcrY,GACjC,IAAK,MAAMpoO,KAAQ0C,EAAO,CACxB,MAAM8kP,EAAoBxnP,EAAKttC,QACzB6xR,EAAWvkP,EAAKwgL,KAGtBuxC,GAAWt9P,EAFGurC,EAAKxE,MAEI,EADbwE,EAAKymP,WACclC,EAAUiD,EACzC,CAEI19L,GACFymK,GAAW97P,EAEf,CAKAgzR,SAAAA,GACE,MAAM,IAAChzR,EAAK/B,SAAS,SAAC6T,EAAQ,MAAEgmH,EAAK,QAAE59C,IAAYlqE,KAEnD,IAAK8nH,EAAMjU,QACT,OAGF,MAAMkoG,EAAO0yC,GAAO3mI,EAAMi0F,MACpBl1C,EAAU2nF,GAAU1mI,EAAM++C,SAC1BpuB,EAAQ3wB,EAAM2wB,MACpB,IAAIv1I,EAAS64M,EAAK/3H,WAAa,EAEd,WAAbliF,GAAsC,WAAbA,GAAyBssD,GAAStsD,IAC7DoB,GAAU2jK,EAAQhpC,OACdp2I,GAAQqgI,EAAM5kE,QAChBhgD,GAAU64M,EAAK/3H,YAAc8jC,EAAM5kE,KAAKz9D,OAAS,KAGnDyd,GAAU2jK,EAAQ/sE,IAGpB,MAAM,OAACmpL,EAAA,OAAQC,EAAA,SAAQ/xG,EAAQ,SAAEyN,GAv8CrC,SAAmB+nE,EAAOzjP,EAAQpB,EAAU22I,GAC1C,MAAM,IAAC3+C,EAAG,KAAE1sG,EAAI,OAAEywI,EAAM,MAAExwI,EAAK,MAAEq3P,GAASiC,GACpC,UAACgd,EAAA,OAAW/c,GAAUlC,EAC5B,IACIvzE,EAAU8xG,EAAQC,EADlBtkG,EAAW,EAEf,MAAM7qF,EAAS8pC,EAAS/jC,EAClBhG,EAAQzmG,EAAQD,EAEtB,GAAIu5P,EAAMwhB,eAAgB,CAGxB,GAFA8a,EAAS7iC,GAAe3nG,EAAOrrJ,EAAMC,GAEjC+gE,GAAStsD,GAAW,CACtB,MAAMy/Q,EAAiB38R,OAAOD,KAAKmd,GAAU,GACvCvb,EAAQub,EAASy/Q,GACvB2B,EAASt8B,EAAO26B,GAAgBvgC,iBAAiBz6P,GAASwtG,EAAS7wF,OAEnEggR,EADsB,WAAbphR,GACC6hQ,EAAU9lI,OAAS8lI,EAAU7pK,KAAO,EAAI/F,EAAS7wF,EAElD02Q,GAAejzB,EAAO7kP,EAAUoB,GAE3CiuK,EAAW9jL,EAAQD,MACd,CACL,GAAIghE,GAAStsD,GAAW,CACtB,MAAMy/Q,EAAiB38R,OAAOD,KAAKmd,GAAU,GACvCvb,EAAQub,EAASy/Q,GACvB0B,EAASr8B,EAAO26B,GAAgBvgC,iBAAiBz6P,GAASutG,EAAQ5wF,OAElE+/Q,EADsB,WAAbnhR,GACC6hQ,EAAUv2Q,KAAOu2Q,EAAUt2Q,OAAS,EAAIymG,EAAQ5wF,EAEjD02Q,GAAejzB,EAAO7kP,EAAUoB,GAE3CggR,EAAS9iC,GAAe3nG,EAAO5a,EAAQ/jC,GACvC8kF,EAAwB,SAAb98K,GAAuBg7O,GAAUA,GAE9C,MAAO,CAACmmC,SAAQC,SAAQ/xG,WAAUyN,WACpC,CAo6CiDukG,CAAUnjR,KAAMkD,EAAQpB,EAAU22I,GAE/E60G,GAAWt9P,EAAK83H,EAAM5kE,KAAM,EAAG,EAAG64J,EAAM,CACtC9lH,MAAO6xB,EAAM7xB,MACbk7E,WACAyN,WACAnN,UAAW8oG,GAAW9hI,EAAO32I,EAAUooE,GACvC8xI,aAAc,SACdwxC,YAAa,CAACy1B,EAAQC,IAE1B,CAEA5oB,IAAAA,CAAKqJ,GACE3jQ,KAAKo+Q,eAIVp+Q,KAAKuiR,iBACLviR,KAAKwiR,SAAS7e,GACd3jQ,KAAK4iR,aACL5iR,KAAKgjR,YACLhjR,KAAK8iR,WAAWnf,GAClB,CAMA2Q,OAAAA,GACE,MAAMt0N,EAAOhgD,KAAK/R,QACZm1R,EAAKpjO,EAAKykM,OAASzkM,EAAKykM,MAAMrzL,GAAK,EACnCiyN,EAAKpoC,GAAej7L,EAAKqqK,MAAQrqK,EAAKqqK,KAAKj5J,GAAI,GAC/CkyN,EAAKroC,GAAej7L,EAAKk8H,QAAUl8H,EAAKk8H,OAAO9qH,EAAG,GAExD,OAAKpxD,KAAKo+Q,cAAgBp+Q,KAAKs6P,OAASmgB,GAAMn0R,UAAUg0Q,KAUjD,CAAC,CACNlpM,EAAGiyN,EACH/oB,KAAOqJ,IACL3jQ,KAAKuiR,iBACLviR,KAAKwiR,SAAS7e,GACd3jQ,KAAKgjR,WAAW,GAEjB,CACD5xN,EAAGkyN,EACHhpB,KAAMA,KACJt6P,KAAK4iR,YAAY,GAElB,CACDxxN,EAAGgyN,EACH9oB,KAAOqJ,IACL3jQ,KAAK8iR,WAAWnf,EAAA,IAvBX,CAAC,CACNvyM,EAAGgyN,EACH9oB,KAAOqJ,IACL3jQ,KAAKs6P,KAAKqJ,EAAA,GAuBlB,CAOAhG,uBAAAA,CAAwBhqQ,GACtB,MAAMioR,EAAQ57Q,KAAK0kP,MAAMksB,+BACnB2S,EAASvjR,KAAK4gP,KAAO,SACrBvxP,EAAS,GACf,IAAI9J,EAAGg2P,EAEP,IAAKh2P,EAAI,EAAGg2P,EAAOqgC,EAAMn2R,OAAQF,EAAIg2P,IAAQh2P,EAAG,CAC9C,MAAMsgG,EAAO+1L,EAAMr2R,GACfsgG,EAAK09L,KAAYvjR,KAAKlM,IAAQH,GAAQkyF,EAAKlyF,OAASA,GACtDtE,EAAOlK,KAAK0gG,EAEhB,CACA,OAAOx2F,CACT,CAOA8wR,uBAAAA,CAAwBvrQ,GAEtB,OAAO65O,GADMzuP,KAAK/R,QAAQw2P,MAAM/zP,WAAWsP,KAAK07M,WAAW9mM,IACxCmnM,KACrB,CAKAynE,UAAAA,GACE,MAAM13G,EAAW9rK,KAAKmgR,wBAAwB,GAAGn8L,WACjD,OAAQhkF,KAAKmoQ,eAAiBnoQ,KAAK8zF,MAAQ9zF,KAAK+zF,QAAU+3E,CAC5D,ECtqDa,MAAM23G,GACnBp9R,WAAAA,CAAYsN,EAAMkiD,EAAOmxM,GACvBhnP,KAAKrM,KAAOA,EACZqM,KAAK61C,MAAQA,EACb71C,KAAKgnP,SAAWA,EAChBhnP,KAAKi+B,MAAQr5C,OAAOwQ,OAAO,KAC7B,CAEAsuR,SAAAA,CAAU/vR,GACR,OAAO/O,OAAO0B,UAAUq9R,cAAc18R,KAAK+Y,KAAKrM,KAAKrN,UAAWqN,EAAKrN,UACvE,CAMAitI,QAAAA,CAASh4F,GACP,MAAM2wG,EAAQtnJ,OAAOioD,eAAetR,GACpC,IAAIqoP,GAyFR,SAA2B13I,GACzB,MAAO,OAAQA,GAAS,aAAcA,CACxC,EAzFQ23I,CAAkB33I,KAEpB03I,EAAc5jR,KAAKuzH,SAAS2Y,IAG9B,MAAMjuG,EAAQj+B,KAAKi+B,MACbnqC,EAAKynC,EAAKznC,GACV+hD,EAAQ71C,KAAK61C,MAAQ,IAAM/hD,EAEjC,IAAKA,EACH,MAAM,IAAIzJ,MAAM,2BAA6BkxC,GAG/C,OAAIznC,KAAMmqC,IAKVA,EAAMnqC,GAAMynC,EAsChB,SAA0BA,EAAMsa,EAAO+tO,GAErC,MAAME,EAAel5Q,GAAMhmB,OAAOwQ,OAAO,MAAO,CAC9CwuR,EAAc3iE,GAAS3oN,IAAIsrR,GAAe,CAAC,EAC3C3iE,GAAS3oN,IAAIu9C,GACbta,EAAK0lL,WAGPA,GAASzgN,IAAIq1C,EAAOiuO,GAEhBvoP,EAAKwoP,eASX,SAAuBluO,EAAO6oH,GAC5B95K,OAAOD,KAAK+5K,GAAQ/4K,SAAQ+kB,IAC1B,MAAMs5Q,EAAgBt5Q,EAASpD,MAAM,KAC/B28Q,EAAaD,EAAc3sP,MAC3B6sP,EAAc,CAACruO,GAAOnnD,OAAOs1R,GAAe1vQ,KAAK,KACjDjN,EAAQq3J,EAAOh0J,GAAUpD,MAAM,KAC/B4/O,EAAa7/O,EAAMgwB,MACnB4vN,EAAc5/O,EAAMiN,KAAK,KAC/B2sM,GAASrhD,MAAMskH,EAAaD,EAAYh9B,EAAaC,EAAA,GAEzD,CAlBIi9B,CAActuO,EAAOta,EAAKwoP,eAGxBxoP,EAAKk7H,aACPwqD,GAAS8lC,SAASlxM,EAAOta,EAAKk7H,YAElC,CAtDI2tH,CAAiB7oP,EAAMsa,EAAO+tO,GAC1B5jR,KAAKgnP,UACP/lC,GAAS+lC,SAASzrN,EAAKznC,GAAIynC,EAAK+pN,YANzBzvM,CAUX,CAMAv9C,GAAAA,CAAIxE,GACF,OAAOkM,KAAKi+B,MAAMnqC,EACpB,CAKA2vN,UAAAA,CAAWloL,GACT,MAAM0C,EAAQj+B,KAAKi+B,MACbnqC,EAAKynC,EAAKznC,GACV+hD,EAAQ71C,KAAK61C,MAEf/hD,KAAMmqC,UACDA,EAAMnqC,GAGX+hD,GAAS/hD,KAAMmtN,GAASprK,YACnBorK,GAASprK,GAAO/hD,GACnBkM,KAAKgnP,iBACA1B,GAAUxxP,GAGvB,ECtEK,MAAMq/H,GACX9sI,WAAAA,GACE2Z,KAAKqkR,YAAc,IAAIZ,GAAc7kB,GAAmB,YAAY,GACpE5+P,KAAKlT,SAAW,IAAI22R,GAAc5vR,GAAS,YAC3CmM,KAAKymP,QAAU,IAAIg9B,GAAc7+R,OAAQ,WACzCob,KAAK4mP,OAAS,IAAI68B,GAAchJ,GAAO,UAGvCz6Q,KAAKskR,iBAAmB,CAACtkR,KAAKqkR,YAAarkR,KAAK4mP,OAAQ5mP,KAAKlT,SAC/D,CAKA62B,GAAAA,GAAa,QAAAioG,EAAApmI,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAAokI,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJtsF,EAAIssF,GAAAtmI,UAAAsmI,GACT9rH,KAAKukR,MAAM,WAAY/kP,EACzB,CAEAnnB,MAAAA,GAAgB,QAAA2zG,EAAAxmI,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAAwkI,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJzsF,EAAIysF,GAAAzmI,UAAAymI,GACZjsH,KAAKukR,MAAM,aAAc/kP,EAC3B,CAKAglP,cAAAA,GAAwB,QAAAtlD,EAAA15O,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAA03O,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ3/L,EAAI2/L,GAAA35O,UAAA25O,GACpBn/N,KAAKukR,MAAM,WAAY/kP,EAAMx/B,KAAKqkR,YACpC,CAKAxkB,WAAAA,GAAqB,QAAAvgC,EAAA95O,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAA83O,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ//L,EAAI+/L,GAAA/5O,UAAA+5O,GACjBv/N,KAAKukR,MAAM,WAAY/kP,EAAMx/B,KAAKlT,SACpC,CAKA23R,UAAAA,GAAoB,QAAA9kD,EAAAn6O,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAAm4O,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJrgM,EAAIqgM,GAAAr6O,UAAAq6O,GAChB7/N,KAAKukR,MAAM,WAAY/kP,EAAMx/B,KAAKymP,QACpC,CAKAi+B,SAAAA,GAAmB,QAAAjkD,EAAAj7O,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAAi5O,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJlhM,EAAIkhM,GAAAl7O,UAAAk7O,GACf1gO,KAAKukR,MAAM,WAAY/kP,EAAMx/B,KAAK4mP,OACpC,CAMA+9B,aAAAA,CAAc7wR,GACZ,OAAOkM,KAAK64H,KAAK/kI,EAAIkM,KAAKqkR,YAAa,aACzC,CAMA9nG,UAAAA,CAAWzoL,GACT,OAAOkM,KAAK64H,KAAK/kI,EAAIkM,KAAKlT,SAAU,UACtC,CAMA83R,SAAAA,CAAU9wR,GACR,OAAOkM,KAAK64H,KAAK/kI,EAAIkM,KAAKymP,QAAS,SACrC,CAMAo+B,QAAAA,CAAS/wR,GACP,OAAOkM,KAAK64H,KAAK/kI,EAAIkM,KAAK4mP,OAAQ,QACpC,CAKAk+B,iBAAAA,GAA2B,QAAAC,EAAAv/R,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAAu9R,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJxlP,EAAIwlP,GAAAx/R,UAAAw/R,GACvBhlR,KAAKukR,MAAM,aAAc/kP,EAAMx/B,KAAKqkR,YACtC,CAKAY,cAAAA,GAAwB,QAAAC,EAAA1/R,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAA09R,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ3lP,EAAI2lP,GAAA3/R,UAAA2/R,GACpBnlR,KAAKukR,MAAM,aAAc/kP,EAAMx/B,KAAKlT,SACtC,CAKAs4R,aAAAA,GAAuB,QAAAC,EAAA7/R,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAA69R,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ9lP,EAAI8lP,GAAA9/R,UAAA8/R,GACnBtlR,KAAKukR,MAAM,aAAc/kP,EAAMx/B,KAAKymP,QACtC,CAKA8+B,YAAAA,GAAsB,QAAAC,EAAAhgS,UAAAC,OAAN+5C,EAAI,IAAAh4C,MAAAg+R,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJjmP,EAAIimP,GAAAjgS,UAAAigS,GAClBzlR,KAAKukR,MAAM,aAAc/kP,EAAMx/B,KAAK4mP,OACtC,CAKA29B,KAAAA,CAAMj6P,EAAQkV,EAAMkmP,GAClB,IAAIlmP,GAAM75C,SAAQyZ,IAChB,MAAMumR,EAAMD,GAAiB1lR,KAAK4lR,oBAAoBxmR,GAClDsmR,GAAiBC,EAAIjC,UAAUtkR,IAASumR,IAAQ3lR,KAAKymP,SAAWrnP,EAAItL,GACtEkM,KAAK6lR,MAAMv7P,EAAQq7P,EAAKvmR,GAMxByJ,GAAKzJ,GAAKm8B,IAOR,MAAMuqP,EAAUJ,GAAiB1lR,KAAK4lR,oBAAoBrqP,GAC1Dv7B,KAAK6lR,MAAMv7P,EAAQw7P,EAASvqP,EAAA,MAIpC,CAKAsqP,KAAAA,CAAMv7P,EAAQ4lP,EAAU54I,GACtB,MAAMyuJ,EAAcxpC,GAAYjyN,GAChC1iB,GAAK0vH,EAAU,SAAWyuJ,GAAc,GAAIzuJ,GAC5C44I,EAAS5lP,GAAQgtG,GACjB1vH,GAAK0vH,EAAU,QAAUyuJ,GAAc,GAAIzuJ,EAC7C,CAKAsuJ,mBAAAA,CAAoBjyR,GAClB,IAAK,IAAIpO,EAAI,EAAGA,EAAIya,KAAKskR,iBAAiB7+R,OAAQF,IAAK,CACrD,MAAMogS,EAAM3lR,KAAKskR,iBAAiB/+R,GAClC,GAAIogS,EAAIjC,UAAU/vR,GAChB,OAAOgyR,CAEX,CAEA,OAAO3lR,KAAKymP,OACd,CAKA5tH,IAAAA,CAAK/kI,EAAI4xR,EAAe/xR,GACtB,MAAM4nC,EAAOmqP,EAAcptR,IAAIxE,GAC/B,QAAa/E,IAATwsC,EACF,MAAM,IAAIlxC,MAAM,IAAMyJ,EAAK,yBAA2BH,EAAO,KAE/D,OAAO4nC,CACT,EAKF,IAAA20O,GAA+B,IAAI/8I,GCtKpB,MAAM6yJ,GACnB3/R,WAAAA,GACE2Z,KAAKy/E,MAAQ,EACf,CAYAwmM,MAAAA,CAAOvhC,EAAOn2D,EAAM/uJ,EAAMz6C,GACX,eAATwpM,IACFvuL,KAAKy/E,MAAQz/E,KAAKkmR,mBAAmBxhC,GAAO,GAC5C1kP,KAAK+5P,QAAQ/5P,KAAKy/E,MAAOilK,EAAO,YAGlC,MAAMjuF,EAAc1xK,EAASib,KAAKylP,aAAaf,GAAO3/P,OAAOA,GAAUib,KAAKylP,aAAaf,GACnFr1P,EAAS2Q,KAAK+5P,QAAQtjG,EAAaiuF,EAAOn2D,EAAM/uJ,GAMtD,MAJa,iBAAT+uJ,IACFvuL,KAAK+5P,QAAQtjG,EAAaiuF,EAAO,QACjC1kP,KAAK+5P,QAAQ/5P,KAAKy/E,MAAOilK,EAAO,cAE3Br1P,CACT,CAKA0qQ,OAAAA,CAAQtjG,EAAaiuF,EAAOn2D,EAAM/uJ,GAChCA,EAAOA,GAAQ,CAAC,EAChB,IAAK,MAAMrK,KAAcshI,EAAa,CACpC,MAAMqlC,EAAS3mK,EAAW2mK,OAG1B,IAA6C,IAAzCl0L,GAFWk0L,EAAOvN,GACP,CAACm2D,EAAOllN,EAAMrK,EAAWlnC,SACP6tM,IAAqBt8J,EAAKuwD,WACzD,OAAO,CAEX,CAEA,OAAO,CACT,CAEAo2L,UAAAA,GAMOrrC,GAAc96O,KAAKmmQ,UACtBnmQ,KAAKomR,UAAYpmR,KAAKmmQ,OACtBnmQ,KAAKmmQ,YAASp3Q,EAElB,CAMA02P,YAAAA,CAAaf,GACX,GAAI1kP,KAAKmmQ,OACP,OAAOnmQ,KAAKmmQ,OAGd,MAAM1vG,EAAcz2J,KAAKmmQ,OAASnmQ,KAAKkmR,mBAAmBxhC,GAI1D,OAFA1kP,KAAKqmR,oBAAoB3hC,GAElBjuF,CACT,CAEAyvH,kBAAAA,CAAmBxhC,EAAO7sL,GACxB,MAAMtqD,EAASm3O,GAASA,EAAMn3O,OACxBtf,EAAUgtP,GAAe1tO,EAAOtf,SAAWsf,EAAOtf,QAAQw4P,QAAS,CAAC,GACpEA,EAqBV,SAAoBl5O,GAClB,MAAM+4Q,EAAW,CAAC,EACZ7/B,EAAU,GACV9hQ,EAAOC,OAAOD,KAAKurR,GAASzpB,QAAQxoN,OAC1C,IAAK,IAAI14C,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAC/BkhQ,EAAQthQ,KAAK+qR,GAAS0U,UAAUjgS,EAAKY,KAGvC,MAAM+hQ,EAAQ/5O,EAAOk5O,SAAW,GAChC,IAAK,IAAIlhQ,EAAI,EAAGA,EAAI+hQ,EAAM7hQ,OAAQF,IAAK,CACrC,MAAMu2M,EAASwrD,EAAM/hQ,IAEY,IAA7BkhQ,EAAQ5/P,QAAQi1M,KAClB2qD,EAAQthQ,KAAK22M,GACbwqF,EAASxqF,EAAOhoM,KAAM,EAE1B,CAEA,MAAO,CAAC2yP,UAAS6/B,WACnB,CAxCoBC,CAAWh5Q,GAE3B,OAAmB,IAAZtf,GAAsB4pE,EAkDjC,SAA2B6sL,EAAKnzP,EAAuBtD,EAAS4pE,GAAK,IAAnC,QAAC4uL,EAAO,SAAE6/B,GAAS/0R,EACnD,MAAMlC,EAAS,GACTykC,EAAU4wN,EAAMhpC,aAEtB,IAAK,MAAM5f,KAAU2qD,EAAS,CAC5B,MAAM3yP,EAAKgoM,EAAOhoM,GACZksD,EAAOwmO,GAAQv4R,EAAQ6F,GAAK+jE,GACrB,OAAT7X,GAGJ3wD,EAAOlK,KAAK,CACV22M,SACA7tM,QAASw4R,GAAW/hC,EAAMn3O,OAAQ,CAACuuL,SAAQwrD,MAAOg/B,EAASxyR,IAAMksD,EAAMlsB,IAE3E,CAEA,OAAOzkC,CACT,CAnE4Cq3R,CAAkBhiC,EAAO+B,EAASx4P,EAAS4pE,GAAhD,EACrC,CAMAwuN,mBAAAA,CAAoB3hC,GAClB,MAAMiiC,EAAsB3mR,KAAKomR,WAAa,GACxC3vH,EAAcz2J,KAAKmmQ,OACnBzwI,EAAOA,CAACv0H,EAAGC,IAAMD,EAAEpc,QAAOiE,IAAMoY,EAAEotH,MAAKxkE,GAAKhhE,EAAE8yM,OAAOhoM,KAAOk2D,EAAE8xI,OAAOhoM,OAC3EkM,KAAK+5P,QAAQrkI,EAAKixJ,EAAqBlwH,GAAciuF,EAAO,QAC5D1kP,KAAK+5P,QAAQrkI,EAAK+gC,EAAakwH,GAAsBjiC,EAAO,QAC9D,EA2BF,SAAS8hC,GAAQv4R,EAAS4pE,GACxB,OAAKA,IAAmB,IAAZ5pE,GAGI,IAAZA,EACK,CAAC,EAEHA,EALE,IAMX,CAqBA,SAASw4R,GAAWl5Q,EAAMgiI,EAAmBvvF,EAAMlsB,GAAS,IAAhC,OAACgoK,EAAM,MAAEwrD,GAAM/3G,EACzC,MAAM5qJ,EAAO4oB,EAAOq5Q,gBAAgB9qF,GAC9BizD,EAASxhP,EAAOs0P,gBAAgB7hN,EAAMr7D,GAK5C,OAJI2iQ,GAASxrD,EAAOmlB,UAElB8tC,EAAO5pQ,KAAK22M,EAAOmlB,UAEd1zM,EAAOu0P,eAAe/S,EAAQj7N,EAAS,CAAC,IAAK,CAElD88N,YAAY,EACZC,WAAW,EACXljQ,SAAS,GAEb,CClLO,SAASk5R,GAAalzR,EAAM1F,GACjC,MAAM64R,EAAkB7lE,GAAS0kC,SAAShyP,IAAS,CAAC,EAEpD,QADwB1F,EAAQ03P,UAAY,CAAC,GAAGhyP,IAAS,CAAC,GACpCuyP,WAAaj4P,EAAQi4P,WAAa4gC,EAAgB5gC,WAAa,GACvF,CAgBA,SAAS6gC,GAAcjzR,GACrB,GAAW,MAAPA,GAAqB,MAAPA,GAAqB,MAAPA,EAC9B,OAAOA,CAEX,CAWO,SAASkzR,GAAclzR,GAC5B,GAAIizR,GAAcjzR,GAChB,OAAOA,EACR,QAAAmzR,EAAAzhS,UAAAC,OAHkCyhS,EAAY,IAAA1/R,MAAAy/R,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAZD,EAAYC,EAAA,GAAA3hS,UAAA2hS,GAI/C,IAAK,MAAMnnO,KAAQknO,EAAc,CAC/B,MAAMtmC,EAAO5gM,EAAK4gM,OAbH,SADO9+O,EAeAk+C,EAAKl+C,WAdU,WAAbA,EACjB,IAEQ,SAAbA,GAAoC,UAAbA,EAClB,SADT,IAYOhO,EAAGrO,OAAS,GAAKshS,GAAcjzR,EAAG,GAAGgL,eAC1C,GAAI8hP,EACF,OAAOA,CAEX,CApBF,IAA0B9+O,EAqBxB,MAAM,IAAIzX,MAAA,6BAAAqE,OAAmCoF,EAAG,uDAClD,CAEA,SAASszR,GAAmBtzR,EAAI8sP,EAAMzwI,GACpC,GAAIA,EAAQywI,EAAO,YAAc9sP,EAC/B,MAAO,CAAC8sP,OAEZ,CAYA,SAASymC,GAAiB95Q,EAAQtf,GAChC,MAAMq5R,EAAgBhiC,GAAU/3O,EAAO5Z,OAAS,CAACizP,OAAQ,CAAC,GACpD2gC,EAAet5R,EAAQ24P,QAAU,CAAC,EAClC4gC,EAAiBX,GAAat5Q,EAAO5Z,KAAM1F,GAC3C24P,EAAShiQ,OAAOwQ,OAAO,MAqC7B,OAlCAxQ,OAAOD,KAAK4iS,GAAc5hS,SAAQmO,IAChC,MAAM2zR,EAAYF,EAAazzR,GAC/B,IAAKs6D,GAASq5N,GACZ,OAAOj5R,QAAQ+G,MAAM,0CAAD7G,OAA2CoF,IAEjE,GAAI2zR,EAAUr3B,OACZ,OAAO5hQ,QAAQC,KAAK,kDAADC,OAAmDoF,IAExE,MAAM8sP,EAAOomC,GAAclzR,EAAI2zR,EAzBnC,SAAkC3zR,EAAIyZ,GACpC,GAAIA,EAAOhO,MAAQgO,EAAOhO,KAAKomP,SAAU,CACvC,MAAM+hC,EAAUn6Q,EAAOhO,KAAKomP,SAAS5gQ,QAAQ0c,GAAMA,EAAE0+P,UAAYrsQ,GAAM2N,EAAE4+P,UAAYvsQ,IACrF,GAAI4zR,EAAQjiS,OACV,OAAO2hS,GAAmBtzR,EAAI,IAAK4zR,EAAQ,KAAON,GAAmBtzR,EAAI,IAAK4zR,EAAQ,IAG1F,MAAO,CAAC,CACV,CAiB8CC,CAAyB7zR,EAAIyZ,GAAS0zM,GAAS2lC,OAAO6gC,EAAU9zR,OACpGi0R,EAlEV,SAAmChnC,EAAMsF,GACvC,OAAOtF,IAASsF,EAAY,UAAY,SAC1C,CAgEsB2hC,CAA0BjnC,EAAM4mC,GAC5CM,EAAsBR,EAAc1gC,QAAU,CAAC,EACrDA,EAAO9yP,GAAMkoP,GAAQp3P,OAAOwQ,OAAO,MAAO,CAAC,CAACwrP,QAAO6mC,EAAWK,EAAoBlnC,GAAOknC,EAAoBF,IAAY,IAI3Hr6Q,EAAOhO,KAAKomP,SAAShgQ,SAAQwqH,IAC3B,MAAMx8G,EAAOw8G,EAAQx8G,MAAQ4Z,EAAO5Z,KAC9BuyP,EAAY/1I,EAAQ+1I,WAAa2gC,GAAalzR,EAAM1F,GAEpD65R,GADkBxiC,GAAU3xP,IAAS,CAAC,GACAizP,QAAU,CAAC,EACvDhiQ,OAAOD,KAAKmjS,GAAqBniS,SAAQoiS,IACvC,MAAMnnC,EAxFZ,SAAmC9sP,EAAIoyP,GACrC,IAAItF,EAAO9sP,EAMX,MALW,YAAPA,EACF8sP,EAAOsF,EACS,YAAPpyP,IACT8sP,EAAqB,MAAdsF,EAAoB,IAAM,KAE5BtF,CACT,CAgFmBonC,CAA0BD,EAAW7hC,GAC5CpyP,EAAKq8G,EAAQywI,EAAO,WAAaA,EACvCgG,EAAO9yP,GAAM8yP,EAAO9yP,IAAOlP,OAAOwQ,OAAO,MACzC4mP,GAAQ4K,EAAO9yP,GAAK,CAAC,CAAC8sP,QAAO2mC,EAAazzR,GAAKg0R,EAAoBC,IAAY,GAC/E,IAIJnjS,OAAOD,KAAKiiQ,GAAQjhQ,SAAQC,IAC1B,MAAM+gQ,EAAQC,EAAOhhQ,GACrBo2P,GAAQ2K,EAAO,CAAC1lC,GAAS2lC,OAAOD,EAAMhzP,MAAOstN,GAAS0lC,OAAO,IAGxDC,CACT,CAEA,SAASqhC,GAAY16Q,GACnB,MAAMtf,EAAUsf,EAAOtf,UAAYsf,EAAOtf,QAAU,CAAC,GAErDA,EAAQw4P,QAAUxL,GAAehtP,EAAQw4P,QAAS,CAAC,GACnDx4P,EAAQ24P,OAASygC,GAAiB95Q,EAAQtf,EAC5C,CAEA,SAASi6R,GAAS3oR,GAIhB,OAHAA,EAAOA,GAAQ,CAAC,GACXomP,SAAWpmP,EAAKomP,UAAY,GACjCpmP,EAAKs3B,OAASt3B,EAAKs3B,QAAU,GACtBt3B,CACT,CAWA,MAAM4oR,GAAW,IAAIlpN,IACfmpN,GAAa,IAAIhpN,IAEvB,SAASipN,GAAW3xQ,EAAU4xQ,GAC5B,IAAI3jS,EAAOwjS,GAAS7vR,IAAIoe,GAMxB,OALK/xB,IACHA,EAAO2jS,IACPH,GAAS3nR,IAAIkW,EAAU/xB,GACvByjS,GAAWzkQ,IAAIh/B,IAEVA,CACT,CAEA,MAAM4jS,GAAaA,CAAC/nR,EAAKta,EAAKN,KAC5B,MAAMo6D,EAAOm8L,GAAiBj2P,EAAKN,QACtBmJ,IAATixD,GACFx/C,EAAImjB,IAAIq8B,IAIG,MAAMr3C,GACnBtiB,WAAAA,CAAYknB,GACVvN,KAAKioL,QA/BT,SAAoB16K,GAMlB,OALAA,EAASA,GAAU,CAAC,GACbhO,KAAO2oR,GAAS36Q,EAAOhO,MAE9B0oR,GAAY16Q,GAELA,CACT,CAwBmBi7Q,CAAWj7Q,GAC1BvN,KAAKyoR,YAAc,IAAIxpN,IACvBj/D,KAAK0oR,eAAiB,IAAIzpN,GAC5B,CAEA,YAAI7hB,GACF,OAAOp9C,KAAKioL,QAAQ7qI,QACtB,CAEA,QAAIzpD,GACF,OAAOqM,KAAKioL,QAAQt0L,IACtB,CAEA,QAAIA,CAAKA,GACPqM,KAAKioL,QAAQt0L,KAAOA,CACtB,CAEA,QAAI4L,GACF,OAAOS,KAAKioL,QAAQ1oL,IACtB,CAEA,QAAIA,CAAKA,GACPS,KAAKioL,QAAQ1oL,KAAO2oR,GAAS3oR,EAC/B,CAEA,WAAItR,GACF,OAAO+R,KAAKioL,QAAQh6L,OACtB,CAEA,WAAIA,CAAQA,GACV+R,KAAKioL,QAAQh6L,QAAUA,CACzB,CAEA,WAAIw4P,GACF,OAAOzmP,KAAKioL,QAAQw+D,OACtB,CAEA11P,MAAAA,GACE,MAAMwc,EAASvN,KAAKioL,QACpBjoL,KAAK2oR,aACLV,GAAY16Q,EACd,CAEAo7Q,UAAAA,GACE3oR,KAAKyoR,YAAYv+Q,QACjBlK,KAAK0oR,eAAex+Q,OACtB,CAQA03P,gBAAAA,CAAiBgnB,GACf,OAAOP,GAAWO,GAChB,IAAM,CAAC,CAAC,YAADl6R,OACOk6R,GACZ,MAEN,CASAvkB,yBAAAA,CAA0BukB,EAAahsP,GACrC,OAAOyrP,GAAA,GAAA35R,OAAck6R,EAAA,gBAAAl6R,OAA0BkuC,IAC7C,IAAM,CACJ,CAAC,YAADluC,OACck6R,EAAA,iBAAAl6R,OAA2BkuC,GAAA,eAAAluC,OACxBkuC,IAGjB,CAAC,YAADluC,OACck6R,GACZ,MAGR,CAUA1kB,uBAAAA,CAAwB0kB,EAAa19R,GACnC,OAAOm9R,GAAA,GAAA35R,OAAck6R,EAAA,KAAAl6R,OAAexD,IAClC,IAAM,CAAC,CAAC,YAADwD,OACOk6R,EAAA,cAAAl6R,OAAwBxD,GAAA,YAAAwD,OACxBk6R,GAAA,YAAAl6R,OACAxD,GACZ,MAEN,CAOA07R,eAAAA,CAAgB9qF,GACd,MAAMhoM,EAAKgoM,EAAOhoM,GACZH,EAAOqM,KAAKrM,KAClB,OAAO00R,GAAA,GAAA35R,OAAciF,EAAA,YAAAjF,OAAeoF,IAClC,IAAM,CAAC,CAAC,WAADpF,OACMoF,MACRgoM,EAAO+sF,wBAA0B,MAE1C,CAKAC,aAAAA,CAAcC,EAAWC,GACvB,MAAMP,EAAczoR,KAAKyoR,YACzB,IAAIr1N,EAAQq1N,EAAYnwR,IAAIywR,GAK5B,OAJK31N,IAAS41N,IACZ51N,EAAQ,IAAI6L,IACZwpN,EAAYjoR,IAAIuoR,EAAW31N,IAEtBA,CACT,CAQAyuM,eAAAA,CAAgBknB,EAAWE,EAAUD,GACnC,MAAM,QAAC/6R,EAAO,KAAE0F,GAAQqM,KAClBozD,EAAQpzD,KAAK8oR,cAAcC,EAAWC,GACtCrqB,EAASvrM,EAAM96D,IAAI2wR,GACzB,GAAItqB,EACF,OAAOA,EAGT,MAAM5P,EAAS,IAAI3vL,IAEnB6pN,EAAStjS,SAAQhB,IACXokS,IACFh6B,EAAOprO,IAAIolQ,GACXpkS,EAAKgB,SAAQC,GAAO2iS,GAAWx5B,EAAQg6B,EAAWnjS,MAEpDjB,EAAKgB,SAAQC,GAAO2iS,GAAWx5B,EAAQ9gQ,EAASrI,KAChDjB,EAAKgB,SAAQC,GAAO2iS,GAAWx5B,EAAQzJ,GAAU3xP,IAAS,CAAC,EAAG/N,KAC9DjB,EAAKgB,SAAQC,GAAO2iS,GAAWx5B,EAAQ9tC,GAAUr7N,KACjDjB,EAAKgB,SAAQC,GAAO2iS,GAAWx5B,EAAQt4F,GAAa7wK,IAAA,IAGtD,MAAM6E,EAAQjD,MAAMkB,KAAKqmQ,GAOzB,OANqB,IAAjBtkQ,EAAMhF,QACRgF,EAAMtF,KAAKP,OAAOwQ,OAAO,OAEvBgzR,GAAW12M,IAAIu3M,IACjB71N,EAAM5yD,IAAIyoR,EAAUx+R,GAEfA,CACT,CAMAy+R,iBAAAA,GACE,MAAM,QAACj7R,EAAO,KAAE0F,GAAQqM,KAExB,MAAO,CACL/R,EACAq3P,GAAU3xP,IAAS,CAAC,EACpBstN,GAAS0kC,SAAShyP,IAAS,CAAC,EAC5B,CAACA,QACDstN,GACAxqD,GAEJ,CASA0tG,mBAAAA,CAAoBpV,EAAQ/5H,EAAOlhG,GAA0B,IAAjBgzJ,EAAWthM,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAC,GAADA,UAAC,GAAD,CAAC,IACtD,MAAM6J,EAAS,CAAC6sQ,SAAS,IACnB,SAAC9f,EAAQ,YAAE+sC,GAAeC,GAAYppR,KAAK0oR,eAAgB35B,EAAQjoE,GACzE,IAAI74L,EAAUmuP,EACd,GAkDJ,SAAqBsT,EAAO16H,GAC1B,MAAM,aAACu7H,EAAY,YAAEE,GAAehL,GAAaiK,GAEjD,IAAK,MAAMnwM,KAAQy1E,EAAO,CACxB,MAAM47H,EAAaL,EAAahxM,GAC1BsxM,EAAYJ,EAAYlxM,GACxBh5D,GAASsqQ,GAAaD,IAAelB,EAAMnwM,GACjD,GAAKqxM,IAAeziM,GAAW5nE,IAAU8iS,GAAY9iS,KAC/CsqQ,GAAappQ,GAAQlB,GACzB,OAAO,CAEX,CACA,OAAO,CACT,CA/DQ+iS,CAAYltC,EAAUpnH,GAAQ,CAChC3lI,EAAO6sQ,SAAU,EAIjBjuQ,EAAUgiQ,GAAe7T,EAHzBtoN,EAAUq6B,GAAWr6B,GAAWA,IAAYA,EAExB9zB,KAAK8hQ,eAAe/S,EAAQj7N,EAASq1P,IAI3D,IAAK,MAAM5pO,KAAQy1E,EACjB3lI,EAAOkwD,GAAQtxD,EAAQsxD,GAEzB,OAAOlwD,CACT,CAQAyyQ,cAAAA,CAAe/S,EAAQj7N,GAA8C,IAArCgzJ,EAAWthM,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAC,GAADA,UAAC,GAAD,CAAC,IAAK2qQ,EAAkB3qQ,UAAAC,OAAA,EAAAD,UAAA,QAAAuJ,EACjE,MAAM,SAACqtP,GAAYgtC,GAAYppR,KAAK0oR,eAAgB35B,EAAQjoE,GAC5D,OAAO14H,GAASt6B,GACZm8N,GAAe7T,EAAUtoN,OAAS/kC,EAAWohQ,GAC7C/T,CACN,EAGF,SAASgtC,GAAYG,EAAex6B,EAAQjoE,GAC1C,IAAI1zH,EAAQm2N,EAAcjxR,IAAIy2P,GACzB37L,IACHA,EAAQ,IAAI6L,IACZsqN,EAAc/oR,IAAIuuP,EAAQ37L,IAE5B,MAAM18C,EAAWowK,EAASxyK,OAC1B,IAAIqqP,EAASvrM,EAAM96D,IAAIoe,GACvB,IAAKioP,EAAQ,CAEXA,EAAS,CACPviB,SAFe0S,GAAgBC,EAAQjoE,GAGvCqiG,YAAariG,EAAS/hM,QAAOs0E,IAAMA,EAAEv6D,cAAcvQ,SAAS,YAE9D6kE,EAAM5yD,IAAIkW,EAAUioP,GAEtB,OAAOA,CACT,CAEA,MAAM0qB,GAAc9iS,GAAS6nE,GAAS7nE,IACjC3B,OAAO68E,oBAAoBl7E,GAAOioI,MAAM5oI,GAAQuoE,GAAW5nE,EAAMX,MC9XtE,MAAM4jS,GAAkB,CAAC,MAAO,SAAU,OAAQ,QAAS,aAC3D,SAASC,GAAqB3nR,EAAU8+O,GACtC,MAAoB,QAAb9+O,GAAmC,WAAbA,IAAiE,IAAvC0nR,GAAgB3iS,QAAQib,IAA6B,MAAT8+O,CACrG,CAEA,SAAS8oC,GAAcz6E,EAAII,GACzB,OAAO,SAASluM,EAAGC,GACjB,OAAOD,EAAE8tM,KAAQ7tM,EAAE6tM,GACf9tM,EAAEkuM,GAAMjuM,EAAEiuM,GACVluM,EAAE8tM,GAAM7tM,EAAE6tM,EAChB,CACF,CAEA,SAAS06E,GAAqB71P,GAC5B,MAAM4wN,EAAQ5wN,EAAQ4wN,MAChBqX,EAAmBrX,EAAMz2P,QAAQ+sG,UAEvC0pJ,EAAMo5B,cAAc,eACpBl2Q,GAAam0P,GAAoBA,EAAiB3lQ,WAAY,CAAC09B,GAAU4wN,EAC3E,CAEA,SAASklC,GAAoB91P,GAC3B,MAAM4wN,EAAQ5wN,EAAQ4wN,MAChBqX,EAAmBrX,EAAMz2P,QAAQ+sG,UACvCpzF,GAAam0P,GAAoBA,EAAiBn9I,WAAY,CAAC9qF,GAAU4wN,EAC3E,CAMA,SAASmlC,GAAUtuP,GAYjB,OAXI44N,MAAqC,kBAAT54N,EAC9BA,EAAO9J,SAASwoC,eAAe1+B,GACtBA,GAAQA,EAAK91C,SAEtB81C,EAAOA,EAAK,IAGVA,GAAQA,EAAK0gL,SAEf1gL,EAAOA,EAAK0gL,QAEP1gL,CACT,CAEA,MAAMuuP,GAAY,CAAC,EACbC,GAAYnkS,IAChB,MAAMq2N,EAAS4tE,GAAUjkS,GACzB,OAAOhB,OAAOu2B,OAAO2uQ,IAAW/kS,QAAQyc,GAAMA,EAAEy6M,SAAWA,IAAQ5kL,KAAK,EAG1E,SAAS2yP,GAAgB9jS,EAAKm6D,EAAO4qF,GACnC,MAAMtmJ,EAAOC,OAAOD,KAAKuB,GACzB,IAAK,MAAMN,KAAOjB,EAAM,CACtB,MAAMslS,GAAUrkS,EAChB,GAAIqkS,GAAU5pO,EAAO,CACnB,MAAM95D,EAAQL,EAAIN,UACXM,EAAIN,IACPqlJ,EAAO,GAAKg/I,EAAS5pO,KACvBn6D,EAAI+jS,EAASh/I,GAAQ1kJ,GAG3B,CACF,CAmBA,SAAS2jS,GAAevjC,EAAOgd,EAAW3tN,GACxC,OAAO2wM,EAAM14P,QAAQ+5P,KAAOrB,EAAM3wM,GAAS2tN,EAAU3tN,EACvD,CAeA,MAAMm0O,GASJ,eAAO52J,GACL28I,GAASvsP,OAAOn+B,WAChB4kS,IACF,CAEA,iBAAO3mE,GACLysD,GAAS73P,UAAU7yB,WACnB4kS,IACF,CAGA/jS,WAAAA,CAAYk1C,EAAMmkG,GAChB,MAAMnyH,EAASvN,KAAKuN,OAAS,IAAI5E,GAAO+2H,GAClC2qJ,EAAgBR,GAAUtuP,GAC1B+uP,EAAgBP,GAASM,GAC/B,GAAIC,EACF,MAAM,IAAIjgS,MACR,4CAA+CigS,EAAcx2R,GAA7D,kDACgDw2R,EAAcruE,OAAOnoN,GAAK,oBAI9E,MAAM7F,EAAUsf,EAAOu0P,eAAev0P,EAAO27Q,oBAAqBlpR,KAAK07M,cAEvE17M,KAAKo9C,SAAW,IAAK7vC,EAAO6vC,UCpJzB,SAAyB6+J,GAC9B,OAAKk4C,MAAiD,qBAApBo2B,iBAAmCtuE,aAAkBsuE,gBAC9E1U,GAEF6B,EACT,CD+I4C8S,CAAgBH,IACxDrqR,KAAKo9C,SAASw4N,aAAaroQ,GAE3B,MAAMumB,EAAU9zB,KAAKo9C,SAASq4N,eAAe4U,EAAep8R,EAAQq0F,aAC9D25H,EAASnoL,GAAWA,EAAQmoL,OAC5BloH,EAASkoH,GAAUA,EAAOloH,OAC1BD,EAAQmoH,GAAUA,EAAOnoH,MAE/B9zF,KAAKlM,GAAK8lF,KACV55E,KAAKhQ,IAAM8jC,EACX9zB,KAAKi8M,OAASA,EACdj8M,KAAK8zF,MAAQA,EACb9zF,KAAK+zF,OAASA,EACd/zF,KAAKyqR,SAAWx8R,EAIhB+R,KAAK0qR,aAAe1qR,KAAKsiF,YACzBtiF,KAAKs0Q,QAAU,GACft0Q,KAAK2qR,UAAY,GACjB3qR,KAAK89P,aAAU/uQ,EACfiR,KAAK+zQ,MAAQ,GACb/zQ,KAAKoqP,6BAA0Br7P,EAC/BiR,KAAK2jQ,eAAY50Q,EACjBiR,KAAKu6P,QAAU,GACfv6P,KAAK4qR,gBAAa77R,EAClBiR,KAAK6qR,WAAa,CAAC,EAEnB7qR,KAAK8qR,0BAAuB/7R,EAC5BiR,KAAK+qR,gBAAkB,GACvB/qR,KAAK4mP,OAAS,CAAC,EACf5mP,KAAKmuL,SAAW,IAAI63F,GACpBhmR,KAAKi4Q,SAAW,CAAC,EACjBj4Q,KAAKgrR,eAAiB,CAAC,EACvBhrR,KAAKirR,UAAW,EAChBjrR,KAAKykQ,yBAAsB11Q,EAC3BiR,KAAKu/P,cAAWxwQ,EAChBiR,KAAKkrR,U1C9IF,SAA4Cv5Q,EAA8B4W,GAC/E,IAAIpd,EACJ,OAAO,WAAyB,QAAA+zN,EAAA15O,UAAAC,OAAb+5C,EAAW,IAAAh4C,MAAA03O,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAX3/L,EAAW2/L,GAAA35O,UAAA25O,GAO5B,OANI52M,GACFu1E,aAAa3yF,GACbA,EAAUsd,WAAW9W,EAAI4W,EAAOiX,IAEhC7tB,EAAGvsB,MAAM4a,KAAMw/B,GAEVjX,CACT,CACF,C0CmIqB4iQ,EAASrsQ,GAAQ9e,KAAKjP,OAAO+tB,IAAO7wB,EAAQm9R,aAAe,GAC5EprR,KAAK2lQ,aAAe,GAGpBmkB,GAAU9pR,KAAKlM,IAAMkM,KAEhB8zB,GAAYmoL,GASjB4+C,GAAStsH,OAAOvuI,KAAM,WAAY2pR,IAClC9uB,GAAStsH,OAAOvuI,KAAM,WAAY4pR,IAElC5pR,KAAKqrR,cACDrrR,KAAKirR,UACPjrR,KAAKjP,UATLvC,QAAQ+G,MAAM,oEAWlB,CAEA,eAAI+sF,GACF,MAAOr0F,SAAS,YAACq0F,EAAW,oBAAEgkK,GAAoB,MAAExyJ,EAAA,OAAOC,EAAM,aAAE22L,GAAgB1qR,KACnF,OAAK86O,GAAcx4J,GAKfgkK,GAAuBokC,EAElBA,EAIF32L,EAASD,EAAQC,EAAS,KATxBzR,CAUX,CAEA,QAAI/iF,GACF,OAAOS,KAAKuN,OAAOhO,IACrB,CAEA,QAAIA,CAAKA,GACPS,KAAKuN,OAAOhO,KAAOA,CACrB,CAEA,WAAItR,GACF,OAAO+R,KAAKyqR,QACd,CAEA,WAAIx8R,CAAQA,GACV+R,KAAKuN,OAAOtf,QAAUA,CACxB,CAEA,YAAIiiR,GACF,OAAOA,EACT,CAKAmb,WAAAA,GAeE,OAbArrR,KAAK89Q,cAAc,cAEf99Q,KAAK/R,QAAQy4P,WACf1mP,KAAK4nP,SAELkO,GAAY91P,KAAMA,KAAK/R,QAAQ23P,kBAGjC5lP,KAAKsrR,aAGLtrR,KAAK89Q,cAAc,aAEZ99Q,IACT,CAEAkK,KAAAA,GAEE,OADAogP,GAAYtqP,KAAKi8M,OAAQj8M,KAAKhQ,KACvBgQ,IACT,CAEAotE,IAAAA,GAEE,OADAytL,GAASztL,KAAKptE,MACPA,IACT,CAOA4nP,MAAAA,CAAO9zJ,EAAOC,GACP8mK,GAASR,QAAQr6P,MAGpBA,KAAKurR,kBAAoB,CAACz3L,QAAOC,UAFjC/zF,KAAKwrR,QAAQ13L,EAAOC,EAIxB,CAEAy3L,OAAAA,CAAQ13L,EAAOC,GACb,MAAM9lG,EAAU+R,KAAK/R,QACfguN,EAASj8M,KAAKi8M,OACd35H,EAAcr0F,EAAQq4P,qBAAuBtmP,KAAKsiF,YAClDmpM,EAAUzrR,KAAKo9C,SAASi4M,eAAep5C,EAAQnoH,EAAOC,EAAQzR,GAC9DopM,EAAWz9R,EAAQ23P,kBAAoB5lP,KAAKo9C,SAASyoM,sBACrD/mO,EAAO9e,KAAK8zF,MAAQ,SAAW,SAErC9zF,KAAK8zF,MAAQ23L,EAAQ33L,MACrB9zF,KAAK+zF,OAAS03L,EAAQ13L,OACtB/zF,KAAK0qR,aAAe1qR,KAAKsiF,YACpBwzK,GAAY91P,KAAM0rR,GAAU,KAIjC1rR,KAAK89Q,cAAc,SAAU,CAACjgO,KAAM4tO,IAEpC7jR,GAAa3Z,EAAQ09R,SAAU,CAAC3rR,KAAMyrR,GAAUzrR,MAE5CA,KAAKirR,UACHjrR,KAAKkrR,UAAUpsQ,IAEjB9e,KAAK84D,SAGX,CAEA8yN,mBAAAA,GAIE/iR,GAHgB7I,KAAK/R,QACS24P,QAAU,CAAC,GAErB,CAACilC,EAAatI,KAChCsI,EAAY/3R,GAAKyvR,CAAA,GAErB,CAKAuI,mBAAAA,GACE,MAAM79R,EAAU+R,KAAK/R,QACf89R,EAAY99R,EAAQ24P,OACpBA,EAAS5mP,KAAK4mP,OACdolC,EAAUpnS,OAAOD,KAAKiiQ,GAAQx4P,QAAO,CAAClI,EAAK4N,KAC/C5N,EAAI4N,IAAM,EACH5N,IACN,CAAC,GACJ,IAAI+3C,EAAQ,GAER8tP,IACF9tP,EAAQA,EAAMvvC,OACZ9J,OAAOD,KAAKonS,GAAWpxQ,KAAK7mB,IAC1B,MAAMozR,EAAe6E,EAAUj4R,GACzB8sP,EAAOomC,GAAclzR,EAAIozR,GACzB+E,EAAoB,MAATrrC,EACXunB,EAAwB,MAATvnB,EACrB,MAAO,CACL3yP,QAASi5R,EACTgF,UAAWD,EAAW,YAAc9jB,EAAe,SAAW,OAC9DgkB,MAAOF,EAAW,eAAiB9jB,EAAe,WAAa,SAChE,MAKPt/P,GAAKo1B,GAAQ1C,IACX,MAAM2rP,EAAe3rP,EAAKttC,QACpB6F,EAAKozR,EAAapzR,GAClB8sP,EAAOomC,GAAclzR,EAAIozR,GACzBkF,EAAYnxC,GAAeisC,EAAavzR,KAAM4nC,EAAK4wP,YAE3Bp9R,IAA1Bm4R,EAAaplR,UAA0B2nR,GAAqBvC,EAAaplR,SAAU8+O,KAAU6oC,GAAqBluP,EAAK2wP,aACzHhF,EAAaplR,SAAWy5B,EAAK2wP,WAG/BF,EAAQl4R,IAAM,EACd,IAAI6yP,EAAQ,KACZ,GAAI7yP,KAAM8yP,GAAUA,EAAO9yP,GAAIH,OAASy4R,EACtCzlC,EAAQC,EAAO9yP,OACV,CAEL6yP,EAAQ,IADWupB,GAAS2U,SAASuH,GAC7B,CAAe,CACrBt4R,KACAH,KAAMy4R,EACNp8R,IAAKgQ,KAAKhQ,IACV00P,MAAO1kP,OAET4mP,EAAOD,EAAM7yP,IAAM6yP,EAGrBA,EAAMxsL,KAAK+sN,EAAcj5R,EAAA,IAG3B4a,GAAKmjR,GAAS,CAACK,EAAYv4R,KACpBu4R,UACIzlC,EAAO9yP,MAIlB+U,GAAK+9O,GAASD,IACZ2rB,GAAQj2P,UAAUrc,KAAM2mP,EAAOA,EAAM14P,SACrCqkR,GAAQ+B,OAAOr0Q,KAAM2mP,EAAA,GAEzB,CAKA2lC,eAAAA,GACE,MAAM1vB,EAAW58P,KAAK2qR,UAChBtlB,EAAUrlQ,KAAKT,KAAKomP,SAASlgQ,OAC7B2/Q,EAAUxI,EAASn3Q,OAGzB,GADAm3Q,EAASpkO,MAAK,CAACr3B,EAAGC,IAAMD,EAAEyT,MAAQxT,EAAEwT,QAChCwwP,EAAUC,EAAS,CACrB,IAAK,IAAI9/Q,EAAI8/Q,EAAS9/Q,EAAI6/Q,IAAW7/Q,EACnCya,KAAKusR,oBAAoBhnS,GAE3Bq3Q,EAAS/1N,OAAOw+N,EAASD,EAAUC,GAErCrlQ,KAAK+qR,gBAAkBnuB,EAASp0Q,MAAM,GAAGgwC,KAAKkxP,GAAc,QAAS,SACvE,CAKA8C,2BAAAA,GACE,MAAO7B,UAAW/tB,EAAUr9P,MAAM,SAAComP,IAAa3lP,KAC5C48P,EAASn3Q,OAASkgQ,EAASlgQ,eACtBua,KAAK89P,QAEdlB,EAASj3Q,SAAQ,CAACkgG,EAAMjxE,KACmC,IAArD+wO,EAAS5gQ,QAAOiE,GAAKA,IAAM68F,EAAKsoL,WAAU1oR,QAC5Cua,KAAKusR,oBAAoB33Q,KAG/B,CAEA63Q,wBAAAA,GACE,MAAMC,EAAiB,GACjB/mC,EAAW3lP,KAAKT,KAAKomP,SAC3B,IAAIpgQ,EAAGg2P,EAIP,IAFAv7O,KAAKwsR,8BAEAjnS,EAAI,EAAGg2P,EAAOoK,EAASlgQ,OAAQF,EAAIg2P,EAAMh2P,IAAK,CACjD,MAAM4qH,EAAUw1I,EAASpgQ,GACzB,IAAIsgG,EAAO7lF,KAAK8gQ,eAAev7Q,GAC/B,MAAMoO,EAAOw8G,EAAQx8G,MAAQqM,KAAKuN,OAAO5Z,KAazC,GAXIkyF,EAAKlyF,MAAQkyF,EAAKlyF,OAASA,IAC7BqM,KAAKusR,oBAAoBhnS,GACzBsgG,EAAO7lF,KAAK8gQ,eAAev7Q,IAE7BsgG,EAAKlyF,KAAOA,EACZkyF,EAAKqgK,UAAY/1I,EAAQ+1I,WAAa2gC,GAAalzR,EAAMqM,KAAK/R,SAC9D43F,EAAK5B,MAAQksB,EAAQlsB,OAAS,EAC9B4B,EAAKjxE,MAAQrvB,EACbsgG,EAAK9uD,MAAQ,GAAKo5E,EAAQp5E,MAC1B8uD,EAAK6oI,QAAU1uN,KAAKorQ,iBAAiB7lR,GAEjCsgG,EAAKyrI,WACPzrI,EAAKyrI,WAAWyuC,YAAYx6Q,GAC5BsgG,EAAKyrI,WAAWquC,iBACX,CACL,MAAMgtB,EAAkBzc,GAASyU,cAAchxR,IACzC,mBAAC8rQ,EAAA,gBAAoBC,GAAmBz+C,GAAS0kC,SAAShyP,GAChE/O,OAAOsyC,OAAOy1P,EAAiB,CAC7BjtB,gBAAiBwQ,GAAS3zF,WAAWmjF,GACrCD,mBAAoBA,GAAsByQ,GAAS3zF,WAAWkjF,KAEhE55K,EAAKyrI,WAAa,IAAIq7D,EAAgB3sR,KAAMza,GAC5CmnS,EAAevnS,KAAK0gG,EAAKyrI,YAE7B,CAGA,OADAtxN,KAAKssR,kBACEI,CACT,CAMAE,cAAAA,GACE/jR,GAAK7I,KAAKT,KAAKomP,UAAU,CAACx1I,EAASsrI,KACjCz7O,KAAK8gQ,eAAerlB,GAAcnqB,WAAWhyC,OAAO,GACnDt/K,KACL,CAKAs/K,KAAAA,GACEt/K,KAAK4sR,iBACL5sR,KAAK89Q,cAAc,QACrB,CAEA/sR,MAAAA,CAAO+tB,GACL,MAAMvR,EAASvN,KAAKuN,OAEpBA,EAAOxc,SACP,MAAM9C,EAAU+R,KAAKyqR,SAAWl9Q,EAAOu0P,eAAev0P,EAAO27Q,oBAAqBlpR,KAAK07M,cACjFmxE,EAAgB7sR,KAAKykQ,qBAAuBx2Q,EAAQ+sG,UAU1D,GARAh7F,KAAK8sR,gBACL9sR,KAAK+sR,sBACL/sR,KAAKgtR,uBAILhtR,KAAKmuL,SAASg4F,cAEuD,IAAjEnmR,KAAK89Q,cAAc,eAAgB,CAACh/P,OAAMixE,YAAY,IACxD,OAIF,MAAM28L,EAAiB1sR,KAAKysR,2BAE5BzsR,KAAK89Q,cAAc,wBAGnB,IAAIrJ,EAAa,EACjB,IAAK,IAAIlvR,EAAI,EAAGg2P,EAAOv7O,KAAKT,KAAKomP,SAASlgQ,OAAQF,EAAIg2P,EAAMh2P,IAAK,CAC/D,MAAM,WAAC+rO,GAActxN,KAAK8gQ,eAAev7Q,GACnC+5L,GAASutG,IAAyD,IAAxCH,EAAe7lS,QAAQyqO,GAGvDA,EAAWgwC,sBAAsBhiF,GACjCm1F,EAAapyQ,KAAK+tB,KAAKkhM,EAAW+xC,iBAAkBoR,EACtD,CACAA,EAAaz0Q,KAAKitR,YAAch/R,EAAQ2kR,OAAO9qB,YAAc2sB,EAAa,EAC1Ez0Q,KAAKktR,cAAczY,GAGdoY,GAGHhkR,GAAK6jR,GAAiBp7D,IACpBA,EAAWhyC,OAAO,IAItBt/K,KAAKmtR,gBAAgBruQ,GAGrB9e,KAAK89Q,cAAc,cAAe,CAACh/P,SAEnC9e,KAAKs0Q,QAAQ97O,KAAKkxP,GAAc,IAAK,SAGrC,MAAM,QAACnvB,EAAO,WAAEqwB,GAAc5qR,KAC1B4qR,EACF5qR,KAAKotR,cAAcxC,GAAY,GACtBrwB,EAAQ90Q,QACjBua,KAAKqtR,mBAAmB9yB,EAASA,GAAS,GAG5Cv6P,KAAK84D,QACP,CAKAg0N,aAAAA,GACEjkR,GAAK7I,KAAK4mP,QAASD,IACjB2rB,GAAQiC,UAAUv0Q,KAAM2mP,EAAA,IAG1B3mP,KAAK4rR,sBACL5rR,KAAK8rR,qBACP,CAKAiB,mBAAAA,GACE,MAAM9+R,EAAU+R,KAAK/R,QACfq/R,EAAiB,IAAIluN,IAAIx6E,OAAOD,KAAKqb,KAAK6qR,aAC1C0C,EAAY,IAAInuN,IAAInxE,EAAQohB,QAE7BmtO,GAAU8wC,EAAgBC,MAAgBvtR,KAAK8qR,uBAAyB78R,EAAQy4P,aAEnF1mP,KAAKwtR,eACLxtR,KAAKsrR,aAET,CAKA0B,oBAAAA,GACE,MAAM,eAAChC,GAAkBhrR,KACnB+gJ,EAAU/gJ,KAAKytR,0BAA4B,GACjD,IAAK,MAAM,OAACnjQ,EAAM,MAAE+1B,EAAA,MAAOrZ,KAAU+5G,EAAS,CAE5CipI,GAAgBgB,EAAgB3qO,EADR,oBAAX/1B,GAAgC0c,EAAQA,EAEvD,CACF,CAKAymP,sBAAAA,GACE,MAAM9nB,EAAe3lQ,KAAK2lQ,aAC1B,IAAKA,IAAiBA,EAAalgR,OACjC,OAGFua,KAAK2lQ,aAAe,GACpB,MAAM+nB,EAAe1tR,KAAKT,KAAKomP,SAASlgQ,OAClCkoS,EAAWxuO,GAAQ,IAAIigB,IAC3BumM,EACG5gR,QAAOyc,GAAKA,EAAE,KAAO29C,IACrBxkC,KAAI,CAACnZ,EAAGjc,IAAMA,EAAI,IAAMic,EAAEqlC,OAAO,GAAGvyB,KAAK,QAGxCs5Q,EAAYD,EAAQ,GAC1B,IAAK,IAAIpoS,EAAI,EAAGA,EAAImoS,EAAcnoS,IAChC,IAAKi3P,GAAUoxC,EAAWD,EAAQpoS,IAChC,OAGJ,OAAOiC,MAAMkB,KAAKklS,GACfjzQ,KAAInZ,GAAKA,EAAE8F,MAAM,OACjBqT,KAAIxZ,IAAA,CAAOmpB,OAAQnpB,EAAE,GAAIk/C,OAAQl/C,EAAE,GAAI6lC,OAAQ7lC,EAAE,MACtD,CAOA+rR,aAAAA,CAAczY,GACZ,IAA+D,IAA3Dz0Q,KAAK89Q,cAAc,eAAgB,CAAC/tL,YAAY,IAClD,OAGFuiL,GAAQvhR,OAAOiP,KAAMA,KAAK8zF,MAAO9zF,KAAK+zF,OAAQ0gL,GAE9C,MAAMpvL,EAAOrlF,KAAK2jQ,UACZkqB,EAASxoM,EAAKyO,OAAS,GAAKzO,EAAK0O,QAAU,EAEjD/zF,KAAKs0Q,QAAU,GACfzrQ,GAAK7I,KAAK+zQ,OAAQ/e,IACZ64B,GAA2B,cAAjB74B,EAAIlzP,WAOdkzP,EAAI34O,WACN24O,EAAI34O,YAENrc,KAAKs0Q,QAAQnvR,QAAQ6vQ,EAAIsf,WAAU,GAClCt0Q,MAEHA,KAAKs0Q,QAAQ3uR,SAAQ,CAAC41C,EAAM3mB,KAC1B2mB,EAAKuyP,KAAOl5Q,CAAA,IAGd5U,KAAK89Q,cAAc,cACrB,CAOAqP,eAAAA,CAAgBruQ,GACd,IAA6E,IAAzE9e,KAAK89Q,cAAc,uBAAwB,CAACh/P,OAAMixE,YAAY,IAAlE,CAIA,IAAK,IAAIxqG,EAAI,EAAGg2P,EAAOv7O,KAAKT,KAAKomP,SAASlgQ,OAAQF,EAAIg2P,IAAQh2P,EAC5Dya,KAAK8gQ,eAAev7Q,GAAG+rO,WAAWj1M,YAGpC,IAAK,IAAI92B,EAAI,EAAGg2P,EAAOv7O,KAAKT,KAAKomP,SAASlgQ,OAAQF,EAAIg2P,IAAQh2P,EAC5Dya,KAAK+tR,eAAexoS,EAAG4oE,GAAWrvC,GAAQA,EAAK,CAAC28N,aAAcl2P,IAAMu5B,GAGtE9e,KAAK89Q,cAAc,sBAAuB,CAACh/P,SAC7C,CAOAivQ,cAAAA,CAAen5Q,EAAOkK,GACpB,MAAM+mE,EAAO7lF,KAAK8gQ,eAAelsP,GAC3B4qB,EAAO,CAACqmD,OAAMjxE,QAAOkK,OAAMixE,YAAY,IAEW,IAApD/vF,KAAK89Q,cAAc,sBAAuBt+O,KAI9CqmD,EAAKyrI,WAAW8oC,QAAQt7O,GAExB0gB,EAAKuwD,YAAa,EAClB/vF,KAAK89Q,cAAc,qBAAsBt+O,GAC3C,CAEAs5B,MAAAA,IACiE,IAA3D94D,KAAK89Q,cAAc,eAAgB,CAAC/tL,YAAY,MAIhD8qK,GAASnpL,IAAI1xE,MACXA,KAAKirR,WAAapwB,GAASR,QAAQr6P,OACrC66P,GAASx6M,MAAMrgD,OAGjBA,KAAKs6P,OACLqvB,GAAqB,CAACjlC,MAAO1kP,QAEjC,CAEAs6P,IAAAA,GACE,IAAI/0Q,EACJ,GAAIya,KAAKurR,kBAAmB,CAC1B,MAAM,MAACz3L,EAAA,OAAOC,GAAU/zF,KAAKurR,kBAC7BvrR,KAAKwrR,QAAQ13L,EAAOC,GACpB/zF,KAAKurR,kBAAoB,KAI3B,GAFAvrR,KAAKkK,QAEDlK,KAAK8zF,OAAS,GAAK9zF,KAAK+zF,QAAU,EACpC,OAGF,IAA6D,IAAzD/zF,KAAK89Q,cAAc,aAAc,CAAC/tL,YAAY,IAChD,OAMF,MAAMi+L,EAAShuR,KAAKs0Q,QACpB,IAAK/uR,EAAI,EAAGA,EAAIyoS,EAAOvoS,QAAUuoS,EAAOzoS,GAAG6rE,GAAK,IAAK7rE,EACnDyoS,EAAOzoS,GAAG+0Q,KAAKt6P,KAAK2jQ,WAMtB,IAHA3jQ,KAAKiuR,gBAGE1oS,EAAIyoS,EAAOvoS,SAAUF,EAC1ByoS,EAAOzoS,GAAG+0Q,KAAKt6P,KAAK2jQ,WAGtB3jQ,KAAK89Q,cAAc,YACrB,CAKAjhB,sBAAAA,CAAuBF,GACrB,MAAMC,EAAW58P,KAAK+qR,gBAChB17R,EAAS,GACf,IAAI9J,EAAGg2P,EAEP,IAAKh2P,EAAI,EAAGg2P,EAAOqhB,EAASn3Q,OAAQF,EAAIg2P,IAAQh2P,EAAG,CACjD,MAAMsgG,EAAO+2K,EAASr3Q,GACjBo3Q,IAAiB92K,EAAK6oI,SACzBr/N,EAAOlK,KAAK0gG,EAEhB,CAEA,OAAOx2F,CACT,CAMAuhR,4BAAAA,GACE,OAAO5wQ,KAAK68P,wBAAuB,EACrC,CAOAoxB,aAAAA,GACE,IAAqE,IAAjEjuR,KAAK89Q,cAAc,qBAAsB,CAAC/tL,YAAY,IACxD,OAGF,MAAM6sK,EAAW58P,KAAK4wQ,+BACtB,IAAK,IAAIrrR,EAAIq3Q,EAASn3Q,OAAS,EAAGF,GAAK,IAAKA,EAC1Cya,KAAKkuR,aAAatxB,EAASr3Q,IAG7Bya,KAAK89Q,cAAc,oBACrB,CAOAoQ,YAAAA,CAAaroM,GACX,MAAM71F,EAAMgQ,KAAKhQ,IACXg4P,EAAOniK,EAAK29K,MACZ2qB,GAAWnmC,EAAKtsL,SAChB2pB,EAxrBV,SAAwBQ,EAAM89K,GAC5B,MAAM,OAACziB,EAAA,OAAQC,GAAUt7J,EACzB,OAAIq7J,GAAUC,EACL,CACL/zP,KAAM88R,GAAehpC,EAAQyiB,EAAW,QACxCt2Q,MAAO68R,GAAehpC,EAAQyiB,EAAW,SACzC7pK,IAAKowL,GAAe/oC,EAAQwiB,EAAW,OACvC9lI,OAAQqsJ,GAAe/oC,EAAQwiB,EAAW,WAGvCA,CACT,CA6qBiByqB,CAAevoM,EAAM7lF,KAAK2jQ,WACjCnkO,EAAO,CACXqmD,OACAjxE,MAAOixE,EAAKjxE,MACZm7E,YAAY,IAGwC,IAAlD/vF,KAAK89Q,cAAc,oBAAqBt+O,KAIxC2uP,GACFtiC,GAAS77P,EAAK,CACZ5C,MAAoB,IAAd46P,EAAK56P,KAAiB,EAAIi4F,EAAKj4F,KAAO46P,EAAK56P,KACjDC,OAAsB,IAAf26P,EAAK36P,MAAkB2S,KAAK8zF,MAAQzO,EAAKh4F,MAAQ26P,EAAK36P,MAC7DysG,KAAkB,IAAbkuJ,EAAKluJ,IAAgB,EAAIzU,EAAKyU,IAAMkuJ,EAAKluJ,IAC9C+jC,QAAwB,IAAhBmqH,EAAKnqH,OAAmB79H,KAAK+zF,OAAS1O,EAAKw4C,OAASmqH,EAAKnqH,SAIrEh4C,EAAKyrI,WAAWgpC,OAEZ6zB,GACFriC,GAAW97P,GAGbwvC,EAAKuwD,YAAa,EAClB/vF,KAAK89Q,cAAc,mBAAoBt+O,GACzC,CAOAuxO,aAAAA,CAAcnlB,GACZ,OAAOD,GAAeC,EAAO5rP,KAAK2jQ,UAAW3jQ,KAAKitR,YACpD,CAEAoB,yBAAAA,CAA0B93R,EAAGuoB,EAAM7wB,EAAS6iR,GAC1C,MAAMxmP,EAASwnP,GAAYC,MAAMjzP,GACjC,MAAsB,oBAAXwL,EACFA,EAAOtqB,KAAMzJ,EAAGtI,EAAS6iR,GAG3B,EACT,CAEAhQ,cAAAA,CAAerlB,GACb,MAAMtrI,EAAUnwG,KAAKT,KAAKomP,SAASlK,GAC7BmhB,EAAW58P,KAAK2qR,UACtB,IAAI9kM,EAAO+2K,EAAS73Q,QAAOiE,GAAKA,GAAKA,EAAEmlR,WAAah+J,IAAS94E,MAoB7D,OAlBKwuD,IACHA,EAAO,CACLlyF,KAAM,KACN4L,KAAM,GACN4wG,QAAS,KACTmhH,WAAY,KACZ/C,OAAQ,KACR4xC,QAAS,KACTE,QAAS,KACTp8K,MAAOksB,GAAWA,EAAQlsB,OAAS,EACnCrvE,MAAO6mO,EACP0yB,SAAUh+J,EACVwwI,QAAS,GACTF,SAAS,GAEXmc,EAASz3Q,KAAK0gG,IAGTA,CACT,CAEA61H,UAAAA,GACE,OAAO17M,KAAKu/P,WAAav/P,KAAKu/P,SAAW1vQ,GAAc,KAAM,CAAC60P,MAAO1kP,KAAMrM,KAAM,UACnF,CAEAs7Q,sBAAAA,GACE,OAAOjvQ,KAAK4wQ,+BAA+BnrR,MAC7C,CAEA2lR,gBAAAA,CAAiB3vB,GACf,MAAMtrI,EAAUnwG,KAAKT,KAAKomP,SAASlK,GACnC,IAAKtrI,EACH,OAAO,EAGT,MAAMtqB,EAAO7lF,KAAK8gQ,eAAerlB,GAIjC,MAA8B,mBAAhB51J,EAAK0oI,QAAwB1oI,EAAK0oI,QAAUp+G,EAAQo+G,MACpE,CAEA+/D,oBAAAA,CAAqB7yC,EAAc/sB,GACpB1uN,KAAK8gQ,eAAerlB,GAC5BltB,QAAUG,CACjB,CAEAu/C,oBAAAA,CAAqBr5P,GACnB5U,KAAKgrR,eAAep2Q,IAAU5U,KAAKgrR,eAAep2Q,EACpD,CAEA+0P,iBAAAA,CAAkB/0P,GAChB,OAAQ5U,KAAKgrR,eAAep2Q,EAC9B,CAKA25Q,iBAAAA,CAAkB9yC,EAAcqoB,EAAWp1C,GACzC,MAAM5vM,EAAO4vM,EAAU,OAAS,OAC1B7oI,EAAO7lF,KAAK8gQ,eAAerlB,GAC3Bue,EAAQn0K,EAAKyrI,WAAW8yC,wBAAmBr1Q,EAAW+vB,GAExDquK,GAAQ22E,IACVj+K,EAAKtmF,KAAKukQ,GAAWv1C,QAAUG,EAC/B1uN,KAAKjP,WAELiP,KAAKsuR,qBAAqB7yC,EAAc/sB,GAExCsrC,EAAMjpQ,OAAO80F,EAAM,CAAC6oI,YACpB1uN,KAAKjP,QAAQf,GAAQA,EAAIyrP,eAAiBA,EAAe38N,OAAO/vB,IAEpE,CAEAmpJ,IAAAA,CAAKujG,EAAcqoB,GACjB9jQ,KAAKuuR,kBAAkB9yC,EAAcqoB,GAAW,EAClD,CAEAp8G,IAAAA,CAAK+zF,EAAcqoB,GACjB9jQ,KAAKuuR,kBAAkB9yC,EAAcqoB,GAAW,EAClD,CAKAyoB,mBAAAA,CAAoB9wC,GAClB,MAAM51J,EAAO7lF,KAAK2qR,UAAUlvC,GACxB51J,GAAQA,EAAKyrI,YACfzrI,EAAKyrI,WAAWsS,kBAEX5jO,KAAK2qR,UAAUlvC,EACxB,CAEA+yC,KAAAA,GACE,IAAIjpS,EAAGg2P,EAIP,IAHAv7O,KAAKotE,OACLytL,GAASxiP,OAAOrY,MAEXza,EAAI,EAAGg2P,EAAOv7O,KAAKT,KAAKomP,SAASlgQ,OAAQF,EAAIg2P,IAAQh2P,EACxDya,KAAKusR,oBAAoBhnS,EAE7B,CAEA+P,OAAAA,GACE0K,KAAK89Q,cAAc,iBACnB,MAAM,OAAC7hE,EAAM,IAAEjsN,GAAOgQ,KAEtBA,KAAKwuR,QACLxuR,KAAKuN,OAAOo7Q,aAER1sE,IACFj8M,KAAKwtR,eACLljC,GAAYruC,EAAQjsN,GACpBgQ,KAAKo9C,SAASs4N,eAAe1lR,GAC7BgQ,KAAKi8M,OAAS,KACdj8M,KAAKhQ,IAAM,aAGN85R,GAAU9pR,KAAKlM,IAEtBkM,KAAK89Q,cAAc,eACrB,CAEA2Q,aAAAA,GACE,OAAOzuR,KAAKi8M,OAAOyyE,aAAalpS,UAClC,CAKA8lS,UAAAA,GACEtrR,KAAK2uR,iBACD3uR,KAAK/R,QAAQy4P,WACf1mP,KAAK4uR,uBAEL5uR,KAAKirR,UAAW,CAEpB,CAKA0D,cAAAA,GACE,MAAMrtP,EAAYthC,KAAK6qR,WACjBztO,EAAWp9C,KAAKo9C,SAEhByxO,EAAOA,CAACl7R,EAAM8yC,KAClB2W,EAASvxB,iBAAiB7rB,KAAMrM,EAAM8yC,GACtCnF,EAAU3tC,GAAQ8yC,CAAA,EAGdA,EAAWA,CAAClwC,EAAGvN,EAAGghE,KACtBzzD,EAAE0+P,QAAUjsQ,EACZuN,EAAE2+P,QAAUlrM,EACZhqD,KAAKotR,cAAc72R,EAAA,EAGrBsS,GAAK7I,KAAK/R,QAAQohB,QAAS1b,GAASk7R,EAAKl7R,EAAM8yC,IACjD,CAKAmoP,oBAAAA,GACO5uR,KAAK8qR,uBACR9qR,KAAK8qR,qBAAuB,CAAC,GAE/B,MAAMxpP,EAAYthC,KAAK8qR,qBACjB1tO,EAAWp9C,KAAKo9C,SAEhByxO,EAAOA,CAACl7R,EAAM8yC,KAClB2W,EAASvxB,iBAAiB7rB,KAAMrM,EAAM8yC,GACtCnF,EAAU3tC,GAAQ8yC,CAAA,EAEdqoP,EAAUA,CAACn7R,EAAM8yC,KACjBnF,EAAU3tC,KACZypD,EAASmqC,oBAAoBvnF,KAAMrM,EAAM8yC,UAClCnF,EAAU3tC,KAIf8yC,EAAWA,CAACqtD,EAAOC,KACnB/zF,KAAKi8M,QACPj8M,KAAK4nP,OAAO9zJ,EAAOC,IAIvB,IAAIg7L,EACJ,MAAM9D,EAAWA,KACf6D,EAAQ,SAAU7D,GAElBjrR,KAAKirR,UAAW,EAChBjrR,KAAK4nP,SAELinC,EAAK,SAAUpoP,GACfooP,EAAK,SAAUE,EAAA,EAGjBA,EAAWA,KACT/uR,KAAKirR,UAAW,EAEhB6D,EAAQ,SAAUroP,GAGlBzmC,KAAKwuR,QACLxuR,KAAKwrR,QAAQ,EAAG,GAEhBqD,EAAK,SAAU5D,EAAA,EAGb7tO,EAASu4N,WAAW31Q,KAAKi8M,QAC3BgvE,IAEA8D,GAEJ,CAKAvB,YAAAA,GACE3kR,GAAK7I,KAAK6qR,YAAY,CAACpkP,EAAU9yC,KAC/BqM,KAAKo9C,SAASmqC,oBAAoBvnF,KAAMrM,EAAM8yC,EAAA,IAEhDzmC,KAAK6qR,WAAa,CAAC,EAEnBhiR,GAAK7I,KAAK8qR,sBAAsB,CAACrkP,EAAU9yC,KACzCqM,KAAKo9C,SAASmqC,oBAAoBvnF,KAAMrM,EAAM8yC,EAAA,IAEhDzmC,KAAK8qR,0BAAuB/7R,CAC9B,CAEAigS,gBAAAA,CAAiB/wP,EAAOnf,EAAMytB,GAC5B,MAAMxa,EAASwa,EAAU,MAAQ,SACjC,IAAIs5C,EAAMtqD,EAAMh2C,EAAGg2P,EAOnB,IALa,YAATz8N,IACF+mE,EAAO7lF,KAAK8gQ,eAAe7iO,EAAM,GAAGw9M,cACpC51J,EAAKyrI,WAAW,IAAMv/L,EAAS,wBAG5BxsC,EAAI,EAAGg2P,EAAOt9M,EAAMx4C,OAAQF,EAAIg2P,IAAQh2P,EAAG,CAC9Cg2C,EAAO0C,EAAM14C,GACb,MAAM+rO,EAAa/1L,GAAQv7B,KAAK8gQ,eAAevlO,EAAKkgN,cAAcnqB,WAC9DA,GACFA,EAAWv/L,EAAS,cAAcwJ,EAAKtwC,QAASswC,EAAKkgN,aAAclgN,EAAK3mB,MAE5E,CACF,CAMAq6Q,iBAAAA,GACE,OAAOjvR,KAAKu6P,SAAW,EACzB,CAMA20B,iBAAAA,CAAkBC,GAChB,MAAMC,EAAapvR,KAAKu6P,SAAW,GAC7Bl9N,EAAS8xP,EAAex0Q,KAAIuvJ,IAA2B,IAA1B,aAACuxE,EAAY,MAAE7mO,GAAMs1J,EACtD,MAAMrkF,EAAO7lF,KAAK8gQ,eAAerlB,GACjC,IAAK51J,EACH,MAAM,IAAIx7F,MAAM,6BAA+BoxP,GAGjD,MAAO,CACLA,eACAxwP,QAAS46F,EAAKtmF,KAAKqV,GACnBA,QACD,KAEcymO,GAAeh+M,EAAQ+xP,KAGtCpvR,KAAKu6P,QAAUl9N,EAEfr9B,KAAK4qR,WAAa,KAClB5qR,KAAKqtR,mBAAmBhwP,EAAQ+xP,GAEpC,CAWAtR,aAAAA,CAAcvvF,EAAM/uJ,EAAMz6C,GACxB,OAAOib,KAAKmuL,SAAS83F,OAAOjmR,KAAMuuL,EAAM/uJ,EAAMz6C,EAChD,CAOA+6Q,eAAAA,CAAgBuvB,GACd,OAA6E,IAAtErvR,KAAKmuL,SAASg4E,OAAOphR,QAAOs0E,GAAKA,EAAEyiI,OAAOhoM,KAAOu7R,IAAU5pS,MACpE,CAKA4nS,kBAAAA,CAAmBhwP,EAAQ+xP,EAAYE,GACrC,MAAMC,EAAevvR,KAAK/R,QAAQ63P,MAC5BpwH,EAAOA,CAACv0H,EAAGC,IAAMD,EAAEpc,QAAOiE,IAAMoY,EAAEotH,MAAKxkE,GAAKhhE,EAAEyyP,eAAiBzxL,EAAEyxL,cAAgBzyP,EAAE4rB,QAAUo1C,EAAEp1C,UAC/F46Q,EAAc95J,EAAK05J,EAAY/xP,GAC/BoyP,EAAYH,EAASjyP,EAASq4F,EAAKr4F,EAAQ+xP,GAE7CI,EAAY/pS,QACdua,KAAKgvR,iBAAiBQ,EAAaD,EAAazwQ,MAAM,GAGpD2wQ,EAAUhqS,QAAU8pS,EAAazwQ,MACnC9e,KAAKgvR,iBAAiBS,EAAWF,EAAazwQ,MAAM,EAExD,CAKAsuQ,aAAAA,CAAc72R,EAAG+4R,GACf,MAAM9vP,EAAO,CACX3zC,MAAO0K,EACP+4R,SACAv/L,YAAY,EACZ2/L,YAAa1vR,KAAK+wQ,cAAcx6Q,IAE5Bo5R,EAAe7zF,IAAYA,EAAO7tM,QAAQohB,QAAUrP,KAAK/R,QAAQohB,QAAQ9gB,SAASgI,EAAEswI,OAAOlzI,MAEjG,IAA6D,IAAzDqM,KAAK89Q,cAAc,cAAet+O,EAAMmwP,GAC1C,OAGF,MAAMjuC,EAAU1hP,KAAK4vR,aAAar5R,EAAG+4R,EAAQ9vP,EAAKkwP,aASlD,OAPAlwP,EAAKuwD,YAAa,EAClB/vF,KAAK89Q,cAAc,aAAct+O,EAAMmwP,IAEnCjuC,GAAWliN,EAAKkiN,UAClB1hP,KAAK84D,SAGA94D,IACT,CAUA4vR,YAAAA,CAAar5R,EAAG+4R,EAAQI,GACtB,MAAOn1B,QAAS60B,EAAa,GAAE,QAAEnhS,GAAW+R,KAetC8wQ,EAAmBwe,EACnBjyP,EAASr9B,KAAK6vR,mBAAmBt5R,EAAG64R,EAAYM,EAAa5e,GAC7Dgf,E7CvzBH,SAAuBv5R,GAC5B,MAAkB,YAAXA,EAAE5C,MAAiC,UAAX4C,EAAE5C,MAA+B,gBAAX4C,EAAE5C,IACzD,C6CqzBoBo8R,CAAcx5R,GACxBy5R,EAxnCV,SAA4Bz5R,EAAGy5R,EAAWN,EAAaI,GACrD,OAAKJ,GAA0B,aAAXn5R,EAAE5C,KAGlBm8R,EACKE,EAEFz5R,EALE,IAMX,CAgnCsB05R,CAAmB15R,EAAGyJ,KAAK4qR,WAAY8E,EAAaI,GAElEJ,IAGF1vR,KAAK4qR,WAAa,KAGlBhjR,GAAa3Z,EAAQs4P,QAAS,CAAChwP,EAAG8mC,EAAQr9B,MAAOA,MAE7C8vR,GACFloR,GAAa3Z,EAAQsG,QAAS,CAACgC,EAAG8mC,EAAQr9B,MAAOA,OAIrD,MAAM0hP,GAAWrG,GAAeh+M,EAAQ+xP,GAQxC,OAPI1tC,GAAW4tC,KACbtvR,KAAKu6P,QAAUl9N,EACfr9B,KAAKqtR,mBAAmBhwP,EAAQ+xP,EAAYE,IAG9CtvR,KAAK4qR,WAAaoF,EAEXtuC,CACT,CAUAmuC,kBAAAA,CAAmBt5R,EAAG64R,EAAYM,EAAa5e,GAC7C,GAAe,aAAXv6Q,EAAE5C,KACJ,MAAO,GAGT,IAAK+7R,EAEH,OAAON,EAGT,MAAMG,EAAevvR,KAAK/R,QAAQ63P,MAClC,OAAO9lP,KAAKquR,0BAA0B93R,EAAGg5R,EAAazwQ,KAAMywQ,EAAcze,EAC5E,EAIF,SAASsZ,KACP,OAAOvhR,GAAKshR,GAAML,WAAYplC,GAAUA,EAAMv2D,SAASg4F,cACzD,CEzuCA,SAAS+J,GAAkB7kC,EAAiByf,EAAqBC,EAAqBolB,GACpF,MAAMhoS,EARR,SAAyB5B,GACvB,OAAO8nQ,GAAkB9nQ,EAAO,CAAC,aAAc,WAAY,aAAc,YAC3E,CAMY6pS,CAAgB/kC,EAAIp9P,QAAQkuL,cAChCk0G,GAAiBtlB,EAAcD,GAAe,EAC9CwlB,EAAajuR,KAAK8tB,IAAIkgQ,EAAeF,EAAarlB,EAAc,GAShEylB,EAAqBh8Q,IACzB,MAAMi8Q,GAAiBzlB,EAAc1oQ,KAAK8tB,IAAIkgQ,EAAe97Q,IAAQ47Q,EAAa,EAClF,OAAOjxC,GAAY3qO,EAAK,EAAGlS,KAAK8tB,IAAIkgQ,EAAeG,GAAA,EAGrD,MAAO,CACLC,WAAYF,EAAkBpoS,EAAEsoS,YAChCC,SAAUH,EAAkBpoS,EAAEuoS,UAC9BC,WAAYzxC,GAAY/2P,EAAEwoS,WAAY,EAAGL,GACzCM,SAAU1xC,GAAY/2P,EAAEyoS,SAAU,EAAGN,GAEzC,CAKA,SAASO,GAAWhjS,EAAWijS,EAAe9nS,EAAWghE,GACvD,MAAO,CACLhhE,EAAGA,EAAI6E,EAAIwU,KAAKwgP,IAAIiuC,GACpB9mO,EAAGA,EAAIn8D,EAAIwU,KAAKw/O,IAAIivC,GAExB,CAiBA,SAASC,GACP/gS,EACA/E,EACAiY,EACAooQ,EACArsO,EACA0sG,GAEA,MAAM,EAAC3iJ,EAAA,EAAGghE,EAAG+hN,WAAY1rN,EAAK,YAAE2wO,EAAalmB,YAAammB,GAAUhmS,EAE9D8/Q,EAAc1oQ,KAAK+tB,IAAInlC,EAAQ8/Q,YAAcO,EAAUpoQ,EAAS8tR,EAAa,GAC7ElmB,EAAcmmB,EAAS,EAAIA,EAAS3lB,EAAUpoQ,EAAS8tR,EAAc,EAE3E,IAAIE,EAAgB,EACpB,MAAMjiD,EAAQhwM,EAAMohB,EAEpB,GAAIirN,EAAS,CAIX,MAEM6lB,IAFuBF,EAAS,EAAIA,EAAS3lB,EAAU,IAChCP,EAAc,EAAIA,EAAcO,EAAU,IACI,EAE3E4lB,GAAiBjiD,GAD4B,IAAvBkiD,EAA2BliD,EAASkiD,GAAuBA,EAAqB7lB,GAAWr8B,IACvE,EAG5C,MACMmiD,GAAeniD,EADR5sO,KAAK+tB,IAAI,KAAO6+M,EAAQ87B,EAAc7nQ,EAAS87K,IAAM+rF,GAC7B,EAC/BgB,EAAa1rN,EAAQ+wO,EAAcF,EACnCllB,EAAW/sO,EAAMmyP,EAAcF,GAC/B,WAACT,EAAA,SAAYC,EAAA,WAAUC,EAAU,SAAEC,GAAYV,GAAkBjlS,EAAS6/Q,EAAaC,EAAaiB,EAAWD,GAE/GslB,EAA2BtmB,EAAc0lB,EACzCa,EAAyBvmB,EAAc2lB,EACvCa,EAA0BxlB,EAAa0kB,EAAaY,EACpDG,EAAwBxlB,EAAW0kB,EAAWY,EAE9CG,EAA2B3mB,EAAc6lB,EACzCe,EAAyB5mB,EAAc8lB,EACvCe,EAA0B5lB,EAAa4kB,EAAac,EACpDG,EAAwB5lB,EAAW4kB,EAAWc,EAIpD,GAFA1hS,EAAIm7P,YAEAx/G,EAAU,CAEZ,MAAMkmJ,GAAyBN,EAA0BC,GAAyB,EAKlF,GAJAxhS,EAAIq7P,IAAIriQ,EAAGghE,EAAG+gN,EAAawmB,EAAyBM,GACpD7hS,EAAIq7P,IAAIriQ,EAAGghE,EAAG+gN,EAAa8mB,EAAuBL,GAG9Cd,EAAW,EAAG,CAChB,MAAMoB,EAAUjB,GAAWS,EAAwBE,EAAuBxoS,EAAGghE,GAC7Eh6D,EAAIq7P,IAAIymC,EAAQ9oS,EAAG8oS,EAAQ9nO,EAAG0mO,EAAUc,EAAuBxlB,EAAWlvB,IAI5E,MAAMi1C,EAAKlB,GAAWa,EAAwB1lB,EAAUhjR,EAAGghE,GAI3D,GAHAh6D,EAAIw7P,OAAOumC,EAAG/oS,EAAG+oS,EAAG/nO,GAGhB4mO,EAAW,EAAG,CAChB,MAAMkB,EAAUjB,GAAWa,EAAwBE,EAAuB5oS,EAAGghE,GAC7Eh6D,EAAIq7P,IAAIymC,EAAQ9oS,EAAG8oS,EAAQ9nO,EAAG4mO,EAAU5kB,EAAWlvB,GAAS80C,EAAwBvvR,KAAK28K,IAI3F,MAAMgzG,GAA0BhmB,EAAY4kB,EAAW9lB,GAAiBiB,EAAc4kB,EAAa7lB,IAAiB,EAKpH,GAJA96Q,EAAIq7P,IAAIriQ,EAAGghE,EAAG8gN,EAAakB,EAAY4kB,EAAW9lB,EAAcknB,GAAuB,GACvFhiS,EAAIq7P,IAAIriQ,EAAGghE,EAAG8gN,EAAaknB,EAAuBjmB,EAAc4kB,EAAa7lB,GAAc,GAGvF6lB,EAAa,EAAG,CAClB,MAAMmB,EAAUjB,GAAWY,EAA0BE,EAAyB3oS,EAAGghE,GACjFh6D,EAAIq7P,IAAIymC,EAAQ9oS,EAAG8oS,EAAQ9nO,EAAG2mO,EAAYgB,EAA0BtvR,KAAK28K,GAAI+sF,EAAajvB,IAI5F,MAAMm1C,EAAKpB,GAAWQ,EAA0BtlB,EAAY/iR,EAAGghE,GAI/D,GAHAh6D,EAAIw7P,OAAOymC,EAAGjpS,EAAGipS,EAAGjoO,GAGhBymO,EAAa,EAAG,CAClB,MAAMqB,EAAUjB,GAAWQ,EAA0BE,EAAyBvoS,EAAGghE,GACjFh6D,EAAIq7P,IAAIymC,EAAQ9oS,EAAG8oS,EAAQ9nO,EAAGymO,EAAY1kB,EAAajvB,GAASy0C,QAE7D,CACLvhS,EAAIu7P,OAAOviQ,EAAGghE,GAEd,MAAMkoO,EAAc7vR,KAAKwgP,IAAI0uC,GAA2BxmB,EAAc/hR,EAChEmpS,EAAc9vR,KAAKw/O,IAAI0vC,GAA2BxmB,EAAc/gN,EACtEh6D,EAAIw7P,OAAO0mC,EAAaC,GAExB,MAAMC,EAAY/vR,KAAKwgP,IAAI2uC,GAAyBzmB,EAAc/hR,EAC5DqpS,EAAYhwR,KAAKw/O,IAAI2vC,GAAyBzmB,EAAc/gN,EAClEh6D,EAAIw7P,OAAO4mC,EAAWC,GAGxBriS,EAAIs7P,WACN,CAyBA,SAASs3B,GACP5yR,EACA/E,EACAiY,EACAooQ,EACA3/H,GAEA,MAAM,YAAC2mJ,EAAA,WAAavmB,EAAA,cAAYb,EAAa,QAAEj9Q,GAAWhD,GACpD,YAACygQ,EAAA,gBAAa+N,EAAA,WAAiBF,EAAU,iBAAEC,GAAoBvrQ,EAC/DkS,EAAgC,UAAxBlS,EAAQw/Q,YAEtB,IAAK/hB,EACH,OAGF17P,EAAI0yR,YAAYnpB,GAAc,IAC9BvpQ,EAAI2yR,eAAiBnpB,EAEjBr5P,GACFnQ,EAAIi/N,UAA0B,EAAdy8B,EAChB17P,EAAIuiS,SAAW94B,GAAmB,UAElCzpQ,EAAIi/N,UAAYy8B,EAChB17P,EAAIuiS,SAAW94B,GAAmB,SAGpC,IAAIuS,EAAW/gR,EAAQ+gR,SACvB,GAAIsmB,EAAa,CACfvB,GAAQ/gS,EAAK/E,EAASiY,EAAQooQ,EAASU,EAAUrgI,GACjD,IAAK,IAAIpmJ,EAAI,EAAGA,EAAI+sS,IAAe/sS,EACjCyK,EAAIs2J,SAEDxnH,MAAMosO,KACTc,EAAWD,GAAcb,EAAgBzuB,IAAOA,KAIhDt8O,GA7ON,SAAiBnQ,EAA+B/E,EAAqB+gR,GACnE,MAAM,WAACD,EAAA,YAAYilB,EAAA,EAAahoS,EAAA,EAAGghE,EAAA,YAAG+gN,EAAA,YAAaD,GAAe7/Q,EAClE,IAAIunS,EAAcxB,EAAcjmB,EAIhC/6Q,EAAIm7P,YACJn7P,EAAIq7P,IAAIriQ,EAAGghE,EAAG+gN,EAAagB,EAAaymB,EAAaxmB,EAAWwmB,GAC5D1nB,EAAckmB,GAChBwB,EAAcxB,EAAclmB,EAC5B96Q,EAAIq7P,IAAIriQ,EAAGghE,EAAG8gN,EAAakB,EAAWwmB,EAAazmB,EAAaymB,GAAa,IAE7ExiS,EAAIq7P,IAAIriQ,EAAGghE,EAAGgnO,EAAahlB,EAAWlvB,GAASivB,EAAajvB,IAE9D9sP,EAAIs7P,YACJt7P,EAAIg4P,MACN,CA8NIyqC,CAAQziS,EAAK/E,EAAS+gR,GAGnBsmB,IACHvB,GAAQ/gS,EAAK/E,EAASiY,EAAQooQ,EAASU,EAAUrgI,GACjD37I,EAAIs2J,SAER,CFwgCAzgK,GA5oCMskS,GAAA,WAEclpE,IAASp7N,GAFvBskS,GAAA,YAGeL,IAAUjkS,GAHzBskS,GAAA,YAIe7kC,IAAUz/P,GAJzBskS,GAAA,WAKcja,IAASrqR,GALvBskS,GAAA,mBAMqBtkS,GANrBskS,GAAA,WAOcJ,IEuIL,MAAM2I,WAAmB7+R,GAmCtCxN,WAAAA,CAAY60Q,GACVl9I,QAAKn4H,GAAC,KAAD,wBAAAA,GAAC,KAAD,mBAAAA,GAAC,KAAD,sBAAAA,GAAC,KAAD,sBAAAA,GAAC,KAAD,sBAAAA,GAAC,KAAD,sBAAAA,GAAC,KAAD,qBAELma,KAAK/R,aAAUc,EACfiR,KAAKkrQ,mBAAgBn8Q,EACrBiR,KAAK+rQ,gBAAah9Q,EAClBiR,KAAKgsQ,cAAWj9Q,EAChBiR,KAAK8qQ,iBAAc/7Q,EACnBiR,KAAK+qQ,iBAAch8Q,EACnBiR,KAAKgxR,YAAc,EACnBhxR,KAAKsyR,YAAc,EAEfp3B,GACFt2Q,OAAOsyC,OAAOl3B,KAAMk7P,EAExB,CAEA8V,OAAAA,CAAQ2hB,EAAgBC,EAAgB9hB,GACtC,MAAMllB,EAAQ5rP,KAAKyxQ,SAAS,CAAC,IAAK,KAAMX,IAClC,MAAC1yB,EAAK,SAAEE,GAAYT,GAAkB+N,EAAO,CAAC5iQ,EAAG2pS,EAAQ3oO,EAAG4oO,KAC5D,WAAC7mB,EAAA,SAAYC,EAAA,YAAUlB,EAAW,YAAEC,EAAW,cAAEG,GAAiBlrQ,KAAKyxQ,SAAS,CACpF,aACA,WACA,cACA,cACA,iBACCX,GACG+hB,GAAW7yR,KAAK/R,QAAQq9Q,QAAUtrQ,KAAK/R,QAAQy9P,aAAe,EAE9DonC,EADiB73C,GAAeiwB,EAAec,EAAWD,IACxBtvB,IAAOmC,GAAcR,EAAO2tB,EAAYC,GAC1E+mB,EAAe5zC,GAAWb,EAAUwsB,EAAc+nB,EAAS9nB,EAAc8nB,GAE/E,OAAQC,GAAiBC,CAC3B,CAEAxhB,cAAAA,CAAeT,GACb,MAAM,EAAC9nR,EAAC,EAAEghE,EAAC,WAAE+hN,EAAA,SAAYC,EAAA,YAAUlB,EAAA,YAAaC,GAAe/qQ,KAAKyxQ,SAAS,CAC3E,IACA,IACA,aACA,WACA,cACA,eACCX,IACG,OAAC5tQ,EAAA,QAAQooQ,GAAWtrQ,KAAK/R,QACzB+kS,GAAajnB,EAAaC,GAAY,EACtCinB,GAAcnoB,EAAcC,EAAcO,EAAUpoQ,GAAU,EACpE,MAAO,CACLla,EAAGA,EAAIqZ,KAAKwgP,IAAImwC,GAAaC,EAC7BjpO,EAAGA,EAAI3nD,KAAKw/O,IAAImxC,GAAaC,EAEjC,CAEA9a,eAAAA,CAAgBrH,GACd,OAAO9wQ,KAAKuxQ,eAAeT,EAC7B,CAEAxW,IAAAA,CAAKtqQ,GACH,MAAM,QAAC/B,EAAO,cAAEi9Q,GAAiBlrQ,KAC3BkD,GAAUjV,EAAQiV,QAAU,GAAK,EACjCooQ,GAAWr9Q,EAAQq9Q,SAAW,GAAK,EACnC3/H,EAAW19I,EAAQ09I,SAIzB,GAHA3rI,KAAKgxR,YAAuC,UAAxB/iS,EAAQw/Q,YAA2B,IAAO,EAC9DztQ,KAAKsyR,YAAcpnB,EAAgBzuB,GAAMp6O,KAAKC,MAAM4oQ,EAAgBzuB,IAAO,EAErD,IAAlByuB,GAAuBlrQ,KAAK8qQ,YAAc,GAAK9qQ,KAAK+qQ,YAAc,EACpE,OAGF/6Q,EAAImpJ,OAEJ,MAAM65I,GAAahzR,KAAK+rQ,WAAa/rQ,KAAKgsQ,UAAY,EACtDh8Q,EAAI+uB,UAAU1c,KAAKwgP,IAAImwC,GAAa9vR,EAAQb,KAAKw/O,IAAImxC,GAAa9vR,GAClE,MACMgwR,EAAehwR,GADT,EAAIb,KAAKw/O,IAAIx/O,KAAK8tB,IAAI6uJ,GAAIksF,GAAiB,KAGvDl7Q,EAAImsN,UAAYluN,EAAQm4J,gBACxBp2J,EAAIi9P,YAAch/P,EAAQmjL,YA9L9B,SACEphL,EACA/E,EACAiY,EACAooQ,EACA3/H,GAEA,MAAM,YAAC2mJ,EAAW,WAAEvmB,EAAA,cAAYb,GAAiBjgR,EACjD,IAAI+gR,EAAW/gR,EAAQ+gR,SACvB,GAAIsmB,EAAa,CACfvB,GAAQ/gS,EAAK/E,EAASiY,EAAQooQ,EAASU,EAAUrgI,GACjD,IAAK,IAAIpmJ,EAAI,EAAGA,EAAI+sS,IAAe/sS,EACjCyK,EAAI4iC,OAEDkM,MAAMosO,KACTc,EAAWD,GAAcb,EAAgBzuB,IAAOA,KAGpDs0C,GAAQ/gS,EAAK/E,EAASiY,EAAQooQ,EAASU,EAAUrgI,GACjD37I,EAAI4iC,MAEN,CA2KIugQ,CAAQnjS,EAAKgQ,KAAMkzR,EAAc5nB,EAAS3/H,GAC1Ci3I,GAAW5yR,EAAKgQ,KAAMkzR,EAAc5nB,EAAS3/H,GAE7C37I,EAAIu3I,SACN,ECjXF,SAAS6rJ,GAASpjS,EAAK/B,GAA0B,IAAjB0tE,EAAAn2E,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAQyI,EACtC+B,EAAIqjS,QAAUp4C,GAAet/K,EAAM29L,eAAgBrrQ,EAAQqrQ,gBAC3DtpQ,EAAI0yR,YAAYznC,GAAet/K,EAAM49L,WAAYtrQ,EAAQsrQ,aACzDvpQ,EAAI2yR,eAAiB1nC,GAAet/K,EAAM69L,iBAAkBvrQ,EAAQurQ,kBACpExpQ,EAAIuiS,SAAWt3C,GAAet/K,EAAM89L,gBAAiBxrQ,EAAQwrQ,iBAC7DzpQ,EAAIi/N,UAAYgsB,GAAet/K,EAAM+vL,YAAaz9P,EAAQy9P,aAC1D17P,EAAIi9P,YAAchS,GAAet/K,EAAMy1G,YAAanjL,EAAQmjL,YAC9D,CAEA,SAASo6E,GAAOx7P,EAAKg8P,EAAU1mQ,GAC7B0K,EAAIw7P,OAAOlmQ,EAAO0D,EAAG1D,EAAO0kE,EAC9B,CAiBA,SAASspO,GAAShzC,EAAQt/E,GAAsB,IAAb5vJ,EAAS5rB,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,MAC1C,MAAMwhD,EAAQs5M,EAAO76P,QACd46D,MAAOkzO,EAAc,EAAGt0P,IAAKu0P,EAAYxsP,EAAQ,GAAK51B,GACtDivC,MAAOozO,EAAcx0P,IAAKy0P,GAAc1yH,EACzC3gH,EAAQh+C,KAAK+tB,IAAImjQ,EAAaE,GAC9Bx0P,EAAM58B,KAAK8tB,IAAIqjQ,EAAWE,GAC1BC,EAAUJ,EAAcE,GAAgBD,EAAYC,GAAgBF,EAAcG,GAAcF,EAAYE,EAElH,MAAO,CACL1sP,QACAqZ,QACA8/D,KAAM6gD,EAAQ7gD,KACdo7H,KAAMt8M,EAAMohB,IAAUszO,EAAU3sP,EAAQ/H,EAAMohB,EAAQphB,EAAMohB,EAEhE,CAiBA,SAASuzO,GAAY5jS,EAAKk5B,EAAM83I,EAAS5vJ,GACvC,MAAM,OAACkvO,EAAA,QAAQryP,GAAWi7B,GACpB,MAAC8d,EAAA,MAAOqZ,EAAA,KAAO8/D,EAAA,KAAMo7H,GAAQ+3C,GAAShzC,EAAQt/E,EAAS5vJ,GACvDyiR,EA9CR,SAAuB5lS,GACrB,OAAIA,EAAQ6lS,QACH/nC,GAGL99P,EAAQ6lQ,SAA8C,aAAnC7lQ,EAAQ4lQ,uBACtB3H,GAGFV,EACT,CAoCqBuoC,CAAc9lS,GAEjC,IACI1I,EAAGqmQ,EAAOz3L,GADV,KAAC82E,GAAO,EAAI,QAAE/gE,GAAW94D,GAAU,CAAC,EAGxC,IAAK7rB,EAAI,EAAGA,GAAKg2P,IAAQh2P,EACvBqmQ,EAAQtL,GAAQjgM,GAAS6pB,EAAUqxK,EAAOh2P,EAAIA,IAAMyhD,GAEhD4kN,EAAMiG,OAGC5mH,GACTj7I,EAAIu7P,OAAOK,EAAM5iQ,EAAG4iQ,EAAM5hM,GAC1BihF,GAAO,GAEP4oJ,EAAW7jS,EAAKmkE,EAAMy3L,EAAO1hL,EAASj8E,EAAQ6lS,SAGhD3/N,EAAOy3L,GAQT,OALIzrI,IACFyrI,EAAQtL,GAAQjgM,GAAS6pB,EAAUqxK,EAAO,IAAMv0M,GAChD6sP,EAAW7jS,EAAKmkE,EAAMy3L,EAAO1hL,EAASj8E,EAAQ6lS,YAGvC3zK,CACX,CAiBA,SAAS6zK,GAAgBhkS,EAAKk5B,EAAM83I,EAAS5vJ,GAC3C,MAAMkvO,EAASp3N,EAAKo3N,QACd,MAACt5M,EAAK,MAAEqZ,EAAK,KAAEk7L,GAAQ+3C,GAAShzC,EAAQt/E,EAAS5vJ,IACjD,KAAC65H,GAAO,EAAI,QAAE/gE,GAAW94D,GAAU,CAAC,EAC1C,IAEI7rB,EAAGqmQ,EAAOqoC,EAAOvnB,EAAMF,EAAM0nB,EAF7BC,EAAO,EACPC,EAAS,EAGb,MAAMC,EAAcz/Q,IAAWyrC,GAAS6pB,EAAUqxK,EAAO3mO,EAAQA,IAAUoyB,EACrEstP,EAAQA,KACR5nB,IAASF,IAEXx8Q,EAAIw7P,OAAO2oC,EAAM3nB,GACjBx8Q,EAAIw7P,OAAO2oC,EAAMznB,GAGjB18Q,EAAIw7P,OAAO2oC,EAAMD,KASrB,IALIjpJ,IACF2gH,EAAQtL,EAAO+zC,EAAW,IAC1BrkS,EAAIu7P,OAAOK,EAAM5iQ,EAAG4iQ,EAAM5hM,IAGvBzkE,EAAI,EAAGA,GAAKg2P,IAAQh2P,EAAG,CAG1B,GAFAqmQ,EAAQtL,EAAO+zC,EAAW9uS,IAEtBqmQ,EAAMiG,KAER,SAGF,MAAM7oQ,EAAI4iQ,EAAM5iQ,EACVghE,EAAI4hM,EAAM5hM,EACVuqO,EAAa,EAAJvrS,EAEXurS,IAAWN,GAETjqO,EAAI0iN,EACNA,EAAO1iN,EACEA,EAAIwiN,IACbA,EAAOxiN,GAGTmqO,GAAQC,EAASD,EAAOnrS,KAAOorS,IAE/BE,IAGAtkS,EAAIw7P,OAAOxiQ,EAAGghE,GAEdiqO,EAAQM,EACRH,EAAS,EACT1nB,EAAOF,EAAOxiN,GAGhBkqO,EAAQlqO,CACV,CACAsqO,GACF,CAOA,SAASE,GAAkBtrQ,GACzB,MAAM82B,EAAO92B,EAAKj7B,QACZsrQ,EAAav5M,EAAKu5M,YAAcv5M,EAAKu5M,WAAW9zQ,OAEtD,OADqByjC,EAAKklP,aAAellP,EAAKoyO,QAAUt7M,EAAK8zM,SAA2C,aAAhC9zM,EAAK6zM,yBAA0C7zM,EAAK8zO,UAAYv6B,EACnHy6B,GAAkBJ,EACzC,CDgMA/tS,GAvHqB6sS,GAAmB,KAE1B,OAAM7sS,GAFC6sS,GAAmB,WAIpB,CAChBjlB,YAAa,SACbr8F,YAAa,OACbmoF,WAAY,GACZC,iBAAkB,EAClBC,qBAAiB1qQ,EACjBotL,aAAc,EACduvE,YAAa,EACbxoP,OAAQ,EACRooQ,QAAS,EACTltB,WAAOrvP,EACP48I,UAAU,IACV9lJ,GAhBiB6sS,GAAmB,gBAkBf,CACrBtsI,gBAAiB,oBACjBvgK,GApBiB6sS,GAAmB,cAsBjB,CACnBlrC,aAAa,EACbC,WAAah/P,GAAkB,eAATA,ICtD1B,MAAMgsS,GAA8B,oBAAXC,OAEzB,SAASp6B,GAAKtqQ,EAAKk5B,EAAMm3B,EAAOrZ,GAC1BytP,KAAcvrQ,EAAKj7B,QAAQ+yK,QA7BjC,SAA6BhxK,EAAKk5B,EAAMm3B,EAAOrZ,GAC7C,IAAIt/B,EAAOwhB,EAAKyrQ,MACXjtR,IACHA,EAAOwhB,EAAKyrQ,MAAQ,IAAID,OACpBxrQ,EAAKxhB,KAAKA,EAAM24C,EAAOrZ,IACzBt/B,EAAK4jP,aAGT8nC,GAASpjS,EAAKk5B,EAAKj7B,SACnB+B,EAAIs2J,OAAO5+I,EACb,CAoBIktR,CAAoB5kS,EAAKk5B,EAAMm3B,EAAOrZ,GAlB1C,SAA0Bh3C,EAAKk5B,EAAMm3B,EAAOrZ,GAC1C,MAAM,SAACo5H,EAAA,QAAUnyK,GAAWi7B,EACtB2rQ,EAAgBL,GAAkBtrQ,GAExC,IAAK,MAAM83I,KAAWZ,EACpBgzH,GAASpjS,EAAK/B,EAAS+yK,EAAQrlG,OAC/B3rE,EAAIm7P,YACA0pC,EAAc7kS,EAAKk5B,EAAM83I,EAAS,CAAC3gH,QAAOphB,IAAKohB,EAAQrZ,EAAQ,KACjEh3C,EAAIs7P,YAENt7P,EAAIs2J,QAER,CAQIwuI,CAAiB9kS,EAAKk5B,EAAMm3B,EAAOrZ,EAEvC,CAEe,MAAM+tP,WAAoBlhS,GAoCvCxN,WAAAA,CAAY60Q,GACVl9I,QAEAh+G,KAAKquQ,UAAW,EAChBruQ,KAAK/R,aAAUc,EACfiR,KAAK04P,YAAS3pQ,EACdiR,KAAKs7P,WAAQvsQ,EACbiR,KAAK8vQ,eAAY/gR,EACjBiR,KAAK20R,WAAQ5lS,EACbiR,KAAKg1R,aAAUjmS,EACfiR,KAAKi1R,eAAYlmS,EACjBiR,KAAKouQ,YAAa,EAClBpuQ,KAAKk1R,gBAAiB,EACtBl1R,KAAK64P,mBAAgB9pQ,EAEjBmsQ,GACFt2Q,OAAOsyC,OAAOl3B,KAAMk7P,EAExB,CAEA0T,mBAAAA,CAAoBjL,EAAWzd,GAC7B,MAAMj4P,EAAU+R,KAAK/R,QACrB,IAAKA,EAAQ6lQ,SAA8C,aAAnC7lQ,EAAQ4lQ,0BAA2C5lQ,EAAQ6lS,UAAY9zR,KAAKk1R,eAAgB,CAClH,MAAM/0K,EAAOlyH,EAAQ2lQ,SAAW5zP,KAAKs7P,MAAQt7P,KAAK8vQ,UAClDpc,GAA2B1zP,KAAKg1R,QAAS/mS,EAAS01Q,EAAWxjJ,EAAM+lI,GACnElmP,KAAKk1R,gBAAiB,EAE1B,CAEA,UAAI50C,CAAOA,GACTtgP,KAAKg1R,QAAU10C,SACRtgP,KAAKi1R,iBACLj1R,KAAK20R,MACZ30R,KAAKk1R,gBAAiB,CACxB,CAEA,UAAI50C,GACF,OAAOtgP,KAAKg1R,OACd,CAEA,YAAI50H,GACF,OAAOpgK,KAAKi1R,YAAcj1R,KAAKi1R,U7BlF5B,SAA0B/rQ,EAAMsvO,GACrC,MAAMlY,EAASp3N,EAAKo3N,OACdsT,EAAW1qO,EAAKj7B,QAAQ2lQ,SACxB5sN,EAAQs5M,EAAO76P,OAErB,IAAKuhD,EACH,MAAO,GAGT,MAAMm5E,IAASj3F,EAAKoyO,OACd,MAACj7M,EAAA,IAAOphB,GA3FhB,SAAyBqhN,EAAQt5M,EAAOm5E,EAAMyzI,GAC5C,IAAIvzM,EAAQ,EACRphB,EAAM+H,EAAQ,EAElB,GAAIm5E,IAASyzI,EAEX,KAAOvzM,EAAQrZ,IAAUs5M,EAAOjgM,GAAOwxM,MACrCxxM,IAKJ,KAAOA,EAAQrZ,GAASs5M,EAAOjgM,GAAOwxM,MACpCxxM,IAWF,IAPAA,GAASrZ,EAELm5E,IAEFlhF,GAAOohB,GAGFphB,EAAMohB,GAASigM,EAAOrhN,EAAM+H,GAAO6qN,MACxC5yN,IAMF,OAFAA,GAAO+H,EAEA,CAACqZ,QAAOphB,MACjB,CA2DuBk2P,CAAgB70C,EAAQt5M,EAAOm5E,EAAMyzI,GAE1D,OACS2E,GAAcrvO,GADN,IAAb0qO,EACyB,CAAC,CAACvzM,QAAOphB,MAAKkhF,SArD7C,SAAuBmgI,EAAQjgM,EAAOjwB,EAAK+vF,GACzC,MAAMn5E,EAAQs5M,EAAO76P,OACf4J,EAAS,GACf,IAEI4vC,EAFA0hC,EAAOtgB,EACP8T,EAAOmsL,EAAOjgM,GAGlB,IAAKphB,EAAMohB,EAAQ,EAAGphB,GAAO7O,IAAO6O,EAAK,CACvC,MAAM26G,EAAM0mG,EAAOrhN,EAAM+H,GACrB4yG,EAAIi4G,MAAQj4G,EAAIxsE,KACbjZ,EAAK09L,OACR1xI,GAAO,EACP9wH,EAAOlK,KAAK,CAACk7D,MAAOA,EAAQrZ,EAAO/H,KAAMA,EAAM,GAAK+H,EAAOm5E,SAE3D9/D,EAAQsgB,EAAOi5E,EAAIxsE,KAAOnuC,EAAM,OAGlC0hC,EAAO1hC,EACHk1B,EAAK09L,OACPxxM,EAAQphB,IAGZk1B,EAAOylF,CACT,CAMA,OAJa,OAATj5E,GACFtxE,EAAOlK,KAAK,CAACk7D,MAAOA,EAAQrZ,EAAO/H,IAAK0hC,EAAO35B,EAAOm5E,SAGjD9wH,CACT,CA4B6B+lS,CAAc90C,EAAQjgM,EAFrCphB,EAAMohB,EAAQphB,EAAM+H,EAAQ/H,IACjB/V,EAAK4mP,WAAuB,IAAVzvN,GAAephB,IAAQ+H,EAAQ,GAJrBs5M,EAAQkY,EAM7D,C6B+D+C68B,CAAiBr1R,KAAMA,KAAK/R,QAAQ+yK,SACjF,CAMAtgG,KAAAA,GACE,MAAM0/F,EAAWpgK,KAAKogK,SAChBkgF,EAAStgP,KAAKsgP,OACpB,OAAOlgF,EAAS36K,QAAU66P,EAAOlgF,EAAS,GAAG//G,MAC/C,CAMAsgB,IAAAA,GACE,MAAMy/F,EAAWpgK,KAAKogK,SAChBkgF,EAAStgP,KAAKsgP,OACdt5M,EAAQo5H,EAAS36K,OACvB,OAAOuhD,GAASs5M,EAAOlgF,EAASp5H,EAAQ,GAAG/H,IAC7C,CASAk7M,WAAAA,CAAYyR,EAAOlhP,GACjB,MAAMzc,EAAU+R,KAAK/R,QACf1H,EAAQqlQ,EAAMlhP,GACd41O,EAAStgP,KAAKsgP,OACdlgF,EAAWk4F,GAAet4P,KAAM,CAAC0K,WAAU21C,MAAO95D,EAAO04C,IAAK14C,IAEpE,IAAK65K,EAAS36K,OACZ,OAGF,MAAM4J,EAAS,GACTimS,EAvKV,SAAiCrnS,GAC/B,OAAIA,EAAQ6lS,QACHp9B,GAGLzoQ,EAAQ6lQ,SAA8C,aAAnC7lQ,EAAQ4lQ,uBACtB8C,GAGFF,EACT,CA6JyB8+B,CAAwBtnS,GAC7C,IAAI1I,EAAGg2P,EACP,IAAKh2P,EAAI,EAAGg2P,EAAOn7E,EAAS36K,OAAQF,EAAIg2P,IAAQh2P,EAAG,CACjD,MAAM,MAAC86D,EAAA,IAAOphB,GAAOmhI,EAAS76K,GACxB+tN,EAAKgtC,EAAOjgM,GACZy2J,EAAKwpC,EAAOrhN,GAClB,GAAIq0K,IAAOwD,EAAI,CACbznN,EAAOlK,KAAKmuN,GACZ,SAEF,MACMkiF,EAAeF,EAAahiF,EAAIwD,EAD5Bz0M,KAAKse,KAAKp6B,EAAQ+sN,EAAG5oM,KAAcosM,EAAGpsM,GAAY4oM,EAAG5oM,KAClBzc,EAAQ6lS,SACrD0B,EAAa9qR,GAAYkhP,EAAMlhP,GAC/Brb,EAAOlK,KAAKqwS,EACd,CACA,OAAyB,IAAlBnmS,EAAO5J,OAAe4J,EAAO,GAAKA,CAC3C,CAgBAukS,WAAAA,CAAY5jS,EAAKgxK,EAAS5vJ,GAExB,OADsBojR,GAAkBx0R,KACjC60R,CAAc7kS,EAAKgQ,KAAMghK,EAAS5vJ,EAC3C,CASA1J,IAAAA,CAAK1X,EAAKqwD,EAAOrZ,GACf,MAAMo5H,EAAWpgK,KAAKogK,SAChBy0H,EAAgBL,GAAkBx0R,MACxC,IAAImgH,EAAOngH,KAAKs7P,MAEhBj7M,EAAQA,GAAS,EACjBrZ,EAAQA,GAAUhnC,KAAKsgP,OAAO76P,OAAS46D,EAEvC,IAAK,MAAM2gH,KAAWZ,EACpBjgD,GAAQ00K,EAAc7kS,EAAKgQ,KAAMghK,EAAS,CAAC3gH,QAAOphB,IAAKohB,EAAQrZ,EAAQ,IAEzE,QAASm5E,CACX,CASAm6I,IAAAA,CAAKtqQ,EAAK2zQ,EAAWtjN,EAAOrZ,GAC1B,MAAM/4C,EAAU+R,KAAK/R,SAAW,CAAC,GAClB+R,KAAKsgP,QAAU,IAEnB76P,QAAUwI,EAAQy9P,cAC3B17P,EAAImpJ,OAEJmhH,GAAKtqQ,EAAKgQ,KAAMqgD,EAAOrZ,GAEvBh3C,EAAIu3I,WAGFvnI,KAAKquQ,WAEPruQ,KAAKk1R,gBAAiB,EACtBl1R,KAAK20R,WAAQ5lS,EAEjB,ECjbF,SAAS0mS,GAAQt9K,EAAkBn6D,EAAa4iM,EAAiBkwB,GAC/D,MAAM7iR,EAAUkqH,EAAGlqH,SACZ,CAAC2yP,GAAOr6P,GAAS4xH,EAAGs5J,SAAS,CAAC7wB,GAAOkwB,GAE5C,OAAQzuQ,KAAKse,IAAIq9B,EAAMz3D,GAAS0H,EAAQ+8P,OAAS/8P,EAAQynS,SAC3D,CD6aA7vS,GA1MqBkvS,GAAoB,KAE3B,QAAOlvS,GAFAkvS,GAAoB,WAOrB,CAChBz7B,eAAgB,OAChBC,WAAY,GACZC,iBAAkB,EAClBC,gBAAiB,QACjB/N,YAAa,EACbqI,iBAAiB,EACjBF,uBAAwB,UACxBjhO,MAAM,EACNghO,UAAU,EACVkgC,SAAS,EACThgC,QAAS,IACTjuQ,GAnBiBkvS,GAAoB,gBAwBhB,CACrB3uI,gBAAiB,kBACjBgrB,YAAa,gBACbvrL,GA3BiBkvS,GAAoB,cA8BlB,CACnBvtC,aAAa,EACbC,WAAah/P,GAAkB,eAATA,GAAkC,SAATA,IC/PpC,MAAMktS,WAAqB9hS,GA6BxCxN,WAAAA,CAAY60Q,GACVl9I,QAAKn4H,GAAC,KAAD,iBAAAA,GAAC,KAAD,eAAAA,GAAC,KAAD,eAELma,KAAK/R,aAAUc,EACfiR,KAAK1P,YAASvB,EACdiR,KAAK6xP,UAAO9iQ,EACZiR,KAAKotE,UAAOr+E,EAERmsQ,GACFt2Q,OAAOsyC,OAAOl3B,KAAMk7P,EAExB,CAEA8V,OAAAA,CAAQ4kB,EAAgBC,EAAgB/kB,GACtC,MAAM7iR,EAAU+R,KAAK/R,SACf,EAACjF,EAAA,EAAGghE,GAAKhqD,KAAKyxQ,SAAS,CAAC,IAAK,KAAMX,GACzC,OAASzuQ,KAAKM,IAAIizR,EAAS5sS,EAAG,GAAKqZ,KAAKM,IAAIkzR,EAAS7rO,EAAG,GAAM3nD,KAAKM,IAAI1U,EAAQynS,UAAYznS,EAAQ+8P,OAAQ,EAC7G,CAEA8qC,QAAAA,CAASF,EAAgB9kB,GACvB,OAAO2kB,GAAQz1R,KAAM41R,EAAQ,IAAK9kB,EACpC,CAEAilB,QAAAA,CAASF,EAAgB/kB,GACvB,OAAO2kB,GAAQz1R,KAAM61R,EAAQ,IAAK/kB,EACpC,CAEAS,cAAAA,CAAeT,GACb,MAAM,EAAC9nR,EAAA,EAAGghE,GAAKhqD,KAAKyxQ,SAAS,CAAC,IAAK,KAAMX,GACzC,MAAO,CAAC9nR,IAAGghE,IACb,CAEAnM,IAAAA,CAAK5vD,GAEH,IAAI+8P,GADJ/8P,EAAUA,GAAW+R,KAAK/R,SAAW,CAAC,GACjB+8P,QAAU,EAC/BA,EAAS3oP,KAAK+tB,IAAI46N,EAAQA,GAAU/8P,EAAQ+nS,aAAe,GAE3D,OAAgC,GAAxBhrC,GADYA,GAAU/8P,EAAQy9P,aAAe,GAEvD,CAEA4O,IAAAA,CAAKtqQ,EAA+Bq1F,GAClC,MAAMp3F,EAAU+R,KAAK/R,QAEjB+R,KAAK6xP,MAAQ5jQ,EAAQ+8P,OAAS,KAAQW,GAAe3rP,KAAMqlF,EAAMrlF,KAAK69C,KAAK5vD,GAAW,KAI1F+B,EAAIi9P,YAAch/P,EAAQmjL,YAC1BphL,EAAIi/N,UAAYhhO,EAAQy9P,YACxB17P,EAAImsN,UAAYluN,EAAQm4J,gBACxBokG,GAAUx6P,EAAK/B,EAAS+R,KAAKhX,EAAGgX,KAAKgqD,GACvC,CAEAk0E,QAAAA,GACE,MAAMjwI,EAAU+R,KAAK/R,SAAW,CAAC,EAEjC,OAAOA,EAAQ+8P,OAAS/8P,EAAQynS,SAClC,EC3FF,SAASO,GAAaC,EAAKplB,GACzB,MAAM,EAAC9nR,EAAC,EAAEghE,EAAC,KAAEzc,EAAA,MAAMumD,EAAA,OAAOC,GAAmCmiM,EAAIzkB,SAAS,CAAC,IAAK,IAAK,OAAQ,QAAS,UAAWX,GAEjH,IAAI1jR,EAAMC,EAAOysG,EAAK+jC,EAAQs4J,EAgB9B,OAdID,EAAI5uB,YACN6uB,EAAOpiM,EAAS,EAChB3mG,EAAOiV,KAAK8tB,IAAInnC,EAAGukD,GACnBlgD,EAAQgV,KAAK+tB,IAAIpnC,EAAGukD,GACpBusD,EAAM9vC,EAAImsO,EACVt4J,EAAS7zE,EAAImsO,IAEbA,EAAOriM,EAAQ,EACf1mG,EAAOpE,EAAImtS,EACX9oS,EAAQrE,EAAImtS,EACZr8L,EAAMz3F,KAAK8tB,IAAI65B,EAAGzc,GAClBswF,EAASx7H,KAAK+tB,IAAI45B,EAAGzc,IAGhB,CAACngD,OAAM0sG,MAAKzsG,QAAOwwI,SAC5B,CAEA,SAASu4J,GAAYvkC,EAAMtrQ,EAAO4pC,EAAKC,GACrC,OAAOyhO,EAAO,EAAI3S,GAAY34P,EAAO4pC,EAAKC,EAC5C,CAkCA,SAASimQ,GAAcH,GACrB,MAAMzmK,EAASwmK,GAAaC,GACtBpiM,EAAQ27B,EAAOpiI,MAAQoiI,EAAOriI,KAC9B2mG,EAAS07B,EAAOoO,OAASpO,EAAO31B,IAChCoiF,EApCR,SAA0Bg6G,EAAKI,EAAMC,GACnC,MAAMhwS,EAAQ2vS,EAAIjoS,QAAQy9P,YACpBmG,EAAOqkC,EAAI7uB,cACXl/Q,EAAImmQ,GAAO/nQ,GAEjB,MAAO,CACL+a,EAAG80R,GAAYvkC,EAAK/3J,IAAK3xG,EAAE2xG,IAAK,EAAGy8L,GACnC1oS,EAAGuoS,GAAYvkC,EAAKxkQ,MAAOlF,EAAEkF,MAAO,EAAGipS,GACvCl1R,EAAGg1R,GAAYvkC,EAAKh0H,OAAQ11I,EAAE01I,OAAQ,EAAG04J,GACzC3oS,EAAGwoS,GAAYvkC,EAAKzkQ,KAAMjF,EAAEiF,KAAM,EAAGkpS,GAEzC,CAyBiBE,CAAiBN,EAAKpiM,EAAQ,EAAGC,EAAS,GACnDi3J,EAxBR,SAA2BkrC,EAAKI,EAAMC,GACpC,MAAM,mBAAC/uB,GAAsB0uB,EAAIzkB,SAAS,CAAC,uBACrClrR,EAAQ2vS,EAAIjoS,QAAQkuL,aACpBh0L,EAAIomQ,GAAchoQ,GAClBkwS,EAAOp0R,KAAK8tB,IAAImmQ,EAAMC,GACtB1kC,EAAOqkC,EAAI7uB,cAIXqvB,EAAelvB,GAAsBp5M,GAAS7nE,GAEpD,MAAO,CACLsnQ,QAASuoC,IAAaM,GAAgB7kC,EAAK/3J,KAAO+3J,EAAKzkQ,KAAMjF,EAAE0lQ,QAAS,EAAG4oC,GAC3EzoC,SAAUooC,IAAaM,GAAgB7kC,EAAK/3J,KAAO+3J,EAAKxkQ,MAAOlF,EAAE6lQ,SAAU,EAAGyoC,GAC9E3oC,WAAYsoC,IAAaM,GAAgB7kC,EAAKh0H,QAAUg0H,EAAKzkQ,KAAMjF,EAAE2lQ,WAAY,EAAG2oC,GACpF1oC,YAAaqoC,IAAaM,GAAgB7kC,EAAKh0H,QAAUg0H,EAAKxkQ,MAAOlF,EAAE4lQ,YAAa,EAAG0oC,GAE3F,CAOiBE,CAAkBT,EAAKpiM,EAAQ,EAAGC,EAAS,GAE1D,MAAO,CACL7zF,MAAO,CACLlX,EAAGymI,EAAOriI,KACV48D,EAAGylE,EAAO31B,IACVr2F,EAAGqwF,EACH54C,EAAG64C,EACHi3J,UAEF7qP,MAAO,CACLnX,EAAGymI,EAAOriI,KAAO8uL,EAAOtuL,EACxBo8D,EAAGylE,EAAO31B,IAAMoiF,EAAO56K,EACvBmC,EAAGqwF,EAAQooF,EAAOtuL,EAAIsuL,EAAOruL,EAC7BqtD,EAAG64C,EAASmoF,EAAO56K,EAAI46K,EAAO96K,EAC9B4pP,OAAQ,CACN6C,QAASxrP,KAAK+tB,IAAI,EAAG46N,EAAO6C,QAAUxrP,KAAK+tB,IAAI8rJ,EAAO56K,EAAG46K,EAAOtuL,IAChEogQ,SAAU3rP,KAAK+tB,IAAI,EAAG46N,EAAOgD,SAAW3rP,KAAK+tB,IAAI8rJ,EAAO56K,EAAG46K,EAAOruL,IAClEigQ,WAAYzrP,KAAK+tB,IAAI,EAAG46N,EAAO8C,WAAazrP,KAAK+tB,IAAI8rJ,EAAO96K,EAAG86K,EAAOtuL,IACtEmgQ,YAAa1rP,KAAK+tB,IAAI,EAAG46N,EAAO+C,YAAc1rP,KAAK+tB,IAAI8rJ,EAAO96K,EAAG86K,EAAOruL,MAIhF,CAEA,SAASmjR,GAAQklB,EAAKltS,EAAGghE,EAAG8mN,GAC1B,MAAM8lB,EAAc,OAAN5tS,EACR6tS,EAAc,OAAN7sO,EAERylE,EAASymK,KADEU,GAASC,IACSZ,GAAaC,EAAKplB,GAErD,OAAOrhJ,IACHmnK,GAASz3C,GAAWn2P,EAAGymI,EAAOriI,KAAMqiI,EAAOpiI,UAC3CwpS,GAAS13C,GAAWn1L,EAAGylE,EAAO31B,IAAK21B,EAAOoO,QAChD,CAWA,SAASi5J,GAAkB9mS,EAAKs4I,GAC9Bt4I,EAAIs4I,KAAKA,EAAKt/I,EAAGs/I,EAAKt+E,EAAGs+E,EAAK7kI,EAAG6kI,EAAKptF,EACxC,CAEA,SAAS67O,GAAYzuJ,EAAMjnB,GAAsB,IAAd21K,EAAUxxS,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,MAC3C,MAAMwD,EAAIs/I,EAAKt/I,IAAMguS,EAAQhuS,GAAKq4H,EAAS,EACrCr3D,EAAIs+E,EAAKt+E,IAAMgtO,EAAQhtO,GAAKq3D,EAAS,EACrC59G,GAAK6kI,EAAKt/I,EAAIs/I,EAAK7kI,IAAMuzR,EAAQhuS,EAAIguS,EAAQvzR,EAAI49G,EAAS,GAAKr4H,EAC/DkyD,GAAKotF,EAAKt+E,EAAIs+E,EAAKptF,IAAM87O,EAAQhtO,EAAIgtO,EAAQ97O,EAAImmE,EAAS,GAAKr3D,EACrE,MAAO,CACLhhE,EAAGs/I,EAAKt/I,EAAIA,EACZghE,EAAGs+E,EAAKt+E,EAAIA,EACZvmD,EAAG6kI,EAAK7kI,EAAIA,EACZy3C,EAAGotF,EAAKptF,EAAIA,EACZ8vM,OAAQ1iH,EAAK0iH,OAEjB,CDhCAnlQ,GAvFqB8vS,GAAqB,KAE5B,SAMZ9vS,GARmB8vS,GAAqB,WAWtB,CAChBjqC,YAAa,EACbgqC,UAAW,EACXhoB,iBAAkB,EAClBsoB,YAAa,EACbjrC,WAAY,SACZC,OAAQ,EACRpsE,SAAU,IAGZ/4L,GArBmB8vS,GAAqB,gBAwBjB,CACrBvvI,gBAAiB,kBACjBgrB,YAAa,gBC+FF,MAAM6lH,WAAmBpjS,GAuBtCxN,WAAAA,CAAY60Q,GACVl9I,QAEAh+G,KAAK/R,aAAUc,EACfiR,KAAKsnQ,gBAAav4Q,EAClBiR,KAAKutC,UAAOx+C,EACZiR,KAAK8zF,WAAQ/kG,EACbiR,KAAK+zF,YAAShlG,EACdiR,KAAK6nQ,mBAAgB94Q,EAEjBmsQ,GACFt2Q,OAAOsyC,OAAOl3B,KAAMk7P,EAExB,CAEAZ,IAAAA,CAAKtqQ,GACH,MAAM,cAAC63Q,EAAe55Q,SAAS,YAACmjL,EAAA,gBAAahrB,IAAoBpmJ,MAC3D,MAACG,EAAK,MAAED,GAASm2R,GAAcr2R,MAC/Bk3R,GApESlsC,EAoEe9qP,EAAM8qP,QAnExB6C,SAAW7C,EAAOgD,UAAYhD,EAAO8C,YAAc9C,EAAO+C,YAmExBH,GAAqBkpC,GApEvE,IAAmB9rC,EAsEfh7P,EAAImpJ,OAEAj5I,EAAMuD,IAAMtD,EAAMsD,GAAKvD,EAAMg7C,IAAM/6C,EAAM+6C,IAC3ClrD,EAAIm7P,YACJ+rC,EAAYlnS,EAAK+mS,GAAY72R,EAAO2nQ,EAAe1nQ,IACnDnQ,EAAIg4P,OACJkvC,EAAYlnS,EAAK+mS,GAAY52R,GAAQ0nQ,EAAe3nQ,IACpDlQ,EAAImsN,UAAY/qC,EAChBphL,EAAI4iC,KAAK,YAGX5iC,EAAIm7P,YACJ+rC,EAAYlnS,EAAK+mS,GAAY52R,EAAO0nQ,IACpC73Q,EAAImsN,UAAY/1D,EAChBp2J,EAAI4iC,OAEJ5iC,EAAIu3I,SACN,CAEAypI,OAAAA,CAAQ4kB,EAAQC,EAAQ/kB,GACtB,OAAOE,GAAQhxQ,KAAM41R,EAAQC,EAAQ/kB,EACvC,CAEAglB,QAAAA,CAASF,EAAQ9kB,GACf,OAAOE,GAAQhxQ,KAAM41R,EAAQ,KAAM9kB,EACrC,CAEAilB,QAAAA,CAASF,EAAQ/kB,GACf,OAAOE,GAAQhxQ,KAAM,KAAM61R,EAAQ/kB,EACrC,CAEAS,cAAAA,CAAeT,GACb,MAAM,EAAC9nR,EAAA,EAAGghE,EAAA,KAAGzc,EAAI,WAAE+5N,GAAuCtnQ,KAAKyxQ,SAAS,CAAC,IAAK,IAAK,OAAQ,cAAeX,GAC1G,MAAO,CACL9nR,EAAGs+Q,GAAct+Q,EAAIukD,GAAQ,EAAIvkD,EACjCghE,EAAGs9M,EAAat9M,GAAKA,EAAIzc,GAAQ,EAErC,CAEA2wF,QAAAA,CAAS0iH,GACP,MAAgB,MAATA,EAAe5gP,KAAK8zF,MAAQ,EAAI9zF,KAAK+zF,OAAS,CACvD,EACFluG,GArFqBoxS,GAAmB,KAE1B,OAAMpxS,GAFCoxS,GAAmB,WAOpB,CAChB5vB,cAAe,QACf3b,YAAa,EACbvvE,aAAc,EACd0rF,cAAe,OACf9c,gBAAYh8P,IACZlJ,GAbiBoxS,GAAmB,gBAkBf,CACrB7wI,gBAAiB,kBACjBgrB,YAAa,kHCnJjB,MAAM+lH,GAAgB,CACpB,oBACA,oBACA,oBACA,oBACA,oBACA,qBACA,sBAIIC,GAAoCD,GAAcx8Q,KAAIs7E,GAASA,EAAMhwF,QAAQ,OAAQ,SAASA,QAAQ,IAAK,YAEjH,SAASoxR,GAAe9xS,GACtB,OAAO4xS,GAAc5xS,EAAI4xS,GAAc1xS,OACzC,CAEA,SAAS6xS,GAAmB/xS,GAC1B,OAAO6xS,GAAkB7xS,EAAI6xS,GAAkB3xS,OACjD,CAqBA,SAAS8xS,GAAa7yC,GACpB,IAAIn/P,EAAI,EAER,MAAO,CAAC4qH,EAAuBsrI,KAC7B,MAAMnqB,EAAaozB,EAAMoc,eAAerlB,GAAcnqB,WAElDA,aAAsBu5C,GACxBtlR,EAnBN,SAAiC4qH,EAAuB5qH,GAGtD,OAFA4qH,EAAQi2C,gBAAkBj2C,EAAQ5wG,KAAKob,KAAI,IAAM08Q,GAAe9xS,OAEzDA,CACT,CAeUiyS,CAAwBrnL,EAAS5qH,GAC5B+rO,aAAsBu9C,GAC/BtpR,EAfN,SAAkC4qH,EAAuB5qH,GAGvD,OAFA4qH,EAAQi2C,gBAAkBj2C,EAAQ5wG,KAAKob,KAAI,IAAM28Q,GAAmB/xS,OAE7DA,CACT,CAWUkyS,CAAyBtnL,EAAS5qH,GAC7B+rO,IACT/rO,EA9BN,SAAgC4qH,EAAuB5qH,GAIrD,OAHA4qH,EAAQihE,YAAcimH,GAAe9xS,GACrC4qH,EAAQi2C,gBAAkBkxI,GAAmB/xS,KAEpCA,CACX,CAyBUmyS,CAAuBvnL,EAAS5qH,IAG1C,CAEA,SAASoyS,GACPlhI,GAEA,IAAI9yJ,EAEJ,IAAKA,KAAK8yJ,EACR,GAAIA,EAAY9yJ,GAAGytK,aAAe3a,EAAY9yJ,GAAGyiJ,gBAC/C,OAAO,EAIX,OAAO,CACT,CAQA,IAAAwxI,GAAe,CACb9jS,GAAI,SAEJmtN,SAAU,CACR10K,SAAS,EACTsrP,eAAe,GAGjBziB,YAAAA,CAAa1wB,EAAcozC,EAAO7pS,GAChC,IAAKA,EAAQs+C,QACX,OAGF,MACEhtC,MAAM,SAAComP,GACP13P,QAAS8pS,GACPrzC,EAAMn3O,QACJ,SAACzgB,GAAYirS,EAEnB,IAAK9pS,EAAQ4pS,gBAAkBF,GAA0BhyC,KAxB3DxwN,EAwBiG4iQ,KAtB3E5iQ,EAAWi8I,aAAej8I,EAAWixH,kBAsBwDt5J,GAAY6qS,GAA0B7qS,IACrJ,OA1BN,IACEqoC,EA4BE,MAAM6iQ,EAAYT,GAAa7yC,GAE/BiB,EAAShgQ,QAAQqyS,EACnB,GCwCF,SAASC,GAAsB9nL,GAC7B,GAAIA,EAAQi+J,WAAY,CACtB,MAAM7uQ,EAAO4wG,EAAQ6uJ,aACd7uJ,EAAQi+J,kBACRj+J,EAAQ6uJ,MACfp6Q,OAAOoB,eAAemqH,EAAS,OAAQ,CACrC3pH,cAAc,EACdtB,YAAY,EACZuB,UAAU,EACVF,MAAOgZ,IAGb,CAEA,SAAS24R,GAAmBxzC,GAC1BA,EAAMnlP,KAAKomP,SAAShgQ,SAASwqH,IAC3B8nL,GAAsB9nL,EAAA,GAE1B,CAuBA,IAAAgoL,GAAe,CACbrkS,GAAI,aAEJmtN,SAAU,CACR5lK,UAAW,UACX9O,SAAS,GAGX6rP,qBAAsBA,CAAC1zC,EAAOllN,EAAMvxC,KAClC,IAAKA,EAAQs+C,QAGX,YADA2rP,GAAmBxzC,GAKrB,MAAMouB,EAAiBpuB,EAAM5wJ,MAE7B4wJ,EAAMnlP,KAAKomP,SAAShgQ,SAAQ,CAACwqH,EAASsrI,KACpC,MAAM,MAACujB,EAAA,UAAO9Y,GAAa/1I,EACrBtqB,EAAO6+J,EAAMoc,eAAerlB,GAC5Bl8O,EAAOy/P,GAAS7uJ,EAAQ5wG,KAE9B,GAAsD,MAAlDnQ,GAAQ,CAAC82P,EAAWxB,EAAMz2P,QAAQi4P,YAEpC,OAGF,IAAKrgK,EAAKyrI,WAAWguC,mBAEnB,OAGF,MAAM+4B,EAAQ3zC,EAAMkC,OAAO/gK,EAAKs6K,SAChC,GAAmB,WAAfk4B,EAAM1kS,MAAoC,SAAf0kS,EAAM1kS,KAEnC,OAGF,GAAI+wP,EAAMz2P,QAAQu4P,QAEhB,OAGF,IAAI,MAACnmM,EAAK,MAAErZ,GAjElB,SAAmD6+C,EAAMy6J,GACvD,MAAME,EAAaF,EAAO76P,OAE1B,IACIuhD,EADAqZ,EAAQ,EAGZ,MAAM,OAACqgM,GAAU76J,GACX,IAAC11D,EAAG,IAAEC,EAAG,WAAEywN,EAAU,WAAEC,GAAcJ,EAAOK,gBAWlD,OATIF,IACFxgM,EAAQ6+L,GAAYM,GAAac,EAAQI,EAAOE,KAAMzwN,GAAKq4B,GAAI,EAAGg4L,EAAa,IAG/Ex5M,EADE85M,EACM5B,GAAYM,GAAac,EAAQI,EAAOE,KAAMxwN,GAAKm4B,GAAK,EAAGlI,EAAOmgM,GAAcngM,EAEhFmgM,EAAangM,EAGhB,CAACA,QAAOrZ,QACjB,CA8C2BsxP,CAA0CzyM,EAAMtmF,GAErE,GAAIynC,IADc/4C,EAAQw9N,WAAa,EAAIqnD,GAIzC,YADAmlB,GAAsB9nL,GAuBxB,IAAIooL,EACJ,OApBIz9C,GAAckkB,KAIhB7uJ,EAAQ6uJ,MAAQz/P,SACT4wG,EAAQ5wG,KACf3a,OAAOoB,eAAemqH,EAAS,OAAQ,CACrC3pH,cAAc,EACdtB,YAAY,EACZoT,IAAK,WACH,OAAO0H,KAAKouQ,UACd,EACA5tQ,IAAK,SAASiB,GACZzB,KAAKg/P,MAAQv9P,CACf,KAMIxT,EAAQotD,WAChB,IAAK,OACHk9O,EA5QR,SAAwBh5R,EAAM8gD,EAAOrZ,EAAO8rO,EAAgB7kR,GAS1D,MAAMuqS,EAAUvqS,EAAQuqS,SAAW1lB,EAEnC,GAAI0lB,GAAWxxP,EACb,OAAOznC,EAAK/W,MAAM63D,EAAOA,EAAQrZ,GAGnC,MAAMuxP,EAAY,GAEZE,GAAezxP,EAAQ,IAAMwxP,EAAU,GAC7C,IAAIE,EAAe,EACnB,MAAMC,EAAWt4O,EAAQrZ,EAAQ,EAEjC,IACIzhD,EAAGqzS,EAAcC,EAASxzM,EAAMyzM,EADhC33R,EAAIk/C,EAKR,IAFAk4O,EAAUG,KAAkBn5R,EAAK4B,GAE5B5b,EAAI,EAAGA,EAAIizS,EAAU,EAAGjzS,IAAK,CAChC,IAEIoiE,EAFAwsO,EAAO,EACP4E,EAAO,EAIX,MAAMC,EAAgB32R,KAAKC,OAAO/c,EAAI,GAAKkzS,GAAe,EAAIp4O,EACxD44O,EAAc52R,KAAK8tB,IAAI9tB,KAAKC,OAAO/c,EAAI,GAAKkzS,GAAe,EAAGzxP,GAASqZ,EACvE64O,EAAiBD,EAAcD,EAErC,IAAKrxO,EAAIqxO,EAAerxO,EAAIsxO,EAAatxO,IACvCwsO,GAAQ50R,EAAKooD,GAAG3+D,EAChB+vS,GAAQx5R,EAAKooD,GAAGqC,EAGlBmqO,GAAQ+E,EACRH,GAAQG,EAGR,MAAMC,EAAY92R,KAAKC,MAAM/c,EAAIkzS,GAAe,EAAIp4O,EAC9C+4O,EAAU/2R,KAAK8tB,IAAI9tB,KAAKC,OAAO/c,EAAI,GAAKkzS,GAAe,EAAGzxP,GAASqZ,GAClEr3D,EAAGqwS,EAASrvO,EAAGsvO,GAAW/5R,EAAK4B,GAStC,IAFA03R,EAAUxzM,GAAQ,EAEb19B,EAAIwxO,EAAWxxO,EAAIyxO,EAASzxO,IAC/B09B,EAAO,GAAMhjF,KAAKse,KACf04Q,EAAUlF,IAAS50R,EAAKooD,GAAGqC,EAAIsvO,IAC/BD,EAAU95R,EAAKooD,GAAG3+D,IAAM+vS,EAAOO,IAG9Bj0M,EAAOwzM,IACTA,EAAUxzM,EACVuzM,EAAer5R,EAAKooD,GACpBmxO,EAAQnxO,GAIZ4wO,EAAUG,KAAkBE,EAC5Bz3R,EAAI23R,CACN,CAKA,OAFAP,EAAUG,KAAkBn5R,EAAKo5R,GAE1BJ,CACT,CA+LoBgB,CAAeh6R,EAAM8gD,EAAOrZ,EAAO8rO,EAAgB7kR,GAC/D,MACF,IAAK,UACHsqS,EAhMR,SAA0Bh5R,EAAM8gD,EAAOrZ,EAAO8rO,GAC5C,IAEIvtR,EAAGqmQ,EAAO5iQ,EAAGghE,EAAGiqO,EAAOuF,EAAUC,EAAU53H,EAAY6qG,EAAMF,EAF7D2nB,EAAO,EACPC,EAAS,EAEb,MAAMmE,EAAY,GACZI,EAAWt4O,EAAQrZ,EAAQ,EAE3B0yP,EAAOn6R,EAAK8gD,GAAOr3D,EAEnB2wS,EADOp6R,EAAKo5R,GAAU3vS,EACV0wS,EAElB,IAAKn0S,EAAI86D,EAAO96D,EAAI86D,EAAQrZ,IAASzhD,EAAG,CACtCqmQ,EAAQrsP,EAAKha,GACbyD,GAAK4iQ,EAAM5iQ,EAAI0wS,GAAQC,EAAK7mB,EAC5B9oN,EAAI4hM,EAAM5hM,EACV,MAAMuqO,EAAa,EAAJvrS,EAEf,GAAIurS,IAAWN,EAETjqO,EAAI0iN,GACNA,EAAO1iN,EACPwvO,EAAWj0S,GACFykE,EAAIwiN,IACbA,EAAOxiN,EACPyvO,EAAWl0S,GAIb4uS,GAAQC,EAASD,EAAOvoC,EAAM5iQ,KAAOorS,MAChC,CAEL,MAAM9nJ,EAAY/mJ,EAAI,EAEtB,IAAKu1P,GAAc0+C,KAAc1+C,GAAc2+C,GAAW,CAKxD,MAAMG,EAAqBv3R,KAAK8tB,IAAIqpQ,EAAUC,GACxCI,EAAqBx3R,KAAK+tB,IAAIopQ,EAAUC,GAE1CG,IAAuB/3H,GAAc+3H,IAAuBttJ,GAC9DisJ,EAAUpzS,KAAK,IACVoa,EAAKq6R,GACR5wS,EAAGmrS,IAGH0F,IAAuBh4H,GAAcg4H,IAAuBvtJ,GAC9DisJ,EAAUpzS,KAAK,IACVoa,EAAKs6R,GACR7wS,EAAGmrS,IAOL5uS,EAAI,GAAK+mJ,IAAcu1B,GAEzB02H,EAAUpzS,KAAKoa,EAAK+sI,IAItBisJ,EAAUpzS,KAAKymQ,GACfqoC,EAAQM,EACRH,EAAS,EACT1nB,EAAOF,EAAOxiN,EACdwvO,EAAWC,EAAW53H,EAAat8K,EAEvC,CAEA,OAAOgzS,CACT,CAwHoBuB,CAAiBv6R,EAAM8gD,EAAOrZ,EAAO8rO,GACjD,MACF,QACE,MAAM,IAAIzoR,MAAM,qCAAAqE,OAAqCT,EAAQotD,UAAS,MAGxE80D,EAAQi+J,WAAamqB,CAAA,GACrB,EAGJjjS,OAAAA,CAAQovP,GACNwzC,GAAmBxzC,EACrB,GC3OK,SAASq1C,GAAWrvR,EAAUg2D,EAAOC,EAAMw/C,GAChD,GAAIA,EACF,OAEF,IAAI9/D,EAAQqgB,EAAMh2D,GACdu0B,EAAM0hC,EAAKj2D,GAMf,MAJiB,UAAbA,IACF21C,EAAQs+L,GAAgBt+L,GACxBphB,EAAM0/M,GAAgB1/M,IAEjB,CAACv0B,WAAU21C,QAAOphB,MAC3B,CAqBO,SAAS+6P,GAAgB35O,EAAOphB,EAAKqhN,GAC1C,KAAMrhN,EAAMohB,EAAOphB,IAAO,CACxB,MAAM2sN,EAAQtL,EAAOrhN,GACrB,IAAKH,MAAM8sN,EAAM5iQ,KAAO81C,MAAM8sN,EAAM5hM,GAClC,KAEJ,CACA,OAAO/qB,CACT,CAEA,SAASg7P,GAAS94R,EAAGC,EAAGm+C,EAAM5tC,GAC5B,OAAIxQ,GAAKC,EACAuQ,EAAGxQ,EAAEo+C,GAAOn+C,EAAEm+C,IAEhBp+C,EAAIA,EAAEo+C,GAAQn+C,EAAIA,EAAEm+C,GAAQ,CACrC,CCnFO,SAAS26O,GAAoBC,EAAUjxQ,GAC5C,IAAIo3N,EAAS,GACTgb,GAAQ,EAUZ,OARI7zQ,GAAQ0yS,IACV7+B,GAAQ,EAERhb,EAAS65C,GAET75C,EDwCG,SAA6B65C,EAAUjxQ,GAC5C,MAAM,EAAClgC,EAAI,KAAI,EAAEghE,EAAI,MAAQmwO,GAAY,CAAC,EACpCC,EAAalxQ,EAAKo3N,OAClBA,EAAS,GAaf,OAZAp3N,EAAKk3I,SAASz6K,SAAQojL,IAAkB,IAAjB,MAAC1oH,EAAK,IAAEphB,GAAI8pI,EACjC9pI,EAAM+6P,GAAgB35O,EAAOphB,EAAKm7P,GAClC,MAAM15N,EAAQ05N,EAAW/5O,GACnBsgB,EAAOy5N,EAAWn7P,GACd,OAAN+qB,GACFs2L,EAAOn7P,KAAK,CAAC6D,EAAG03E,EAAM13E,EAAGghE,MACzBs2L,EAAOn7P,KAAK,CAAC6D,EAAG23E,EAAK33E,EAAGghE,OACT,OAANhhE,IACTs3P,EAAOn7P,KAAK,CAAC6D,IAAGghE,EAAG0W,EAAM1W,IACzBs2L,EAAOn7P,KAAK,CAAC6D,IAAGghE,EAAG2W,EAAK3W,QAGrBs2L,CACT,CCzDa+5C,CAAoBF,EAAUjxQ,GAGlCo3N,EAAO76P,OAAS,IAAIsvS,GAAY,CACrCz0C,SACAryP,QAAS,CAAC6lQ,QAAS,GACnBwH,QACAwU,UAAWxU,IACR,IACP,CAEO,SAASg/B,GAAiB50S,GAC/B,OAAOA,IAA0B,IAAhBA,EAAOktC,IAC1B,CC5BO,SAAS2nQ,GAAex9J,EAASnoH,EAAO4lR,GAE7C,IAAI5nQ,EADWmqG,EAAQnoH,GACLge,KAClB,MAAM6nQ,EAAU,CAAC7lR,GACjB,IAAItvB,EAEJ,IAAKk1S,EACH,OAAO5nQ,EAGT,MAAgB,IAATA,IAA6C,IAA3B6nQ,EAAQ5zS,QAAQ+rC,IAAc,CACrD,IAAKmoN,GAASnoN,GACZ,OAAOA,EAIT,GADAttC,EAASy3I,EAAQnqG,IACZttC,EACH,OAAO,EAGT,GAAIA,EAAOopO,QACT,OAAO97L,EAGT6nQ,EAAQt1S,KAAKytC,GACbA,EAAOttC,EAAOstC,IAChB,CAEA,OAAO,CACT,CAOO,SAAS8nQ,GAAYxxQ,EAAMtU,EAAOoyB,GAEvC,MAAMpU,EAwER,SAAyB1J,GACvB,MAAMj7B,EAAUi7B,EAAKj7B,QACf0sS,EAAa1sS,EAAQ2kC,KAC3B,IAAIA,EAAOqoN,GAAe0/C,GAAcA,EAAWr1S,OAAQq1S,QAE9C5rS,IAAT6jC,IACFA,IAAS3kC,EAAQm4J,iBAGnB,IAAa,IAATxzH,GAA2B,OAATA,EACpB,OAAO,EAGT,IAAa,IAATA,EACF,MAAO,SAET,OAAOA,CACT,CAzFegoQ,CAAgB1xQ,GAE7B,GAAIklC,GAASx7B,GACX,OAAOkM,MAAMlM,EAAKrsC,QAAiBqsC,EAGrC,IAAIttC,EAASmuC,WAAWb,GAExB,OAAImoN,GAASz1P,IAAW+c,KAAKC,MAAMhd,KAAYA,EAOjD,SAA2Bu1S,EAASjmR,EAAOtvB,EAAQ0hD,GACjC,MAAZ6zP,GAA+B,MAAZA,IACrBv1S,EAASsvB,EAAQtvB,GAGnB,GAAIA,IAAWsvB,GAAStvB,EAAS,GAAKA,GAAU0hD,EAC9C,OAAO,EAGT,OAAO1hD,CACT,CAhBWw1S,CAAkBloQ,EAAK,GAAIhe,EAAOtvB,EAAQ0hD,GAG5C,CAAC,SAAU,QAAS,MAAO,QAAS,SAASngD,QAAQ+rC,IAAS,GAAKA,CAC5E,CCHA,SAASmoQ,GAAez6C,EAAQ06C,EAAaC,GAC3C,MAAMC,EAAY,GAClB,IAAK,IAAIvzO,EAAI,EAAGA,EAAIszO,EAAWx1S,OAAQkiE,IAAK,CAC1C,MAAMz+B,EAAO+xQ,EAAWtzO,IAClB,MAAC+Y,EAAK,KAAEC,EAAI,MAAEirL,GAASuvC,GAAUjyQ,EAAM8xQ,EAAa,KAE1D,MAAKpvC,GAAUlrL,GAASC,GAGxB,GAAID,EAGFw6N,EAAUzwR,QAAQmhP,QAGlB,GADAtL,EAAOn7P,KAAKymQ,IACPjrL,EAEH,KAGN,CACA2/K,EAAOn7P,QAAQ+1S,EACjB,CAQA,SAASC,GAAUjyQ,EAAM8xQ,EAAatwR,GACpC,MAAMkhP,EAAQ1iO,EAAKixN,YAAY6gD,EAAatwR,GAC5C,IAAKkhP,EACH,MAAO,CAAC,EAGV,MAAMwvC,EAAaxvC,EAAMlhP,GACnB01J,EAAWl3I,EAAKk3I,SAChBg6H,EAAalxQ,EAAKo3N,OACxB,IAAI5/K,GAAQ,EACRC,GAAO,EACX,IAAK,IAAIp7E,EAAI,EAAGA,EAAI66K,EAAS36K,OAAQF,IAAK,CACxC,MAAMy7K,EAAUZ,EAAS76K,GACnB81S,EAAajB,EAAWp5H,EAAQ3gH,OAAO31C,GACvC4wR,EAAYlB,EAAWp5H,EAAQ/hI,KAAKv0B,GAC1C,GAAIy0O,GAAWi8C,EAAYC,EAAYC,GAAY,CACjD56N,EAAQ06N,IAAeC,EACvB16N,EAAOy6N,IAAeE,EACtB,MAEJ,CACA,MAAO,CAAC56N,QAAOC,OAAMirL,QACvB,CC1GO,MAAM2vC,GACXl1S,WAAAA,CAAY25D,GACVhgD,KAAKhX,EAAIg3D,EAAKh3D,EACdgX,KAAKgqD,EAAIhK,EAAKgK,EACdhqD,KAAKgrP,OAAShrM,EAAKgrM,MACrB,CAEA4oC,WAAAA,CAAY5jS,EAAKy/H,EAAQzvE,GACvB,MAAM,EAACh3D,EAAA,EAAGghE,EAAA,OAAGghM,GAAUhrP,KAGvB,OAFAyvH,EAASA,GAAU,CAACpvE,MAAO,EAAGphB,IAAKw9M,IACnCzsP,EAAIq7P,IAAIriQ,EAAGghE,EAAGghM,EAAQv7H,EAAOxwF,IAAKwwF,EAAOpvE,OAAO,IACxCL,EAAKyvE,MACf,CAEA0qH,WAAAA,CAAYyR,GACV,MAAM,EAAC5iQ,EAAA,EAAGghE,EAAA,OAAGghM,GAAUhrP,KACjBo+O,EAAQwN,EAAMxN,MACpB,MAAO,CACLp1P,EAAGA,EAAIqZ,KAAKwgP,IAAIzE,GAAS4M,EACzBhhM,EAAGA,EAAI3nD,KAAKw/O,IAAIzD,GAAS4M,EACzB5M,QAEJ,ECbK,SAASkR,GAAW5pQ,GACzB,MAAM,MAACg/P,EAAK,KAAE9xN,EAAA,KAAM1J,GAAQxjC,EAE5B,GAAIq1P,GAASnoN,GACX,OAwBJ,SAAwB8xN,EAAO9vO,GAC7B,MAAMixE,EAAO6+J,EAAMoc,eAAelsP,GAC5B85M,EAAU7oI,GAAQ6+J,EAAM0mB,iBAAiBx2P,GAC/C,OAAO85M,EAAU7oI,EAAKsqB,QAAU,IAClC,CA5BWqrL,CAAe92C,EAAO9xN,GAG/B,GAAa,UAATA,EACF,OFNG,SAAyBltC,GAC9B,MAAM,MAACihQ,EAAK,MAAE/xO,EAAA,KAAOsU,GAAQxjC,EACvB46P,EAAS,GACTlgF,EAAWl3I,EAAKk3I,SAChBq7H,EAAevyQ,EAAKo3N,OACpB26C,EAiBR,SAAuBt0C,EAAO/xO,GAC5B,MAAM8mR,EAAQ,GACR9f,EAAQj1B,EAAMgX,wBAAwB,QAE5C,IAAK,IAAIp4Q,EAAI,EAAGA,EAAIq2R,EAAMn2R,OAAQF,IAAK,CACrC,MAAMsgG,EAAO+1L,EAAMr2R,GACnB,GAAIsgG,EAAKjxE,QAAUA,EACjB,MAEGixE,EAAK0oI,QACRmtE,EAAMjxR,QAAQo7E,EAAKsqB,QAEvB,CACA,OAAOurL,CACT,CA/BqBC,CAAch1C,EAAO/xO,GACxCqmR,EAAW91S,KAAK+0S,GAAoB,CAAClxS,EAAG,KAAMghE,EAAG28L,EAAM9oH,QAAS30G,IAEhE,IAAK,IAAI3jC,EAAI,EAAGA,EAAI66K,EAAS36K,OAAQF,IAAK,CACxC,MAAMy7K,EAAUZ,EAAS76K,GACzB,IAAK,IAAIoiE,EAAIq5G,EAAQ3gH,MAAOsH,GAAKq5G,EAAQ/hI,IAAK0oB,IAC5CozO,GAAez6C,EAAQm7C,EAAa9zO,GAAIszO,EAE5C,CACA,OAAO,IAAIlG,GAAY,CAACz0C,SAAQryP,QAAS,CAAC,GAC5C,CETW2tS,CAAgBl2S,GAGzB,GAAa,UAATktC,EACF,OAAO,EAGT,MAAMunQ,EAmBR,SAAyBz0S,GACvB,MAAMihQ,EAAQjhQ,EAAOihQ,OAAS,CAAC,EAE/B,GAAIA,EAAMqpB,yBACR,OAsBJ,SAAiCtqR,GAC/B,MAAM,MAACihQ,EAAA,KAAO/zN,GAAQltC,EAChBuI,EAAU04P,EAAM14P,QAChBxI,EAASkhQ,EAAMyb,YAAY38Q,OAC3B46D,EAAQpyD,EAAQi8E,QAAUy8K,EAAMv2N,IAAMu2N,EAAMx2N,IAC5C5pC,EHuBD,SAAyBqsC,EAAM+zN,EAAOggB,GAC3C,IAAIpgR,EAYJ,OATEA,EADW,UAATqsC,EACM+zO,EACU,QAAT/zO,EACD+zN,EAAM14P,QAAQi8E,QAAUy8K,EAAMx2N,IAAMw2N,EAAMv2N,IACzCg+B,GAASx7B,GAEVA,EAAKrsC,MAELogQ,EAAM65B,eAETj6R,CACT,CGrCgBs1S,CAAgBjpQ,EAAM+zN,EAAOtmM,GACrC/6D,EAAS,GAEf,GAAI2I,EAAQo8N,KAAK1+E,SAAU,CACzB,MAAM+8H,EAAS/hB,EAAMqpB,yBAAyB,EAAG3vN,GACjD,OAAO,IAAIk7O,GAAU,CACnBvyS,EAAG0/Q,EAAO1/Q,EACVghE,EAAG0+M,EAAO1+M,EACVghM,OAAQrE,EAAM8oB,8BAA8BlpR,KAIhD,IAAK,IAAIhB,EAAI,EAAGA,EAAIE,IAAUF,EAC5BD,EAAOH,KAAKwhQ,EAAMqpB,yBAAyBzqR,EAAGgB,IAEhD,OAAOjB,CACT,CA3CWw2S,CAAwBp2S,GAEjC,OAIF,SAA+BA,GAC7B,MAAM,MAACihQ,EAAQ,QAAI/zN,GAAQltC,EACrBykQ,EHqBD,SAAyBv3N,EAAM+zN,GACpC,IAAIwD,EAAQ,KAWZ,MAVa,UAATv3N,EACFu3N,EAAQxD,EAAM9oH,OACI,QAATjrG,EACTu3N,EAAQxD,EAAM7sJ,IACL1rC,GAASx7B,GAElBu3N,EAAQxD,EAAM3F,iBAAiBpuN,EAAKrsC,OAC3BogQ,EAAMuhB,eACf/d,EAAQxD,EAAMuhB,gBAET/d,CACT,CGlCgB4xC,CAAgBnpQ,EAAM+zN,GAEpC,GAAI5L,GAASoP,GAAQ,CACnB,MAAMmd,EAAa3gB,EAAMwhB,eAEzB,MAAO,CACLn/Q,EAAGs+Q,EAAand,EAAQ,KACxBngM,EAAGs9M,EAAa,KAAOnd,GAI3B,OAAO,IACT,CAlBS6xC,CAAsBt2S,EAC/B,CA1BmBu2S,CAAgBv2S,GAEjC,OAAIy0S,aAAoBoB,GACfpB,EAGFD,GAAoBC,EAAUjxQ,EACvC,CC9BO,SAASgzQ,GAAUlsS,EAAKtK,EAAQ2/F,GACrC,MAAM//F,EAASgqQ,GAAW5pQ,IACpB,KAACwjC,EAAI,MAAEy9N,EAAA,KAAO/F,GAAQl7P,EACtBy2S,EAAWjzQ,EAAKj7B,QAChB0sS,EAAawB,EAASvpQ,KACtBqjE,EAAQkmM,EAAS/1I,iBACjB,MAACg2I,EAAQnmM,EAAK,MAAEylM,EAAQzlM,GAAS0kM,GAAc,CAAC,EAClDr1S,GAAU4jC,EAAKo3N,OAAO76P,SACxBomQ,GAAS77P,EAAKq1F,GAMlB,SAAgBr1F,EAAKkrQ,GACnB,MAAM,KAAChyO,EAAA,OAAM5jC,EAAA,MAAQ82S,EAAA,MAAOV,EAAA,KAAOr2M,EAAA,MAAMshK,GAASuU,EAC5CxwP,EAAWwe,EAAKoyO,MAAQ,QAAUJ,EAAIta,KAE5C5wP,EAAImpJ,OAEa,MAAbzuI,GAAoBgxR,IAAUU,IAChCC,GAAarsS,EAAK1K,EAAQ+/F,EAAKyU,KAC/BlnE,GAAK5iC,EAAK,CAACk5B,OAAM5jC,SAAQ2wG,MAAOmmM,EAAOz1C,QAAOj8O,aAC9C1a,EAAIu3I,UACJv3I,EAAImpJ,OACJkjJ,GAAarsS,EAAK1K,EAAQ+/F,EAAKw4C,SAEjCjrG,GAAK5iC,EAAK,CAACk5B,OAAM5jC,SAAQ2wG,MAAOylM,EAAO/0C,QAAOj8O,aAE9C1a,EAAIu3I,SACN,CArBI+0J,CAAOtsS,EAAK,CAACk5B,OAAM5jC,SAAQ82S,QAAOV,QAAOr2M,OAAMshK,QAAO/F,SACtDkL,GAAW97P,GAEf,CAoBA,SAASqsS,GAAarsS,EAAK1K,EAAQi3S,GACjC,MAAM,SAACn8H,EAAA,OAAUkgF,GAAUh7P,EAC3B,IAAIo7E,GAAQ,EACR87N,GAAW,EAEfxsS,EAAIm7P,YACJ,IAAK,MAAMnqF,KAAWZ,EAAU,CAC9B,MAAM,MAAC//G,EAAA,IAAOphB,GAAO+hI,EACfgxF,EAAa1R,EAAOjgM,GACpBsuN,EAAYruB,EAAO05C,GAAgB35O,EAAOphB,EAAKqhN,IACjD5/K,GACF1wE,EAAIu7P,OAAOyG,EAAWhpQ,EAAGgpQ,EAAWhoM,GACpC0W,GAAQ,IAER1wE,EAAIw7P,OAAOwG,EAAWhpQ,EAAGuzS,GACzBvsS,EAAIw7P,OAAOwG,EAAWhpQ,EAAGgpQ,EAAWhoM,IAEtCwyO,IAAal3S,EAAOsuS,YAAY5jS,EAAKgxK,EAAS,CAAC/1B,KAAMuxJ,IACjDA,EACFxsS,EAAIs7P,YAEJt7P,EAAIw7P,OAAOmjB,EAAU3lR,EAAGuzS,EAE5B,CAEAvsS,EAAIw7P,OAAOlmQ,EAAOo7E,QAAQ13E,EAAGuzS,GAC7BvsS,EAAIs7P,YACJt7P,EAAIg4P,MACN,CAEA,SAASp1N,GAAK5iC,EAAKkrQ,GACjB,MAAM,KAAChyO,EAAI,OAAE5jC,EAAM,SAAEolB,EAAQ,MAAEurF,EAAK,MAAE0wJ,GAASuU,EACzC96F,ENlED,SAAmBl3I,EAAM5jC,EAAQolB,GACtC,MAAM01J,EAAWl3I,EAAKk3I,SAChBkgF,EAASp3N,EAAKo3N,OACdm8C,EAAUn3S,EAAOg7P,OACjBj5O,EAAQ,GAEd,IAAK,MAAM25J,KAAWZ,EAAU,CAC9B,IAAI,MAAC//G,EAAA,IAAOphB,GAAO+hI,EACnB/hI,EAAM+6P,GAAgB35O,EAAOphB,EAAKqhN,GAElC,MAAM7wH,EAASsqK,GAAWrvR,EAAU41O,EAAOjgM,GAAQigM,EAAOrhN,GAAM+hI,EAAQ7gD,MAExE,IAAK76H,EAAO86K,SAAU,CAGpB/4J,EAAMliB,KAAK,CACTO,OAAQs7K,EACR17K,OAAQmqI,EACRpvE,MAAOigM,EAAOjgM,GACdphB,IAAKqhN,EAAOrhN,KAEd,SAIF,MAAMy9P,EAAiBpkC,GAAehzQ,EAAQmqI,GAE9C,IAAK,MAAMktK,KAAOD,EAAgB,CAChC,MAAME,EAAY7C,GAAWrvR,EAAU+xR,EAAQE,EAAIt8O,OAAQo8O,EAAQE,EAAI19P,KAAM09P,EAAIx8K,MAC3E08K,EAAchlC,GAAc72F,EAASs/E,EAAQs8C,GAEnD,IAAK,MAAME,KAAcD,EACvBx1R,EAAMliB,KAAK,CACTO,OAAQo3S,EACRx3S,OAAQq3S,EACRt8O,MAAO,CACL,CAAC31C,GAAWuvR,GAASxqK,EAAQmtK,EAAW,QAASv6R,KAAK+tB,MAExD6O,IAAK,CACH,CAACv0B,GAAWuvR,GAASxqK,EAAQmtK,EAAW,MAAOv6R,KAAK8tB,OAI5D,CACF,CACA,OAAO9oB,CACT,CMoBmB4tR,CAAU/rQ,EAAM5jC,EAAQolB,GAEzC,IAAK,MAAOhlB,OAAQsoE,EAAK1oE,OAAQq3S,EAAG,MAAEt8O,EAAK,IAAEphB,KAAQmhI,EAAU,CAC7D,MAAOzkG,OAAO,gBAACyqF,EAAkBnwD,GAAS,CAAC,GAAKjoC,EAC1C+uO,GAAsB,IAAXz3S,EAEjB0K,EAAImpJ,OACJnpJ,EAAImsN,UAAY/1D,EAEhB42I,GAAWhtS,EAAK22P,EAAOo2C,GAAYhD,GAAWrvR,EAAU21C,EAAOphB,IAE/DjvC,EAAIm7P,YAEJ,MAAMqxC,IAAatzQ,EAAK0qQ,YAAY5jS,EAAKg+D,GAEzC,IAAImyD,EACJ,GAAI48K,EAAU,CACRP,EACFxsS,EAAIs7P,YAEJ2xC,GAAmBjtS,EAAK1K,EAAQ25C,EAAKv0B,GAGvC,MAAMwyR,IAAe53S,EAAOsuS,YAAY5jS,EAAK2sS,EAAK,CAAC1xJ,KAAMuxJ,EAAUtyN,SAAS,IAC5Ei2C,EAAOq8K,GAAYU,EACd/8K,GACH88K,GAAmBjtS,EAAK1K,EAAQ+6D,EAAO31C,GAI3C1a,EAAIs7P,YACJt7P,EAAI4iC,KAAKutF,EAAO,UAAY,WAE5BnwH,EAAIu3I,SACN,CACF,CAEA,SAASy1J,GAAWhtS,EAAK22P,EAAOl3H,GAC9B,MAAM,IAAC31B,EAAA,OAAK+jC,GAAU8oH,EAAMjC,MAAMif,WAC5B,SAACj5P,EAAA,MAAU21C,EAAA,IAAOphB,GAAOwwF,GAAU,CAAC,EACzB,MAAb/kH,IACF1a,EAAIm7P,YACJn7P,EAAIs4I,KAAKjoF,EAAOy5C,EAAK76D,EAAMohB,EAAOw9E,EAAS/jC,GAC3C9pG,EAAIg4P,OAER,CAEA,SAASi1C,GAAmBjtS,EAAK1K,EAAQsmQ,EAAOlhP,GAC9C,MAAMyyR,EAAoB73S,EAAO60P,YAAYyR,EAAOlhP,GAChDyyR,GACFntS,EAAIw7P,OAAO2xC,EAAkBn0S,EAAGm0S,EAAkBnzO,EAEtD,CC7GA,IAAAp1C,GAAe,CACb9gB,GAAI,SAEJspS,mBAAAA,CAAoB14C,EAAOozC,EAAO7pS,GAChC,MAAM+4C,GAAS09M,EAAMnlP,KAAKomP,UAAY,IAAIlgQ,OACpCs3I,EAAU,GAChB,IAAIl3C,EAAMtgG,EAAG2jC,EAAMxjC,EAEnB,IAAKH,EAAI,EAAGA,EAAIyhD,IAASzhD,EACvBsgG,EAAO6+J,EAAMoc,eAAev7Q,GAC5B2jC,EAAO28D,EAAKsqB,QACZzqH,EAAS,KAELwjC,GAAQA,EAAKj7B,SAAWi7B,aAAgB6rQ,KAC1CrvS,EAAS,CACPgpO,QAASg2B,EAAM0mB,iBAAiB7lR,GAChCqvB,MAAOrvB,EACPqtC,KAAM8nQ,GAAYxxQ,EAAM3jC,EAAGyhD,GAC3B09M,QACA9D,KAAM/6J,EAAKyrI,WAAWrjO,QAAQi4P,UAC9BS,MAAO9gK,EAAK43K,OACZv0O,SAIJ28D,EAAKw3M,QAAU33S,EACfq3I,EAAQ53I,KAAKO,GAGf,IAAKH,EAAI,EAAGA,EAAIyhD,IAASzhD,EACvBG,EAASq3I,EAAQx3I,GACZG,IAA0B,IAAhBA,EAAOktC,OAItBltC,EAAOktC,KAAO2nQ,GAAex9J,EAASx3I,EAAG0I,EAAQusS,WAErD,EAEA8C,UAAAA,CAAW54C,EAAOozC,EAAO7pS,GACvB,MAAMqsQ,EAA4B,eAArBrsQ,EAAQsvS,SACf3gC,EAAWlY,EAAMksB,+BACjBvrL,EAAOq/J,EAAMif,UACnB,IAAK,IAAIp+Q,EAAIq3Q,EAASn3Q,OAAS,EAAGF,GAAK,IAAKA,EAAG,CAC7C,MAAMG,EAASk3Q,EAASr3Q,GAAG83S,QACtB33S,IAILA,EAAOwjC,KAAK0lP,oBAAoBvpL,EAAM3/F,EAAOk7P,MACzC0Z,GAAQ50Q,EAAOktC,MACjBspQ,GAAUx3C,EAAM10P,IAAKtK,EAAQ2/F,GAEjC,CACF,EAEAm4M,kBAAAA,CAAmB94C,EAAOozC,EAAO7pS,GAC/B,GAAyB,uBAArBA,EAAQsvS,SACV,OAGF,MAAM3gC,EAAWlY,EAAMksB,+BACvB,IAAK,IAAIrrR,EAAIq3Q,EAASn3Q,OAAS,EAAGF,GAAK,IAAKA,EAAG,CAC7C,MAAMG,EAASk3Q,EAASr3Q,GAAG83S,QAEvB/C,GAAiB50S,IACnBw2S,GAAUx3C,EAAM10P,IAAKtK,EAAQg/P,EAAMif,UAEvC,CACF,EAEA85B,iBAAAA,CAAkB/4C,EAAOllN,EAAMvxC,GAC7B,MAAMvI,EAAS85C,EAAKqmD,KAAKw3M,QAEpB/C,GAAiB50S,IAAgC,sBAArBuI,EAAQsvS,UAIzCrB,GAAUx3C,EAAM10P,IAAKtK,EAAQg/P,EAAMif,UACrC,EAEA1iD,SAAU,CACRu5E,WAAW,EACX+C,SAAU,sBCvEd,MAAMG,GAAaA,CAACC,EAAW7xH,KAC7B,IAAI,UAAC8xH,EAAY9xH,EAAA,SAAU+xH,EAAW/xH,GAAY6xH,EAOlD,OALIA,EAAUG,gBACZF,EAAYv7R,KAAK8tB,IAAIytQ,EAAW9xH,GAChC+xH,EAAWF,EAAUI,iBAAmB17R,KAAK8tB,IAAI0tQ,EAAU/xH,IAGtD,CACL+xH,WACAD,YACAI,WAAY37R,KAAK+tB,IAAI07I,EAAU8xH,GAChC,EAKI,MAAMK,WAAepqS,GAK1BxN,WAAAA,CAAYknB,GACVywG,QAEAh+G,KAAKk+R,QAAS,EAGdl+R,KAAKm+R,eAAiB,GAKtBn+R,KAAKo+R,aAAe,KAGpBp+R,KAAKq+R,cAAe,EAEpBr+R,KAAK0kP,MAAQn3O,EAAOm3O,MACpB1kP,KAAK/R,QAAUsf,EAAOtf,QACtB+R,KAAKhQ,IAAMud,EAAOvd,IAClBgQ,KAAKs+R,iBAAcvvS,EACnBiR,KAAKu+R,iBAAcxvS,EACnBiR,KAAKw+R,gBAAazvS,EAClBiR,KAAK6iN,eAAY9zN,EACjBiR,KAAKmxK,cAAWpiL,EAChBiR,KAAK85F,SAAM/qG,EACXiR,KAAK69H,YAAS9uI,EACdiR,KAAK5S,UAAO2B,EACZiR,KAAK3S,WAAQ0B,EACbiR,KAAK+zF,YAAShlG,EACdiR,KAAK8zF,WAAQ/kG,EACbiR,KAAK06Q,cAAW3rR,EAChBiR,KAAK8B,cAAW/S,EAChBiR,KAAK8lM,YAAS/2M,EACdiR,KAAK6yQ,cAAW9jR,CAClB,CAEAgC,MAAAA,CAAOogL,EAAU0xC,EAAW2yC,GAC1Bx1P,KAAKmxK,SAAWA,EAChBnxK,KAAK6iN,UAAYA,EACjB7iN,KAAK06Q,SAAWllB,EAEhBx1P,KAAKq8Q,gBACLr8Q,KAAKy+R,cACLz+R,KAAKu9Q,KACP,CAEAlB,aAAAA,GACMr8Q,KAAKmoQ,gBACPnoQ,KAAK8zF,MAAQ9zF,KAAKmxK,SAClBnxK,KAAK5S,KAAO4S,KAAK06Q,SAASttR,KAC1B4S,KAAK3S,MAAQ2S,KAAK8zF,QAElB9zF,KAAK+zF,OAAS/zF,KAAK6iN,UACnB7iN,KAAK85F,IAAM95F,KAAK06Q,SAAS5gL,IACzB95F,KAAK69H,OAAS79H,KAAK+zF,OAEvB,CAEA0qM,WAAAA,GACE,MAAMd,EAAY39R,KAAK/R,QAAQ4oC,QAAU,CAAC,EAC1C,IAAIynQ,EAAc12R,GAAK+1R,EAAU7vB,eAAgB,CAAC9tQ,KAAK0kP,OAAQ1kP,OAAS,GAEpE29R,EAAU54S,SACZu5S,EAAcA,EAAYv5S,QAAQw2C,GAASoiQ,EAAU54S,OAAOw2C,EAAMv7B,KAAK0kP,MAAMnlP,SAG3Eo+R,EAAUnlQ,OACZ8lQ,EAAcA,EAAY9lQ,MAAK,CAACr3B,EAAGC,IAAMu8R,EAAUnlQ,KAAKr3B,EAAGC,EAAGpB,KAAK0kP,MAAMnlP,SAGvES,KAAK/R,QAAQi8E,SACfo0N,EAAYp0N,UAGdlqE,KAAKs+R,YAAcA,CACrB,CAEA/gB,GAAAA,GACE,MAAM,QAACtvR,EAAO,IAAE+B,GAAOgQ,KAMvB,IAAK/R,EAAQ4lH,QAEX,YADA7zG,KAAK8zF,MAAQ9zF,KAAK+zF,OAAS,GAI7B,MAAM4pM,EAAY1vS,EAAQ4oC,OACpB6nQ,EAAYjwC,GAAOkvC,EAAU5hF,MAC7BjwC,EAAW4yH,EAAU7gP,KACrBihO,EAAc9+Q,KAAK2+R,uBACnB,SAACd,EAAQ,WAAEG,GAAcN,GAAWC,EAAW7xH,GAErD,IAAIh4E,EAAOC,EAEX/jG,EAAI+rN,KAAO2iF,EAAU7zS,OAEjBmV,KAAKmoQ,gBACPr0K,EAAQ9zF,KAAKmxK,SACbp9E,EAAS/zF,KAAK4+R,SAAS9f,EAAahzG,EAAU+xH,EAAUG,GAAc,KAEtEjqM,EAAS/zF,KAAK6iN,UACd/uH,EAAQ9zF,KAAK6+R,SAAS/f,EAAa4f,EAAWb,EAAUG,GAAc,IAGxEh+R,KAAK8zF,MAAQzxF,KAAK8tB,IAAI2jE,EAAO7lG,EAAQkjL,UAAYnxK,KAAKmxK,UACtDnxK,KAAK+zF,OAAS1xF,KAAK8tB,IAAI4jE,EAAQ9lG,EAAQ40N,WAAa7iN,KAAK6iN,UAC3D,CAKA+7E,QAAAA,CAAS9f,EAAahzG,EAAU+xH,EAAUG,GACxC,MAAM,IAAChuS,EAAG,SAAEmhL,EAAUljL,SAAU4oC,QAAQ,QAACgwI,KAAa7mK,KAChD8+R,EAAW9+R,KAAKm+R,eAAiB,GAEjCK,EAAax+R,KAAKw+R,WAAa,CAAC,GAChCx6M,EAAag6M,EAAan3H,EAChC,IAAIk4H,EAAcjgB,EAElB9uR,EAAIyhL,UAAY,OAChBzhL,EAAIgsN,aAAe,SAEnB,IAAIwO,GAAO,EACP1wH,GAAO9V,EAgBX,OAfAhkF,KAAKs+R,YAAY34S,SAAQ,CAACqoR,EAAYzoR,KACpC,MAAM4xQ,EAAY0mC,EAAY/xH,EAAW,EAAK97K,EAAIssN,YAAY0xD,EAAW9qN,MAAM4wC,OAErE,IAANvuG,GAAWi5S,EAAWA,EAAW/4S,OAAS,GAAK0xQ,EAAY,EAAItwF,EAAUsK,KAC3E4tH,GAAe/6M,EACfw6M,EAAWA,EAAW/4S,QAAUF,EAAI,EAAI,EAAI,IAAM,EAClDu0G,GAAO9V,EACPwmI,KAGFs0E,EAASv5S,GAAK,CAAC6H,KAAM,EAAG0sG,MAAK0wH,MAAK12H,MAAOqjK,EAAWpjK,OAAQiqM,GAE5DQ,EAAWA,EAAW/4S,OAAS,IAAM0xQ,EAAYtwF,CAAA,IAG5Ck4H,CACT,CAEAF,QAAAA,CAAS/f,EAAa4f,EAAWb,EAAUmB,GACzC,MAAM,IAAChvS,EAAG,UAAE6yN,EAAW50N,SAAU4oC,QAAQ,QAACgwI,KAAa7mK,KACjD8+R,EAAW9+R,KAAKm+R,eAAiB,GACjCI,EAAcv+R,KAAKu+R,YAAc,GACjCU,EAAcp8E,EAAYi8D,EAEhC,IAAIogB,EAAar4H,EACbs4H,EAAkB,EAClBC,EAAmB,EAEnBhyS,EAAO,EACPm4F,EAAM,EAyBV,OAvBAvlF,KAAKs+R,YAAY34S,SAAQ,CAACqoR,EAAYzoR,KACpC,MAAM,UAAC4xQ,EAAS,WAAE6mC,GA8VxB,SAA2BH,EAAUa,EAAW1uS,EAAKg+Q,EAAYgxB,GAC/D,MAAM7nC,EAKR,SAA4B6W,EAAY6vB,EAAUa,EAAW1uS,GAC3D,IAAIqvS,EAAiBrxB,EAAW9qN,KAC5Bm8O,GAA4C,kBAAnBA,IAC3BA,EAAiBA,EAAejxS,QAAO,CAAC+S,EAAGC,IAAMD,EAAE1b,OAAS2b,EAAE3b,OAAS0b,EAAIC,KAE7E,OAAOy8R,EAAYa,EAAU7gP,KAAO,EAAK7tD,EAAIssN,YAAY+iF,GAAgBvrM,KAC3E,CAXoBwrM,CAAmBtxB,EAAY6vB,EAAUa,EAAW1uS,GAChEguS,EAYR,SAA6BgB,EAAahxB,EAAYuxB,GACpD,IAAIvB,EAAagB,EACc,kBAApBhxB,EAAW9qN,OACpB86O,EAAawB,GAA0BxxB,EAAYuxB,IAErD,OAAOvB,CACT,CAlBqByB,CAAoBT,EAAahxB,EAAY0wB,EAAU16M,YAC1E,MAAO,CAACmzK,YAAW6mC,aACrB,CAlWsC0B,CAAkB7B,EAAUa,EAAW1uS,EAAKg+Q,EAAYgxB,GAGpFz5S,EAAI,GAAK65S,EAAmBpB,EAAa,EAAIn3H,EAAUo4H,IACzDC,GAAcC,EAAkBt4H,EAChC03H,EAAYp5S,KAAK,CAAC2uG,MAAOqrM,EAAiBprM,OAAQqrM,IAClDhyS,GAAQ+xS,EAAkBt4H,EAC1BthF,IACA45M,EAAkBC,EAAmB,GAIvCN,EAASv5S,GAAK,CAAC6H,OAAM0sG,IAAKslM,EAAkB75M,MAAKuO,MAAOqjK,EAAWpjK,OAAQiqM,GAG3EmB,EAAkB98R,KAAK+tB,IAAI+uQ,EAAiBhoC,GAC5CioC,GAAoBpB,EAAan3H,CAAA,IAGnCq4H,GAAcC,EACdZ,EAAYp5S,KAAK,CAAC2uG,MAAOqrM,EAAiBprM,OAAQqrM,IAE3CF,CACT,CAEAS,cAAAA,GACE,IAAK3/R,KAAK/R,QAAQ4lH,QAChB,OAEF,MAAMirK,EAAc9+Q,KAAK2+R,uBAClBR,eAAgBW,EAAU7wS,SAAS,MAACwqJ,EAAO5hH,QAAQ,QAACgwI,GAAQ,IAAEyiD,IAAQtpN,KACvE4/R,EAAY9oC,GAAcxtC,EAAKtpN,KAAK5S,KAAM4S,KAAK8zF,OACrD,GAAI9zF,KAAKmoQ,eAAgB,CACvB,IAAI39C,EAAM,EACNp9N,EAAOgzP,GAAe3nG,EAAOz4I,KAAK5S,KAAOy5K,EAAS7mK,KAAK3S,MAAQ2S,KAAKw+R,WAAWh0E,IACnF,IAAK,MAAMq1E,KAAUf,EACft0E,IAAQq1E,EAAOr1E,MACjBA,EAAMq1E,EAAOr1E,IACbp9N,EAAOgzP,GAAe3nG,EAAOz4I,KAAK5S,KAAOy5K,EAAS7mK,KAAK3S,MAAQ2S,KAAKw+R,WAAWh0E,KAEjFq1E,EAAO/lM,KAAO95F,KAAK85F,IAAMglL,EAAcj4G,EACvCg5H,EAAOzyS,KAAOwyS,EAAU1oC,WAAW0oC,EAAU52S,EAAEoE,GAAOyyS,EAAO/rM,OAC7D1mG,GAAQyyS,EAAO/rM,MAAQ+yE,MAEpB,CACL,IAAIthF,EAAM,EACNuU,EAAMsmJ,GAAe3nG,EAAOz4I,KAAK85F,IAAMglL,EAAcj4G,EAAS7mK,KAAK69H,OAAS79H,KAAKu+R,YAAYh5M,GAAKwO,QACtG,IAAK,MAAM8rM,KAAUf,EACfe,EAAOt6M,MAAQA,IACjBA,EAAMs6M,EAAOt6M,IACbuU,EAAMsmJ,GAAe3nG,EAAOz4I,KAAK85F,IAAMglL,EAAcj4G,EAAS7mK,KAAK69H,OAAS79H,KAAKu+R,YAAYh5M,GAAKwO,SAEpG8rM,EAAO/lM,IAAMA,EACb+lM,EAAOzyS,MAAQ4S,KAAK5S,KAAOy5K,EAC3Bg5H,EAAOzyS,KAAOwyS,EAAU1oC,WAAW0oC,EAAU52S,EAAE62S,EAAOzyS,MAAOyyS,EAAO/rM,OACpEgG,GAAO+lM,EAAO9rM,OAAS8yE,EAG7B,CAEAshG,YAAAA,GACE,MAAiC,QAA1BnoQ,KAAK/R,QAAQ6T,UAAgD,WAA1B9B,KAAK/R,QAAQ6T,QACzD,CAEAw4P,IAAAA,GACE,GAAIt6P,KAAK/R,QAAQ4lH,QAAS,CACxB,MAAM7jH,EAAMgQ,KAAKhQ,IACjB67P,GAAS77P,EAAKgQ,MAEdA,KAAK8/R,QAELh0C,GAAW97P,GAEf,CAKA8vS,KAAAA,GACE,MAAO7xS,QAAS+xD,EAAA,YAAMu+O,EAAA,WAAaC,EAAA,IAAYxuS,GAAOgQ,MAChD,MAACy4I,EAAO5hH,OAAQ8mQ,GAAa39O,EAC7B+/O,EAAe9+E,GAAShrH,MACxB2pM,EAAY9oC,GAAc92M,EAAKspK,IAAKtpN,KAAK5S,KAAM4S,KAAK8zF,OACpD4qM,EAAYjwC,GAAOkvC,EAAU5hF,OAC7B,QAACl1C,GAAW82H,EACZ7xH,EAAW4yH,EAAU7gP,KACrBmiP,EAAel0H,EAAW,EAChC,IAAItlC,EAEJxmI,KAAKgjR,YAGLhzR,EAAIyhL,UAAYmuH,EAAUnuH,UAAU,QACpCzhL,EAAIgsN,aAAe,SACnBhsN,EAAIi/N,UAAY,GAChBj/N,EAAI+rN,KAAO2iF,EAAU7zS,OAErB,MAAM,SAACgzS,EAAA,UAAUD,EAAA,WAAWI,GAAcN,GAAWC,EAAW7xH,GAyE1Dq8F,EAAenoQ,KAAKmoQ,eACpB2W,EAAc9+Q,KAAK2+R,sBAEvBn4J,EADE2hI,EACO,CACPn/Q,EAAGo3P,GAAe3nG,EAAOz4I,KAAK5S,KAAOy5K,EAAS7mK,KAAK3S,MAAQmxS,EAAW,IACtEx0O,EAAGhqD,KAAK85F,IAAM+sE,EAAUi4G,EACxB51P,KAAM,GAGC,CACPlgC,EAAGgX,KAAK5S,KAAOy5K,EACf78G,EAAGo2L,GAAe3nG,EAAOz4I,KAAK85F,IAAMglL,EAAcj4G,EAAS7mK,KAAK69H,OAAS0gK,EAAY,GAAGxqM,QACxF7qE,KAAM,GAIVouO,GAAsBt3P,KAAKhQ,IAAKgwD,EAAKigP,eAErC,MAAMj8M,EAAag6M,EAAan3H,EAChC7mK,KAAKs+R,YAAY34S,SAAQ,CAACqoR,EAAYzoR,KACpCyK,EAAIi9P,YAAc+gB,EAAWD,UAC7B/9Q,EAAImsN,UAAY6xD,EAAWD,UAE3B,MAAMrkB,EAAY15P,EAAIssN,YAAY0xD,EAAW9qN,MAAM4wC,MAC7C29E,EAAYmuH,EAAUnuH,UAAUu8F,EAAWv8F,YAAcu8F,EAAWv8F,UAAYksH,EAAUlsH,YAC1F39E,EAAQ+pM,EAAWmC,EAAet2C,EACxC,IAAI1gQ,EAAIw9I,EAAOx9I,EACXghE,EAAIw8E,EAAOx8E,EAEf41O,EAAU5oC,SAASh3P,KAAK8zF,OAEpBq0K,EACE5iR,EAAI,GAAKyD,EAAI8qG,EAAQ+yE,EAAU7mK,KAAK3S,QACtC28D,EAAIw8E,EAAOx8E,GAAKg6B,EAChBwiD,EAAOt9G,OACPlgC,EAAIw9I,EAAOx9I,EAAIo3P,GAAe3nG,EAAOz4I,KAAK5S,KAAOy5K,EAAS7mK,KAAK3S,MAAQmxS,EAAWh4J,EAAOt9G,QAElF3jC,EAAI,GAAKykE,EAAIg6B,EAAahkF,KAAK69H,SACxC70I,EAAIw9I,EAAOx9I,EAAIA,EAAIu1S,EAAY/3J,EAAOt9G,MAAM4qE,MAAQ+yE,EACpDrgC,EAAOt9G,OACP8gC,EAAIw8E,EAAOx8E,EAAIo2L,GAAe3nG,EAAOz4I,KAAK85F,IAAMglL,EAAcj4G,EAAS7mK,KAAK69H,OAAS0gK,EAAY/3J,EAAOt9G,MAAM6qE,SAYhH,GA1HoB,SAAS/qG,EAAGghE,EAAGgkN,GACnC,GAAIlvO,MAAM++P,IAAaA,GAAY,GAAK/+P,MAAM8+P,IAAcA,EAAY,EACtE,OAIF5tS,EAAImpJ,OAEJ,MAAM81E,EAAYgsB,GAAe+yB,EAAW/+C,UAAW,GAUvD,GATAj/N,EAAImsN,UAAY8+B,GAAe+yB,EAAW7xD,UAAW4jF,GACrD/vS,EAAIqjS,QAAUp4C,GAAe+yB,EAAWqlB,QAAS,QACjDrjS,EAAI2yR,eAAiB1nC,GAAe+yB,EAAW2U,eAAgB,GAC/D3yR,EAAIuiS,SAAWt3C,GAAe+yB,EAAWukB,SAAU,SACnDviS,EAAIi/N,UAAYA,EAChBj/N,EAAIi9P,YAAchS,GAAe+yB,EAAW/gB,YAAa8yC,GAEzD/vS,EAAI0yR,YAAYznC,GAAe+yB,EAAWkyB,SAAU,KAEhDvC,EAAUG,cAAe,CAG3B,MAAMqC,EAAc,CAClBn1C,OAAQ4yC,EAAYv7R,KAAK+9R,MAAQ,EACjCr1C,WAAYijB,EAAWjjB,WACvBnsE,SAAUovF,EAAWpvF,SACrB8sE,YAAaz8B,GAETo+C,EAAUuyB,EAAU3oC,MAAMjuQ,EAAG60S,EAAW,GAI9CpzC,GAAgBz6P,EAAKmwS,EAAa9yB,EAHlBrjN,EAAIg2O,EAGgCrC,EAAUI,iBAAmBF,OAC5E,CAGL,MAAMwC,EAAUr2O,EAAI3nD,KAAK+tB,KAAK07I,EAAW8xH,GAAa,EAAG,GACnD0C,EAAWV,EAAU1oC,WAAWluQ,EAAG60S,GACnC1hH,EAAeoyE,GAAcyf,EAAW7xF,cAE9CnsL,EAAIm7P,YAEAvmQ,OAAOu2B,OAAOghK,GAAc3tD,MAAK11F,GAAW,IAANA,IACxC80N,GAAmB59P,EAAK,CACtBhH,EAAGs3S,EACHt2O,EAAGq2O,EACH58R,EAAGo6R,EACH3iP,EAAG0iP,EACH5yC,OAAQ7uE,IAGVnsL,EAAIs4I,KAAKg4J,EAAUD,EAASxC,EAAUD,GAGxC5tS,EAAI4iC,OACc,IAAdq8L,GACFj/N,EAAIs2J,SAIRt2J,EAAIu3I,SACN,CAuDEg5J,CAFcX,EAAU52S,EAAEA,GAELghE,EAAGgkN,GAExBhlR,E1DxVgBw3S,EAAC/nJ,EAAoCrrJ,EAAcC,EAAei8N,IAE/E7wE,KADO6wE,EAAM,OAAS,SACJj8N,EAAkB,WAAVorJ,GAAsBrrJ,EAAOC,GAAS,EAAID,E0DsVnEozS,CAAO/uH,EAAWzoL,EAAI60S,EAAWmC,EAAc73B,EAAen/Q,EAAI8qG,EAAQ9zF,KAAK3S,MAAO2yD,EAAKspK,KAvDhF,SAAStgO,EAAGghE,EAAGgkN,GAC9B1gB,GAAWt9P,EAAKg+Q,EAAW9qN,KAAMl6D,EAAGghE,EAAKg0O,EAAa,EAAIU,EAAW,CACnEjyC,cAAeuhB,EAAWz/C,OAC1B98C,UAAWmuH,EAAUnuH,UAAUu8F,EAAWv8F,YAE9C,CAqDE2qC,CAASwjF,EAAU52S,EAAEA,GAAIghE,EAAGgkN,GAExB7F,EACF3hI,EAAOx9I,GAAK8qG,EAAQ+yE,OACf,GAA+B,kBAApBmnG,EAAW9qN,KAAmB,CAC9C,MAAMq8O,EAAiBb,EAAU16M,WACjCwiD,EAAOx8E,GAAKw1O,GAA0BxxB,EAAYuxB,GAAkB14H,OAEpErgC,EAAOx8E,GAAKg6B,KAIhByzK,GAAqBz3P,KAAKhQ,IAAKgwD,EAAKigP,cACtC,CAKAjd,SAAAA,GACE,MAAMhjO,EAAOhgD,KAAK/R,QACZ2wR,EAAY5+N,EAAK8nE,MACjB24K,EAAYhyC,GAAOmwB,EAAU7iE,MAC7B2kF,EAAelyC,GAAUowB,EAAU/3G,SAEzC,IAAK+3G,EAAU/qK,QACb,OAGF,MAAM+rL,EAAY9oC,GAAc92M,EAAKspK,IAAKtpN,KAAK5S,KAAM4S,KAAK8zF,OACpD9jG,EAAMgQ,KAAKhQ,IACX8R,EAAW88Q,EAAU98Q,SACrBk+R,EAAeS,EAAU5iP,KAAO,EAChC8iP,EAA6BD,EAAa5mM,IAAMkmM,EACtD,IAAIh2O,EAIA58D,EAAO4S,KAAK5S,KACZ+jL,EAAWnxK,KAAK8zF,MAEpB,GAAI9zF,KAAKmoQ,eAEPh3F,EAAW9uK,KAAK+tB,OAAOpwB,KAAKw+R,YAC5Bx0O,EAAIhqD,KAAK85F,IAAM6mM,EACfvzS,EAAOgzP,GAAepgM,EAAKy4F,MAAOrrJ,EAAM4S,KAAK3S,MAAQ8jL,OAChD,CAEL,MAAM0xC,EAAY7iN,KAAKu+R,YAAYnwS,QAAO,CAACw6L,EAAK/qI,IAASx7C,KAAK+tB,IAAIw4J,EAAK/qI,EAAKk2C,SAAS,GACrF/pC,EAAI22O,EAA6BvgD,GAAepgM,EAAKy4F,MAAOz4I,KAAK85F,IAAK95F,KAAK69H,OAASglF,EAAY7iK,EAAKnpB,OAAOgwI,QAAU7mK,KAAK2+R,uBAK7H,MAAM31S,EAAIo3P,GAAet+O,EAAU1U,EAAMA,EAAO+jL,GAGhDnhL,EAAIyhL,UAAYmuH,EAAUnuH,UAAU0uE,GAAmBr+O,IACvD9R,EAAIgsN,aAAe,SACnBhsN,EAAIi9P,YAAc2xB,EAAU3oL,MAC5BjmG,EAAImsN,UAAYyiE,EAAU3oL,MAC1BjmG,EAAI+rN,KAAO0kF,EAAU51S,OAErByiQ,GAAWt9P,EAAK4uR,EAAU17N,KAAMl6D,EAAGghE,EAAGy2O,EACxC,CAKA9B,mBAAAA,GACE,MAAM/f,EAAY5+Q,KAAK/R,QAAQ65H,MACzB24K,EAAYhyC,GAAOmwB,EAAU7iE,MAC7B2kF,EAAelyC,GAAUowB,EAAU/3G,SACzC,OAAO+3G,EAAU/qK,QAAU4sL,EAAUz8M,WAAa08M,EAAa3sM,OAAS,CAC1E,CAKA6sM,gBAAAA,CAAiB53S,EAAGghE,GAClB,IAAIzkE,EAAGs7S,EAAQx7L,EAEf,GAAI85I,GAAWn2P,EAAGgX,KAAK5S,KAAM4S,KAAK3S,QAC7B8xP,GAAWn1L,EAAGhqD,KAAK85F,IAAK95F,KAAK69H,QAGhC,IADAx4B,EAAKrlG,KAAKm+R,eACL54S,EAAI,EAAGA,EAAI8/G,EAAG5/G,SAAUF,EAG3B,GAFAs7S,EAASx7L,EAAG9/G,GAER45P,GAAWn2P,EAAG63S,EAAOzzS,KAAMyzS,EAAOzzS,KAAOyzS,EAAO/sM,QAC/CqrJ,GAAWn1L,EAAG62O,EAAO/mM,IAAK+mM,EAAO/mM,IAAM+mM,EAAO9sM,QAEjD,OAAO/zF,KAAKs+R,YAAY/4S,GAK9B,OAAO,IACT,CAMAu7S,WAAAA,CAAYvqS,GACV,MAAMypD,EAAOhgD,KAAK/R,QAClB,IAoDJ,SAAoB0F,EAAMqsD,GACxB,IAAc,cAATrsD,GAAiC,aAATA,KAAyBqsD,EAAKumM,SAAWvmM,EAAK+gP,SACzE,OAAO,EAET,GAAI/gP,EAAKzrD,UAAqB,UAATZ,GAA6B,YAATA,GACvC,OAAO,EAET,OAAO,CACT,CA5DSqtS,CAAWzqS,EAAE5C,KAAMqsD,GACtB,OAIF,MAAMihP,EAAcjhS,KAAK4gS,iBAAiBrqS,EAAEvN,EAAGuN,EAAEyzD,GAEjD,GAAe,cAAXzzD,EAAE5C,MAAmC,aAAX4C,EAAE5C,KAAqB,CACnD,MAAMq4P,EAAWhsP,KAAKo+R,aAChB8C,EApfOC,EAAChgS,EAAGC,IAAY,OAAND,GAAoB,OAANC,GAAcD,EAAEs6O,eAAiBr6O,EAAEq6O,cAAgBt6O,EAAEyT,QAAUxT,EAAEwT,MAofrFusR,CAAWn1C,EAAUi1C,GAClCj1C,IAAak1C,GACft5R,GAAKo4C,EAAK+gP,QAAS,CAACxqS,EAAGy1P,EAAUhsP,MAAOA,MAG1CA,KAAKo+R,aAAe6C,EAEhBA,IAAgBC,GAClBt5R,GAAKo4C,EAAKumM,QAAS,CAAChwP,EAAG0qS,EAAajhS,MAAOA,KAE/C,MAAWihS,GACTr5R,GAAKo4C,EAAKzrD,QAAS,CAACgC,EAAG0qS,EAAajhS,MAAOA,KAE/C,EAyBF,SAASw/R,GAA0BxxB,EAAYuxB,GAE7C,OAAOA,GADavxB,EAAW9qN,KAAO8qN,EAAW9qN,KAAKz9D,OAAS,EAEjE,CAYA,IAAA27S,GAAe,CACbttS,GAAI,SAMJutS,SAAUpD,GAEV59O,KAAAA,CAAMqkM,EAAOozC,EAAO7pS,GAClB,MAAM4/Q,EAASnpB,EAAMmpB,OAAS,IAAIowB,GAAO,CAACjuS,IAAK00P,EAAM10P,IAAK/B,UAASy2P,UACnE4tB,GAAQj2P,UAAUqoO,EAAOmpB,EAAQ5/Q,GACjCqkR,GAAQ+B,OAAO3vB,EAAOmpB,EACxB,EAEAzgM,IAAAA,CAAKs3K,GACH4tB,GAAQiC,UAAU7vB,EAAOA,EAAMmpB,eACxBnpB,EAAMmpB,MACf,EAKAqO,YAAAA,CAAax3B,EAAOozC,EAAO7pS,GACzB,MAAM4/Q,EAASnpB,EAAMmpB,OACrByE,GAAQj2P,UAAUqoO,EAAOmpB,EAAQ5/Q,GACjC4/Q,EAAO5/Q,QAAUA,CACnB,EAIAwvR,WAAAA,CAAY/4B,GACV,MAAMmpB,EAASnpB,EAAMmpB,OACrBA,EAAO4wB,cACP5wB,EAAO8xB,gBACT,EAGA2B,UAAAA,CAAW58C,EAAOllN,GACXA,EAAK8vP,QACR5qC,EAAMmpB,OAAOizB,YAAYthQ,EAAK3zC,MAElC,EAEAo1N,SAAU,CACRptG,SAAS,EACT/xG,SAAU,MACV22I,MAAO,SACPo6H,UAAU,EACV3oM,SAAS,EACT47H,OAAQ,IAGRvxM,OAAAA,CAAQgC,EAAGy3Q,EAAYH,GACrB,MAAMj5P,EAAQo5P,EAAWvyB,aACnBryI,EAAKykK,EAAOnpB,MACdt7I,EAAGgiK,iBAAiBx2P,IACtBw0F,EAAG8uC,KAAKtjI,GACRo5P,EAAWz/C,QAAS,IAEpBnlH,EAAGs+C,KAAK9yI,GACRo5P,EAAWz/C,QAAS,EAExB,EAEAg4B,QAAS,KACTw6C,QAAS,KAETlqQ,OAAQ,CACNo/D,MAAQjmG,GAAQA,EAAI00P,MAAMz2P,QAAQgoG,MAClC4nM,SAAU,GACVh3H,QAAS,GAYTinG,cAAAA,CAAeppB,GACb,MAAMiB,EAAWjB,EAAMnlP,KAAKomP,UACrB9uN,QAAQ,cAACinQ,EAAA,WAAe/yC,EAAU,UAAEt5E,EAAA,MAAWx7E,EAAA,gBAAOsrM,EAAe,aAAEplH,IAAiBuoE,EAAMmpB,OAAO5/Q,QAE5G,OAAOy2P,EAAMmY,yBAAyBliP,KAAKkrE,IACzC,MAAMlqB,EAAQkqB,EAAKyrI,WAAWklC,SAASsnC,EAAgB,OAAI/uS,GACrD28P,EAAc8C,GAAU7yL,EAAM+vL,aAEpC,MAAO,CACLxoM,KAAMyiM,EAAS9/J,EAAKjxE,OAAOmiB,MAC3BolL,UAAWxgJ,EAAMyqF,gBACjB2nH,UAAW93K,EACXs4H,QAAS1oI,EAAK6oI,QACd2kE,QAAS13N,EAAM29L,eACf4mC,SAAUvkO,EAAM49L,WAChBopB,eAAgBhnN,EAAM69L,iBACtB+4B,SAAU52N,EAAM89L,gBAChBxqC,WAAYy8B,EAAY53J,MAAQ43J,EAAY33J,QAAU,EACtDk5J,YAAatxL,EAAMy1G,YACnB25E,WAAYA,GAAcpvL,EAAMovL,WAChCnsE,SAAUjjH,EAAMijH,SAChBnN,UAAWA,GAAa91G,EAAM81G,UAC9B0K,aAAcolH,IAAoBplH,GAAgBxgH,EAAMwgH,cAGxDs/D,aAAc51J,EAAKjxE,MACpB,GACA5U,KACL,GAGF8nH,MAAO,CACL7xB,MAAQjmG,GAAQA,EAAI00P,MAAMz2P,QAAQgoG,MAClC4d,SAAS,EACT/xG,SAAU,SACVohD,KAAM,KAIVuzG,YAAa,CACX+wF,YAAc/+P,IAAUA,EAAKqyC,WAAW,MACxCjE,OAAQ,CACN2wN,YAAc/+P,IAAU,CAAC,iBAAkB,SAAU,QAAQ8F,SAAS9F,MCtsBrE,MAAM+4S,WAAc3tS,GAIzBxN,WAAAA,CAAYknB,GACVywG,QAEAh+G,KAAK0kP,MAAQn3O,EAAOm3O,MACpB1kP,KAAK/R,QAAUsf,EAAOtf,QACtB+R,KAAKhQ,IAAMud,EAAOvd,IAClBgQ,KAAKyhS,cAAW1yS,EAChBiR,KAAK85F,SAAM/qG,EACXiR,KAAK69H,YAAS9uI,EACdiR,KAAK5S,UAAO2B,EACZiR,KAAK3S,WAAQ0B,EACbiR,KAAK8zF,WAAQ/kG,EACbiR,KAAK+zF,YAAShlG,EACdiR,KAAK8B,cAAW/S,EAChBiR,KAAK8lM,YAAS/2M,EACdiR,KAAK6yQ,cAAW9jR,CAClB,CAEAgC,MAAAA,CAAOogL,EAAU0xC,GACf,MAAM7iK,EAAOhgD,KAAK/R,QAKlB,GAHA+R,KAAK5S,KAAO,EACZ4S,KAAK85F,IAAM,GAEN95C,EAAK6zD,QAER,YADA7zG,KAAK8zF,MAAQ9zF,KAAK+zF,OAAS/zF,KAAK3S,MAAQ2S,KAAK69H,OAAS,GAIxD79H,KAAK8zF,MAAQ9zF,KAAK3S,MAAQ8jL,EAC1BnxK,KAAK+zF,OAAS/zF,KAAK69H,OAASglF,EAE5B,MAAMk/D,EAAYt6R,GAAQu4D,EAAKkD,MAAQlD,EAAKkD,KAAKz9D,OAAS,EAC1Dua,KAAKyhS,SAAWjzC,GAAUxuM,EAAK6mH,SAC/B,MAAMg1C,EAAWkmE,EAAYtzB,GAAOzuM,EAAK+7J,MAAM/3H,WAAahkF,KAAKyhS,SAAS1tM,OAEtE/zF,KAAKmoQ,eACPnoQ,KAAK+zF,OAAS8nH,EAEd77M,KAAK8zF,MAAQ+nH,CAEjB,CAEAssD,YAAAA,GACE,MAAMnqN,EAAMh+C,KAAK/R,QAAQ6T,SACzB,MAAe,QAARk8C,GAAyB,WAARA,CAC1B,CAEA0jP,SAAAA,CAAUx+R,GACR,MAAM,IAAC42F,EAAA,KAAK1sG,EAAA,OAAMywI,EAAA,MAAQxwI,EAAA,QAAOY,GAAW+R,KACtCy4I,EAAQxqJ,EAAQwqJ,MACtB,IACI04B,EAAU8xG,EAAQC,EADlBtkG,EAAW,EAmBf,OAhBI5+K,KAAKmoQ,gBACP8a,EAAS7iC,GAAe3nG,EAAOrrJ,EAAMC,GACrC61R,EAASppL,EAAM52F,EACfiuK,EAAW9jL,EAAQD,IAEM,SAArBa,EAAQ6T,UACVmhR,EAAS71R,EAAO8V,EAChBggR,EAAS9iC,GAAe3nG,EAAO5a,EAAQ/jC,GACvC8kF,GAAiB,GAANI,KAEXikG,EAAS51R,EAAQ6V,EACjBggR,EAAS9iC,GAAe3nG,EAAO3+C,EAAK+jC,GACpC+gD,EAAgB,GAALI,IAEb7N,EAAWtzC,EAAS/jC,GAEf,CAACmpL,SAAQC,SAAQ/xG,WAAUyN,WACpC,CAEA07E,IAAAA,GACE,MAAMtqQ,EAAMgQ,KAAKhQ,IACXgwD,EAAOhgD,KAAK/R,QAElB,IAAK+xD,EAAK6zD,QACR,OAGF,MAAM8tL,EAAWlzC,GAAOzuM,EAAK+7J,MAEvB74M,EADay+R,EAAS39M,WACA,EAAIhkF,KAAKyhS,SAAS3nM,KACxC,OAACmpL,EAAA,OAAQC,EAAA,SAAQ/xG,EAAA,SAAUyN,GAAY5+K,KAAK0hS,UAAUx+R,GAE5DoqP,GAAWt9P,EAAKgwD,EAAKkD,KAAM,EAAG,EAAGy+O,EAAU,CACzC1rM,MAAOj2C,EAAKi2C,MACZk7E,WACAyN,WACAnN,UAAW0uE,GAAmBngM,EAAKy4F,OACnCujE,aAAc,SACdwxC,YAAa,CAACy1B,EAAQC,IAE1B,EAeF,IAAA0e,GAAe,CACb9tS,GAAI,QAMJutS,SAAUG,GAEVnhP,KAAAA,CAAMqkM,EAAOozC,EAAO7pS,IArBtB,SAAqBy2P,EAAOk6B,GAC1B,MAAM92J,EAAQ,IAAI05K,GAAM,CACtBxxS,IAAK00P,EAAM10P,IACX/B,QAAS2wR,EACTl6B,UAGF4tB,GAAQj2P,UAAUqoO,EAAO58H,EAAO82J,GAChCtM,GAAQ+B,OAAO3vB,EAAO58H,GACtB48H,EAAMm9C,WAAa/5K,CACrB,CAYIg6K,CAAYp9C,EAAOz2P,EACrB,EAEAm/E,IAAAA,CAAKs3K,GACH,MAAMm9C,EAAan9C,EAAMm9C,WACzBvvB,GAAQiC,UAAU7vB,EAAOm9C,UAClBn9C,EAAMm9C,UACf,EAEA3lB,YAAAA,CAAax3B,EAAOozC,EAAO7pS,GACzB,MAAM65H,EAAQ48H,EAAMm9C,WACpBvvB,GAAQj2P,UAAUqoO,EAAO58H,EAAO75H,GAChC65H,EAAM75H,QAAUA,CAClB,EAEAgzN,SAAU,CACRxoE,MAAO,SACP5kC,SAAS,EACTkoG,KAAM,CACJjW,OAAQ,QAEV+sE,UAAU,EACVhsG,QAAS,GACT/kK,SAAU,MACVohD,KAAM,GACN4iJ,OAAQ,KAGVi+E,cAAe,CACb9tL,MAAO,SAGTwgE,YAAa,CACX+wF,aAAa,EACbC,YAAY,IChKhB,MAAM9sO,GAAM,IAAI6kD,QAEhB,IAAAuiO,GAAe,CACbjuS,GAAI,WAEJusD,KAAAA,CAAMqkM,EAAOozC,EAAO7pS,GAClB,MAAM65H,EAAQ,IAAI05K,GAAM,CACtBxxS,IAAK00P,EAAM10P,IACX/B,UACAy2P,UAGF4tB,GAAQj2P,UAAUqoO,EAAO58H,EAAO75H,GAChCqkR,GAAQ+B,OAAO3vB,EAAO58H,GACtBntG,GAAIna,IAAIkkP,EAAO58H,EACjB,EAEA16C,IAAAA,CAAKs3K,GACH4tB,GAAQiC,UAAU7vB,EAAO/pO,GAAIriB,IAAIosP,IACjC/pO,GAAIsC,OAAOynO,EACb,EAEAw3B,YAAAA,CAAax3B,EAAOozC,EAAO7pS,GACzB,MAAM65H,EAAQntG,GAAIriB,IAAIosP,GACtB4tB,GAAQj2P,UAAUqoO,EAAO58H,EAAO75H,GAChC65H,EAAM75H,QAAUA,CAClB,EAEAgzN,SAAU,CACRxoE,MAAO,SACP5kC,SAAS,EACTkoG,KAAM,CACJjW,OAAQ,UAEV+sE,UAAU,EACVhsG,QAAS,EACT/kK,SAAU,MACVohD,KAAM,GACN4iJ,OAAQ,MAGVi+E,cAAe,CACb9tL,MAAO,SAGTwgE,YAAa,CACX+wF,aAAa,EACbC,YAAY,IClChB,MAAMu6C,GAAc,CAIlBC,OAAAA,CAAQhkQ,GACN,IAAKA,EAAMx4C,OACT,OAAO,EAGT,IAAIF,EAAGqD,EACHs5S,EAAO,IAAI9iO,IACXpV,EAAI,EACJhjB,EAAQ,EAEZ,IAAKzhD,EAAI,EAAGqD,EAAMq1C,EAAMx4C,OAAQF,EAAIqD,IAAOrD,EAAG,CAC5C,MAAM4yH,EAAKl6E,EAAM14C,GAAG0F,QACpB,GAAIktH,GAAMA,EAAGigK,WAAY,CACvB,MAAMp6N,EAAMm6D,EAAGggK,kBACf+pB,EAAKv+Q,IAAIq6B,EAAIh1D,GACbghE,GAAKhM,EAAIgM,IACPhjB,EAEN,CAEA,MAAMm7P,EAAW,IAAID,GAAM9zS,QAAO,CAAC+S,EAAGC,IAAMD,EAAIC,IAAK8gS,EAAKrkP,KAE1D,MAAO,CACL70D,EAAGm5S,EACHn4O,EAAGA,EAAIhjB,EAEX,EAKAgrO,OAAAA,CAAQ/zO,EAAOmkQ,GACb,IAAKnkQ,EAAMx4C,OACT,OAAO,EAGT,IAGIF,EAAGqD,EAAKy5S,EAHRr5S,EAAIo5S,EAAcp5S,EAClBghE,EAAIo4O,EAAcp4O,EAClBsnN,EAAc72P,OAAOmiO,kBAGzB,IAAKr3P,EAAI,EAAGqD,EAAMq1C,EAAMx4C,OAAQF,EAAIqD,IAAOrD,EAAG,CAC5C,MAAM4yH,EAAKl6E,EAAM14C,GAAG0F,QACpB,GAAIktH,GAAMA,EAAGigK,WAAY,CACvB,MACM32Q,EAAI88O,GAAsB6jD,EADjBjqL,EAAGo5J,kBAGd9vQ,EAAI6vQ,IACNA,EAAc7vQ,EACd4gS,EAAiBlqL,GAGvB,CAEA,GAAIkqL,EAAgB,CAClB,MAAMC,EAAKD,EAAelqB,kBAC1BnvR,EAAIs5S,EAAGt5S,EACPghE,EAAIs4O,EAAGt4O,EAGT,MAAO,CACLhhE,IACAghE,IAEJ,GAIF,SAASu4O,GAAah1P,EAAMi1P,GAU1B,OATIA,IACE/6S,GAAQ+6S,GAEVh7S,MAAMlB,UAAUnB,KAAKC,MAAMmoD,EAAMi1P,GAEjCj1P,EAAKpoD,KAAKq9S,IAIPj1P,CACT,CAQA,SAASk1P,GAAclvS,GACrB,OAAoB,kBAARA,GAAoBA,aAAe+iB,SAAW/iB,EAAI1M,QAAQ,OAAS,EACtE0M,EAAI+T,MAAM,MAEZ/T,CACT,CASA,SAASmvS,GAAkBh+C,EAAOnpN,GAChC,MAAM,QAACtwC,EAAO,aAAEwwP,EAAA,MAAc7mO,GAAS2mB,EACjC+1L,EAAaozB,EAAMoc,eAAerlB,GAAcnqB,YAChD,MAACv6L,EAAA,MAAOxwC,GAAS+qO,EAAWgyC,iBAAiB1uP,GAEnD,MAAO,CACL8vO,QACA3tN,QACAzmC,OAAQghO,EAAWkxC,UAAU5tP,GAC7BloB,IAAKg4P,EAAMnlP,KAAKomP,SAASlK,GAAcl8O,KAAKqV,GAC5C+tR,eAAgBp8S,EAChB4pH,QAASmhH,EAAW0uC,aACpB8D,UAAWlvP,EACX6mO,eACAxwP,UAEJ,CAKA,SAAS23S,GAAe5qJ,EAAS/pJ,GAC/B,MAAM+B,EAAMgoJ,EAAQ0sG,MAAM10P,KACpB,KAACiwB,EAAI,OAAE4iR,EAAA,MAAQ/6K,GAASkwB,GACxB,SAAC6lJ,EAAA,UAAUD,GAAa3vS,EACxB60S,EAAWr0C,GAAOxgQ,EAAQ60S,UAC1BrC,EAAYhyC,GAAOxgQ,EAAQwyS,WAC3BsC,EAAat0C,GAAOxgQ,EAAQ80S,YAC5BC,EAAiBl7K,EAAMriI,OACvBw9S,EAAkBJ,EAAOp9S,OACzBy9S,EAAoBjjR,EAAKx6B,OAEzBohL,EAAU2nF,GAAUvgQ,EAAQ44K,SAClC,IAAI9yE,EAAS8yE,EAAQ9yE,OACjBD,EAAQ,EAGRqvM,EAAqBljR,EAAK7xB,QAAO,CAAC44C,EAAOo8P,IAAap8P,EAAQo8P,EAASC,OAAO59S,OAAS29S,EAASjpK,MAAM10I,OAAS29S,EAASz7J,MAAMliJ,QAAQ,GAQ1I,GAPA09S,GAAsBnrJ,EAAQsrJ,WAAW79S,OAASuyJ,EAAQurJ,UAAU99S,OAEhEu9S,IACFjvM,GAAUivM,EAAiBvC,EAAUz8M,YACnCg/M,EAAiB,GAAK/0S,EAAQu1S,aAC/Bv1S,EAAQw1S,mBAEPN,EAAoB,CAGtBpvM,GAAUmvM,GADaj1S,EAAQy1S,cAAgBrhS,KAAK+tB,IAAIwtQ,EAAWkF,EAAS9+M,YAAc8+M,EAAS9+M,aAEjGm/M,EAAqBD,GAAqBJ,EAAS9+M,YACnDm/M,EAAqB,GAAKl1S,EAAQ01S,YAElCV,IACFlvM,GAAU9lG,EAAQ21S,gBACjBX,EAAkBF,EAAW/+M,YAC5Bi/M,EAAkB,GAAKh1S,EAAQ41S,eAInC,IAAIC,EAAe,EACnB,MAAMC,EAAe,SAAS76Q,GAC5B4qE,EAAQzxF,KAAK+tB,IAAI0jE,EAAO9jG,EAAIssN,YAAYpzL,GAAM4qE,MAAQgwM,EACxD,EA+BA,OA7BA9zS,EAAImpJ,OAEJnpJ,EAAI+rN,KAAO0kF,EAAU51S,OACrBge,GAAKmvI,EAAQlwB,MAAOi8K,GAGpB/zS,EAAI+rN,KAAO+mF,EAASj4S,OACpBge,GAAKmvI,EAAQsrJ,WAAW50S,OAAOspJ,EAAQurJ,WAAYQ,GAGnDD,EAAe71S,EAAQy1S,cAAiB7F,EAAW,EAAI5vS,EAAQklR,WAAc,EAC7EtqQ,GAAKoX,GAAOmjR,IACVv6R,GAAKu6R,EAASC,OAAQU,GACtBl7R,GAAKu6R,EAASjpK,MAAO4pK,GACrBl7R,GAAKu6R,EAASz7J,MAAOo8J,EAAA,IAIvBD,EAAe,EAGf9zS,EAAI+rN,KAAOgnF,EAAWl4S,OACtBge,GAAKmvI,EAAQ6qJ,OAAQkB,GAErB/zS,EAAIu3I,UAGJzzC,GAAS+yE,EAAQ/yE,MAEV,CAACA,QAAOC,SACjB,CAyBA,SAASiwM,GAAgBt/C,EAAOz2P,EAAS4vD,EAAMomP,GAC7C,MAAM,EAACj7S,EAAA,MAAG8qG,GAASj2C,GACZi2C,MAAOowM,EAAYvgC,WAAW,KAACv2Q,EAAI,MAAEC,IAAUq3P,EACtD,IAAIy/C,EAAS,SAcb,MAZe,WAAXF,EACFE,EAASn7S,IAAMoE,EAAOC,GAAS,EAAI,OAAS,QACnCrE,GAAK8qG,EAAQ,EACtBqwM,EAAS,OACAn7S,GAAKk7S,EAAapwM,EAAQ,IACnCqwM,EAAS,SAtBb,SAA6BA,EAAQz/C,EAAOz2P,EAAS4vD,GACnD,MAAM,EAAC70D,EAAA,MAAG8qG,GAASj2C,EACbumP,EAAQn2S,EAAQo2S,UAAYp2S,EAAQq2S,aAC1C,MAAe,SAAXH,GAAqBn7S,EAAI8qG,EAAQswM,EAAQ1/C,EAAM5wJ,OAIpC,UAAXqwM,GAAsBn7S,EAAI8qG,EAAQswM,EAAQ,QAA9C,CAGF,CAeMG,CAAoBJ,EAAQz/C,EAAOz2P,EAAS4vD,KAC9CsmP,EAAS,UAGJA,CACT,CAKA,SAASK,GAAmB9/C,EAAOz2P,EAAS4vD,GAC1C,MAAMomP,EAASpmP,EAAKomP,QAAUh2S,EAAQg2S,QA/CxC,SAAyBv/C,EAAO7mM,GAC9B,MAAM,EAACmM,EAAA,OAAG+pC,GAAUl2C,EAEpB,OAAImM,EAAI+pC,EAAS,EACR,MACE/pC,EAAK06L,EAAM3wJ,OAASA,EAAS,EAC/B,SAEF,QACT,CAsCkD0wM,CAAgB//C,EAAO7mM,GAEvE,MAAO,CACLsmP,OAAQtmP,EAAKsmP,QAAUl2S,EAAQk2S,QAAUH,GAAgBt/C,EAAOz2P,EAAS4vD,EAAMomP,GAC/EA,SAEJ,CA4BA,SAASS,GAAmBz2S,EAAS4vD,EAAM8mP,EAAWjgD,GACpD,MAAM,UAAC2/C,EAAS,aAAEC,EAAA,aAAc15C,GAAgB38P,GAC1C,OAACk2S,EAAA,OAAQF,GAAUU,EACnBC,EAAiBP,EAAYC,GAC7B,QAACz2C,EAAO,SAAEG,EAAQ,WAAEF,EAAA,YAAYC,GAAeQ,GAAc3D,GAEnE,IAAI5hQ,EAhCN,SAAgB60D,EAAMsmP,GACpB,IAAI,EAACn7S,EAAA,MAAG8qG,GAASj2C,EAMjB,MALe,UAAXsmP,EACFn7S,GAAK8qG,EACe,WAAXqwM,IACTn7S,GAAM8qG,EAAQ,GAET9qG,CACT,CAwBU67S,CAAOhnP,EAAMsmP,GACrB,MAAMn6O,EAvBR,SAAgBnM,EAAMomP,EAAQW,GAE5B,IAAI,EAAC56O,EAAA,OAAG+pC,GAAUl2C,EAQlB,MAPe,QAAXomP,EACFj6O,GAAK46O,EAEL56O,GADoB,WAAXi6O,EACJlwM,EAAS6wM,EAER7wM,EAAS,EAEV/pC,CACT,CAYY86O,CAAOjnP,EAAMomP,EAAQW,GAc/B,MAZe,WAAXX,EACa,SAAXE,EACFn7S,GAAK47S,EACe,UAAXT,IACTn7S,GAAK47S,GAEa,SAAXT,EACTn7S,GAAKqZ,KAAK+tB,IAAIy9N,EAASC,GAAcu2C,EACjB,UAAXF,IACTn7S,GAAKqZ,KAAK+tB,IAAI49N,EAAUD,GAAes2C,GAGlC,CACLr7S,EAAGk2P,GAAYl2P,EAAG,EAAG07P,EAAM5wJ,MAAQj2C,EAAKi2C,OACxC9pC,EAAGk1L,GAAYl1L,EAAG,EAAG06L,EAAM3wJ,OAASl2C,EAAKk2C,QAE7C,CAEA,SAASgxM,GAAY/sJ,EAASS,EAAOxqJ,GACnC,MAAM44K,EAAU2nF,GAAUvgQ,EAAQ44K,SAElC,MAAiB,WAAVpuB,EACHT,EAAQhvJ,EAAIgvJ,EAAQlkD,MAAQ,EAClB,UAAV2kD,EACET,EAAQhvJ,EAAIgvJ,EAAQlkD,MAAQ+yE,EAAQx5K,MACpC2qJ,EAAQhvJ,EAAI69K,EAAQz5K,IAC5B,CAKA,SAAS43S,GAAwBp9R,GAC/B,OAAO26R,GAAa,GAAIE,GAAc76R,GACxC,CAUA,SAASq9R,GAAkB79P,EAAWtT,GACpC,MAAMkzN,EAAWlzN,GAAWA,EAAQq8E,SAAWr8E,EAAQq8E,QAAQ6nC,SAAWlkH,EAAQq8E,QAAQ6nC,QAAQ5wG,UAClG,OAAO4/M,EAAW5/M,EAAU4/M,SAASA,GAAY5/M,CACnD,CAEA,MAAM89P,GAAmB,CAEvBC,YAAarnQ,GACbgqF,KAAAA,CAAMs9K,GACJ,GAAIA,EAAa3/S,OAAS,EAAG,CAC3B,MAAM81C,EAAO6pQ,EAAa,GACpBvuQ,EAAS0E,EAAKmpN,MAAMnlP,KAAKs3B,OACzBwuQ,EAAaxuQ,EAASA,EAAOpxC,OAAS,EAE5C,GAAIua,MAAQA,KAAK/R,SAAiC,YAAtB+R,KAAK/R,QAAQ6wB,KACvC,OAAOyc,EAAK40E,QAAQp5E,OAAS,GACxB,GAAIwE,EAAKxE,MACd,OAAOwE,EAAKxE,MACP,GAAIsuQ,EAAa,GAAK9pQ,EAAKuoO,UAAYuhC,EAC5C,OAAOxuQ,EAAO0E,EAAKuoO,WAIvB,MAAO,EACT,EACAwhC,WAAYxnQ,GAGZwlQ,WAAYxlQ,GAGZynQ,YAAaznQ,GACb/G,KAAAA,CAAMyuQ,GACJ,GAAIxlS,MAAQA,KAAK/R,SAAiC,YAAtB+R,KAAK/R,QAAQ6wB,KACvC,OAAO0mR,EAAYzuQ,MAAQ,KAAOyuQ,EAAY7C,gBAAkB6C,EAAY7C,eAG9E,IAAI5rQ,EAAQyuQ,EAAYr1L,QAAQp5E,OAAS,GAErCA,IACFA,GAAS,MAEX,MAAMxwC,EAAQi/S,EAAY7C,eAI1B,OAHK7nD,GAAcv0P,KACjBwwC,GAASxwC,GAEJwwC,CACT,EACA0uQ,UAAAA,CAAWD,GACT,MACMv3S,EADOu3S,EAAY9gD,MAAMoc,eAAe0kC,EAAY/pD,cACrCnqB,WAAWklC,SAASgvC,EAAY1hC,WACrD,MAAO,CACL1yF,YAAanjL,EAAQmjL,YACrBhrB,gBAAiBn4J,EAAQm4J,gBACzBslG,YAAaz9P,EAAQy9P,YACrB6N,WAAYtrQ,EAAQsrQ,WACpBC,iBAAkBvrQ,EAAQurQ,iBAC1Br9E,aAAc,EAElB,EACAupH,cAAAA,GACE,OAAO1lS,KAAK/R,QAAQ03S,SACtB,EACAC,eAAAA,CAAgBJ,GACd,MACMv3S,EADOu3S,EAAY9gD,MAAMoc,eAAe0kC,EAAY/pD,cACrCnqB,WAAWklC,SAASgvC,EAAY1hC,WACrD,MAAO,CACL/Y,WAAY98P,EAAQ88P,WACpBnsE,SAAU3wL,EAAQ2wL,SAEtB,EACAinH,WAAY/nQ,GAGZylQ,UAAWzlQ,GAGXgoQ,aAAchoQ,GACd+kQ,OAAQ/kQ,GACRioQ,YAAajoQ,IAYf,SAASkoQ,GAA2B5+P,EAAW3+C,EAAMuH,EAAKoP,GACxD,MAAM/P,EAAS+3C,EAAU3+C,GAAMxB,KAAK+I,EAAKoP,GAEzC,MAAsB,qBAAX/P,EACF61S,GAAiBz8S,GAAMxB,KAAK+I,EAAKoP,GAGnC/P,CACT,CAEO,MAAMo3J,WAAgB5yJ,GAO3BxN,WAAAA,CAAYknB,GACVywG,QAEAh+G,KAAKo7D,QAAU,EACfp7D,KAAKu6P,QAAU,GACfv6P,KAAKimS,oBAAiBl3S,EACtBiR,KAAK0iJ,WAAQ3zJ,EACbiR,KAAKkmS,uBAAoBn3S,EACzBiR,KAAKmmS,cAAgB,GACrBnmS,KAAKm8P,iBAAcptQ,EACnBiR,KAAKu/P,cAAWxwQ,EAChBiR,KAAK0kP,MAAQn3O,EAAOm3O,MACpB1kP,KAAK/R,QAAUsf,EAAOtf,QACtB+R,KAAKomS,gBAAar3S,EAClBiR,KAAK8nH,WAAQ/4H,EACbiR,KAAKsjS,gBAAav0S,EAClBiR,KAAKigB,UAAOlxB,EACZiR,KAAKujS,eAAYx0S,EACjBiR,KAAK6iS,YAAS9zS,EACdiR,KAAKmkS,YAASp1S,EACdiR,KAAKikS,YAASl1S,EACdiR,KAAKhX,OAAI+F,EACTiR,KAAKgqD,OAAIj7D,EACTiR,KAAK+zF,YAAShlG,EACdiR,KAAK8zF,WAAQ/kG,EACbiR,KAAKqmS,YAASt3S,EACdiR,KAAKsmS,YAASv3S,EAGdiR,KAAKumS,iBAAcx3S,EACnBiR,KAAKwmS,sBAAmBz3S,EACxBiR,KAAKymS,qBAAkB13S,CACzB,CAEA4vB,UAAAA,CAAW1wB,GACT+R,KAAK/R,QAAUA,EACf+R,KAAKkmS,uBAAoBn3S,EACzBiR,KAAKu/P,cAAWxwQ,CAClB,CAKAq1Q,kBAAAA,GACE,MAAMzF,EAAS3+P,KAAKkmS,kBAEpB,GAAIvnC,EACF,OAAOA,EAGT,MAAMja,EAAQ1kP,KAAK0kP,MACbz2P,EAAU+R,KAAK/R,QAAQyC,WAAWsP,KAAK07M,cACvC17J,EAAO/xD,EAAQs+C,SAAWm4M,EAAMz2P,QAAQ+sG,WAAa/sG,EAAQ45P,WAC7DA,EAAa,IAAIgU,GAAW77P,KAAK0kP,MAAO1kM,GAK9C,OAJIA,EAAKmvM,aACPnvP,KAAKkmS,kBAAoBthT,OAAO24O,OAAOsqB,IAGlCA,CACT,CAKAnsC,UAAAA,GACE,OAAO17M,KAAKu/P,WACZv/P,KAAKu/P,UAtLqBzmI,EAsLW94H,KAAK0kP,MAAMhpC,aAtLd1jE,EAsL4Bh4I,KAtLnBolS,EAsLyBplS,KAAKmmS,cArLpEt2S,GAAcipI,EAAQ,CAC3Bkf,UACAotJ,eACAzxS,KAAM,cAJV,IAA8BmlI,EAAQkf,EAASotJ,CAuL7C,CAEAsB,QAAAA,CAAS5yQ,EAAS7lC,GAChB,MAAM,UAACm5C,GAAan5C,EAEdk3S,EAAca,GAA2B5+P,EAAW,cAAepnC,KAAM8zB,GACzEg0F,EAAQk+K,GAA2B5+P,EAAW,QAASpnC,KAAM8zB,GAC7DwxQ,EAAaU,GAA2B5+P,EAAW,aAAcpnC,KAAM8zB,GAE7E,IAAIqmG,EAAQ,GAKZ,OAJAA,EAAQooK,GAAapoK,EAAOsoK,GAAc0C,IAC1ChrK,EAAQooK,GAAapoK,EAAOsoK,GAAc36K,IAC1CqS,EAAQooK,GAAapoK,EAAOsoK,GAAc6C,IAEnCnrK,CACT,CAEAwsK,aAAAA,CAAcvB,EAAcn3S,GAC1B,OAAO+2S,GACLgB,GAA2B/3S,EAAQm5C,UAAW,aAAcpnC,KAAMolS,GAEtE,CAEAwB,OAAAA,CAAQxB,EAAcn3S,GACpB,MAAM,UAACm5C,GAAan5C,EACd44S,EAAY,GAgBlB,OAdAh+R,GAAKu8R,GAAetxQ,IAClB,MAAMsvQ,EAAW,CACfC,OAAQ,GACRlpK,MAAO,GACPwN,MAAO,IAEHm/J,EAAS7B,GAAkB79P,EAAWtT,GAC5CyuQ,GAAaa,EAASC,OAAQZ,GAAcuD,GAA2Bc,EAAQ,cAAe9mS,KAAM8zB,KACpGyuQ,GAAaa,EAASjpK,MAAO6rK,GAA2Bc,EAAQ,QAAS9mS,KAAM8zB,IAC/EyuQ,GAAaa,EAASz7J,MAAO86J,GAAcuD,GAA2Bc,EAAQ,aAAc9mS,KAAM8zB,KAElG+yQ,EAAU1hT,KAAKi+S,EAAA,IAGVyD,CACT,CAEAE,YAAAA,CAAa3B,EAAcn3S,GACzB,OAAO+2S,GACLgB,GAA2B/3S,EAAQm5C,UAAW,YAAapnC,KAAMolS,GAErE,CAGA4B,SAAAA,CAAU5B,EAAcn3S,GACtB,MAAM,UAACm5C,GAAan5C,EAEd63S,EAAeE,GAA2B5+P,EAAW,eAAgBpnC,KAAMolS,GAC3EvC,EAASmD,GAA2B5+P,EAAW,SAAUpnC,KAAMolS,GAC/DW,EAAcC,GAA2B5+P,EAAW,cAAepnC,KAAMolS,GAE/E,IAAIjrK,EAAQ,GAKZ,OAJAA,EAAQooK,GAAapoK,EAAOsoK,GAAcqD,IAC1C3rK,EAAQooK,GAAapoK,EAAOsoK,GAAcI,IAC1C1oK,EAAQooK,GAAapoK,EAAOsoK,GAAcsD,IAEnC5rK,CACT,CAKA8sK,YAAAA,CAAah5S,GACX,MAAMovC,EAASr9B,KAAKu6P,QACdh7P,EAAOS,KAAK0kP,MAAMnlP,KAClBgnS,EAAc,GACdC,EAAmB,GACnBC,EAAkB,GACxB,IACIlhT,EAAGqD,EADHw8S,EAAe,GAGnB,IAAK7/S,EAAI,EAAGqD,EAAMy0C,EAAO53C,OAAQF,EAAIqD,IAAOrD,EAC1C6/S,EAAajgT,KAAKu9S,GAAkB1iS,KAAK0kP,MAAOrnN,EAAO93C,KAyBzD,OArBI0I,EAAQlJ,SACVqgT,EAAeA,EAAargT,QAAO,CAACkG,EAAS2pB,EAAOnqB,IAAUwD,EAAQlJ,OAAOkG,EAAS2pB,EAAOnqB,EAAO8U,MAIlGtR,EAAQi5S,WACV9B,EAAeA,EAAa5sQ,MAAK,CAACr3B,EAAGC,IAAMnT,EAAQi5S,SAAS/lS,EAAGC,EAAG7B,MAIpEsJ,GAAKu8R,GAAetxQ,IAClB,MAAMgzQ,EAAS7B,GAAkBh3S,EAAQm5C,UAAWtT,GACpDyyQ,EAAYphT,KAAK6gT,GAA2Bc,EAAQ,aAAc9mS,KAAM8zB,IACxE0yQ,EAAiBrhT,KAAK6gT,GAA2Bc,EAAQ,kBAAmB9mS,KAAM8zB,IAClF2yQ,EAAgBthT,KAAK6gT,GAA2Bc,EAAQ,iBAAkB9mS,KAAM8zB,GAAA,IAGlF9zB,KAAKumS,YAAcA,EACnBvmS,KAAKwmS,iBAAmBA,EACxBxmS,KAAKymS,gBAAkBA,EACvBzmS,KAAKomS,WAAahB,EACXA,CACT,CAEAr0S,MAAAA,CAAO2wP,EAAS4tC,GACd,MAAMrhS,EAAU+R,KAAK/R,QAAQyC,WAAWsP,KAAK07M,cACvCr+K,EAASr9B,KAAKu6P,QACpB,IAAIlpI,EACA+zK,EAAe,GAEnB,GAAK/nQ,EAAO53C,OAML,CACL,MAAMqc,EAAWkgS,GAAY/zS,EAAQ6T,UAAU7a,KAAK+Y,KAAMq9B,EAAQr9B,KAAKimS,gBACvEb,EAAeplS,KAAKinS,aAAah5S,GAEjC+R,KAAK8nH,MAAQ9nH,KAAK0mS,SAAStB,EAAcn3S,GACzC+R,KAAKsjS,WAAatjS,KAAK2mS,cAAcvB,EAAcn3S,GACnD+R,KAAKigB,KAAOjgB,KAAK4mS,QAAQxB,EAAcn3S,GACvC+R,KAAKujS,UAAYvjS,KAAK+mS,aAAa3B,EAAcn3S,GACjD+R,KAAK6iS,OAAS7iS,KAAKgnS,UAAU5B,EAAcn3S,GAE3C,MAAM4vD,EAAO79C,KAAK0iJ,MAAQkgJ,GAAe5iS,KAAM/R,GACzCk5S,EAAkBviT,OAAOsyC,OAAO,CAAC,EAAGp1B,EAAU+7C,GAC9C8mP,EAAYH,GAAmBxkS,KAAK0kP,MAAOz2P,EAASk5S,GACpDC,EAAkB1C,GAAmBz2S,EAASk5S,EAAiBxC,EAAW3kS,KAAK0kP,OAErF1kP,KAAKmkS,OAASQ,EAAUR,OACxBnkS,KAAKikS,OAASU,EAAUV,OAExB5yK,EAAa,CACXj2D,QAAS,EACTpyE,EAAGo+S,EAAgBp+S,EACnBghE,EAAGo9O,EAAgBp9O,EACnB8pC,MAAOj2C,EAAKi2C,MACZC,OAAQl2C,EAAKk2C,OACbsyM,OAAQvkS,EAAS9Y,EACjBs9S,OAAQxkS,EAASkoD,QA9BE,IAAjBhqD,KAAKo7D,UACPi2D,EAAa,CACXj2D,QAAS,IAgCfp7D,KAAKmmS,cAAgBf,EACrBplS,KAAKu/P,cAAWxwQ,EAEZsiI,GACFrxH,KAAKokQ,qBAAqBrzQ,OAAOiP,KAAMqxH,GAGrCqwH,GAAWzzP,EAAQo5S,UACrBp5S,EAAQo5S,SAASpgT,KAAK+Y,KAAM,CAAC0kP,MAAO1kP,KAAK0kP,MAAO1sG,QAASh4I,KAAMsvR,UAEnE,CAEAgY,SAAAA,CAAUC,EAAcv3S,EAAK6tD,EAAM5vD,GACjC,MAAMu5S,EAAgBxnS,KAAKynS,iBAAiBF,EAAc1pP,EAAM5vD,GAEhE+B,EAAIw7P,OAAOg8C,EAAclpJ,GAAIkpJ,EAAcnpJ,IAC3CruJ,EAAIw7P,OAAOg8C,EAAchpJ,GAAIgpJ,EAAc7oJ,IAC3C3uJ,EAAIw7P,OAAOg8C,EAAcE,GAAIF,EAAcG,GAC7C,CAEAF,gBAAAA,CAAiBF,EAAc1pP,EAAM5vD,GACnC,MAAM,OAACk2S,EAAM,OAAEF,GAAUjkS,MACnB,UAACqkS,EAAA,aAAWz5C,GAAgB38P,GAC5B,QAAC4/P,EAAO,SAAEG,EAAQ,WAAEF,EAAA,YAAYC,GAAeQ,GAAc3D,IAC5D5hQ,EAAG4+S,EAAK59O,EAAG69O,GAAON,GACnB,MAACzzM,EAAA,OAAOC,GAAUl2C,EACxB,IAAIygG,EAAIE,EAAIkpJ,EAAIrpJ,EAAIM,EAAIgpJ,EAgDxB,MA9Ce,WAAX1D,GACFtlJ,EAAKkpJ,EAAO9zM,EAAS,EAEN,SAAXowM,GACF7lJ,EAAKspJ,EACLppJ,EAAKF,EAAK+lJ,EAGVhmJ,EAAKM,EAAK0lJ,EACVsD,EAAKhpJ,EAAK0lJ,IAEV/lJ,EAAKspJ,EAAM9zM,EACX0qD,EAAKF,EAAK+lJ,EAGVhmJ,EAAKM,EAAK0lJ,EACVsD,EAAKhpJ,EAAK0lJ,GAGZqD,EAAKppJ,IAGHE,EADa,SAAX2lJ,EACGyD,EAAMvlS,KAAK+tB,IAAIy9N,EAASC,GAAeu2C,EACxB,UAAXF,EACJyD,EAAM9zM,EAAQzxF,KAAK+tB,IAAI49N,EAAUD,GAAes2C,EAEhDrkS,KAAKqmS,OAGG,QAAXpC,GACF5lJ,EAAKwpJ,EACLlpJ,EAAKN,EAAKgmJ,EAGV/lJ,EAAKE,EAAK6lJ,EACVqD,EAAKlpJ,EAAK6lJ,IAEVhmJ,EAAKwpJ,EAAM9zM,EACX4qD,EAAKN,EAAKgmJ,EAGV/lJ,EAAKE,EAAK6lJ,EACVqD,EAAKlpJ,EAAK6lJ,GAEZsD,EAAKtpJ,GAEA,CAACC,KAAIE,KAAIkpJ,KAAIrpJ,KAAIM,KAAIgpJ,KAC9B,CAEA3kB,SAAAA,CAAUvvB,EAAIzjQ,EAAK/B,GACjB,MAAM65H,EAAQ9nH,KAAK8nH,MACbriI,EAASqiI,EAAMriI,OACrB,IAAIg7S,EAAW+C,EAAcj+S,EAE7B,GAAIE,EAAQ,CACV,MAAMm6S,EAAY9oC,GAAc7oQ,EAAQq7N,IAAKtpN,KAAKhX,EAAGgX,KAAK8zF,OAa1D,IAXA2/J,EAAGzqQ,EAAI+7S,GAAY/kS,KAAM/R,EAAQssR,WAAYtsR,GAE7C+B,EAAIyhL,UAAYmuH,EAAUnuH,UAAUxjL,EAAQssR,YAC5CvqR,EAAIgsN,aAAe,SAEnBykF,EAAYhyC,GAAOxgQ,EAAQwyS,WAC3B+C,EAAev1S,EAAQu1S,aAEvBxzS,EAAImsN,UAAYluN,EAAQ65S,WACxB93S,EAAI+rN,KAAO0kF,EAAU51S,OAEhBtF,EAAI,EAAGA,EAAIE,IAAUF,EACxByK,EAAIosN,SAASt0F,EAAMviI,GAAIq6S,EAAU52S,EAAEyqQ,EAAGzqQ,GAAIyqQ,EAAGzpM,EAAIy2O,EAAUz8M,WAAa,GACxEyvK,EAAGzpM,GAAKy2O,EAAUz8M,WAAaw/M,EAE3Bj+S,EAAI,IAAME,IACZguQ,EAAGzpM,GAAK/7D,EAAQw1S,kBAAoBD,GAI5C,CAKAuE,aAAAA,CAAc/3S,EAAKyjQ,EAAIluQ,EAAGq6S,EAAW3xS,GACnC,MAAMw3S,EAAazlS,KAAKumS,YAAYhhT,GAC9BqgT,EAAkB5lS,KAAKwmS,iBAAiBjhT,IACxC,UAACq4S,EAAA,SAAWC,GAAY5vS,EACxB60S,EAAWr0C,GAAOxgQ,EAAQ60S,UAC1BkF,EAASjD,GAAY/kS,KAAM,OAAQ/R,GACnCg6S,EAAYrI,EAAU52S,EAAEg/S,GACxBE,EAAUtK,EAAYkF,EAAS9+M,YAAc8+M,EAAS9+M,WAAa45M,GAAa,EAAI,EACpFuK,EAAS10C,EAAGzpM,EAAIk+O,EAEtB,GAAIj6S,EAAQ6vS,cAAe,CACzB,MAAMqC,EAAc,CAClBn1C,OAAQ3oP,KAAK8tB,IAAI0tQ,EAAUD,GAAa,EACxC7yC,WAAY66C,EAAgB76C,WAC5BnsE,SAAUgnH,EAAgBhnH,SAC1B8sE,YAAa,GAIT2hB,EAAUuyB,EAAU1oC,WAAW+wC,EAAWpK,GAAYA,EAAW,EACjEvwB,EAAU66B,EAASvK,EAAY,EAGrC5tS,EAAIi9P,YAAch/P,EAAQm6S,mBAC1Bp4S,EAAImsN,UAAYluN,EAAQm6S,mBACxB59C,GAAUx6P,EAAKmwS,EAAa9yB,EAASC,GAGrCt9Q,EAAIi9P,YAAcw4C,EAAWr0H,YAC7BphL,EAAImsN,UAAYspF,EAAWr/I,gBAC3BokG,GAAUx6P,EAAKmwS,EAAa9yB,EAASC,OAChC,CAELt9Q,EAAIi/N,UAAY7gK,GAASq3O,EAAW/5C,aAAerpP,KAAK+tB,OAAOxrC,OAAOu2B,OAAOsqR,EAAW/5C,cAAiB+5C,EAAW/5C,aAAe,EACnI17P,EAAIi9P,YAAcw4C,EAAWr0H,YAC7BphL,EAAI0yR,YAAY+iB,EAAWlsC,YAAc,IACzCvpQ,EAAI2yR,eAAiB8iB,EAAWjsC,kBAAoB,EAGpD,MAAM6uC,EAASzI,EAAU1oC,WAAW+wC,EAAWpK,GACzCyK,EAAS1I,EAAU1oC,WAAW0oC,EAAU3oC,MAAMgxC,EAAW,GAAIpK,EAAW,GACxE1hH,EAAeoyE,GAAck3C,EAAWtpH,cAE1Cv3L,OAAOu2B,OAAOghK,GAAc3tD,MAAK11F,GAAW,IAANA,KACxC9oC,EAAIm7P,YACJn7P,EAAImsN,UAAYluN,EAAQm6S,mBACxBx6C,GAAmB59P,EAAK,CACtBhH,EAAGq/S,EACHr+O,EAAGm+O,EACH1kS,EAAGo6R,EACH3iP,EAAG0iP,EACH5yC,OAAQ7uE,IAEVnsL,EAAI4iC,OACJ5iC,EAAIs2J,SAGJt2J,EAAImsN,UAAYspF,EAAWr/I,gBAC3Bp2J,EAAIm7P,YACJyC,GAAmB59P,EAAK,CACtBhH,EAAGs/S,EACHt+O,EAAGm+O,EAAS,EACZ1kS,EAAGo6R,EAAW,EACd3iP,EAAG0iP,EAAY,EACf5yC,OAAQ7uE,IAEVnsL,EAAI4iC,SAGJ5iC,EAAImsN,UAAYluN,EAAQm6S,mBACxBp4S,EAAIq9P,SAASg7C,EAAQF,EAAQtK,EAAUD,GACvC5tS,EAAIu4S,WAAWF,EAAQF,EAAQtK,EAAUD,GAEzC5tS,EAAImsN,UAAYspF,EAAWr/I,gBAC3Bp2J,EAAIq9P,SAASi7C,EAAQH,EAAS,EAAGtK,EAAW,EAAGD,EAAY,IAK/D5tS,EAAImsN,UAAYn8M,KAAKymS,gBAAgBlhT,EACvC,CAEAijT,QAAAA,CAAS/0C,EAAIzjQ,EAAK/B,GAChB,MAAM,KAACgyB,GAAQjgB,MACT,YAAC2jS,EAAA,UAAa8E,EAAA,cAAW/E,EAAA,UAAe9F,EAAA,SAAWC,EAAA,WAAU1qB,GAAcllR,EAC3E60S,EAAWr0C,GAAOxgQ,EAAQ60S,UAChC,IAAI4F,EAAiB5F,EAAS9+M,WAC1B2kN,EAAe,EAEnB,MAAM/I,EAAY9oC,GAAc7oQ,EAAQq7N,IAAKtpN,KAAKhX,EAAGgX,KAAK8zF,OAEpD80M,EAAiB,SAAS1/Q,GAC9Bl5B,EAAIosN,SAASlzL,EAAM02Q,EAAU52S,EAAEyqQ,EAAGzqQ,EAAI2/S,GAAel1C,EAAGzpM,EAAI0+O,EAAiB,GAC7Ej1C,EAAGzpM,GAAK0+O,EAAiB/E,CAC3B,EAEMkF,EAA0BjJ,EAAUnuH,UAAUg3H,GACpD,IAAIrF,EAAU0F,EAAW3uK,EAAO50I,EAAGoiE,EAAG4zL,EAAMuO,EAiB5C,IAfA95P,EAAIyhL,UAAYg3H,EAChBz4S,EAAIgsN,aAAe,SACnBhsN,EAAI+rN,KAAO+mF,EAASj4S,OAEpB4oQ,EAAGzqQ,EAAI+7S,GAAY/kS,KAAM6oS,EAAyB56S,GAGlD+B,EAAImsN,UAAYluN,EAAQ03S,UACxB98R,GAAK7I,KAAKsjS,WAAYsF,GAEtBD,EAAejF,GAA6C,UAA5BmF,EACd,WAAdJ,EAA0B5K,EAAW,EAAI1qB,EAAe0qB,EAAW,EAAI1qB,EACvE,EAGC5tR,EAAI,EAAGg2P,EAAOt7N,EAAKx6B,OAAQF,EAAIg2P,IAAQh2P,EAAG,CAc7C,IAbA69S,EAAWnjR,EAAK16B,GAChBujT,EAAY9oS,KAAKymS,gBAAgBlhT,GAEjCyK,EAAImsN,UAAY2sF,EAChBjgS,GAAKu6R,EAASC,OAAQuF,GAEtBzuK,EAAQipK,EAASjpK,MAEbupK,GAAiBvpK,EAAM10I,SACzBua,KAAK+nS,cAAc/3S,EAAKyjQ,EAAIluQ,EAAGq6S,EAAW3xS,GAC1Cy6S,EAAiBrmS,KAAK+tB,IAAI0yQ,EAAS9+M,WAAY45M,IAG5Cj2O,EAAI,EAAGmiM,EAAO3vH,EAAM10I,OAAQkiE,EAAImiM,IAAQniM,EAC3CihP,EAAezuK,EAAMxyE,IAErB+gP,EAAiB5F,EAAS9+M,WAG5Bn7E,GAAKu6R,EAASz7J,MAAOihK,EACvB,CAGAD,EAAe,EACfD,EAAiB5F,EAAS9+M,WAG1Bn7E,GAAK7I,KAAKujS,UAAWqF,GACrBn1C,EAAGzpM,GAAK25O,CACV,CAEAoF,UAAAA,CAAWt1C,EAAIzjQ,EAAK/B,GAClB,MAAM40S,EAAS7iS,KAAK6iS,OACdp9S,EAASo9S,EAAOp9S,OACtB,IAAIs9S,EAAYx9S,EAEhB,GAAIE,EAAQ,CACV,MAAMm6S,EAAY9oC,GAAc7oQ,EAAQq7N,IAAKtpN,KAAKhX,EAAGgX,KAAK8zF,OAa1D,IAXA2/J,EAAGzqQ,EAAI+7S,GAAY/kS,KAAM/R,EAAQ+6S,YAAa/6S,GAC9CwlQ,EAAGzpM,GAAK/7D,EAAQ21S,gBAEhB5zS,EAAIyhL,UAAYmuH,EAAUnuH,UAAUxjL,EAAQ+6S,aAC5Ch5S,EAAIgsN,aAAe,SAEnB+mF,EAAat0C,GAAOxgQ,EAAQ80S,YAE5B/yS,EAAImsN,UAAYluN,EAAQg7S,YACxBj5S,EAAI+rN,KAAOgnF,EAAWl4S,OAEjBtF,EAAI,EAAGA,EAAIE,IAAUF,EACxByK,EAAIosN,SAASymF,EAAOt9S,GAAIq6S,EAAU52S,EAAEyqQ,EAAGzqQ,GAAIyqQ,EAAGzpM,EAAI+4O,EAAW/+M,WAAa,GAC1EyvK,EAAGzpM,GAAK+4O,EAAW/+M,WAAa/1F,EAAQ41S,cAG9C,CAEAthB,cAAAA,CAAe9uB,EAAIzjQ,EAAKk5S,EAAaj7S,GACnC,MAAM,OAACk2S,EAAM,OAAEF,GAAUjkS,MACnB,EAAChX,EAAA,EAAGghE,GAAKypM,GACT,MAAC3/J,EAAA,OAAOC,GAAUm1M,GAClB,QAACr7C,EAAA,SAASG,EAAA,WAAUF,EAAA,YAAYC,GAAeQ,GAActgQ,EAAQ28P,cAE3E56P,EAAImsN,UAAYluN,EAAQm4J,gBACxBp2J,EAAIi9P,YAAch/P,EAAQmjL,YAC1BphL,EAAIi/N,UAAYhhO,EAAQy9P,YAExB17P,EAAIm7P,YACJn7P,EAAIu7P,OAAOviQ,EAAI6kQ,EAAS7jM,GACT,QAAXi6O,GACFjkS,KAAKsnS,UAAU7zC,EAAIzjQ,EAAKk5S,EAAaj7S,GAEvC+B,EAAIw7P,OAAOxiQ,EAAI8qG,EAAQk6J,EAAUhkM,GACjCh6D,EAAIm5S,iBAAiBngT,EAAI8qG,EAAO9pC,EAAGhhE,EAAI8qG,EAAO9pC,EAAIgkM,GACnC,WAAXi2C,GAAkC,UAAXE,GACzBnkS,KAAKsnS,UAAU7zC,EAAIzjQ,EAAKk5S,EAAaj7S,GAEvC+B,EAAIw7P,OAAOxiQ,EAAI8qG,EAAO9pC,EAAI+pC,EAASg6J,GACnC/9P,EAAIm5S,iBAAiBngT,EAAI8qG,EAAO9pC,EAAI+pC,EAAQ/qG,EAAI8qG,EAAQi6J,EAAa/jM,EAAI+pC,GAC1D,WAAXkwM,GACFjkS,KAAKsnS,UAAU7zC,EAAIzjQ,EAAKk5S,EAAaj7S,GAEvC+B,EAAIw7P,OAAOxiQ,EAAI8kQ,EAAY9jM,EAAI+pC,GAC/B/jG,EAAIm5S,iBAAiBngT,EAAGghE,EAAI+pC,EAAQ/qG,EAAGghE,EAAI+pC,EAAS+5J,GACrC,WAAXm2C,GAAkC,SAAXE,GACzBnkS,KAAKsnS,UAAU7zC,EAAIzjQ,EAAKk5S,EAAaj7S,GAEvC+B,EAAIw7P,OAAOxiQ,EAAGghE,EAAI6jM,GAClB79P,EAAIm5S,iBAAiBngT,EAAGghE,EAAGhhE,EAAI6kQ,EAAS7jM,GACxCh6D,EAAIs7P,YAEJt7P,EAAI4iC,OAEA3kC,EAAQy9P,YAAc,GACxB17P,EAAIs2J,QAER,CAMA8iJ,sBAAAA,CAAuBn7S,GACrB,MAAMy2P,EAAQ1kP,KAAK0kP,MACbsV,EAAQh6P,KAAKm8P,YACbktC,EAAQrvC,GAASA,EAAMhxQ,EACvBsgT,EAAQtvC,GAASA,EAAMhwM,EAC7B,GAAIq/O,GAASC,EAAO,CAClB,MAAMxnS,EAAWkgS,GAAY/zS,EAAQ6T,UAAU7a,KAAK+Y,KAAMA,KAAKu6P,QAASv6P,KAAKimS,gBAC7E,IAAKnkS,EACH,OAEF,MAAM+7C,EAAO79C,KAAK0iJ,MAAQkgJ,GAAe5iS,KAAM/R,GACzCk5S,EAAkBviT,OAAOsyC,OAAO,CAAC,EAAGp1B,EAAU9B,KAAK0iJ,OACnDiiJ,EAAYH,GAAmB9/C,EAAOz2P,EAASk5S,GAC/Cv7C,EAAQ84C,GAAmBz2S,EAASk5S,EAAiBxC,EAAWjgD,GAClE2kD,EAAM3tC,MAAQ9P,EAAM5iQ,GAAKsgT,EAAM5tC,MAAQ9P,EAAM5hM,IAC/ChqD,KAAKmkS,OAASQ,EAAUR,OACxBnkS,KAAKikS,OAASU,EAAUV,OACxBjkS,KAAK8zF,MAAQj2C,EAAKi2C,MAClB9zF,KAAK+zF,OAASl2C,EAAKk2C,OACnB/zF,KAAKqmS,OAASvkS,EAAS9Y,EACvBgX,KAAKsmS,OAASxkS,EAASkoD,EACvBhqD,KAAKokQ,qBAAqBrzQ,OAAOiP,KAAM4rP,IAG7C,CAMA29C,WAAAA,GACE,QAASvpS,KAAKo7D,OAChB,CAEAk/L,IAAAA,CAAKtqQ,GACH,MAAM/B,EAAU+R,KAAK/R,QAAQyC,WAAWsP,KAAK07M,cAC7C,IAAItgJ,EAAUp7D,KAAKo7D,QAEnB,IAAKA,EACH,OAGFp7D,KAAKopS,uBAAuBn7S,GAE5B,MAAMi7S,EAAc,CAClBp1M,MAAO9zF,KAAK8zF,MACZC,OAAQ/zF,KAAK+zF,QAET0/J,EAAK,CACTzqQ,EAAGgX,KAAKhX,EACRghE,EAAGhqD,KAAKgqD,GAIVoR,EAAU/4D,KAAKse,IAAIy6C,GAAW,KAAO,EAAIA,EAEzC,MAAMyrG,EAAU2nF,GAAUvgQ,EAAQ44K,SAG5B2iI,EAAoBxpS,KAAK8nH,MAAMriI,QAAUua,KAAKsjS,WAAW79S,QAAUua,KAAKigB,KAAKx6B,QAAUua,KAAKujS,UAAU99S,QAAUua,KAAK6iS,OAAOp9S,OAE9HwI,EAAQs+C,SAAWi9P,IACrBx5S,EAAImpJ,OACJnpJ,EAAIy5S,YAAcruO,EAGlBp7D,KAAKuiR,eAAe9uB,EAAIzjQ,EAAKk5S,EAAaj7S,GAE1CqpQ,GAAsBtnQ,EAAK/B,EAAQgyS,eAEnCxsC,EAAGzpM,GAAK68G,EAAQ/sE,IAGhB95F,KAAKgjR,UAAUvvB,EAAIzjQ,EAAK/B,GAGxB+R,KAAKwoS,SAAS/0C,EAAIzjQ,EAAK/B,GAGvB+R,KAAK+oS,WAAWt1C,EAAIzjQ,EAAK/B,GAEzBwpQ,GAAqBznQ,EAAK/B,EAAQgyS,eAElCjwS,EAAIu3I,UAER,CAMA0nJ,iBAAAA,GACE,OAAOjvR,KAAKu6P,SAAW,EACzB,CAOA20B,iBAAAA,CAAkBC,EAAgBiT,GAChC,MAAMhT,EAAapvR,KAAKu6P,QAClBl9N,EAAS8xP,EAAex0Q,KAAI4uJ,IAA2B,IAA1B,aAACkyE,EAAY,MAAE7mO,GAAM20J,EACtD,MAAM1jF,EAAO7lF,KAAK0kP,MAAMoc,eAAerlB,GAEvC,IAAK51J,EACH,MAAM,IAAIx7F,MAAM,kCAAoCoxP,GAGtD,MAAO,CACLA,eACAxwP,QAAS46F,EAAKtmF,KAAKqV,GACnBA,QACD,IAEG8sO,GAAWrG,GAAe+zC,EAAY/xP,GACtCqsQ,EAAkB1pS,KAAK2pS,iBAAiBtsQ,EAAQ+kQ,IAElD1gD,GAAWgoD,KACb1pS,KAAKu6P,QAAUl9N,EACfr9B,KAAKimS,eAAiB7D,EACtBpiS,KAAK4pS,qBAAsB,EAC3B5pS,KAAKjP,QAAO,GAEhB,CASA+vS,WAAAA,CAAYvqS,EAAG+4R,GAA4B,IAApBI,IAAAlqS,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,KAAAA,UAAA,GACrB,GAAI8pS,GAAUtvR,KAAK4pS,oBACjB,OAAO,EAET5pS,KAAK4pS,qBAAsB,EAE3B,MAAM37S,EAAU+R,KAAK/R,QACfmhS,EAAapvR,KAAKu6P,SAAW,GAC7Bl9N,EAASr9B,KAAK6vR,mBAAmBt5R,EAAG64R,EAAYE,EAAQI,GAKxDga,EAAkB1pS,KAAK2pS,iBAAiBtsQ,EAAQ9mC,GAGhDmrP,EAAU4tC,IAAWj0C,GAAeh+M,EAAQ+xP,IAAesa,EAgBjE,OAbIhoD,IACF1hP,KAAKu6P,QAAUl9N,GAEXpvC,EAAQs+C,SAAWt+C,EAAQo5S,YAC7BrnS,KAAKimS,eAAiB,CACpBj9S,EAAGuN,EAAEvN,EACLghE,EAAGzzD,EAAEyzD,GAGPhqD,KAAKjP,QAAO,EAAMu+R,KAIf5tC,CACT,CAWAmuC,kBAAAA,CAAmBt5R,EAAG64R,EAAYE,EAAQI,GACxC,MAAMzhS,EAAU+R,KAAK/R,QAErB,GAAe,aAAXsI,EAAE5C,KACJ,MAAO,GAGT,IAAK+7R,EAGH,OAAON,EAAWrqS,QAAOQ,GACvBya,KAAK0kP,MAAMnlP,KAAKomP,SAASpgQ,EAAEk2P,oBACiD1sP,IAA5EiR,KAAK0kP,MAAMoc,eAAev7Q,EAAEk2P,cAAcnqB,WAAWkxC,UAAUj9Q,EAAEqvB,SAKrE,MAAMyoB,EAASr9B,KAAK0kP,MAAM2pC,0BAA0B93R,EAAGtI,EAAQ6wB,KAAM7wB,EAASqhS,GAM9E,OAJIrhS,EAAQi8E,SACV7sC,EAAO6sC,UAGF7sC,CACT,CASAssQ,gBAAAA,CAAiBtsQ,EAAQ9mC,GACvB,MAAM,OAAC8vS,EAAA,OAAQC,EAAA,QAAQr4S,GAAW+R,KAC5B8B,EAAWkgS,GAAY/zS,EAAQ6T,UAAU7a,KAAK+Y,KAAMq9B,EAAQ9mC,GAClE,OAAoB,IAAbuL,IAAuBukS,IAAWvkS,EAAS9Y,GAAKs9S,IAAWxkS,EAASkoD,EAC7E,EACDnkE,GA5vBY4gK,GAAgB,cAKNu7I,IAyvBvB,IAAA6H,GAAe,CACb/1S,GAAI,UACJutS,SAAU56I,GACVu7I,eAEA8H,SAAAA,CAAUplD,EAAOozC,EAAO7pS,GAClBA,IACFy2P,EAAM1sG,QAAU,IAAIyO,GAAQ,CAACi+F,QAAOz2P,YAExC,EAEAiuR,YAAAA,CAAax3B,EAAOozC,EAAO7pS,GACrBy2P,EAAM1sG,SACR0sG,EAAM1sG,QAAQr5H,WAAW1wB,EAE7B,EAEAqxL,KAAAA,CAAMolE,EAAOozC,EAAO7pS,GACdy2P,EAAM1sG,SACR0sG,EAAM1sG,QAAQr5H,WAAW1wB,EAE7B,EAEA87S,SAAAA,CAAUrlD,GACR,MAAM1sG,EAAU0sG,EAAM1sG,QAEtB,GAAIA,GAAWA,EAAQuxJ,cAAe,CACpC,MAAM/pQ,EAAO,CACXw4G,WAGF,IAA8E,IAA1E0sG,EAAMo5B,cAAc,oBAAqB,IAAIt+O,EAAMuwD,YAAY,IACjE,OAGFioD,EAAQsiH,KAAK5V,EAAM10P,KAEnB00P,EAAMo5B,cAAc,mBAAoBt+O,GAE5C,EAEA8hQ,UAAAA,CAAW58C,EAAOllN,GAChB,GAAIklN,EAAM1sG,QAAS,CAEjB,MAAM84H,EAAmBtxO,EAAK8vP,OAC1B5qC,EAAM1sG,QAAQ8oJ,YAAYthQ,EAAK3zC,MAAOilR,EAAkBtxO,EAAKkwP,eAE/DlwP,EAAKkiN,SAAU,GAGrB,EAEAzgC,SAAU,CACR10K,SAAS,EACT86P,SAAU,KACVvlS,SAAU,UACVskJ,gBAAiB,kBACjB0hJ,WAAY,OACZrH,UAAW,CACT36F,OAAQ,QAEV09F,aAAc,EACdC,kBAAmB,EACnBlpB,WAAY,OACZorB,UAAW,OACXhC,YAAa,EACbb,SAAU,CAAC,EAEX2F,UAAW,OACXQ,YAAa,OACbpF,cAAe,EACfD,gBAAiB,EACjBb,WAAY,CACVj9F,OAAQ,QAEVkjG,YAAa,OACbniI,QAAS,EACTy9H,aAAc,EACdD,UAAW,EACXz5C,aAAc,EACdgzC,UAAWA,CAAC5tS,EAAKgwD,IAASA,EAAK8iP,SAASjlP,KACxCggP,SAAUA,CAAC7tS,EAAKgwD,IAASA,EAAK8iP,SAASjlP,KACvCuqP,mBAAoB,OACpB1E,eAAe,EACfvwB,WAAY,EACZ/hG,YAAa,gBACbs6E,YAAa,EACb1wJ,UAAW,CACTujB,SAAU,IACVopI,OAAQ,gBAEVE,WAAY,CACV5D,QAAS,CACPtwP,KAAM,SACN09H,WAAY,CAAC,IAAK,IAAK,QAAS,SAAU,SAAU,WAEtDj2D,QAAS,CACPusL,OAAQ,SACRppI,SAAU,MAGdn3E,UAAW89P,IAGbnhB,cAAe,CACb+e,SAAU,OACVC,WAAY,OACZtC,UAAW,QAGbhqI,YAAa,CACX+wF,YAAc/+P,GAAkB,WAATA,GAA8B,aAATA,GAAgC,aAATA,EACnEg/P,YAAY,EACZrgN,UAAW,CACTogN,aAAa,EACbC,YAAY,GAEdzsJ,UAAW,CACT0sJ,WAAW,GAEbG,WAAY,CACVH,UAAW,cAKfmhC,uBAAwB,CAAC,+HClzC3B,SAASmhB,GAAenzQ,EAAQnqC,EAAKkoB,EAAOq1R,GAC1C,MAAMvpO,EAAQ7pC,EAAOhwC,QAAQ6F,GAC7B,IAAe,IAAXg0E,EACF,MAbgBwpO,EAACrzQ,EAAQnqC,EAAKkoB,EAAOq1R,KACpB,kBAARv9S,GACTkoB,EAAQiiB,EAAO1xC,KAAKuH,GAAO,EAC3Bu9S,EAAYx/R,QAAQ,CAACmK,QAAOmiB,MAAOrqC,KAC1BoyC,MAAMpyC,KACfkoB,EAAQ,MAEHA,GAMEs1R,CAAYrzQ,EAAQnqC,EAAKkoB,EAAOq1R,GAGzC,OAAOvpO,IADM7pC,EAAOwwB,YAAY36D,GACRkoB,EAAQ8rD,CAClC,CAIA,SAASypO,GAAkB5jT,GACzB,MAAMswC,EAAS72B,KAAKoiQ,YAEpB,OAAI77Q,GAAS,GAAKA,EAAQswC,EAAOpxC,OACxBoxC,EAAOtwC,GAETA,CACT,CAEe,MAAM6jT,WAAsB3vB,GAazCp0R,WAAAA,CAAY60Q,GACVl9I,MAAMk9I,GAGNl7P,KAAKqqS,iBAAct7S,EACnBiR,KAAKsqS,YAAc,EACnBtqS,KAAKuqS,aAAe,EACtB,CAEApwO,IAAAA,CAAK+sN,GACH,MAAMsjB,EAAQxqS,KAAKuqS,aACnB,GAAIC,EAAM/kT,OAAQ,CAChB,MAAMoxC,EAAS72B,KAAKoiQ,YACpB,IAAK,MAAM,MAACxtP,EAAA,MAAOmiB,KAAUyzQ,EACvB3zQ,EAAOjiB,KAAWmiB,GACpBF,EAAOgQ,OAAOjyB,EAAO,GAGzB5U,KAAKuqS,aAAe,GAEtBvsL,MAAM7jD,KAAK+sN,EACb,CAEAz/Q,KAAAA,CAAM/a,EAAKkoB,GACT,GAAIkmO,GAAcpuP,GAChB,OAAO,KAET,MAAMmqC,EAAS72B,KAAKoiQ,YAGpB,MAtDe+X,EAACvlQ,EAAOwb,IAAkB,OAAVxb,EAAiB,KAAOsqO,GAAY78O,KAAKue,MAAMhM,GAAQ,EAAGwb,GAsDlF+pP,CAFPvlQ,EAAQ81C,SAAS91C,IAAUiiB,EAAOjiB,KAAWloB,EAAMkoB,EAC/Co1R,GAAenzQ,EAAQnqC,EAAKuuP,GAAermO,EAAOloB,GAAMsT,KAAKuqS,cACxC1zQ,EAAOpxC,OAAS,EAC3C,CAEA+2R,mBAAAA,GACE,MAAM,WAAC37B,EAAA,WAAYC,GAAc9gP,KAAK+gP,gBACtC,IAAI,IAAC5wN,EAAG,IAAEC,GAAOpwB,KAAK4iQ,WAAU,GAEJ,UAAxB5iQ,KAAK/R,QAAQwhI,SACVoxH,IACH1wN,EAAM,GAEH2wN,IACH1wN,EAAMpwB,KAAKoiQ,YAAY38Q,OAAS,IAIpCua,KAAKmwB,IAAMA,EACXnwB,KAAKowB,IAAMA,CACb,CAEA0sP,UAAAA,GACE,MAAM3sP,EAAMnwB,KAAKmwB,IACXC,EAAMpwB,KAAKowB,IACXltB,EAASlD,KAAK/R,QAAQiV,OACtBuhP,EAAQ,GACd,IAAI5tN,EAAS72B,KAAKoiQ,YAGlBvrO,EAAkB,IAAT1G,GAAcC,IAAQyG,EAAOpxC,OAAS,EAAKoxC,EAASA,EAAOruC,MAAM2nC,EAAKC,EAAM,GAErFpwB,KAAKsqS,YAAcjoS,KAAK+tB,IAAIyG,EAAOpxC,QAAUyd,EAAS,EAAI,GAAI,GAC9DlD,KAAKqqS,YAAcrqS,KAAKmwB,KAAOjtB,EAAS,GAAM,GAE9C,IAAK,IAAI3c,EAAQ4pC,EAAK5pC,GAAS6pC,EAAK7pC,IAClCk+P,EAAMt/P,KAAK,CAACoB,UAEd,OAAOk+P,CACT,CAEA8e,gBAAAA,CAAiBh9Q,GACf,OAAO4jT,GAAkBljT,KAAK+Y,KAAMzZ,EACtC,CAKA81B,SAAAA,GACE2hG,MAAM3hG,YAEDrc,KAAKmoQ,iBAERnoQ,KAAK0wQ,gBAAkB1wQ,KAAK0wQ,eAEhC,CAGA1vB,gBAAAA,CAAiBz6P,GAKf,MAJqB,kBAAVA,IACTA,EAAQyZ,KAAKyH,MAAMlhB,IAGJ,OAAVA,EAAiB47E,IAAMniE,KAAK8pQ,oBAAoBvjR,EAAQyZ,KAAKqqS,aAAerqS,KAAKsqS,YAC1F,CAIA7jC,eAAAA,CAAgB7xP,GACd,MAAM6vO,EAAQzkP,KAAKykP,MACnB,OAAI7vO,EAAQ,GAAKA,EAAQ6vO,EAAMh/P,OAAS,EAC/B,KAEFua,KAAKghP,iBAAiByD,EAAM7vO,GAAOruB,MAC5C,CAEAyjR,gBAAAA,CAAiB7f,GACf,OAAO9nP,KAAKue,MAAM5gB,KAAKqqS,YAAcrqS,KAAKugR,mBAAmBp2B,GAASnqP,KAAKsqS,YAC7E,CAEApiC,YAAAA,GACE,OAAOloQ,KAAK69H,MACd,ECpIF,SAAS4sK,GAAcC,EAAmBC,GACxC,MAAMlmD,EAAQ,IAMR,OAACh1H,EAAM,KAAEpiD,EAAA,IAAMl9C,EAAA,IAAKC,EAAG,UAAEw6Q,EAAA,MAAW5jQ,EAAA,SAAO6jQ,EAAQ,UAAEC,EAAA,cAAWC,GAAiBL,EACjF3sH,EAAO1wG,GAAQ,EACf29N,EAAYH,EAAW,GACtB16Q,IAAK86Q,EAAM76Q,IAAK86Q,GAAQP,EACzB9pD,GAAc/F,GAAc3qN,GAC5B2wN,GAAchG,GAAc1qN,GAC5B+6Q,GAAgBrwD,GAAc9zM,GAC9BokQ,GAAcF,EAAOD,IAASH,EAAY,GAChD,IACItpE,EAAQ6pE,EAASC,EAASC,EAD1BjgC,EAAUluB,IAAS8tD,EAAOD,GAAQD,EAAYjtH,GAAQA,EAK1D,GAAIutF,EAdgB,QAcUzqB,IAAeC,EAC3C,MAAO,CAAC,CAACv6P,MAAO0kT,GAAO,CAAC1kT,MAAO2kT,IAGjCK,EAAYlpS,KAAKwhC,KAAKqnQ,EAAO5/B,GAAWjpQ,KAAKC,MAAM2oS,EAAO3/B,GACtDigC,EAAYP,IAEd1/B,EAAUluB,GAAQmuD,EAAYjgC,EAAU0/B,EAAYjtH,GAAQA,GAGzD+8D,GAAc8vD,KAEjBppE,EAASn/N,KAAKM,IAAI,GAAIioS,GACtBt/B,EAAUjpQ,KAAKwhC,KAAKynO,EAAU9pC,GAAUA,GAG3B,UAAX/xG,GACF47K,EAAUhpS,KAAKC,MAAM2oS,EAAO3/B,GAAWA,EACvCggC,EAAUjpS,KAAKwhC,KAAKqnQ,EAAO5/B,GAAWA,IAEtC+/B,EAAUJ,EACVK,EAAUJ,GAGRrqD,GAAcC,GAAczzK,GjEL3B,SAAqBrkF,EAAWm0P,GACrC,MAAMquD,EAAUnpS,KAAKue,MAAM53B,GAC3B,OAAOwiT,EAAYruD,GAAYn0P,GAAQwiT,EAAUruD,GAAYn0P,CAC/D,CiEE0CyiT,EAAar7Q,EAAMD,GAAOk9C,EAAMi+L,EAAU,MAKhFigC,EAAYlpS,KAAKue,MAAMve,KAAK8tB,KAAKC,EAAMD,GAAOm7O,EAASu/B,IACvDv/B,GAAWl7O,EAAMD,GAAOo7Q,EACxBF,EAAUl7Q,EACVm7Q,EAAUl7Q,GACD+6Q,GAITE,EAAUxqD,EAAa1wN,EAAMk7Q,EAC7BC,EAAUxqD,EAAa1wN,EAAMk7Q,EAC7BC,EAAYvkQ,EAAQ,EACpBskO,GAAWggC,EAAUD,GAAWE,IAGhCA,GAAaD,EAAUD,GAAW//B,EAIhCigC,EADEruD,GAAaquD,EAAWlpS,KAAKue,MAAM2qR,GAAYjgC,EAAU,KAC/CjpQ,KAAKue,MAAM2qR,GAEXlpS,KAAKwhC,KAAK0nQ,IAM1B,MAAMG,EAAgBrpS,KAAK+tB,IACzBwtN,GAAe0tB,GACf1tB,GAAeytD,IAEjB7pE,EAASn/N,KAAKM,IAAI,GAAIm4O,GAAc8vD,GAAac,EAAgBd,GACjES,EAAUhpS,KAAKue,MAAMyqR,EAAU7pE,GAAUA,EACzC8pE,EAAUjpS,KAAKue,MAAM0qR,EAAU9pE,GAAUA,EAEzC,IAAI75K,EAAI,EAiBR,IAhBIk5L,IACEkqD,GAAiBM,IAAYl7Q,GAC/Bs0N,EAAMt/P,KAAK,CAACoB,MAAO4pC,IAEfk7Q,EAAUl7Q,GACZw3B,IAGEu1L,GAAa76O,KAAKue,OAAOyqR,EAAU1jP,EAAI2jN,GAAW9pC,GAAUA,EAAQrxM,EAAKw7Q,GAAkBx7Q,EAAKi7Q,EAAYV,KAC9G/iP,KAEO0jP,EAAUl7Q,GACnBw3B,KAIGA,EAAI4jP,IAAa5jP,EAAG,CACzB,MAAM68L,EAAYniP,KAAKue,OAAOyqR,EAAU1jP,EAAI2jN,GAAW9pC,GAAUA,EACjE,GAAIsf,GAAc0D,EAAYp0N,EAC5B,MAEFq0N,EAAMt/P,KAAK,CAACoB,MAAOi+P,GACrB,CAaA,OAXI1D,GAAciqD,GAAiBO,IAAYl7Q,EAEzCq0N,EAAMh/P,QAAUy3P,GAAauH,EAAMA,EAAMh/P,OAAS,GAAGc,MAAO6pC,EAAKu7Q,GAAkBv7Q,EAAKg7Q,EAAYV,IACtGjmD,EAAMA,EAAMh/P,OAAS,GAAGc,MAAQ6pC,EAEhCq0N,EAAMt/P,KAAK,CAACoB,MAAO6pC,IAEX0wN,GAAcwqD,IAAYl7Q,GACpCq0N,EAAMt/P,KAAK,CAACoB,MAAO+kT,IAGd7mD,CACT,CAEA,SAASknD,GAAkBplT,EAAO6kT,EAAU5gI,GAA6B,IAA3B,WAAC88F,EAAU,YAAE5e,GAAYl+E,EACrE,MAAMygF,EAAMzN,GAAUkL,GAChB78B,GAASy7C,EAAajlQ,KAAKw/O,IAAIoJ,GAAO5oP,KAAKwgP,IAAIoI,KAAS,KACxDxlQ,EAAS,IAAO2lT,GAAc,GAAK7kT,GAAOd,OAChD,OAAO4c,KAAK8tB,IAAIi7Q,EAAav/E,EAAOpmO,EACtC,CDMAI,GA5HqBukT,GAAsB,KAE7B,YAAWvkT,GAFJukT,GAAsB,WAOvB,CAChB3lD,MAAO,CACL78O,SAAUuiS,MC+GD,MAAMyB,WAAwBnxB,GAE3Cp0R,WAAAA,CAAY60Q,GACVl9I,MAAMk9I,GAGNl7P,KAAKqgD,WAAQtxD,EAEbiR,KAAKi/B,SAAMlwC,EAEXiR,KAAKqqS,iBAAct7S,EAEnBiR,KAAK6rS,eAAY98S,EACjBiR,KAAKsqS,YAAc,CACrB,CAEA7iS,KAAAA,CAAM/a,EAAKkoB,GACT,OAAIkmO,GAAcpuP,KAGE,kBAARA,GAAoBA,aAAe+tB,UAAYiwC,UAAUh+D,GAF5D,MAMDA,CACV,CAEAo/S,sBAAAA,GACE,MAAM,YAAC/jD,GAAe/nP,KAAK/R,SACrB,WAAC4yP,EAAA,WAAYC,GAAc9gP,KAAK+gP,gBACtC,IAAI,IAAC5wN,EAAG,IAAEC,GAAOpwB,KAEjB,MAAM6hO,EAAS/oM,GAAM3I,EAAM0wN,EAAa1wN,EAAM2I,EACxCgpM,EAAShpM,GAAM1I,EAAM0wN,EAAa1wN,EAAM0I,EAE9C,GAAIivN,EAAa,CACf,MAAMgkD,EAAUzlS,GAAK6pB,GACf67Q,EAAU1lS,GAAK8pB,GAEjB27Q,EAAU,GAAKC,EAAU,EAC3BlqE,EAAO,GACEiqE,EAAU,GAAKC,EAAU,GAClCnqE,EAAO,GAIX,GAAI1xM,IAAQC,EAAK,CACf,IAAIltB,EAAiB,IAARktB,EAAY,EAAI/tB,KAAKse,IAAU,IAANyP,GAEtC0xM,EAAO1xM,EAAMltB,GAER6kP,GACHlmB,EAAO1xM,EAAMjtB,GAGjBlD,KAAKmwB,IAAMA,EACXnwB,KAAKowB,IAAMA,CACb,CAEA67Q,YAAAA,GACE,MAAM3zB,EAAWt4Q,KAAK/R,QAAQw2P,MAE9B,IACIomD,GADA,cAAC/xB,EAAA,SAAeozB,GAAY5zB,EAkBhC,OAfI4zB,GACFrB,EAAWxoS,KAAKwhC,KAAK7jC,KAAKowB,IAAM87Q,GAAY7pS,KAAKC,MAAMtC,KAAKmwB,IAAM+7Q,GAAY,EAC1ErB,EAAW,MACbr8S,QAAQC,KAAK,UAADC,OAAWsR,KAAKlM,GAAE,qBAAApF,OAAoBw9S,EAAS,mCAAAx9S,OAAiCm8S,EAAA,8BAC5FA,EAAW,OAGbA,EAAW7qS,KAAKmsS,mBAChBrzB,EAAgBA,GAAiB,IAG/BA,IACF+xB,EAAWxoS,KAAK8tB,IAAI2oP,EAAe+xB,IAG9BA,CACT,CAKAsB,gBAAAA,GACE,OAAO1xR,OAAOmiO,iBAChB,CAEAkgC,UAAAA,GACE,MAAM98N,EAAOhgD,KAAK/R,QACZqqR,EAAWt4N,EAAKykM,MAMtB,IAAIomD,EAAW7qS,KAAKisS,eACpBpB,EAAWxoS,KAAK+tB,IAAI,EAAGy6Q,GAEvB,MAcMpmD,EAAQgmD,GAdkB,CAC9BI,WACAp7K,OAAQzvE,EAAKyvE,OACbt/F,IAAK6vB,EAAK7vB,IACVC,IAAK4vB,EAAK5vB,IACVw6Q,UAAWtyB,EAASsyB,UACpBv9N,KAAMirM,EAAS4zB,SACfllQ,MAAOsxO,EAAStxO,MAChB8jQ,UAAW9qS,KAAKwjR,aAChBlc,WAAYtnQ,KAAKmoQ,eACjBzf,YAAa4vB,EAAS5vB,aAAe,EACrCqiD,eAA0C,IAA3BzyB,EAASyyB,eAER/qS,KAAK86Q,QAAU96Q,MAmBjC,MAdoB,UAAhBggD,EAAKyvE,QACP8tH,GAAmBkH,EAAOzkP,KAAM,SAG9BggD,EAAKkqB,SACPu6K,EAAMv6K,UAENlqE,KAAKqgD,MAAQrgD,KAAKowB,IAClBpwB,KAAKi/B,IAAMj/B,KAAKmwB,MAEhBnwB,KAAKqgD,MAAQrgD,KAAKmwB,IAClBnwB,KAAKi/B,IAAMj/B,KAAKowB,KAGXq0N,CACT,CAKApoO,SAAAA,GACE,MAAMooO,EAAQzkP,KAAKykP,MACnB,IAAIpkM,EAAQrgD,KAAKmwB,IACb8O,EAAMj/B,KAAKowB,IAIf,GAFA4tF,MAAM3hG,YAEFrc,KAAK/R,QAAQiV,QAAUuhP,EAAMh/P,OAAQ,CACvC,MAAMyd,GAAU+7B,EAAMohB,GAASh+C,KAAK+tB,IAAIq0N,EAAMh/P,OAAS,EAAG,GAAK,EAC/D46D,GAASn9C,EACT+7B,GAAO/7B,EAETlD,KAAKqqS,YAAchqP,EACnBrgD,KAAK6rS,UAAY5sQ,EACjBj/B,KAAKsqS,YAAcrrQ,EAAMohB,CAC3B,CAEAkjN,gBAAAA,CAAiBh9Q,GACf,OAAO49P,GAAa59P,EAAOyZ,KAAK0kP,MAAMz2P,QAAQ6rE,OAAQ95D,KAAK/R,QAAQw2P,MAAMh8O,OAC3E,EClTa,MAAM2jS,WAAoBR,GAcvCpvB,mBAAAA,GACE,MAAM,IAACrsP,EAAG,IAAEC,GAAOpwB,KAAK4iQ,WAAU,GAElC5iQ,KAAKmwB,IAAM4qN,GAAS5qN,GAAOA,EAAM,EACjCnwB,KAAKowB,IAAM2qN,GAAS3qN,GAAOA,EAAM,EAGjCpwB,KAAK8rS,wBACP,CAMAK,gBAAAA,GACE,MAAM7kC,EAAatnQ,KAAKmoQ,eAClB1iR,EAAS6hR,EAAatnQ,KAAK8zF,MAAQ9zF,KAAK+zF,OACxC20J,EAAclL,GAAUx9O,KAAK/R,QAAQw2P,MAAMiE,aAC3C78B,GAASy7C,EAAajlQ,KAAKw/O,IAAI6G,GAAermP,KAAKwgP,IAAI6F,KAAiB,KACxEo3B,EAAW9/Q,KAAKmgR,wBAAwB,GAC9C,OAAO99Q,KAAKwhC,KAAKp+C,EAAS4c,KAAK8tB,IAAI,GAAI2vP,EAAS97L,WAAa6nI,GAC/D,CAGAm1B,gBAAAA,CAAiBz6P,GACf,OAAiB,OAAVA,EAAiB47E,IAAMniE,KAAK8pQ,oBAAoBvjR,EAAQyZ,KAAKqqS,aAAerqS,KAAKsqS,YAC1F,CAEAtgC,gBAAAA,CAAiB7f,GACf,OAAOnqP,KAAKqqS,YAAcrqS,KAAKugR,mBAAmBp2B,GAASnqP,KAAKsqS,WAClE,EACFzkT,GA7CqBumT,GAAoB,KAE3B,UAASvmT,GAFFumT,GAAoB,WAOrB,CAChB3nD,MAAO,CACL78O,SAAUy9O,GAAMf,WAAWC,WCPjC,MAAM8nD,GAAavzQ,GAAKz2B,KAAKC,MAAM26O,GAAMnkN,IACnCwzQ,GAAiBA,CAACxzQ,EAAGmuB,IAAM5kD,KAAKM,IAAI,GAAI0pS,GAAWvzQ,GAAKmuB,GAE9D,SAASslP,GAAQC,GAEf,OAAkB,IADHA,EAAWnqS,KAAKM,IAAI,GAAI0pS,GAAWG,GAEpD,CAEA,SAASC,GAAMt8Q,EAAKC,EAAKs8Q,GACvB,MAAMC,EAAYtqS,KAAKM,IAAI,GAAI+pS,GACzBrsP,EAAQh+C,KAAKC,MAAM6tB,EAAMw8Q,GAE/B,OADYtqS,KAAKwhC,KAAKzT,EAAMu8Q,GACftsP,CACf,CAqBA,SAASusP,GAAclC,EAAiBr7E,GAAc,IAAZ,IAACl/L,EAAG,IAAEC,GAAIi/L,EAClDl/L,EAAM6qN,GAAgB0vD,EAAkBv6Q,IAAKA,GAC7C,MAAMs0N,EAAQ,GACRooD,EAASR,GAAWl8Q,GAC1B,IAAI28Q,EAvBN,SAAkB38Q,EAAKC,GAErB,IAAIs8Q,EAAWL,GADDj8Q,EAAMD,GAEpB,KAAOs8Q,GAAMt8Q,EAAKC,EAAKs8Q,GAAY,IACjCA,IAEF,KAAOD,GAAMt8Q,EAAKC,EAAKs8Q,GAAY,IACjCA,IAEF,OAAOrqS,KAAK8tB,IAAIu8Q,EAAUL,GAAWl8Q,GACvC,CAaY48Q,CAAS58Q,EAAKC,GACpBw6Q,EAAYkC,EAAM,EAAIzqS,KAAKM,IAAI,GAAIN,KAAKse,IAAImsR,IAAQ,EACxD,MAAMZ,EAAW7pS,KAAKM,IAAI,GAAImqS,GACxBv/P,EAAOs/P,EAASC,EAAMzqS,KAAKM,IAAI,GAAIkqS,GAAU,EAC7CxsP,EAAQh+C,KAAKue,OAAOuP,EAAMod,GAAQq9P,GAAaA,EAC/C1nS,EAASb,KAAKC,OAAO6tB,EAAMod,GAAQ2+P,EAAW,IAAMA,EAAW,GACrE,IAAI9mD,EAAc/iP,KAAKC,OAAO+9C,EAAQn9C,GAAUb,KAAKM,IAAI,GAAImqS,IACzDvmT,EAAQy0P,GAAgB0vD,EAAkBv6Q,IAAK9tB,KAAKue,OAAO2sB,EAAOrqC,EAASkiP,EAAc/iP,KAAKM,IAAI,GAAImqS,IAAQlC,GAAaA,GAC/H,KAAOrkT,EAAQ6pC,GACbq0N,EAAMt/P,KAAK,CAACoB,QAAO4iQ,MAAOojD,GAAQhmT,GAAQ6+P,gBACtCA,GAAe,GACjBA,EAAcA,EAAc,GAAK,GAAK,GAEtCA,IAEEA,GAAe,KACjB0nD,IACA1nD,EAAc,EACdwlD,EAAYkC,GAAO,EAAI,EAAIlC,GAE7BrkT,EAAQ8b,KAAKue,OAAO2sB,EAAOrqC,EAASkiP,EAAc/iP,KAAKM,IAAI,GAAImqS,IAAQlC,GAAaA,EAEtF,MAAMoC,EAAWhyD,GAAgB0vD,EAAkBt6Q,IAAK7pC,GAGxD,OAFAk+P,EAAMt/P,KAAK,CAACoB,MAAOymT,EAAU7jD,MAAOojD,GAAQS,GAAW5nD,gBAEhDX,CACT,CAEe,MAAMwoD,WAAyBxyB,GAiB5Cp0R,WAAAA,CAAY60Q,GACVl9I,MAAMk9I,GAGNl7P,KAAKqgD,WAAQtxD,EAEbiR,KAAKi/B,SAAMlwC,EAEXiR,KAAKqqS,iBAAct7S,EACnBiR,KAAKsqS,YAAc,CACrB,CAEA7iS,KAAAA,CAAM/a,EAAKkoB,GACT,MAAMruB,EAAQqlT,GAAgBtlT,UAAUmhB,MAAMriB,MAAM4a,KAAM,CAACtT,EAAKkoB,IAChE,GAAc,IAAVruB,EAIJ,OAAOw0P,GAASx0P,IAAUA,EAAQ,EAAIA,EAAQ,KAH5CyZ,KAAKktS,OAAQ,CAIjB,CAEA1wB,mBAAAA,GACE,MAAM,IAACrsP,EAAG,IAAEC,GAAOpwB,KAAK4iQ,WAAU,GAElC5iQ,KAAKmwB,IAAM4qN,GAAS5qN,GAAO9tB,KAAK+tB,IAAI,EAAGD,GAAO,KAC9CnwB,KAAKowB,IAAM2qN,GAAS3qN,GAAO/tB,KAAK+tB,IAAI,EAAGA,GAAO,KAE1CpwB,KAAK/R,QAAQ85P,cACf/nP,KAAKktS,OAAQ,GAKXltS,KAAKktS,OAASltS,KAAKmwB,MAAQnwB,KAAKs7Q,gBAAkBvgC,GAAS/6O,KAAKo7Q,YAClEp7Q,KAAKmwB,IAAMA,IAAQm8Q,GAAetsS,KAAKmwB,IAAK,GAAKm8Q,GAAetsS,KAAKmwB,KAAM,GAAKm8Q,GAAetsS,KAAKmwB,IAAK,IAG3GnwB,KAAK8rS,wBACP,CAEAA,sBAAAA,GACE,MAAM,WAACjrD,EAAA,WAAYC,GAAc9gP,KAAK+gP,gBACtC,IAAI5wN,EAAMnwB,KAAKmwB,IACXC,EAAMpwB,KAAKowB,IAEf,MAAMyxM,EAAS/oM,GAAM3I,EAAM0wN,EAAa1wN,EAAM2I,EACxCgpM,EAAShpM,GAAM1I,EAAM0wN,EAAa1wN,EAAM0I,EAE1C3I,IAAQC,IACND,GAAO,GACT0xM,EAAO,GACPC,EAAO,MAEPD,EAAOyqE,GAAen8Q,GAAM,IAC5B2xM,EAAOwqE,GAAel8Q,EAAK,MAG3BD,GAAO,GACT0xM,EAAOyqE,GAAel8Q,GAAM,IAE1BA,GAAO,GAET0xM,EAAOwqE,GAAen8Q,EAAK,IAG7BnwB,KAAKmwB,IAAMA,EACXnwB,KAAKowB,IAAMA,CACb,CAEA0sP,UAAAA,GACE,MAAM98N,EAAOhgD,KAAK/R,QAMZw2P,EAAQmoD,GAJY,CACxBz8Q,IAAKnwB,KAAKo7Q,SACVhrP,IAAKpwB,KAAKm7Q,UAEmCn7Q,MAkB/C,MAdoB,UAAhBggD,EAAKyvE,QACP8tH,GAAmBkH,EAAOzkP,KAAM,SAG9BggD,EAAKkqB,SACPu6K,EAAMv6K,UAENlqE,KAAKqgD,MAAQrgD,KAAKowB,IAClBpwB,KAAKi/B,IAAMj/B,KAAKmwB,MAEhBnwB,KAAKqgD,MAAQrgD,KAAKmwB,IAClBnwB,KAAKi/B,IAAMj/B,KAAKowB,KAGXq0N,CACT,CAMA8e,gBAAAA,CAAiBh9Q,GACf,YAAiBwI,IAAVxI,EACH,IACA49P,GAAa59P,EAAOyZ,KAAK0kP,MAAMz2P,QAAQ6rE,OAAQ95D,KAAK/R,QAAQw2P,MAAMh8O,OACxE,CAKA4T,SAAAA,GACE,MAAMgkC,EAAQrgD,KAAKmwB,IAEnB6tF,MAAM3hG,YAENrc,KAAKqqS,YAAcptD,GAAM58L,GACzBrgD,KAAKsqS,YAAcrtD,GAAMj9O,KAAKowB,KAAO6sN,GAAM58L,EAC7C,CAEA2gM,gBAAAA,CAAiBz6P,GAIf,YAHcwI,IAAVxI,GAAiC,IAAVA,IACzBA,EAAQyZ,KAAKmwB,KAED,OAAV5pC,GAAkBu4C,MAAMv4C,GACnB47E,IAEFniE,KAAK8pQ,mBAAmBvjR,IAAUyZ,KAAKmwB,IAC1C,GACC8sN,GAAM12P,GAASyZ,KAAKqqS,aAAerqS,KAAKsqS,YAC/C,CAEAtgC,gBAAAA,CAAiB7f,GACf,MAAMk2B,EAAUrgR,KAAKugR,mBAAmBp2B,GACxC,OAAO9nP,KAAKM,IAAI,GAAI3C,KAAKqqS,YAAchqB,EAAUrgR,KAAKsqS,YACxD,ECxNF,SAAS6C,GAAsBntP,GAC7B,MAAMs4N,EAAWt4N,EAAKykM,MAEtB,GAAI6zB,EAASzkK,SAAW7zD,EAAK6zD,QAAS,CACpC,MAAMgzD,EAAU2nF,GAAU8pB,EAAS/uB,iBACnC,OAAOtO,GAAeq9B,EAASv8D,MAAQu8D,EAASv8D,KAAKl+J,KAAMojK,GAASlF,KAAKl+J,MAAQgpH,EAAQ9yE,OAE3F,OAAO,CACT,CAUA,SAASq5M,GAAgBhvD,EAAOpgM,EAAKH,EAAM1tB,EAAKC,GAC9C,OAAIguN,IAAUjuN,GAAOiuN,IAAUhuN,EACtB,CACLiwB,MAAOrC,EAAOH,EAAO,EACrB5e,IAAK+e,EAAOH,EAAO,GAEZugM,EAAQjuN,GAAOiuN,EAAQhuN,EACzB,CACLiwB,MAAOrC,EAAMH,EACb5e,IAAK+e,GAIF,CACLqC,MAAOrC,EACP/e,IAAK+e,EAAMH,EAEf,CAKA,SAASwvP,GAAmB1mD,GA8B1B,MAAM+gB,EAAO,CACX95Q,EAAG+4P,EAAMv5P,KAAOu5P,EAAM86C,SAASr0S,KAC/BS,EAAG84P,EAAMt5P,MAAQs5P,EAAM86C,SAASp0S,MAChCiU,EAAGqlP,EAAM7sJ,IAAM6sJ,EAAM86C,SAAS3nM,IAC9B14F,EAAGulP,EAAM9oH,OAAS8oH,EAAM86C,SAAS5jK,QAE7ByvK,EAAS1oT,OAAOsyC,OAAO,CAAC,EAAGwwO,GAC3B2W,EAAa,GACbx3G,EAAU,GACV0mI,EAAa5mD,EAAM6mD,aAAa/nT,OAChCgoT,EAAiB9mD,EAAM14P,QAAQ0hR,YAC/B+9B,EAAkBD,EAAeE,kBAAoB3uH,GAAKuuH,EAAa,EAE7E,IAAK,IAAIhoT,EAAI,EAAGA,EAAIgoT,EAAYhoT,IAAK,CACnC,MAAMy6D,EAAOytP,EAAe/8S,WAAWi2P,EAAMinD,qBAAqBroT,IAClEshL,EAAQthL,GAAKy6D,EAAK6mH,QAClB,MAAMkpG,EAAgBppB,EAAMknD,iBAAiBtoT,EAAGohQ,EAAMmnD,YAAcjnI,EAAQthL,GAAImoT,GAC1EK,EAASt/C,GAAOzuM,EAAK+7J,MACrBF,GA9EgB7rN,EA8EY22P,EAAM32P,IA9Eb+rN,EA8EkBgyF,EA7E/Ch3Q,EAAQtvC,GAD2BsvC,EA8EoB4vN,EAAM6mD,aAAajoT,IA7EjDwxC,EAAQ,CAACA,GAC3B,CACLtzB,EAAGkmP,GAAa35P,EAAK+rN,EAAKlxN,OAAQksC,GAClCmkB,EAAGnkB,EAAMtxC,OAASs2N,EAAK/3H,aA2EvBq6L,EAAW94R,GAAKs2N,EAEhB,MAAMmjE,EAAergC,GAAgBgI,EAAM0oB,cAAc9pR,GAAKmoT,GACxDtvD,EAAQ/7O,KAAKue,MAAM88N,GAAUshC,IAGnCgvB,GAAaV,EAAQ5lC,EAAMsX,EAFXouB,GAAgBhvD,EAAO2xB,EAAc/mR,EAAG6yN,EAASp4M,EAAG,EAAG,KACvD2pS,GAAgBhvD,EAAO2xB,EAAc/lN,EAAG6xJ,EAAS3gK,EAAG,GAAI,KAE1E,CAtFF,IAA0BlrD,EAAK+rN,EAAMhlL,EAwFnC4vN,EAAMsnD,eACJvmC,EAAK95Q,EAAI0/S,EAAO1/S,EAChB0/S,EAAOz/S,EAAI65Q,EAAK75Q,EAChB65Q,EAAKpmQ,EAAIgsS,EAAOhsS,EAChBgsS,EAAOlsS,EAAIsmQ,EAAKtmQ,GAIlBulP,EAAMunD,iBA6DR,SAA8BvnD,EAAO03B,EAAYx3G,GAC/C,MAAM5oI,EAAQ,GACRsvQ,EAAa5mD,EAAM6mD,aAAa/nT,OAChCu6D,EAAO2mM,EAAM14P,SACb,kBAAC0/S,EAAiB,QAAE95L,GAAW7zD,EAAK2vN,YACpCw+B,EAAW,CACf9+I,MAAO89I,GAAsBntP,GAAQ,EACrC0tP,gBAAiBC,EAAoB3uH,GAAKuuH,EAAa,GAEzD,IAAIloN,EAEJ,IAAK,IAAI9/F,EAAI,EAAGA,EAAIgoT,EAAYhoT,IAAK,CACnC4oT,EAAStnI,QAAUA,EAAQthL,GAC3B4oT,EAAStwP,KAAOwgO,EAAW94R,GAE3B,MAAMg2C,EAAO6yQ,GAAqBznD,EAAOphQ,EAAG4oT,GAC5ClwQ,EAAM94C,KAAKo2C,GACK,SAAZs4E,IACFt4E,EAAKmzL,QAAU2/E,GAAgB9yQ,EAAM8pD,GACjC9pD,EAAKmzL,UACPrpI,EAAO9pD,GAGb,CACA,OAAO0C,CACT,CAtF2BqwQ,CAAqB3nD,EAAO03B,EAAYx3G,EACnE,CAEA,SAASmnI,GAAaV,EAAQ5lC,EAAMtpB,EAAOmwD,EAASC,GAClD,MAAM3sD,EAAMx/O,KAAKse,IAAIte,KAAKw/O,IAAIzD,IACxByE,EAAMxgP,KAAKse,IAAIte,KAAKwgP,IAAIzE,IAC9B,IAAIp1P,EAAI,EACJghE,EAAI,EACJukP,EAAQluP,MAAQqnN,EAAK95Q,GACvB5E,GAAK0+Q,EAAK95Q,EAAI2gT,EAAQluP,OAASwhM,EAC/ByrD,EAAO1/S,EAAIyU,KAAK8tB,IAAIm9Q,EAAO1/S,EAAG85Q,EAAK95Q,EAAI5E,IAC9BulT,EAAQtvQ,IAAMyoO,EAAK75Q,IAC5B7E,GAAKulT,EAAQtvQ,IAAMyoO,EAAK75Q,GAAKg0P,EAC7ByrD,EAAOz/S,EAAIwU,KAAK+tB,IAAIk9Q,EAAOz/S,EAAG65Q,EAAK75Q,EAAI7E,IAErCwlT,EAAQnuP,MAAQqnN,EAAKpmQ,GACvB0oD,GAAK09M,EAAKpmQ,EAAIktS,EAAQnuP,OAASwiM,EAC/ByqD,EAAOhsS,EAAIe,KAAK8tB,IAAIm9Q,EAAOhsS,EAAGomQ,EAAKpmQ,EAAI0oD,IAC9BwkP,EAAQvvQ,IAAMyoO,EAAKtmQ,IAC5B4oD,GAAKwkP,EAAQvvQ,IAAMyoO,EAAKtmQ,GAAKyhP,EAC7ByqD,EAAOlsS,EAAIiB,KAAK+tB,IAAIk9Q,EAAOlsS,EAAGsmQ,EAAKtmQ,EAAI4oD,GAE3C,CAEA,SAASokP,GAAqBznD,EAAO/xO,EAAOu5R,GAC1C,MAAMM,EAAgB9nD,EAAMmnD,aACtB,MAACz+I,EAAA,gBAAOq+I,EAAA,QAAiB7mI,EAAO,KAAEhpH,GAAQswP,EAC1CO,EAAqB/nD,EAAMknD,iBAAiBj5R,EAAO65R,EAAgBp/I,EAAQwX,EAAS6mI,GACpFtvD,EAAQ/7O,KAAKue,MAAM88N,GAAUiB,GAAgB+vD,EAAmBtwD,MAAQtB,MACxE9yL,EA8ER,SAAmBA,EAAG9O,EAAGkjM,GACT,KAAVA,GAA0B,MAAVA,EAClBp0L,GAAM9O,EAAI,GACDkjM,EAAQ,KAAOA,EAAQ,MAChCp0L,GAAK9O,GAEP,OAAO8O,CACT,CArFY2kP,CAAUD,EAAmB1kP,EAAGnM,EAAK3C,EAAGkjM,GAC5C3sE,EA0DR,SAA8B2sE,GAC5B,GAAc,IAAVA,GAAyB,MAAVA,EACjB,MAAO,SACF,GAAIA,EAAQ,IACjB,MAAO,OAGT,MAAO,OACT,CAlEoBwwD,CAAqBxwD,GACjChxP,EAmER,SAA0BpE,EAAGya,EAAGg1I,GAChB,UAAVA,EACFzvJ,GAAKya,EACc,WAAVg1I,IACTzvJ,GAAMya,EAAI,GAEZ,OAAOza,CACT,CA1Ee6lT,CAAiBH,EAAmB1lT,EAAG60D,EAAKp6C,EAAGguK,GAC5D,MAAO,CAELi9C,SAAS,EAGT1lO,EAAG0lT,EAAmB1lT,EACtBghE,IAGAynH,YAGArkL,OACA0sG,IAAK9vC,EACL38D,MAAOD,EAAOywD,EAAKp6C,EACnBo6H,OAAQ7zE,EAAInM,EAAK3C,EAErB,CAEA,SAASmzP,GAAgB9yQ,EAAM8pD,GAC7B,IAAKA,EACH,OAAO,EAET,MAAM,KAACj4F,EAAA,IAAM0sG,EAAA,MAAKzsG,EAAK,OAAEwwI,GAAUtiG,EAGnC,QAFqBowN,GAAe,CAAC3iQ,EAAGoE,EAAM48D,EAAG8vC,GAAMzU,IAASsmK,GAAe,CAAC3iQ,EAAGoE,EAAM48D,EAAG6zE,GAASx4C,IACnGsmK,GAAe,CAAC3iQ,EAAGqE,EAAO28D,EAAG8vC,GAAMzU,IAASsmK,GAAe,CAAC3iQ,EAAGqE,EAAO28D,EAAG6zE,GAASx4C,GAEtF,CAyDA,SAASypN,GAAkB9+S,EAAKgwD,EAAMzkB,GACpC,MAAM,KAACnuC,EAAA,IAAM0sG,EAAA,MAAKzsG,EAAK,OAAEwwI,GAAUtiG,GAC7B,cAAC+tN,GAAiBtpM,EAExB,IAAK86L,GAAcwO,GAAgB,CACjC,MAAMntE,EAAeoyE,GAAcvuM,EAAKm8H,cAClCtV,EAAU2nF,GAAUxuM,EAAKupM,iBAC/Bv5P,EAAImsN,UAAYmtC,EAEhB,MAAMylD,EAAe3hT,EAAOy5K,EAAQz5K,KAC9B4hT,EAAcl1M,EAAM+sE,EAAQ/sE,IAC5Bm1M,EAAgB5hT,EAAQD,EAAOy5K,EAAQ/yE,MACvCo7M,EAAiBrxK,EAAS/jC,EAAM+sE,EAAQ9yE,OAE1CnvG,OAAOu2B,OAAOghK,GAAc3tD,MAAK11F,GAAW,IAANA,KACxC9oC,EAAIm7P,YACJyC,GAAmB59P,EAAK,CACtBhH,EAAG+lT,EACH/kP,EAAGglP,EACHvrS,EAAGwrS,EACH/zP,EAAGg0P,EACHlkD,OAAQ7uE,IAEVnsL,EAAI4iC,QAEJ5iC,EAAIq9P,SAAS0hD,EAAcC,EAAaC,EAAeC,GAG7D,CA+BA,SAASC,GAAexoD,EAAOqE,EAAQr/G,EAAU05J,GAC/C,MAAM,IAACr1S,GAAO22P,EACd,GAAIh7G,EAEF37I,EAAIq7P,IAAI1E,EAAMuoB,QAASvoB,EAAMwoB,QAASnkB,EAAQ,EAAGvO,QAC5C,CAEL,IAAIszB,EAAgBppB,EAAMknD,iBAAiB,EAAG7iD,GAC9Ch7P,EAAIu7P,OAAOwkB,EAAc/mR,EAAG+mR,EAAc/lN,GAE1C,IAAK,IAAIzkE,EAAI,EAAGA,EAAI8/S,EAAY9/S,IAC9BwqR,EAAgBppB,EAAMknD,iBAAiBtoT,EAAGylQ,GAC1Ch7P,EAAIw7P,OAAOukB,EAAc/mR,EAAG+mR,EAAc/lN,GAGhD,CD/EAnkE,GAxJqBonT,GAAyB,KAEhC,eAAcpnT,GAFPonT,GAAyB,WAO1B,CAChBxoD,MAAO,CACL78O,SAAUy9O,GAAMf,WAAWY,YAC3BiE,MAAO,CACL58M,SAAS,MC6PF,MAAM6iQ,WAA0BxD,GA0E7CvlT,WAAAA,CAAY60Q,GACVl9I,MAAMk9I,GAGNl7P,KAAKkvQ,aAAUngR,EAEfiR,KAAKmvQ,aAAUpgR,EAEfiR,KAAK8tS,iBAAc/+S,EAEnBiR,KAAKwtS,aAAe,GACpBxtS,KAAKkuS,iBAAmB,EAC1B,CAEA7xB,aAAAA,GAEE,MAAMx1G,EAAU7mK,KAAKyhS,SAAWjzC,GAAU2+C,GAAsBntS,KAAK/R,SAAW,GAC1EwV,EAAIzD,KAAK8zF,MAAQ9zF,KAAKmxK,SAAWtK,EAAQ/yE,MACzC54C,EAAIl7C,KAAK+zF,OAAS/zF,KAAK6iN,UAAYh8C,EAAQ9yE,OACjD/zF,KAAKkvQ,QAAU7sQ,KAAKC,MAAMtC,KAAK5S,KAAOqW,EAAI,EAAIojK,EAAQz5K,MACtD4S,KAAKmvQ,QAAU9sQ,KAAKC,MAAMtC,KAAK85F,IAAM5+C,EAAI,EAAI2rH,EAAQ/sE,KACrD95F,KAAK8tS,YAAczrS,KAAKC,MAAMD,KAAK8tB,IAAI1sB,EAAGy3C,GAAK,EACjD,CAEAshO,mBAAAA,GACE,MAAM,IAACrsP,EAAG,IAAEC,GAAOpwB,KAAK4iQ,WAAU,GAElC5iQ,KAAKmwB,IAAM4qN,GAAS5qN,KAAS2O,MAAM3O,GAAOA,EAAM,EAChDnwB,KAAKowB,IAAM2qN,GAAS3qN,KAAS0O,MAAM1O,GAAOA,EAAM,EAGhDpwB,KAAK8rS,wBACP,CAMAK,gBAAAA,GACE,OAAO9pS,KAAKwhC,KAAK7jC,KAAK8tS,YAAcX,GAAsBntS,KAAK/R,SACjE,CAEA+vR,kBAAAA,CAAmBv5B,GACjBmnD,GAAgBtlT,UAAU03R,mBAAmB/2R,KAAK+Y,KAAMykP,GAGxDzkP,KAAKwtS,aAAextS,KAAKoiQ,YACtBznP,KAAI,CAACp0B,EAAOquB,KACX,MAAMmiB,EAAQnvB,GAAa5H,KAAK/R,QAAQ0hR,YAAY/nQ,SAAU,CAACrhB,EAAOquB,GAAQ5U,MAC9E,OAAO+2B,GAAmB,IAAVA,EAAcA,EAAQ,EAAE,IAEzChyC,QAAO,CAAC+zC,EAAGvzC,IAAMya,KAAK0kP,MAAMilB,kBAAkBpkR,IACnD,CAEAg4R,GAAAA,GACE,MAAMv9N,EAAOhgD,KAAK/R,QAEd+xD,EAAK6zD,SAAW7zD,EAAK2vN,YAAY97J,QACnCw5L,GAAmBrtS,MAEnBA,KAAKiuS,eAAe,EAAG,EAAG,EAAG,EAEjC,CAEAA,cAAAA,CAAeoB,EAAcC,EAAeC,EAAaC,GACvDxvS,KAAKkvQ,SAAW7sQ,KAAKC,OAAO+sS,EAAeC,GAAiB,GAC5DtvS,KAAKmvQ,SAAW9sQ,KAAKC,OAAOitS,EAAcC,GAAkB,GAC5DxvS,KAAK8tS,aAAezrS,KAAK8tB,IAAInwB,KAAK8tS,YAAc,EAAGzrS,KAAK+tB,IAAIi/Q,EAAcC,EAAeC,EAAaC,GACxG,CAEAngC,aAAAA,CAAcz6P,GAIZ,OAAO+pO,GAAgB/pO,GAHC6nO,IAAOz8O,KAAKwtS,aAAa/nT,QAAU,IAGV+3P,GAF9Bx9O,KAAK/R,QAAQ89Q,YAAc,GAGhD,CAEA0D,6BAAAA,CAA8BlpR,GAC5B,GAAIu0P,GAAcv0P,GAChB,OAAO47E,IAIT,MAAMstO,EAAgBzvS,KAAK8tS,aAAe9tS,KAAKowB,IAAMpwB,KAAKmwB,KAC1D,OAAInwB,KAAK/R,QAAQi8E,SACPlqE,KAAKowB,IAAM7pC,GAASkpT,GAEtBlpT,EAAQyZ,KAAKmwB,KAAOs/Q,CAC9B,CAEAC,6BAAAA,CAA8BpxD,GAC5B,GAAIxD,GAAcwD,GAChB,OAAOn8K,IAGT,MAAMwtO,EAAiBrxD,GAAYt+O,KAAK8tS,aAAe9tS,KAAKowB,IAAMpwB,KAAKmwB,MACvE,OAAOnwB,KAAK/R,QAAQi8E,QAAUlqE,KAAKowB,IAAMu/Q,EAAiB3vS,KAAKmwB,IAAMw/Q,CACvE,CAEA/B,oBAAAA,CAAqBh5R,GACnB,MAAM+6P,EAAc3vQ,KAAKwtS,cAAgB,GAEzC,GAAI54R,GAAS,GAAKA,EAAQ+6P,EAAYlqR,OAAQ,CAC5C,MAAMmqT,EAAajgC,EAAY/6P,GAC/B,OA1LN,SAAiCkkH,EAAQlkH,EAAOmiB,GAC9C,OAAOlnC,GAAcipI,EAAQ,CAC3B/hG,QACAniB,QACAjhB,KAAM,cAEV,CAoLak8S,CAAwB7vS,KAAK07M,aAAc9mM,EAAOg7R,GAE7D,CAEA/B,gBAAAA,CAAiBj5R,EAAOk7R,GAAyC,IAArBpC,EAAAloT,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,GAAkB,EAC5D,MAAM44P,EAAQp+O,KAAKqvQ,cAAcz6P,GAASkoO,GAAU4wD,EACpD,MAAO,CACL1kT,EAAGqZ,KAAKwgP,IAAIzE,GAAS0xD,EAAqB9vS,KAAKkvQ,QAC/CllN,EAAG3nD,KAAKw/O,IAAIzD,GAAS0xD,EAAqB9vS,KAAKmvQ,QAC/C/wB,QAEJ,CAEA4xB,wBAAAA,CAAyBp7P,EAAOruB,GAC9B,OAAOyZ,KAAK6tS,iBAAiBj5R,EAAO5U,KAAKyvQ,8BAA8BlpR,GACzE,CAEAwpT,eAAAA,CAAgBn7R,GACd,OAAO5U,KAAKgwQ,yBAAyBp7P,GAAS,EAAG5U,KAAKwgR,eACxD,CAEAwvB,qBAAAA,CAAsBp7R,GACpB,MAAM,KAACxnB,EAAA,IAAM0sG,EAAA,MAAKzsG,EAAK,OAAEwwI,GAAU79H,KAAKkuS,iBAAiBt5R,GACzD,MAAO,CACLxnB,OACA0sG,MACAzsG,QACAwwI,SAEJ,CAKA0kJ,cAAAA,GACE,MAAM,gBAACn8H,EAAiBikE,MAAM,SAAC1+E,IAAa3rI,KAAK/R,QACjD,GAAIm4J,EAAiB,CACnB,MAAMp2J,EAAMgQ,KAAKhQ,IACjBA,EAAImpJ,OACJnpJ,EAAIm7P,YACJgkD,GAAenvS,KAAMA,KAAKyvQ,8BAA8BzvQ,KAAK6rS,WAAYlgK,EAAU3rI,KAAKwtS,aAAa/nT,QACrGuK,EAAIs7P,YACJt7P,EAAImsN,UAAY/1D,EAChBp2J,EAAI4iC,OACJ5iC,EAAIu3I,UAER,CAKAi7I,QAAAA,GACE,MAAMxyR,EAAMgQ,KAAKhQ,IACXgwD,EAAOhgD,KAAK/R,SACZ,WAACyhR,EAAU,KAAErlD,EAAA,OAAMnuC,GAAUl8H,EAC7BqlP,EAAarlS,KAAKwtS,aAAa/nT,OAErC,IAAIF,EAAG2d,EAAQpB,EAmBf,GAjBIk+C,EAAK2vN,YAAY97J,SA1TzB,SAAyB8yI,EAAO0+C,GAC9B,MAAM,IAACr1S,EAAK/B,SAAS,YAAC0hR,IAAgBhpB,EAEtC,IAAK,IAAIphQ,EAAI8/S,EAAa,EAAG9/S,GAAK,EAAGA,IAAK,CACxC,MAAMg2C,EAAOorN,EAAMunD,iBAAiB3oT,GACpC,IAAKg2C,EAAKmzL,QAER,SAEF,MAAM8yD,EAAc7R,EAAYj/Q,WAAWi2P,EAAMinD,qBAAqBroT,IACtEupT,GAAkB9+S,EAAKwxR,EAAajmP,GACpC,MAAMwyQ,EAASt/C,GAAO+yB,EAAYzlE,OAC5B,EAAC/yN,EAAC,EAAEghE,EAAA,UAAGynH,GAAal2I,EAE1B+xN,GACEt9P,EACA22P,EAAM6mD,aAAajoT,GACnByD,EACAghE,EAAK+jP,EAAO/pN,WAAa,EACzB+pN,EACA,CACE93M,MAAOurL,EAAYvrL,MACnBw7E,UAAWA,EACXuqC,aAAc,UAGpB,CACF,CAgSMi0F,CAAgBjwS,KAAMqlS,GAGpBh7E,EAAKx2G,SACP7zG,KAAKykP,MAAM9+P,SAAQ,CAAC80Q,EAAM7lP,KACxB,GAAc,IAAVA,GAA0B,IAAVA,GAAe5U,KAAKmwB,IAAM,EAAI,CAChDjtB,EAASlD,KAAKyvQ,8BAA8BhV,EAAKl0Q,OACjD,MAAMutC,EAAU9zB,KAAK07M,WAAW9mM,GAC1B4sQ,EAAcn3D,EAAK35N,WAAWojC,GAC9B2tP,EAAoBvlG,EAAOxrL,WAAWojC,IAtRtD,SAAwB6yN,EAAOupD,EAAcllD,EAAQq6C,EAAYxkB,GAC/D,MAAM7wR,EAAM22P,EAAM32P,IACZ27I,EAAWukK,EAAavkK,UAExB,MAAC11C,EAAA,UAAOg5H,GAAaihF,GAErBvkK,IAAa05J,IAAgBpvM,IAAUg5H,GAAa+7B,EAAS,IAInEh7P,EAAImpJ,OACJnpJ,EAAIi9P,YAAch3J,EAClBjmG,EAAIi/N,UAAYA,EAChBj/N,EAAI0yR,YAAY7B,EAAWr4B,MAC3Bx4P,EAAI2yR,eAAiB9B,EAAWp4B,WAEhCz4P,EAAIm7P,YACJgkD,GAAexoD,EAAOqE,EAAQr/G,EAAU05J,GACxCr1S,EAAIs7P,YACJt7P,EAAIs2J,SACJt2J,EAAIu3I,UACN,CAmQU4oK,CAAenwS,KAAMwhR,EAAat+Q,EAAQmiS,EAAY5jB,OAKxD/R,EAAW77J,QAAS,CAGtB,IAFA7jH,EAAImpJ,OAEC5zJ,EAAI8/S,EAAa,EAAG9/S,GAAK,EAAGA,IAAK,CACpC,MAAMi8R,EAAc9R,EAAWh/Q,WAAWsP,KAAK4tS,qBAAqBroT,KAC9D,MAAC0wG,EAAA,UAAOg5H,GAAauyD,EAEtBvyD,GAAch5H,IAInBjmG,EAAIi/N,UAAYA,EAChBj/N,EAAIi9P,YAAch3J,EAElBjmG,EAAI0yR,YAAYlB,EAAYjoB,YAC5BvpQ,EAAI2yR,eAAiBnB,EAAYhoB,iBAEjCt2P,EAASlD,KAAKyvQ,8BAA8BzvN,EAAKykM,MAAMv6K,QAAUlqE,KAAKmwB,IAAMnwB,KAAKowB,KACjFtuB,EAAW9B,KAAK6tS,iBAAiBtoT,EAAG2d,GACpClT,EAAIm7P,YACJn7P,EAAIu7P,OAAOvrP,KAAKkvQ,QAASlvQ,KAAKmvQ,SAC9Bn/Q,EAAIw7P,OAAO1pP,EAAS9Y,EAAG8Y,EAASkoD,GAChCh6D,EAAIs2J,SACN,CAEAt2J,EAAIu3I,UAER,CAKAq7I,UAAAA,GAAc,CAKdE,UAAAA,GACE,MAAM9yR,EAAMgQ,KAAKhQ,IACXgwD,EAAOhgD,KAAK/R,QACZqqR,EAAWt4N,EAAKykM,MAEtB,IAAK6zB,EAASzkK,QACZ,OAGF,MAAMk4J,EAAa/rQ,KAAKqvQ,cAAc,GACtC,IAAInsQ,EAAQ4wF,EAEZ9jG,EAAImpJ,OACJnpJ,EAAI+uB,UAAU/e,KAAKkvQ,QAASlvQ,KAAKmvQ,SACjCn/Q,EAAIo4L,OAAO2jF,GACX/7Q,EAAIyhL,UAAY,SAChBzhL,EAAIgsN,aAAe,SAEnBh8M,KAAKykP,MAAM9+P,SAAQ,CAAC80Q,EAAM7lP,KACxB,GAAe,IAAVA,GAAe5U,KAAKmwB,KAAO,IAAO6vB,EAAKkqB,QAC1C,OAGF,MAAMs3M,EAAclJ,EAAS5nR,WAAWsP,KAAK07M,WAAW9mM,IAClDkrQ,EAAWrxB,GAAO+yB,EAAYzlE,MAGpC,GAFA74M,EAASlD,KAAKyvQ,8BAA8BzvQ,KAAKykP,MAAM7vO,GAAOruB,OAE1Di7R,EAAYn4B,kBAAmB,CACjCr5P,EAAI+rN,KAAO+jE,EAASj1R,OACpBipG,EAAQ9jG,EAAIssN,YAAYm+C,EAAK1jO,OAAO+8D,MACpC9jG,EAAImsN,UAAYqlE,EAAYl4B,cAE5B,MAAMziF,EAAU2nF,GAAUgzB,EAAYj4B,iBACtCv5P,EAAIq9P,UACDv5J,EAAQ,EAAI+yE,EAAQz5K,MACpB8V,EAAS48Q,EAASjiO,KAAO,EAAIgpH,EAAQ/sE,IACtChG,EAAQ+yE,EAAQ/yE,MAChBgsL,EAASjiO,KAAOgpH,EAAQ9yE,QAI5Bu5J,GAAWt9P,EAAKyqQ,EAAK1jO,MAAO,GAAI7zB,EAAQ48Q,EAAU,CAChD7pL,MAAOurL,EAAYvrL,MACnBs3J,YAAai0B,EAAY14B,gBACzBhkK,YAAa08L,EAAY34B,iBACzB,IAGJ74P,EAAIu3I,SACN,CAKAy7I,SAAAA,GAAa,EACfn9R,GA1VqBupT,GAA0B,KAEjC,gBAAevpT,GAFRupT,GAA0B,WAO3B,CAChBv7L,SAAS,EAGTu8L,SAAS,EACTtuS,SAAU,YAEV4tQ,WAAY,CACV77J,SAAS,EACTo7G,UAAW,EACXsqC,WAAY,GACZC,iBAAkB,GAGpBnvC,KAAM,CACJ1+E,UAAU,GAGZogI,WAAY,EAGZtnB,MAAO,CAEL4E,mBAAmB,EAEnBzhP,SAAUy9O,GAAMf,WAAWC,SAG7BorB,YAAa,CACXrmB,mBAAev6P,EAGfw6P,gBAAiB,EAGjB11I,SAAS,EAGTkoG,KAAM,CACJl+J,KAAM,IAIRj2C,SAASmvB,GACAA,EAIT8vI,QAAS,EAGT8mI,mBAAmB,KAErB9nT,GA5DiBupT,GAA0B,gBA8DtB,CACrB,mBAAoB,cACpB,oBAAqB,QACrB,cAAe,UACfvpT,GAlEiBupT,GAA0B,cAoExB,CACnB1/B,WAAY,CACVhoB,UAAW,UCxYjB,MAAM2oD,GAAY,CAChBC,YAAa,CAACC,QAAQ,EAAM1yP,KAAM,EAAG4uP,MAAO,KAC5CzoO,OAAQ,CAACusO,QAAQ,EAAM1yP,KAAM,IAAM4uP,MAAO,IAC1CrmE,OAAQ,CAACmqE,QAAQ,EAAM1yP,KAAM,IAAO4uP,MAAO,IAC3CtmE,KAAM,CAACoqE,QAAQ,EAAM1yP,KAAM,KAAS4uP,MAAO,IAC3C+D,IAAK,CAACD,QAAQ,EAAM1yP,KAAM,MAAU4uP,MAAO,IAC3Cl2M,KAAM,CAACg6M,QAAQ,EAAO1yP,KAAM,OAAW4uP,MAAO,GAC9Ct2M,MAAO,CAACo6M,QAAQ,EAAM1yP,KAAM,OAAS4uP,MAAO,IAC5CgE,QAAS,CAACF,QAAQ,EAAO1yP,KAAM,OAAS4uP,MAAO,GAC/CiE,KAAM,CAACH,QAAQ,EAAM1yP,KAAM,SAMvB8yP,GAA6C/rT,OAAOD,KAAK0rT,IAM/D,SAASO,GAAOzvS,EAAGC,GACjB,OAAOD,EAAIC,CACb,CAOA,SAASqG,GAAMk/O,EAAOvmP,GACpB,GAAI06O,GAAc16O,GAChB,OAAO,KAGT,MAAMywS,EAAUlqD,EAAMmqD,UAChB,OAAC5wR,EAAA,MAAQU,EAAA,WAAOmwR,GAAcpqD,EAAMqqD,WAC1C,IAAIzqT,EAAQ6Z,EAaZ,MAXsB,oBAAX8f,IACT35B,EAAQ25B,EAAO35B,IAIZw0P,GAASx0P,KACZA,EAA0B,kBAAX25B,EACX2wR,EAAQppS,MAAMlhB,EAA4B25B,GAC1C2wR,EAAQppS,MAAMlhB,IAGN,OAAVA,EACK,MAGLq6B,IACFr6B,EAAkB,SAAVq6B,IAAqBq3I,GAAS84I,KAA8B,IAAfA,EAEjDF,EAAQzgC,QAAQ7pR,EAAOq6B,GADvBiwR,EAAQzgC,QAAQ7pR,EAAO,UAAWwqT,KAIhCxqT,EACV,CAUA,SAAS0qT,GAA0BC,EAAS/gR,EAAKC,EAAK+gR,GACpD,MAAM51D,EAAOo1D,GAAMlrT,OAEnB,IAAK,IAAIF,EAAIorT,GAAM9pT,QAAQqqT,GAAU3rT,EAAIg2P,EAAO,IAAKh2P,EAAG,CACtD,MAAMwlK,EAAWslJ,GAAUM,GAAMprT,IAC3Bi8O,EAASz2E,EAAS0hJ,MAAQ1hJ,EAAS0hJ,MAAQhyR,OAAOo8M,iBAExD,GAAI9rE,EAASwlJ,QAAUluS,KAAKwhC,MAAMzT,EAAMD,IAAQqxM,EAASz2E,EAASltG,QAAUszP,EAC1E,OAAOR,GAAMprT,EAEjB,CAEA,OAAOorT,GAAMp1D,EAAO,EACtB,CAuCA,SAAS61D,GAAQ3sD,EAAO9kM,EAAM0xP,GAC5B,GAAKA,GAEE,GAAIA,EAAW5rT,OAAQ,CAC5B,MAAM,GAAC+iE,EAAE,GAAED,GAAM62L,GAAQiyD,EAAY1xP,GAErC8kM,EADkB4sD,EAAW7oP,IAAO7I,EAAO0xP,EAAW7oP,GAAM6oP,EAAW9oP,KACpD,QAJnBk8L,EAAM9kM,IAAQ,CAMlB,CA8BA,SAAS2xP,GAAoB3qD,EAAOxrO,EAAQo2R,GAC1C,MAAM9sD,EAAQ,GAER9pO,EAAM,CAAC,EACP4gO,EAAOpgO,EAAO11B,OACpB,IAAIF,EAAGgB,EAEP,IAAKhB,EAAI,EAAGA,EAAIg2P,IAAQh2P,EACtBgB,EAAQ40B,EAAO51B,GACfo1B,EAAIp0B,GAAShB,EAEbk/P,EAAMt/P,KAAK,CACToB,QACA4iQ,OAAO,IAMX,OAAiB,IAAT5N,GAAeg2D,EAxCzB,SAAuB5qD,EAAOlC,EAAO9pO,EAAK42R,GACxC,MAAMV,EAAUlqD,EAAMmqD,SAChBpwO,GAASmwO,EAAQzgC,QAAQ3rB,EAAM,GAAGl+P,MAAOgrT,GACzC5wO,EAAO8jL,EAAMA,EAAMh/P,OAAS,GAAGc,MACrC,IAAI4iQ,EAAOv0O,EAEX,IAAKu0O,EAAQzoL,EAAOyoL,GAASxoL,EAAMwoL,GAAS0nD,EAAQltR,IAAIwlO,EAAO,EAAGooD,GAChE38R,EAAQ+F,EAAIwuO,GACRv0O,GAAS,IACX6vO,EAAM7vO,GAAOu0O,OAAQ,GAGzB,OAAO1E,CACT,CA2B8C+sD,CAAc7qD,EAAOlC,EAAO9pO,EAAK42R,GAAzC9sD,CACtC,CAEe,MAAMgtD,WAAkBh3B,GAgDrCp0R,WAAAA,CAAY0D,GACVi0H,MAAMj0H,GAGNiW,KAAKmmQ,OAAS,CACZ5mQ,KAAM,GACNs3B,OAAQ,GACRghC,IAAK,IAIP73D,KAAK0xS,MAAQ,MAEb1xS,KAAK2xS,gBAAa5iT,EAClBiR,KAAK4xS,SAAW,CAAC,EACjB5xS,KAAK6xS,aAAc,EACnB7xS,KAAKgxS,gBAAajiT,CACpB,CAEAorE,IAAAA,CAAK4xN,GAAsB,IAAX/rO,EAAOx6D,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAA,GAAAA,UAAA,MACrB,MAAMm6D,EAAOosO,EAAUpsO,OAASosO,EAAUpsO,KAAO,CAAC,GAE5CkxP,EAAU7wS,KAAK8wS,SAAW,IAAIxgC,GAAeyb,EAAUzb,SAAStgQ,MAEtE6gS,EAAQ12O,KAAKna,GAMbg8L,GAAQr8L,EAAKmyP,eAAgBjB,EAAQnhL,WAErC1vH,KAAKgxS,WAAa,CAChB9wR,OAAQy/B,EAAKz/B,OACbU,MAAO++B,EAAK/+B,MACZmwR,WAAYpxP,EAAKoxP,YAGnB/yL,MAAM7jD,KAAK4xN,GAEX/rR,KAAK6xS,YAAc7xP,EAAKyoF,UAC1B,CAOAhhI,KAAAA,CAAM/a,EAAKkoB,GACT,YAAY7lB,IAARrC,EACK,KAEF+a,GAAMzH,KAAMtT,EACrB,CAEA0oR,YAAAA,GACEp3J,MAAMo3J,eACNp1Q,KAAKmmQ,OAAS,CACZ5mQ,KAAM,GACNs3B,OAAQ,GACRghC,IAAK,GAET,CAEA2kN,mBAAAA,GACE,MAAMvuR,EAAU+R,KAAK/R,QACf4iT,EAAU7wS,KAAK8wS,SACf/yH,EAAO9vL,EAAQ0xD,KAAKo+H,MAAQ,MAElC,IAAI,IAAC5tJ,EAAA,IAAKC,EAAA,WAAKywN,EAAA,WAAYC,GAAc9gP,KAAK+gP,gBAK9C,SAASgxD,EAAatiL,GACfoxH,GAAe/hN,MAAM2wF,EAAOt/F,OAC/BA,EAAM9tB,KAAK8tB,IAAIA,EAAKs/F,EAAOt/F,MAExB2wN,GAAehiN,MAAM2wF,EAAOr/F,OAC/BA,EAAM/tB,KAAK+tB,IAAIA,EAAKq/F,EAAOr/F,KAE/B,CAGKywN,GAAeC,IAElBixD,EAAa/xS,KAAKgyS,mBAIK,UAAnB/jT,EAAQwhI,QAA+C,WAAzBxhI,EAAQw2P,MAAM/+P,QAC9CqsT,EAAa/xS,KAAK4iQ,WAAU,KAIhCzyO,EAAM4qN,GAAS5qN,KAAS2O,MAAM3O,GAAOA,GAAO0gR,EAAQzgC,QAAQhgQ,KAAKuqB,MAAOojJ,GACxE3tJ,EAAM2qN,GAAS3qN,KAAS0O,MAAM1O,GAAOA,GAAOygR,EAAQxgC,MAAMjgQ,KAAKuqB,MAAOojJ,GAAQ,EAG9E/9K,KAAKmwB,IAAM9tB,KAAK8tB,IAAIA,EAAKC,EAAM,GAC/BpwB,KAAKowB,IAAM/tB,KAAK+tB,IAAID,EAAM,EAAGC,EAC/B,CAKA4hR,eAAAA,GACE,MAAM7qT,EAAM6Y,KAAKiyS,qBACjB,IAAI9hR,EAAM1V,OAAOmiO,kBACbxsN,EAAM3V,OAAOuoP,kBAMjB,OAJI77Q,EAAI1B,SACN0qC,EAAMhpC,EAAI,GACVipC,EAAMjpC,EAAIA,EAAI1B,OAAS,IAElB,CAAC0qC,MAAKC,MACf,CAKA0sP,UAAAA,GACE,MAAM7uR,EAAU+R,KAAK/R,QACfikT,EAAWjkT,EAAQ0xD,KACnB24N,EAAWrqR,EAAQw2P,MACnB4sD,EAAiC,WAApB/4B,EAAS5yR,OAAsBsa,KAAKiyS,qBAAuBjyS,KAAKmyS,YAE5D,UAAnBlkT,EAAQwhI,QAAsB4hL,EAAW5rT,SAC3Cua,KAAKmwB,IAAMnwB,KAAKo7Q,UAAYi2B,EAAW,GACvCrxS,KAAKowB,IAAMpwB,KAAKm7Q,UAAYk2B,EAAWA,EAAW5rT,OAAS,IAG7D,MAAM0qC,EAAMnwB,KAAKmwB,IAGXs0N,EpE1SH,SAAwBtpO,EAAkBgV,EAAaC,GAC5D,IAAIiwB,EAAQ,EACRphB,EAAM9jB,EAAO11B,OAEjB,KAAO46D,EAAQphB,GAAO9jB,EAAOklC,GAASlwB,GACpCkwB,IAEF,KAAOphB,EAAMohB,GAASllC,EAAO8jB,EAAM,GAAK7O,GACtC6O,IAGF,OAAOohB,EAAQ,GAAKphB,EAAM9jB,EAAO11B,OAC7B01B,EAAO3yB,MAAM63D,EAAOphB,GACpB9jB,CACN,CoE4RkBi3R,CAAef,EAAYlhR,EAF7BnwB,KAAKowB,KAkBjB,OAXApwB,KAAK0xS,MAAQQ,EAASn0H,OAASu6F,EAASvvB,SACpCkoD,GAA0BiB,EAAShB,QAASlxS,KAAKmwB,IAAKnwB,KAAKowB,IAAKpwB,KAAKqyS,kBAAkBliR,IArR/F,SAAoCw2N,EAAOu3B,EAAUgzB,EAAS/gR,EAAKC,GACjE,IAAK,IAAI7qC,EAAIorT,GAAMlrT,OAAS,EAAGF,GAAKorT,GAAM9pT,QAAQqqT,GAAU3rT,IAAK,CAC/D,MAAMw4L,EAAO4yH,GAAMprT,GACnB,GAAI8qT,GAAUtyH,GAAMwyH,QAAU5pD,EAAMmqD,SAASp7K,KAAKtlG,EAAKD,EAAK4tJ,IAASmgG,EAAW,EAC9E,OAAOngG,CAEX,CAEA,OAAO4yH,GAAMO,EAAUP,GAAM9pT,QAAQqqT,GAAW,EAClD,CA6QQoB,CAA2BtyS,KAAMykP,EAAMh/P,OAAQysT,EAAShB,QAASlxS,KAAKmwB,IAAKnwB,KAAKowB,MACpFpwB,KAAK2xS,WAAcr5B,EAASnvB,MAAM58M,SAA0B,SAAfvsC,KAAK0xS,MAxQtD,SAA4B3zH,GAC1B,IAAK,IAAIx4L,EAAIorT,GAAM9pT,QAAQk3L,GAAQ,EAAGw9D,EAAOo1D,GAAMlrT,OAAQF,EAAIg2P,IAAQh2P,EACrE,GAAI8qT,GAAUM,GAAMprT,IAAIgrT,OACtB,OAAOI,GAAMprT,EAGnB,CAmQQgtT,CAAmBvyS,KAAK0xS,YADyC3iT,EAErEiR,KAAKwyS,YAAYnB,GAEbpjT,EAAQi8E,SACVu6K,EAAMv6K,UAGDonO,GAAoBtxS,KAAMykP,EAAOzkP,KAAK2xS,WAC/C,CAEAt0B,aAAAA,GAGMr9Q,KAAK/R,QAAQwkT,qBACfzyS,KAAKwyS,YAAYxyS,KAAKykP,MAAM9pO,KAAI8/O,IAASA,EAAKl0Q,QAElD,CAUAisT,WAAAA,GAA6B,IAGvB9xO,EAAOC,EAHD0wO,EAAa7rT,UAAAC,OAAA,QAAAsJ,IAAAvJ,UAAC,GAADA,UAAC,GAAD,GACnB66D,EAAQ,EACRphB,EAAM,EAGNj/B,KAAK/R,QAAQiV,QAAUmuS,EAAW5rT,SACpCi7E,EAAQ1gE,KAAK0yS,mBAAmBrB,EAAW,IAEzChxP,EADwB,IAAtBgxP,EAAW5rT,OACL,EAAIi7E,GAEH1gE,KAAK0yS,mBAAmBrB,EAAW,IAAM3wO,GAAS,EAE7DC,EAAO3gE,KAAK0yS,mBAAmBrB,EAAWA,EAAW5rT,OAAS,IAE5Dw5C,EADwB,IAAtBoyQ,EAAW5rT,OACPk7E,GAECA,EAAO3gE,KAAK0yS,mBAAmBrB,EAAWA,EAAW5rT,OAAS,KAAO,GAGhF,MAAMonE,EAAQwkP,EAAW5rT,OAAS,EAAI,GAAM,IAC5C46D,EAAQ6+L,GAAY7+L,EAAO,EAAGwM,GAC9B5tB,EAAMigN,GAAYjgN,EAAK,EAAG4tB,GAE1B7sD,KAAK4xS,SAAW,CAACvxP,QAAOphB,MAAKuiM,OAAQ,GAAKnhL,EAAQ,EAAIphB,GACxD,CASAkzQ,SAAAA,GACE,MAAMtB,EAAU7wS,KAAK8wS,SACf3gR,EAAMnwB,KAAKmwB,IACXC,EAAMpwB,KAAKowB,IACXniC,EAAU+R,KAAK/R,QACfikT,EAAWjkT,EAAQ0xD,KAEnBupM,EAAQgpD,EAASn0H,MAAQkzH,GAA0BiB,EAAShB,QAAS/gR,EAAKC,EAAKpwB,KAAKqyS,kBAAkBliR,IACtG+7Q,EAAWjxD,GAAehtP,EAAQw2P,MAAMynD,SAAU,GAClDyG,EAAoB,SAAVzpD,GAAmBgpD,EAASnB,WACtC6B,EAAa36I,GAAS06I,KAAwB,IAAZA,EAClCluD,EAAQ,CAAC,EACf,IACI9kM,EAAM3Y,EADN05B,EAAQvwC,EAYZ,GARIyiR,IACFlyO,GAASmwO,EAAQzgC,QAAQ1vM,EAAO,UAAWiyO,IAI7CjyO,GAASmwO,EAAQzgC,QAAQ1vM,EAAOkyO,EAAa,MAAQ1pD,GAGjD2nD,EAAQn7K,KAAKtlG,EAAKD,EAAK+4N,GAAS,IAASgjD,EAC3C,MAAM,IAAI7hT,MAAM8lC,EAAM,QAAUC,EAAM,uCAAyC87Q,EAAW,IAAMhjD,GAGlG,MAAMmoD,EAAsC,SAAzBpjT,EAAQw2P,MAAM/+P,QAAqBsa,KAAK6yS,oBAC3D,IAAKlzP,EAAO+gB,EAAO15B,EAAQ,EAAG2Y,EAAOvvB,EAAKuvB,GAAQkxP,EAAQltR,IAAIg8B,EAAMusP,EAAUhjD,GAAQliN,IACpFoqQ,GAAQ3sD,EAAO9kM,EAAM0xP,GAQvB,OALI1xP,IAASvvB,GAA0B,UAAnBniC,EAAQwhI,QAAgC,IAAVzoF,GAChDoqQ,GAAQ3sD,EAAO9kM,EAAM0xP,GAIhBzsT,OAAOD,KAAK8/P,GAAOjsN,KAAKo4Q,IAAQj2R,KAAI3xB,IAAMA,GACnD,CAMAu6Q,gBAAAA,CAAiBh9Q,GACf,MAAMsqT,EAAU7wS,KAAK8wS,SACfoB,EAAWlyS,KAAK/R,QAAQ0xD,KAE9B,OAAIuyP,EAASY,cACJjC,EAAQpoS,OAAOliB,EAAO2rT,EAASY,eAEjCjC,EAAQpoS,OAAOliB,EAAO2rT,EAASJ,eAAeh3P,SACvD,CAOAryC,MAAAA,CAAOliB,EAAOkiB,GACZ,MACMinH,EADU1vH,KAAK/R,QACG0xD,KAAKmyP,eACvB/zH,EAAO/9K,KAAK0xS,MACZqB,EAAMtqS,GAAUinH,EAAQquD,GAC9B,OAAO/9K,KAAK8wS,SAASroS,OAAOliB,EAAOwsT,EACrC,CAWAC,mBAAAA,CAAoBrzP,EAAM/qC,EAAO6vO,EAAOh8O,GACtC,MAAMxa,EAAU+R,KAAK/R,QACfswD,EAAYtwD,EAAQw2P,MAAM78O,SAEhC,GAAI22C,EACF,OAAO32C,GAAK22C,EAAW,CAACoB,EAAM/qC,EAAO6vO,GAAQzkP,MAG/C,MAAM0vH,EAAUzhI,EAAQ0xD,KAAKmyP,eACvB/zH,EAAO/9K,KAAK0xS,MACZH,EAAYvxS,KAAK2xS,WACjBsB,EAAcl1H,GAAQruD,EAAQquD,GAC9Bm1H,EAAc3B,GAAa7hL,EAAQ6hL,GACnC92C,EAAOhW,EAAM7vO,GACbu0O,EAAQooD,GAAa2B,GAAez4C,GAAQA,EAAKtR,MAEvD,OAAOnpP,KAAK8wS,SAASroS,OAAOk3C,EAAMl3C,IAAW0gP,EAAQ+pD,EAAcD,GACrE,CAKAj1B,kBAAAA,CAAmBv5B,GACjB,IAAIl/P,EAAGg2P,EAAMkf,EAEb,IAAKl1Q,EAAI,EAAGg2P,EAAOkJ,EAAMh/P,OAAQF,EAAIg2P,IAAQh2P,EAC3Ck1Q,EAAOhW,EAAMl/P,GACbk1Q,EAAK1jO,MAAQ/2B,KAAKgzS,oBAAoBv4C,EAAKl0Q,MAAOhB,EAAGk/P,EAEzD,CAMAiuD,kBAAAA,CAAmBnsT,GACjB,OAAiB,OAAVA,EAAiB47E,KAAO57E,EAAQyZ,KAAKmwB,MAAQnwB,KAAKowB,IAAMpwB,KAAKmwB,IACtE,CAMA6wN,gBAAAA,CAAiBz6P,GACf,MAAM4sT,EAAUnzS,KAAK4xS,SACf5zP,EAAMh+C,KAAK0yS,mBAAmBnsT,GACpC,OAAOyZ,KAAK8pQ,oBAAoBqpC,EAAQ9yP,MAAQrC,GAAOm1P,EAAQ3xE,OACjE,CAMAwoC,gBAAAA,CAAiB7f,GACf,MAAMgpD,EAAUnzS,KAAK4xS,SACf5zP,EAAMh+C,KAAKugR,mBAAmBp2B,GAASgpD,EAAQ3xE,OAAS2xE,EAAQl0Q,IACtE,OAAOj/B,KAAKmwB,IAAM6tB,GAAOh+C,KAAKowB,IAAMpwB,KAAKmwB,IAC3C,CAOAijR,aAAAA,CAAcr8Q,GACZ,MAAMs8Q,EAAYrzS,KAAK/R,QAAQw2P,MACzB6uD,EAAiBtzS,KAAKhQ,IAAIssN,YAAYvlL,GAAO+8D,MAC7CsqJ,EAAQZ,GAAUx9O,KAAKmoQ,eAAiBkrC,EAAU1qD,YAAc0qD,EAAU3qD,aAC1E6qD,EAAclxS,KAAKwgP,IAAIzE,GACvBo1D,EAAcnxS,KAAKw/O,IAAIzD,GACvBq1D,EAAezzS,KAAKmgR,wBAAwB,GAAGtiO,KAErD,MAAO,CACLp6C,EAAI6vS,EAAiBC,EAAgBE,EAAeD,EACpDt4P,EAAIo4P,EAAiBE,EAAgBC,EAAeF,EAExD,CAOAlB,iBAAAA,CAAkBqB,GAChB,MAAMxB,EAAWlyS,KAAK/R,QAAQ0xD,KACxBmyP,EAAiBI,EAASJ,eAG1BrpS,EAASqpS,EAAeI,EAASn0H,OAAS+zH,EAAexB,YACzDqD,EAAe3zS,KAAKgzS,oBAAoBU,EAAa,EAAGpC,GAAoBtxS,KAAM,CAAC0zS,GAAc1zS,KAAK2xS,YAAalpS,GACnHo1C,EAAO79C,KAAKozS,cAAcO,GAG1BxC,EAAW9uS,KAAKC,MAAMtC,KAAKmoQ,eAAiBnoQ,KAAK8zF,MAAQj2C,EAAKp6C,EAAIzD,KAAK+zF,OAASl2C,EAAK3C,GAAK,EAChG,OAAOi2P,EAAW,EAAIA,EAAW,CACnC,CAKA0B,iBAAAA,GACE,IACIttT,EAAGg2P,EADH81D,EAAarxS,KAAKmmQ,OAAO5mQ,MAAQ,GAGrC,GAAI8xS,EAAW5rT,OACb,OAAO4rT,EAGT,MAAMz1B,EAAQ57Q,KAAK29P,0BAEnB,GAAI39P,KAAK6xS,aAAej2B,EAAMn2R,OAC5B,OAAQua,KAAKmmQ,OAAO5mQ,KAAOq8Q,EAAM,GAAGtqD,WAAW8xC,mBAAmBpjQ,MAGpE,IAAKza,EAAI,EAAGg2P,EAAOqgC,EAAMn2R,OAAQF,EAAIg2P,IAAQh2P,EAC3C8rT,EAAaA,EAAW3iT,OAAOktR,EAAMr2R,GAAG+rO,WAAW8xC,mBAAmBpjQ,OAGxE,OAAQA,KAAKmmQ,OAAO5mQ,KAAOS,KAAKwuI,UAAU6iK,EAC5C,CAKAY,kBAAAA,GACE,MAAMZ,EAAarxS,KAAKmmQ,OAAOtvO,QAAU,GACzC,IAAItxC,EAAGg2P,EAEP,GAAI81D,EAAW5rT,OACb,OAAO4rT,EAGT,MAAMx6Q,EAAS72B,KAAKoiQ,YACpB,IAAK78Q,EAAI,EAAGg2P,EAAO1kN,EAAOpxC,OAAQF,EAAIg2P,IAAQh2P,EAC5C8rT,EAAWlsT,KAAKsiB,GAAMzH,KAAM62B,EAAOtxC,KAGrC,OAAQya,KAAKmmQ,OAAOtvO,OAAS72B,KAAK6xS,YAAcR,EAAarxS,KAAKwuI,UAAU6iK,EAC9E,CAMA7iK,SAAAA,CAAUrzH,GAER,OAAO2kO,GAAa3kO,EAAOqd,KAAKo4Q,IAClC,ECtpBF,SAASz2D,GAAYkF,EAAO9qO,EAAK21D,GAC/B,IAEI0pO,EAAYC,EAAYC,EAAYC,EAFpCvrP,EAAK,EACLD,EAAK82L,EAAM55P,OAAS,EAEpBykF,GACE31D,GAAO8qO,EAAM72L,GAAIxK,KAAOzpC,GAAO8qO,EAAM92L,GAAIvK,OACzCwK,KAAID,MAAMi3L,GAAaH,EAAO,MAAO9qO,MAEvCypC,IAAK41P,EAAYj0P,KAAMm0P,GAAcz0D,EAAM72L,MAC3CxK,IAAK61P,EAAYl0P,KAAMo0P,GAAc10D,EAAM92L,MAEzCh0C,GAAO8qO,EAAM72L,GAAI7I,MAAQprC,GAAO8qO,EAAM92L,GAAI5I,QAC1C6I,KAAID,MAAMi3L,GAAaH,EAAO,OAAQ9qO,MAExCorC,KAAMi0P,EAAY51P,IAAK81P,GAAcz0D,EAAM72L,MAC3C7I,KAAMk0P,EAAY71P,IAAK+1P,GAAc10D,EAAM92L,KAG/C,MAAMyrP,EAAOH,EAAaD,EAC1B,OAAOI,EAAOF,GAAcC,EAAaD,IAAev/R,EAAMq/R,GAAcI,EAAOF,CACrF,CDmoBAjuT,GA5dqB4rT,GAAkB,KAEzB,QAAO5rT,GAFA4rT,GAAkB,WAOnB,CAQhBhiL,OAAQ,OAER6gJ,SAAU,CAAC,EACX3wN,KAAM,CACJz/B,QAAQ,EACR69J,MAAM,EACNn9J,OAAO,EACPmwR,YAAY,EACZG,QAAS,cACTY,eAAgB,CAAC,GAEnBrtD,MAAO,CASL/+P,OAAQ,OAERkiB,UAAU,EAEVuhP,MAAO,CACL58M,SAAS,MC7MjB,MAAM0nQ,WAAwBxC,GAY5BprT,WAAAA,CAAY0D,GACVi0H,MAAMj0H,GAGNiW,KAAKk0S,OAAS,GAEdl0S,KAAKm0S,aAAUplT,EAEfiR,KAAKo0S,iBAAcrlT,CACrB,CAKAyjT,WAAAA,GACE,MAAMnB,EAAarxS,KAAKq0S,yBAClBh1D,EAAQr/O,KAAKk0S,OAASl0S,KAAKs0S,iBAAiBjD,GAClDrxS,KAAKm0S,QAAUh6D,GAAYkF,EAAOr/O,KAAKmwB,KACvCnwB,KAAKo0S,YAAcj6D,GAAYkF,EAAOr/O,KAAKowB,KAAOpwB,KAAKm0S,QACvDn2L,MAAMw0L,YAAYnB,EACpB,CAaAiD,gBAAAA,CAAiBjD,GACf,MAAM,IAAClhR,EAAG,IAAEC,GAAOpwB,KACbi+B,EAAQ,GACRohN,EAAQ,GACd,IAAI95P,EAAGg2P,EAAMpnL,EAAMoyM,EAAMv+Q,EAEzB,IAAKzC,EAAI,EAAGg2P,EAAO81D,EAAW5rT,OAAQF,EAAIg2P,IAAQh2P,EAChDghR,EAAO8qC,EAAW9rT,GACdghR,GAAQp2O,GAAOo2O,GAAQn2O,GACzB6N,EAAM94C,KAAKohR,GAIf,GAAItoO,EAAMx4C,OAAS,EAEjB,MAAO,CACL,CAACk6D,KAAMxvB,EAAK6tB,IAAK,GACjB,CAAC2B,KAAMvvB,EAAK4tB,IAAK,IAIrB,IAAKz4D,EAAI,EAAGg2P,EAAOt9M,EAAMx4C,OAAQF,EAAIg2P,IAAQh2P,EAC3CyC,EAAOi2C,EAAM14C,EAAI,GACjB4uE,EAAOl2B,EAAM14C,EAAI,GACjBghR,EAAOtoO,EAAM14C,GAGT8c,KAAKue,OAAO54B,EAAOmsE,GAAQ,KAAOoyM,GACpClnB,EAAMl6P,KAAK,CAACw6D,KAAM4mN,EAAMvoN,IAAKz4D,GAAKg2P,EAAO,KAG7C,OAAO8D,CACT,CAQA8yD,SAAAA,GACE,MAAMhiR,EAAMnwB,KAAKmwB,IACXC,EAAMpwB,KAAKowB,IACjB,IAAIihR,EAAarzL,MAAM60L,oBAOvB,OANKxB,EAAW9iT,SAAS4hC,IAASkhR,EAAW5rT,QAC3C4rT,EAAWxqQ,OAAO,EAAG,EAAG1W,GAErBkhR,EAAW9iT,SAAS6hC,IAA8B,IAAtBihR,EAAW5rT,QAC1C4rT,EAAWlsT,KAAKirC,GAEXihR,EAAW74Q,MAAK,CAACr3B,EAAGC,IAAMD,EAAIC,GACvC,CAOAizS,sBAAAA,GACE,IAAIhD,EAAarxS,KAAKmmQ,OAAOtuM,KAAO,GAEpC,GAAIw5O,EAAW5rT,OACb,OAAO4rT,EAGT,MAAM9xS,EAAOS,KAAK6yS,oBACZ97Q,EAAQ/2B,KAAKiyS,qBAUnB,OANEZ,EAHE9xS,EAAK9Z,QAAUsxC,EAAMtxC,OAGVua,KAAKwuI,UAAUjvI,EAAK7Q,OAAOqoC,IAE3Bx3B,EAAK9Z,OAAS8Z,EAAOw3B,EAEpCs6Q,EAAarxS,KAAKmmQ,OAAOtuM,IAAMw5O,EAExBA,CACT,CAMAqB,kBAAAA,CAAmBnsT,GACjB,OAAQ4zP,GAAYn6O,KAAKk0S,OAAQ3tT,GAASyZ,KAAKm0S,SAAWn0S,KAAKo0S,WACjE,CAMApqC,gBAAAA,CAAiB7f,GACf,MAAMgpD,EAAUnzS,KAAK4xS,SACfvxB,EAAUrgR,KAAKugR,mBAAmBp2B,GAASgpD,EAAQ3xE,OAAS2xE,EAAQl0Q,IAC1E,OAAOk7M,GAAYn6O,KAAKk0S,OAAQ7zB,EAAUrgR,KAAKo0S,YAAcp0S,KAAKm0S,SAAS,EAC7E,EACFtuT,GA7IMouT,GAAwB,KAEhB,cAAapuT,GAFrBouT,GAAwB,WAOVxC,GAAUxwF,gBCrBjBszF,GAAgB,CAC3BlwB,GACAv3R,GACA25P,6ICVI+tD,GAAsB,QAErB,SAASC,GAAgBjoT,EAAsBjG,GACjC,oBAARiG,EACTA,EAAIjG,GACKiG,IACTA,EAAIL,QAAU5F,EAElB,CAcO,SAASmuT,GAKdC,EACAC,GAEAD,EAAY99Q,OAAS+9Q,CACvB,CAEO,SAASC,GAKdF,EACAG,GACA,IAAAC,EAAAvvT,UAAAC,OAAA,YAAAD,UAAA,GAAAA,UAAA,GAAegvT,GAEf,MAAMQ,EAA8C,GAEpDL,EAAYhvD,SAAWmvD,EAAan6R,KACjCs6R,IAEC,MAAMC,EAAiBP,EAAYhvD,SAASryH,MACzCnjB,GACCA,EAAQ4kM,KAAkBE,EAAYF,KAI1C,OACGG,GACAD,EAAY11S,OACby1S,EAAczmT,SAAS2mT,IAKzBF,EAAc7vT,KAAK+vT,GAEnBtwT,OAAOsyC,OAAOg+Q,EAAgBD,GAEvBC,GAPE,IAAKD,EAOP,GAGb,CAEO,SAASE,GAId51S,GAAuC,IAAAw1S,EAAAvvT,UAAAC,OAAA,YAAAD,UAAA,GAAAA,UAAA,GAAegvT,GACtD,MAAMY,EAA4C,CAChDv+Q,OAAQ,GACR8uN,SAAU,IAMZ,OAHA+uD,GAAUU,EAAU71S,EAAKs3B,QACzBg+Q,GAAYO,EAAU71S,EAAKomP,SAAUovD,GAE9BK,CACT,CCnFA,SAASC,GAKPtrT,EACAyC,GAEA,MAAM,OACJunG,EAAS,IAAG,MACZD,EAAQ,WACRwhN,GAAS,EAAK,aACdP,EAAA,KACAphT,EAAA,KACA4L,EAAA,QACAtR,EAAA,QACAw4P,EAAU,GAAE,gBACZ8uD,EAAA,WACAC,KACGC,GACD1rT,EACE2rT,GAAYzpT,EAAAA,EAAAA,QAA0B,MACtC0pT,GAAW1pT,EAAAA,EAAAA,UAEX2pT,EAAcA,KACbF,EAAUvpT,UAEfwpT,EAASxpT,QAAU,IAAI0pT,GAAQH,EAAUvpT,QAAS,CAChDwH,OACA4L,KAAM41S,GAAU51S,EAAMw1S,GACtB9mT,QAASA,GAAW,IAAKA,GACzBw4P,YAGFguD,GAAajoT,EAAKmpT,EAASxpT,SAAQ,EAG/B2pT,EAAeA,KACnBrB,GAAajoT,EAAK,MAEdmpT,EAASxpT,UACXwpT,EAASxpT,QAAQmJ,UACjBqgT,EAASxpT,QAAU,OA8CvB,OA1CAD,EAAAA,EAAAA,YAAU,MACHopT,GAAUK,EAASxpT,SAAW8B,GDtChC,SAILy2P,EAAoCqxD,GACpC,MAAM9nT,EAAUy2P,EAAMz2P,QAElBA,GAAW8nT,GACbnxT,OAAOsyC,OAAOjpC,EAAS8nT,EAE3B,CC6BMC,CAAWL,EAASxpT,QAAS8B,KAE9B,CAACqnT,EAAQrnT,KAEZ/B,EAAAA,EAAAA,YAAU,MACHopT,GAAUK,EAASxpT,SACtBuoT,GAAUiB,EAASxpT,QAAQohB,OAAOhO,KAAMA,EAAKs3B,UAE9C,CAACy+Q,EAAQ/1S,EAAKs3B,UAEjB3qC,EAAAA,EAAAA,YAAU,MACHopT,GAAUK,EAASxpT,SAAWoT,EAAKomP,UACtCkvD,GAAYc,EAASxpT,QAAQohB,OAAOhO,KAAMA,EAAKomP,SAAUovD,KAE1D,CAACO,EAAQ/1S,EAAKomP,YAEjBz5P,EAAAA,EAAAA,YAAU,KACHypT,EAASxpT,UAEVmpT,GACFQ,IACArtR,WAAWmtR,IAEXD,EAASxpT,QAAQ4E,OAAOykT,MAEzB,CAACF,EAAQrnT,EAASsR,EAAKs3B,OAAQt3B,EAAKomP,SAAU6vD,KAEjDtpT,EAAAA,EAAAA,YAAU,KACHypT,EAASxpT,UAEd2pT,IACArtR,WAAWmtR,GAAA,GACV,CAACjiT,KAEJzH,EAAAA,EAAAA,YAAU,KACR0pT,IAEO,IAAME,MACZ,IAGDvxT,EAAAA,cAAC,SAAAK,OAAAsyC,OAAA,CACC1qC,IAAKkpT,EACLrlH,KAAK,MACLt8F,OAAQA,EACRD,MAAOA,GACH2hN,GAEHF,EAGP,CAEO,MAAMprB,IAAQx9H,EAAAA,EAAAA,YAAW0oJ,IC7FhC,SAASY,GACPtiT,EACA4gT,GAIA,OAFAsB,GAAQtiL,SAASghL,IAEV5nJ,EAAAA,EAAAA,aACJ,CAAA5iK,EAAOyC,IAAQjI,EAAAA,cAAC4lS,GAAUvlS,OAAAsyC,OAAA,GAAAntC,EAAA,CAAOyC,IAAKA,EAAKmH,KAAMA,MAEtD,OAEauiT,GAAuBD,GAAiB,OAAQ/nC,ICvB7Dic,GAAM52J,YAAYghL,IAElB,MA8RA,GA9RmC4B,KACjC,MAAO1lI,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IAEpCw/K,EAAWm+D,IAAgB39O,EAAAA,EAAAA,UAAS,KACpC2lT,EAAYC,IAAiB5lT,EAAAA,EAAAA,UAAS,KA6C7CvE,EAAAA,EAAAA,YAAU,KAtCR8/K,GAAQ,MAAOtN,GAAOuR,UAAW,KAAMS,GAJzBj2H,IAAS,IAADwkJ,EACpBmvC,EAAgB,OAAH3zL,QAAG,IAAHA,GAAS,QAANwkJ,EAAHxkJ,EAAKl7C,YAAI,IAAA0/L,OAAN,EAAHA,EAAWxwB,QAAQ,IAG4Bl5K,IAC5D/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAI7By2K,GAAQ,MAAOtN,GAAOkR,eAAgB,KAAMc,GAAej2H,IACzD,GAAO,OAAHA,QAAG,IAAHA,GAAAA,EAAKl7C,KAAM,CACb,MAAM4Y,EAAWsiC,EAAIl7C,KACf85J,EAAS,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACvFi9I,EAAkB,CACtBz/Q,OAAQwiI,EACRssF,SAAU,CACR,CACE5uN,MAAO,eACPx3B,KAAM85J,EAAO1+I,KAAIw7E,GAASh+E,EAASo+R,gBAAgBpgN,KACnDi7E,YAAa,UACbhrB,gBAAiB,UACjB0tG,QAAS,GACTpI,YAAa,GAEf,CACE30N,MAAO,wBACPx3B,KAAM85J,EAAO1+I,KAAIw7E,GAASh+E,EAASq+R,oBAAoBrgN,KACvDi7E,YAAa,UACbhrB,gBAAiB,UACjB0tG,QAAS,GACTpI,YAAa,KAInB+qD,EAAQH,GACRD,EAAcl+R,EAChB,KACE5iB,IACF/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAMd,GACd,IAEH,MAAMmhT,EAAc,CAClB7/Q,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnD8uN,SAAU,CACR,CACE5uN,MAAO,eACPx3B,KAAM,CAAC,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAC7B6xK,YAAa,UACbhrB,gBAAiB,UACjB0tG,QAAS,GACTpI,YAAa,GAEf,CACE30N,MAAO,wBACPx3B,KAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACzB6xK,YAAa,UACbhrB,gBAAiB,UACjB0tG,QAAS,GACTpI,YAAa,KAIb5vD,EAAS,CACb66G,UAAAA,CAAWjyD,GAET,MAAMkyD,EAAclyD,EAAMmpB,OAAO0P,IACjC74B,EAAMmpB,OAAO0P,IAAM,WACjBq5B,EAAY1lP,KAAKwzL,EAAMmpB,OAAvB+oC,GACA52S,KAAK+zF,QAAU,EACjB,CACF,IAoCK8iN,EAAgBC,IAAqBrmT,EAAAA,EAAAA,UAAS,UAC9C8O,EAAMk3S,IAAWhmT,EAAAA,EAAAA,UAASimT,IAC1BzoT,EAAS+nT,IAAcvlT,EAAAA,EAAAA,UApCP,CAErBm2P,OAAQ,CAEN58L,EAAG,CACD+9L,aAAa,IAKjBtB,QAAS,CACPonB,OAAQ,CACN/rQ,SAAU,MACV22I,MAAO,QACP5hH,OAAQ,CACNo/D,MAAO,UACP8lH,KAAM,CACJl+J,KAAM,IAGR0jP,iBAAiB,EACjBplH,aAAc,EACd0hH,SAAU,QA2ElB,OACEnyH,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAElBq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,uBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+CAA8C1D,SAC5D4/K,GAAaA,EAAUznL,MAAM,EAAG,GAAGmyB,KAAI,CAACs2J,EAAQr8J,KAAW82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,uCAAsC1D,UACrIu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uFAAsF1D,SAAA,EACjGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UAC1Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAai6D,IAAW,OAANijH,QAAM,IAANA,OAAM,EAANA,EAAQO,UAAW19E,MAAM,KAAKn4B,MAAO,CAACo4B,OAAO,aAE9E23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACpDq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAI,CAClBryF,SAAU,2BACVviB,OAAO,aAAD5Z,OAAqB,OAANuiL,QAAM,IAANA,OAAM,EAANA,EAAQM,MAC5B51G,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAM,SAAU5lG,UACtCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAU,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQnpD,aAErC4jD,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAa4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4wE,QAAS,WAAYhzD,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,SAAUrmB,WAAY,QAASl7J,SACpN,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQ50C,cAIbuvC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EACxDu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAACmwG,SAAS,QAAQz7K,SAAA,EAACu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAQ,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQY,SAAU,QACvDnG,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAACmwG,SAAS,QAAQz7K,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,iCAtB2BukB,QA6BtE82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4CAA2C1D,UAExDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACnBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAA0C1D,UACvDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uFAAsF1D,UACnGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAClBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAc,OAAV+lT,QAAU,IAAVA,OAAU,EAAVA,EAAY77H,kBACrC7O,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAO4nE,MAAO,CAACmwG,SAAS,QAAQz7K,SAAC,+BAO3Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAA0C1D,UACvDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uFAAsF1D,UACnGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAClBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAc,OAAV+lT,QAAU,IAAVA,OAAU,EAAVA,EAAYz8H,mBACrCjO,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAO4nE,MAAO,CAACmwG,SAAS,QAAQz7K,SAAC,2CAQ7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,WAYhBA,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,kBACPq7K,EAAAA,GAAAA,KAACwqI,GAAI,CAAC32S,KAAMA,EAAMknP,QAAS,CAAC3qD,GAAS7tM,QAASA,EAAS8lG,OAAQ,6BAW1D,ECxRDgjN,GAAc,CAClBC,UAAW,KACXC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,SAAU,KACVC,OAAQ,KACRC,QAAS,KACTC,OAAQ,KACR,iBAAkB,KAClBC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,QAAS,KACTC,OAAQ,KACR,YAAa,KACbC,QAAS,KACTC,QAAS,KACTC,MAAO,KACPC,MAAO,KACPC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,MAAO,KACPC,OAAQ,KACRC,YAAa,KACb,cAAe,KACfC,OAAQ,KACRC,OAAQ,KACRC,SAAU,KACVC,QAAS,KACTC,UAAW,KACXC,SAAU,KACVC,SAAU,KACVC,MAAO,KACPC,OAAQ,KACRC,YAAa,KACbC,SAAU,KACV,iBAAkB,KAClB,gBAAiB,MAyxCnB,GAvxC2B/oT,IAAwB,IAADgpT,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAAtB,cAAElmI,GAAerjL,EAC3C,MAAO4d,EAASy6N,IAAc/3O,EAAAA,EAAAA,UAAS,IAIjC2iL,GADe3+J,aAAa83J,QAAQ,gBACnB93J,aAAa83J,QAAQ,cACrC8G,EAAUC,IAAe7iL,EAAAA,EAAAA,UAAS2iL,EAAiB1sK,KAAKe,MAAM2rK,GAAkB,OAC9E+1D,EAASC,IAAc34O,EAAAA,EAAAA,UAAS,KAChC44O,EAAYC,IAAiB74O,EAAAA,EAAAA,UAAS,KACtCkpT,EAAgBC,IAAqBnpT,EAAAA,EAAAA,UAAS,KAC9CopT,EAAaC,IAAkBrpT,EAAAA,EAAAA,UAAS,KACxCspT,EAAaC,IAAkBvpT,EAAAA,EAAAA,UAAS,KACxCwpT,EAAYC,IAAiBzpT,EAAAA,EAAAA,UAAS,KACtC0pT,EAAcC,IAAmB3pT,EAAAA,EAAAA,UAAS,KAC1C4pT,EAAYC,IAAiB7pT,EAAAA,EAAAA,UAAS,KACtC8pT,EAAgBC,IAAqB/pT,EAAAA,EAAAA,UAAS,KAIhDggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IACpCg4O,EAAiBC,IAAsBj4O,EAAAA,EAAAA,UAAS,KAChDk4O,EAAqBC,IAA0Bn4O,EAAAA,EAAAA,WAAS,IACxDo4O,EAAuBC,IAA4Br4O,EAAAA,EAAAA,UAAS,KAC5Ds4O,EAA2BC,IAAgCv4O,EAAAA,EAAAA,WAAS,IACpE6xM,EAAaC,IAAkB9xM,EAAAA,EAAAA,UAAS,KACtC+xM,EAAiBC,IAAsBhyM,EAAAA,EAAAA,WAAS,IAChDiyM,EAAoBC,IAAyBlyM,EAAAA,EAAAA,UAAS,KACtDmyM,EAAwBC,IAA6BpyM,EAAAA,EAAAA,WAAS,IAC9D89K,EAAO85D,IAAY53O,EAAAA,EAAAA,UAAS,KAC5BgiL,GAAOgoI,KAAYhqT,EAAAA,EAAAA,UAAS,KAC5B2V,GAAQmiO,KAAa93O,EAAAA,EAAAA,UAAS,KAC9BiqT,GAASC,KAAclqT,EAAAA,EAAAA,UAAS,KAEhCw4O,GAAkBC,KAAuBz4O,EAAAA,EAAAA,WAAS,IAEnD2jL,GAAQwvB,KAAanzM,EAAAA,EAAAA,UAAS,OAC9Bo5O,GAAiBC,KAAsBr5O,EAAAA,EAAAA,WAAS,GAChDs5O,GAAaA,KAkBjB/9D,GAAQ,MAAOtN,GAAO3wJ,QAAS,KAAM2iK,GAjBvBj2H,IAAS,IAADwkJ,EAAA+qC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAkwE,EAAAC,EAAAjwE,EAAAC,EAAAiwE,EAAAC,EAAAhwE,EAAAC,EAAAgwE,EAAAC,EAAA/vE,EAAAC,EAAA+vE,EAAAC,EAAA9vE,EAAAC,EAAA8vE,EAAAC,EAAA9vE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACpBpD,EAAc,OAAH/tL,QAAG,IAAHA,GAAS,QAANwkJ,EAAHxkJ,EAAKl7C,YAAI,IAAA0/L,OAAN,EAAHA,EAAW4sC,KACtBzC,EAAc,OAAH3uL,QAAG,IAAHA,GAAS,QAANuvL,EAAHvvL,EAAKl7C,YAAI,IAAAyqO,GAAK,QAALC,EAATD,EAAW6B,WAAG,IAAA5B,OAAX,EAAHA,EAAgB30D,UAC3Bg0D,EAAiB,OAAH7uL,QAAG,IAAHA,GAAS,QAANyvL,EAAHzvL,EAAKl7C,YAAI,IAAA2qO,GAAK,QAALC,EAATD,EAAW2B,WAAG,IAAA1B,GAAU,QAAVC,EAAdD,EAAgBjgP,gBAAQ,IAAAkgP,OAArB,EAAHA,EAA0B5iC,SACxCoyG,EAAqB,OAAHn/P,QAAG,IAAHA,GAAS,QAAN4vL,EAAH5vL,EAAKl7C,YAAI,IAAA8qO,GAAK,QAALC,EAATD,EAAWwB,WAAG,IAAAvB,OAAX,EAAHA,EAAgB5wD,aAClCkqB,GAAa,OAAHnpJ,QAAG,IAAHA,GAAS,QAAN8vL,EAAH9vL,EAAKl7C,YAAI,IAAAgrO,GAAK,QAALC,EAATD,EAAWsB,WAAG,IAAArB,OAAX,EAAHA,EAAgBp2D,QAC1B0lI,EAAkB,OAAHr/P,QAAG,IAAHA,GAAS,QAANgwL,EAAHhwL,EAAKl7C,YAAI,IAAAkrO,GAAK,QAALC,EAATD,EAAWoB,WAAG,IAAAnB,GAAkB,QAAlBkwE,EAAdlwE,EAAgBp8D,wBAAgB,IAAAssI,GAAK,QAALC,EAAhCD,EAAmC,UAAE,IAAAC,OAAlC,EAAHA,EAAuCpgI,UACtDu/H,EAAkB,OAAHv/P,QAAG,IAAHA,GAAS,QAANmwL,EAAHnwL,EAAKl7C,YAAI,IAAAqrO,GAAK,QAALC,EAATD,EAAWiB,WAAG,IAAAhB,GAAkB,QAAlBiwE,EAAdjwE,EAAgBv8D,wBAAgB,IAAAwsI,GAAK,QAALC,EAAhCD,EAAmC,UAAE,IAAAC,OAAlC,EAAHA,EAAuCx0L,UACtD2zL,EAAiB,OAAHz/P,QAAG,IAAHA,GAAS,QAANswL,EAAHtwL,EAAKl7C,YAAI,IAAAwrO,GAAK,QAALC,EAATD,EAAWc,WAAG,IAAAb,GAAkB,QAAlBgwE,EAAdhwE,EAAgB18D,wBAAgB,IAAA0sI,GAAK,QAALC,EAAhCD,EAAmC,UAAE,IAAAC,OAAlC,EAAHA,EAAuCzmI,SACrD4lI,EAAmB,OAAH3/P,QAAG,IAAHA,GAAS,QAANywL,EAAHzwL,EAAKl7C,YAAI,IAAA2rO,GAAK,QAALC,EAATD,EAAWW,WAAG,IAAAV,GAAkB,QAAlB+vE,EAAd/vE,EAAgB78D,wBAAgB,IAAA4sI,GAAK,QAALC,EAAhCD,EAAmC,UAAE,IAAAC,OAAlC,EAAHA,EAAuC1mI,WACvD6lI,EAAiB,OAAH7/P,QAAG,IAAHA,GAAS,QAAN4wL,EAAH5wL,EAAKl7C,YAAI,IAAA8rO,GAAK,QAALC,EAATD,EAAWQ,WAAG,IAAAP,GAAkB,QAAlB8vE,EAAd9vE,EAAgBh9D,wBAAgB,IAAA8sI,GAAK,QAALC,EAAhCD,EAAmC,UAAE,IAAAC,OAAlC,EAAHA,EAAuC3gI,SACrDovD,GAAsB,OAAHrvL,QAAG,IAAHA,GAAS,QAAN8wL,EAAH9wL,EAAKl7C,YAAI,IAAAgsO,GAAK,QAALC,EAATD,EAAWM,WAAG,IAAAL,OAAX,EAAHA,EAAgB3B,iBACnCyxE,GAAsB,OAAH7gQ,QAAG,IAAHA,GAAS,QAANgxL,EAAHhxL,EAAKl7C,YAAI,IAAAksO,GAAK,QAALC,EAATD,EAAWI,WAAG,IAAAH,OAAX,EAAHA,EAAgB6vE,SACnCf,EAAqB,OAAH//P,QAAG,IAAHA,GAAS,QAANkxL,EAAHlxL,EAAKl7C,YAAI,IAAAosO,GAAK,QAALC,EAATD,EAAWE,WAAG,IAAAD,OAAX,EAAHA,EAAgB2vE,QAAQ,IAIgBhmT,IAC1D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,GA2CJrJ,EAAAA,EAAAA,YAAU,KAER69O,KAtCA/9D,GAAQ,MAAOtN,GAAO6P,MAAO,KAAMmC,GAJrBj2H,IAAS,IAADqxL,EACpBzD,EAAY,OAAH5tL,QAAG,IAAHA,GAAS,QAANqxL,EAAHrxL,EAAKl7C,YAAI,IAAAusO,OAAN,EAAHA,EAAWn7D,KAAK,IAG+Bp7K,IACxD/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAQ7By2K,GAAQ,MAAOtN,GAAO0P,QAAS,KAAMsC,GAJvBj2H,IAAS,IAAD+gQ,EACpBf,GAAY,OAAHhgQ,QAAG,IAAHA,GAAS,QAAN+gQ,EAAH/gQ,EAAKl7C,YAAI,IAAAi8S,OAAN,EAAHA,EAAW7qI,KAAK,IAGiCp7K,IAC1D/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAQ7By2K,GAAQ,MAAOtN,GAAOt4J,OAAQ,KAAMsqK,GAJtBj2H,IAAS,IAADghQ,EACpBlzE,GAAa,OAAH9tL,QAAG,IAAHA,GAAS,QAANghQ,EAAHhhQ,EAAKl7C,YAAI,IAAAk8S,OAAN,EAAHA,EAAW9qI,KAAK,IAG+Bp7K,IACzD/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAsBlB,GACV,IACH,MAwCEwuM,GAAkBjgJ,UACtB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EA+JM89C,GAAWR,KAmDT0nE,GAA2BA,KAC3BzpC,IAAgBI,GAAsBJ,IAAemmC,EA3BpC3kL,WAsBrBkoH,GAAQ,QAAQtN,GAAOgP,eALZ,CACTs+D,gBAAiBvD,EACjBwD,YAAa3pC,GAG4B5xB,GApB7Bj2H,IACW,MAAnBA,EAAI9hC,YACNwlK,IAAa,GACb1pK,aAAaq4J,QAAQ,WAAY,MAC7Br4J,aAAaq4J,QAAQ,cAAe,IACpCr4J,aAAaq4J,QAAQ,eAAgB,IACrCwG,EAAY,KAGhBS,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAQ8Dz+K,IAC9D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAKE22O,GAEA7xD,MAAM,uEACV,GAIG6D,GAAWC,KAAgB1tL,EAAAA,EAAAA,WAAS,IACpCqwM,GAAKW,KAAUhxM,EAAAA,EAAAA,UAAS,KACxBmvM,GAAY8B,KAAiBjxM,EAAAA,EAAAA,UAAS,CACzCqjG,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,SACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,SAMhB53F,EAAAA,EAAAA,YAAU,KACR,MAAM01M,EAAeA,KACjB,MAAM9tG,EAAQr+F,OAAOosM,WAEjBH,GADA5tG,GAAS,IACK,CACVA,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,QACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAETgQ,GAAS,IACF,CACVA,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,QACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAGF,CACVgQ,MAAO,OACPC,OAAQ,OACR+3E,SAAU,OACV61B,OAAQ,SACRlwB,UAAW,SACX0K,aAAc,MACdD,OAAQ,oBACR91B,gBAAiB,UACjBnwD,MAAO,UACPnS,WAAY,OAEpB,EAMJ,IAAIgnE,EASJ,OAZA82C,IACAnsM,OAAOo2B,iBAAiB,SAAU+1K,GAG9B1jB,KACFpzB,EAAQriI,YAAW,KACf01J,IAAa,GACbtZ,GAAS,UACT2O,GAAc,EAAM,GACrB,MAGE,KACH/9K,OAAO8xF,oBAAoB,SAAUq6G,GACrC9jG,aAAagtD,EAAM,CACtB,GACF,CAACozB,GAAWwjB,KAEb,MAGKI,GAAWC,KAAgBtxM,EAAAA,EAAAA,UAAS,KACpC+oE,GAAYwoI,KAAiBvxM,EAAAA,EAAAA,WAAS,IAE7CvE,EAAAA,EAAAA,YAAU,KACR,GAAkB,IAAd41M,GAEF,YADAE,IAAc,GAIhB,MAAMl3C,EAAQm3C,aAAY,KACxBF,IAAaG,GAAiBA,EAAgB,GAAE,GAC/C,KAEH,MAAO,IAAMC,cAAcr3C,EAAM,GAChC,CAACg3C,KAEJ,MA4BO45G,GAAwBC,KAA6BlrT,EAAAA,EAAAA,WAAS,IA2BrEvE,EAAAA,EAAAA,YAAU,KACR,IAAI4+J,EAMJ,OALI4wJ,KACF5wJ,EAAQriI,YAAW,KACjBq6K,IAAgB,GACf,MAEE,IAAMhlG,aAAagtD,EAAM,GAC/B,CAAC4wJ,KACN,MAAOvvE,GAAaC,KAAkB37O,EAAAA,EAAAA,WAAS,IACxC47O,GAAcC,KAAmB77O,EAAAA,EAAAA,WAAS,IAC1C87O,GAAgBC,KAAqB/7O,EAAAA,EAAAA,WAAS,IAC9CmrT,GAAcC,KAAmBprT,EAAAA,EAAAA,WAAS,IAC1C+hL,GAASspI,KAAcrrT,EAAAA,EAAAA,WAAS,IAChC63O,GAAeyzE,KAAoBtrT,EAAAA,EAAAA,WAAS,IAC5CilL,GAAWsmI,KAAgBvrT,EAAAA,EAAAA,WAAS,IACpCg8O,GAAeC,KAAoBj8O,EAAAA,EAAAA,WAAS,GA+F3CqyM,GAAiBA,KACrBj+B,GAAS,IAAI,GAERo3I,GAAiBX,KAAsB7qT,EAAAA,EAAAA,UAAS,IAgBvD,OACEm7K,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KACfzI,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAElBq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,cACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAC5Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EACxDq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAY,OAAPjgD,QAAO,IAAPA,OAAO,EAAPA,EAASqmK,OAAQvI,IAAI,SAAS93K,UAAU,mCAAmC4nE,MAAO,CAAEm4B,MAAO,QAASC,OAAO,YACrH23E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,oBAAmB1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAP0d,QAAO,IAAPA,OAAO,EAAPA,EAASunK,cAC/C5J,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAkB4nE,MAAO,CAACmwG,SAAS,QAAQz7K,SAAS,OAAP0d,QAAO,IAAPA,OAAO,EAAPA,EAASmoF,SACnEw1E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yCACf63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EACjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAsC4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QAvItEo4O,KACxBP,IAAe,GACfE,IAAgB,GAChBE,IAAkB,GAClBqvE,IAAgB,GAChBC,IAAW,GACXC,IAAiB,GACjBC,IAAa,GACbtvE,IAAiB,GACjBxD,IAAoB,EAAM,EA8H+F74O,SAAA,EACzGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,oBAExBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyC69G,IAAI,WAGtDD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAqC1D,SAAA,EACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,oBAExBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yBAAwB1D,UACjDq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,mBACVJ,KAAK,WACLgoE,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,QAChCs8F,KAAK,SACLv8L,GAAG,yBACHqyD,QAAS0jL,GACTx1O,SAjiBkBxI,IAC1B,MAAMssI,EAAWtsI,EAAMvG,OAAO6gE,QAC9B2jL,GAAmB3xG,EAAS,UAmiBZyzC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAsC4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QAxIrEq4O,KAC3BR,IAAe,GACfE,IAAgB,GAChBE,IAAkB,GAClBqvE,IAAgB,GAChBC,IAAW,GACXC,IAAiB,GACjBC,IAAa,GACb9yE,IAAoB,GACpBwD,IAAiB,EAAM,EA+HuGr8O,SAAA,EAC9Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,uBAExBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyC69G,IAAI,WAGtDD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAsC4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QArIvE2nT,KACzB9vE,IAAe,GACfE,IAAgB,GAChBE,IAAkB,GAClBqvE,IAAgB,GAChBC,IAAW,GACXC,IAAiB,GACjBC,IAAa,GACb9yE,IAAoB,GACpBwD,IAAiB,EAAM,EA4HqGr8O,SAAA,EAC5Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,wBAExBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyC69G,IAAI,WAGtDD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAsC4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QAjI5E4nT,KACpB/vE,IAAe,GACfE,IAAgB,GAChBE,IAAkB,GAClBqvE,IAAgB,GAChBC,IAAW,GACXC,IAAiB,GACjBC,IAAa,GACb9yE,IAAoB,GACpBwD,IAAiB,EAAM,EAwHgGr8O,SAAA,EACvGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,gBAExBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyC69G,IAAI,WAGtDD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAsC4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QA7HtE6nT,KAC1BhwE,IAAe,GACfE,IAAgB,GAChBE,IAAkB,GAClBqvE,IAAgB,GAChBC,IAAW,GACXC,IAAiB,GACjBC,IAAa,GACb9yE,IAAoB,GACpBwD,IAAiB,EAAM,EAoHsGr8O,SAAA,EAC7Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,sBAExBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyC69G,IAAI,WAGtDD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAsC4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QAzH1E8nT,KACtBjwE,IAAe,GACfE,IAAgB,GAChBE,IAAkB,GAClBqvE,IAAgB,GAChBC,IAAW,GACXC,IAAiB,GACjBC,IAAa,GACb9yE,IAAoB,GACpBwD,IAAiB,EAAM,EAgHkGr8O,SAAA,EACzGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,kBAExBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyC69G,IAAI,WAGtDD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAsC4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QArHtEs4O,KAC1BT,IAAe,GACfE,IAAgB,GAChBE,IAAkB,GAClBqvE,IAAgB,GAChBC,IAAW,GACXC,IAAiB,GACjBC,IAAa,GACb9yE,IAAoB,GACpBwD,IAAiB,EAAK,EA4GuGr8O,SAAA,EAC7Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,sBAExBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyC69G,IAAI,qBAOpEH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAKlBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qDAAoD1D,UAC7Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAEpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,6FAA4F1D,SAAA,CACzH87O,KAAevgE,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAClEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,sCAAqC1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAKomH,KAAiB,OAAPrmK,QAAO,IAAPA,OAAO,EAAPA,EAASqmK,QAAQvI,IAAI,SAAS93K,UAAU,2BAA2B+/F,MAAM,MAAMn4B,MAAO,CAAEm4B,MAAO,QAASC,OAAQ,YACpI63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8DAA6D1D,SAAA,EACxEq7K,EAAAA,GAAAA,KAAA,SAAO8Q,QAAQ,cAAczoL,UAAU,eAAc1D,UACjDq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,oCAAoC69G,IAAI,QAErDH,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOG,GAAG,cAAcipD,OAAO,UAAU4e,MAAO,CAAEk4C,QAAS,QAAUx/G,SAnpBvFyvD,UAC5B,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR,MAAMq9E,QAAgBL,GAAgBh9E,GACtC68E,GAAUQ,GACV51M,QAAQo7B,IAAIw6K,EACd,YAgpB0B14B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UAC7Bq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,yBAEtCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACjCq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,WAAUnsL,SAAC,eACzDq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,4CAA4CD,GAAG,WAAWvN,MAAO4iP,EAAS90O,SA3rBzGkC,IACxB,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1B6iP,EAAWjxG,EAAS,EAyrByIx8D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAEpL63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACjCq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,WAAUnsL,SAAC,cACzDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,4CAA4CD,GAAG,WAAWvN,MAAO8iP,EAAYh1O,SA5rB/GkC,IAC3B,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1B+iP,EAAcnxG,EAAS,EA0rBkJx8D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,WACtL23E,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yDAAwD1D,UACpEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,yCAIzB63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EAC3Dq7K,EAAAA,GAAAA,KAAA,SAAO8Q,QAAQ,iBAAiBzoL,UAAU,qBAAoB1D,SAAC,uBAC/Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCu7K,EAAAA,GAAAA,MAAA,UAAQ93K,GAAG,iBAAiBC,UAAU,4CAA4CM,SAvJ3DxI,IAC3B,MAAMo1F,EAAWp1F,EAAMvG,OAAOiB,MAC9B+0T,GAAmBr6N,GACnBzyF,QAAQo7B,IAAIq3D,EAAS,EAoJ+F5wF,SAAA,EAC9Gq7K,EAAAA,GAAAA,KAAA,UAAQ97C,YAAY,0BAA0BrpI,MAAO01T,GAAgB5rT,SAAE4rT,KACtEr3T,OAAOD,KAAKoyT,IAAap8R,KAAK4gS,IAC7B7vI,EAAAA,GAAAA,KAAA,UAAmCnlL,MAAOg1T,EAAQlrT,SAC/CkrT,GADUxE,GAAYwE,eAUhC7vI,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UACPq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CJ,KAAK,SAASY,QAhK3E+nT,KACtB/B,EAnkBHvuI,GAAQ,MAAOtN,GAAOqQ,eAAgB,KAAM2B,GAR9Bj2H,IACZkgQ,GAAWlgQ,GACXjsD,QAAQo7B,IAAI6wB,GACO,YAAfA,EAAIlxB,QAAwBkxB,EAAIl7C,MAAQk7C,EAAIl7C,KAAKg9S,aACnD9mT,OAAOvL,SAASuhC,KAAOgvB,EAAIl7C,KAAKg9S,WAAW5sT,IAC7C,IAGiE4F,IACjE/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAmkB7B8kL,MAAM,kCAKR,EAyJqI1+G,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAE,wBAErKu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACjCq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,cAAansL,SAAC,iBAC5Dq7K,EAAAA,GAAAA,KAAA,YAAU33K,UAAU,4CAA4CD,GAAG,cAAcvN,MAAOozT,EAAgBtlT,SAntBvGkC,IAC/B,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1BqzT,EAAkBzhL,EAAS,EAitB8IvI,YAAY,cAAcqmD,KAAK,IAAIt6G,MAAO,CAAEyqF,gBAAiB,gBAE3L,gBAAX,OAAPr4I,QAAO,IAAPA,OAAO,EAAPA,EAASsiL,QAAyBzkB,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACpEq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,cAAansL,SAAC,wBAC5Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,GAAE1D,SAAA,EACLu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uCAAsC1D,SAAA,EACjDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,qDAAqD69G,IAAI,QAEtEH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAClBq7K,EAAAA,GAAAA,KAAA,SACAnlL,MAAOszT,EAAaxlT,SA1tBxCkC,IAC5B,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1BuzT,EAAe3hL,EAAS,EAytB4BxkI,KAAK,OACLI,UAAU,iDACVD,GAAG,eACH87H,YAAY,oBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7C1jE,QAAQ,2CACRy3F,MAAM,mCAKlB8jD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uCAAsC1D,SAAA,EACjDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yDAAyD69G,IAAI,QAE1EH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAClBq7K,EAAAA,GAAAA,KAAA,SACAnlL,MAAOwzT,EAAa1lT,SAxuBxCkC,IAC5B,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1ByzT,EAAe7hL,EAAS,EAuuB4BxkI,KAAK,OACLI,UAAU,iDACVD,GAAG,eACH87H,YAAY,oBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7C1jE,QAAQ,2CACRy3F,MAAM,mCAKlB8jD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uCAAsC1D,SAAA,EACjDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yDAAyD69G,IAAI,QAE1EH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAClBq7K,EAAAA,GAAAA,KAAA,SACAnlL,MAAO0zT,EAAY5lT,SAtvBxCkC,IAC3B,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1B2zT,EAAc/hL,EAAS,EAqvB6BxkI,KAAK,OACLI,UAAU,iDACVD,GAAG,cACH87H,YAAY,mBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7C1jE,QAAQ,2CACRy3F,MAAM,mCAKlB8jD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uCAAsC1D,SAAA,EACjDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yDAAyD69G,IAAI,QAE1EH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAClBq7K,EAAAA,GAAAA,KAAA,SACAnlL,MAAO4zT,EAAc9lT,SApwBxCkC,IAC7B,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1B6zT,EAAgBjiL,EAAS,EAmwB2BxkI,KAAK,OACLI,UAAU,iDACVD,GAAG,gBACH87H,YAAY,qBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7C1jE,QAAQ,2CACRy3F,MAAM,mCAKlB8jD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4CAA2C1D,SAAA,EACtDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yDAAyD69G,IAAI,QAE1EH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAClBq7K,EAAAA,GAAAA,KAAA,SACAnlL,MAAO8zT,EAAYhmT,SAlxBxCkC,IAC3B,MAAM4hI,EAAW5hI,EAAEjR,OAAOiB,MAC1B+zT,EAAcniL,EAAS,EAixB6BxkI,KAAK,OACLI,UAAU,iDACVD,GAAG,cACH87H,YAAY,mBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7C1jE,QAAQ,2CACRy3F,MAAM,wCAWb,gBAAX,OAAP/5G,QAAO,IAAPA,OAAO,EAAPA,EAASsiL,OAAwB3kB,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChEq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CJ,KAAK,SAASY,QAnvB1EuvD,UAC9B,IAAKqlL,EAEH,YADA9uD,MAAM,mBAIR,IAAKw/H,EAEH,YADAx/H,MAAM,4BAIR,IAAK0/H,EAEH,YADA1/H,MAAM,4BAGR,IAAK4/H,EAEH,YADA5/H,MAAM,2BAGR,IAAK8/H,EAEH,YADA9/H,MAAM,6BAGR,IAAKgvD,EAEH,YADAhvD,MAAM,sBAGR,IAAK4hI,GAEH,YADA5hI,MAAM,sBAGR,IAcIp6J,EAAO,CACTq1J,SAAU6zD,EACV/0D,OAAQA,GACRlqL,SAAU,CACRyJ,KAAM,QACN4zM,YAAa,CAAC,UAAW,UACzBC,QAAS6hC,GAGX3vD,YAAaigI,EACbrrI,iBAAkB,CAAC,CACfmM,SAAUo/H,EACVtzL,SAAUwzL,EACVvlI,QAASylI,EACTxlI,UAAW0lI,EACXz/H,QAAS2/H,IAEfxwE,gBAAiBA,GACjB0xE,QAASU,IAEXztT,QAAQo7B,IAAI3J,GACV+rJ,GAAQ,QAAQtN,GAAOuP,YAAYhuJ,EAAKywJ,GAnC1Bj2H,IACW,MAAnBA,EAAI9hC,YACNoxN,KACAh2D,GAAMv3I,QAAQ,+BAAgC,CACtCw3I,UAAW,QAGnBD,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAyB2Dz+K,IAC3D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EA+qBwIomE,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAE,oBAC/Jq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UACvCq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CJ,KAAK,SAASY,QA/qB7EuvD,UAC3B,IAAKqlL,EAEH,YADA9uD,MAAM,mBAIR,IAAKgvD,EAEH,YADAhvD,MAAM,sBAIR,IAcIp6J,EAAO,CACTq1J,SAAU6zD,EACV/0D,OAAQA,GACRlqL,SAAU,CACRyJ,KAAM,QACN4zM,YAAa,CAAC,UAAW,UACzBC,QAAS6hC,GAGX3vD,YAAaigI,EAEf9vE,gBAAiBA,IAEnBr7O,QAAQo7B,IAAI3J,GACV+rJ,GAAQ,QAAQtN,GAAOuP,YAAYhuJ,EAAKywJ,GA5B1Bj2H,IACW,MAAnBA,EAAI9hC,YACNoxN,KACAh2D,GAAMv3I,QAAQ,+BAAgC,CACtCw3I,UAAW,QAGnBD,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAkB2Dz+K,IAC3D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAsoBqIomE,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAE,sBAW5Lk8O,KAAkB7gE,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACjBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,qBACxBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,SAAC,wPACpBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,sBAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAMg1O,EAAsB,OAAS,WACrC50O,UAAU,4CACVD,GAAG,kBACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAGVxtG,MAAOkiP,EACPp0O,SAnnBakC,IACnCmyO,EAAmBnyO,EAAEjR,OAAOiB,MAAM,IAonBO,KAApBkiP,IAA2B78D,EAAAA,GAAAA,MAAA,SAC1B4Q,QAAQ,cACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,GAAG93K,UAAU,SAAQ,uBAEhE23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMqtK,EAAsBzqC,GAAaC,GACzC5pM,QA3nBcu4O,KACtClE,GAAwBD,EAAoB,EA2nBpBhtK,MAAO,CAAE6qE,OAAQ,UAAWw8D,WAAY,mBAK9Dp3B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EACpBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,kBAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAM6uM,EAAkB,OAAS,WACjCzuM,UAAU,4CACVD,GAAG,cACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAGVxtG,MAAO+7M,EACPjuM,SA5oBSkC,IAC7BgsM,EAAehsM,EAAEjR,OAAOiB,MAAM,IA6oBK,KAAhB+7M,IAAuB12B,EAAAA,GAAAA,MAAA,SACtB4Q,QAAQ,cACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,GAAG93K,UAAU,SAAQ,mBAEhE23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMknI,EAAkBtE,GAAaC,GACrC5pM,QAppBYwuM,KAClCN,GAAoBD,EAAgB,EAopBd7mI,MAAO,CAAE6qE,OAAQ,UAAWw8D,WAAY,mBAKhDp3B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAClCq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,0BAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAMivM,EAAyB,OAAS,WACxC7uM,UAAU,4CACVD,GAAG,qBACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAGVxtG,MAAOm8M,EACPruM,SArqBkBkC,IACtCosM,EAAsBpsM,EAAEjR,OAAOiB,MAAM,IAsqBK,KAAvBm8M,IAA8B92B,EAAAA,GAAAA,MAAA,SAC7B4Q,QAAQ,WACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,GAAG93K,UAAU,SAAQ,gBAEhE23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMsnI,EAAyB1E,GAAaC,GAC5C5pM,QA7qBmB0uM,KACzCJ,GAA2BD,EAAuB,EA6qB5BjnI,MAAO,CAAE6qE,OAAQ,UAAWw8D,WAAY,mBAKhDt3B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAGnEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CQ,QAAUgC,IAAQA,EAAE84F,iBAAkB08I,IAA0B,EAAKpwK,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAE,0BAOtLurT,KAAgBlwI,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACfu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,iBACvBk+K,GAASA,EAAM5zJ,KAAI,CAAC6hS,EAAM5nS,KAAW82J,EAAAA,GAAAA,KAAA,KAAe33K,UAAU,OAAM1D,SAAM,OAAJmsT,QAAI,IAAJA,OAAI,EAAJA,EAAM1pI,SAA/Bl+J,UAMjD49J,KAAW9G,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACVu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,aACvBoiL,IAASA,GAAM93J,KAAI,CAAC83J,EAAO79J,KAAW82J,EAAAA,GAAAA,KAAA,KAAe33K,UAAU,OAAM1D,SAAO,OAALoiL,QAAK,IAALA,OAAK,EAALA,EAAOK,SAAhCl+J,UAKlD0zN,KAAiB58D,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAChBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,mBACvB+V,IAAUA,GAAOuU,KAAI,CAACvU,EAAQwO,KAAW82J,EAAAA,GAAAA,KAAA,KAAe33K,UAAU,OAAM1D,SAAQ,OAAN+V,QAAM,IAANA,OAAM,EAANA,EAAQ0sK,SAAjCl+J,UAKrD8gK,KAAa9J,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACZq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kCAAiC1D,UAC9Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gCAA+B1D,SAAA,EAC5Cq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD69G,IAAI,QAEhED,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,oBAETq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAACmwG,SAAS,OAAQ71E,MAAM,WAAW5lG,SAAC,0CAEjDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAACmwG,SAAS,QAAQz7K,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAP0d,QAAO,IAAPA,OAAO,EAAPA,EAASmoF,qBAKvDw1E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kCAAiC1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gCAA+B1D,SAAA,EAC5Cq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,uDAAuD69G,IAAI,QAEpED,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,eAETq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAACmwG,SAAS,OAAQ71E,MAAM,WAAW5lG,SAAC,mCAEjDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAACmwG,SAAS,QAAQz7K,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,0BAEnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wBAAuB1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0DAAyD1D,SAAA,EACtEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACjBq7K,EAAAA,GAAAA,KAAA,KAAGjgJ,KAAa,OAAP1d,QAAO,IAAPA,GAAyB,QAAlBorS,EAAPprS,EAASugK,wBAAgB,IAAA6qI,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,OAAvB,EAAPA,EAAgC7yL,SAAUjhI,OAAO,SAAQ+K,UAACq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD69G,IAAI,UAEnIH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,KAAGjgJ,KAAa,OAAP1d,QAAO,IAAPA,GAAyB,QAAlBsrS,EAAPtrS,EAASugK,wBAAgB,IAAA+qI,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,OAAvB,EAAPA,EAAgC9kI,QAASlvL,OAAO,SAAQ+K,UAACq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD69G,IAAI,UAElIH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,KAAGjgJ,KAAa,OAAP1d,QAAO,IAAPA,GAAyB,QAAlBwrS,EAAPxrS,EAASugK,wBAAgB,IAAAirI,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,OAAvB,EAAPA,EAAgC/kI,UAAWnvL,OAAO,SAAQ+K,UAACq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD69G,IAAI,UAEpIH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,KAAGjgJ,KAAa,OAAP1d,QAAO,IAAPA,GAAyB,QAAlB0rS,EAAP1rS,EAASugK,wBAAgB,IAAAmrI,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,OAAvB,EAAPA,EAAgCh/H,QAASp1L,OAAO,SAAQ+K,UAACq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD69G,IAAI,yBAUvIqS,KACexS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UACnKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAK/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EAEnCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2DAA2D69G,IAAI,GAAG93E,OAAO,MAAMD,MAAM,SAC9F43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mCACxBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,oKAU/Bo8O,KAAiB/gE,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAChBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,oBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oCAAmC1D,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,gCAAgCj6D,UAAU,YAAY83K,IAAI,QAEnEH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,2BAA0B1D,SAAC,oCAGxCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,QAAO1D,SAAC,qQACrBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,0PACHu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,iBAAgBnsL,SAAC,cAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAMo1O,EAA4B,OAAS,WAC3Ch1O,UAAU,4CACVD,GAAG,wBACH87H,YAAY,IACZj0D,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QAGVxtG,MAAOsiP,EACPx0O,SAr1BmBkC,IACzCuyO,EAAyBvyO,EAAEjR,OAAOiB,MAAM,IAs1BO,KAA1BsiP,IAAiCj9D,EAAAA,GAAAA,MAAA,SAChC4Q,QAAQ,cACRzoL,UAAU,oEAAmE1D,SAAA,EAE7Eq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,GAAG93K,UAAU,SAAQ,eAEhE23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kEAAiE1D,UAC9Eq7K,EAAAA,GAAAA,KAAC8wB,GAAe,CACdlhI,KAAMytK,EAA4B7qC,GAAaC,GAC/C5pM,QA71BoBw4O,KAC5C/D,GAA8BD,EAA0B,EA61BhCptK,MAAO,CAAE6qE,OAAQ,UAAWw8D,WAAY,mBAKhDt3B,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,aAAY1D,SAAC,iJAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACnDq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0C4nE,MAAO,CAACyqF,gBAAiB,UAAWnwD,MAAM,SAAU1hG,QA72BlFgC,IAC9BA,EAAE84F,iBALJ28E,GAAQ,OAAQtN,GAAOqP,gBAHZ,CACT33E,SAAUyyI,GAEkCn4D,GAnBhCj2H,IACU,KAAlBA,EAAI9hC,WAENo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CACnB4qK,UAAW,KACXC,QAASA,KACPi1D,IAAoB,GACpBwD,IAAiB,EAAM,IAIjC34D,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAKmEz+K,IACnE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKC,EA22BoHlF,SAAC,0BAKlJ44O,KAAmBv9D,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAClBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,oBACxBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,QAAO1D,SAAC,6JACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yFAAyF4nE,MAAO,CAAEipF,UAAW,OAAQv0J,UAClGu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAAEw1G,SAAU,OAAQr9E,MAAO,QAASzjG,SAAA,EAE7Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAEhCq7K,EAAAA,GAAAA,KAAC02B,GAAQ,CACzC77M,MAAOu6M,GACPzsM,SA3uBcysM,IACpBW,GAAOX,EAAI,EA2uBLvB,UAAW,EACXK,WAAYA,GACZJ,YAAcz1M,IAAU2hL,EAAAA,GAAAA,KAAA,YAAW3hL,OAGC2hL,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UAC3Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,cAAc4nE,MAAO,CAAEs6B,MAAO,WAAY5lG,SAAA,EACvDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,+BAC0Bq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,eAAc1D,SAAEyxM,KAAc,iBAG1Ep2B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,KACE/vG,MAAO,CAAE6qE,OAAQhtE,GAAa,cAAgB,UAAWy8B,MAAOz8B,GAAa,OAAS,WACtFjlE,QAAUilE,GAAgC,KAxuB1BjjE,IACxBA,EAAE84F,iBAEF,IAaIpvE,EAAO,CACTi2E,MAAc,OAAPnoF,QAAO,IAAPA,OAAO,EAAPA,EAASmoF,OAGlB81E,GAAQ,OAAQtN,GAAO+O,UAAWxtJ,EAAMywJ,GAjB1Bj2H,IACU,KAAlBA,EAAI9hC,WAENo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CACnB4qK,UAAW,OAInBD,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAM6Dz+K,IAC7D/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAI7BwsM,GAAa,IACbC,IAAc,EAAK,EA8sBoC3xM,SAChD,2BAQiCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAgC1D,UAE3Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CQ,QAAUgC,IAAQA,EAAE84F,iBAxtBhGvrC,WAsBpCkoH,GAAQ,SAAStN,GAAOsP,SALb,CACT8yB,IAAKA,IAI+BpwB,GApBxBj2H,IACW,MAAnBA,EAAI9hC,YACNgjS,IAA0B,GAC1BlnS,aAAaq4J,QAAQ,WAAY,MAC7Br4J,aAAaq4J,QAAQ,cAAe,IACpCr4J,aAAaq4J,QAAQ,eAAgB,IACrCwG,EAAY,KAGhBS,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAQyDz+K,IACzD/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAgsBoJknT,EAA+B,EAAK9gP,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAE,yBAIzMqrT,KACzBhwI,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UACnKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAK/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EAEnCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2DAA2D69G,IAAI,GAAG93E,OAAO,MAAMD,MAAM,SAC9F43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,qCACxBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,2MA4B/B,EC9kCL,GArPgCqsT,KAC9B,MAAOjsI,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IACpCwoL,EAAcC,IAAmBzoL,EAAAA,EAAAA,UAAS,IAC3CvG,EAAW+5K,IAETkV,EADc,IAAI/+G,gBAAgBlwE,EAASoe,QACpBhQ,IAAI,aAcjCpM,EAAAA,EAAAA,YAAU,KACJitL,GALJnN,GAAQ,MAAOtN,GAAOgQ,cAAc,IAAIyK,EAAU,KAAMzI,GAP1Cj2H,IAEZy+H,EAAgBz+H,EAAI2+H,WAAW,IAK8C7jL,IAC7E/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAM7B,GACC,CAAC4jL,IACJ,MAAOlJ,EAAWm+D,IAAgB39O,EAAAA,EAAAA,UAAS,IAU7C,SAASoiL,EAAWz3C,GAClB,MAAMw3C,EAAMnhJ,SAASzgC,cAAc,YAEnC,OADA4hL,EAAIhxF,UAAYw5C,EACTw3C,EAAIrsL,KACb,CAMA,OALA2F,EAAAA,EAAAA,YAAU,KATR8/K,GAAQ,MAAOtN,GAAOuR,UAAW,KAAMS,GAJzBj2H,IAAS,IAADwkJ,EACpBmvC,EAAgB,OAAH3zL,QAAG,IAAHA,GAAS,QAANwkJ,EAAHxkJ,EAAKl7C,YAAI,IAAA0/L,OAAN,EAAHA,EAAWxwB,QAAQ,IAG4Bl5K,IAC5D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAUf,GACb,KAGDm2K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAElBq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,gBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,eAAc1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2BAA0B1D,UAC/Cq7K,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,GAAE1D,UAC3Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6DAA4D1D,UACzEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UAIXq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,SACzB4/K,GAAaA,EAAUznL,MAAM,EAAG,IAAImyB,KAAI,CAACs2J,EAAQr8J,KAAW82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,uCAAsC1D,UAC1Hu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uFAAsF1D,SAAA,EACjGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UAC1Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAai6D,IAAW,OAANijH,QAAM,IAANA,OAAM,EAANA,EAAQO,UAAW19E,MAAM,KAAKn4B,MAAO,CAACo4B,OAAO,aAE9E23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACpDq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAI,CAClBryF,SAAU,2BACVviB,OAAO,aAAD5Z,OAAqB,OAANuiL,QAAM,IAANA,OAAM,EAANA,EAAQM,MAC5B51G,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAM,SAAU5lG,UACtCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAU,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQnpD,aAErC4jD,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAa4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4wE,QAAS,WAAYhzD,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,SAAUrmB,WAAY,QAASl7J,SACpN,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQ50C,cAIbuvC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EACxDu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAACmwG,SAAS,QAAQz7K,SAAA,EAACu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAQ,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQY,SAAU,QAEvDnG,EAAAA,GAAAA,KAAA,QAAM/vG,MAAO,CAACmwG,SAAS,QAAQz7K,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAU,OAAN4gL,QAAM,IAANA,OAAM,EAANA,EAAQa,+BAvBOl9J,oBAyC/D82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAmC1D,UAC9Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,2CAA0C1D,SAAA,EACzDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,IAAG1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACzCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAoCi6D,IAAiB,OAAZirH,QAAY,IAAZA,OAAY,EAAZA,EAAczH,UAAW3F,IAAI,cAAclwG,MAAO,CAACo4B,OAAO,cAEtH63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oDAAmD1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,QAAO/vG,MAAO,CAAE21G,eAAgB,OAAOr7E,MAAM,SAAU5lG,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAgB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcnxD,WAC7I4jD,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAa4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,SACzK,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAc58C,cAIyBuvC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAc,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcpH,YAAiBnG,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAgB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcnH,uBAC/HlG,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4DAA2D1D,SAAA,EAC5Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC7Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC7Cq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kCACb23K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,SAAC,0BAGtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC7Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC7Cq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,mCACb23K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,SAAc,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcnH,0BAIvClG,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,0BAChCq7K,EAAAA,GAAAA,KAAA,KAAGzwG,wBAAyB,CAAEC,OAAQ23G,EAAuB,OAAZoG,QAAY,IAAZA,OAAY,EAAZA,EAAcS,oBAEnE9N,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,wBAChCq7K,EAAAA,GAAAA,KAAA,KAAGzwG,wBAAyB,CAAEC,OAAQ23G,EAAuB,OAAZoG,QAAY,IAAZA,OAAY,EAAZA,EAAcW,kBAEnEhO,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,oBACnB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcY,SAAqB,OAAZZ,QAAY,IAAZA,OAAY,EAAZA,EAAcY,MAAMl/J,KAAI,CAACm/J,EAAMllK,KAAW82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8CAA6C1D,UAC9Hu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BACbi6D,IAAS,OAAJ8rH,QAAI,IAAJA,OAAI,EAAJA,EAAM6iI,WAAY9wI,IAAI,SAC3B/3E,MAAM,KAAKC,OAAO,UAEtB23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oDAAmD1D,UAChEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAQ,OAAJypL,QAAI,IAAJA,OAAI,EAAJA,EAAMC,iBAGZrO,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAM,OAAJypL,QAAI,IAAJA,OAAI,EAAJA,EAAME,mCAUvCpO,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,yBACnB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAc2jI,cAA0B,OAAZ3jI,QAAY,IAAZA,OAAY,EAAZA,EAAc2jI,WAAWjiS,KAAI,CAACiiS,EAAYhoS,KAAW82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,8CAA6C1D,UAC1Ju7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BACbi6D,IAAe,OAAV4uP,QAAU,IAAVA,OAAU,EAAVA,EAAYC,iBAAkBhxI,IAAI,SACvC/3E,MAAM,KAAKC,OAAO,UAGhB23E,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACnBu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,cAAYukB,EAAQ,WATiDA,UAiBhGg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mBAChCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8CAA6C1D,UAC5Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BACbi6D,IAAI,6CAA6C69G,IAAI,SACrD/3E,MAAM,KAAKC,OAAO,UAGhB23E,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAgB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcnxD,mBAQ1C8jD,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,sBACnB,OAAZ4oL,QAAY,IAAZA,OAAY,EAAZA,EAAcnG,WAAuB,OAAZmG,QAAY,IAAZA,OAAY,EAAZA,EAAcnG,QAAQn4J,KAAI,CAACm4J,EAASl+J,KAAW82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,6BAA4B1D,UACpIu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8DAA6D1D,SAAA,EACxEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,MAAK1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAPyiL,QAAO,IAAPA,OAAO,EAAPA,EAASoH,oBAEpCxO,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,wCANsE6gB,+BA+BpF,6BChPP,MAyhCA,GAzhC+BkoS,KAC7B,MAAOC,EAAaC,IAAkBvsT,EAAAA,EAAAA,UAAS,KACxCwsT,EAAmBC,IAAwBzsT,EAAAA,EAAAA,UAAS,KACpD0sT,EAAiBC,IAAsB3sT,EAAAA,EAAAA,UAAS,KAChD4sT,EAAqBC,IAA0B7sT,EAAAA,EAAAA,UAAS,KAExD8sT,EAAaC,IAAkB/sT,EAAAA,EAAAA,UAAS,KAExCs0M,EAAeC,IAAoBv0M,EAAAA,EAAAA,UAAS,KAC5Cw0M,EAAqBC,IAA0Bz0M,EAAAA,EAAAA,WAAS,IACxDgtT,EAAUC,IAAejtT,EAAAA,EAAAA,UAAS,OAClCktT,EAAcC,IAAmBntT,EAAAA,EAAAA,WAAS,IAC1Co1O,EAAkBC,IAAuBr1O,EAAAA,EAAAA,UAAS,KAClDotT,EAAmBC,IAAwBrtT,EAAAA,EAAAA,UAAS,KACpDksT,EAAYoB,IAAiBttT,EAAAA,EAAAA,UAAS,KACtCutT,EAAyBC,IAA8BxtT,EAAAA,EAAAA,UAAS,KAChEosT,EAAkBqB,IAAuBztT,EAAAA,EAAAA,UAAS,KAElD0tT,EAAUC,IAAe3tT,EAAAA,EAAAA,UAAS,KAClCs4M,EAAQs1G,IAAa5tT,EAAAA,EAAAA,UAAS,KAC9B6tT,EAAcC,IAAmB9tT,EAAAA,EAAAA,UAAS,KAE1C+tT,EAAcC,IAAmBhuT,EAAAA,EAAAA,WAAS,IAC1CiuT,EAA4BC,IAAiCluT,EAAAA,EAAAA,UAAS,OACtEmuT,EAAsBC,IAA2BpuT,EAAAA,EAAAA,UAAS,OAC1DspL,EAAW+kI,IAAgBruT,EAAAA,EAAAA,UAAS,KACpCsuT,EAASC,IAAcvuT,EAAAA,EAAAA,UAAS,KAChCupL,EAAWilI,IAAgBxuT,EAAAA,EAAAA,UAAS,KACpCopL,EAAOqlI,IAAYzuT,EAAAA,EAAAA,UAAS,KAC5B0uT,EAAaC,IAAkB3uT,EAAAA,EAAAA,UAAS,KACxC4uT,EAAsBC,IAA2B7uT,EAAAA,EAAAA,UAAS,IAC3Do0K,EAAWR,MACVk7I,GAAgB9yG,KAAqBh8M,EAAAA,EAAAA,UAAS,IAQ/Cy1M,GAAqB3/M,IACzBy+M,EAAiBz+M,GACjB2+M,GAAuB,EAAM,EAQzBs6G,GAAmB17P,UACvB,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR,MAAMq9E,QAAgBL,GAAgBh9E,GACtC22L,EAAYt5G,GACZw5G,GAAgB,EAElB,GAEI75G,GAAkBjgJ,UACtB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAkBE04L,GAAsB37P,UAC1B,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAYE24L,GAAiB57P,UACrB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAYE44L,GAA4B77P,UAChC,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAiBE64L,GAAkB97P,UACtB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAkBE84L,GAAuB/7P,UAC3B,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,GA2DG+4L,GAASC,KAActvT,EAAAA,EAAAA,UAAS,KAChCuvT,GAAaC,KAAkBxvT,EAAAA,EAAAA,UAAS,KACxCyvT,GAAiBC,KAAsB1vT,EAAAA,EAAAA,UAAS,CAAEyyD,KAAM,GAAIj1D,QAAS,CAAC,CAAEmlJ,OAAQ,GAAIgtK,iBAAiB,GAAS,CAAEhtK,OAAQ,GAAIgtK,iBAAiB,MA2FpJ,OACE10I,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAO4nE,MAAO,CAACkpF,aAAa,MAAMx0J,SAAA,EAE/Cq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,mBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UACjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gDAA+C1D,SAAA,EAC9Du7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,CACEstT,IACG/xI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8FAA6F1D,SAAA,EACxGu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyCj6D,UAAU,wBAAwB83K,IAAI,iBACxFH,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAC,qBAE3Cq7K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLI,UAAU,yBACVgpD,OAAO,UACP1oD,SAAUmrT,QAIrB/B,IAAaE,IACVjyI,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAEAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wCAAuC1D,UAClEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8BAA6B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAKyvP,EAAU5xI,IAAI,WAAW93K,UAAU,8BAC7C63K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EAEAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD69G,IAAI,GAAG93K,UAAU,wBAC7E23K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLI,UAAU,2CACVgpD,OAAO,UACP1oD,SAAUmrT,mBAgBlB5zI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EACJq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,cAAansL,SAAC,kBAC5Dq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,4CAA4CD,GAAG,cAAcvN,MAAOw2T,EAAa1oT,SAAWkC,GAAMymT,EAAezmT,EAAEjR,OAAOiB,OAAQqpI,YAAY,eAAej0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAE3O63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EACpCq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,kBAGHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,gCACV4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QACR1jG,SAAA,CAED00M,IAEGr5B,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,WAAU1D,SAAC,wBAC/Bq7K,EAAAA,GAAAA,KAAA,QACE33K,UAAU,wEACVQ,QAjgBF8yM,KAC1BnC,GAAwBD,EAAoB,EAggBa50M,UAE7Bq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,uCACJ69G,IAAI,UAITo5B,IACCv5B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,cACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,WACN4/D,QAA2B,aAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,GAAkB,oBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,qDAAoD1D,SAAA,EACnEq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,kBACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,eACN4/D,QAA2B,iBAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,GAAkB,wBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,aACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,UACN4/D,QAA2B,YAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,GAAkB,mBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,SACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,MACN4/D,QAA2B,QAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,GAAkB,4BAWtCt6B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACvCq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,oBAAmBnsL,SAAC,wBAClEq7K,EAAAA,GAAAA,KAAC9+C,KAAU,CACTmD,MAAM,OACNxpI,MAAO02T,EACP5oT,SAlnBuB9N,IAC/B22T,EAAqB32T,EAAM,EAknBnBqpI,YAAY,cACZj0D,MAAO,CAAEyqF,gBAAiB,WAC1Bz2B,QAAS,CACPqQ,QAAS,CACP,CAAC,CAAE,OAAU,KAAM,CAAC,OAAU,KAAM,CAAE,KAAQ,KAC9C,CAAC,CAACniF,KAAM,KACR,CAAC,OAAQ,SAAU,YAAa,SAAU,cAC1C,CAAC,CAAC,KAAQ,WAAY,CAAC,KAAQ,UAAW,CAAC,OAAU,MAAO,CAAC,OAAU,OAEvE,CAAC,iBAKT+tH,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,oBAAmBnsL,SAAC,wBAClEq7K,EAAAA,GAAAA,KAAC9+C,KAAU,CACTmD,MAAM,OACNxpI,MAAO42T,EACP9oT,SAnoBqB9N,IAC7B62T,EAAmB72T,EAAM,EAmoBjBqpI,YAAY,YACZj0D,MAAO,CAAEyqF,gBAAiB,WAC1Bz2B,QAAS,CACPqQ,QAAS,CACP,CAAC,CAAE,OAAU,KAAM,CAAC,OAAU,KAAM,CAAE,KAAQ,KAC9C,CAAC,CAACniF,KAAM,KACR,CAAC,OAAQ,SAAU,YAAa,SAAU,cAC1C,CAAC,CAAC,KAAQ,WAAY,CAAC,KAAQ,UAAW,CAAC,OAAU,MAAO,CAAC,OAAU,OAEvE,CAAC,iBAKW+tH,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qCAAoC1D,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,eAAcnsL,SAAC,2BAC7Dq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,4CAA4CD,GAAG,sBAAsBvN,MAAO82T,EAAqBhpT,SAAWkC,GAAM+mT,EAAuB/mT,EAAEjR,OAAOiB,OAAQqpI,YAAY,wBAAwBj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAE5Q23E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,kBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qCAAoC1D,SAAA,EACvEq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,YAAWnsL,SAAC,gBAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,4CACVD,GAAG,YACH87H,YAAY,QACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7CxtG,MAAOwzL,EACP1lL,SAAWkC,GAAMuoT,EAAavoT,EAAEjR,OAAOiB,aAG3CqlL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,UAASnsL,SAAC,uBACxDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,kDACVD,GAAG,UACH87H,YAAY,cACZrpI,MAAOs3T,EACPxvL,UAAQ,KAEVu9C,EAAAA,GAAAA,MAAA,SAAO4Q,QAAQ,mBAAmBzoL,UAAU,wCAAuC1D,SAAA,CAAC,UAElFq7K,EAAAA,GAAAA,KAAA,SACE53K,GAAG,mBACHH,KAAK,OACLgoE,MAAO,CAAEk4C,QAAS,QAClB92D,OAAO,UACP1oD,SAAWkC,IAxnBOutD,WAC5B,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR+2L,EAAqB/2L,EAAKt+H,MAC1B,MAAM27M,QAAgBq7G,GAAoB14L,GAC1Cg3L,EAAc35G,EAGhB,GAinBYi8G,CAAsB9pT,GAClBA,EAAEjR,OAAOwzJ,MAAM,IACjBilK,EAAchrP,IAAIutP,gBAAgB/pT,EAAEjR,OAAOwzJ,MAAM,IACnD,cAOV8yB,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,UAASnsL,SAAC,iBACxDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,kDACVD,GAAG,UACH87H,YAAY,eACZrpI,MAAOs/O,EACPx3G,UAAQ,KAEVu9C,EAAAA,GAAAA,MAAA,SAAO4Q,QAAQ,cAAczoL,UAAU,wCAAuC1D,SAAA,CAAC,UAE7Eq7K,EAAAA,GAAAA,KAAA,SACE53K,GAAG,cACHH,KAAK,OACLgoE,MAAO,CAAEk4C,QAAS,QAClB92D,OAAO,uBACP1oD,SAAWkC,IA1mBEutD,WACvB,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR++G,EAAoB/+G,EAAKt+H,MACzB,MAAM27M,QAAgBs7G,GAAe34L,GACrCi4L,EAAW56G,EAGb,GAmmBYm8G,CAAiBhqT,GACbA,EAAEjR,OAAOwzJ,MAAM,IACjBkmK,EAAWjsP,IAAIutP,gBAAgB/pT,EAAEjR,OAAOwzJ,MAAM,IAChD,cAOV8yB,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qCAAoC1D,SAAA,EACjDq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,YAAWnsL,SAAC,gBAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,SACL05E,KAAK,OACLl9C,IAAI,IACJp8B,UAAU,4CACVD,GAAG,YACH87H,YAAY,QACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7CxtG,MAAOyzL,EACP3lL,SAAWkC,GAAM0oT,EAAa1oT,EAAEjR,OAAOiB,aAI3CmlL,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wDAAuD1D,UAC1Eq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD2N,MAAO,CAAC6qE,OAAO,WAAYjyI,QAhcjEisT,KAChBzmI,GAAaglI,GAAW/kI,GAAa2iI,GACvCuC,EAAS,IAAIrlI,EAAO,CAAEE,YAAWglI,UAAS/kI,YAAW2iI,gBACrDmC,EAAa,IACbE,EAAW,IACXC,EAAa,IACblB,EAAc,KAEd1jI,MAAM,4BACR,EAub6GtmL,UAAU,YAAY83K,IAAI,QAG3IH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,oBAGAwpL,EAAMp0L,OAAS,IACdmmL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACnBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,iBACJq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,aAAY1D,SACvBwpL,EAAMl/J,KAAI,CAACm/J,EAAMllK,KAChBg3J,EAAAA,GAAAA,MAAA,MAAgB73K,UAAU,kBAAiB1D,SAAA,EACzCu7K,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,OAAM1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,UAAAr7K,SAAQ,WAAe,IAAEypL,EAAKC,cAElDnO,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,OAAM1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,UAAAr7K,SAAQ,WAAe,KAAGypL,EAAKE,eAH5CplK,WASK82J,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,mBACvB04M,EAAOpuL,KAAI,CAACwxG,EAAOv3G,KACxCg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,kBAAiB1D,SAAA,EAC1Cq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAoB1D,SAAC,mBACtCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,oCAAoC4nE,MAAO,CAAEyqF,gBAAiB,YAAaryD,OAAQ,QAAS1jG,SAAEukB,EAAQ,OAExHg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,iDACV4nE,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7CxtG,MAAO4lI,EAAM+tD,aACb7rD,UAAQ,KAEVq9C,EAAAA,GAAAA,KAAA,OACE19G,IAAI,yCACJj6D,UAAU,GACV83K,IAAI,GACJt3K,QAASA,IAndIqgB,KACzB,MAAM6rS,EAAY,IAAI13G,GACtB03G,EAAU55Q,OAAOjyB,EAAO,GACxBypS,EAAUoC,EAAU,EAgdOC,CAAkB9rS,GACjC+mD,MAAO,CAAE6qE,OAAQ,qBAnBf5xH,MA0BZg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,aAAYnsL,SAAC,iBAC3Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,4CACVD,GAAG,aACH87H,YAAY,QACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7CxtG,MAAO+3T,EACPjqT,SAAWkC,GAAMgoT,EAAgBhoT,EAAEjR,OAAOiB,gBAK9CmlL,EAAAA,GAAAA,KAAA,OAAAr7K,SACCmuT,GACS5yI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8FAA6F1D,SAAA,EACxGu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,wCAAwCj6D,UAAU,wBAAwB83K,IAAI,iBACvFH,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAC,qBAE3Cq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,yBAAyBgpD,OAAO,UAAU1oD,SA/mB/DyvD,UACxB,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR,MAAMq9E,QAAgBw7G,GAAgB74L,GACtCq3L,EAAYh6G,GACZq6G,GAAgB,EAElB,SA2mBU/yI,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAEEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gCAA+B1D,UAC1Cu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,2BAA2BwzH,UAAQ,EAAAl3H,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,UAAQ19G,IAAKmwP,EAAUxqT,KAAK,cAAc,yDAalEi4K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wDAAuD1D,UACpEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD2N,MAAO,CAAC6qE,OAAO,WAAYjyI,QAjhBhEosT,KACjBrC,GAAgBH,GAClBE,EAAU,IAAIt1G,EAAQ,CAAE7uB,aAAcokI,EAAc9wG,WAAY2wG,KAChEI,EAAgB,IAChBH,EAAY,IACZK,GAAgB,IAEhBpkI,MAAM,mDACR,EAygB8GtmL,UAAU,YAAY83K,IAAI,QAG5IH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,wBAGPu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EACDq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,YAAWnsL,SAAC,kBAC1Dq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,SAASw8B,IAAI,IAAIp8B,UAAU,4CAA4CD,GAAG,cAAcvN,MAAOg3T,EAAalpT,SAAWkC,GAAMinT,EAAejnT,EAAEjR,OAAOiB,OAAQqpI,YAAY,eAAej0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,sBAQtQ63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACxDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qHAAoH1D,SAAA,EACtIu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2CAA2Cj6D,UAAU,wBAAwB83K,IAAI,iBAC1FH,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAEquT,GAA0D,yBAEnGA,GACC9yI,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,0CAA0C69G,IAAI,GAAGt3K,QAnkBjCqsT,KACjCjC,EAA8B,IAC9BW,EAAwB,GAAG,EAikB4EvrT,UAAU,0CAA0C4nE,MAAO,CAAE0oB,OAAQ,EAAGmiD,OAAQ,cAC/KklC,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yCAGjB23K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,yBACVgpD,OAAO,uBACP1oD,SAvnBuByvD,UACjC,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR43L,EAA8B53L,EAAKt+H,MACnC,MAAM27M,QAAgBy7G,GAAqB94L,GAC3Cu4L,EAAwBl7G,GAExB51M,QAAQo7B,IAAIw6K,EACd,WAonBEx4B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,UAASnsL,SAAC,6BACxDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,kDACVD,GAAG,UACH87H,YAAY,cACZrpI,MAAOy3T,EACP3vL,UAAQ,KAEVu9C,EAAAA,GAAAA,MAAA,SAAO4Q,QAAQ,yBAAyBzoL,UAAU,wCAAuC1D,SAAA,CAAC,UAExFq7K,EAAAA,GAAAA,KAAA,SACE53K,GAAG,yBACHH,KAAK,OACLgoE,MAAO,CAAEk4C,QAAS,QAClB92D,OAAO,UACP1oD,SAAWkC,IA/uBautD,WAClC,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACRk3L,EAA2Bl3L,EAAKt+H,MAChC,MAAM27M,QAAgBu7G,GAA0B54L,GAChDm3L,EAAoB95G,EAGtB,GAwuBYy8G,CAA4BtqT,GACxBA,EAAEjR,OAAOwzJ,MAAM,IACjBolK,EAAoBnrP,IAAIutP,gBAAgB/pT,EAAEjR,OAAOwzJ,MAAM,IACzD,cAOV4yB,EAAAA,GAAAA,KAAA,OAAAr7K,SACG8uT,EAAYxkS,KAAI,CAACiiS,EAAYhoS,KAC5Bg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,2EAA0E1D,SAAA,EACnGq7K,EAAAA,GAAAA,KAAA,OAAAr7K,SAAMusT,EAAWkE,sBACjBp1I,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,0CAA0C69G,IAAI,SAASt3K,QAASA,IA9jBnDqgB,KAC9B,MAAMmsS,EAAiB,IAAI5B,GAC3B4B,EAAel6Q,OAAOjyB,EAAO,GAC7BwqS,EAAe2B,EAAe,EA2jByDC,CAAuBpsS,GAAQ7gB,UAAU,OAAO4nE,MAAO,CAAE6qE,OAAQ,eAFxI5xH,QAMdg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EACrCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wDAAuD1D,UACpEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD2N,MAAO,CAAC6qE,OAAO,WAAYjyI,QA/kB3D0sT,KACtB5B,GAAwBxC,GAC1BuC,EAAe,IAAID,EAAa,CAAE+B,cAAe7B,EAAsByB,mBAAoBpC,EAA4B7B,iBAAkBA,KACzI8B,EAA8B,IAC9BW,EAAwB,IACxBpB,EAAoB,KAEpB7jI,MAAM,wCACR,EAukBmHtmL,UAAU,YAAY83K,IAAI,QAGjJH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,2BAGPq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UACDq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,YAAWnsL,SAAC,wBAG1Fu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAoB1D,SAAC,cACtCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,4CACVxN,MAAO25T,GAAgBh9P,KACvB7uD,SA5kBsBkC,IAC5B4pT,GAAmB,IAAKD,GAAiBh9P,KAAM3sD,EAAEjR,OAAOiB,OAAQ,EA4kB1DqpI,YAAY,sBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,aAGhDmsN,GAAgBjyT,QAAQ0sB,KAAI,CAACy4H,EAAQx+H,KACpCg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,4CAA2C1D,SAAA,EACpEu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,0BAAyB1D,SAAA,CAAC,UAAQukB,EAAQ,MAC3D82J,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,4CACVxN,MAAO6sJ,EAAOA,OACd/+I,SAAWkC,GAplBM4qT,EAACvsS,EAAOruB,KACjC,MAAM8H,EAAa6xT,GAAgBjyT,QAAQ0sB,KAAI,CAACy4H,EAAQ7tJ,IAAOA,IAAMqvB,EAAQ,IAAKw+H,EAAQA,OAAQ7sJ,GAAU6sJ,IAC5G+sK,GAAmB,IAAKD,GAAiBjyT,QAASI,GAAa,EAklBtC8yT,CAAmBvsS,EAAOre,EAAEjR,OAAOiB,OACpDqpI,YAAW,gBAAAlhI,OAAkBkmB,EAAQ,GACrC+mD,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,WAE/C23E,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,WACLI,UAAU,yCACV4nE,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,QAChC5tC,QAASitF,EAAOgtK,gBAChB/rT,SAAUA,IAxlBeugB,KACjC,MAAMvmB,EAAa6xT,GAAgBjyT,QAAQ0sB,KAAI,CAACy4H,EAAQ7tJ,KAAC,IACpD6tJ,EACHgtK,gBAAiB76T,IAAMqvB,IAASw+H,EAAOgtK,oBAEzCD,GAAmB,IAAKD,GAAiBjyT,QAASI,GAAa,EAmlBvC+yT,CAA0BxsS,OAfpCA,KAoBXsrS,GAAgBjyT,QAAQxI,OAAS,IAChCimL,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,4BAA4B4nE,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAU1hG,QAtlB/E8sT,KAClBnB,GAAgBjyT,QAAQxI,OAAS,GACnC06T,GAAmB,IAAKD,GAAiBjyT,QAAS,IAAIiyT,GAAgBjyT,QAAS,CAAEmlJ,OAAQ,GAAIgtK,iBAAiB,KAChH,EAmlB8H/vT,SAAC,gBAE7Hq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,4BAA4B4nE,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAU1hG,QAllB3E+sT,KACpBpB,GAAgBh9P,MAAQg9P,GAAgBjyT,QAAQF,OAAMwzT,GAAOA,EAAInuK,SAC/D8sK,GAAgBjyT,QAAQugI,MAAK+yL,GAAOA,EAAInB,mBAC1CH,GAAe,IAAID,GAAaE,KAChCC,GAAmB,CAAEj9P,KAAM,GAAIj1D,QAAS,CAAC,CAAEmlJ,OAAQ,GAAIgtK,iBAAiB,GAAS,CAAEhtK,OAAQ,GAAIgtK,iBAAiB,OAEhH/lI,MAAM,+CAGRA,MAAM,sDACR,EAwkB8HhqL,SAAC,kBAC7Hq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,4BAA4B4nE,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAU1hG,QAtkB5EitT,KACnBxB,GAAYv6T,OAAS,GACvBs6T,GAAW,IAAID,GAAS,CAAE2B,UAAWzB,MACrCC,GAAe,KAEf5lI,MAAM,gDACR,EAgkB6HhqL,SAAC,iBAC5Hq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,YACHyvT,GAAQnlS,KAAI,CAAC+mS,EAAM9sS,KAClBg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,OAAM1D,SAAA,EAC/Bu7K,EAAAA,GAAAA,MAAA,MAAAv7K,SAAA,CAAI,QAAMukB,EAAQ,KACjB8sS,EAAKD,UAAU9mS,KAAI,CAACgnS,EAAUC,KAC7Bh2I,EAAAA,GAAAA,MAAA,OAAkB73K,UAAU,OAAM1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAIsxT,EAASz+P,QACbwoH,EAAAA,GAAAA,KAAA,MAAAr7K,SACGsxT,EAAS1zT,QAAQ0sB,KAAI,CAAC4mS,EAAKM,KAC1Bn2I,EAAAA,GAAAA,KAAA,MAAiB33K,UAAWwtT,EAAInB,gBAAkB,eAAiB,GAAG/vT,SACnEkxT,EAAInuK,QADEyuK,SAJLD,MAWZl2I,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,iBAAiBQ,QAASA,IA9kB1BqgB,KACxB,MAAMktS,EAAiBhC,GAAQ/6T,QAAO,CAAC28T,EAAMn8T,IAAMA,IAAMqvB,IACzDmrS,GAAW+B,EAAe,EA4kB8BC,CAAiBntS,GAAOvkB,SAAC,kBAdnEukB,MAkBlB82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAS/Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UACXq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,kDAAkDQ,QAxlB/D6qM,KACrB,MAAM4iH,EAAqB,CACzBxwI,UAAWisI,EACX31L,MAAOi1L,EACPrjI,YAAaujI,EACbrjI,UAAWujI,EACX9gL,MAAO0oE,EACPlrB,MAAOA,EACP/G,QAASi2B,EACTl3B,MAAO0rI,EACPmE,KAAM5B,GACNlD,WAAYuC,EACZrtI,eAAgBurI,GAEbI,GAAaV,GAAgBE,GAAsBE,GAAoBp4G,GAAkBw4G,GAK5F9wG,GAAkBu1G,GACpBxzT,QAAQo7B,IAAIo4R,GACZn9I,EAAS,iCAAmC,CAAEhkK,MAAO,CAAEohT,aAAcD,MANnE3nI,MAAM,2CAOR,EAkkB8G1+G,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAC,mCAWhK,ECjwBL,GAnRsC6xT,KACpC,MAAMh4T,EAAW+5K,KACX,aAAEg+I,GAAiB/3T,EAAS2W,OAAS,CAAC,EACpCgkK,EAAWR,MACZoM,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IA2ElCytL,EAAWC,IAAgB1tL,EAAAA,EAAAA,WAAS,GAY7C,OAVEvE,EAAAA,EAAAA,YAAU,KACN,IAAI4+J,EAMJ,OALIozB,IACFpzB,EAAQriI,YAAW,KA7EvBo8I,EAAS,kBA8Ea,GACf,MAEE,IAAM/mE,aAAagtD,EAAM,GAC/B,CAACozB,KAGNtS,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KACbzI,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAElBq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,mBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oBAAmB1D,SAAA,EAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UAC1Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,WAAU1D,SAAA,EACzBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,IAAG1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACzCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAoCi6D,IAAiB,OAAZi0P,QAAY,IAAZA,OAAY,EAAZA,EAAczwI,UAAW3F,IAAI,cAAclwG,MAAO,CAACo4B,OAAO,cAEtH63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oDAAmD1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,QAAO/vG,MAAO,CAAE21G,eAAgB,OAAOr7E,MAAM,SAAU5lG,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAgB,OAAZ4xT,QAAY,IAAZA,OAAY,EAAZA,EAAcn6L,WAC7I4jD,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAa4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,SAC7H,OAAZ4xT,QAAY,IAAZA,OAAY,EAAZA,EAAc5lL,cAInBuvC,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAc,OAAZ4xT,QAAY,IAAZA,OAAY,EAAZA,EAAcpwI,YAAiBnG,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAgB,OAAZ4xT,QAAY,IAAZA,OAAY,EAAZA,EAAcnwI,eAAe,mBAC9IlG,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4DAA2D1D,SAAA,EAC5Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC7Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC7Cq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kCACb23K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,SAAC,yBAGtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC7Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC7Cq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,mCACb63K,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,OAAM1D,SAAA,CAAE4xT,EAAanwI,eAAe,sBAIrDlG,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,0BAChCq7K,EAAAA,GAAAA,KAAA,KAAGzwG,wBAAyB,CAAEC,OAAoB,OAAZ+mP,QAAY,IAAZA,OAAY,EAAZA,EAAcvoI,mBAExD9N,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,wBAChCq7K,EAAAA,GAAAA,KAAA,KAAGzwG,wBAAyB,CAAEC,OAAoB,OAAZ+mP,QAAY,IAAZA,OAAY,EAAZA,EAAcroI,iBAExDhO,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,oBACnB,OAAZ4xT,QAAY,IAAZA,OAAY,EAAZA,EAAcpoI,SAAqB,OAAZooI,QAAY,IAAZA,OAAY,EAAZA,EAAcpoI,MAAMl/J,KAAI,CAACm/J,EAAMllK,KAAW82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,8CAA6C1D,UAC9Hu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BACbi6D,IAAS,OAAJ8rH,QAAI,IAAJA,OAAI,EAAJA,EAAM6iI,WAAY9wI,IAAI,SAC3B/3E,MAAM,KAAKC,OAAO,UAEtB23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oDAAmD1D,UAChEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAQ,OAAJypL,QAAI,IAAJA,OAAI,EAAJA,EAAMC,iBAGZrO,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAM,OAAJypL,QAAI,IAAJA,OAAI,EAAJA,EAAME,mCAYvCpO,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,yBACnB,OAAZ4xT,QAAY,IAAZA,OAAY,EAAZA,EAAcrF,cAA0B,OAAZqF,QAAY,IAAZA,OAAY,EAAZA,EAAcrF,WAAWjiS,KAAI,CAACiiS,EAAYhoS,KAAW82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,8CAA6C1D,UAC1Ju7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BACbi6D,IAAe,OAAV4uP,QAAU,IAAVA,OAAU,EAAVA,EAAYC,iBAAkBhxI,IAAI,SACvC/3E,MAAM,KAAKC,OAAO,UAGhB23E,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACnBu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,cAAYukB,EAAQ,WATiDA,UAiBhGg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,mBACnB,OAAZ4xT,QAAY,IAAZA,OAAY,EAAZA,EAAcP,QAAoB,OAAZO,QAAY,IAAZA,OAAY,EAAZA,EAAcP,KAAK/mS,KAAI,CAAC+mS,EAAM9sS,KAAW82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,8CAA6C1D,UACxIu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAoB1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BACbi6D,IAAI,6CAA6C69G,IAAI,SACrD/3E,MAAM,KAAKC,OAAO,UAGhB23E,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UACnBu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,QAAMukB,EAAQ,WATqCA,UAiB9Eg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,eAAc1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,sBACnB,OAAZ4xT,QAAY,IAAZA,OAAY,EAAZA,EAAcnvI,WAAuB,OAAZmvI,QAAY,IAAZA,OAAY,EAAZA,EAAcnvI,QAAQn4J,KAAI,CAACm4J,EAASl+J,KAAW82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,6BAA4B1D,UACpIu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8DAA6D1D,SAAA,EACxEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,MAAK1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAPyiL,QAAO,IAAPA,OAAO,EAAPA,EAASoH,oBAEpCxO,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,wCANsE6gB,SAgB1E,OAAZqtS,QAAY,IAAZA,GAAAA,EAAc9oI,UACfzN,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA2CQ,QAAUgC,IAAQA,EAAE84F,iBAvL9C8yN,MACjC,IAgBIliS,EAAO,CACTuxJ,UAAWywI,EAAazwI,UACxB1pD,MAAOm6L,EAAan6L,MACpB4xD,YAAauoI,EAAavoI,YAC1BE,UAAWqoI,EAAaroI,UACxBv9C,MAAO4lL,EAAa5lL,MACpBw9C,MAAOooI,EAAapoI,MACpB/G,QAASmvI,EAAanvI,QACtBjB,MAAOowI,EAAapwI,MACpB6vI,KAAMO,EAAaP,KACnB9E,WAAYqF,EAAarF,WACzB9qI,eAAgBmwI,EAAanwI,gBAE/BtjL,QAAQo7B,IAAI3J,GACZ+rJ,GAAQ,QAAStN,GAAOyR,WAAW,IAAI8xI,EAAa9oI,SAAUl5J,EAAMywJ,GA9BtDj2H,IACZjsD,QAAQo7B,IAAI,qBAAsB6wB,GACZ,KAAlBA,EAAI9hC,WACNwlK,GAAa,GAQjBpK,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACvB4qK,UAAW,MAEf,IAgB6Fz+K,IACzF/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAsJ+F4sT,EAA4B,EAAKxmP,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAC,oBAEtKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC3Bq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA2CQ,QAAUgC,IAAQA,EAAE84F,iBA7N5D+yN,MACjC,IAgBIniS,EAAO,CACTuxJ,UAAWywI,EAAazwI,UACxB1pD,MAAOm6L,EAAan6L,MACpB4xD,YAAauoI,EAAavoI,YAC1BE,UAAWqoI,EAAaroI,UACxBv9C,MAAO4lL,EAAa5lL,MACpBw9C,MAAOooI,EAAapoI,MACpB/G,QAASmvI,EAAanvI,QACtBjB,MAAOowI,EAAapwI,MACpB6vI,KAAMO,EAAaP,KACnB9E,WAAYqF,EAAarF,WACzB9qI,eAAgBmwI,EAAanwI,gBAE/BtjL,QAAQo7B,IAAI3J,GACZ+rJ,GAAQ,OAAQtN,GAAOwR,aAAcjwJ,EAAMywJ,GA9B7Bj2H,IACZjsD,QAAQo7B,IAAI,qBAAsB6wB,GACZ,KAAlBA,EAAI9hC,WACNwlK,GAAa,GAQjBpK,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACvB4qK,UAAW,MAEf,IAgBoEz+K,IAChE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EA4L6G6sT,EAA8B,EAAKzmP,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAC,eAExL6tL,IACDxS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UACnKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAK/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EAEnCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2DAA2D69G,IAAI,GAAG93E,OAAO,MAAMD,MAAM,SAC9F43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,SAAc,OAAZ4xT,QAAY,IAAZA,GAAAA,EAAc9oI,UAAUzN,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,+BAA8Bq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,oCAClFq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,4KAaxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sDAcpB,ECpOP,GA7CgCsuT,KAE5B32I,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAElBq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,kBACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,SAElB,IAAI7I,MAAM,IAAImzB,KAAK/F,IAClB82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,uCAAsC1D,UAC/Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6CAA4C1D,UACzDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,+BAA8B1D,SAAA,EAC3Cq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAO03B,KAAK,IAAGp7B,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iCAAiCi6D,IAAI,uBAAuB69G,IAAI,SAAS/3E,MAAM,KAAKC,OAAO,UAE5G63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,oDAAmD1D,SAAA,EAChEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,aACvBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,uBAG7Bq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,8KAbJukB,oBCgbxB,GAvbwB0tS,KACvB,MAAMzvF,EAASwR,KACTjxD,EAAiB3+J,aAAa83J,QAAQ,aAClC4B,EAAMs2D,IAAWh0O,EAAAA,EAAAA,UAAS2iL,EAAiB1sK,KAAKe,MAAM2rK,GAAkB,OAExEhqK,EAASs7N,IAAcj0O,EAAAA,EAAAA,UAAS,KAChCk0O,EAAYC,IAAiBn0O,EAAAA,EAAAA,WAAS,IACtCosN,EAASgoB,IAAcp0O,EAAAA,EAAAA,UAAS,KAChCq0O,EAAcC,IAAmBt0O,EAAAA,EAAAA,UAAS,OAC1Cu0O,EAAUC,IAAex0O,EAAAA,EAAAA,WAAS,IAClCy0O,EAAWC,IAAgB10O,EAAAA,EAAAA,UAAS,KACpC20O,EAAYC,IAAiB50O,EAAAA,EAAAA,UAAS,OACtC60O,EAAmBC,IAAwB90O,EAAAA,EAAAA,UAAS,OAEpD+0O,EAAaC,IAAkBh1O,EAAAA,EAAAA,UAAS,KACxCywB,EAAa0kN,IAAkBn1O,EAAAA,EAAAA,UAAS,SACxCo1O,EAAkBC,IAAuBr1O,EAAAA,EAAAA,UAAS,IAMvDs1O,EAAchvF,IAChB,MAAM/mI,EAAO,IAAII,KAAK2mI,GAEtB,IAAIivF,EAAgB,IAAIC,KAAKC,eAAe,QAD5B,CAAEC,KAAM,UAAWC,OAAQ,UAAWC,QAAQ,IACA59N,OAAOuH,GAErE,OADAg2N,EAAgBA,EAAc//N,QAAQ,KAAM,MAAMA,QAAQ,KAAM,MACzD+/N,CAAa,GAEpB95O,EAAAA,EAAAA,YAAU,KACFiiL,IAEA0kD,EAAOrsM,KAAK,aAAe2nJ,GAE3B0kD,EAAOrsM,KAAK,cAAgB2nJ,GAC5B0kD,EAAOxmO,GAAG,WAAYkT,IAElB4lO,EAAiB,OAAJ5lO,QAAI,IAAJA,OAAI,EAAJA,EAAM+mO,QAAQ,IASnC,GACD,CAACn4D,IAEJ,MA4BQs4D,EAAiB3iL,UACrB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EA4BAg9E,EAAkBjgJ,UACpB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EA+EN,OA5BA76H,EAAAA,EAAAA,YAAU,KACiB+6O,MACnB,MAAMC,EAAgBz1M,SAASwuG,cAAc,kBACzCinG,IACAA,EAAcntI,UAAYmtI,EAAcC,aAC5C,EAGJF,GAEA,MAAM9b,EAAmBA,KACrB,MAAMic,EAAqB31M,SAASwuG,cAAc,yBAClD,GAAImnG,EAAoB,CACpB,MAAMC,EAAeD,EAAmBE,YAClCC,EAAgBllO,KAAKC,MAAM+kO,EAAe,IAChDxC,EAAW0C,EACf,GAOJ,OAJApc,IAEA11N,OAAOo2B,iBAAiB,SAAUs/L,GAE3B,KACH11N,OAAO8xF,oBAAoB,SAAU4jI,EAAiB,CACzD,GACF,CAACqa,KAGA95D,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACIq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC5Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAChBq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAClBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACtBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACjCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,WACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACjBq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,UAAU4nE,MAAO,CAAEkpF,aAAc,OAAQx0J,UACrDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAChBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAC3Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,UAAS1D,SAAA,EACpBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BAA8B1D,UACzCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACvBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACjBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACtCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gCAA+B1D,SAAA,EAC1Cq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,kCAAkC67H,YAAY,eAAej0D,MAAO,CAAEyqF,gBAAiB,cACpHslB,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oDAAmD1D,UAC9Dq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,2CAM5BmxO,GAAaA,EAAUvqN,KAAK+rN,IAAI,IAAAc,EAAAC,EAAAC,EAAAC,EA3E/DzkL,EAAMykB,EA2EyD,OACjD+jG,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,sDAAsDQ,QAASA,IArElGmyO,KAAU,IAADC,EAAAC,EAAAC,EAAAC,EAC9B,MAAMC,GAAc,OAAJL,QAAI,IAAJA,GAAW,QAAPC,EAAJD,EAAMM,aAAK,IAAAL,GAAK,QAALC,EAAXD,EAAc,UAAE,IAAAC,OAAZ,EAAJA,EAAkBr1D,QAAY,OAAJm1D,QAAI,IAAJA,OAAI,EAAJA,EAAMn1D,KAAU,OAAJm1D,QAAI,IAAJA,GAAW,QAAPG,EAAJH,EAAMM,aAAK,IAAAH,OAAP,EAAJA,EAAc,GAAS,OAAJH,QAAI,IAAJA,GAAW,QAAPI,EAAJJ,EAAMM,aAAK,IAAAF,OAAP,EAAJA,EAAc,GACvFt4O,QAAQo7B,IAAIm9M,GACZv4O,QAAQo7B,IAAI88M,GACNnB,EAAqBwB,GACrB1B,EAAqB,OAAP0B,QAAO,IAAPA,OAAO,EAAPA,EAASx1D,KACvBshD,EAAOrsM,KAAK,YAAc2nJ,EAAa,OAAP44D,QAAO,IAAPA,OAAO,EAAPA,EAASx1D,KACzCshD,EAAOxmO,GAAG,YAAakT,IACnBkmO,EAAmB,OAAJlmO,QAAI,IAAJA,OAAI,EAAJA,EAAM6gB,UACrB5xB,QAAQo7B,IAAQ,OAAJrqB,QAAI,IAAJA,OAAI,EAAJA,EAAM6gB,SAAS,GAC7B,EA2DqHomN,CAAUE,GAAMr2O,UACnGu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EACxDq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAS,OAAJ04K,QAAI,IAAJA,GAAW,QAAPc,EAAJd,EAAMM,aAAK,IAAAQ,GAAK,QAALC,EAAXD,EAAc,UAAE,IAAAC,OAAZ,EAAJA,EAAkBrzD,OAAQrgL,UAAU,sBAAsB83K,IAAI,aAAa/3E,MAAM,KAAKC,OAAO,QACvG63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACvBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAkC4nE,MAAO,CAAEmwG,SAAU,QAASz7K,SAAA,EACzEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAClBq7K,EAAAA,GAAAA,KAAA,QAAAr7K,UAAMq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAQ,OAAJq2O,QAAI,IAAJA,GAAW,QAAPgB,EAAJhB,EAAMM,aAAK,IAAAU,GAAK,QAALC,EAAXD,EAAc,UAAE,IAAAC,OAAZ,EAAJA,EAAkBryD,gBAEhC5J,EAAAA,GAAAA,KAAA,OAAAr7K,UAAKq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,aAAY1D,SAAE01O,EAAe,OAAJW,QAAI,IAAJA,OAAI,EAAJA,EAAMkB,mBAExDl8D,EAAAA,GAAAA,KAAA,OAAK/vG,MAAO,CAAEmwG,SAAU,QAAU/3K,UAAU,aAAY1D,UAACq7K,EAAAA,GAAAA,KAAA,QAAAr7K,UAtFnF6yD,EAsF2G,OAAJwjL,QAAI,IAAJA,OAAI,EAAJA,EAAMmB,YAtFvGlgK,EAsFoH,IArFpI,OAAJzkB,QAAI,IAAJA,OAAI,EAAJA,EAAMz9D,QAASkiF,EACRzkB,EAAKr2B,UAAU,EAAG86C,GAAa,OAEnCzkB,cAqFkC,UAIDwoH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BAA8B1D,UACzCu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,0BAAyB1D,UACpCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iCAAgC1D,SAAA,EAC3Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAsB,OAAjBs3K,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBlxD,OAAQrgL,UAAU,sBAAsB83K,IAAI,gBAAgB/3E,MAAM,KAAKC,OAAO,UAE/G63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAuB1D,SAAA,EAClCq7K,EAAAA,GAAAA,KAAA,UAAAr7K,SAA0B,OAAjBi1O,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBhwD,WACV,OAAjBgwD,QAAiB,IAAjBA,GAAAA,EAAmBwC,UAAWl8D,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,CAAC,eAAWq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,6CAC5F63K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,CAAC,YAAQq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,iDAE9D23K,EAAAA,GAAAA,KAAA,gBAMRA,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAClCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,SACjCm1O,GAAeA,EAAYh9O,QAAQ0hF,UAAUvvD,KAAI,CAACzR,EAAK0L,KAAK,IAAAmzN,EAAA,OACrGn8D,EAAAA,GAAAA,MAAA,OAAiB73K,UAAS,gBAAArF,OAAkBwa,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,QAAU,OAAM,SAAQlhL,SAAA,EAC/Fq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAK9kD,EAAI8+N,OAAO5zD,OAAQrgL,UAAU,sBAAsB83K,IAAI,OAAO/3E,MAAM,KAAKC,OAAO,UAE9F63E,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,CACkB,UAAb6Y,EAAIvV,MACD+3K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,0BAA0Bi6D,IAAK9kD,EAAIE,QAASyiK,IAAI,OAAOlwG,MAAO,CAAEw1G,SAAU,UAC5E,SAAbjoK,EAAIvV,MACJ+3K,EAAAA,GAAAA,KAAA,KAAGjgJ,KAAMviB,EAAIE,QAASrV,UAAU,+BAA+B4nE,MAAO,CAAEk4C,QAAS,QAASy9D,eAAgB,OAAQr7E,MAAO/sF,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,QAAU,QAASnrB,gBAAiBl9I,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,OAAS,QAAS4K,aAAcjzK,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,qBAAuB,sBAAwBjsL,OAAO,SAASs2E,IAAI,sBAAqBvrE,UAC9Wu7K,EAAAA,GAAAA,MAAA,UAAQj4K,KAAK,SAASI,UAAU,kBAAkB,0BAAoB1D,SAAA,CAAC,cAAUq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,mCAErF,UAAbmV,EAAIvV,MACJ+3K,EAAAA,GAAAA,KAAC+V,KAAW,CACZ1tL,UAAU,+BACNpE,IAAKuZ,EAAIE,QACTm+G,UAAQ,EACRzzB,MAAM,OACNC,OAAO,UAGX23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAS,gCAAArF,OAAkCwa,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,UAAY,YAAc51G,MAAO,CAAEwgH,aAAcjzK,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,qBAAuB,qBAAsBt7E,MAAO/sF,EAAI8+N,OAAOz2D,OAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,QAAU,SAAUlhL,SACjQ6Y,EAAIE,WAGbwiK,EAAAA,GAAAA,MAAA,OAAK73K,UAAS,cAAArF,QAAmB,OAAHwa,QAAG,IAAHA,GAAW,QAAR6+N,EAAH7+N,EAAK8+N,cAAM,IAAAD,OAAR,EAAHA,EAAax2D,QAAY,OAAJpD,QAAI,IAAJA,OAAI,EAAJA,EAAMoD,KAAM,WAAa,GAAE,gCAA+BlhL,SAAA,CACxG01O,EAAW78N,EAAI++N,WAAW,IAAK,OAAH/+N,QAAG,IAAHA,GAAAA,EAAK8tE,MAAO00F,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,KAAQ,aAzB5Fj3J,EA4BJ,SAKkCg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mCAAkC1D,SAAA,EAC7Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gCAA+B1D,SAAA,EAC1Cq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mCAAmCz5D,QAxKvF4+I,KACjByxF,GAAeD,EAAW,EAuKqG94D,IAAI,QAE3EH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UACxBq7K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLI,UAAU,wBACV67H,YAAY,oBACZrpI,MAAO6iB,EACP/U,SA1LzCkC,IACvBmuO,EAAWnuO,EAAEjR,OAAOiB,OACpB0+O,EAAsC,KAA1B1uO,EAAEjR,OAAOiB,MAAM4nD,QACjCy3L,EAAe,OAAO,EAwLgDrxO,QAASA,IAAMqwO,GAAc,QAGrCh5D,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLopD,OAAO,uDACP4e,MAAO,CAAEk4C,QAAS,QAClB//G,GAAG,YACHO,SA7T3CyvD,UACrB,MAYMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,GAbmB,CACnB,kBACA,aACA,qBACA,0EACA,kBACA,0CACA,2BACA,oEACA,gCACA,6EAGuBx4H,SAASw4H,EAAKpzH,MAAO,CAC5CmyO,EAAoB/+G,EAAKt+H,MACzB,MAAM27M,QAAgBqiC,EAAe1/G,GAErC29G,EAAWtgC,GAEXwhC,EAAe,QACnBX,EAAsC,KAA1B1uO,EAAEjR,OAAOiB,MAAM4nD,OAE3B,MACIksI,MAAM,8BACV,KAsS4D3O,EAAAA,GAAAA,KAAA,SAAO8Q,QAAQ,YAAYzoL,UAAU,OAAM1D,UACvCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,4BAA4B69G,IAAI,cAAclwG,MAAO,CAAE6qE,OAAQ,mBAGhFolC,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLopD,OAAO,kBACP4e,MAAO,CAAEk4C,QAAS,QAClB//G,GAAG,aACHO,SA3QxCyvD,UACxB,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,GAAQA,EAAKpzH,KAAKmnC,WAAW,UAAW,CACxC,MAAMspK,QAAgBL,EAAgBh9E,GAEtC29G,EAAWtgC,GAEXwhC,EAAe,SACnBX,EAAsC,KAA1B1uO,EAAEjR,OAAOiB,MAAM4nD,OAE3B,MACM,GAAG44E,GAAQA,EAAKpzH,KAAKmnC,WAAW,UAAU,CAExC,MAAMspK,QAAgBL,EAAgBh9E,GAEtC29G,EAAWtgC,GAEXwhC,EAAe,SACnBX,EAAsC,KAA1B1uO,EAAEjR,OAAOiB,MAAM4nD,OAC9B,MAGGksI,MAAM,6CACV,KAsP4D3O,EAAAA,GAAAA,KAAA,SAAO8Q,QAAQ,aAAazoL,UAAU,YAAW1D,UAC7Cq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yBAAyB69G,IAAI,eAAelwG,MAAO,CAAE6qE,OAAQ,mBAG9EklC,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAO4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QAxM1F4zO,KACQ,KAAnB/+N,EAAQ+kC,QAAiBi3L,IAOzBvS,EAAOrsM,KAAK,eAAgB2nJ,EAAMi3D,EAAWh8N,EAAQ8X,GAErDwjN,EAAW,IACf,EA6L6Hr0O,UACjFq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,uBAAuB69G,IAAI,GAAG/3E,MAAM,OAAOC,OAAO,eAYnD23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,SACZs0O,IACGj5D,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uBAAsB1D,UACjCq7K,EAAAA,GAAAA,KAAC14B,GAAM,CACH4rE,cAjO9CrD,IACtBmpB,EAAWt7N,EAAUmyM,EAAM10E,OAAO,EAiOkCn1B,WAAW,EACX+rG,UAAW,GACXD,gBAAiB,GACjBD,kBAAmB,OACnBD,kBAAmB,CAAC,OAAQ,OAAQ,uBACpCI,aAAc,GACdplE,MAAO,OACPx+E,OAAQ,KACR8iJ,gBAAiB,EACjBiB,YAAa,MACbhB,QAASA,EACTmB,aAAc,WACdC,gBAAiB,OACjBC,eAAgB,SAChB19M,IAAK,SACL29M,KAAM,EACNpuF,MAAO,4CAiBxE,ECtRX,GAnKoBwyL,KAClB,MAAOlyI,EAAYmyI,IAAiB/xT,EAAAA,EAAAA,UAAS,KACtCggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,GACrCo0K,EAAWR,MAWjBn4K,EAAAA,EAAAA,YAAU,KALR8/K,GAAQ,MAAOtN,GAAO2R,WAAY,KAAMK,GAJ1Bj2H,IACZ+nQ,EAAiB,OAAH/nQ,QAAG,IAAHA,OAAG,EAAHA,EAAKk0H,SAAS,IAGiCp5K,IAC7D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAMd,GACd,IACH,MAsBOu7K,EAAkBC,IAAuBtgL,EAAAA,EAAAA,UAAS,KAEzDvE,EAAAA,EAAAA,YAAU,KACR6kL,EAAoBV,EAAW,GAC9B,CAACA,IAaJ,OACE3E,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAElBq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,CAACr9D,aApBLzoK,IACpB,GAAqB,KAAjBA,EAAM4lC,OAER4iI,EAAoBV,OACf,CAEL,MAAM9iG,EAAW8iG,EAAWtrL,QAAOksL,IAAM,IAAAwxI,EAAA,OACjC,OAANxxI,QAAM,IAANA,GAAoB,QAAdwxI,EAANxxI,EAAQkB,oBAAY,IAAAswI,OAAd,EAANA,EAAsB3jT,cAAcvQ,SAASga,EAAMzJ,cAAc,IAEnEiyK,EAAoBxjG,EACtB,MAWMq+F,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,iBACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,SACnBygL,GAAoBA,EAAiBn2J,KAAI,CAACs3J,EAASr9J,KAAY82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,oBAAmB1D,UAC5Gq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAA0C1D,UACjEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oDAAmD1D,UAClEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wCAAuC1D,SAAA,EAClDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA2B1D,UACtCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAYi6D,IAAY,OAAPikH,QAAO,IAAPA,OAAO,EAAPA,EAASI,iBAAkBv+E,MAAM,KAAKn4B,MAAO,CAACo4B,OAAO,aAEzF23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACtBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAAEp1B,GAAI,CACjBryF,SAAU,wBACVviB,OAAO,cAAD5Z,OAAuB,OAAPujL,QAAO,IAAPA,OAAO,EAAPA,EAASV,MAC9B51G,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAM,SAAU5lG,UACxCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASE,sBAItCzG,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,QAAMjwG,MAAO,CAACs6B,MAAM,WAAW5lG,SAAA,CAAS,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASK,gBAAgB,MAAW,OAAPL,QAAO,IAAPA,OAAO,EAAPA,EAASM,+BAnBP39J,WAmF5E82J,EAAAA,GAAAA,KAAA,OAAK/3K,KAAK,SAASY,QAtILy6K,KAkBpBhD,GAAQ,MAAOtN,GAAOsQ,cAAe,KAAM0B,GAjB7Bj2H,IACRA,EAAI6zL,YACNzpE,EAAS,yBASTkP,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACnB4qK,UAAW,MAEnB,IAGgEz+K,IAChE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAkH+CxB,UAAU,WAAU1D,UAC/Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAYi6D,IAAI,0CAA0C69G,IAAI,oBAMlF,EC0GL,GA1Q6B62I,KAAO,IAAD/lI,EAAAC,EACjC,MAAOnM,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IACpC4sL,EAAeC,IAAoB7sL,EAAAA,EAAAA,UAAS,IAC7CvG,EAAW+5K,IAETsZ,EADc,IAAInjH,gBAAgBlwE,EAASoe,QACnBhQ,IAAI,cAclCpM,EAAAA,EAAAA,YAAU,KACJqxL,GALJvR,GAAQ,MAAOtN,GAAOkQ,eAAe,IAAI2O,EAAW,KAAM7M,GAP5Cj2H,IAEZ6iI,EAAiB7iI,EAAI+iI,YAAY,IAK8CjoL,IAC/E/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAM7B,GACC,CAACgoL,IACJ,MAAOlN,EAAYmyI,IAAiB/xT,EAAAA,EAAAA,UAAS,IAe/C,OAJAvE,EAAAA,EAAAA,YAAU,KALR8/K,GAAQ,MAAOtN,GAAO2R,WAAY,KAAMK,GAJ1Bj2H,IACZ+nQ,EAAiB,OAAH/nQ,QAAG,IAAHA,OAAG,EAAHA,EAAKk0H,SAAS,IAGiCp5K,IAC7D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAMd,GACd,KAEDm2K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAElBq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,iBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,eAAc1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2BAA0B1D,UAC/Cq7K,EAAAA,GAAAA,KAAA,WAAS33K,UAAU,GAAE1D,UAC3Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,6DAA4D1D,UACzEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UAIXq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAA0C1D,UACzDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UACpB,OAAbgtL,QAAa,IAAbA,GAAsB,QAATV,EAAbU,EAAeW,eAAO,IAAArB,OAAT,EAAbA,EAAwBhO,YAAyB,OAAb0O,QAAa,IAAbA,GAAsB,QAATT,EAAbS,EAAeW,eAAO,IAAApB,OAAT,EAAbA,EAAwBjO,SAASh0J,KAAI,CAACs3J,EAASr9J,KACtF82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,eAAc1D,UAC3Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAqB4nE,MAAO,CAAEy2G,gBAAgB,OAAD1jL,OAAgB,OAAPujL,QAAO,IAAPA,OAAO,EAAPA,EAASI,iBAAgB,MAAMhiL,SAAA,EAElGu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,2BAA0B1D,SAAA,EACvCq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAY,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASE,gBACdvG,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAW,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASK,gBAAgB,MAAW,OAAPL,QAAO,IAAPA,OAAO,EAAPA,EAASM,oBAG5C7G,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAU,oBAAoBmpH,GAAI,CAClCryF,SAAU,wBACVviB,OAAO,cAAD5Z,OAAuB,OAAPujL,QAAO,IAAPA,OAAO,EAAPA,EAASV,YAVN38J,yBA4EzB82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAmC1D,UAC9Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAA0C1D,UACzDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAC9Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACjBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EACtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACzBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAoCi6D,IAAkB,OAAbqvH,QAAa,IAAbA,OAAa,EAAbA,EAAehL,iBAAkB12G,MAAO,CAACo4B,OAAO,cAE5H63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iCAAgC1D,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sBAAqB1D,UAACq7K,EAAAA,GAAAA,KAAA,MAAK/vG,MAAO,CAAE21G,eAAgB,OAAOr7E,MAAM,SAAU5lG,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAiB,OAAbgtL,QAAa,IAAbA,OAAa,EAAbA,EAAelL,oBAG9GzG,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAACq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAe,OAAbgtL,QAAa,IAAbA,OAAa,EAAbA,EAAeI,wBAEf7R,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC5Dq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACxCq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yCAAyC4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,UACtKq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,OAAM1D,SAAe,OAAbgtL,QAAa,IAAbA,OAAa,EAAbA,EAAe9K,oBAGnF7G,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yCAAyC4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,UACtKu7K,EAAAA,GAAAA,MAAA,QAAM73K,UAAU,OAAM1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,uCAAuD,OAAbspL,QAAa,IAAbA,OAAa,EAAbA,EAAeK,cAAc,mBAGvJhS,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yCAAyC4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,UAC9Ku7K,EAAAA,GAAAA,MAAA,QAAM73K,UAAU,OAAM1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,iCAAiD,OAAbspL,QAAa,IAAbA,OAAa,EAAbA,EAAe/K,2BAOrE,OAAb+K,QAAa,IAAbA,OAAa,EAAbA,EAAeM,mBAAgC,OAAbN,QAAa,IAAbA,OAAa,EAAbA,EAAeM,gBAAgBhjK,KAAI,CAACs3J,EAASr9J,KAAK,IAAAgpK,EAAAC,EAAA,OACnFnS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uCAAsC1D,UACvFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qEAAqE4nE,MAAO,CAACyqF,gBAAgB,aAAa/1J,SAAA,EACrHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA4Bi6D,IAAI,oDAAoD8lC,MAAM,MAAMC,OAAO,WAE1H23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EAEjBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,gBAAgBvhD,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAM,SAAU5lG,UACtEq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASnqD,aAItC8jD,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,iBAAgB1D,SAAA,CAAS,OAAP4hL,QAAO,IAAPA,GAAyB,QAAlB2L,EAAP3L,EAAS6L,wBAAgB,IAAAF,OAAlB,EAAPA,EAA2Br/D,SAAS,IAAS,OAAP0zD,QAAO,IAAPA,GAAyB,QAAlB4L,EAAP5L,EAAS6L,wBAAgB,IAAAD,OAAlB,EAAPA,EAA2BE,mBAK9G,iCAmEC,ECkbP,GAzrB6B4kI,KAC3B,MAAOxwI,EAAcywI,IAAmBnyT,EAAAA,EAAAA,UAAS,KAC1CoyT,EAAkBC,IAAuBryT,EAAAA,EAAAA,UAAS,KAClDsyT,EAAsBC,IAA2BvyT,EAAAA,EAAAA,UAAS,KAC1DwyT,EAAsBC,IAA2BzyT,EAAAA,EAAAA,UAAS,KAE1DgtL,EAAc0lI,IAAmB1yT,EAAAA,EAAAA,UAAS,KAC1C6hL,EAAiB8wI,IAAsB3yT,EAAAA,EAAAA,UAAS,KAChD4yT,EAAyBC,IAA8B7yT,EAAAA,EAAAA,UAAS,KAEhEs0M,EAAeC,IAAoBv0M,EAAAA,EAAAA,UAAS,KAC5Cw0M,EAAqBC,IAA0Bz0M,EAAAA,EAAAA,WAAS,IACxD8yT,EAAsBC,IAA2B/yT,EAAAA,EAAAA,UAAS,KAC1DgzT,EAA4BC,IAAiCjzT,EAAAA,EAAAA,WAAS,IACtEkzT,EAA8BC,IAAmCnzT,EAAAA,EAAAA,UAAS,KAC1EozT,EAAoCC,IAAyCrzT,EAAAA,EAAAA,WAAS,GACvFy1M,EAAqB3/M,IACzBy+M,EAAiBz+M,GACjB2+M,GAAuB,EAAM,EAMzB6+G,EAA4Bx9T,IAChCi9T,EAAwBj9T,GACxBm9T,GAA8B,EAAM,EAOhCM,EAAoCz9T,IACxCq9T,EAAgCr9T,GAChCu9T,GAAsC,EAAM,EAOtCj/I,EAAWR,MAKZ0pC,EAAiBC,IAAsBv9M,EAAAA,EAAAA,UAAS,KAyBhDgtT,EAAUC,IAAejtT,EAAAA,EAAAA,UAAS,OAClCktT,EAAcC,IAAmBntT,EAAAA,EAAAA,WAAS,GAE3C+uT,EAAmB17P,UACvB,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR,MAAMq9E,QAAgBL,EAAgBh9E,GACtC22L,EAAYt5G,GACZw5G,GAAgB,GAChBpvT,QAAQo7B,IAAIw6K,EACd,GAEIL,EAAkBjgJ,UACtB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,GAEKo3L,EAAUC,IAAe3tT,EAAAA,EAAAA,UAAS,KAClC+tT,EAAcC,IAAmBhuT,EAAAA,EAAAA,WAAS,IAC1Cs4M,EAAQs1G,IAAa5tT,EAAAA,EAAAA,UAAS,KAC9B6tT,EAAcC,IAAmB9tT,EAAAA,EAAAA,UAAS,IAW3CmvT,EAAkB97P,UACtB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EA+BN,OACE2kD,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAO4nE,MAAO,CAACkpF,aAAa,MAAMx0J,SAAA,EAE/Cq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,yBACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UACjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EAC/Bu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,CACEstT,IACG/xI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8FAA6F1D,SAAA,EACxGu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyCj6D,UAAU,wBAAwB83K,IAAI,iBACxFH,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAC,qBAE3Cq7K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLI,UAAU,yBACVgpD,OAAO,UACP1oD,SAAUmrT,OAIrB/B,IAAaE,IACVjyI,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAEAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wCAAuC1D,UAClEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8BAA6B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAKyvP,EAAU5xI,IAAI,WAAW93K,UAAU,8BAC7C63K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EAEAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD69G,IAAI,GAAG93K,UAAU,wBAC7E23K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLI,UAAU,2CACVgpD,OAAO,UACP1oD,SAAUmrT,kBAgBlB5zI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EACJq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,eAAcnsL,SAAC,mBAC7Dq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,4CAA4CD,GAAG,eAAe87H,YAAY,gBAAgBrpI,MAAO4rL,EAAc99K,SAAWkC,GAAMqsT,EAAgBrsT,EAAEjR,OAAOiB,OAAQo1E,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAE/O63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,eAAcnsL,SAAC,mBAE7Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,gCACV4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QACR1jG,SAAA,CAED00M,IAEGr5B,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,WAAU1D,SAAC,wBAC/Bq7K,EAAAA,GAAAA,KAAA,QACE33K,UAAU,wEACVQ,QA5PF8yM,KAC1BnC,GAAwBD,EAAoB,EA2Pa50M,UAE7Bq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,uCACJ69G,IAAI,UAITo5B,IACCv5B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,cACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,WACN4/D,QAA2B,aAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,EAAkB,oBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,kBACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,eACN4/D,QAA2B,iBAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,EAAkB,wBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,aACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,UACN4/D,QAA2B,YAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,EAAkB,mBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,qDAAoD1D,SAAA,EACnEq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,SACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,MACN4/D,QAA2B,QAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,EAAkB,4BAYhCt6B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qCAAoC1D,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,eAAcnsL,SAAC,4BAC7Dq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,4CAA4CD,GAAG,uBAAuBvN,MAAOw8T,EAAsB1uT,SAAWkC,GAAMysT,EAAwBzsT,EAAEjR,OAAOiB,OAAQqpI,YAAY,yBAAyBj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAEhR63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qCAAoC1D,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,eAAcnsL,SAAC,4BAC7Dq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,4CAA4CD,GAAG,uBAAuBvN,MAAO08T,EAAsB5uT,SAAWkC,GAAM2sT,EAAwB3sT,EAAEjR,OAAOiB,OAAQqpI,YAAY,yBAAyBj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAGhR23E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,sBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,cAAansL,SAAC,0BAC5Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EACxDq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,aAAYnsL,SAAC,iBAC3Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,4CACVD,GAAG,aACH87H,YAAY,QACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7CxtG,MAAO+3T,EACPjqT,SAAWkC,GAAMgoT,EAAgBhoT,EAAEjR,OAAOiB,aAGpBqlL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EACjCq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,kBAAiBnsL,SAAC,sBAChEq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,SAASw8B,IAAI,IAAIp8B,UAAU,4CAA4CD,GAAG,kBAAkB87H,YAAY,mBAAmBrpI,MAAO+rL,EAAiBj+K,SAAWkC,GAAM6sT,EAAmB7sT,EAAEjR,OAAOiB,OAAQo1E,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAErQ63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,kBAAiBnsL,SAAC,2BAEhEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,gCACV4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QACR1jG,SAAA,CAEDkzT,IAEG73I,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,WAAU1D,SAAC,wBAC/Bq7K,EAAAA,GAAAA,KAAA,QACE33K,UAAU,wEACVQ,QAnYK0vT,KAEjCP,GAA+BD,EAA2B,EAiYMpzT,UAEpCq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,uCACJ69G,IAAI,UAIT43I,IACC/3I,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EACpBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACnBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,aACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,OACN4/D,QAAkC,YAAzBo9P,EACT5nP,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR0vT,EAAyB,mBAKjCr4I,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,aACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,UACN4/D,QAAkC,YAAzBo9P,EACT5nP,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR0vT,EAAyB,mBAKjCr4I,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,qDAAoD1D,SAAA,EACnEq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,WACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,QACN4/D,QAAkC,UAAzBo9P,EACT5nP,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR0vT,EAAyB,8BAYvCn4I,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,kBAAiBnsL,SAAC,uBAChEq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,SAASw8B,IAAI,IAAIp8B,UAAU,4CAA4CD,GAAG,mBAAmB87H,YAAY,oBAAoBrpI,MAAO88T,EAAyBhvT,SAAWkC,GAAM+sT,EAA2B/sT,EAAEjR,OAAOiB,OAAQo1E,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAEvR63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,kBAAiBnsL,SAAC,4BAEhEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UACxCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,gCACV4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QACR1jG,SAAA,CAEDszT,IAEGj4I,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,WAAU1D,SAAC,wBAC/Bq7K,EAAAA,GAAAA,KAAA,QACE33K,UAAU,wEACVQ,QA7da2vT,KAEzCJ,GAAuCD,EAAmC,EA2dFxzT,UAE5Cq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,uCACJ69G,IAAI,UAITg4I,IACCn4I,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EACpBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACnBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,aACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,OACN4/D,QAA0C,YAAjCw9P,EACThoP,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR2vT,EAAiC,mBAKzCt4I,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,qDAAoD1D,SAAA,EACnEq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,aACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,UACN4/D,QAA0C,YAAjCw9P,EACThoP,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR2vT,EAAiC,kCAkC9Cj7G,EAAOpuL,KAAI,CAACwxG,EAAOv3G,KACxCg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,kBAAiB1D,SAAA,EAC1Cq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAoB1D,SAAC,mBACtCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,oCAAoC4nE,MAAO,CAAEyqF,gBAAiB,YAAaryD,OAAQ,QAAS1jG,SAAEukB,EAAQ,OAExHg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,iDACV4nE,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7CxtG,MAAO4lI,EAAMrE,MACbuG,UAAQ,KAEVq9C,EAAAA,GAAAA,KAAA,OACE19G,IAAI,yCACJj6D,UAAU,GACV83K,IAAI,GACJt3K,QAASA,IA1aMqgB,KACzB,MAAM6rS,EAAY,IAAI13G,GACtB03G,EAAU55Q,OAAOjyB,EAAO,GACxBypS,EAAUoC,EAAU,EAuaKC,CAAkB9rS,GACjC+mD,MAAO,CAAE6qE,OAAQ,qBAnBf5xH,SAwCZ82J,EAAAA,GAAAA,KAAA,OAAAr7K,SACCmuT,GACS5yI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8FAA6F1D,SAAA,EACxGu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,wCAAwCj6D,UAAU,wBAAwB83K,IAAI,iBACvFH,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAC,qBAE3Cq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,yBAAyBgpD,OAAO,UAAU1oD,SAzgB7DyvD,UACxB,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR,MAAMq9E,QAAgBw7G,EAAgB74L,GACtCq3L,EAAYh6G,GACZq6G,GAAgB,GAChBjwT,QAAQo7B,IAAIw6K,EACd,SAqgBQ14B,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAEEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gCAA+B1D,UAC1Cu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,2BAA2BwzH,UAAQ,EAAAl3H,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,UAAQ19G,IAAKmwP,EAAUxqT,KAAK,cAAc,yDAa5Di4K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EACrCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wDAAuD1D,UACpEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD2N,MAAO,CAAC6qE,OAAO,WAAYjyI,QArf9DosT,KACjBrC,GAAgBH,GAAY7rI,GAAmBixI,GACjDlF,EAAU,IAAIt1G,EAAQ,CAAEjhF,MAAOw2L,EAAc3uT,IAAKwuT,EAChDrgI,iBAAkB,CAChBv/D,SAAU+zD,EACVyL,KAAMwlI,GAERriI,iBAAkB,CAChB3iE,SAAU8kM,EACVtlI,KAAM4lI,MAIVpF,EAAgB,IAChBH,EAAY,IACZgF,EAAmB,IACnBE,EAA2B,IAC3BE,EAAwB,IACxB/E,GAAgB,IAEhBpkI,MAAM,qDACR,EAge4GtmL,UAAU,YAAY83K,IAAI,QAG5IH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,sBAGPu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EACDq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,sBAAqBnsL,SAAC,2BACpEq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,SAASw8B,IAAI,IAAIp8B,UAAU,4CAA4CD,GAAG,sBAAsB87H,YAAY,wBAAwBrpI,MAAOk3L,EAAcppL,SAAWkC,GAAM4sT,EAAgB5sT,EAAEjR,OAAOiB,OAAQo1E,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAExQ23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UACvCq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,kDAAkDQ,QApnB7D6qM,KAErB,MAAM+kH,EAAsB,CAC1B9xI,iBAAkBorI,EAClBtrI,aAAcA,EACdI,aAAcwyB,EACdpnB,gBAAiBorB,EACjBtrB,aAAcA,EACdnL,gBAAiBywI,EACjBqB,SAAUnB,GAEPxF,GAAatrI,GAAiB4yB,GAAkBtnB,GAKnDuwB,EAAmBm2G,GACrB31T,QAAQo7B,IAAIu6R,GACZt/I,EAAS,+BAAiC,CAAEhkK,MAAO,CAAEwjT,cAAeF,MANlE9pI,MAAM,2CAOR,EAimB4G1+G,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAC,qCAgBhK,EC1gBL,GAzKoCi0T,KAAO,IAADC,EACtC,MAAMr6T,EAAW+5K,KACb,cAAEogJ,GAAkBn6T,EAAS2W,OAAS,CAAC,EACrCgkK,EAAWR,MACZoM,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IAuClCytL,EAAWC,IAtCe,OAAbkmI,QAAa,IAAbA,GAA8B,QAAjBE,EAAbF,EAAe1mI,uBAAe,IAAA4mI,GAA9BA,EAAgCn2T,QAAO,CAACw6L,EAAKpH,KAAc,IAADgjI,EAC9E,OAAO57H,IAAe,OAARpH,QAAQ,IAARA,GAA0B,QAAlBgjI,EAARhjI,EAAU1D,wBAAgB,IAAA0mI,OAAlB,EAARA,EAA4BjmM,WAAY,EAAE,GACvD,IAoCiC9tH,EAAAA,EAAAA,WAAS,IAW7C,OATEvE,EAAAA,EAAAA,YAAU,KACN,IAAI4+J,EAMJ,OALIozB,IACFpzB,EAAQriI,YAAW,KAvCvBo8I,EAAS,eAwCa,GACf,MAEE,IAAM/mE,aAAagtD,EAAM,GAC/B,CAACozB,KAENtS,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAq7K,EAAAA,GAAAA,KAACyI,GAAc,KAEfzI,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAO4nE,MAAO,CAACkpF,aAAa,MAAMx0J,SAAA,EAE/Cq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,yBACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UACjCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UACrBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,GAAE1D,SAAA,EACjBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,QAAO1D,SAAA,EACtBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACzCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oCAAoCi6D,IAAkB,OAAbq2P,QAAa,IAAbA,OAAa,EAAbA,EAAehyI,iBAAkBxG,IAAI,cAAclwG,MAAO,CAACo4B,OAAO,cAE9H63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iCAAgC1D,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,sBAAqB1D,UAACq7K,EAAAA,GAAAA,KAAA,MAAK/vG,MAAO,CAAE21G,eAAgB,OAAOr7E,MAAM,SAAU5lG,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAiB,OAAbg0T,QAAa,IAAbA,OAAa,EAAbA,EAAelyI,oBAG9GzG,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAACq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,IAAe,OAAbg0T,QAAa,IAAbA,OAAa,EAAbA,EAAe5mI,aAAa,iBAE5B7R,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8CAA6C1D,SAAA,EAC5Dq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACxCq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yCAAyC4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,UACtKq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,OAAM1D,SAAe,OAAbg0T,QAAa,IAAbA,OAAa,EAAbA,EAAe9xI,oBAGnF7G,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yCAAyC4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,UACtKu7K,EAAAA,GAAAA,MAAA,QAAM73K,UAAU,OAAM1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,uCAAuD,OAAbswT,QAAa,IAAbA,OAAa,EAAbA,EAAe1mI,gBAAgBl4L,OAAO,mBAGhKimL,EAAAA,GAAAA,KAAA,OAAAr7K,UACAq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,yCAAyC4nE,MAAO,CAAEmwG,SAAU,OAAQ4F,WAAY,wBAAyBz7E,MAAO,QAAS4d,QAAS,cAAe89D,WAAY,SAAUC,eAAgB,UAAWvhL,UAC9Ku7K,EAAAA,GAAAA,MAAA,QAAM73K,UAAU,OAAM1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,iCAAiD,OAAbswT,QAAa,IAAbA,OAAa,EAAbA,EAAe/xI,2BAMrE,OAAb+xI,QAAa,IAAbA,OAAa,EAAbA,EAAe1mI,mBAAgC,OAAb0mI,QAAa,IAAbA,OAAa,EAAbA,EAAe1mI,gBAAgBhjK,KAAI,CAACs3J,EAASr9J,KAAK,IAAAgpK,EAAAC,EAAA,OAAOnS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACpHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uCAAsC1D,UACvFu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qEAAqE4nE,MAAO,CAACyqF,gBAAgB,aAAa/1J,SAAA,EACrHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,GAAE1D,UACbq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4BAA4Bi6D,IAAI,oDAAoD8lC,MAAM,MAAMC,OAAO,WAE1H23E,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EAEjBq7K,EAAAA,GAAAA,KAACp5B,GAAI,CAACp1B,GAAG,gBAAgBvhD,MAAO,CAAE21G,eAAgB,OAAQr7E,MAAM,SAAU5lG,UACtEq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAW,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASnqD,aAItC8jD,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,iBAAgB1D,SAAA,CAAS,OAAP4hL,QAAO,IAAPA,GAAyB,QAAlB2L,EAAP3L,EAAS6L,wBAAgB,IAAAF,OAAlB,EAAPA,EAA2Br/D,SAAS,IAAS,OAAP0zD,QAAO,IAAPA,GAAyB,QAAlB4L,EAAP5L,EAAS6L,wBAAgB,IAAAD,OAAlB,EAAPA,EAA2BE,mBAK9G,SAScrS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UAC1Bq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA2CQ,QAAUgC,IAAQA,EAAE84F,iBAtH5D+yN,MACjC,IAgBMniS,EAAO,CACToyJ,iBAAkBgyI,EAAchyI,iBAChCF,aAAckyI,EAAclyI,aAC5BI,aAAc8xI,EAAc9xI,aAC5BoL,gBAAiB0mI,EAAc1mI,gBAC/BF,aAAc4mI,EAAc5mI,aAC5BnL,gBAAiB+xI,EAAc/xI,gBACzC8xI,SAAUC,EAAcD,UAEhB51T,QAAQo7B,IAAI3J,GACZ+rJ,GAAQ,OAAQtN,GAAO4R,cAAerwJ,EAAMywJ,GA1BhCj2H,IACVjsD,QAAQo7B,IAAI,qBAAsB6wB,GACZ,KAAlBA,EAAI9hC,WACNwlK,GAAa,GAQjBpK,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACvB4qK,UAAW,MAEf,IAYqEz+K,IACjE/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,EAyF2G6sT,EAA8B,EAAKzmP,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAC,eAExL6tL,IACDxS,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAaD,GAAG,eAAeg8H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UACnKq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAgB4nE,MAAO,CAACipF,UAAW,MAAMv0J,UACpDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UAK/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EAEnCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2DAA2D69G,IAAI,GAAG93E,OAAO,MAAMD,MAAM,SAC9F43E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,kCACxBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,0LAsB/B,ECrKL85R,GAAM52J,YAAYghL,IAClB,MAmRA,GAnRgCkQ,KAC9B,MAAOh0I,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IACpC2lT,EAAYC,IAAiB5lT,EAAAA,EAAAA,UAAS,KAkC7CvE,EAAAA,EAAAA,YAAU,KAhCR8/K,GAAQ,MAAOtN,GAAOkR,eAAgB,KAAMc,GAAej2H,IACzD,GAAO,OAAHA,QAAG,IAAHA,GAAAA,EAAKl7C,KAAM,CACb,MAAM4Y,EAAWsiC,EAAIl7C,KACf85J,EAAS,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACvFi9I,EAAkB,CACtBz/Q,OAAQwiI,EACRssF,SAAU,CACR,CACE5uN,MAAO,eACPx3B,KAAM85J,EAAO1+I,KAAIw7E,GAASh+E,EAASo+R,gBAAgBpgN,KACnDi7E,YAAa,UACbhrB,gBAAiB,UACjB0tG,QAAS,GACTpI,YAAa,GAEf,CACE30N,MAAO,wBACPx3B,KAAM85J,EAAO1+I,KAAIw7E,GAASh+E,EAASq+R,oBAAoBrgN,KACvDi7E,YAAa,UACbhrB,gBAAiB,UACjB0tG,QAAS,GACTpI,YAAa,KAInB+qD,EAAQH,GACRD,EAAcl+R,EAChB,KACE5iB,IACF/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAKd,GACd,IACD,MAAMmhT,EAAc,CAChB7/Q,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnD8uN,SAAU,CACR,CACE5uN,MAAO,eACPx3B,KAAM,CAAC,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAC7B6xK,YAAa,UACbhrB,gBAAiB,UACjB0tG,QAAS,GACTpI,YAAa,GAEf,CACE30N,MAAO,wBACPx3B,KAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACzB6xK,YAAa,UACbhrB,gBAAiB,UACjB0tG,QAAS,GACTpI,YAAa,KAIb5vD,EAAS,CACb66G,UAAAA,CAAWjyD,GAET,MAAMkyD,EAAclyD,EAAMmpB,OAAO0P,IACjC74B,EAAMmpB,OAAO0P,IAAM,WACjBq5B,EAAY1lP,KAAKwzL,EAAMmpB,OAAvB+oC,GACA52S,KAAK+zF,QAAU,EACjB,CACF,IAoCK8iN,EAAgBC,IAAqBrmT,EAAAA,EAAAA,UAAS,UAC9C8O,EAAMk3S,IAAWhmT,EAAAA,EAAAA,UAASimT,IAC1BzoT,EAAS+nT,IAAcvlT,EAAAA,EAAAA,UApCP,CAErBm2P,OAAQ,CAEN58L,EAAG,CACD+9L,aAAa,IAKjBtB,QAAS,CACPonB,OAAQ,CACN/rQ,SAAU,MACV22I,MAAO,QACP5hH,OAAQ,CACNo/D,MAAO,UACP8lH,KAAM,CACJl+J,KAAM,IAGR0jP,iBAAiB,EACjBplH,aAAc,EACd0hH,SAAU,SA2EXxtH,EAAYmyI,IAAiB/xT,EAAAA,EAAAA,UAAS,IAejD,OAJIvE,EAAAA,EAAAA,YAAU,KALR8/K,GAAQ,MAAOtN,GAAO2R,WAAY,KAAMK,GAJ1Bj2H,IACZ+nQ,EAAiB,OAAH/nQ,QAAG,IAAHA,OAAG,EAAHA,EAAKk0H,SAAS,IAGiCp5K,IAC7D/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAMd,GACd,KAELm2K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAElBq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,uBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oDAAmD1D,SACjEggL,GAAcA,EAAW7nL,MAAM,EAAG,GAAGmyB,KAAI,CAACs3J,EAASr9J,KAClE82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,eAAc1D,UAC3Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qBAAqB4nE,MAAO,CAAEy2G,gBAAgB,OAAD1jL,OAAgB,OAAPujL,QAAO,IAAPA,OAAO,EAAPA,EAASI,iBAAgB,MAAMhiL,SAAA,EAElGu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,2BAA0B1D,SAAA,EACvCq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAY,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASE,gBACdvG,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAW,OAAP4hL,QAAO,IAAPA,OAAO,EAAPA,EAASK,gBAAgB,MAAW,OAAPL,QAAO,IAAPA,OAAO,EAAPA,EAASM,oBAG5C7G,EAAAA,GAAAA,KAACp5B,GAAI,CAACv+I,UAAU,oBAAoBmpH,GAAI,CAClCryF,SAAU,wBACVviB,OAAO,cAAD5Z,OAAuB,OAAPujL,QAAO,IAAPA,OAAO,EAAPA,EAASV,YAVN38J,QAgBrB82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4CAA2C1D,UAExDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACnBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAA0C1D,UACvDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uFAAsF1D,UACnGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAClBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAc,OAAV+lT,QAAU,IAAVA,OAAU,EAAVA,EAAY77H,kBACrC7O,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAO4nE,MAAO,CAACmwG,SAAS,QAAQz7K,SAAC,+BAO3Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,WAAU1D,UACvBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,2CAA0C1D,UACvDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,uFAAsF1D,UACnGq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qBAAoB1D,UACjCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAClBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAc,OAAV+lT,QAAU,IAAVA,OAAU,EAAVA,EAAYz8H,mBACrCjO,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAO4nE,MAAO,CAACmwG,SAAS,QAAQz7K,SAAC,2CAQ7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,WAYhBA,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,kBACPq7K,EAAAA,GAAAA,KAACwqI,GAAI,CAAC32S,KAAMA,EAAMknP,QAAS,CAAC3qD,GAAS7tM,QAASA,EAAS8lG,OAAQ,6BAW1D,EC3GP,GAtKoC2wN,KAAO,IAADh6G,EAAAC,EACxC,MAAO1rF,EAAWyxD,IAAgBjgL,EAAAA,EAAAA,WAAS,IACpCw+K,EAAgB01I,IAAqBl0T,EAAAA,EAAAA,UAAS,IAC/Co0K,EAAWR,KACXn6K,EAAW+5K,IAEXkV,EADc,IAAI/+G,gBAAgBlwE,EAASoe,QACpBhQ,IAAI,YAC3BssT,GAAe34T,EAAAA,EAAAA,QAAO,OAY5BC,EAAAA,EAAAA,YAAU,KACJitL,GANJnN,GAAQ,MAAM,GAADt9K,OAAKgwK,GAAO4Q,qBAAoB,KAAA5gL,OAAIyqL,GAAY,KAAMzI,GAJrDj2H,IACZkqQ,EAAkBlqQ,EAAIkyJ,eAAe,IAGmDp3M,IACxF/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAO7B,GACC,CAAC4jL,IAEJ,MAqCMqmI,EAAmBA,KACvBoF,EAAaz4T,QAAQ6sJ,OAAO,EA4C9B,OACE4yB,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACEq7K,EAAAA,GAAAA,KAACyI,GAAc,KACfvI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAkB4nE,MAAO,CAAEo3G,UAAW,SAAU1iL,SAAA,EAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACnBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,qBAAoB1D,SAAC,uBACnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qCAAoC1D,UACjDq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,iRAOvCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAuB1D,SAAA,EACpCq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAC,oBACxB,OAAd4+K,QAAc,IAAdA,GAAsB,QAARy7B,EAAdz7B,EAAgBgC,cAAM,IAAAy5B,OAAR,EAAdA,EAAwBkyG,cAA4B,OAAd3tI,QAAc,IAAdA,GAAsB,QAAR07B,EAAd17B,EAAgBgC,cAAM,IAAA05B,OAAR,EAAdA,EAAwBiyG,WAAWjiS,KAAI,CAACiiS,EAAYhoS,KACzF82J,EAAAA,GAAAA,KAAA,OAAiB33K,UAAU,+BAA8B1D,UACvDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mCAAmC4nE,MAAO,CAAE4vF,WAAY,QAASl7J,UAC9Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8DAA6D1D,SAAA,EAC1Eq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,MAAK1D,UAACu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,cAAYukB,EAAQ,UAE5Cg3J,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,yCAAyC4nE,MAAO,CAAE6qE,OAAQ,WAAajyI,QAASirT,KAC7F9zI,EAAAA,GAAAA,KAAA,KAAGjgJ,KAAMmxR,EAAWsE,cAAe53L,SAAQ,cAAA56H,OAAgBkmB,EAAQ,GAAIvkB,UACrEq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,2CAA2C4nE,MAAO,CAAE6qE,OAAQ,wBATzE5xH,OAgBZ82J,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLnH,IAAKo4T,EACLjpP,MAAO,CAAEk4C,QAAS,QAClB92D,OAAO,uBACP1oD,SAlFayvD,UACvB,MAAMijE,EAAOl7H,EAAMvG,OAAOwzJ,MAAM,GAChC,GAAI/xB,EAAM,CACRv4H,QAAQo7B,IAAI,iBAAkBm9F,GAE9B,IAAK,IAAD0jF,EAAAr+B,EACF,MAAMg4B,OA3CYtgJ,WACtB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OACrB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAawBg9E,CAAgBh9E,GAEhC89L,EAAc,CAClBjI,WAAYx4G,GAGRjsL,QAAiBu0J,MAAM,GAADh+K,OAAIgwK,GAAO6Q,uBAAsB,KAAA7gL,OAAkB,OAAdugL,QAAc,IAAdA,GAAsB,QAARw7B,EAAdx7B,EAAgBgC,cAAM,IAAAw5B,OAAR,EAAdA,EAAwBl5B,KAAO,CAC9FjnJ,OAAQ,OACR9R,QAAS,CACP,cAAgB,UAAD9pB,OAA+C,QAA/C09K,EAAY33J,aAAa83J,QAAQ,sBAAc,IAAAH,EAAAA,EAAI,IAClE,eAAgB,oBAElBnsJ,KAAMvZ,KAAKC,UAAUk+S,KAGjBpqQ,QAAYtiC,EAASy0J,OAEJ,MAAnBnyH,EAAI9hC,WACNo7J,GAAMv3I,QAAQie,EAAIrxC,QAAS,CACzB4qK,UAAW,OAGbD,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACvB4qK,UAAW,MAGjB,CAAE,MAAOz+K,GACP/G,QAAQ+G,MAAM,wBAAyBA,GACvCw+K,GAAMx+K,MAAM,uBAAwB,CAClCy+K,UAAW,MAEf,CACF,MA8CQtI,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qDAAoD1D,UACjEq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,+CAA+CQ,QAhIxDuwT,KACvBjgJ,GAAU,EAAE,EA+H8FlpG,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAC,yBAS9J,EC0GP,GA9Q+B00T,KAAO,IAADt6G,EAAAC,EACnC,MAAOc,EAAoBC,IAAyBh7M,EAAAA,EAAAA,WAAS,IACtDi7M,EAAmBC,IAAwBl7M,EAAAA,EAAAA,UAAS,KACpDm7M,EAAwBC,IAA6Bp7M,EAAAA,EAAAA,UAAS,KAC9Dq7M,EAAiBC,IAAsBt7M,EAAAA,EAAAA,UAAS,KAChDu7M,EAAiBC,IAAsBx7M,EAAAA,EAAAA,UAAS,eAChDy7M,EAAUC,IAAe17M,EAAAA,EAAAA,WAAS,IAClCggL,EAAWC,IAAgBjgL,EAAAA,EAAAA,WAAS,IACpCwoL,EAAcC,IAAmBzoL,EAAAA,EAAAA,UAAS,KAC1Cu0T,EAAsBC,IAA2Bx0T,EAAAA,EAAAA,UAAS,IAC1Dy0T,EAAkBC,IAAuB10T,EAAAA,EAAAA,UAAS,IAClDq8M,EAA2BC,IAAgCt8M,EAAAA,EAAAA,WAAS,IACpE20T,EAAqBC,IAA0B50T,EAAAA,EAAAA,UAAS,GACzDo0K,EAAWR,KACXn6K,EAAW+5K,IACX3qH,EAAc,IAAI8gB,gBAAgBlwE,EAASoe,QAC3Cg9S,EAAahsQ,EAAYhhD,IAAI,cAC7B6gL,EAAW7/H,EAAYhhD,IAAI,aAC1B22K,EAAgB24B,IAAqBn3M,EAAAA,EAAAA,UAAS,IAE/Ci8M,EAAaA,KAKjB1gC,GAAQ,MAAOtN,GAAO4Q,qBAAuB,IAAMg2I,EAAY,KAAM50I,GAJrDj2H,IACdmtJ,EAAkBntJ,EAAIkyJ,eAAe,IAGqDp3M,IAC1F/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAC3B,GAGJrJ,EAAAA,EAAAA,YAAU,KACJo5T,GACF54G,GACF,GACC,CAAC44G,IAEJ,MAGOC,EAAQC,IAAa/0T,EAAAA,EAAAA,UAAS,IAU/Bg1T,EAAmBF,IACvB,GAAmB,OAAdt2I,QAAc,IAAdA,IAAAA,EAAgByyI,KAAM,OAAO,EAClC,MAAMA,EAAOzyI,EAAeyyI,KAAKpuL,MAAKouL,IAAY,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAM6D,UAAWA,IAC/D,QAAO7D,IAAW,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMp0G,UACR,EAGRV,EAAyBr2M,IAC7B,MAAMs2M,EAAet2M,EAAEjR,OAAOiB,MAC9B4lN,GAAY,GAGZ,MAAMu5G,EAAgBz2I,EAAegC,OAAOywI,KAAKwD,GAAkBzD,UAAUuD,GAAsB/2T,QAAQqlI,MAAK8f,GAAUA,EAAOgtK,kBAE7HvzG,IAAiB64G,EAActyK,QACjCu4D,EAAqBkB,GACrBZ,EAAmBY,GACnBw4G,GAAuBM,GAAaA,EAAY,MAEhD55G,EAAmBc,GACnBZ,EAAmBY,IAGrBhB,EAA0B65G,EAActyK,OAAO,EAuC3CwyK,EAAiBA,KACrBj6G,EAAqB,IACrBI,EAAmB,IACnBE,EAAmB,cACnBE,GAAY,GAGZ,MAAMu5G,EAAgBz2I,EAAegC,OAAOywI,KAAKwD,GAAkBzD,UAAUuD,GAAsB/2T,QAAQqlI,MAAK8f,GAAUA,EAAOgtK,kBACjIv0G,EAA0B65G,EAActyK,OAAO,EAcjD,OAVAlnJ,EAAAA,EAAAA,YAAU,KACR,GAAI4gN,EAA2B,CAC7B,MAAMhiD,EAAQriI,YAAW,KACvBskL,GAA6B,GAC7BL,GAAY,GACX,KACH,MAAO,IAAM5uG,aAAagtD,EAC5B,IACC,CAACgiD,KAGFphC,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAkB4nE,MAAO,CAAEo3G,UAAW,SAAU1iL,SAAA,EAC7Du7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACnBq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,qBAAoB1D,SAAC,uBACnCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,MAAK1D,UAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qCAAoC1D,UACjDq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,kBAAiB1D,SAAC,yEAKvCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,wBAAuB1D,SAAA,EACpCq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAC,oBACxB,OAAd4+K,QAAc,IAAdA,GAAsB,QAARw7B,EAAdx7B,EAAgBgC,cAAM,IAAAw5B,OAAR,EAAdA,EAAwBi3G,QAAsB,OAAdzyI,QAAc,IAAdA,GAAsB,QAARy7B,EAAdz7B,EAAgBgC,cAAM,IAAAy5B,OAAR,EAAdA,EAAwBg3G,KAAK/mS,KAAI,CAAC+mS,EAAM9sS,KACvEg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,+BAA8B1D,SAAA,EACvDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,OAAM1D,UACnBq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,oCACVJ,KAAK,WACLgoE,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,QAChC5tC,QAASs/P,EAAoB,OAAJ/D,QAAI,IAAJA,OAAI,EAAJA,EAAMnwI,KAC/BljD,UAAQ,OAGZq9C,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mCAAmC4nE,MAAO,CAAE4vF,WAAY,QAASl7J,UAC9Eu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8DAA6D1D,SAAA,EAC1Eq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAChCq7K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,MAAK1D,UAACu7K,EAAAA,GAAAA,MAAA,KAAAv7K,SAAA,CAAG,QAAMukB,EAAQ,UAEtC82J,EAAAA,GAAAA,KAAA,OAAAr7K,SACqBo1T,EAAoB,OAAJ/D,QAAI,IAAJA,OAAI,EAAJA,EAAMnwI,MAAK7F,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,4BAAgC23K,EAAAA,GAAAA,KAAA,KAAG33K,UAAU,yBAAyB4nE,MAAO,CAAC6qE,OAAO,WAAYjyI,QAASA,IA9HvKsxT,EAACjxS,EAAO9gB,KACxB23M,GAAsB,GACtB05G,EAAoBvwS,GACpBqwS,EAAwB,GACxBI,EAAuB,GACvBO,IACAJ,EAAU1xT,EAAG,EAwHgL+xT,CAAUjxS,EAAW,OAAJ8sS,QAAI,IAAJA,OAAI,EAAJA,EAAMnwI,gBAhBhM38J,OAuBZ82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gBAAe1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,qDAAoD1D,UACjEq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,+CAA+CQ,QA5InDk5M,KAC5B5oC,GAAU,EAAE,EA2ImGlpG,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAC,eAY7Jm7M,IACC9/B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAa+7H,SAAS,KAAK,kBAAgB,iBAAiBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UAC5Iq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,eAAe4nE,MAAO,CAAEipF,UAAW,MAAOv0J,UACvDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BAA8B1D,UAC3Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACrCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,QAAO1D,UACpBu7K,EAAAA,GAAAA,MAAA,QAAM73K,UAAU,UAAS1D,SAAA,CAAE20T,EAAuB,EAAE,IAAE/1I,EAAegC,OAAOywI,KAAKwD,GAAkBzD,UAAUh8T,aAE/GimL,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,UAAU4nE,MAAO,CAAEg5G,YAAa,QAAStkL,SAAC,eAG9Dq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yCAAwC1D,UACrDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yBAAyBs8L,KAAK,cAAc,iBAAgB20H,EAAuB,GAAK/1I,EAAegC,OAAOywI,KAAKwD,GAAkBzD,UAAUh8T,OAAS,IAAK,gBAAc,IAAI,gBAAc,MAAMk2E,MAAO,CAAEm4B,MAAM,GAADplG,QAAMs2T,EAAuB,GAAK/1I,EAAegC,OAAOywI,KAAKwD,GAAkBzD,UAAUh8T,OAAS,IAAG,KAAK2gK,gBAAiB,gBAG7VslB,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,8CAA8C69G,IAAI,GAAG93K,UAAU,YAAYggG,OAAO,MAAMD,MAAM,YAEzG83E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,OAAM1D,UAACq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAI4+K,EAAegC,OAAOywI,KAAKwD,GAAkBzD,UAAUuD,GAAsB9hQ,UACtGwoH,EAAAA,GAAAA,KAAA,SACCuD,EAAegC,OAAOywI,KAAKwD,GAAkBzD,UAAUuD,GAAsB/2T,QAAQ0sB,KAAI,CAACy4H,EAAQj0F,KACjGusH,EAAAA,GAAAA,KAAA,UAEA33K,UAAS,OAAArF,OAASs9M,IAAoB54D,EAAOA,OAAU44D,IAAoBJ,EAAyB,cAAgB,aAAgB,mBAAkB,qCAAAl9M,OAAwD,eAApBs9M,EAAmC,kBAAoB,IACjPrwI,MAAO,CAAEo4B,OAAQ,OAAQD,MAAO,SAChCvtG,MAAO6sJ,EAAOA,OACd7+I,QAA6B,eAApBy3M,EAAmCY,EAAwB,KAAKv8M,SAExE+iJ,EAAOA,QANHj0F,KAUN+sJ,IACCtgC,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACAu7K,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,OAAM1D,SAAA,CAAC,uBAAmBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAIu7M,QAC3ClgC,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,4CAA2C1D,UACxDq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,0CAA0CQ,QA9H3DuxT,KACrBd,EAAuB/1I,EAAegC,OAAOywI,KAAKwD,GAAkBzD,UAAUh8T,OAAS,GACzFw/T,EAAwBD,EAAuB,GAC/CY,MA3BFp3T,QAAQo7B,IAAI,0BAADl7B,OAA2B02T,IAEtC35G,GAAsB,GAiBlBz/B,GAAQ,OAAQtN,GAAO8Q,iBAAiB,IAAI2J,EAAS,IAAIosI,EAL9C,CACPQ,eAAgBX,GAIoD10I,GAf1Dj2H,IACY,KAAlBA,EAAI9hC,WACJo0L,GAA6B,GAG7Bh5B,GAAMx+K,MAAMklD,EAAIrxC,QAAS,CACrB4qK,UAAW,MAEnB,IAO2Fz+K,IAC7F/G,QAAQo7B,IAAI,QAASr0B,EAAM,IAUjC,EAwHiHomE,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAC,0BAY/Jy8M,IACCphC,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,aAAa+7H,SAAS,KAAK,kBAAgB,oBAAoBn0D,MAAO,CAAEk4C,QAAS,QAASuyC,gBAAiB,sBAAuB/1J,UAC/Iq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,eAAe4nE,MAAO,CAAEipF,UAAW,OAAQv0J,UACxDq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,+BAA8B1D,UAC3Cu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,yBAAwB1D,SAAA,EACrCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kCAAiC1D,UAC9Cq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,wCAAwC69G,IAAI,GAAG93K,UAAU,mBAGtE23K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,YAAW1D,UACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,sBACxBq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,+CACHq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,+CAA+CQ,QAASA,IAAMw4M,GAA6B,GAAQpxI,MAAO,CAAEyqF,gBAAiB,UAAWnwD,MAAO,SAAU5lG,SAAC,iCAa/L,EC8zBP,GApkC6B21T,KACzB,MAAOjJ,EAAaC,IAAkBvsT,EAAAA,EAAAA,UAAS,KAC1CwsT,EAAmBC,IAAwBzsT,EAAAA,EAAAA,UAAS,KACpD0sT,EAAiBC,IAAsB3sT,EAAAA,EAAAA,UAAS,KAChD4sT,EAAqBC,IAA0B7sT,EAAAA,EAAAA,UAAS,KAExD8sT,EAAaC,IAAkB/sT,EAAAA,EAAAA,UAAS,KAExCs0M,EAAeC,IAAoBv0M,EAAAA,EAAAA,UAAS,KAC5Cw0M,EAAqBC,IAA0Bz0M,EAAAA,EAAAA,WAAS,IACxDgtT,EAAUC,IAAejtT,EAAAA,EAAAA,UAAS,OAClCktT,EAAcC,IAAmBntT,EAAAA,EAAAA,WAAS,IAC1Co1O,EAAkBC,IAAuBr1O,EAAAA,EAAAA,UAAS,KAClD0tT,EAAUC,IAAe3tT,EAAAA,EAAAA,UAAS,KAClCs4M,EAAQs1G,IAAa5tT,EAAAA,EAAAA,UAAS,KAC9B6tT,EAAcC,IAAmB9tT,EAAAA,EAAAA,UAAS,KAE1CotT,EAAmBC,IAAwBrtT,EAAAA,EAAAA,UAAS,KACpDksT,EAAYoB,IAAiBttT,EAAAA,EAAAA,UAAS,KACtCutT,EAAyBC,IAA8BxtT,EAAAA,EAAAA,UAAS,KAChEosT,EAAkBqB,IAAuBztT,EAAAA,EAAAA,UAAS,KAClD+tT,EAAcC,IAAmBhuT,EAAAA,EAAAA,WAAS,IAC1CiuT,EAA4BC,IAAiCluT,EAAAA,EAAAA,UAAS,OACtEmuT,EAAsBC,IAA2BpuT,EAAAA,EAAAA,UAAS,OAC1DspL,EAAW+kI,IAAgBruT,EAAAA,EAAAA,UAAS,KACpCsuT,EAASC,IAAcvuT,EAAAA,EAAAA,UAAS,KAChCupL,EAAWilI,IAAgBxuT,EAAAA,EAAAA,UAAS,KACpCopL,EAAOqlI,IAAYzuT,EAAAA,EAAAA,UAAS,KAC5B0uT,EAAaC,IAAkB3uT,EAAAA,EAAAA,UAAS,KACxC4uT,EAAsBC,IAA2B7uT,EAAAA,EAAAA,UAAS,IAC3Do0K,GAAWR,MACVk7I,GAAgB9yG,KAAqBh8M,EAAAA,EAAAA,UAAS,IAOrD,SAASoiL,GAAWz3C,GAClB,MAAMw3C,EAAMnhJ,SAASzgC,cAAc,YAEnC,OADA4hL,EAAIhxF,UAAYw5C,EACTw3C,EAAIrsL,KACb,CAEF,MAAOkqL,GAAWC,KAAgBjgL,EAAAA,EAAAA,WAAS,IAClCwoL,GAAcC,KAAmBzoL,EAAAA,EAAAA,UAAS,IAC3CvG,GAAW+5K,IAETkV,GADc,IAAI/+G,gBAAgBlwE,GAASoe,QACpBhQ,IAAI,aA6BjCpM,EAAAA,EAAAA,YAAU,KACJitL,IALJnN,GAAQ,MAAOtN,GAAOgQ,cAAc,IAAIyK,GAAU,KAAMzI,IAtB1Cj2H,IAEZy+H,GAAgBz+H,EAAI2+H,YACpBskI,EAAYjjQ,EAAI2+H,WAAW5H,WAC3BwrI,EAAeviQ,EAAI2+H,WAAWtxD,OAC9Bk9E,EAAiBvqJ,EAAI2+H,WAAW/8C,OAChC6gL,EAAqBrqI,GAAWp4H,EAAI2+H,WAAWM,cAC/C0jI,EAAmBvqI,GAAWp4H,EAAI2+H,WAAWQ,YAC7C0jI,EAAuB7iQ,EAAI2+H,WAAWtH,gBACtCotI,EAASzkQ,EAAI2+H,WAAWS,OACxBwkI,EAAU5jQ,EAAI2+H,WAAWtG,SACzB0qI,EAAe/iQ,EAAI2+H,WAAWvH,OAC9BkuI,GAAWtlQ,EAAI2+H,WAAWsoI,MAC1BtC,EAAe3kQ,EAAI2+H,WAAWwjI,WAAW,IASoCrnT,IAC7E/G,QAAQo7B,IAAI,QAASr0B,EAAM,GAM7B,GACC,CAAC4jL,KAEN,MAAM+sB,GAAqB3/M,IACzBy+M,EAAiBz+M,GACjB2+M,GAAuB,EAAM,EAQzBs6G,GAAmB17P,UACvB,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR,MAAMq9E,QAAgBL,GAAgBh9E,GACtC22L,EAAYt5G,GACZw5G,GAAgB,EAElB,GAEI75G,GAAkBjgJ,UACtB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAkBE24L,GAAiB57P,UACrB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAYE04L,GAAsB37P,UAC1B,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAiBE64L,GAAkB97P,UACtB,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAYE44L,GAA4B77P,UAChC,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,EAkBE84L,GAAuB/7P,UAC3B,MAAMkgJ,EAAW,IAAI7nM,GAAAA,GAAG,CACtB0O,OAAQ,YACRxB,YAAa,uBACbC,gBAAiB,2CACjB6C,iBAAkB,OAGpB,OAAO,IAAIhd,SAAQ,CAACC,EAAS8wC,KAC3B,MAAMye,EAAS,IAAID,WACnBC,EAAOE,OAAS,KACd,MAAMolJ,EAActlJ,EAAOtvD,OAErB+hB,EAAS,CACbm1B,OAAQ,eACRjB,IAAKyhF,EAAKt+H,KACV+6C,KAAMygK,EACNC,mBAAmB,oBAADx1M,OAAsBq4H,EAAKt+H,KAAI,KACjD07M,YAAap9E,EAAKpzH,MAGpBqwM,EAAS53K,OAAOhb,GAAQ,CAAClpB,EAAKqX,KACxBrX,EACFg4C,EAAOh4C,GAEPkH,EAAQmQ,EAAKnB,SACf,GACA,EAEJugD,EAAOC,QAAU1e,EACjBye,EAAOK,kBAAkB+nE,EAAK,GAC9B,GA2DG+4L,GAASC,KAActvT,EAAAA,EAAAA,UAAS,KAChCuvT,GAAaC,KAAkBxvT,EAAAA,EAAAA,UAAS,KACxCyvT,GAAiBC,KAAsB1vT,EAAAA,EAAAA,UAAS,CAAEyyD,KAAM,GAAIj1D,QAAS,CAAC,CAAEmlJ,OAAQ,GAAIgtK,iBAAiB,GAAS,CAAEhtK,OAAQ,GAAIgtK,iBAAiB,MA4FpJ,OACE10I,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,kBAAiB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAO4nE,MAAO,CAACkpF,aAAa,MAAMx0J,SAAA,EAE/Cq7K,EAAAA,GAAAA,KAACmiE,GAAiB,KAElBjiE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,YAAW1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAC2iE,GAAiB,KAClBziE,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,uBAAsB1D,SAAA,EACnCq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,mBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EACrBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UACjCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,gDAA+C1D,SAAA,EAC9Du7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,CACEstT,IACG/xI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8FAA6F1D,SAAA,EACxGu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,yCAAyCj6D,UAAU,wBAAwB83K,IAAI,iBACxFH,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAC,qBAE3Cq7K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLI,UAAU,yBACVgpD,OAAO,UACP1oD,SAAUmrT,QAIrB/B,IAAaE,IACVjyI,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAEAq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wCAAuC1D,UAClEu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8BAA6B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAKyvP,EAAU5xI,IAAI,WAAW93K,UAAU,8BAC7C63K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EAEAq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD69G,IAAI,GAAG93K,UAAU,wBAC7E23K,EAAAA,GAAAA,KAAA,SACI/3K,KAAK,OACLI,UAAU,2CACVgpD,OAAO,UACP1oD,SAAUmrT,mBAgBlB5zI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EAC/Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EACJq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,cAAansL,SAAC,kBAC5Dq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,4CAA4CD,GAAG,cAAcvN,MAAOw2T,EAAa1oT,SAAWkC,GAAMymT,EAAezmT,EAAEjR,OAAOiB,OAAQqpI,YAAY,eAAej0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAE3O63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EACpCq7K,EAAAA,GAAAA,KAAA,SACE33K,UAAU,qBACVyoL,QAAQ,iBAAgBnsL,SACzB,kBAGHq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,oBAAmB1D,UAC9Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bu7K,EAAAA,GAAAA,MAAA,OACE73K,UAAU,gCACV4nE,MAAO,CACLyqF,gBAAiB,UACjBryD,OAAQ,QACR1jG,SAAA,CAED00M,IAEGr5B,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,WAAU1D,SAAC,wBAC/Bq7K,EAAAA,GAAAA,KAAA,QACE33K,UAAU,wEACVQ,QAlgBF8yM,KAC1BnC,GAAwBD,EAAoB,EAigBa50M,UAE7Bq7K,EAAAA,GAAAA,KAAA,OACE19G,IAAI,uCACJ69G,IAAI,UAITo5B,IACCv5B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC1Bu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,MAAK1D,SAAA,EAClBq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,cACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,WACN4/D,QAA2B,aAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,GAAkB,oBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,qDAAoD1D,SAAA,EACnEq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,kBACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,eACN4/D,QAA2B,iBAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,GAAkB,wBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,aACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,UACN4/D,QAA2B,YAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,GAAkB,mBAK1Bx6B,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,SAAQ1D,UACrBu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,kEAAiE1D,SAAA,EAChFq7K,EAAAA,GAAAA,KAAA,QAAAr7K,SAAM,SACNq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,QACLlL,KAAK,QACLlC,MAAM,MACN4/D,QAA2B,QAAlB4+I,EACTppI,MAAO,CACLyiH,YAAa,UACbtqF,MAAO,OACPC,OAAQ,OACR4gF,YAAa,OAEftgL,SAAUA,IACR6xM,GAAkB,4BAWtCt6B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACvCq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,oBAAmBnsL,SAAC,wBAClEq7K,EAAAA,GAAAA,KAAC9+C,KAAU,CACTmD,MAAM,OACNxpI,MAAO02T,EACP5oT,SAhqBuB9N,IAC/B22T,EAAqB32T,EAAM,EAgqBnBqpI,YAAY,cACZj0D,MAAO,CAAEyqF,gBAAiB,WAC1Bz2B,QAAS,CACPqQ,QAAS,CACP,CAAC,CAAE,OAAU,KAAM,CAAC,OAAU,KAAM,CAAE,KAAQ,KAC9C,CAAC,CAACniF,KAAM,KACR,CAAC,OAAQ,SAAU,YAAa,SAAU,cAC1C,CAAC,CAAC,KAAQ,WAAY,CAAC,KAAQ,UAAW,CAAC,OAAU,MAAO,CAAC,OAAU,OAEvE,CAAC,iBAKT+tH,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,aAAY1D,SAAA,EACzBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,oBAAmBnsL,SAAC,wBAClEq7K,EAAAA,GAAAA,KAAC9+C,KAAU,CACTmD,MAAM,OACNxpI,MAAO42T,EACP9oT,SAjrBqB9N,IAC7B62T,EAAmB72T,EAAM,EAirBjBqpI,YAAY,YACZj0D,MAAO,CAAEyqF,gBAAiB,WAC1Bz2B,QAAS,CACPqQ,QAAS,CACP,CAAC,CAAE,OAAU,KAAM,CAAC,OAAU,KAAM,CAAE,KAAQ,KAC9C,CAAC,CAACniF,KAAM,KACR,CAAC,OAAQ,SAAU,YAAa,SAAU,cAC1C,CAAC,CAAC,KAAQ,WAAY,CAAC,KAAQ,UAAW,CAAC,OAAU,MAAO,CAAC,OAAU,OAEvE,CAAC,iBAKW+tH,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qCAAoC1D,SAAA,EAC/Cq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,eAAcnsL,SAAC,2BAC7Dq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,4CAA4CD,GAAG,sBAAsBvN,MAAO82T,EAAqBhpT,SAAWkC,GAAM+mT,EAAuB/mT,EAAEjR,OAAOiB,OAAQqpI,YAAY,wBAAwBj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,cAE5Q23E,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,kBACxBu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qCAAoC1D,SAAA,EACvEq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,YAAWnsL,SAAC,gBAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,4CACVD,GAAG,YACH87H,YAAY,QACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7CxtG,MAAOwzL,EACP1lL,SAAWkC,GAAMuoT,EAAavoT,EAAEjR,OAAOiB,aAG3CqlL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,UAASnsL,SAAC,uBACxDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,kDACVD,GAAG,UACH87H,YAAY,cACZrpI,MAAOs3T,EACPxvL,UAAQ,KAEVu9C,EAAAA,GAAAA,MAAA,SAAO4Q,QAAQ,mBAAmBzoL,UAAU,wCAAuC1D,SAAA,CAAC,UAElFq7K,EAAAA,GAAAA,KAAA,SACE53K,GAAG,mBACHH,KAAK,OACLgoE,MAAO,CAAEk4C,QAAS,QAClB92D,OAAO,UACP1oD,SAAWkC,IA9kBOutD,WAC5B,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR+2L,EAAqB/2L,EAAKt+H,MAC1B,MAAM27M,QAAgBq7G,GAAoB14L,GAC1Cg3L,EAAc35G,EAGhB,GAukBYi8G,CAAsB9pT,GAClBA,EAAEjR,OAAOwzJ,MAAM,IACjBilK,EAAchrP,IAAIutP,gBAAgB/pT,EAAEjR,OAAOwzJ,MAAM,IACnD,cAOV8yB,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,UAASnsL,SAAC,iBACxDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,kDACVD,GAAG,UACH87H,YAAY,eACZrpI,MAAOs/O,EACPx3G,UAAQ,KAEVu9C,EAAAA,GAAAA,MAAA,SAAO4Q,QAAQ,cAAczoL,UAAU,wCAAuC1D,SAAA,CAAC,UAE7Eq7K,EAAAA,GAAAA,KAAA,SACE53K,GAAG,cACHH,KAAK,OACLgoE,MAAO,CAAEk4C,QAAS,QAClB92D,OAAO,uBACP1oD,SAAWkC,IAtpBEutD,WACvB,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR++G,EAAoB/+G,EAAKt+H,MACzB,MAAM27M,QAAgBs7G,GAAe34L,GACrCi4L,EAAW56G,EAGb,GA+oBYm8G,CAAiBhqT,GACbA,EAAEjR,OAAOwzJ,MAAM,IACjBkmK,EAAWjsP,IAAIutP,gBAAgB/pT,EAAEjR,OAAOwzJ,MAAM,IAChD,cAMV8yB,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qCAAoC1D,SAAA,EACjDq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,YAAWnsL,SAAC,gBAC1Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,SACL05E,KAAK,OACLl9C,IAAI,IACJp8B,UAAU,4CACVD,GAAG,YACH87H,YAAY,QACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7CxtG,MAAOyzL,EACP3lL,SAAWkC,GAAM0oT,EAAa1oT,EAAEjR,OAAOiB,aAI3CmlL,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wDAAuD1D,UAC1Eq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD2N,MAAO,CAAC6qE,OAAO,WAAYjyI,QAhcjEisT,KAChBzmI,GAAaglI,GAAW/kI,GAAa2iI,GACvCuC,EAAS,IAAIrlI,EAAO,CAAEE,YAAWglI,UAAS/kI,YAAW2iI,gBACrDmC,EAAa,IACbE,EAAW,IACXC,EAAa,IACblB,EAAc,KAEd1jI,MAAM,4BACR,EAub6GtmL,UAAU,YAAY83K,IAAI,QAG3IH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,oBAGAwpL,EAAMp0L,OAAS,IACdmmL,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,OAAM1D,SAAA,EACnBq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,iBACJq7K,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,aAAY1D,SACvBwpL,EAAMl/J,KAAI,CAACm/J,EAAMllK,KAChBg3J,EAAAA,GAAAA,MAAA,MAAgB73K,UAAU,kBAAiB1D,SAAA,EACzCu7K,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,OAAM1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,UAAAr7K,SAAQ,WAAe,IAAEypL,EAAKC,cAElDnO,EAAAA,GAAAA,MAAA,KAAG73K,UAAU,OAAM1D,SAAA,EAACq7K,EAAAA,GAAAA,KAAA,UAAAr7K,SAAQ,WAAe,KAAGypL,EAAKE,eAH5CplK,WASK82J,EAAAA,GAAAA,KAAA,MAAI33K,UAAU,UAAS1D,SAAC,mBACvB04M,EAAOpuL,KAAI,CAACwxG,EAAOv3G,KACxCg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,kBAAiB1D,SAAA,EAC1Cq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAoB1D,SAAC,mBACtCu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,OAAAr7K,UACEq7K,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,oCAAoC4nE,MAAO,CAAEyqF,gBAAiB,YAAaryD,OAAQ,QAAS1jG,SAAEukB,EAAQ,OAExHg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kCAAiC1D,SAAA,EAC9Cq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,iDACV4nE,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7CxtG,MAAO4lI,EAAM+tD,aACb7rD,UAAQ,KAEVq9C,EAAAA,GAAAA,KAAA,OACE19G,IAAI,yCACJj6D,UAAU,GACV83K,IAAI,GACJt3K,QAASA,IAndIqgB,KACzB,MAAM6rS,EAAY,IAAI13G,GACtB03G,EAAU55Q,OAAOjyB,EAAO,GACxBypS,EAAUoC,EAAU,EAgdOC,CAAkB9rS,GACjC+mD,MAAO,CAAE6qE,OAAQ,qBAnBf5xH,MA0BZg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,aAAYnsL,SAAC,iBAC3Dq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,4CACVD,GAAG,aACH87H,YAAY,QACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,QAC7CxtG,MAAO+3T,EACPjqT,SAAWkC,GAAMgoT,EAAgBhoT,EAAEjR,OAAOiB,gBAK9CmlL,EAAAA,GAAAA,KAAA,OAAAr7K,SACCmuT,GACS5yI,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,8FAA6F1D,SAAA,EACxGu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACIq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,wCAAwCj6D,UAAU,wBAAwB83K,IAAI,iBACvFH,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAC,qBAE3Cq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,OAAOI,UAAU,yBAAyBgpD,OAAO,UAAU1oD,SA1pB/DyvD,UACxB,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR,MAAMq9E,QAAgBw7G,GAAgB74L,GACtCq3L,EAAYh6G,GACZq6G,GAAgB,EAElB,SAspBU/yI,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UAEEq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,gCAA+B1D,UAC1Cu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,2BAA2BwzH,UAAQ,EAAAl3H,SAAA,EAChDq7K,EAAAA,GAAAA,KAAA,UAAQ19G,IAAKmwP,EAAUxqT,KAAK,cAAc,yDAalEi4K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EAC/Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wDAAuD1D,UACpEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD2N,MAAO,CAAC6qE,OAAO,WAAYjyI,QAjhBhEosT,KACjBrC,GAAgBH,GAClBE,EAAU,IAAIt1G,EAAQ,CAAE7uB,aAAcokI,EAAc9wG,WAAY2wG,KAChEI,EAAgB,IAChBH,EAAY,IACZK,GAAgB,IAEhBpkI,MAAM,mDACR,EAygB8GtmL,UAAU,YAAY83K,IAAI,QAG5IH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,wBAGPu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,mBAAkB1D,SAAA,EACDq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,YAAWnsL,SAAC,kBAC1Dq7K,EAAAA,GAAAA,KAAA,SAAO/3K,KAAK,SAASw8B,IAAI,IAAIp8B,UAAU,4CAA4CD,GAAG,cAAcvN,MAAOg3T,EAAalpT,SAAWkC,GAAMinT,EAAejnT,EAAEjR,OAAOiB,OAAQqpI,YAAY,eAAej0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,sBAQtQ63E,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,0CAAyC1D,SAAA,EACxDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,qHAAoH1D,SAAA,EACtIu7K,EAAAA,GAAAA,MAAA,OAAAv7K,SAAA,EACEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,2CAA2Cj6D,UAAU,wBAAwB83K,IAAI,iBAC1FH,EAAAA,GAAAA,KAAA,QAAM33K,UAAU,uBAAsB1D,SAAEquT,GAA0D,yBAEnGA,GACC9yI,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,0CAA0C69G,IAAI,GAAGt3K,QAnkBjCqsT,KACjCjC,EAA8B,IAC9BW,EAAwB,GAAG,EAikB4EvrT,UAAU,0CAA0C4nE,MAAO,CAAE0oB,OAAQ,EAAGmiD,OAAQ,cAC/KklC,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,yCAGjB23K,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACEq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,yBACVgpD,OAAO,uBACP1oD,SAvnBuByvD,UACjC,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACR43L,EAA8B53L,EAAKt+H,MACnC,MAAM27M,QAAgBy7G,GAAqB94L,GAC3Cu4L,EAAwBl7G,GAExB51M,QAAQo7B,IAAIw6K,EACd,WAonBEx4B,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EAC9Bq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,UAASnsL,SAAC,6BACxDu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,4BAA2B1D,SAAA,EACxCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,kDACVD,GAAG,UACH87H,YAAY,cACZrpI,MAAOy3T,EACP3vL,UAAQ,KAEVu9C,EAAAA,GAAAA,MAAA,SAAO4Q,QAAQ,yBAAyBzoL,UAAU,wCAAuC1D,SAAA,CAAC,UAExFq7K,EAAAA,GAAAA,KAAA,SACE53K,GAAG,yBACHH,KAAK,OACLgoE,MAAO,CAAEk4C,QAAS,QAClB92D,OAAO,UACP1oD,SAAWkC,IA/rBautD,WAClC,MAAMijE,EAAOxwH,EAAEjR,OAAOwzJ,MAAM,GAC5B,GAAI/xB,EAAM,CACRk3L,EAA2Bl3L,EAAKt+H,MAChC,MAAM27M,QAAgBu7G,GAA0B54L,GAChDm3L,EAAoB95G,EAGtB,GAwrBYy8G,CAA4BtqT,GACxBA,EAAEjR,OAAOwzJ,MAAM,IACjBolK,EAAoBnrP,IAAIutP,gBAAgB/pT,EAAEjR,OAAOwzJ,MAAM,IACzD,cAOV4yB,EAAAA,GAAAA,KAAA,OAAAr7K,SACG8uT,EAAYxkS,KAAI,CAACiiS,EAAYhoS,KAC5Bg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,2EAA0E1D,SAAA,EACnGq7K,EAAAA,GAAAA,KAAA,OAAAr7K,SAAMusT,EAAWkE,mBAAqBlE,EAAWkE,oBAAoBl1I,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,CAAE,cAAYukB,EAAM,QACzF82J,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,0CAA0C69G,IAAI,SAASt3K,QAASA,IA9jBnDqgB,KAC9B,MAAMmsS,EAAiB,IAAI5B,GAC3B4B,EAAel6Q,OAAOjyB,EAAO,GAC7BwqS,EAAe2B,EAAe,EA2jByDC,CAAuBpsS,GAAQ7gB,UAAU,OAAO4nE,MAAO,CAAE6qE,OAAQ,eAFxI5xH,QAMdg3J,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,iBAAgB1D,SAAA,EACrCq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,wDAAuD1D,UACpEq7K,EAAAA,GAAAA,KAAA,OAAK19G,IAAI,mDAAmD2N,MAAO,CAAC6qE,OAAO,WAAYjyI,QA/kB3D0sT,KACtB5B,GAAwBxC,GAC1BuC,EAAe,IAAID,EAAa,CAAE+B,cAAe7B,EAAsByB,mBAAoBpC,EAA4B7B,iBAAkBA,KACzI8B,EAA8B,IAC9BW,EAAwB,IACxBpB,EAAoB,KAEpB7jI,MAAM,wCACR,EAukBmHtmL,UAAU,YAAY83K,IAAI,QAGjJH,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,cAAa1D,UAC5Bq7K,EAAAA,GAAAA,KAAA,MAAAr7K,UAAIq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAG,2BAGPq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,mBAAkB1D,UACDq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAqByoL,QAAQ,YAAWnsL,SAAC,wBAG1Fu7K,EAAAA,GAAAA,MAAA,OAAK73K,UAAU,kBAAiB1D,SAAA,EACxBq7K,EAAAA,GAAAA,KAAA,SAAO33K,UAAU,qBAAoB1D,SAAC,cACtCq7K,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,4CACVxN,MAAO25T,GAAgBh9P,KACvB7uD,SA5kBsBkC,IAC5B4pT,GAAmB,IAAKD,GAAiBh9P,KAAM3sD,EAAEjR,OAAOiB,OAAQ,EA4kB1DqpI,YAAY,sBACZj0D,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,aAGhDmsN,GAAgBjyT,QAAQ0sB,KAAI,CAACy4H,EAAQx+H,KACpCg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,4CAA2C1D,SAAA,EACpEu7K,EAAAA,GAAAA,MAAA,SAAO73K,UAAU,0BAAyB1D,SAAA,CAAC,UAAQukB,EAAQ,MAC3D82J,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,OACLI,UAAU,4CACVxN,MAAO6sJ,EAAOA,OACd/+I,SAAWkC,GAplBM4qT,EAACvsS,EAAOruB,KACjC,MAAM8H,EAAa6xT,GAAgBjyT,QAAQ0sB,KAAI,CAACy4H,EAAQ7tJ,IAAOA,IAAMqvB,EAAQ,IAAKw+H,EAAQA,OAAQ7sJ,GAAU6sJ,IAC5G+sK,GAAmB,IAAKD,GAAiBjyT,QAASI,GAAa,EAklBtC8yT,CAAmBvsS,EAAOre,EAAEjR,OAAOiB,OACpDqpI,YAAW,gBAAAlhI,OAAkBkmB,EAAQ,GACrC+mD,MAAO,CAAEyqF,gBAAiB,UAAWryD,OAAQ,WAE/C23E,EAAAA,GAAAA,KAAA,SACE/3K,KAAK,WACLI,UAAU,yCACV4nE,MAAO,CAAEm4B,MAAO,OAAQC,OAAQ,QAChC5tC,QAASitF,EAAOgtK,gBAChB/rT,SAAUA,IAxlBeugB,KACjC,MAAMvmB,EAAa6xT,GAAgBjyT,QAAQ0sB,KAAI,CAACy4H,EAAQ7tJ,KAAC,IACpD6tJ,EACHgtK,gBAAiB76T,IAAMqvB,IAASw+H,EAAOgtK,oBAEzCD,GAAmB,IAAKD,GAAiBjyT,QAASI,GAAa,EAmlBvC+yT,CAA0BxsS,OAfpCA,KAoBXsrS,GAAgBjyT,QAAQxI,OAAS,IAChCimL,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,4BAA4B4nE,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAU1hG,QAtlB/E8sT,KAClBnB,GAAgBjyT,QAAQxI,OAAS,GACnC06T,GAAmB,IAAKD,GAAiBjyT,QAAS,IAAIiyT,GAAgBjyT,QAAS,CAAEmlJ,OAAQ,GAAIgtK,iBAAiB,KAChH,EAmlB8H/vT,SAAC,gBAE7Hq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,4BAA4B4nE,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAU1hG,QAllB3E+sT,KACpBpB,GAAgBh9P,MAAQg9P,GAAgBjyT,QAAQF,OAAMwzT,GAAOA,EAAInuK,SAC/D8sK,GAAgBjyT,QAAQugI,MAAK+yL,GAAOA,EAAInB,mBAC1CH,GAAe,IAAID,GAAaE,KAChCC,GAAmB,CAAEj9P,KAAM,GAAIj1D,QAAS,CAAC,CAAEmlJ,OAAQ,GAAIgtK,iBAAiB,GAAS,CAAEhtK,OAAQ,GAAIgtK,iBAAiB,OAEhH/lI,MAAM,+CAGRA,MAAM,sDACR,EAwkB8HhqL,SAAC,kBAC7Hq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,4BAA4B4nE,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAU1hG,QAtkB5EitT,KACnBxB,GAAYv6T,OAAS,GACvBs6T,GAAW,IAAID,GAAS,CAAE2B,UAAWzB,MACrCC,GAAe,KAEf5lI,MAAM,gDACR,EAgkB6HhqL,SAAC,iBAC5Hq7K,EAAAA,GAAAA,KAAA,MAAAr7K,SAAI,YACHyvT,GAAQnlS,KAAI,CAAC+mS,EAAM9sS,KAClBg3J,EAAAA,GAAAA,MAAA,OAAiB73K,UAAU,OAAM1D,SAAA,EAC/Bu7K,EAAAA,GAAAA,MAAA,MAAAv7K,SAAA,CAAI,QAAMukB,EAAQ,KACjB8sS,EAAKD,UAAU9mS,KAAI,CAACgnS,EAAUC,KAC7Bh2I,EAAAA,GAAAA,MAAA,OAAkB73K,UAAU,OAAM1D,SAAA,EAChCq7K,EAAAA,GAAAA,KAAA,KAAAr7K,SAAIsxT,EAASz+P,QACbwoH,EAAAA,GAAAA,KAAA,MAAAr7K,SACGsxT,EAAS1zT,QAAQ0sB,KAAI,CAAC4mS,EAAKM,KAC1Bn2I,EAAAA,GAAAA,KAAA,MAAiB33K,UAAWwtT,EAAInB,gBAAkB,eAAiB,GAAG/vT,SACnEkxT,EAAInuK,QADEyuK,SAJLD,MAWZl2I,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,iBAAiBQ,QAASA,IA9kB1BqgB,KACxB,MAAMktS,EAAiBhC,GAAQ/6T,QAAO,CAAC28T,EAAMn8T,IAAMA,IAAMqvB,IACzDmrS,GAAW+B,EAAe,EA4kB8BC,CAAiBntS,GAAOvkB,SAAC,kBAdnEukB,MAkBlB82J,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UAS/Bq7K,EAAAA,GAAAA,KAAA,OAAK33K,UAAU,iBAAgB1D,UACXq7K,EAAAA,GAAAA,KAAA,UAAQ33K,UAAU,kDAAkDQ,QAxlB/D6qM,KACrB,MAAM4iH,EAAqB,CACzB7oI,SAAUA,GACV3H,UAAWisI,EACX31L,MAAOi1L,EACPrjI,YAAaujI,EACbrjI,UAAWujI,EACX9gL,MAAO0oE,EACPlrB,MAAOA,EACP/G,QAASi2B,EACTl3B,MAAO0rI,EACPmE,KAAM5B,GACNlD,WAAYuC,EACZrtI,eAAgBurI,GAEbI,GAAaV,GAAgBE,GAAsBE,GAAoBp4G,GAAkBw4G,GAK5F9wG,GAAkBu1G,GACpBxzT,QAAQo7B,IAAIo4R,GACZn9I,GAAS,iCAAmC,CAAEhkK,MAAO,CAAEohT,aAAcD,MANnE3nI,MAAM,2CAOR,EAikB8G1+G,MAAO,CAACyqF,gBAAgB,UAAWnwD,MAAM,SAAS5lG,SAAC,mCAWhK,ECr7BL,SAjGA,WACE,MAAOkjL,EAAYC,IAAiB/iL,EAAAA,EAAAA,UAASgkB,aAAa83J,QAAQ,iBAGlE,OAFA/9K,QAAQo7B,IAAI2pJ,IAGV7H,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAt7K,UACAq7K,EAAAA,GAAAA,KAAC5C,GAAM,CAAAz4K,UACPq7K,EAAAA,GAAAA,KAAC44D,GAAc,CAAAj0O,UACbu7K,EAAAA,GAAAA,MAACtC,GAAM,CAAAj5K,SAAA,EAELu7K,EAAAA,GAAAA,MAAChD,GAAK,CACJlhK,KAAK,IACLzc,SACE2gL,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EACEq7K,EAAAA,GAAAA,KAACxiB,GAAM,KACPwiB,EAAAA,GAAAA,KAAChD,GAAM,KACPgD,EAAAA,GAAAA,KAAC2I,GAAM,OAEVhkL,SAAA,EAEDq7K,EAAAA,GAAAA,KAAC9C,GAAK,CAACh0J,OAAK,EAAC3pB,SAASygL,EAAAA,GAAAA,KAACmJ,GAAI,OAC3BnJ,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,WAAWzc,SAASygL,EAAAA,GAAAA,KAAC8G,GAAO,OACxC9G,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,WAAWzc,SAASygL,EAAAA,GAAAA,KAAC+J,GAAO,OACxC/J,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,aAAazc,SAASygL,EAAAA,GAAAA,KAACgK,GAAS,OAC5ChK,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,iBAAiBzc,SAASygL,EAAAA,GAAAA,KAAC0K,GAAa,OACpD1K,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,kBAAkBzc,SAASygL,EAAAA,GAAAA,KAACgR,GAAc,OACtDhR,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,iBAAiBzc,SAASygL,EAAAA,GAAAA,KAACuS,GAAa,OACpDvS,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,qBAAqBzc,SAASygL,EAAAA,GAAAA,KAAC08D,GAAiB,OAC5D18D,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,iBAAiBzc,SAASygL,EAAAA,GAAAA,KAAC48D,GAAa,OACpD58D,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,gBAAgBzc,SAASygL,EAAAA,GAAAA,KAACmU,GAAY,MAElC,YAAftM,IAA4B3H,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,oBAAoBzc,SAASygL,EAAAA,GAAAA,KAACu+B,GAAgB,OAC1Dv+B,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,iCAAiCzc,SAASygL,EAAAA,GAAAA,KAAC8+B,GAA6B,OACpF9+B,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,kCAAkCzc,SAASygL,EAAAA,GAAAA,KAACoiC,GAA8B,OACtFpiC,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,+BAA+Bzc,SAASygL,EAAAA,GAAAA,KAACg5I,GAA2B,OAChFh5I,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,0BAA0Bzc,SAASygL,EAAAA,GAAAA,KAACq5I,GAAsB,OAGtEr5I,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,qBAAqBzc,SAASygL,EAAAA,GAAAA,KAAC0iC,GAAa,OACxD1iC,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,aAAazc,SAASygL,EAAAA,GAAAA,KAAC84D,GAAK,OACxC94D,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,mBAAmBzc,SAASygL,EAAAA,GAAAA,KAACygE,GAAW,CAAC34D,cAAeA,aAKtE9H,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,SAASzc,SAASygL,EAAAA,GAAAA,KAACu6I,GAAK,CAACzyI,cAAeA,OACpD9H,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,kBAAkBzc,SAASygL,EAAAA,GAAAA,KAACyzB,GAAc,OACtDzzB,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,qBAAqBzc,SAASygL,EAAAA,GAAAA,KAAC81B,GAAiB,OAC5D91B,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,qBAAqBzc,SAASygL,EAAAA,GAAAA,KAAC22B,GAAiB,OAC5D32B,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,UAAUzc,SAASygL,EAAAA,GAAAA,KAACw3B,GAAM,OACtCx3B,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,aAAazc,SAASygL,EAAAA,GAAAA,KAACy3B,GAAS,OAC5Cz3B,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,qBAAqBzc,SAASygL,EAAAA,GAAAA,KAACw6I,GAAiB,CAAC1yI,cAAeA,OAC5E9H,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,sBAAsBzc,SAASygL,EAAAA,GAAAA,KAAC83B,GAAkB,OAC9D93B,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,sBAAsBzc,SAASygL,EAAAA,GAAAA,KAAC24B,GAAkB,OAC9D34B,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,4BAA4Bzc,SAASygL,EAAAA,GAAAA,KAACuhE,GAAwB,OAC1EvhE,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,yBAAyBzc,SAASygL,EAAAA,GAAAA,KAAC2hE,GAAqB,OACpE3hE,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,uBAAwBzc,SAASygL,EAAAA,GAAAA,KAAC+Q,GAAY,MAG1C,eAAflJ,IAA+B3H,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EAChCq7K,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,kBAAkBzc,SAASygL,EAAAA,GAAAA,KAACyiE,GAAc,OACtDziE,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,2BAA2Bzc,SAASygL,EAAAA,GAAAA,KAACgxI,GAAuB,OACxEhxI,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,0BAA0Bzc,SAASygL,EAAAA,GAAAA,KAACoxI,GAAsB,OACtEpxI,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,wBAAwBzc,SAASygL,EAAAA,GAAAA,KAACs6I,GAAoB,OAElEt6I,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,iCAAiCzc,SAASygL,EAAAA,GAAAA,KAACw2I,GAA6B,OACpFx2I,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,8BAA8Bzc,SAASygL,EAAAA,GAAAA,KAACyqI,GAA0B,UAI7D,eAAf5iI,GAA8C,YAAfA,KACvC3H,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EAAEq7K,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,sBAAsBzc,SAASygL,EAAAA,GAAAA,KAACy6I,GAAkB,CAAC3yI,cAAeA,OAChF9H,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,2BAA2Bzc,SAASygL,EAAAA,GAAAA,KAAC22I,GAAuB,OACxE32I,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,mBAAmBzc,SAASygL,EAAAA,GAAAA,KAAC42I,GAAe,SAIlC,YAAf/uI,IAA4B3H,EAAAA,GAAAA,MAAAD,GAAAA,SAAA,CAAAt7K,SAAA,EAC7Bq7K,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,eAAezc,SAASygL,EAAAA,GAAAA,KAAC62I,GAAW,OAChD72I,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,wBAAwBzc,SAASygL,EAAAA,GAAAA,KAACg3I,GAAoB,OAClEh3I,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,wBAAwBzc,SAASygL,EAAAA,GAAAA,KAACi3I,GAAoB,OAClEj3I,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,+BAA+Bzc,SAASygL,EAAAA,GAAAA,KAAC44I,GAA2B,OAChF54I,EAAAA,GAAAA,KAAC9C,GAAK,CAAClhK,KAAK,2BAA2Bzc,SAASygL,EAAAA,GAAAA,KAAC+4I,GAAuB,iBAYhF,ECvIA,GAZwB2B,IAClBA,GAAeA,aAAuBxpP,UACxC,+BAAqBhwE,MAAKuD,IAAkD,IAAjD,OAAEk2T,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,QAAEC,GAASt2T,EACpEk2T,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,EAAY,GAExB,ECHWp8I,EAAAA,WAAoBv4I,SAASwoC,eAAe,SACpDnB,QACH4yG,EAAAA,GAAAA,KAACnnL,EAAAA,WAAgB,CAAA8L,UACfq7K,EAAAA,GAAAA,KAACg7I,GAAG,OAORC","sources":["../node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","../node_modules/aws-sdk/clients/acm.js","../node_modules/aws-sdk/clients/amp.js","../node_modules/aws-sdk/clients/apigateway.js","../node_modules/aws-sdk/clients/applicationautoscaling.js","../node_modules/aws-sdk/clients/athena.js","../node_modules/aws-sdk/clients/autoscaling.js","../node_modules/aws-sdk/clients/browser_default.js","../node_modules/aws-sdk/clients/cloudformation.js","../node_modules/aws-sdk/clients/cloudfront.js","../node_modules/aws-sdk/clients/cloudhsm.js","../node_modules/aws-sdk/clients/cloudhsmv2.js","../node_modules/aws-sdk/clients/cloudtrail.js","../node_modules/aws-sdk/clients/cloudwatch.js","../node_modules/aws-sdk/clients/cloudwatchevents.js","../node_modules/aws-sdk/clients/cloudwatchlogs.js","../node_modules/aws-sdk/clients/codebuild.js","../node_modules/aws-sdk/clients/codecommit.js","../node_modules/aws-sdk/clients/codedeploy.js","../node_modules/aws-sdk/clients/codepipeline.js","../node_modules/aws-sdk/clients/cognitoidentity.js","../node_modules/aws-sdk/clients/cognitoidentityserviceprovider.js","../node_modules/aws-sdk/clients/cognitosync.js","../node_modules/aws-sdk/clients/comprehend.js","../node_modules/aws-sdk/clients/comprehendmedical.js","../node_modules/aws-sdk/clients/configservice.js","../node_modules/aws-sdk/clients/connect.js","../node_modules/aws-sdk/clients/costexplorer.js","../node_modules/aws-sdk/clients/cur.js","../node_modules/aws-sdk/clients/devicefarm.js","../node_modules/aws-sdk/clients/directconnect.js","../node_modules/aws-sdk/clients/dynamodb.js","../node_modules/aws-sdk/clients/dynamodbstreams.js","../node_modules/aws-sdk/clients/ec2.js","../node_modules/aws-sdk/clients/ecr.js","../node_modules/aws-sdk/clients/ecs.js","../node_modules/aws-sdk/clients/efs.js","../node_modules/aws-sdk/clients/elasticache.js","../node_modules/aws-sdk/clients/elasticbeanstalk.js","../node_modules/aws-sdk/clients/elastictranscoder.js","../node_modules/aws-sdk/clients/elb.js","../node_modules/aws-sdk/clients/elbv2.js","../node_modules/aws-sdk/clients/emr.js","../node_modules/aws-sdk/clients/firehose.js","../node_modules/aws-sdk/clients/forecastqueryservice.js","../node_modules/aws-sdk/clients/forecastservice.js","../node_modules/aws-sdk/clients/gamelift.js","../node_modules/aws-sdk/clients/iam.js","../node_modules/aws-sdk/clients/inspector.js","../node_modules/aws-sdk/clients/iot.js","../node_modules/aws-sdk/clients/iotanalytics.js","../node_modules/aws-sdk/clients/iotdata.js","../node_modules/aws-sdk/clients/kinesis.js","../node_modules/aws-sdk/clients/kinesisvideo.js","../node_modules/aws-sdk/clients/kinesisvideoarchivedmedia.js","../node_modules/aws-sdk/clients/kinesisvideomedia.js","../node_modules/aws-sdk/clients/kinesisvideosignalingchannels.js","../node_modules/aws-sdk/clients/kms.js","../node_modules/aws-sdk/clients/lambda.js","../node_modules/aws-sdk/clients/lexmodelbuildingservice.js","../node_modules/aws-sdk/clients/lexruntime.js","../node_modules/aws-sdk/clients/lexruntimev2.js","../node_modules/aws-sdk/clients/location.js","../node_modules/aws-sdk/clients/machinelearning.js","../node_modules/aws-sdk/clients/marketplacecatalog.js","../node_modules/aws-sdk/clients/marketplacecommerceanalytics.js","../node_modules/aws-sdk/clients/mediastoredata.js","../node_modules/aws-sdk/clients/mobileanalytics.js","../node_modules/aws-sdk/clients/mturk.js","../node_modules/aws-sdk/clients/opsworks.js","../node_modules/aws-sdk/clients/personalize.js","../node_modules/aws-sdk/clients/personalizeevents.js","../node_modules/aws-sdk/clients/personalizeruntime.js","../node_modules/aws-sdk/clients/polly.js","../node_modules/aws-sdk/clients/pricing.js","../node_modules/aws-sdk/clients/rds.js","../node_modules/aws-sdk/clients/redshift.js","../node_modules/aws-sdk/clients/rekognition.js","../node_modules/aws-sdk/clients/resourcegroups.js","../node_modules/aws-sdk/clients/route53.js","../node_modules/aws-sdk/clients/route53domains.js","../node_modules/aws-sdk/clients/s3.js","../node_modules/aws-sdk/clients/secretsmanager.js","../node_modules/aws-sdk/clients/servicecatalog.js","../node_modules/aws-sdk/clients/ses.js","../node_modules/aws-sdk/clients/sns.js","../node_modules/aws-sdk/clients/sqs.js","../node_modules/aws-sdk/clients/ssm.js","../node_modules/aws-sdk/clients/storagegateway.js","../node_modules/aws-sdk/clients/sts.js","../node_modules/aws-sdk/clients/translate.js","../node_modules/aws-sdk/clients/waf.js","../node_modules/aws-sdk/clients/workdocs.js","../node_modules/aws-sdk/clients/xray.js","../node_modules/aws-sdk/lib/api_loader.js","../node_modules/aws-sdk/lib/browser.js","../node_modules/aws-sdk/lib/browserCryptoLib.js","../node_modules/aws-sdk/lib/browserHashUtils.js","../node_modules/aws-sdk/lib/browserHmac.js","../node_modules/aws-sdk/lib/browserMd5.js","../node_modules/aws-sdk/lib/browserSha1.js","../node_modules/aws-sdk/lib/browserSha256.js","../node_modules/aws-sdk/lib/browser_loader.js","../node_modules/aws-sdk/lib/cloudfront/signer.js","../node_modules/aws-sdk/lib/config.js","../node_modules/aws-sdk/lib/config_regional_endpoint.js","../node_modules/aws-sdk/lib/core.js","../node_modules/aws-sdk/lib/credentials.js","../node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js","../node_modules/aws-sdk/lib/credentials/credential_provider_chain.js","../node_modules/aws-sdk/lib/credentials/saml_credentials.js","../node_modules/aws-sdk/lib/credentials/temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/web_identity_credentials.js","../node_modules/aws-sdk/lib/discover_endpoint.js","../node_modules/aws-sdk/lib/dynamodb/converter.js","../node_modules/aws-sdk/lib/dynamodb/document_client.js","../node_modules/aws-sdk/lib/dynamodb/numberValue.js","../node_modules/aws-sdk/lib/dynamodb/set.js","../node_modules/aws-sdk/lib/dynamodb/translator.js","../node_modules/aws-sdk/lib/dynamodb/types.js","../node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js","../node_modules/aws-sdk/lib/event-stream/event-message-chunker.js","../node_modules/aws-sdk/lib/event-stream/int64.js","../node_modules/aws-sdk/lib/event-stream/parse-event.js","../node_modules/aws-sdk/lib/event-stream/parse-message.js","../node_modules/aws-sdk/lib/event-stream/split-message.js","../node_modules/aws-sdk/lib/event_listeners.js","../node_modules/aws-sdk/lib/http.js","../node_modules/aws-sdk/lib/http/xhr.js","../node_modules/aws-sdk/lib/json/builder.js","../node_modules/aws-sdk/lib/json/parser.js","../node_modules/aws-sdk/lib/maintenance_mode_message.js","../node_modules/aws-sdk/lib/model/api.js","../node_modules/aws-sdk/lib/model/collection.js","../node_modules/aws-sdk/lib/model/operation.js","../node_modules/aws-sdk/lib/model/paginator.js","../node_modules/aws-sdk/lib/model/resource_waiter.js","../node_modules/aws-sdk/lib/model/shape.js","../node_modules/aws-sdk/lib/param_validator.js","../node_modules/aws-sdk/lib/polly/presigner.js","../node_modules/aws-sdk/lib/protocol/helpers.js","../node_modules/aws-sdk/lib/protocol/json.js","../node_modules/aws-sdk/lib/protocol/query.js","../node_modules/aws-sdk/lib/protocol/rest.js","../node_modules/aws-sdk/lib/protocol/rest_json.js","../node_modules/aws-sdk/lib/protocol/rest_xml.js","../node_modules/aws-sdk/lib/query/query_param_serializer.js","../node_modules/aws-sdk/lib/rds/signer.js","../node_modules/aws-sdk/lib/realclock/browserClock.js","../node_modules/aws-sdk/lib/region/utils.js","../node_modules/aws-sdk/lib/region_config.js","../node_modules/aws-sdk/lib/request.js","../node_modules/aws-sdk/lib/resource_waiter.js","../node_modules/aws-sdk/lib/response.js","../node_modules/aws-sdk/lib/s3/managed_upload.js","../node_modules/aws-sdk/lib/sequential_executor.js","../node_modules/aws-sdk/lib/service.js","../node_modules/aws-sdk/lib/services/apigateway.js","../node_modules/aws-sdk/lib/services/cloudfront.js","../node_modules/aws-sdk/lib/services/dynamodb.js","../node_modules/aws-sdk/lib/services/ec2.js","../node_modules/aws-sdk/lib/services/iotdata.js","../node_modules/aws-sdk/lib/services/lambda.js","../node_modules/aws-sdk/lib/services/machinelearning.js","../node_modules/aws-sdk/lib/services/polly.js","../node_modules/aws-sdk/lib/services/rds.js","../node_modules/aws-sdk/lib/services/rdsutil.js","../node_modules/aws-sdk/lib/services/route53.js","../node_modules/aws-sdk/lib/services/s3.js","../node_modules/aws-sdk/lib/services/s3util.js","../node_modules/aws-sdk/lib/services/sqs.js","../node_modules/aws-sdk/lib/services/sts.js","../node_modules/aws-sdk/lib/signers/bearer.js","../node_modules/aws-sdk/lib/signers/presign.js","../node_modules/aws-sdk/lib/signers/request_signer.js","../node_modules/aws-sdk/lib/signers/s3.js","../node_modules/aws-sdk/lib/signers/v2.js","../node_modules/aws-sdk/lib/signers/v3.js","../node_modules/aws-sdk/lib/signers/v3https.js","../node_modules/aws-sdk/lib/signers/v4.js","../node_modules/aws-sdk/lib/signers/v4_credentials.js","../node_modules/aws-sdk/lib/state_machine.js","../node_modules/aws-sdk/lib/util.js","../node_modules/aws-sdk/lib/xml/browser_parser.js","../node_modules/aws-sdk/lib/xml/builder.js","../node_modules/aws-sdk/lib/xml/escape-attribute.js","../node_modules/aws-sdk/lib/xml/escape-element.js","../node_modules/aws-sdk/lib/xml/xml-node.js","../node_modules/aws-sdk/lib/xml/xml-text.js","../node_modules/aws-sdk/node_modules/buffer/index.js","../node_modules/aws-sdk/node_modules/events/events.js","../node_modules/aws-sdk/node_modules/isarray/index.js","../node_modules/aws-sdk/node_modules/uuid/dist/bytesToUuid.js","../node_modules/aws-sdk/node_modules/uuid/dist/index.js","../node_modules/aws-sdk/node_modules/uuid/dist/md5-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/rng-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/sha1-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/v1.js","../node_modules/aws-sdk/node_modules/uuid/dist/v3.js","../node_modules/aws-sdk/node_modules/uuid/dist/v35.js","../node_modules/aws-sdk/node_modules/uuid/dist/v4.js","../node_modules/aws-sdk/node_modules/uuid/dist/v5.js","../node_modules/aws-sdk/vendor/endpoint-cache/index.js","../node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js","../node_modules/base64-js/index.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/define-data-property/index.js","../node_modules/es-define-property/index.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/index.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/syntax.js","../node_modules/es-errors/type.js","../node_modules/es-errors/uri.js","../node_modules/facebook-login-react/dist/index.js","../node_modules/for-each/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/get-intrinsic/index.js","../node_modules/gopd/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/has-proto/index.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-tostringtag/shams.js","../node_modules/hasown/index.js","../node_modules/ieee754/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/is-arguments/index.js","../node_modules/is-callable/index.js","../node_modules/is-generator-function/index.js","../node_modules/is-typed-array/index.js","../node_modules/jmespath/jmespath.js","../node_modules/load-script/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/eq.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/possible-typed-array-names/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/querystring/decode.js","../node_modules/querystring/encode.js","../node_modules/querystring/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-player/lib/Player.js","../node_modules/react-player/lib/ReactPlayer.js","../node_modules/react-player/lib/index.js","../node_modules/react-player/lib/patterns.js","../node_modules/react-player/lib/players/index.js","../node_modules/react-player/lib/props.js","../node_modules/react-player/lib/utils.js","../node_modules/react-quill/src/index.tsx","../node_modules/react-quill/node_modules/quill/dist/quill.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/set-function-length/index.js","../node_modules/url/node_modules/punycode/punycode.js","../node_modules/url/url.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/support/types.js","../node_modules/util/util.js","../node_modules/which-typed-array/index.js","../node_modules/available-typed-arrays/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","Components/Home/HomeCarousel.jsx","Api/ApiCaller.js","Api/routes.js","Components/Home/PopularCourses.jsx","Components/Home/PopularWorkout.jsx","Components/AboutUs/AboutUs.jsx","../node_modules/clsx/dist/clsx.mjs","Components/Header/Header.jsx","Components/Footer/Footer.jsx","Components/Home/Home.jsx","Components/Courses/Courses.jsx","Components/ContactUs/ContactUs.jsx","Components/Courses/CourseDetails.jsx","../node_modules/@stripe/stripe-js/dist/index.mjs","Components/Courses/CheckoutForm.jsx","Components/Courses/WorkoutDetails.jsx","Components/Courses/CoursePayment.jsx","../node_modules/react-countdown-circle-timer/lib/index.module.js","Components/Courses/WorkoutStart.jsx","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","Components/User/AuthenticateImage.jsx","Components/User/Login.jsx","Components/User/ForgotPassword.jsx","../node_modules/src/index.tsx","Components/User/ForgotPasswordOtp.jsx","Components/User/ForgotNewPassword.jsx","Components/User/SignUp/SignUp.jsx","Components/User/SignUp/SignUpOtp.jsx","Components/User/SignUp/SignUpAccountType.jsx","Components/User/SignUp/UserSignUpProfile1.jsx","Components/User/SignUp/UserSignUpProfile2.jsx","Components/Progress Tracking/ProgressTrackingCourseOngoing.jsx","Components/Progress Tracking/ProgressTrackingCourseCompleted.jsx","Components/Progress Tracking/ProgressTrackingWorkoutOngoing.jsx","Components/Progress Tracking/ProgressTrackingWorkoutCompleted.jsx","Components/Progress Tracking/ProgressTracking.jsx","Components/Progress Tracking/ProgressTrackingCourseContent.jsx","Components/Progress Tracking/ProgressTrackingWorkoutContent.jsx","Components/Inbox/Notifications.jsx","../node_modules/emoji-mart/dist/node_modules/@swc/helpers/src/_define_property.mjs","../node_modules/emoji-mart/dist/node_modules/preact/src/constants.js","../node_modules/emoji-mart/dist/node_modules/preact/src/util.js","../node_modules/emoji-mart/dist/node_modules/preact/src/options.js","../node_modules/emoji-mart/dist/node_modules/preact/src/create-element.js","../node_modules/emoji-mart/dist/node_modules/preact/src/component.js","../node_modules/emoji-mart/dist/node_modules/preact/src/diff/children.js","../node_modules/emoji-mart/dist/node_modules/preact/src/diff/props.js","../node_modules/emoji-mart/dist/node_modules/preact/src/diff/index.js","../node_modules/emoji-mart/dist/node_modules/preact/src/render.js","../node_modules/emoji-mart/dist/node_modules/preact/src/diff/catch-error.js","../node_modules/emoji-mart/dist/node_modules/preact/jsx-runtime/src/index.js","../node_modules/emoji-mart/dist/packages/emoji-mart/src/helpers/store.ts","../node_modules/emoji-mart/dist/packages/emoji-mart/src/helpers/native-support.ts","../node_modules/emoji-mart/dist/packages/emoji-mart/src/helpers/frequently-used.ts","../node_modules/emoji-mart/dist/packages/emoji-mart-data/i18n/en.json","../node_modules/emoji-mart/dist/packages/emoji-mart/src/components/Picker/PickerProps.ts","../node_modules/emoji-mart/dist/packages/emoji-mart/src/config.ts","../node_modules/emoji-mart/dist/packages/emoji-mart/src/helpers/search-index.ts","../node_modules/emoji-mart/dist/packages/emoji-mart/src/helpers/index.ts","../node_modules/emoji-mart/dist/packages/emoji-mart/src/utils.ts","../node_modules/emoji-mart/dist/packages/emoji-mart/src/icons.tsx","../node_modules/emoji-mart/dist/packages/emoji-mart/src/components/Emoji/Emoji.tsx","../node_modules/emoji-mart/dist/packages/emoji-mart/src/components/HTMLElement/HTMLElement.ts","../node_modules/emoji-mart/dist/packages/emoji-mart/src/components/HTMLElement/ShadowElement.ts","../node_modules/emoji-mart/dist/packages/emoji-mart/src/components/Emoji/EmojiProps.ts","../node_modules/emoji-mart/dist/packages/emoji-mart/src/components/Emoji/EmojiElement.jsx","../node_modules/emoji-mart/dist/node_modules/preact/hooks/src/index.js","../node_modules/emoji-mart/dist/node_modules/preact/compat/src/util.js","../node_modules/emoji-mart/dist/node_modules/preact/compat/src/PureComponent.js","../node_modules/emoji-mart/dist/node_modules/preact/compat/src/forwardRef.js","../node_modules/emoji-mart/dist/node_modules/preact/compat/src/suspense.js","../node_modules/emoji-mart/dist/node_modules/preact/compat/src/suspense-list.js","../node_modules/emoji-mart/dist/node_modules/preact/compat/src/render.js","../node_modules/emoji-mart/dist/packages/emoji-mart/src/components/Navigation/Navigation.tsx","../node_modules/emoji-mart/dist/packages/emoji-mart/src/components/HOCs/PureInlineComponent.ts","../node_modules/emoji-mart/dist/packages/emoji-mart/src/components/Picker/Picker.tsx","../node_modules/emoji-mart/dist/packages/emoji-mart/src/components/Picker/PickerElement.tsx","../node_modules/@emoji-mart/react/dist/packages/emoji-mart-react/react.tsx","../node_modules/emoji-mart/dist/node_modules/@parcel/runtime-js/lib/bundles/runtime-1b9572f9f2947a02.js","../node_modules/engine.io-parser/build/esm/commons.js","../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../node_modules/engine.io-parser/build/esm/index.js","../node_modules/@socket.io/component-emitter/lib/esm/index.js","../node_modules/engine.io-client/build/esm/globalThis.browser.js","../node_modules/engine.io-client/build/esm/util.js","../node_modules/engine.io-client/build/esm/transport.js","../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../node_modules/engine.io-client/build/esm/contrib/yeast.js","../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../node_modules/engine.io-client/build/esm/transports/polling.js","../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../node_modules/engine.io-client/build/esm/transports/websocket.js","../node_modules/engine.io-client/build/esm/transports/index.js","../node_modules/engine.io-client/build/esm/transports/webtransport.js","../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../node_modules/engine.io-client/build/esm/socket.js","../node_modules/engine.io-client/build/esm/index.js","../node_modules/socket.io-parser/build/esm/is-binary.js","../node_modules/socket.io-parser/build/esm/binary.js","../node_modules/socket.io-parser/build/esm/index.js","../node_modules/socket.io-client/build/esm/on.js","../node_modules/socket.io-client/build/esm/socket.js","../node_modules/socket.io-client/build/esm/contrib/backo2.js","../node_modules/socket.io-client/build/esm/manager.js","../node_modules/socket.io-client/build/esm/index.js","../node_modules/socket.io-client/build/esm/url.js","Components/Context/SocketContext.js","Components/Inbox/Inbox.jsx","Components/TermsAndCondition/TermsAndCondition.jsx","Components/TermsAndCondition/PrivacyPolicy.jsx","Components/User/Profile/EditProfile.jsx","Components/CourseInstructor/InstructorSignUpProfile2.jsx","Components/WorkoutTrainer/TrainerSignUpProfile2.jsx","Components/CourseInstructor/Dashboard/InstructorSidebar.jsx","Components/CourseInstructor/Dashboard/InstructoreHeader.jsx","Components/CourseInstructor/Dashboard/InstructorHome.jsx","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/src/helpers/helpers.core.ts","../node_modules/chart.js/src/helpers/helpers.math.ts","../node_modules/chart.js/src/helpers/helpers.collection.ts","../node_modules/chart.js/src/helpers/helpers.extras.ts","../node_modules/chart.js/src/helpers/helpers.easing.ts","../node_modules/chart.js/src/helpers/helpers.color.ts","../node_modules/chart.js/src/core/core.animations.defaults.js","../node_modules/chart.js/src/helpers/helpers.intl.ts","../node_modules/chart.js/src/core/core.ticks.js","../node_modules/chart.js/src/core/core.defaults.js","../node_modules/chart.js/src/core/core.layouts.defaults.js","../node_modules/chart.js/src/core/core.scale.defaults.js","../node_modules/chart.js/src/helpers/helpers.canvas.ts","../node_modules/chart.js/src/helpers/helpers.options.ts","../node_modules/chart.js/src/helpers/helpers.config.ts","../node_modules/chart.js/src/helpers/helpers.curve.ts","../node_modules/chart.js/src/helpers/helpers.dom.ts","../node_modules/chart.js/src/helpers/helpers.interpolation.ts","../node_modules/chart.js/src/helpers/helpers.rtl.ts","../node_modules/chart.js/src/helpers/helpers.segment.js","../node_modules/chart.js/src/core/core.animator.js","../node_modules/chart.js/src/core/core.animation.js","../node_modules/chart.js/src/core/core.animations.js","../node_modules/chart.js/src/core/core.datasetController.js","../node_modules/chart.js/src/controllers/controller.bar.js","../node_modules/chart.js/src/controllers/controller.bubble.js","../node_modules/chart.js/src/controllers/controller.doughnut.js","../node_modules/chart.js/src/controllers/controller.line.js","../node_modules/chart.js/src/controllers/controller.polarArea.js","../node_modules/chart.js/src/controllers/controller.pie.js","../node_modules/chart.js/src/controllers/controller.radar.js","../node_modules/chart.js/src/controllers/controller.scatter.js","../node_modules/chart.js/src/core/core.adapters.ts","../node_modules/chart.js/src/core/core.interaction.js","../node_modules/chart.js/src/core/core.layouts.js","../node_modules/chart.js/src/platform/platform.base.js","../node_modules/chart.js/src/platform/platform.basic.js","../node_modules/chart.js/src/platform/platform.dom.js","../node_modules/chart.js/src/core/core.element.ts","../node_modules/chart.js/src/core/core.scale.autoskip.js","../node_modules/chart.js/src/core/core.scale.js","../node_modules/chart.js/src/core/core.typedRegistry.js","../node_modules/chart.js/src/core/core.registry.js","../node_modules/chart.js/src/core/core.plugins.js","../node_modules/chart.js/src/core/core.config.js","../node_modules/chart.js/src/core/core.controller.js","../node_modules/chart.js/src/platform/index.js","../node_modules/chart.js/src/elements/element.arc.ts","../node_modules/chart.js/src/elements/element.line.js","../node_modules/chart.js/src/elements/element.point.ts","../node_modules/chart.js/src/elements/element.bar.js","../node_modules/chart.js/src/plugins/plugin.colors.ts","../node_modules/chart.js/src/plugins/plugin.decimation.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.segment.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.helper.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.options.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.target.stack.js","../node_modules/chart.js/src/plugins/plugin.filler/simpleArc.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.target.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.drawing.js","../node_modules/chart.js/src/plugins/plugin.filler/index.js","../node_modules/chart.js/src/plugins/plugin.legend.js","../node_modules/chart.js/src/plugins/plugin.title.js","../node_modules/chart.js/src/plugins/plugin.subtitle.js","../node_modules/chart.js/src/plugins/plugin.tooltip.js","../node_modules/chart.js/src/scales/scale.category.js","../node_modules/chart.js/src/scales/scale.linearbase.js","../node_modules/chart.js/src/scales/scale.linear.js","../node_modules/chart.js/src/scales/scale.logarithmic.js","../node_modules/chart.js/src/scales/scale.radialLinear.js","../node_modules/chart.js/src/scales/scale.time.js","../node_modules/chart.js/src/scales/scale.timeseries.js","../node_modules/chart.js/src/index.ts","../node_modules/react-chartjs-2/src/utils.ts","../node_modules/react-chartjs-2/src/chart.tsx","../node_modules/react-chartjs-2/src/typedCharts.tsx","Components/CourseInstructor/Dashboard/InstructorProgressTracking.jsx","Components/CourseInstructor/Dashboard/InstructorSettings.jsx","Components/CourseInstructor/Dashboard/InstructorCourseDetails.jsx","Components/CourseInstructor/Dashboard/InstructorCreateCourse.jsx","Components/CourseInstructor/Dashboard/InstructorCreateCourseDetails.jsx","Components/CourseInstructor/Inbox/InstructorNotifications.jsx","Components/CourseInstructor/Inbox/InstructorInbox.jsx","Components/WorkoutTrainer/Dashboard/TrainerHome.jsx","Components/WorkoutTrainer/Dashboard/TrainerCourseDetails.jsx","Components/WorkoutTrainer/Dashboard/TrainerCreateWorkout.jsx","Components/WorkoutTrainer/Dashboard/TrainerCreateWorkoutDetails.jsx","Components/WorkoutTrainer/Dashboard/TrainerProgressTracking.jsx","Components/Progress Tracking/ProgressTrackingAssignments.jsx","Components/Progress Tracking/ProgressTrackingQuizes.jsx","Components/CourseInstructor/Dashboard/InstructorEditCourse.jsx","App.js","reportWebVitals.js","index.js"],"sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactStripe = {}, global.React));\n})(this, (function (exports, React) { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function getDefaultExportFromCjs (x) {\n \treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n }\n\n var propTypes = {exports: {}};\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var ReactPropTypesSecret_1;\n var hasRequiredReactPropTypesSecret;\n\n function requireReactPropTypesSecret() {\n if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;\n hasRequiredReactPropTypesSecret = 1;\n\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n ReactPropTypesSecret_1 = ReactPropTypesSecret;\n return ReactPropTypesSecret_1;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var factoryWithThrowingShims;\n var hasRequiredFactoryWithThrowingShims;\n\n function requireFactoryWithThrowingShims() {\n if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;\n hasRequiredFactoryWithThrowingShims = 1;\n\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n\n function emptyFunction() {}\n\n function emptyFunctionWithReset() {}\n\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n factoryWithThrowingShims = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n return factoryWithThrowingShims;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n propTypes.exports = requireFactoryWithThrowingShims()();\n }\n\n var propTypesExports = propTypes.exports;\n var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);\n\n var useAttachEvent = function useAttachEvent(element, event, cb) {\n var cbDefined = !!cb;\n var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n // Using a ref saves us from calling element.on/.off every render.\n\n React.useEffect(function () {\n cbRef.current = cb;\n }, [cb]);\n React.useEffect(function () {\n if (!cbDefined || !element) {\n return function () {};\n }\n\n var decoratedCb = function decoratedCb() {\n if (cbRef.current) {\n cbRef.current.apply(cbRef, arguments);\n }\n };\n\n element.on(event, decoratedCb);\n return function () {\n element.off(event, decoratedCb);\n };\n }, [cbDefined, event, element, cbRef]);\n };\n\n var usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n };\n\n var isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n };\n var isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n }; // We are using types to enforce the `stripe` prop in this lib,\n // but in an untyped integration `stripe` could be anything, so we need\n // to do some sanity validation to prevent type errors.\n\n var isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n };\n\n var PLAIN_OBJECT_STR = '[object Object]';\n var isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n };\n\n var extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n };\n\n var INVALID_STRIPE_ERROR$2 = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n // integration `stripe` could be anything, so we need to do some sanity\n // validation to prevent type errors.\n\n var validateStripe = function validateStripe(maybeStripe) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(errorMsg);\n };\n\n var parseStripeProp = function parseStripeProp(raw) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(function (result) {\n return validateStripe(result, errorMsg);\n })\n };\n }\n\n var stripe = validateStripe(raw, errorMsg);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n };\n\n var registerWithStripeJs = function registerWithStripeJs(stripe) {\n if (!stripe || !stripe._registerWrapper || !stripe.registerAppInfo) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"2.7.2\"\n });\n\n stripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"2.7.2\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n };\n\n var ElementsContext = /*#__PURE__*/React.createContext(null);\n ElementsContext.displayName = 'ElementsContext';\n var parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n };\n /**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\n var Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n var _React$useState = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n };\n Elements.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.object\n };\n var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\n var useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\n var ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts '); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n };\n ElementsConsumer.propTypes = {\n children: PropTypes.func.isRequired\n };\n\n var _excluded = [\"on\", \"session\"];\n var CustomCheckoutSdkContext = /*#__PURE__*/React.createContext(null);\n CustomCheckoutSdkContext.displayName = 'CustomCheckoutSdkContext';\n var parseCustomCheckoutSdkContext = function parseCustomCheckoutSdkContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find CustomCheckoutProvider context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n };\n var CustomCheckoutContext = /*#__PURE__*/React.createContext(null);\n CustomCheckoutContext.displayName = 'CustomCheckoutContext';\n var extractCustomCheckoutContextValue = function extractCustomCheckoutContextValue(customCheckoutSdk, sessionState) {\n if (!customCheckoutSdk) {\n return null;\n }\n\n customCheckoutSdk.on;\n customCheckoutSdk.session;\n var actions = _objectWithoutProperties(customCheckoutSdk, _excluded);\n\n if (!sessionState) {\n return _objectSpread2(_objectSpread2({}, actions), customCheckoutSdk.session());\n }\n\n return _objectSpread2(_objectSpread2({}, actions), sessionState);\n };\n var INVALID_STRIPE_ERROR$1 = 'Invalid prop `stripe` supplied to `CustomCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var CustomCheckoutProvider = function CustomCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR$1);\n }, [rawStripeProp]); // State used to trigger a re-render when sdk.session is updated\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n session = _React$useState2[0],\n setSession = _React$useState2[1];\n\n var _React$useState3 = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n customCheckoutSdk: null\n };\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n ctx = _React$useState4[0],\n setContext = _React$useState4[1];\n\n var safeSetContext = function safeSetContext(stripe, customCheckoutSdk) {\n setContext(function (ctx) {\n if (ctx.stripe && ctx.customCheckoutSdk) {\n return ctx;\n }\n\n return {\n stripe: stripe,\n customCheckoutSdk: customCheckoutSdk\n };\n });\n }; // Ref used to avoid calling initCustomCheckout multiple times when options changes\n\n\n var initCustomCheckoutCalledRef = React.useRef(false);\n React.useEffect(function () {\n var isMounted = true;\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted && !initCustomCheckoutCalledRef.current) {\n // Only update context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n initCustomCheckoutCalledRef.current = true;\n stripe.initCustomCheckout(options).then(function (customCheckoutSdk) {\n if (customCheckoutSdk) {\n safeSetContext(stripe, customCheckoutSdk);\n customCheckoutSdk.on('change', setSession);\n }\n });\n }\n });\n } else if (parsed.tag === 'sync' && parsed.stripe && !initCustomCheckoutCalledRef.current) {\n initCustomCheckoutCalledRef.current = true;\n parsed.stripe.initCustomCheckout(options).then(function (customCheckoutSdk) {\n if (customCheckoutSdk) {\n safeSetContext(parsed.stripe, customCheckoutSdk);\n customCheckoutSdk.on('change', setSession);\n }\n });\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options, setSession]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on CustomCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n var _prevOptions$elements, _options$elementsOpti;\n\n if (!ctx.customCheckoutSdk) {\n return;\n }\n\n if (options.clientSecret && !isUnknownObject(prevOptions) && !isEqual(options.clientSecret, prevOptions.clientSecret)) {\n console.warn('Unsupported prop change: options.client_secret is not a mutable property.');\n }\n\n var previousAppearance = prevOptions === null || prevOptions === void 0 ? void 0 : (_prevOptions$elements = prevOptions.elementsOptions) === null || _prevOptions$elements === void 0 ? void 0 : _prevOptions$elements.appearance;\n var currentAppearance = options === null || options === void 0 ? void 0 : (_options$elementsOpti = options.elementsOptions) === null || _options$elementsOpti === void 0 ? void 0 : _options$elementsOpti.appearance;\n\n if (currentAppearance && !isEqual(currentAppearance, previousAppearance)) {\n ctx.customCheckoutSdk.changeAppearance(currentAppearance);\n }\n }, [options, prevOptions, ctx.customCheckoutSdk]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n var customCheckoutContextValue = React.useMemo(function () {\n return extractCustomCheckoutContextValue(ctx.customCheckoutSdk, session);\n }, [ctx.customCheckoutSdk, session]);\n\n if (!ctx.customCheckoutSdk) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(CustomCheckoutSdkContext.Provider, {\n value: ctx\n }, /*#__PURE__*/React.createElement(CustomCheckoutContext.Provider, {\n value: customCheckoutContextValue\n }, children));\n };\n CustomCheckoutProvider.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.shape({\n clientSecret: PropTypes.string.isRequired,\n elementsOptions: PropTypes.object\n }).isRequired\n };\n var useCustomCheckoutSdkContextWithUseCase = function useCustomCheckoutSdkContextWithUseCase(useCaseString) {\n var ctx = React.useContext(CustomCheckoutSdkContext);\n return parseCustomCheckoutSdkContext(ctx, useCaseString);\n };\n var useElementsOrCustomCheckoutSdkContextWithUseCase = function useElementsOrCustomCheckoutSdkContextWithUseCase(useCaseString) {\n var customCheckoutSdkContext = React.useContext(CustomCheckoutSdkContext);\n var elementsContext = React.useContext(ElementsContext);\n\n if (customCheckoutSdkContext && elementsContext) {\n throw new Error(\"You cannot wrap the part of your app that \".concat(useCaseString, \" in both and providers.\"));\n }\n\n if (customCheckoutSdkContext) {\n return parseCustomCheckoutSdkContext(customCheckoutSdkContext, useCaseString);\n }\n\n return parseElementsContext(elementsContext, useCaseString);\n };\n var useCustomCheckout = function useCustomCheckout() {\n // ensure it's in CustomCheckoutProvider\n useCustomCheckoutSdkContextWithUseCase('calls useCustomCheckout()');\n var ctx = React.useContext(CustomCheckoutContext);\n\n if (!ctx) {\n throw new Error('Could not find CustomCheckout Context; You need to wrap the part of your app that calls useCustomCheckout() in an provider.');\n }\n\n return ctx;\n };\n\n var capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n var createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n onBlur = _ref.onBlur,\n onFocus = _ref.onFocus,\n onReady = _ref.onReady,\n onChange = _ref.onChange,\n onEscape = _ref.onEscape,\n onClick = _ref.onClick,\n onLoadError = _ref.onLoadError,\n onLoaderStart = _ref.onLoaderStart,\n onNetworksChange = _ref.onNetworksChange,\n onConfirm = _ref.onConfirm,\n onCancel = _ref.onCancel,\n onShippingAddressChange = _ref.onShippingAddressChange,\n onShippingRateChange = _ref.onShippingRateChange;\n var ctx = useElementsOrCustomCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var elements = 'elements' in ctx ? ctx.elements : null;\n var customCheckoutSdk = 'customCheckoutSdk' in ctx ? ctx.customCheckoutSdk : null;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null); // For every event where the merchant provides a callback, call element.on\n // with that callback. If the merchant ever changes the callback, removes\n // the old callback with element.off and then call element.on with the new one.\n\n useAttachEvent(element, 'blur', onBlur);\n useAttachEvent(element, 'focus', onFocus);\n useAttachEvent(element, 'escape', onEscape);\n useAttachEvent(element, 'click', onClick);\n useAttachEvent(element, 'loaderror', onLoadError);\n useAttachEvent(element, 'loaderstart', onLoaderStart);\n useAttachEvent(element, 'networkschange', onNetworksChange);\n useAttachEvent(element, 'confirm', onConfirm);\n useAttachEvent(element, 'cancel', onCancel);\n useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n useAttachEvent(element, 'change', onChange);\n var readyCallback;\n\n if (onReady) {\n if (type === 'expressCheckout') {\n // Passes through the event, which includes visible PM types\n readyCallback = onReady;\n } else {\n // For other Elements, pass through the Element itself.\n readyCallback = function readyCallback() {\n onReady(element);\n };\n }\n }\n\n useAttachEvent(element, 'ready', readyCallback);\n React.useLayoutEffect(function () {\n if (elementRef.current === null && domNode.current !== null && (elements || customCheckoutSdk)) {\n var newElement = null;\n\n if (customCheckoutSdk) {\n newElement = customCheckoutSdk.createElement(type, options);\n } else if (elements) {\n newElement = elements.create(type, options);\n } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n setElement(newElement);\n\n if (newElement) {\n newElement.mount(domNode.current);\n }\n }\n }, [elements, customCheckoutSdk, options]);\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current && typeof elementRef.current.destroy === 'function') {\n try {\n elementRef.current.destroy();\n elementRef.current = null;\n } catch (error) {// Do nothing\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n useElementsOrCustomCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onReady: PropTypes.func,\n onEscape: PropTypes.func,\n onClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoaderStart: PropTypes.func,\n onNetworksChange: PropTypes.func,\n onConfirm: PropTypes.func,\n onCancel: PropTypes.func,\n onShippingAddressChange: PropTypes.func,\n onShippingRateChange: PropTypes.func,\n options: PropTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n };\n\n var isServer = typeof window === 'undefined';\n\n var EmbeddedCheckoutContext = /*#__PURE__*/React.createContext(null);\n EmbeddedCheckoutContext.displayName = 'EmbeddedCheckoutProviderContext';\n var useEmbeddedCheckoutContext = function useEmbeddedCheckoutContext() {\n var ctx = React.useContext(EmbeddedCheckoutContext);\n\n if (!ctx) {\n throw new Error(' must be used within ');\n }\n\n return ctx;\n };\n var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var EmbeddedCheckoutProvider = function EmbeddedCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR);\n }, [rawStripeProp]);\n var embeddedCheckoutPromise = React.useRef(null);\n var loadedStripe = React.useRef(null);\n\n var _React$useState = React.useState({\n embeddedCheckout: null\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n // Don't support any ctx updates once embeddedCheckout or stripe is set.\n if (loadedStripe.current || embeddedCheckoutPromise.current) {\n return;\n }\n\n var setStripeAndInitEmbeddedCheckout = function setStripeAndInitEmbeddedCheckout(stripe) {\n if (loadedStripe.current || embeddedCheckoutPromise.current) return;\n loadedStripe.current = stripe;\n embeddedCheckoutPromise.current = loadedStripe.current.initEmbeddedCheckout(options).then(function (embeddedCheckout) {\n setContext({\n embeddedCheckout: embeddedCheckout\n });\n });\n }; // For an async stripePromise, store it once resolved\n\n\n if (parsed.tag === 'async' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe) {\n setStripeAndInitEmbeddedCheckout(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n // Or, handle a sync stripe instance going from null -> populated\n setStripeAndInitEmbeddedCheckout(parsed.stripe);\n }\n }, [parsed, options, ctx, loadedStripe]);\n React.useEffect(function () {\n // cleanup on unmount\n return function () {\n // If embedded checkout is fully initialized, destroy it.\n if (ctx.embeddedCheckout) {\n embeddedCheckoutPromise.current = null;\n ctx.embeddedCheckout.destroy();\n } else if (embeddedCheckoutPromise.current) {\n // If embedded checkout is still initializing, destroy it once\n // it's done. This could be caused by unmounting very quickly\n // after mounting.\n embeddedCheckoutPromise.current.then(function () {\n embeddedCheckoutPromise.current = null;\n\n if (ctx.embeddedCheckout) {\n ctx.embeddedCheckout.destroy();\n }\n });\n }\n };\n }, [ctx.embeddedCheckout]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(loadedStripe);\n }, [loadedStripe]); // Warn on changes to stripe prop.\n // The stripe prop value can only go from null to non-null once and\n // can't be changed after that.\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Warn on changes to options.\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (prevOptions == null) {\n return;\n }\n\n if (options == null) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.');\n return;\n }\n\n if (options.clientSecret === undefined && options.fetchClientSecret === undefined) {\n console.warn('Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`.');\n }\n\n if (prevOptions.clientSecret != null && options.clientSecret !== prevOptions.clientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.fetchClientSecret != null && options.fetchClientSecret !== prevOptions.fetchClientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.onComplete != null && options.onComplete !== prevOptions.onComplete) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it.');\n }\n }, [prevOptions, options]);\n return /*#__PURE__*/React.createElement(EmbeddedCheckoutContext.Provider, {\n value: ctx\n }, children);\n };\n\n var EmbeddedCheckoutClientElement = function EmbeddedCheckoutClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className;\n\n var _useEmbeddedCheckoutC = useEmbeddedCheckoutContext(),\n embeddedCheckout = _useEmbeddedCheckoutC.embeddedCheckout;\n\n var isMounted = React.useRef(false);\n var domNode = React.useRef(null);\n React.useLayoutEffect(function () {\n if (!isMounted.current && embeddedCheckout && domNode.current !== null) {\n embeddedCheckout.mount(domNode.current);\n isMounted.current = true;\n } // Clean up on unmount\n\n\n return function () {\n if (isMounted.current && embeddedCheckout) {\n try {\n embeddedCheckout.unmount();\n isMounted.current = false;\n } catch (e) {// Do nothing.\n // Parent effects are destroyed before child effects, so\n // in cases where both the EmbeddedCheckoutProvider and\n // the EmbeddedCheckout component are removed at the same\n // time, the embeddedCheckout instance will be destroyed,\n // which causes an error when calling unmount.\n }\n }\n };\n }, [embeddedCheckout]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domNode,\n id: id,\n className: className\n });\n }; // Only render the wrapper in a server environment.\n\n\n var EmbeddedCheckoutServerElement = function EmbeddedCheckoutServerElement(_ref2) {\n var id = _ref2.id,\n className = _ref2.className;\n // Validate that we are in the right context by calling useEmbeddedCheckoutContext.\n useEmbeddedCheckoutContext();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var EmbeddedCheckout = isServer ? EmbeddedCheckoutServerElement : EmbeddedCheckoutClientElement;\n\n /**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\n var useStripe = function useStripe() {\n var _useElementsOrCustomC = useElementsOrCustomCheckoutSdkContextWithUseCase('calls useStripe()'),\n stripe = _useElementsOrCustomC.stripe;\n\n return stripe;\n };\n\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardElement = createElementComponent('card', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardNumberElement = createElementComponent('cardNumber', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardCvcElement = createElementComponent('cardCvc', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var FpxBankElement = createElementComponent('fpxBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IbanElement = createElementComponent('iban', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IdealBankElement = createElementComponent('idealBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var P24BankElement = createElementComponent('p24Bank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var EpsBankElement = createElementComponent('epsBank', isServer);\n var PaymentElement = createElementComponent('payment', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ExpressCheckoutElement = createElementComponent('expressCheckout', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AddressElement = createElementComponent('address', isServer);\n /**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n exports.AddressElement = AddressElement;\n exports.AffirmMessageElement = AffirmMessageElement;\n exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n exports.AuBankAccountElement = AuBankAccountElement;\n exports.CardCvcElement = CardCvcElement;\n exports.CardElement = CardElement;\n exports.CardExpiryElement = CardExpiryElement;\n exports.CardNumberElement = CardNumberElement;\n exports.CustomCheckoutProvider = CustomCheckoutProvider;\n exports.Elements = Elements;\n exports.ElementsConsumer = ElementsConsumer;\n exports.EmbeddedCheckout = EmbeddedCheckout;\n exports.EmbeddedCheckoutProvider = EmbeddedCheckoutProvider;\n exports.EpsBankElement = EpsBankElement;\n exports.ExpressCheckoutElement = ExpressCheckoutElement;\n exports.FpxBankElement = FpxBankElement;\n exports.IbanElement = IbanElement;\n exports.IdealBankElement = IdealBankElement;\n exports.LinkAuthenticationElement = LinkAuthenticationElement;\n exports.P24BankElement = P24BankElement;\n exports.PaymentElement = PaymentElement;\n exports.PaymentMethodMessagingElement = PaymentMethodMessagingElement;\n exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n exports.ShippingAddressElement = ShippingAddressElement;\n exports.useCustomCheckout = useCustomCheckout;\n exports.useElements = useElements;\n exports.useStripe = useStripe;\n\n}));\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['acm'] = {};\nAWS.ACM = Service.defineService('acm', ['2015-12-08']);\nObject.defineProperty(apiLoader.services['acm'], '2015-12-08', {\n get: function get() {\n var model = require('../apis/acm-2015-12-08.min.json');\n model.paginators = require('../apis/acm-2015-12-08.paginators.json').pagination;\n model.waiters = require('../apis/acm-2015-12-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ACM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['amp'] = {};\nAWS.Amp = Service.defineService('amp', ['2020-08-01']);\nObject.defineProperty(apiLoader.services['amp'], '2020-08-01', {\n get: function get() {\n var model = require('../apis/amp-2020-08-01.min.json');\n model.paginators = require('../apis/amp-2020-08-01.paginators.json').pagination;\n model.waiters = require('../apis/amp-2020-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Amp;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['apigateway'] = {};\nAWS.APIGateway = Service.defineService('apigateway', ['2015-07-09']);\nrequire('../lib/services/apigateway');\nObject.defineProperty(apiLoader.services['apigateway'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/apigateway-2015-07-09.min.json');\n model.paginators = require('../apis/apigateway-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.APIGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['applicationautoscaling'] = {};\nAWS.ApplicationAutoScaling = Service.defineService('applicationautoscaling', ['2016-02-06']);\nObject.defineProperty(apiLoader.services['applicationautoscaling'], '2016-02-06', {\n get: function get() {\n var model = require('../apis/application-autoscaling-2016-02-06.min.json');\n model.paginators = require('../apis/application-autoscaling-2016-02-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ApplicationAutoScaling;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['athena'] = {};\nAWS.Athena = Service.defineService('athena', ['2017-05-18']);\nObject.defineProperty(apiLoader.services['athena'], '2017-05-18', {\n get: function get() {\n var model = require('../apis/athena-2017-05-18.min.json');\n model.paginators = require('../apis/athena-2017-05-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Athena;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['autoscaling'] = {};\nAWS.AutoScaling = Service.defineService('autoscaling', ['2011-01-01']);\nObject.defineProperty(apiLoader.services['autoscaling'], '2011-01-01', {\n get: function get() {\n var model = require('../apis/autoscaling-2011-01-01.min.json');\n model.paginators = require('../apis/autoscaling-2011-01-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.AutoScaling;\n","require('../lib/node_loader');\nmodule.exports = {\n ACM: require('./acm'),\n APIGateway: require('./apigateway'),\n ApplicationAutoScaling: require('./applicationautoscaling'),\n AutoScaling: require('./autoscaling'),\n CloudFormation: require('./cloudformation'),\n CloudFront: require('./cloudfront'),\n CloudHSM: require('./cloudhsm'),\n CloudTrail: require('./cloudtrail'),\n CloudWatch: require('./cloudwatch'),\n CloudWatchEvents: require('./cloudwatchevents'),\n CloudWatchLogs: require('./cloudwatchlogs'),\n CodeBuild: require('./codebuild'),\n CodeCommit: require('./codecommit'),\n CodeDeploy: require('./codedeploy'),\n CodePipeline: require('./codepipeline'),\n CognitoIdentity: require('./cognitoidentity'),\n CognitoIdentityServiceProvider: require('./cognitoidentityserviceprovider'),\n CognitoSync: require('./cognitosync'),\n ConfigService: require('./configservice'),\n CUR: require('./cur'),\n DeviceFarm: require('./devicefarm'),\n DirectConnect: require('./directconnect'),\n DynamoDB: require('./dynamodb'),\n DynamoDBStreams: require('./dynamodbstreams'),\n EC2: require('./ec2'),\n ECR: require('./ecr'),\n ECS: require('./ecs'),\n EFS: require('./efs'),\n ElastiCache: require('./elasticache'),\n ElasticBeanstalk: require('./elasticbeanstalk'),\n ELB: require('./elb'),\n ELBv2: require('./elbv2'),\n EMR: require('./emr'),\n ElasticTranscoder: require('./elastictranscoder'),\n Firehose: require('./firehose'),\n GameLift: require('./gamelift'),\n IAM: require('./iam'),\n Inspector: require('./inspector'),\n Iot: require('./iot'),\n IotData: require('./iotdata'),\n Kinesis: require('./kinesis'),\n KMS: require('./kms'),\n Lambda: require('./lambda'),\n LexRuntime: require('./lexruntime'),\n MachineLearning: require('./machinelearning'),\n MarketplaceCommerceAnalytics: require('./marketplacecommerceanalytics'),\n MTurk: require('./mturk'),\n MobileAnalytics: require('./mobileanalytics'),\n OpsWorks: require('./opsworks'),\n Polly: require('./polly'),\n RDS: require('./rds'),\n Redshift: require('./redshift'),\n Rekognition: require('./rekognition'),\n Route53: require('./route53'),\n Route53Domains: require('./route53domains'),\n S3: require('./s3'),\n ServiceCatalog: require('./servicecatalog'),\n SES: require('./ses'),\n SNS: require('./sns'),\n SQS: require('./sqs'),\n SSM: require('./ssm'),\n StorageGateway: require('./storagegateway'),\n STS: require('./sts'),\n XRay: require('./xray'),\n WAF: require('./waf'),\n WorkDocs: require('./workdocs'),\n LexModelBuildingService: require('./lexmodelbuildingservice'),\n Athena: require('./athena'),\n CloudHSMV2: require('./cloudhsmv2'),\n Pricing: require('./pricing'),\n CostExplorer: require('./costexplorer'),\n MediaStoreData: require('./mediastoredata'),\n Comprehend: require('./comprehend'),\n KinesisVideoArchivedMedia: require('./kinesisvideoarchivedmedia'),\n KinesisVideoMedia: require('./kinesisvideomedia'),\n KinesisVideo: require('./kinesisvideo'),\n Translate: require('./translate'),\n ResourceGroups: require('./resourcegroups'),\n Connect: require('./connect'),\n SecretsManager: require('./secretsmanager'),\n IoTAnalytics: require('./iotanalytics'),\n ComprehendMedical: require('./comprehendmedical'),\n Personalize: require('./personalize'),\n PersonalizeEvents: require('./personalizeevents'),\n PersonalizeRuntime: require('./personalizeruntime'),\n ForecastService: require('./forecastservice'),\n ForecastQueryService: require('./forecastqueryservice'),\n MarketplaceCatalog: require('./marketplacecatalog'),\n KinesisVideoSignalingChannels: require('./kinesisvideosignalingchannels'),\n Amp: require('./amp'),\n Location: require('./location'),\n LexRuntimeV2: require('./lexruntimev2')\n};","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudformation'] = {};\nAWS.CloudFormation = Service.defineService('cloudformation', ['2010-05-15']);\nObject.defineProperty(apiLoader.services['cloudformation'], '2010-05-15', {\n get: function get() {\n var model = require('../apis/cloudformation-2010-05-15.min.json');\n model.paginators = require('../apis/cloudformation-2010-05-15.paginators.json').pagination;\n model.waiters = require('../apis/cloudformation-2010-05-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFormation;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudfront'] = {};\nAWS.CloudFront = Service.defineService('cloudfront', ['2013-05-12*', '2013-11-11*', '2014-05-31*', '2014-10-21*', '2014-11-06*', '2015-04-17*', '2015-07-27*', '2015-09-17*', '2016-01-13*', '2016-01-28*', '2016-08-01*', '2016-08-20*', '2016-09-07*', '2016-09-29*', '2016-11-25', '2016-11-25*', '2017-03-25', '2017-03-25*', '2017-10-30', '2017-10-30*', '2018-06-18', '2018-06-18*', '2018-11-05', '2018-11-05*', '2019-03-26', '2019-03-26*', '2020-05-31']);\nrequire('../lib/services/cloudfront');\nObject.defineProperty(apiLoader.services['cloudfront'], '2016-11-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2016-11-25.min.json');\n model.paginators = require('../apis/cloudfront-2016-11-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2016-11-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-03-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-03-25.min.json');\n model.paginators = require('../apis/cloudfront-2017-03-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-03-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-10-30', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-10-30.min.json');\n model.paginators = require('../apis/cloudfront-2017-10-30.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-10-30.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-06-18', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-06-18.min.json');\n model.paginators = require('../apis/cloudfront-2018-06-18.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-06-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-11-05', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-11-05.min.json');\n model.paginators = require('../apis/cloudfront-2018-11-05.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-11-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2019-03-26', {\n get: function get() {\n var model = require('../apis/cloudfront-2019-03-26.min.json');\n model.paginators = require('../apis/cloudfront-2019-03-26.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2019-03-26.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2020-05-31', {\n get: function get() {\n var model = require('../apis/cloudfront-2020-05-31.min.json');\n model.paginators = require('../apis/cloudfront-2020-05-31.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2020-05-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFront;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsm'] = {};\nAWS.CloudHSM = Service.defineService('cloudhsm', ['2014-05-30']);\nObject.defineProperty(apiLoader.services['cloudhsm'], '2014-05-30', {\n get: function get() {\n var model = require('../apis/cloudhsm-2014-05-30.min.json');\n model.paginators = require('../apis/cloudhsm-2014-05-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsmv2'] = {};\nAWS.CloudHSMV2 = Service.defineService('cloudhsmv2', ['2017-04-28']);\nObject.defineProperty(apiLoader.services['cloudhsmv2'], '2017-04-28', {\n get: function get() {\n var model = require('../apis/cloudhsmv2-2017-04-28.min.json');\n model.paginators = require('../apis/cloudhsmv2-2017-04-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSMV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudtrail'] = {};\nAWS.CloudTrail = Service.defineService('cloudtrail', ['2013-11-01']);\nObject.defineProperty(apiLoader.services['cloudtrail'], '2013-11-01', {\n get: function get() {\n var model = require('../apis/cloudtrail-2013-11-01.min.json');\n model.paginators = require('../apis/cloudtrail-2013-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudTrail;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatch'] = {};\nAWS.CloudWatch = Service.defineService('cloudwatch', ['2010-08-01']);\nObject.defineProperty(apiLoader.services['cloudwatch'], '2010-08-01', {\n get: function get() {\n var model = require('../apis/monitoring-2010-08-01.min.json');\n model.paginators = require('../apis/monitoring-2010-08-01.paginators.json').pagination;\n model.waiters = require('../apis/monitoring-2010-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatch;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchevents'] = {};\nAWS.CloudWatchEvents = Service.defineService('cloudwatchevents', ['2014-02-03*', '2015-10-07']);\nObject.defineProperty(apiLoader.services['cloudwatchevents'], '2015-10-07', {\n get: function get() {\n var model = require('../apis/events-2015-10-07.min.json');\n model.paginators = require('../apis/events-2015-10-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchlogs'] = {};\nAWS.CloudWatchLogs = Service.defineService('cloudwatchlogs', ['2014-03-28']);\nObject.defineProperty(apiLoader.services['cloudwatchlogs'], '2014-03-28', {\n get: function get() {\n var model = require('../apis/logs-2014-03-28.min.json');\n model.paginators = require('../apis/logs-2014-03-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchLogs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codebuild'] = {};\nAWS.CodeBuild = Service.defineService('codebuild', ['2016-10-06']);\nObject.defineProperty(apiLoader.services['codebuild'], '2016-10-06', {\n get: function get() {\n var model = require('../apis/codebuild-2016-10-06.min.json');\n model.paginators = require('../apis/codebuild-2016-10-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeBuild;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codecommit'] = {};\nAWS.CodeCommit = Service.defineService('codecommit', ['2015-04-13']);\nObject.defineProperty(apiLoader.services['codecommit'], '2015-04-13', {\n get: function get() {\n var model = require('../apis/codecommit-2015-04-13.min.json');\n model.paginators = require('../apis/codecommit-2015-04-13.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeCommit;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codedeploy'] = {};\nAWS.CodeDeploy = Service.defineService('codedeploy', ['2014-10-06']);\nObject.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', {\n get: function get() {\n var model = require('../apis/codedeploy-2014-10-06.min.json');\n model.paginators = require('../apis/codedeploy-2014-10-06.paginators.json').pagination;\n model.waiters = require('../apis/codedeploy-2014-10-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeDeploy;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codepipeline'] = {};\nAWS.CodePipeline = Service.defineService('codepipeline', ['2015-07-09']);\nObject.defineProperty(apiLoader.services['codepipeline'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/codepipeline-2015-07-09.min.json');\n model.paginators = require('../apis/codepipeline-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodePipeline;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentity'] = {};\nAWS.CognitoIdentity = Service.defineService('cognitoidentity', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitoidentity'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-identity-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-identity-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentity;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentityserviceprovider'] = {};\nAWS.CognitoIdentityServiceProvider = Service.defineService('cognitoidentityserviceprovider', ['2016-04-18']);\nObject.defineProperty(apiLoader.services['cognitoidentityserviceprovider'], '2016-04-18', {\n get: function get() {\n var model = require('../apis/cognito-idp-2016-04-18.min.json');\n model.paginators = require('../apis/cognito-idp-2016-04-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentityServiceProvider;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitosync'] = {};\nAWS.CognitoSync = Service.defineService('cognitosync', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitosync'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-sync-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-sync-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoSync;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehend'] = {};\nAWS.Comprehend = Service.defineService('comprehend', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['comprehend'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/comprehend-2017-11-27.min.json');\n model.paginators = require('../apis/comprehend-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Comprehend;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehendmedical'] = {};\nAWS.ComprehendMedical = Service.defineService('comprehendmedical', ['2018-10-30']);\nObject.defineProperty(apiLoader.services['comprehendmedical'], '2018-10-30', {\n get: function get() {\n var model = require('../apis/comprehendmedical-2018-10-30.min.json');\n model.paginators = require('../apis/comprehendmedical-2018-10-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ComprehendMedical;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['configservice'] = {};\nAWS.ConfigService = Service.defineService('configservice', ['2014-11-12']);\nObject.defineProperty(apiLoader.services['configservice'], '2014-11-12', {\n get: function get() {\n var model = require('../apis/config-2014-11-12.min.json');\n model.paginators = require('../apis/config-2014-11-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ConfigService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['connect'] = {};\nAWS.Connect = Service.defineService('connect', ['2017-08-08']);\nObject.defineProperty(apiLoader.services['connect'], '2017-08-08', {\n get: function get() {\n var model = require('../apis/connect-2017-08-08.min.json');\n model.paginators = require('../apis/connect-2017-08-08.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Connect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['costexplorer'] = {};\nAWS.CostExplorer = Service.defineService('costexplorer', ['2017-10-25']);\nObject.defineProperty(apiLoader.services['costexplorer'], '2017-10-25', {\n get: function get() {\n var model = require('../apis/ce-2017-10-25.min.json');\n model.paginators = require('../apis/ce-2017-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CostExplorer;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cur'] = {};\nAWS.CUR = Service.defineService('cur', ['2017-01-06']);\nObject.defineProperty(apiLoader.services['cur'], '2017-01-06', {\n get: function get() {\n var model = require('../apis/cur-2017-01-06.min.json');\n model.paginators = require('../apis/cur-2017-01-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CUR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['devicefarm'] = {};\nAWS.DeviceFarm = Service.defineService('devicefarm', ['2015-06-23']);\nObject.defineProperty(apiLoader.services['devicefarm'], '2015-06-23', {\n get: function get() {\n var model = require('../apis/devicefarm-2015-06-23.min.json');\n model.paginators = require('../apis/devicefarm-2015-06-23.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DeviceFarm;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['directconnect'] = {};\nAWS.DirectConnect = Service.defineService('directconnect', ['2012-10-25']);\nObject.defineProperty(apiLoader.services['directconnect'], '2012-10-25', {\n get: function get() {\n var model = require('../apis/directconnect-2012-10-25.min.json');\n model.paginators = require('../apis/directconnect-2012-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DirectConnect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodb'] = {};\nAWS.DynamoDB = Service.defineService('dynamodb', ['2011-12-05', '2012-08-10']);\nrequire('../lib/services/dynamodb');\nObject.defineProperty(apiLoader.services['dynamodb'], '2011-12-05', {\n get: function get() {\n var model = require('../apis/dynamodb-2011-12-05.min.json');\n model.paginators = require('../apis/dynamodb-2011-12-05.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2011-12-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['dynamodb'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/dynamodb-2012-08-10.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2012-08-10.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodbstreams'] = {};\nAWS.DynamoDBStreams = Service.defineService('dynamodbstreams', ['2012-08-10']);\nObject.defineProperty(apiLoader.services['dynamodbstreams'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/streams.dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/streams.dynamodb-2012-08-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDBStreams;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ec2'] = {};\nAWS.EC2 = Service.defineService('ec2', ['2013-06-15*', '2013-10-15*', '2014-02-01*', '2014-05-01*', '2014-06-15*', '2014-09-01*', '2014-10-01*', '2015-03-01*', '2015-04-15*', '2015-10-01*', '2016-04-01*', '2016-09-15*', '2016-11-15']);\nrequire('../lib/services/ec2');\nObject.defineProperty(apiLoader.services['ec2'], '2016-11-15', {\n get: function get() {\n var model = require('../apis/ec2-2016-11-15.min.json');\n model.paginators = require('../apis/ec2-2016-11-15.paginators.json').pagination;\n model.waiters = require('../apis/ec2-2016-11-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EC2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecr'] = {};\nAWS.ECR = Service.defineService('ecr', ['2015-09-21']);\nObject.defineProperty(apiLoader.services['ecr'], '2015-09-21', {\n get: function get() {\n var model = require('../apis/ecr-2015-09-21.min.json');\n model.paginators = require('../apis/ecr-2015-09-21.paginators.json').pagination;\n model.waiters = require('../apis/ecr-2015-09-21.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecs'] = {};\nAWS.ECS = Service.defineService('ecs', ['2014-11-13']);\nObject.defineProperty(apiLoader.services['ecs'], '2014-11-13', {\n get: function get() {\n var model = require('../apis/ecs-2014-11-13.min.json');\n model.paginators = require('../apis/ecs-2014-11-13.paginators.json').pagination;\n model.waiters = require('../apis/ecs-2014-11-13.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['efs'] = {};\nAWS.EFS = Service.defineService('efs', ['2015-02-01']);\nObject.defineProperty(apiLoader.services['efs'], '2015-02-01', {\n get: function get() {\n var model = require('../apis/elasticfilesystem-2015-02-01.min.json');\n model.paginators = require('../apis/elasticfilesystem-2015-02-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EFS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticache'] = {};\nAWS.ElastiCache = Service.defineService('elasticache', ['2012-11-15*', '2014-03-24*', '2014-07-15*', '2014-09-30*', '2015-02-02']);\nObject.defineProperty(apiLoader.services['elasticache'], '2015-02-02', {\n get: function get() {\n var model = require('../apis/elasticache-2015-02-02.min.json');\n model.paginators = require('../apis/elasticache-2015-02-02.paginators.json').pagination;\n model.waiters = require('../apis/elasticache-2015-02-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElastiCache;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticbeanstalk'] = {};\nAWS.ElasticBeanstalk = Service.defineService('elasticbeanstalk', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['elasticbeanstalk'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/elasticbeanstalk-2010-12-01.min.json');\n model.paginators = require('../apis/elasticbeanstalk-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticbeanstalk-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticBeanstalk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elastictranscoder'] = {};\nAWS.ElasticTranscoder = Service.defineService('elastictranscoder', ['2012-09-25']);\nObject.defineProperty(apiLoader.services['elastictranscoder'], '2012-09-25', {\n get: function get() {\n var model = require('../apis/elastictranscoder-2012-09-25.min.json');\n model.paginators = require('../apis/elastictranscoder-2012-09-25.paginators.json').pagination;\n model.waiters = require('../apis/elastictranscoder-2012-09-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticTranscoder;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elb'] = {};\nAWS.ELB = Service.defineService('elb', ['2012-06-01']);\nObject.defineProperty(apiLoader.services['elb'], '2012-06-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancing-2012-06-01.min.json');\n model.paginators = require('../apis/elasticloadbalancing-2012-06-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancing-2012-06-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elbv2'] = {};\nAWS.ELBv2 = Service.defineService('elbv2', ['2015-12-01']);\nObject.defineProperty(apiLoader.services['elbv2'], '2015-12-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancingv2-2015-12-01.min.json');\n model.paginators = require('../apis/elasticloadbalancingv2-2015-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancingv2-2015-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELBv2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['emr'] = {};\nAWS.EMR = Service.defineService('emr', ['2009-03-31']);\nObject.defineProperty(apiLoader.services['emr'], '2009-03-31', {\n get: function get() {\n var model = require('../apis/elasticmapreduce-2009-03-31.min.json');\n model.paginators = require('../apis/elasticmapreduce-2009-03-31.paginators.json').pagination;\n model.waiters = require('../apis/elasticmapreduce-2009-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EMR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['firehose'] = {};\nAWS.Firehose = Service.defineService('firehose', ['2015-08-04']);\nObject.defineProperty(apiLoader.services['firehose'], '2015-08-04', {\n get: function get() {\n var model = require('../apis/firehose-2015-08-04.min.json');\n model.paginators = require('../apis/firehose-2015-08-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Firehose;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastqueryservice'] = {};\nAWS.ForecastQueryService = Service.defineService('forecastqueryservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastqueryservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecastquery-2018-06-26.min.json');\n model.paginators = require('../apis/forecastquery-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastQueryService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastservice'] = {};\nAWS.ForecastService = Service.defineService('forecastservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecast-2018-06-26.min.json');\n model.paginators = require('../apis/forecast-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['gamelift'] = {};\nAWS.GameLift = Service.defineService('gamelift', ['2015-10-01']);\nObject.defineProperty(apiLoader.services['gamelift'], '2015-10-01', {\n get: function get() {\n var model = require('../apis/gamelift-2015-10-01.min.json');\n model.paginators = require('../apis/gamelift-2015-10-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.GameLift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iam'] = {};\nAWS.IAM = Service.defineService('iam', ['2010-05-08']);\nObject.defineProperty(apiLoader.services['iam'], '2010-05-08', {\n get: function get() {\n var model = require('../apis/iam-2010-05-08.min.json');\n model.paginators = require('../apis/iam-2010-05-08.paginators.json').pagination;\n model.waiters = require('../apis/iam-2010-05-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IAM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['inspector'] = {};\nAWS.Inspector = Service.defineService('inspector', ['2015-08-18*', '2016-02-16']);\nObject.defineProperty(apiLoader.services['inspector'], '2016-02-16', {\n get: function get() {\n var model = require('../apis/inspector-2016-02-16.min.json');\n model.paginators = require('../apis/inspector-2016-02-16.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Inspector;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iot'] = {};\nAWS.Iot = Service.defineService('iot', ['2015-05-28']);\nObject.defineProperty(apiLoader.services['iot'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-2015-05-28.min.json');\n model.paginators = require('../apis/iot-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Iot;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotanalytics'] = {};\nAWS.IoTAnalytics = Service.defineService('iotanalytics', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['iotanalytics'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/iotanalytics-2017-11-27.min.json');\n model.paginators = require('../apis/iotanalytics-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IoTAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotdata'] = {};\nAWS.IotData = Service.defineService('iotdata', ['2015-05-28']);\nrequire('../lib/services/iotdata');\nObject.defineProperty(apiLoader.services['iotdata'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-data-2015-05-28.min.json');\n model.paginators = require('../apis/iot-data-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IotData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesis'] = {};\nAWS.Kinesis = Service.defineService('kinesis', ['2013-12-02']);\nObject.defineProperty(apiLoader.services['kinesis'], '2013-12-02', {\n get: function get() {\n var model = require('../apis/kinesis-2013-12-02.min.json');\n model.paginators = require('../apis/kinesis-2013-12-02.paginators.json').pagination;\n model.waiters = require('../apis/kinesis-2013-12-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Kinesis;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideo'] = {};\nAWS.KinesisVideo = Service.defineService('kinesisvideo', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideo'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesisvideo-2017-09-30.min.json');\n model.paginators = require('../apis/kinesisvideo-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideo;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideoarchivedmedia'] = {};\nAWS.KinesisVideoArchivedMedia = Service.defineService('kinesisvideoarchivedmedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideoarchivedmedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-archived-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-archived-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoArchivedMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideomedia'] = {};\nAWS.KinesisVideoMedia = Service.defineService('kinesisvideomedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideomedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideosignalingchannels'] = {};\nAWS.KinesisVideoSignalingChannels = Service.defineService('kinesisvideosignalingchannels', ['2019-12-04']);\nObject.defineProperty(apiLoader.services['kinesisvideosignalingchannels'], '2019-12-04', {\n get: function get() {\n var model = require('../apis/kinesis-video-signaling-2019-12-04.min.json');\n model.paginators = require('../apis/kinesis-video-signaling-2019-12-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoSignalingChannels;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kms'] = {};\nAWS.KMS = Service.defineService('kms', ['2014-11-01']);\nObject.defineProperty(apiLoader.services['kms'], '2014-11-01', {\n get: function get() {\n var model = require('../apis/kms-2014-11-01.min.json');\n model.paginators = require('../apis/kms-2014-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KMS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lambda'] = {};\nAWS.Lambda = Service.defineService('lambda', ['2014-11-11', '2015-03-31']);\nrequire('../lib/services/lambda');\nObject.defineProperty(apiLoader.services['lambda'], '2014-11-11', {\n get: function get() {\n var model = require('../apis/lambda-2014-11-11.min.json');\n model.paginators = require('../apis/lambda-2014-11-11.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['lambda'], '2015-03-31', {\n get: function get() {\n var model = require('../apis/lambda-2015-03-31.min.json');\n model.paginators = require('../apis/lambda-2015-03-31.paginators.json').pagination;\n model.waiters = require('../apis/lambda-2015-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Lambda;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexmodelbuildingservice'] = {};\nAWS.LexModelBuildingService = Service.defineService('lexmodelbuildingservice', ['2017-04-19']);\nObject.defineProperty(apiLoader.services['lexmodelbuildingservice'], '2017-04-19', {\n get: function get() {\n var model = require('../apis/lex-models-2017-04-19.min.json');\n model.paginators = require('../apis/lex-models-2017-04-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexModelBuildingService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntime'] = {};\nAWS.LexRuntime = Service.defineService('lexruntime', ['2016-11-28']);\nObject.defineProperty(apiLoader.services['lexruntime'], '2016-11-28', {\n get: function get() {\n var model = require('../apis/runtime.lex-2016-11-28.min.json');\n model.paginators = require('../apis/runtime.lex-2016-11-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntimev2'] = {};\nAWS.LexRuntimeV2 = Service.defineService('lexruntimev2', ['2020-08-07']);\nObject.defineProperty(apiLoader.services['lexruntimev2'], '2020-08-07', {\n get: function get() {\n var model = require('../apis/runtime.lex.v2-2020-08-07.min.json');\n model.paginators = require('../apis/runtime.lex.v2-2020-08-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntimeV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['location'] = {};\nAWS.Location = Service.defineService('location', ['2020-11-19']);\nObject.defineProperty(apiLoader.services['location'], '2020-11-19', {\n get: function get() {\n var model = require('../apis/location-2020-11-19.min.json');\n model.paginators = require('../apis/location-2020-11-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Location;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['machinelearning'] = {};\nAWS.MachineLearning = Service.defineService('machinelearning', ['2014-12-12']);\nrequire('../lib/services/machinelearning');\nObject.defineProperty(apiLoader.services['machinelearning'], '2014-12-12', {\n get: function get() {\n var model = require('../apis/machinelearning-2014-12-12.min.json');\n model.paginators = require('../apis/machinelearning-2014-12-12.paginators.json').pagination;\n model.waiters = require('../apis/machinelearning-2014-12-12.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MachineLearning;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecatalog'] = {};\nAWS.MarketplaceCatalog = Service.defineService('marketplacecatalog', ['2018-09-17']);\nObject.defineProperty(apiLoader.services['marketplacecatalog'], '2018-09-17', {\n get: function get() {\n var model = require('../apis/marketplace-catalog-2018-09-17.min.json');\n model.paginators = require('../apis/marketplace-catalog-2018-09-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecommerceanalytics'] = {};\nAWS.MarketplaceCommerceAnalytics = Service.defineService('marketplacecommerceanalytics', ['2015-07-01']);\nObject.defineProperty(apiLoader.services['marketplacecommerceanalytics'], '2015-07-01', {\n get: function get() {\n var model = require('../apis/marketplacecommerceanalytics-2015-07-01.min.json');\n model.paginators = require('../apis/marketplacecommerceanalytics-2015-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCommerceAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mediastoredata'] = {};\nAWS.MediaStoreData = Service.defineService('mediastoredata', ['2017-09-01']);\nObject.defineProperty(apiLoader.services['mediastoredata'], '2017-09-01', {\n get: function get() {\n var model = require('../apis/mediastore-data-2017-09-01.min.json');\n model.paginators = require('../apis/mediastore-data-2017-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MediaStoreData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mobileanalytics'] = {};\nAWS.MobileAnalytics = Service.defineService('mobileanalytics', ['2014-06-05']);\nObject.defineProperty(apiLoader.services['mobileanalytics'], '2014-06-05', {\n get: function get() {\n var model = require('../apis/mobileanalytics-2014-06-05.min.json');\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MobileAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mturk'] = {};\nAWS.MTurk = Service.defineService('mturk', ['2017-01-17']);\nObject.defineProperty(apiLoader.services['mturk'], '2017-01-17', {\n get: function get() {\n var model = require('../apis/mturk-requester-2017-01-17.min.json');\n model.paginators = require('../apis/mturk-requester-2017-01-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MTurk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['opsworks'] = {};\nAWS.OpsWorks = Service.defineService('opsworks', ['2013-02-18']);\nObject.defineProperty(apiLoader.services['opsworks'], '2013-02-18', {\n get: function get() {\n var model = require('../apis/opsworks-2013-02-18.min.json');\n model.paginators = require('../apis/opsworks-2013-02-18.paginators.json').pagination;\n model.waiters = require('../apis/opsworks-2013-02-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.OpsWorks;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalize'] = {};\nAWS.Personalize = Service.defineService('personalize', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalize'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Personalize;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeevents'] = {};\nAWS.PersonalizeEvents = Service.defineService('personalizeevents', ['2018-03-22']);\nObject.defineProperty(apiLoader.services['personalizeevents'], '2018-03-22', {\n get: function get() {\n var model = require('../apis/personalize-events-2018-03-22.min.json');\n model.paginators = require('../apis/personalize-events-2018-03-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeruntime'] = {};\nAWS.PersonalizeRuntime = Service.defineService('personalizeruntime', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalizeruntime'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-runtime-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-runtime-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['polly'] = {};\nAWS.Polly = Service.defineService('polly', ['2016-06-10']);\nrequire('../lib/services/polly');\nObject.defineProperty(apiLoader.services['polly'], '2016-06-10', {\n get: function get() {\n var model = require('../apis/polly-2016-06-10.min.json');\n model.paginators = require('../apis/polly-2016-06-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Polly;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['pricing'] = {};\nAWS.Pricing = Service.defineService('pricing', ['2017-10-15']);\nObject.defineProperty(apiLoader.services['pricing'], '2017-10-15', {\n get: function get() {\n var model = require('../apis/pricing-2017-10-15.min.json');\n model.paginators = require('../apis/pricing-2017-10-15.paginators.json').pagination;\n model.waiters = require('../apis/pricing-2017-10-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Pricing;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rds'] = {};\nAWS.RDS = Service.defineService('rds', ['2013-01-10', '2013-02-12', '2013-09-09', '2014-09-01', '2014-09-01*', '2014-10-31']);\nrequire('../lib/services/rds');\nObject.defineProperty(apiLoader.services['rds'], '2013-01-10', {\n get: function get() {\n var model = require('../apis/rds-2013-01-10.min.json');\n model.paginators = require('../apis/rds-2013-01-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-02-12', {\n get: function get() {\n var model = require('../apis/rds-2013-02-12.min.json');\n model.paginators = require('../apis/rds-2013-02-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-09-09', {\n get: function get() {\n var model = require('../apis/rds-2013-09-09.min.json');\n model.paginators = require('../apis/rds-2013-09-09.paginators.json').pagination;\n model.waiters = require('../apis/rds-2013-09-09.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-09-01', {\n get: function get() {\n var model = require('../apis/rds-2014-09-01.min.json');\n model.paginators = require('../apis/rds-2014-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-10-31', {\n get: function get() {\n var model = require('../apis/rds-2014-10-31.min.json');\n model.paginators = require('../apis/rds-2014-10-31.paginators.json').pagination;\n model.waiters = require('../apis/rds-2014-10-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.RDS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['redshift'] = {};\nAWS.Redshift = Service.defineService('redshift', ['2012-12-01']);\nObject.defineProperty(apiLoader.services['redshift'], '2012-12-01', {\n get: function get() {\n var model = require('../apis/redshift-2012-12-01.min.json');\n model.paginators = require('../apis/redshift-2012-12-01.paginators.json').pagination;\n model.waiters = require('../apis/redshift-2012-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Redshift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rekognition'] = {};\nAWS.Rekognition = Service.defineService('rekognition', ['2016-06-27']);\nObject.defineProperty(apiLoader.services['rekognition'], '2016-06-27', {\n get: function get() {\n var model = require('../apis/rekognition-2016-06-27.min.json');\n model.paginators = require('../apis/rekognition-2016-06-27.paginators.json').pagination;\n model.waiters = require('../apis/rekognition-2016-06-27.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Rekognition;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['resourcegroups'] = {};\nAWS.ResourceGroups = Service.defineService('resourcegroups', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['resourcegroups'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/resource-groups-2017-11-27.min.json');\n model.paginators = require('../apis/resource-groups-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ResourceGroups;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53'] = {};\nAWS.Route53 = Service.defineService('route53', ['2013-04-01']);\nrequire('../lib/services/route53');\nObject.defineProperty(apiLoader.services['route53'], '2013-04-01', {\n get: function get() {\n var model = require('../apis/route53-2013-04-01.min.json');\n model.paginators = require('../apis/route53-2013-04-01.paginators.json').pagination;\n model.waiters = require('../apis/route53-2013-04-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53domains'] = {};\nAWS.Route53Domains = Service.defineService('route53domains', ['2014-05-15']);\nObject.defineProperty(apiLoader.services['route53domains'], '2014-05-15', {\n get: function get() {\n var model = require('../apis/route53domains-2014-05-15.min.json');\n model.paginators = require('../apis/route53domains-2014-05-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53Domains;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['s3'] = {};\nAWS.S3 = Service.defineService('s3', ['2006-03-01']);\nrequire('../lib/services/s3');\nObject.defineProperty(apiLoader.services['s3'], '2006-03-01', {\n get: function get() {\n var model = require('../apis/s3-2006-03-01.min.json');\n model.paginators = require('../apis/s3-2006-03-01.paginators.json').pagination;\n model.waiters = require('../apis/s3-2006-03-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.S3;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['secretsmanager'] = {};\nAWS.SecretsManager = Service.defineService('secretsmanager', ['2017-10-17']);\nObject.defineProperty(apiLoader.services['secretsmanager'], '2017-10-17', {\n get: function get() {\n var model = require('../apis/secretsmanager-2017-10-17.min.json');\n model.paginators = require('../apis/secretsmanager-2017-10-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SecretsManager;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['servicecatalog'] = {};\nAWS.ServiceCatalog = Service.defineService('servicecatalog', ['2015-12-10']);\nObject.defineProperty(apiLoader.services['servicecatalog'], '2015-12-10', {\n get: function get() {\n var model = require('../apis/servicecatalog-2015-12-10.min.json');\n model.paginators = require('../apis/servicecatalog-2015-12-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ServiceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ses'] = {};\nAWS.SES = Service.defineService('ses', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['ses'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/email-2010-12-01.min.json');\n model.paginators = require('../apis/email-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/email-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SES;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sns'] = {};\nAWS.SNS = Service.defineService('sns', ['2010-03-31']);\nObject.defineProperty(apiLoader.services['sns'], '2010-03-31', {\n get: function get() {\n var model = require('../apis/sns-2010-03-31.min.json');\n model.paginators = require('../apis/sns-2010-03-31.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SNS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sqs'] = {};\nAWS.SQS = Service.defineService('sqs', ['2012-11-05']);\nrequire('../lib/services/sqs');\nObject.defineProperty(apiLoader.services['sqs'], '2012-11-05', {\n get: function get() {\n var model = require('../apis/sqs-2012-11-05.min.json');\n model.paginators = require('../apis/sqs-2012-11-05.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SQS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ssm'] = {};\nAWS.SSM = Service.defineService('ssm', ['2014-11-06']);\nObject.defineProperty(apiLoader.services['ssm'], '2014-11-06', {\n get: function get() {\n var model = require('../apis/ssm-2014-11-06.min.json');\n model.paginators = require('../apis/ssm-2014-11-06.paginators.json').pagination;\n model.waiters = require('../apis/ssm-2014-11-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['storagegateway'] = {};\nAWS.StorageGateway = Service.defineService('storagegateway', ['2013-06-30']);\nObject.defineProperty(apiLoader.services['storagegateway'], '2013-06-30', {\n get: function get() {\n var model = require('../apis/storagegateway-2013-06-30.min.json');\n model.paginators = require('../apis/storagegateway-2013-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.StorageGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sts'] = {};\nAWS.STS = Service.defineService('sts', ['2011-06-15']);\nrequire('../lib/services/sts');\nObject.defineProperty(apiLoader.services['sts'], '2011-06-15', {\n get: function get() {\n var model = require('../apis/sts-2011-06-15.min.json');\n model.paginators = require('../apis/sts-2011-06-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.STS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['translate'] = {};\nAWS.Translate = Service.defineService('translate', ['2017-07-01']);\nObject.defineProperty(apiLoader.services['translate'], '2017-07-01', {\n get: function get() {\n var model = require('../apis/translate-2017-07-01.min.json');\n model.paginators = require('../apis/translate-2017-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Translate;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['waf'] = {};\nAWS.WAF = Service.defineService('waf', ['2015-08-24']);\nObject.defineProperty(apiLoader.services['waf'], '2015-08-24', {\n get: function get() {\n var model = require('../apis/waf-2015-08-24.min.json');\n model.paginators = require('../apis/waf-2015-08-24.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WAF;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['workdocs'] = {};\nAWS.WorkDocs = Service.defineService('workdocs', ['2016-05-01']);\nObject.defineProperty(apiLoader.services['workdocs'], '2016-05-01', {\n get: function get() {\n var model = require('../apis/workdocs-2016-05-01.min.json');\n model.paginators = require('../apis/workdocs-2016-05-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WorkDocs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['xray'] = {};\nAWS.XRay = Service.defineService('xray', ['2016-04-12']);\nObject.defineProperty(apiLoader.services['xray'], '2016-04-12', {\n get: function get() {\n var model = require('../apis/xray-2016-04-12.min.json');\n model.paginators = require('../apis/xray-2016-04-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.XRay;\n","function apiLoader(svc, version) {\n if (!apiLoader.services.hasOwnProperty(svc)) {\n throw new Error('InvalidService: Failed to load api for ' + svc);\n }\n return apiLoader.services[svc][version];\n}\n\n/**\n * @api private\n *\n * This member of AWS.apiLoader is private, but changing it will necessitate a\n * change to ../scripts/services-table-generator.ts\n */\napiLoader.services = {};\n\n/**\n * @api private\n */\nmodule.exports = apiLoader;\n","require('./browser_loader');\n\nvar AWS = require('./core');\n\nif (typeof window !== 'undefined') window.AWS = AWS;\nif (typeof module !== 'undefined') {\n /**\n * @api private\n */\n module.exports = AWS;\n}\nif (typeof self !== 'undefined') self.AWS = AWS;\n\n/**\n * @private\n * DO NOT REMOVE\n * browser builder will strip out this line if services are supplied on the command line.\n */\nrequire('../clients/browser_default');\n","var Hmac = require('./browserHmac');\nvar Md5 = require('./browserMd5');\nvar Sha1 = require('./browserSha1');\nvar Sha256 = require('./browserSha256');\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n createHash: function createHash(alg) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Md5();\n } else if (alg === 'sha256') {\n return new Sha256();\n } else if (alg === 'sha1') {\n return new Sha1();\n }\n\n throw new Error('Hash algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createHmac: function createHmac(alg, key) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Hmac(Md5, key);\n } else if (alg === 'sha256') {\n return new Hmac(Sha256, key);\n } else if (alg === 'sha1') {\n return new Hmac(Sha1, key);\n }\n\n throw new Error('HMAC algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createSign: function() {\n throw new Error('createSign is not implemented in the browser');\n }\n };\n","var Buffer = require('buffer/').Buffer;\n\n/**\n * This is a polyfill for the static method `isView` of `ArrayBuffer`, which is\n * e.g. missing in IE 10.\n *\n * @api private\n */\nif (\n typeof ArrayBuffer !== 'undefined' &&\n typeof ArrayBuffer.isView === 'undefined'\n) {\n ArrayBuffer.isView = function(arg) {\n return viewStrings.indexOf(Object.prototype.toString.call(arg)) > -1;\n };\n}\n\n/**\n * @api private\n */\nvar viewStrings = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]',\n '[object DataView]',\n];\n\n/**\n * @api private\n */\nfunction isEmptyData(data) {\n if (typeof data === 'string') {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\n\n/**\n * @api private\n */\nfunction convertToBuffer(data) {\n if (typeof data === 'string') {\n data = new Buffer(data, 'utf8');\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n\n return new Uint8Array(data);\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n isEmptyData: isEmptyData,\n convertToBuffer: convertToBuffer,\n};\n","var hashUtils = require('./browserHashUtils');\n\n/**\n * @api private\n */\nfunction Hmac(hashCtor, secret) {\n this.hash = new hashCtor();\n this.outer = new hashCtor();\n\n var inner = bufferFromSecret(hashCtor, secret);\n var outer = new Uint8Array(hashCtor.BLOCK_SIZE);\n outer.set(inner);\n\n for (var i = 0; i < hashCtor.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // Zero out the copied key buffer.\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Hmac;\n\nHmac.prototype.update = function (toHash) {\n if (hashUtils.isEmptyData(toHash) || this.error) {\n return this;\n }\n\n try {\n this.hash.update(hashUtils.convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n\n return this;\n};\n\nHmac.prototype.digest = function (encoding) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest(encoding);\n};\n\nfunction bufferFromSecret(hashCtor, secret) {\n var input = hashUtils.convertToBuffer(secret);\n if (input.byteLength > hashCtor.BLOCK_SIZE) {\n var bufferHash = new hashCtor;\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(hashCtor.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","var hashUtils = require('./browserHashUtils');\nvar Buffer = require('buffer/').Buffer;\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 16;\n\nvar INIT = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n];\n\n/**\n * @api private\n */\nfunction Md5() {\n this.state = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n ];\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Md5;\n\nMd5.BLOCK_SIZE = BLOCK_SIZE;\n\nMd5.prototype.update = function (sourceData) {\n if (hashUtils.isEmptyData(sourceData)) {\n return this;\n } else if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n var data = hashUtils.convertToBuffer(sourceData);\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nMd5.prototype.digest = function (encoding) {\n if (!this.finished) {\n var _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed;\n var bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 128);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n var out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (var i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n var buff = new Buffer(out.buffer, out.byteOffset, out.byteLength);\n return encoding ? buff.toString(encoding) : buff;\n};\n\nMd5.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var a = state[0], b = state[1], c = state[2], d = state[3];\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n state[0] = (a + state[0]) & 0xFFFFFFFF;\n state[1] = (b + state[1]) & 0xFFFFFFFF;\n state[2] = (c + state[2]) & 0xFFFFFFFF;\n state[3] = (d + state[3]) & 0xFFFFFFFF;\n};\n\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF;\n return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF;\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\n}\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 20;\n\nvar KEY = new Uint32Array([\n 0x5a827999,\n 0x6ed9eba1,\n 0x8f1bbcdc | 0,\n 0xca62c1d6 | 0\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @api private\n */\nfunction Sha1() {\n this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0;\n // The first 64 bytes (16 words) is the data chunk\n this.block = new Uint32Array(80);\n this.offset = 0;\n this.shift = 24;\n this.totalLength = 0;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha1;\n\nSha1.BLOCK_SIZE = BLOCK_SIZE;\n\nSha1.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var length = data.length;\n this.totalLength += length * 8;\n for (var i = 0; i < length; i++) {\n this.write(data[i]);\n }\n\n return this;\n};\n\nSha1.prototype.write = function write(byte) {\n this.block[this.offset] |= (byte & 0xff) << this.shift;\n if (this.shift) {\n this.shift -= 8;\n } else {\n this.offset++;\n this.shift = 24;\n }\n\n if (this.offset === 16) this.processBlock();\n};\n\nSha1.prototype.digest = function (encoding) {\n // Pad\n this.write(0x80);\n if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) {\n this.processBlock();\n }\n this.offset = 14;\n this.shift = 24;\n\n // 64-bit length big-endian\n this.write(0x00); // numbers this big aren't accurate in javascript anyway\n this.write(0x00); // ..So just hard-code to zero.\n this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00);\n this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00);\n for (var s = 24; s >= 0; s -= 8) {\n this.write(this.totalLength >> s);\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n var outView = new DataView(out.buffer);\n outView.setUint32(0, this.h0, false);\n outView.setUint32(4, this.h1, false);\n outView.setUint32(8, this.h2, false);\n outView.setUint32(12, this.h3, false);\n outView.setUint32(16, this.h4, false);\n\n return encoding ? out.toString(encoding) : out;\n};\n\nSha1.prototype.processBlock = function processBlock() {\n // Extend the sixteen 32-bit words into eighty 32-bit words:\n for (var i = 16; i < 80; i++) {\n var w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16];\n this.block[i] = (w << 1) | (w >>> 31);\n }\n\n // Initialize hash value for this chunk:\n var a = this.h0;\n var b = this.h1;\n var c = this.h2;\n var d = this.h3;\n var e = this.h4;\n var f, k;\n\n // Main loop:\n for (i = 0; i < 80; i++) {\n if (i < 20) {\n f = d ^ (b & (c ^ d));\n k = 0x5A827999;\n }\n else if (i < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n }\n else if (i < 60) {\n f = (b & c) | (d & (b | c));\n k = 0x8F1BBCDC;\n }\n else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\n var temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i]|0);\n e = d;\n d = c;\n c = (b << 30 | b >>> 2);\n b = a;\n a = temp;\n }\n\n // Add this chunk's hash to result so far:\n this.h0 = (this.h0 + a) | 0;\n this.h1 = (this.h1 + b) | 0;\n this.h2 = (this.h2 + c) | 0;\n this.h3 = (this.h3 + d) | 0;\n this.h4 = (this.h4 + e) | 0;\n\n // The block is now reusable.\n this.offset = 0;\n for (i = 0; i < 16; i++) {\n this.block[i] = 0;\n }\n};\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 32;\n\nvar KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @private\n */\nfunction Sha256() {\n this.state = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n ];\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @private\n */\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha256;\n\nSha256.BLOCK_SIZE = BLOCK_SIZE;\n\nSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error('Cannot hash more than 2^53 - 1 bits');\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nSha256.prototype.digest = function (encoding) {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return encoding ? out.toString(encoding) : out;\n};\n\nSha256.prototype.hashBuffer = function () {\n var _a = this,\n buffer = _a.buffer,\n state = _a.state;\n var state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n for (var i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (((buffer[i * 4] & 0xff) << 24) |\n ((buffer[(i * 4) + 1] & 0xff) << 16) |\n ((buffer[(i * 4) + 2] & 0xff) << 8) |\n (buffer[(i * 4) + 3] & 0xff));\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = (u >>> 17 | u << 15) ^\n (u >>> 19 | u << 13) ^\n (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = (u >>> 7 | u << 25) ^\n (u >>> 18 | u << 14) ^\n (u >>> 3);\n this.temp[i] = (t1_1 + this.temp[i - 7] | 0) +\n (t2_1 + this.temp[i - 16] | 0);\n }\n var t1 = (((((state4 >>> 6 | state4 << 26) ^\n (state4 >>> 11 | state4 << 21) ^\n (state4 >>> 25 | state4 << 7))\n + ((state4 & state5) ^ (~state4 & state6))) | 0)\n + ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0;\n var t2 = (((state0 >>> 2 | state0 << 30) ^\n (state0 >>> 13 | state0 << 19) ^\n (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n};\n","var util = require('./util');\n\n// browser specific modules\nutil.crypto.lib = require('./browserCryptoLib');\nutil.Buffer = require('buffer/').Buffer;\nutil.url = require('url/');\nutil.querystring = require('querystring/');\nutil.realClock = require('./realclock/browserClock');\nutil.environment = 'js';\nutil.createEventStream = require('./event-stream/buffered-create-event-stream').createEventStream;\nutil.isBrowser = function() { return true; };\nutil.isNode = function() { return false; };\n\nvar AWS = require('./core');\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nrequire('./credentials/temporary_credentials');\nrequire('./credentials/chainable_temporary_credentials');\nrequire('./credentials/web_identity_credentials');\nrequire('./credentials/cognito_identity_credentials');\nrequire('./credentials/saml_credentials');\n\n// Load the DOMParser XML parser\nAWS.XML.Parser = require('./xml/browser_parser');\n\n// Load the XHR HttpClient\nrequire('./http/xhr');\n\nif (typeof process === 'undefined') {\n var process = {\n browser: true\n };\n}\n","var AWS = require('../core'),\n url = AWS.util.url,\n crypto = AWS.util.crypto.lib,\n base64Encode = AWS.util.base64.encode,\n inherit = AWS.util.inherit;\n\nvar queryEncode = function (string) {\n var replacements = {\n '+': '-',\n '=': '_',\n '/': '~'\n };\n return string.replace(/[\\+=\\/]/g, function (match) {\n return replacements[match];\n });\n};\n\nvar signPolicy = function (policy, privateKey) {\n var sign = crypto.createSign('RSA-SHA1');\n sign.write(policy);\n return queryEncode(sign.sign(privateKey, 'base64'));\n};\n\nvar signWithCannedPolicy = function (url, expires, keyPairId, privateKey) {\n var policy = JSON.stringify({\n Statement: [\n {\n Resource: url,\n Condition: { DateLessThan: { 'AWS:EpochTime': expires } }\n }\n ]\n });\n\n return {\n Expires: expires,\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy.toString(), privateKey)\n };\n};\n\nvar signWithCustomPolicy = function (policy, keyPairId, privateKey) {\n policy = policy.replace(/\\s/mg, '');\n\n return {\n Policy: queryEncode(base64Encode(policy)),\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy, privateKey)\n };\n};\n\nvar determineScheme = function (url) {\n var parts = url.split('://');\n if (parts.length < 2) {\n throw new Error('Invalid URL.');\n }\n\n return parts[0].replace('*', '');\n};\n\nvar getRtmpUrl = function (rtmpUrl) {\n var parsed = url.parse(rtmpUrl);\n return parsed.path.replace(/^\\//, '') + (parsed.hash || '');\n};\n\nvar getResource = function (url) {\n switch (determineScheme(url)) {\n case 'http':\n case 'https':\n return url;\n case 'rtmp':\n return getRtmpUrl(url);\n default:\n throw new Error('Invalid URI scheme. Scheme must be one of'\n + ' http, https, or rtmp');\n }\n};\n\nvar handleError = function (err, callback) {\n if (!callback || typeof callback !== 'function') {\n throw err;\n }\n\n callback(err);\n};\n\nvar handleSuccess = function (result, callback) {\n if (!callback || typeof callback !== 'function') {\n return result;\n }\n\n callback(null, result);\n};\n\nAWS.CloudFront.Signer = inherit({\n /**\n * A signer object can be used to generate signed URLs and cookies for granting\n * access to content on restricted CloudFront distributions.\n *\n * @see http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html\n *\n * @param keyPairId [String] (Required) The ID of the CloudFront key pair\n * being used.\n * @param privateKey [String] (Required) A private key in RSA format.\n */\n constructor: function Signer(keyPairId, privateKey) {\n if (keyPairId === void 0 || privateKey === void 0) {\n throw new Error('A key pair ID and private key are required');\n }\n\n this.keyPairId = keyPairId;\n this.privateKey = privateKey;\n },\n\n /**\n * Create a signed Amazon CloudFront Cookie.\n *\n * @param options [Object] The options to create a signed cookie.\n * @option options url [String] The URL to which the signature will grant\n * access. Required unless you pass in a full\n * policy.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the hash as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [Object] if called synchronously (with no callback), returns the\n * signed cookie parameters.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedCookie: function (options, cb) {\n var signatureHash = 'policy' in options\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(options.url, options.expires, this.keyPairId, this.privateKey);\n\n var cookieHash = {};\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n cookieHash['CloudFront-' + key] = signatureHash[key];\n }\n }\n\n return handleSuccess(cookieHash, cb);\n },\n\n /**\n * Create a signed Amazon CloudFront URL.\n *\n * Keep in mind that URLs meant for use in media/flash players may have\n * different requirements for URL formats (e.g. some require that the\n * extension be removed, some require the file name to be prefixed\n * - mp4:, some require you to add \"/cfx/st\" into your URL).\n *\n * @param options [Object] The options to create a signed URL.\n * @option options url [String] The URL to which the signature will grant\n * access. Any query params included with\n * the URL should be encoded. Required.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedUrl: function (options, cb) {\n try {\n var resource = getResource(options.url);\n } catch (err) {\n return handleError(err, cb);\n }\n\n var parsedUrl = url.parse(options.url, true),\n signatureHash = Object.prototype.hasOwnProperty.call(options, 'policy')\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(resource, options.expires, this.keyPairId, this.privateKey);\n\n parsedUrl.search = null;\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n parsedUrl.query[key] = signatureHash[key];\n }\n }\n\n try {\n var signedUrl = determineScheme(options.url) === 'rtmp'\n ? getRtmpUrl(url.format(parsedUrl))\n : url.format(parsedUrl);\n } catch (err) {\n return handleError(err, cb);\n }\n\n return handleSuccess(signedUrl, cb);\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.CloudFront.Signer;\n","var AWS = require('./core');\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nvar PromisesDependency;\n\n/**\n * The main configuration class used by all service objects to set\n * the region, credentials, and other options for requests.\n *\n * By default, credentials and region settings are left unconfigured.\n * This should be configured by the application before using any\n * AWS service APIs.\n *\n * In order to set global configuration options, properties should\n * be assigned to the global {AWS.config} object.\n *\n * @see AWS.config\n *\n * @!group General Configuration Options\n *\n * @!attribute credentials\n * @return [AWS.Credentials] the AWS credentials to sign requests with.\n *\n * @!attribute region\n * @example Set the global region setting to us-west-2\n * AWS.config.update({region: 'us-west-2'});\n * @return [AWS.Credentials] The region to send service requests to.\n * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html\n * A list of available endpoints for each AWS service\n *\n * @!attribute maxRetries\n * @return [Integer] the maximum amount of retries to perform for a\n * service request. By default this value is calculated by the specific\n * service object that the request is being made to.\n *\n * @!attribute maxRedirects\n * @return [Integer] the maximum amount of redirects to follow for a\n * service request. Defaults to 10.\n *\n * @!attribute paramValidation\n * @return [Boolean|map] whether input parameters should be validated against\n * the operation description before sending the request. Defaults to true.\n * Pass a map to enable any of the following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n *\n * @!attribute computeChecksums\n * @return [Boolean] whether to compute checksums for payload bodies when\n * the service accepts it (currently supported in S3 and SQS only).\n *\n * @!attribute convertResponseTypes\n * @return [Boolean] whether types are converted when parsing response data.\n * Currently only supported for JSON based services. Turning this off may\n * improve performance on large response payloads. Defaults to `true`.\n *\n * @!attribute correctClockSkew\n * @return [Boolean] whether to apply a clock skew correction and retry\n * requests that fail because of an skewed client clock. Defaults to\n * `false`.\n *\n * @!attribute sslEnabled\n * @return [Boolean] whether SSL is enabled for requests\n *\n * @!attribute s3ForcePathStyle\n * @return [Boolean] whether to force path style URLs for S3 objects\n *\n * @!attribute s3BucketEndpoint\n * @note Setting this configuration option requires an `endpoint` to be\n * provided explicitly to the service constructor.\n * @return [Boolean] whether the provided endpoint addresses an individual\n * bucket (false if it addresses the root API endpoint).\n *\n * @!attribute s3DisableBodySigning\n * @return [Boolean] whether to disable S3 body signing when using signature version `v4`.\n * Body signing can only be disabled when using https. Defaults to `true`.\n *\n * @!attribute s3UsEast1RegionalEndpoint\n * @return ['legacy'|'regional'] when region is set to 'us-east-1', whether to send s3\n * request to global endpoints or 'us-east-1' regional endpoints. This config is only\n * applicable to S3 client;\n * Defaults to 'legacy'\n * @!attribute s3UseArnRegion\n * @return [Boolean] whether to override the request region with the region inferred\n * from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @!attribute useAccelerateEndpoint\n * @note This configuration option is only compatible with S3 while accessing\n * dns-compatible buckets.\n * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service.\n * Defaults to `false`.\n *\n * @!attribute retryDelayOptions\n * @example Set the base retry delay for all services to 300 ms\n * AWS.config.update({retryDelayOptions: {base: 300}});\n * // Delays with maxRetries = 3: 300, 600, 1200\n * @example Set a custom backoff function to provide delay values on retries\n * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount, err) {\n * // returns delay in ms\n * }}});\n * @return [map] A set of options to configure the retry delay on retryable errors.\n * Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all services except\n * DynamoDB, where it defaults to 50ms.\n *\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n *\n * @!attribute httpOptions\n * @return [map] A set of options to pass to the low-level HTTP request.\n * Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only supported in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — The number of milliseconds a request can\n * take before automatically being terminated.\n * Defaults to two minutes (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @!attribute logger\n * @return [#write,#log] an object that responds to .write() (like a stream)\n * or .log() (like the console object) in order to log information about\n * requests\n *\n * @!attribute systemClockOffset\n * @return [Number] an offset value in milliseconds to apply to all signing\n * times. Use this to compensate for clock skew when your system may be\n * out of sync with the service time. Note that this configuration option\n * can only be applied to the global `AWS.config` object and cannot be\n * overridden in service-specific configuration. Defaults to 0 milliseconds.\n *\n * @!attribute signatureVersion\n * @return [String] the signature version to sign requests with (overriding\n * the API configuration). Possible values are: 'v2', 'v3', 'v4'.\n *\n * @!attribute signatureCache\n * @return [Boolean] whether the signature to sign requests with (overriding\n * the API configuration) is cached. Only applies to the signature version 'v4'.\n * Defaults to `true`.\n *\n * @!attribute endpointDiscoveryEnabled\n * @return [Boolean|undefined] whether to call operations with endpoints\n * given by service dynamically. Setting this config to `true` will enable\n * endpoint discovery for all applicable operations. Setting it to `false`\n * will explicitly disable endpoint discovery even though operations that\n * require endpoint discovery will presumably fail. Leaving it to\n * `undefined` means SDK only do endpoint discovery when it's required.\n * Defaults to `undefined`\n *\n * @!attribute endpointCacheSize\n * @return [Number] the size of the global cache storing endpoints from endpoint\n * discovery operations. Once endpoint cache is created, updating this setting\n * cannot change existing cache size.\n * Defaults to 1000\n *\n * @!attribute hostPrefixEnabled\n * @return [Boolean] whether to marshal request parameters to the prefix of\n * hostname. Defaults to `true`.\n *\n * @!attribute stsRegionalEndpoints\n * @return ['legacy'|'regional'] whether to send sts request to global endpoints or\n * regional endpoints.\n * Defaults to 'legacy'.\n *\n * @!attribute useFipsEndpoint\n * @return [Boolean] Enables FIPS compatible endpoints. Defaults to `false`.\n *\n * @!attribute useDualstackEndpoint\n * @return [Boolean] Enables IPv6 dualstack endpoint. Defaults to `false`.\n */\nAWS.Config = AWS.util.inherit({\n /**\n * @!endgroup\n */\n\n /**\n * Creates a new configuration object. This is the object that passes\n * option data along to service requests, including credentials, security,\n * region information, and some service specific settings.\n *\n * @example Creating a new configuration object with credentials and region\n * var config = new AWS.Config({\n * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2'\n * });\n * @option options accessKeyId [String] your AWS access key ID.\n * @option options secretAccessKey [String] your AWS secret access key.\n * @option options sessionToken [AWS.Credentials] the optional AWS\n * session token to sign requests with.\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. You can either specify this object, or\n * specify the accessKeyId and secretAccessKey options directly.\n * @option options credentialProvider [AWS.CredentialProviderChain] the\n * provider chain used to resolve credentials if no static `credentials`\n * property is set.\n * @option options region [String] the region to send service requests to.\n * See {region} for more information.\n * @option options maxRetries [Integer] the maximum amount of retries to\n * attempt with a request. See {maxRetries} for more information.\n * @option options maxRedirects [Integer] the maximum amount of redirects to\n * follow with a request. See {maxRedirects} for more information.\n * @option options sslEnabled [Boolean] whether to enable SSL for\n * requests.\n * @option options paramValidation [Boolean|map] whether input parameters\n * should be validated against the operation description before sending\n * the request. Defaults to true. Pass a map to enable any of the\n * following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n * @option options computeChecksums [Boolean] whether to compute checksums\n * for payload bodies when the service accepts it (currently supported\n * in S3 only)\n * @option options convertResponseTypes [Boolean] whether types are converted\n * when parsing response data. Currently only supported for JSON based\n * services. Turning this off may improve performance on large response\n * payloads. Defaults to `true`.\n * @option options correctClockSkew [Boolean] whether to apply a clock skew\n * correction and retry requests that fail because of an skewed client\n * clock. Defaults to `false`.\n * @option options s3ForcePathStyle [Boolean] whether to force path\n * style URLs for S3 objects.\n * @option options s3BucketEndpoint [Boolean] whether the provided endpoint\n * addresses an individual bucket (false if it addresses the root API\n * endpoint). Note that setting this configuration option requires an\n * `endpoint` to be provided explicitly to the service constructor.\n * @option options s3DisableBodySigning [Boolean] whether S3 body signing\n * should be disabled when using signature version `v4`. Body signing\n * can only be disabled when using https. Defaults to `true`.\n * @option options s3UsEast1RegionalEndpoint ['legacy'|'regional'] when region\n * is set to 'us-east-1', whether to send s3 request to global endpoints or\n * 'us-east-1' regional endpoints. This config is only applicable to S3 client.\n * Defaults to `legacy`\n * @option options s3UseArnRegion [Boolean] whether to override the request region\n * with the region inferred from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @option options retryDelayOptions [map] A set of options to configure\n * the retry delay on retryable errors. Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all\n * services except DynamoDB, where it defaults to 50ms.\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n * @option options httpOptions [map] A set of options to pass to the low-level\n * HTTP request. Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Defaults to the global\n * agent (`http.globalAgent`) for non-SSL connections. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only available in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — Sets the socket to timeout after timeout\n * milliseconds of inactivity on the socket. Defaults to two minutes\n * (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @option options apiVersion [String, Date] a String in YYYY-MM-DD format\n * (or a date) that represents the latest possible API version that can be\n * used in all services (unless overridden by `apiVersions`). Specify\n * 'latest' to use the latest possible version.\n * @option options apiVersions [map] a map of service\n * identifiers (the lowercase service class name) with the API version to\n * use when instantiating a service. Specify 'latest' for each individual\n * that can use the latest available version.\n * @option options logger [#write,#log] an object that responds to .write()\n * (like a stream) or .log() (like the console object) in order to log\n * information about requests\n * @option options systemClockOffset [Number] an offset value in milliseconds\n * to apply to all signing times. Use this to compensate for clock skew\n * when your system may be out of sync with the service time. Note that\n * this configuration option can only be applied to the global `AWS.config`\n * object and cannot be overridden in service-specific configuration.\n * Defaults to 0 milliseconds.\n * @option options signatureVersion [String] the signature version to sign\n * requests with (overriding the API configuration). Possible values are:\n * 'v2', 'v3', 'v4'.\n * @option options signatureCache [Boolean] whether the signature to sign\n * requests with (overriding the API configuration) is cached. Only applies\n * to the signature version 'v4'. Defaults to `true`.\n * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32\n * checksum of HTTP response bodies returned by DynamoDB. Default: `true`.\n * @option options useAccelerateEndpoint [Boolean] Whether to use the\n * S3 Transfer Acceleration endpoint with the S3 service. Default: `false`.\n * @option options clientSideMonitoring [Boolean] whether to collect and\n * publish this client's performance metrics of all its API requests.\n * @option options endpointDiscoveryEnabled [Boolean|undefined] whether to\n * call operations with endpoints given by service dynamically. Setting this\n * config to `true` will enable endpoint discovery for all applicable operations.\n * Setting it to `false` will explicitly disable endpoint discovery even though\n * operations that require endpoint discovery will presumably fail. Leaving it\n * to `undefined` means SDK will only do endpoint discovery when it's required.\n * Defaults to `undefined`\n * @option options endpointCacheSize [Number] the size of the global cache storing\n * endpoints from endpoint discovery operations. Once endpoint cache is created,\n * updating this setting cannot change existing cache size.\n * Defaults to 1000\n * @option options hostPrefixEnabled [Boolean] whether to marshal request\n * parameters to the prefix of hostname.\n * Defaults to `true`.\n * @option options stsRegionalEndpoints ['legacy'|'regional'] whether to send sts request\n * to global endpoints or regional endpoints.\n * Defaults to 'legacy'.\n * @option options useFipsEndpoint [Boolean] Enables FIPS compatible endpoints.\n * Defaults to `false`.\n * @option options useDualstackEndpoint [Boolean] Enables IPv6 dualstack endpoint.\n * Defaults to `false`.\n */\n constructor: function Config(options) {\n if (options === undefined) options = {};\n options = this.extractCredentials(options);\n\n AWS.util.each.call(this, this.keys, function (key, value) {\n this.set(key, options[key], value);\n });\n },\n\n /**\n * @!group Managing Credentials\n */\n\n /**\n * Loads credentials from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Credentials} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your credentials are loaded prior to a request, you can use this method\n * directly to provide accurate credential data stored in the object.\n *\n * @note If you configure the SDK with static or environment credentials,\n * the credential data should already be present in {credentials} attribute.\n * This method is primarily necessary to load credentials from asynchronous\n * sources, or sources that can refresh credentials periodically.\n * @example Getting your access key\n * AWS.config.getCredentials(function(err) {\n * if (err) console.log(err.stack); // credentials not loaded\n * else console.log(\"Access Key:\", AWS.config.credentials.accessKeyId);\n * })\n * @callback callback function(err)\n * Called when the {credentials} have been properly set on the configuration\n * object.\n *\n * @param err [Error] if this is set, credentials were not successfully\n * loaded and this error provides information why.\n * @see credentials\n * @see Credentials\n */\n getCredentials: function getCredentials(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.credentials);\n }\n\n function credError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'CredentialsError',\n message: msg,\n name: 'CredentialsError'\n });\n }\n\n function getAsyncCredentials() {\n self.credentials.get(function(err) {\n if (err) {\n var msg = 'Could not load credentials from ' +\n self.credentials.constructor.name;\n err = credError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticCredentials() {\n var err = null;\n if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) {\n err = credError('Missing credentials');\n }\n finish(err);\n }\n\n if (self.credentials) {\n if (typeof self.credentials.get === 'function') {\n getAsyncCredentials();\n } else { // static credentials\n getStaticCredentials();\n }\n } else if (self.credentialProvider) {\n self.credentialProvider.resolve(function(err, creds) {\n if (err) {\n err = credError('Could not load credentials from any providers', err);\n }\n self.credentials = creds;\n finish(err);\n });\n } else {\n finish(credError('No credentials to load'));\n }\n },\n\n /**\n * Loads token from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Token} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your token is loaded prior to a request, you can use this method\n * directly to provide accurate token data stored in the object.\n *\n * @note If you configure the SDK with static token, the token data should\n * already be present in {token} attribute. This method is primarily necessary\n * to load token from asynchronous sources, or sources that can refresh\n * token periodically.\n * @example Getting your access token\n * AWS.config.getToken(function(err) {\n * if (err) console.log(err.stack); // token not loaded\n * else console.log(\"Token:\", AWS.config.token.token);\n * })\n * @callback callback function(err)\n * Called when the {token} have been properly set on the configuration object.\n *\n * @param err [Error] if this is set, token was not successfully loaded and\n * this error provides information why.\n * @see token\n */\n getToken: function getToken(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.token);\n }\n\n function tokenError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'TokenError',\n message: msg,\n name: 'TokenError'\n });\n }\n\n function getAsyncToken() {\n self.token.get(function(err) {\n if (err) {\n var msg = 'Could not load token from ' +\n self.token.constructor.name;\n err = tokenError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticToken() {\n var err = null;\n if (!self.token.token) {\n err = tokenError('Missing token');\n }\n finish(err);\n }\n\n if (self.token) {\n if (typeof self.token.get === 'function') {\n getAsyncToken();\n } else { // static token\n getStaticToken();\n }\n } else if (self.tokenProvider) {\n self.tokenProvider.resolve(function(err, token) {\n if (err) {\n err = tokenError('Could not load token from any providers', err);\n }\n self.token = token;\n finish(err);\n });\n } else {\n finish(tokenError('No token to load'));\n }\n },\n\n /**\n * @!group Loading and Setting Configuration Options\n */\n\n /**\n * @overload update(options, allowUnknownKeys = false)\n * Updates the current configuration object with new options.\n *\n * @example Update maxRetries property of a configuration object\n * config.update({maxRetries: 10});\n * @param [Object] options a map of option keys and values.\n * @param [Boolean] allowUnknownKeys whether unknown keys can be set on\n * the configuration object. Defaults to `false`.\n * @see constructor\n */\n update: function update(options, allowUnknownKeys) {\n allowUnknownKeys = allowUnknownKeys || false;\n options = this.extractCredentials(options);\n AWS.util.each.call(this, options, function (key, value) {\n if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) ||\n AWS.Service.hasService(key)) {\n this.set(key, value);\n }\n });\n },\n\n /**\n * Loads configuration data from a JSON file into this config object.\n * @note Loading configuration will reset all existing configuration\n * on the object.\n * @!macro nobrowser\n * @param path [String] the path relative to your process's current\n * working directory to load configuration from.\n * @return [AWS.Config] the same configuration object\n */\n loadFromPath: function loadFromPath(path) {\n this.clear();\n\n var options = JSON.parse(AWS.util.readFileSync(path));\n var fileSystemCreds = new AWS.FileSystemCredentials(path);\n var chain = new AWS.CredentialProviderChain();\n chain.providers.unshift(fileSystemCreds);\n chain.resolve(function (err, creds) {\n if (err) throw err;\n else options.credentials = creds;\n });\n\n this.constructor(options);\n\n return this;\n },\n\n /**\n * Clears configuration data on this object\n *\n * @api private\n */\n clear: function clear() {\n /*jshint forin:false */\n AWS.util.each.call(this, this.keys, function (key) {\n delete this[key];\n });\n\n // reset credential provider\n this.set('credentials', undefined);\n this.set('credentialProvider', undefined);\n },\n\n /**\n * Sets a property on the configuration object, allowing for a\n * default value\n * @api private\n */\n set: function set(property, value, defaultValue) {\n if (value === undefined) {\n if (defaultValue === undefined) {\n defaultValue = this.keys[property];\n }\n if (typeof defaultValue === 'function') {\n this[property] = defaultValue.call(this);\n } else {\n this[property] = defaultValue;\n }\n } else if (property === 'httpOptions' && this[property]) {\n // deep merge httpOptions\n this[property] = AWS.util.merge(this[property], value);\n } else {\n this[property] = value;\n }\n },\n\n /**\n * All of the keys with their default values.\n *\n * @constant\n * @api private\n */\n keys: {\n credentials: null,\n credentialProvider: null,\n region: null,\n logger: null,\n apiVersions: {},\n apiVersion: null,\n endpoint: undefined,\n httpOptions: {\n timeout: 120000\n },\n maxRetries: undefined,\n maxRedirects: 10,\n paramValidation: true,\n sslEnabled: true,\n s3ForcePathStyle: false,\n s3BucketEndpoint: false,\n s3DisableBodySigning: true,\n s3UsEast1RegionalEndpoint: 'legacy',\n s3UseArnRegion: undefined,\n computeChecksums: true,\n convertResponseTypes: true,\n correctClockSkew: false,\n customUserAgent: null,\n dynamoDbCrc32: true,\n systemClockOffset: 0,\n signatureVersion: null,\n signatureCache: true,\n retryDelayOptions: {},\n useAccelerateEndpoint: false,\n clientSideMonitoring: false,\n endpointDiscoveryEnabled: undefined,\n endpointCacheSize: 1000,\n hostPrefixEnabled: true,\n stsRegionalEndpoints: 'legacy',\n useFipsEndpoint: false,\n useDualstackEndpoint: false,\n token: null\n },\n\n /**\n * Extracts accessKeyId, secretAccessKey and sessionToken\n * from a configuration hash.\n *\n * @api private\n */\n extractCredentials: function extractCredentials(options) {\n if (options.accessKeyId && options.secretAccessKey) {\n options = AWS.util.copy(options);\n options.credentials = new AWS.Credentials(options);\n }\n return options;\n },\n\n /**\n * Sets the promise dependency the SDK will use wherever Promises are returned.\n * Passing `null` will force the SDK to use native Promises if they are available.\n * If native Promises are not available, passing `null` will have no effect.\n * @param [Constructor] dep A reference to a Promise constructor\n */\n setPromisesDependency: function setPromisesDependency(dep) {\n PromisesDependency = dep;\n // if null was passed in, we should try to use native promises\n if (dep === null && typeof Promise === 'function') {\n PromisesDependency = Promise;\n }\n var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain];\n if (AWS.S3) {\n constructors.push(AWS.S3);\n if (AWS.S3.ManagedUpload) {\n constructors.push(AWS.S3.ManagedUpload);\n }\n }\n AWS.util.addPromises(constructors, PromisesDependency);\n },\n\n /**\n * Gets the promise dependency set by `AWS.config.setPromisesDependency`.\n */\n getPromisesDependency: function getPromisesDependency() {\n return PromisesDependency;\n }\n});\n\n/**\n * @return [AWS.Config] The global configuration object singleton instance\n * @readonly\n * @see AWS.Config\n */\nAWS.config = new AWS.Config();\n","var AWS = require('./core');\n/**\n * @api private\n */\nfunction validateRegionalEndpointsFlagValue(configValue, errorOptions) {\n if (typeof configValue !== 'string') return undefined;\n else if (['legacy', 'regional'].indexOf(configValue.toLowerCase()) >= 0) {\n return configValue.toLowerCase();\n } else {\n throw AWS.util.error(new Error(), errorOptions);\n }\n}\n\n/**\n * Resolve the configuration value for regional endpoint from difference sources: client\n * config, environmental variable, shared config file. Value can be case-insensitive\n * 'legacy' or 'reginal'.\n * @param originalConfig user-supplied config object to resolve\n * @param options a map of config property names from individual configuration source\n * - env: name of environmental variable that refers to the config\n * - sharedConfig: name of shared configuration file property that refers to the config\n * - clientConfig: name of client configuration property that refers to the config\n *\n * @api private\n */\nfunction resolveRegionalEndpointsFlag(originalConfig, options) {\n originalConfig = originalConfig || {};\n //validate config value\n var resolved;\n if (originalConfig[options.clientConfig]) {\n resolved = validateRegionalEndpointsFlagValue(originalConfig[options.clientConfig], {\n code: 'InvalidConfiguration',\n message: 'invalid \"' + options.clientConfig + '\" configuration. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + originalConfig[options.clientConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n if (!AWS.util.isNode()) return resolved;\n //validate environmental variable\n if (Object.prototype.hasOwnProperty.call(process.env, options.env)) {\n var envFlag = process.env[options.env];\n resolved = validateRegionalEndpointsFlagValue(envFlag, {\n code: 'InvalidEnvironmentalVariable',\n message: 'invalid ' + options.env + ' environmental variable. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + process.env[options.env] + '\".'\n });\n if (resolved) return resolved;\n }\n //validate shared config file\n var profile = {};\n try {\n var profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {};\n if (profile && Object.prototype.hasOwnProperty.call(profile, options.sharedConfig)) {\n var fileFlag = profile[options.sharedConfig];\n resolved = validateRegionalEndpointsFlagValue(fileFlag, {\n code: 'InvalidConfiguration',\n message: 'invalid ' + options.sharedConfig + ' profile config. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + profile[options.sharedConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n return resolved;\n}\n\nmodule.exports = resolveRegionalEndpointsFlag;\n","/**\n * The main AWS namespace\n */\nvar AWS = { util: require('./util') };\n\n/**\n * @api private\n * @!macro [new] nobrowser\n * @note This feature is not supported in the browser environment of the SDK.\n */\nvar _hidden = {}; _hidden.toString(); // hack to parse macro\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nAWS.util.update(AWS, {\n\n /**\n * @constant\n */\n VERSION: '2.1670.0',\n\n /**\n * @api private\n */\n Signers: {},\n\n /**\n * @api private\n */\n Protocol: {\n Json: require('./protocol/json'),\n Query: require('./protocol/query'),\n Rest: require('./protocol/rest'),\n RestJson: require('./protocol/rest_json'),\n RestXml: require('./protocol/rest_xml')\n },\n\n /**\n * @api private\n */\n XML: {\n Builder: require('./xml/builder'),\n Parser: null // conditionally set based on environment\n },\n\n /**\n * @api private\n */\n JSON: {\n Builder: require('./json/builder'),\n Parser: require('./json/parser')\n },\n\n /**\n * @api private\n */\n Model: {\n Api: require('./model/api'),\n Operation: require('./model/operation'),\n Shape: require('./model/shape'),\n Paginator: require('./model/paginator'),\n ResourceWaiter: require('./model/resource_waiter')\n },\n\n /**\n * @api private\n */\n apiLoader: require('./api_loader'),\n\n /**\n * @api private\n */\n EndpointCache: require('../vendor/endpoint-cache').EndpointCache\n});\nrequire('./sequential_executor');\nrequire('./service');\nrequire('./config');\nrequire('./http');\nrequire('./event_listeners');\nrequire('./request');\nrequire('./response');\nrequire('./resource_waiter');\nrequire('./signers/request_signer');\nrequire('./param_validator');\nrequire('./maintenance_mode_message');\n\n/**\n * @readonly\n * @return [AWS.SequentialExecutor] a collection of global event listeners that\n * are attached to every sent request.\n * @see AWS.Request AWS.Request for a list of events to listen for\n * @example Logging the time taken to send a request\n * AWS.events.on('send', function startSend(resp) {\n * resp.startTime = new Date().getTime();\n * }).on('complete', function calculateTime(resp) {\n * var time = (new Date().getTime() - resp.startTime) / 1000;\n * console.log('Request took ' + time + ' seconds');\n * });\n *\n * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds'\n */\nAWS.events = new AWS.SequentialExecutor();\n\n//create endpoint cache lazily\nAWS.util.memoizedProperty(AWS, 'endpointCache', function() {\n return new AWS.EndpointCache(AWS.config.endpointCacheSize);\n}, true);\n","var AWS = require('./core');\n\n/**\n * Represents your AWS security credentials, specifically the\n * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}.\n * Creating a `Credentials` object allows you to pass around your\n * security information to configuration and service objects.\n *\n * Note that this class typically does not need to be constructed manually,\n * as the {AWS.Config} and {AWS.Service} classes both accept simple\n * options hashes with the three keys. These structures will be converted\n * into Credentials objects automatically.\n *\n * ## Expiring and Refreshing Credentials\n *\n * Occasionally credentials can expire in the middle of a long-running\n * application. In this case, the SDK will automatically attempt to\n * refresh the credentials from the storage location if the Credentials\n * class implements the {refresh} method.\n *\n * If you are implementing a credential storage location, you\n * will want to create a subclass of the `Credentials` class and\n * override the {refresh} method. This method allows credentials to be\n * retrieved from the backing store, be it a file system, database, or\n * some network storage. The method should reset the credential attributes\n * on the object.\n *\n * @!attribute expired\n * @return [Boolean] whether the credentials have been expired and\n * require a refresh. Used in conjunction with {expireTime}.\n * @!attribute expireTime\n * @return [Date] a time when credentials should be considered expired. Used\n * in conjunction with {expired}.\n * @!attribute accessKeyId\n * @return [String] the AWS access key ID\n * @!attribute secretAccessKey\n * @return [String] the AWS secret access key\n * @!attribute sessionToken\n * @return [String] an optional AWS session token\n */\nAWS.Credentials = AWS.util.inherit({\n /**\n * A credentials object can be created using positional arguments or an options\n * hash.\n *\n * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null)\n * Creates a Credentials object with a given set of credential information\n * as positional arguments.\n * @param accessKeyId [String] the AWS access key ID\n * @param secretAccessKey [String] the AWS secret access key\n * @param sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials('akid', 'secret', 'session');\n * @overload AWS.Credentials(options)\n * Creates a Credentials object with a given set of credential information\n * as an options hash.\n * @option options accessKeyId [String] the AWS access key ID\n * @option options secretAccessKey [String] the AWS secret access key\n * @option options sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials({\n * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session'\n * });\n */\n constructor: function Credentials() {\n // hide secretAccessKey from being displayed with util.inspect\n AWS.util.hideProperties(this, ['secretAccessKey']);\n\n this.expired = false;\n this.expireTime = null;\n this.refreshCallbacks = [];\n if (arguments.length === 1 && typeof arguments[0] === 'object') {\n var creds = arguments[0].credentials || arguments[0];\n this.accessKeyId = creds.accessKeyId;\n this.secretAccessKey = creds.secretAccessKey;\n this.sessionToken = creds.sessionToken;\n } else {\n this.accessKeyId = arguments[0];\n this.secretAccessKey = arguments[1];\n this.sessionToken = arguments[2];\n }\n },\n\n /**\n * @return [Integer] the number of seconds before {expireTime} during which\n * the credentials will be considered expired.\n */\n expiryWindow: 15,\n\n /**\n * @return [Boolean] whether the credentials object should call {refresh}\n * @note Subclasses should override this method to provide custom refresh\n * logic.\n */\n needsRefresh: function needsRefresh() {\n var currentTime = AWS.util.date.getDate().getTime();\n var adjustedTime = new Date(currentTime + this.expiryWindow * 1000);\n\n if (this.expireTime && adjustedTime > this.expireTime) {\n return true;\n } else {\n return this.expired || !this.accessKeyId || !this.secretAccessKey;\n }\n },\n\n /**\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means either credentials\n * do not need to be refreshed or refreshed credentials information has\n * been loaded into the object (as the `accessKeyId`, `secretAccessKey`,\n * and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n */\n get: function get(callback) {\n var self = this;\n if (this.needsRefresh()) {\n this.refresh(function(err) {\n if (!err) self.expired = false; // reset expired flag\n if (callback) callback(err);\n });\n } else if (callback) {\n callback();\n }\n },\n\n /**\n * @!method getPromise()\n * Returns a 'thenable' promise.\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means either credentials do not need to be refreshed or refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `get` call.\n * @example Calling the `getPromise` method.\n * var promise = credProvider.getPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * @!method refreshPromise()\n * Returns a 'thenable' promise.\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means refreshed credentials information has been loaded into the object\n * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Calling the `refreshPromise` method.\n * var promise = credProvider.refreshPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @note Subclasses should override this class to reset the\n * {accessKeyId}, {secretAccessKey} and optional {sessionToken}\n * on the credentials object and then call the callback with\n * any error information.\n * @see get\n */\n refresh: function refresh(callback) {\n this.expired = false;\n callback();\n },\n\n /**\n * @api private\n * @param callback\n */\n coalesceRefresh: function coalesceRefresh(callback, sync) {\n var self = this;\n if (self.refreshCallbacks.push(callback) === 1) {\n self.load(function onLoad(err) {\n AWS.util.arrayEach(self.refreshCallbacks, function(callback) {\n if (sync) {\n callback(err);\n } else {\n // callback could throw, so defer to ensure all callbacks are notified\n AWS.util.defer(function () {\n callback(err);\n });\n }\n });\n self.refreshCallbacks.length = 0;\n });\n }\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n callback();\n }\n});\n\n/**\n * @api private\n */\nAWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency);\n this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getPromise;\n delete this.prototype.refreshPromise;\n};\n\nAWS.util.addPromises(AWS.Credentials);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * AWS.ChainableTemporaryCredentials differs from AWS.TemporaryCredentials in\n * the way masterCredentials and refreshes are handled.\n * AWS.ChainableTemporaryCredentials refreshes expired credentials using the\n * masterCredentials passed by the user to support chaining of STS credentials.\n * However, AWS.TemporaryCredentials recursively collapses the masterCredentials\n * during instantiation, precluding the ability to refresh credentials which\n * require intermediate, temporary credentials.\n *\n * For example, if the application should use RoleA, which must be assumed from\n * RoleB, and the environment provides credentials which can assume RoleB, then\n * AWS.ChainableTemporaryCredentials must be used to support refreshing the\n * temporary credentials for RoleA:\n *\n * ```javascript\n * var roleACreds = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleA'},\n * masterCredentials: new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleB'},\n * masterCredentials: new AWS.EnvironmentCredentials('AWS')\n * })\n * });\n * ```\n *\n * If AWS.TemporaryCredentials had been used in the previous example,\n * `roleACreds` would fail to refresh because `roleACreds` would\n * use the environment credentials for the AssumeRole request.\n *\n * Another difference is that AWS.ChainableTemporaryCredentials creates the STS\n * service instance during instantiation while AWS.TemporaryCredentials creates\n * the STS service instance during the first refresh. Creating the service\n * instance during instantiation effectively captures the master credentials\n * from the global config, so that subsequent changes to the global config do\n * not affect the master credentials used to refresh the temporary credentials.\n *\n * This allows an instance of AWS.ChainableTemporaryCredentials to be assigned\n * to AWS.config.credentials:\n *\n * ```javascript\n * var envCreds = new AWS.EnvironmentCredentials('AWS');\n * AWS.config.credentials = envCreds;\n * // masterCredentials will be envCreds\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * Similarly, to use the CredentialProviderChain's default providers as the\n * master credentials, simply create a new instance of\n * AWS.ChainableTemporaryCredentials:\n *\n * ```javascript\n * AWS.config.credentials = new ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * @!attribute service\n * @return [AWS.STS] the STS service instance used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.ChainableTemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @param options [map] a set of options\n * @option options params [map] ({}) a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role. If a `SerialNumber` parameter is passed in, {tokenCodeFn} must\n * also be passed in or an error will be thrown.\n * @option options masterCredentials [AWS.Credentials] the master credentials\n * used to get and refresh temporary credentials from AWS STS. By default,\n * AWS.config.credentials or AWS.config.credentialProvider will be used.\n * @option options tokenCodeFn [Function] (null) Function to provide\n * `TokenCode`, if `SerialNumber` is provided for profile in {params}. Function\n * is called with value of `SerialNumber` and `callback`, and should provide\n * the `TokenCode` or an error to the callback in the format\n * `callback(err, token)`.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials'\n * }\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function ChainableTemporaryCredentials(options) {\n AWS.Credentials.call(this);\n options = options || {};\n this.errorCode = 'ChainableTemporaryCredentialsProviderFailure';\n this.expired = true;\n this.tokenCodeFn = null;\n\n var params = AWS.util.copy(options.params) || {};\n if (params.RoleArn) {\n params.RoleSessionName = params.RoleSessionName || 'temporary-credentials';\n }\n if (params.SerialNumber) {\n if (!options.tokenCodeFn || (typeof options.tokenCodeFn !== 'function')) {\n throw new AWS.util.error(\n new Error('tokenCodeFn must be a function when params.SerialNumber is given'),\n {code: this.errorCode}\n );\n } else {\n this.tokenCodeFn = options.tokenCodeFn;\n }\n }\n var config = AWS.util.merge(\n {\n params: params,\n credentials: options.masterCredentials || AWS.config.credentials\n },\n options.stsConfig || {}\n );\n this.service = new STS(config);\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n var operation = self.service.config.params.RoleArn ? 'assumeRole' : 'getSessionToken';\n this.getTokenCode(function (err, tokenCode) {\n var params = {};\n if (err) {\n callback(err);\n return;\n }\n if (tokenCode) {\n params.TokenCode = tokenCode;\n }\n self.service[operation](params, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n getTokenCode: function getTokenCode(callback) {\n var self = this;\n if (this.tokenCodeFn) {\n this.tokenCodeFn(this.service.config.params.SerialNumber, function (err, token) {\n if (err) {\n var message = err;\n if (err instanceof Error) {\n message = err.message;\n }\n callback(\n AWS.util.error(\n new Error('Error fetching MFA token: ' + message),\n { code: self.errorCode}\n )\n );\n return;\n }\n callback(null, token);\n });\n } else {\n callback(null);\n }\n }\n});\n","var AWS = require('../core');\nvar CognitoIdentity = require('../../clients/cognitoidentity');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation using\n * the Amazon Cognito Identity service.\n *\n * By default this provider gets credentials using the\n * {AWS.CognitoIdentity.getCredentialsForIdentity} service operation, which\n * requires either an `IdentityId` or an `IdentityPoolId` (Amazon Cognito\n * Identity Pool ID), which is used to call {AWS.CognitoIdentity.getId} to\n * obtain an `IdentityId`. If the identity or identity pool is not configured in\n * the Amazon Cognito Console to use IAM roles with the appropriate permissions,\n * then additionally a `RoleArn` is required containing the ARN of the IAM trust\n * policy for the Amazon Cognito role that the user will log into. If a `RoleArn`\n * is provided, then this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation, after first getting an\n * Open ID token from {AWS.CognitoIdentity.getOpenIdToken}.\n *\n * In addition, if this credential provider is used to provide authenticated\n * login, the `Logins` map may be set to the tokens provided by the respective\n * identity providers. See {constructor} for an example on creating a credentials\n * object with proper property values.\n *\n * DISCLAIMER: This convenience method leverages the Enhanced (simplified) Authflow. The underlying\n * implementation calls Cognito's `getId()` and `GetCredentialsForIdentity()`.\n * In this flow there is no way to explicitly set a session policy, resulting in\n * STS attaching the default policy and limiting the permissions of the federated role.\n * To be able to explicitly set a session policy, do not use this convenience method.\n * Instead, you can use the Cognito client to call `getId()`, `GetOpenIdToken()` and then use\n * that token with your desired session policy to call STS's `AssumeRoleWithWebIdentity()`\n * For further reading refer to: https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.Logins['graph.facebook.com'] = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.CognitoIdentity.getId},\n * {AWS.CognitoIdentity.getOpenIdToken}, and\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.CognitoIdentity.getCredentialsForIdentity}, or\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n * @!attribute identityId\n * @return [String] the Cognito ID returned by the last call to\n * {AWS.CognitoIdentity.getOpenIdToken}. This ID represents the actual\n * final resolved identity ID from Amazon Cognito.\n */\nAWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * @api private\n */\n localStorageKey: {\n id: 'aws.cognito.identity-id.',\n providers: 'aws.cognito.identity-providers.'\n },\n\n /**\n * Creates a new credentials object.\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n *\n * // either IdentityPoolId or IdentityId is required\n * // See the IdentityPoolId param for AWS.CognitoIdentity.getID (linked below)\n * // See the IdentityId param for AWS.CognitoIdentity.getCredentialsForIdentity\n * // or AWS.CognitoIdentity.getOpenIdToken (linked below)\n * IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030',\n * IdentityId: 'us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f'\n *\n * // optional, only necessary when the identity pool is not configured\n * // to use IAM roles in the Amazon Cognito Console\n * // See the RoleArn param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleArn: 'arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity',\n *\n * // optional tokens, used for authenticated login\n * // See the Logins param for AWS.CognitoIdentity.getID (linked below)\n * Logins: {\n * 'graph.facebook.com': 'FBTOKEN',\n * 'www.amazon.com': 'AMAZONTOKEN',\n * 'accounts.google.com': 'GOOGLETOKEN',\n * 'api.twitter.com': 'TWITTERTOKEN',\n * 'www.digits.com': 'DIGITSTOKEN'\n * },\n *\n * // optional name, defaults to web-identity\n * // See the RoleSessionName param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleSessionName: 'web',\n *\n * // optional, only necessary when application runs in a browser\n * // and multiple users are signed in at once, used for caching\n * LoginId: 'example@gmail.com'\n *\n * }, {\n * // optionally provide configuration to apply to the underlying service clients\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // region should match the region your identity pool is located in\n * region: 'us-east-1',\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.CognitoIdentity.getId\n * @see AWS.CognitoIdentity.getCredentialsForIdentity\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.CognitoIdentity.getOpenIdToken\n * @see AWS.Config\n * @note If a region is not provided in the global AWS.config, or\n * specified in the `clientConfig` to the CognitoIdentityCredentials\n * constructor, you may encounter a 'Missing credentials in config' error\n * when calling making a service call.\n */\n constructor: function CognitoIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.data = null;\n this._identityId = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n this.loadCachedId();\n var self = this;\n Object.defineProperty(this, 'identityId', {\n get: function() {\n self.loadCachedId();\n return self._identityId || self.params.IdentityId;\n },\n set: function(identityId) {\n self._identityId = identityId;\n }\n });\n },\n\n /**\n * Refreshes credentials using {AWS.CognitoIdentity.getCredentialsForIdentity},\n * or {AWS.STS.assumeRoleWithWebIdentity}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.data = null;\n self._identityId = null;\n self.getId(function(err) {\n if (!err) {\n if (!self.params.RoleArn) {\n self.getCredentialsForIdentity(callback);\n } else {\n self.getCredentialsFromSTS(callback);\n }\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * Clears the cached Cognito ID associated with the currently configured\n * identity pool ID. Use this to manually invalidate your cache if\n * the identity pool ID was deleted.\n */\n clearCachedId: function clearCache() {\n this._identityId = null;\n delete this.params.IdentityId;\n\n var poolId = this.params.IdentityPoolId;\n var loginId = this.params.LoginId || '';\n delete this.storage[this.localStorageKey.id + poolId + loginId];\n delete this.storage[this.localStorageKey.providers + poolId + loginId];\n },\n\n /**\n * @api private\n */\n clearIdOnNotAuthorized: function clearIdOnNotAuthorized(err) {\n var self = this;\n if (err.code == 'NotAuthorizedException') {\n self.clearCachedId();\n }\n },\n\n /**\n * Retrieves a Cognito ID, loading from cache if it was already retrieved\n * on this device.\n *\n * @callback callback function(err, identityId)\n * @param err [Error, null] an error object if the call failed or null if\n * it succeeded.\n * @param identityId [String, null] if successful, the callback will return\n * the Cognito ID.\n * @note If not loaded explicitly, the Cognito ID is loaded and stored in\n * localStorage in the browser environment of a device.\n * @api private\n */\n getId: function getId(callback) {\n var self = this;\n if (typeof self.params.IdentityId === 'string') {\n return callback(null, self.params.IdentityId);\n }\n\n self.cognito.getId(function(err, data) {\n if (!err && data.IdentityId) {\n self.params.IdentityId = data.IdentityId;\n callback(null, data.IdentityId);\n } else {\n callback(err);\n }\n });\n },\n\n\n /**\n * @api private\n */\n loadCredentials: function loadCredentials(data, credentials) {\n if (!data || !credentials) return;\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n },\n\n /**\n * @api private\n */\n getCredentialsForIdentity: function getCredentialsForIdentity(callback) {\n var self = this;\n self.cognito.getCredentialsForIdentity(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.data = data;\n self.loadCredentials(self.data, self);\n } else {\n self.clearIdOnNotAuthorized(err);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n getCredentialsFromSTS: function getCredentialsFromSTS(callback) {\n var self = this;\n self.cognito.getOpenIdToken(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.params.WebIdentityToken = data.Token;\n self.webIdentityCredentials.refresh(function(webErr) {\n if (!webErr) {\n self.data = self.webIdentityCredentials.data;\n self.sts.credentialsFrom(self.data, self);\n }\n callback(webErr);\n });\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * @api private\n */\n loadCachedId: function loadCachedId() {\n var self = this;\n\n // in the browser we source default IdentityId from localStorage\n if (AWS.util.isBrowser() && !self.params.IdentityId) {\n var id = self.getStorage('id');\n if (id && self.params.Logins) {\n var actualProviders = Object.keys(self.params.Logins);\n var cachedProviders =\n (self.getStorage('providers') || '').split(',');\n\n // only load ID if at least one provider used this ID before\n var intersect = cachedProviders.filter(function(n) {\n return actualProviders.indexOf(n) !== -1;\n });\n if (intersect.length !== 0) {\n self.params.IdentityId = id;\n }\n } else if (id) {\n self.params.IdentityId = id;\n }\n }\n },\n\n /**\n * @api private\n */\n createClients: function() {\n var clientConfig = this._clientConfig;\n this.webIdentityCredentials = this.webIdentityCredentials ||\n new AWS.WebIdentityCredentials(this.params, clientConfig);\n if (!this.cognito) {\n var cognitoConfig = AWS.util.merge({}, clientConfig);\n cognitoConfig.params = this.params;\n this.cognito = new CognitoIdentity(cognitoConfig);\n }\n this.sts = this.sts || new STS(clientConfig);\n },\n\n /**\n * @api private\n */\n cacheId: function cacheId(data) {\n this._identityId = data.IdentityId;\n this.params.IdentityId = this._identityId;\n\n // cache this IdentityId in browser localStorage if possible\n if (AWS.util.isBrowser()) {\n this.setStorage('id', data.IdentityId);\n\n if (this.params.Logins) {\n this.setStorage('providers', Object.keys(this.params.Logins).join(','));\n }\n }\n },\n\n /**\n * @api private\n */\n getStorage: function getStorage(key) {\n return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')];\n },\n\n /**\n * @api private\n */\n setStorage: function setStorage(key, val) {\n try {\n this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val;\n } catch (_) {}\n },\n\n /**\n * @api private\n */\n storage: (function() {\n try {\n var storage = AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ?\n window.localStorage : {};\n\n // Test set/remove which would throw an error in Safari's private browsing\n storage['aws.test-storage'] = 'foobar';\n delete storage['aws.test-storage'];\n\n return storage;\n } catch (_) {\n return {};\n }\n })()\n});\n","var AWS = require('../core');\n\n/**\n * Creates a credential provider chain that searches for AWS credentials\n * in a list of credential providers specified by the {providers} property.\n *\n * By default, the chain will use the {defaultProviders} to resolve credentials.\n * These providers will look in the environment using the\n * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes.\n *\n * ## Setting Providers\n *\n * Each provider in the {providers} list should be a function that returns\n * a {AWS.Credentials} object, or a hardcoded credentials object. The function\n * form allows for delayed execution of the credential construction.\n *\n * ## Resolving Credentials from a Chain\n *\n * Call {resolve} to return the first valid credential object that can be\n * loaded by the provider chain.\n *\n * For example, to resolve a chain with a custom provider that checks a file\n * on disk after the set of {defaultProviders}:\n *\n * ```javascript\n * var diskProvider = new AWS.FileSystemCredentials('./creds.json');\n * var chain = new AWS.CredentialProviderChain();\n * chain.providers.push(diskProvider);\n * chain.resolve();\n * ```\n *\n * The above code will return the `diskProvider` object if the\n * file contains credentials and the `defaultProviders` do not contain\n * any credential settings.\n *\n * @!attribute providers\n * @return [Array]\n * a list of credentials objects or functions that return credentials\n * objects. If the provider is a function, the function will be\n * executed lazily when the provider needs to be checked for valid\n * credentials. By default, this object will be set to the\n * {defaultProviders}.\n * @see defaultProviders\n */\nAWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, {\n\n /**\n * Creates a new CredentialProviderChain with a default set of providers\n * specified by {defaultProviders}.\n */\n constructor: function CredentialProviderChain(providers) {\n if (providers) {\n this.providers = providers;\n } else {\n this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0);\n }\n this.resolveCallbacks = [];\n },\n\n /**\n * @!method resolvePromise()\n * Returns a 'thenable' promise.\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(credentials)\n * Called if the promise is fulfilled and the provider resolves the chain\n * to a credentials object\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param err [Error] the error object returned if no credentials are found.\n * @return [Promise] A promise that represents the state of the `resolve` method call.\n * @example Calling the `resolvePromise` method.\n * var promise = chain.resolvePromise();\n * promise.then(function(credentials) { ... }, function(err) { ... });\n */\n\n /**\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * @callback callback function(err, credentials)\n * Called when the provider resolves the chain to a credentials object\n * or null if no credentials can be found.\n *\n * @param err [Error] the error object returned if no credentials are\n * found.\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @return [AWS.CredentialProviderChain] the provider, for chaining.\n */\n resolve: function resolve(callback) {\n var self = this;\n if (self.providers.length === 0) {\n callback(new Error('No providers'));\n return self;\n }\n\n if (self.resolveCallbacks.push(callback) === 1) {\n var index = 0;\n var providers = self.providers.slice(0);\n\n function resolveNext(err, creds) {\n if ((!err && creds) || index === providers.length) {\n AWS.util.arrayEach(self.resolveCallbacks, function (callback) {\n callback(err, creds);\n });\n self.resolveCallbacks.length = 0;\n return;\n }\n\n var provider = providers[index++];\n if (typeof provider === 'function') {\n creds = provider.call();\n } else {\n creds = provider;\n }\n\n if (creds.get) {\n creds.get(function (getErr) {\n resolveNext(getErr, getErr ? null : creds);\n });\n } else {\n resolveNext(null, creds);\n }\n }\n\n resolveNext();\n }\n\n return self;\n }\n});\n\n/**\n * The default set of providers used by a vanilla CredentialProviderChain.\n *\n * In the browser:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = []\n * ```\n *\n * In Node.js:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = [\n * function () { return new AWS.EnvironmentCredentials('AWS'); },\n * function () { return new AWS.EnvironmentCredentials('AMAZON'); },\n * function () { return new AWS.SsoCredentials(); },\n * function () { return new AWS.SharedIniFileCredentials(); },\n * function () { return new AWS.ECSCredentials(); },\n * function () { return new AWS.ProcessCredentials(); },\n * function () { return new AWS.TokenFileWebIdentityCredentials(); },\n * function () { return new AWS.EC2MetadataCredentials() }\n * ]\n * ```\n */\nAWS.CredentialProviderChain.defaultProviders = [];\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.resolvePromise;\n};\n\nAWS.util.addPromises(AWS.CredentialProviderChain);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS SAML support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithSAML} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given, as well as a `PrincipalArn`\n * representing the ARN for the SAML identity provider. In addition, the\n * `SAMLAssertion` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the SAMLAssertion, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.SAMLAssertion = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithSAML}. To update the token, set the\n * `params.SAMLAssertion` property.\n */\nAWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithSAML)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.SAMLCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole',\n * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal',\n * SAMLAssertion: 'base64-token', // base64-encoded token from IdP\n * });\n * @see AWS.STS.assumeRoleWithSAML\n */\n constructor: function SAMLCredentials(params) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithSAML}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithSAML(function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * @note AWS.TemporaryCredentials is deprecated, but remains available for\n * backwards compatibility. {AWS.ChainableTemporaryCredentials} is the\n * preferred class for temporary credentials.\n *\n * To setup temporary credentials, configure a set of master credentials\n * using the standard credentials providers (environment, EC2 instance metadata,\n * or from the filesystem), then set the global credentials to a new\n * temporary credentials object:\n *\n * ```javascript\n * // Note that environment credentials are loaded by default,\n * // the following line is shown for clarity:\n * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS');\n *\n * // Now set temporary credentials seeded from the master credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n *\n * // subsequent requests will now use temporary credentials from AWS STS.\n * new AWS.S3().listBucket(function(err, data) { ... });\n * ```\n *\n * @!attribute masterCredentials\n * @return [AWS.Credentials] the master (non-temporary) credentials used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @note In order to create temporary credentials, you first need to have\n * \"master\" credentials configured in {AWS.Config.credentials}. These\n * master credentials are necessary to retrieve the temporary credentials,\n * as well as refresh the credentials when they expire.\n * @param params [map] a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role.\n * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials\n * used to get and refresh temporary credentials from AWS STS.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.TemporaryCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials',\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function TemporaryCredentials(params, masterCredentials) {\n AWS.Credentials.call(this);\n this.loadMasterCredentials(masterCredentials);\n this.expired = true;\n\n this.params = params || {};\n if (this.params.RoleArn) {\n this.params.RoleSessionName =\n this.params.RoleSessionName || 'temporary-credentials';\n }\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh (callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load (callback) {\n var self = this;\n self.createClients();\n self.masterCredentials.get(function () {\n self.service.config.credentials = self.masterCredentials;\n var operation = self.params.RoleArn ?\n self.service.assumeRole : self.service.getSessionToken;\n operation.call(self.service, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n loadMasterCredentials: function loadMasterCredentials (masterCredentials) {\n this.masterCredentials = masterCredentials || AWS.config.credentials;\n while (this.masterCredentials.masterCredentials) {\n this.masterCredentials = this.masterCredentials.masterCredentials;\n }\n\n if (typeof this.masterCredentials.get !== 'function') {\n this.masterCredentials = new AWS.Credentials(this.masterCredentials);\n }\n },\n\n /**\n * @api private\n */\n createClients: function () {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given. In addition, the\n * `WebIdentityToken` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn` and `WebIdentityToken` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.WebIdentityToken = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n */\nAWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithWebIdentity)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.WebIdentityCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity',\n * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service\n * RoleSessionName: 'web' // optional name, defaults to web-identity\n * }, {\n * // optionally provide configuration to apply to the underlying AWS.STS service client\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.Config\n */\n constructor: function WebIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity';\n this.data = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithWebIdentity(function (err, data) {\n self.data = null;\n if (!err) {\n self.data = data;\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n if (!this.service) {\n var stsConfig = AWS.util.merge({}, this._clientConfig);\n stsConfig.params = this.params;\n this.service = new STS(stsConfig);\n }\n }\n\n});\n","var AWS = require('./core');\nvar util = require('./util');\nvar endpointDiscoveryEnabledEnvs = ['AWS_ENABLE_ENDPOINT_DISCOVERY', 'AWS_ENDPOINT_DISCOVERY_ENABLED'];\n\n/**\n * Generate key (except resources and operation part) to index the endpoints in the cache\n * If input shape has endpointdiscoveryid trait then use\n * accessKey + operation + resources + region + service as cache key\n * If input shape doesn't have endpointdiscoveryid trait then use\n * accessKey + region + service as cache key\n * @return [map] object with keys to index endpoints.\n * @api private\n */\nfunction getCacheKey(request) {\n var service = request.service;\n var api = service.api || {};\n var operations = api.operations;\n var identifiers = {};\n if (service.config.region) {\n identifiers.region = service.config.region;\n }\n if (api.serviceId) {\n identifiers.serviceId = api.serviceId;\n }\n if (service.config.credentials.accessKeyId) {\n identifiers.accessKeyId = service.config.credentials.accessKeyId;\n }\n return identifiers;\n}\n\n/**\n * Recursive helper for marshallCustomIdentifiers().\n * Looks for required string input members that have 'endpointdiscoveryid' trait.\n * @api private\n */\nfunction marshallCustomIdentifiersHelper(result, params, shape) {\n if (!shape || params === undefined || params === null) return;\n if (shape.type === 'structure' && shape.required && shape.required.length > 0) {\n util.arrayEach(shape.required, function(name) {\n var memberShape = shape.members[name];\n if (memberShape.endpointDiscoveryId === true) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n result[locationName] = String(params[name]);\n } else {\n marshallCustomIdentifiersHelper(result, params[name], memberShape);\n }\n });\n }\n}\n\n/**\n * Get custom identifiers for cache key.\n * Identifies custom identifiers by checking each shape's `endpointDiscoveryId` trait.\n * @param [object] request object\n * @param [object] input shape of the given operation's api\n * @api private\n */\nfunction marshallCustomIdentifiers(request, shape) {\n var identifiers = {};\n marshallCustomIdentifiersHelper(identifiers, request.params, shape);\n return identifiers;\n}\n\n/**\n * Call endpoint discovery operation when it's optional.\n * When endpoint is available in cache then use the cached endpoints. If endpoints\n * are unavailable then use regional endpoints and call endpoint discovery operation\n * asynchronously. This is turned off by default.\n * @param [object] request object\n * @api private\n */\nfunction optionalDiscoverEndpoint(request) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var endpoints = AWS.endpointCache.get(cacheKey);\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //or endpoint operation just failed in 1 minute\n return;\n } else if (endpoints && endpoints.length > 0) {\n //found endpoint record from cache\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n } else {\n //endpoint record not in cache or outdated. make discovery operation\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n addApiVersionHeader(endpointRequest);\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n endpointRequest.removeListener('retry', AWS.EventListeners.Core.RETRY_CHECK);\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1\n }]);\n endpointRequest.send(function(err, data) {\n if (data && data.Endpoints) {\n AWS.endpointCache.put(cacheKey, data.Endpoints);\n } else if (err) {\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1 //not to make more endpoint operation in next 1 minute\n }]);\n }\n });\n }\n}\n\nvar requestQueue = {};\n\n/**\n * Call endpoint discovery operation when it's required.\n * When endpoint is available in cache then use cached ones. If endpoints are\n * unavailable then SDK should call endpoint operation then use returned new\n * endpoint for the api call. SDK will automatically attempt to do endpoint\n * discovery. This is turned off by default\n * @param [object] request object\n * @api private\n */\nfunction requiredDiscoverEndpoint(request, done) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var cacheKeyStr = AWS.EndpointCache.getKeyString(cacheKey);\n var endpoints = AWS.endpointCache.get(cacheKeyStr); //endpoint cache also accepts string keys\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //push request object to a pending queue\n if (!requestQueue[cacheKeyStr]) requestQueue[cacheKeyStr] = [];\n requestQueue[cacheKeyStr].push({request: request, callback: done});\n return;\n } else if (endpoints && endpoints.length > 0) {\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n done();\n } else {\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n addApiVersionHeader(endpointRequest);\n\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKeyStr, [{\n Address: '',\n CachePeriodInMinutes: 60 //long-live cache\n }]);\n endpointRequest.send(function(err, data) {\n if (err) {\n request.response.error = util.error(err, { retryable: false });\n AWS.endpointCache.remove(cacheKey);\n\n //fail all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.response.error = util.error(err, { retryable: false });\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n } else if (data) {\n AWS.endpointCache.put(cacheKeyStr, data.Endpoints);\n request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n\n //update the endpoint for all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n }\n done();\n });\n }\n}\n\n/**\n * add api version header to endpoint operation\n * @api private\n */\nfunction addApiVersionHeader(endpointRequest) {\n var api = endpointRequest.service.api;\n var apiVersion = api.apiVersion;\n if (apiVersion && !endpointRequest.httpRequest.headers['x-amz-api-version']) {\n endpointRequest.httpRequest.headers['x-amz-api-version'] = apiVersion;\n }\n}\n\n/**\n * If api call gets invalid endpoint exception, SDK should attempt to remove the invalid\n * endpoint from cache.\n * @api private\n */\nfunction invalidateCachedEndpoints(response) {\n var error = response.error;\n var httpResponse = response.httpResponse;\n if (error &&\n (error.code === 'InvalidEndpointException' || httpResponse.statusCode === 421)\n ) {\n var request = response.request;\n var operations = request.service.api.operations || {};\n var inputShape = operations[request.operation] ? operations[request.operation].input : undefined;\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operations[request.operation]) cacheKey.operation = operations[request.operation].name;\n }\n AWS.endpointCache.remove(cacheKey);\n }\n}\n\n/**\n * If endpoint is explicitly configured, SDK should not do endpoint discovery in anytime.\n * @param [object] client Service client object.\n * @api private\n */\nfunction hasCustomEndpoint(client) {\n //if set endpoint is set for specific client, enable endpoint discovery will raise an error.\n if (client._originalConfig && client._originalConfig.endpoint && client._originalConfig.endpointDiscoveryEnabled === true) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.'\n });\n };\n var svcConfig = AWS.config[client.serviceIdentifier] || {};\n return Boolean(AWS.config.endpoint || svcConfig.endpoint || (client._originalConfig && client._originalConfig.endpoint));\n}\n\n/**\n * @api private\n */\nfunction isFalsy(value) {\n return ['false', '0'].indexOf(value) >= 0;\n}\n\n/**\n * If endpoint discovery should perform for this request when no operation requires endpoint\n * discovery for the given service.\n * SDK performs config resolution in order like below:\n * 1. If set in client configuration.\n * 2. If set in env AWS_ENABLE_ENDPOINT_DISCOVERY.\n * 3. If set in shared ini config file with key 'endpoint_discovery_enabled'.\n * @param [object] request request object.\n * @returns [boolean|undefined] if endpoint discovery config is not set in any source, this\n * function returns undefined\n * @api private\n */\nfunction resolveEndpointDiscoveryConfig(request) {\n var service = request.service || {};\n if (service.config.endpointDiscoveryEnabled !== undefined) {\n return service.config.endpointDiscoveryEnabled;\n }\n\n //shared ini file is only available in Node\n //not to check env in browser\n if (util.isBrowser()) return undefined;\n\n // If any of recognized endpoint discovery config env is set\n for (var i = 0; i < endpointDiscoveryEnabledEnvs.length; i++) {\n var env = endpointDiscoveryEnabledEnvs[i];\n if (Object.prototype.hasOwnProperty.call(process.env, env)) {\n if (process.env[env] === '' || process.env[env] === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'environmental variable ' + env + ' cannot be set to nothing'\n });\n }\n return !isFalsy(process.env[env]);\n }\n }\n\n var configFile = {};\n try {\n configFile = AWS.util.iniLoader ? AWS.util.iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[AWS.util.sharedConfigFileEnv]\n }) : {};\n } catch (e) {}\n var sharedFileConfig = configFile[\n process.env.AWS_PROFILE || AWS.util.defaultProfile\n ] || {};\n if (Object.prototype.hasOwnProperty.call(sharedFileConfig, 'endpoint_discovery_enabled')) {\n if (sharedFileConfig.endpoint_discovery_enabled === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'config file entry \\'endpoint_discovery_enabled\\' cannot be set to nothing'\n });\n }\n return !isFalsy(sharedFileConfig.endpoint_discovery_enabled);\n }\n return undefined;\n}\n\n/**\n * attach endpoint discovery logic to request object\n * @param [object] request\n * @api private\n */\nfunction discoverEndpoint(request, done) {\n var service = request.service || {};\n if (hasCustomEndpoint(service) || request.isPresigned()) return done();\n\n var operations = service.api.operations || {};\n var operationModel = operations[request.operation];\n var isEndpointDiscoveryRequired = operationModel ? operationModel.endpointDiscoveryRequired : 'NULL';\n var isEnabled = resolveEndpointDiscoveryConfig(request);\n var hasRequiredEndpointDiscovery = service.api.hasRequiredEndpointDiscovery;\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // Once a customer enables endpoint discovery, the SDK should start appending\n // the string endpoint-discovery to the user-agent on all requests.\n request.httpRequest.appendToUserAgent('endpoint-discovery');\n }\n switch (isEndpointDiscoveryRequired) {\n case 'OPTIONAL':\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // For a given service; if at least one operation requires endpoint discovery then the SDK must enable endpoint discovery\n // by default for all operations of that service, including operations where endpoint discovery is optional.\n optionalDiscoverEndpoint(request);\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n }\n done();\n break;\n case 'REQUIRED':\n if (isEnabled === false) {\n // For a given operation; if endpoint discovery is required and it has been disabled on the SDK client,\n // then the SDK must return a clear and actionable exception.\n request.response.error = util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Endpoint Discovery is disabled but ' + service.api.className + '.' + request.operation +\n '() requires it. Please check your configurations.'\n });\n done();\n break;\n }\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n requiredDiscoverEndpoint(request, done);\n break;\n case 'NULL':\n default:\n done();\n break;\n }\n}\n\nmodule.exports = {\n discoverEndpoint: discoverEndpoint,\n requiredDiscoverEndpoint: requiredDiscoverEndpoint,\n optionalDiscoverEndpoint: optionalDiscoverEndpoint,\n marshallCustomIdentifiers: marshallCustomIdentifiers,\n getCacheKey: getCacheKey,\n invalidateCachedEndpoint: invalidateCachedEndpoints,\n};\n","var AWS = require('../core');\nvar util = AWS.util;\nvar typeOf = require('./types').typeOf;\nvar DynamoDBSet = require('./set');\nvar NumberValue = require('./numberValue');\n\nAWS.DynamoDB.Converter = {\n /**\n * Convert a JavaScript value to its equivalent DynamoDB AttributeValue type\n *\n * @param data [any] The data to convert to a DynamoDB AttributeValue\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n * @return [map] An object in the Amazon DynamoDB AttributeValue format\n *\n * @see AWS.DynamoDB.Converter.marshall AWS.DynamoDB.Converter.marshall to\n * convert entire records (rather than individual attributes)\n */\n input: function convertInput(data, options) {\n options = options || {};\n var type = typeOf(data);\n if (type === 'Object') {\n return formatMap(data, options);\n } else if (type === 'Array') {\n return formatList(data, options);\n } else if (type === 'Set') {\n return formatSet(data, options);\n } else if (type === 'String') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { S: data };\n } else if (type === 'Number' || type === 'NumberValue') {\n return { N: data.toString() };\n } else if (type === 'Binary') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { B: data };\n } else if (type === 'Boolean') {\n return { BOOL: data };\n } else if (type === 'null') {\n return { NULL: true };\n } else if (type !== 'undefined' && type !== 'Function') {\n // this value has a custom constructor\n return formatMap(data, options);\n }\n },\n\n /**\n * Convert a JavaScript object into a DynamoDB record.\n *\n * @param data [any] The data to convert to a DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object in the DynamoDB record format.\n *\n * @example Convert a JavaScript object into a DynamoDB record\n * var marshalled = AWS.DynamoDB.Converter.marshall({\n * string: 'foo',\n * list: ['fizz', 'buzz', 'pop'],\n * map: {\n * nestedMap: {\n * key: 'value',\n * }\n * },\n * number: 123,\n * nullValue: null,\n * boolValue: true,\n * stringSet: new DynamoDBSet(['foo', 'bar', 'baz'])\n * });\n */\n marshall: function marshallItem(data, options) {\n return AWS.DynamoDB.Converter.input(data, options).M;\n },\n\n /**\n * Convert a DynamoDB AttributeValue object to its equivalent JavaScript type.\n *\n * @param data [map] An object in the Amazon DynamoDB AttributeValue format\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [Object|Array|String|Number|Boolean|null]\n *\n * @see AWS.DynamoDB.Converter.unmarshall AWS.DynamoDB.Converter.unmarshall to\n * convert entire records (rather than individual attributes)\n */\n output: function convertOutput(data, options) {\n options = options || {};\n var list, map, i;\n for (var type in data) {\n var values = data[type];\n if (type === 'M') {\n map = {};\n for (var key in values) {\n map[key] = convertOutput(values[key], options);\n }\n return map;\n } else if (type === 'L') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertOutput(values[i], options));\n }\n return list;\n } else if (type === 'SS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(values[i] + '');\n }\n return new DynamoDBSet(list);\n } else if (type === 'NS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertNumber(values[i], options.wrapNumbers));\n }\n return new DynamoDBSet(list);\n } else if (type === 'BS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(AWS.util.buffer.toBuffer(values[i]));\n }\n return new DynamoDBSet(list);\n } else if (type === 'S') {\n return values + '';\n } else if (type === 'N') {\n return convertNumber(values, options.wrapNumbers);\n } else if (type === 'B') {\n return util.buffer.toBuffer(values);\n } else if (type === 'BOOL') {\n return (values === 'true' || values === 'TRUE' || values === true);\n } else if (type === 'NULL') {\n return null;\n }\n }\n },\n\n /**\n * Convert a DynamoDB record into a JavaScript object.\n *\n * @param data [any] The DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object whose properties have been converted from\n * DynamoDB's AttributeValue format into their corresponding native\n * JavaScript types.\n *\n * @example Convert a record received from a DynamoDB stream\n * var unmarshalled = AWS.DynamoDB.Converter.unmarshall({\n * string: {S: 'foo'},\n * list: {L: [{S: 'fizz'}, {S: 'buzz'}, {S: 'pop'}]},\n * map: {\n * M: {\n * nestedMap: {\n * M: {\n * key: {S: 'value'}\n * }\n * }\n * }\n * },\n * number: {N: '123'},\n * nullValue: {NULL: true},\n * boolValue: {BOOL: true}\n * });\n */\n unmarshall: function unmarshall(data, options) {\n return AWS.DynamoDB.Converter.output({M: data}, options);\n }\n};\n\n/**\n * @api private\n * @param data [Array]\n * @param options [map]\n */\nfunction formatList(data, options) {\n var list = {L: []};\n for (var i = 0; i < data.length; i++) {\n list['L'].push(AWS.DynamoDB.Converter.input(data[i], options));\n }\n return list;\n}\n\n/**\n * @api private\n * @param value [String]\n * @param wrapNumbers [Boolean]\n */\nfunction convertNumber(value, wrapNumbers) {\n return wrapNumbers ? new NumberValue(value) : Number(value);\n}\n\n/**\n * @api private\n * @param data [map]\n * @param options [map]\n */\nfunction formatMap(data, options) {\n var map = {M: {}};\n for (var key in data) {\n var formatted = AWS.DynamoDB.Converter.input(data[key], options);\n if (formatted !== void 0) {\n map['M'][key] = formatted;\n }\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction formatSet(data, options) {\n options = options || {};\n var values = data.values;\n if (options.convertEmptyValues) {\n values = filterEmptySetValues(data);\n if (values.length === 0) {\n return AWS.DynamoDB.Converter.input(null);\n }\n }\n\n var map = {};\n switch (data.type) {\n case 'String': map['SS'] = values; break;\n case 'Binary': map['BS'] = values; break;\n case 'Number': map['NS'] = values.map(function (value) {\n return value.toString();\n });\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction filterEmptySetValues(set) {\n var nonEmptyValues = [];\n var potentiallyEmptyTypes = {\n String: true,\n Binary: true,\n Number: false\n };\n if (potentiallyEmptyTypes[set.type]) {\n for (var i = 0; i < set.values.length; i++) {\n if (set.values[i].length === 0) {\n continue;\n }\n nonEmptyValues.push(set.values[i]);\n }\n\n return nonEmptyValues;\n }\n\n return set.values;\n}\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.Converter;\n","var AWS = require('../core');\nvar Translator = require('./translator');\nvar DynamoDBSet = require('./set');\n\n/**\n * The document client simplifies working with items in Amazon DynamoDB\n * by abstracting away the notion of attribute values. This abstraction\n * annotates native JavaScript types supplied as input parameters, as well\n * as converts annotated response data to native JavaScript types.\n *\n * ## Marshalling Input and Unmarshalling Response Data\n *\n * The document client affords developers the use of native JavaScript types\n * instead of `AttributeValue`s to simplify the JavaScript development\n * experience with Amazon DynamoDB. JavaScript objects passed in as parameters\n * are marshalled into `AttributeValue` shapes required by Amazon DynamoDB.\n * Responses from DynamoDB are unmarshalled into plain JavaScript objects\n * by the `DocumentClient`. The `DocumentClient`, does not accept\n * `AttributeValue`s in favor of native JavaScript types.\n *\n * | JavaScript Type | DynamoDB AttributeValue |\n * |:----------------------------------------------------------------------:|-------------------------|\n * | String | S |\n * | Number | N |\n * | Boolean | BOOL |\n * | null | NULL |\n * | Array | L |\n * | Object | M |\n * | Buffer, File, Blob, ArrayBuffer, DataView, and JavaScript typed arrays | B |\n *\n * ## Support for Sets\n *\n * The `DocumentClient` offers a convenient way to create sets from\n * JavaScript Arrays. The type of set is inferred from the first element\n * in the array. DynamoDB supports string, number, and binary sets. To\n * learn more about supported types see the\n * [Amazon DynamoDB Data Model Documentation](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html)\n * For more information see {AWS.DynamoDB.DocumentClient.createSet}\n *\n */\nAWS.DynamoDB.DocumentClient = AWS.util.inherit({\n\n /**\n * Creates a DynamoDB document client with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.DynamoDB] An optional pre-configured instance\n * of the AWS.DynamoDB service object. This instance's config will be\n * copied to a new instance used by this client. You should not need to\n * retain a reference to the input object, and may destroy it or allow it\n * to be garbage collected.\n * @option options convertEmptyValues [Boolean] set to true if you would like\n * the document client to convert empty values (0-length strings, binary\n * buffers, and sets) to be converted to NULL types when persisting to\n * DynamoDB.\n * @option options wrapNumbers [Boolean] Set to true to return numbers as a\n * NumberValue object instead of converting them to native JavaScript numbers.\n * This allows for the safe round-trip transport of numbers of arbitrary size.\n * @see AWS.DynamoDB.constructor\n *\n */\n constructor: function DocumentClient(options) {\n var self = this;\n self.options = options || {};\n self.configure(self.options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n var self = this;\n self.service = options.service;\n self.bindServiceObject(options);\n self.attrValue = options.attrValue =\n self.service.api.operations.putItem.input.members.Item.value.shape;\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n var self = this;\n options = options || {};\n\n if (!self.service) {\n self.service = new AWS.DynamoDB(options);\n } else {\n var config = AWS.util.copy(self.service.config);\n self.service = new self.service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n makeServiceRequest: function(operation, params, callback) {\n var self = this;\n var request = self.service[operation](params);\n self.setupRequest(request);\n self.setupResponse(request);\n if (typeof callback === 'function') {\n request.send(callback);\n }\n return request;\n },\n\n /**\n * @api private\n */\n serviceClientOperationsMap: {\n batchGet: 'batchGetItem',\n batchWrite: 'batchWriteItem',\n delete: 'deleteItem',\n get: 'getItem',\n put: 'putItem',\n query: 'query',\n scan: 'scan',\n update: 'updateItem',\n transactGet: 'transactGetItems',\n transactWrite: 'transactWriteItems'\n },\n\n /**\n * Returns the attributes of one or more items from one or more tables\n * by delegating to `AWS.DynamoDB.batchGetItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchGetItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchGetItem\n * @example Get items from multiple tables\n * var params = {\n * RequestItems: {\n * 'Table-1': {\n * Keys: [\n * {\n * HashKey: 'haskey',\n * NumberRangeKey: 1\n * }\n * ]\n * },\n * 'Table-2': {\n * Keys: [\n * { foo: 'bar' },\n * ]\n * }\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Puts or deletes multiple items in one or more tables by delegating\n * to `AWS.DynamoDB.batchWriteItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchWriteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchWriteItem\n * @example Write to and delete from a table\n * var params = {\n * RequestItems: {\n * 'Table-1': [\n * {\n * DeleteRequest: {\n * Key: { HashKey: 'someKey' }\n * }\n * },\n * {\n * PutRequest: {\n * Item: {\n * HashKey: 'anotherKey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar' }\n * }\n * }\n * }\n * ]\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Deletes a single item in a table by primary key by delegating to\n * `AWS.DynamoDB.deleteItem()`\n *\n * Supply the same parameters as {AWS.DynamoDB.deleteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.deleteItem\n * @example Delete an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey',\n * NumberRangeKey: 1\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.delete(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n delete: function(params, callback) {\n var operation = this.serviceClientOperationsMap['delete'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns a set of attributes for the item with the given primary key\n * by delegating to `AWS.DynamoDB.getItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.getItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.getItem\n * @example Get an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey'\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.get(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n get: function(params, callback) {\n var operation = this.serviceClientOperationsMap['get'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a new item, or replaces an old item with a new item by\n * delegating to `AWS.DynamoDB.putItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.putItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.putItem\n * @example Create a new item in a table\n * var params = {\n * TableName : 'Table',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n put: function(params, callback) {\n var operation = this.serviceClientOperationsMap['put'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Edits an existing item's attributes, or adds a new item to the table if\n * it does not already exist by delegating to `AWS.DynamoDB.updateItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.updateItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.updateItem\n * @example Update an item with expressions\n * var params = {\n * TableName: 'Table',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.update(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n update: function(params, callback) {\n var operation = this.serviceClientOperationsMap['update'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns one or more items and item attributes by accessing every item\n * in a table or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.scan} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.scan\n * @example Scan the table with a filter expression\n * var params = {\n * TableName : 'Table',\n * FilterExpression : 'Year = :this_year',\n * ExpressionAttributeValues : {':this_year' : 2015}\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.scan(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n scan: function(params, callback) {\n var operation = this.serviceClientOperationsMap['scan'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Directly access items from a table by primary key or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.query} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.query\n * @example Query an index\n * var params = {\n * TableName: 'Table',\n * IndexName: 'Index',\n * KeyConditionExpression: 'HashKey = :hkey and RangeKey > :rkey',\n * ExpressionAttributeValues: {\n * ':hkey': 'key',\n * ':rkey': 2015\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.query(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n query: function(params, callback) {\n var operation = this.serviceClientOperationsMap['query'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Synchronous write operation that groups up to 100 action requests.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactWriteItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactWriteItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Put: {\n * TableName : 'Table0',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * }\n * }, {\n * Update: {\n * TableName: 'Table1',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Atomically retrieves multiple items from one or more tables (but not from indexes)\n * in a single account and region.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactGetItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactGetItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Get: {\n * TableName : 'Table0',\n * Key: {\n * HashKey: 'hashkey0'\n * }\n * }\n * }, {\n * Get: {\n * TableName : 'Table1',\n * Key: {\n * HashKey: 'hashkey1'\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a set of elements inferring the type of set from\n * the type of the first element. Amazon DynamoDB currently supports\n * the number sets, string sets, and binary sets. For more information\n * about DynamoDB data types see the documentation on the\n * [Amazon DynamoDB Data Model](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes).\n *\n * @param list [Array] Collection to represent your DynamoDB Set\n * @param options [map]\n * * **validate** [Boolean] set to true if you want to validate the type\n * of each element in the set. Defaults to `false`.\n * @example Creating a number set\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * var params = {\n * Item: {\n * hashkey: 'hashkey'\n * numbers: documentClient.createSet([1, 2, 3]);\n * }\n * };\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n createSet: function(list, options) {\n options = options || {};\n return new DynamoDBSet(list, options);\n },\n\n /**\n * @api private\n */\n getTranslator: function() {\n return new Translator(this.options);\n },\n\n /**\n * @api private\n */\n setupRequest: function setupRequest(request) {\n var self = this;\n var translator = self.getTranslator();\n var operation = request.operation;\n var inputShape = request.service.api.operations[operation].input;\n request._events.validate.unshift(function(req) {\n req.rawParams = AWS.util.copy(req.params);\n req.params = translator.translateInput(req.rawParams, inputShape);\n });\n },\n\n /**\n * @api private\n */\n setupResponse: function setupResponse(request) {\n var self = this;\n var translator = self.getTranslator();\n var outputShape = self.service.api.operations[request.operation].output;\n request.on('extractData', function(response) {\n response.data = translator.translateOutput(response.data, outputShape);\n });\n\n var response = request.response;\n response.nextPage = function(cb) {\n var resp = this;\n var req = resp.request;\n var config;\n var service = req.service;\n var operation = req.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { resp.error = e; }\n\n if (!resp.hasNextPage()) {\n if (cb) cb(resp.error, null);\n else if (resp.error) throw resp.error;\n return null;\n }\n\n var params = AWS.util.copy(req.rawParams);\n if (!resp.nextPageTokens) {\n return cb ? cb(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = resp.nextPageTokens[i];\n }\n return self[operation](params, cb);\n }\n };\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.DocumentClient;\n","var util = require('../core').util;\n\n/**\n * An object recognizable as a numeric value that stores the underlying number\n * as a string.\n *\n * Intended to be a deserialization target for the DynamoDB Document Client when\n * the `wrapNumbers` flag is set. This allows for numeric values that lose\n * precision when converted to JavaScript's `number` type.\n */\nvar DynamoDBNumberValue = util.inherit({\n constructor: function NumberValue(value) {\n this.wrapperName = 'NumberValue';\n this.value = value.toString();\n },\n\n /**\n * Render the underlying value as a number when converting to JSON.\n */\n toJSON: function () {\n return this.toNumber();\n },\n\n /**\n * Convert the underlying value to a JavaScript number.\n */\n toNumber: function () {\n return Number(this.value);\n },\n\n /**\n * Return a string representing the unaltered value provided to the\n * constructor.\n */\n toString: function () {\n return this.value;\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBNumberValue;\n","var util = require('../core').util;\nvar typeOf = require('./types').typeOf;\n\n/**\n * @api private\n */\nvar memberTypeToSetType = {\n 'String': 'String',\n 'Number': 'Number',\n 'NumberValue': 'Number',\n 'Binary': 'Binary'\n};\n\n/**\n * @api private\n */\nvar DynamoDBSet = util.inherit({\n\n constructor: function Set(list, options) {\n options = options || {};\n this.wrapperName = 'Set';\n this.initialize(list, options.validate);\n },\n\n initialize: function(list, validate) {\n var self = this;\n self.values = [].concat(list);\n self.detectType();\n if (validate) {\n self.validate();\n }\n },\n\n detectType: function() {\n this.type = memberTypeToSetType[typeOf(this.values[0])];\n if (!this.type) {\n throw util.error(new Error(), {\n code: 'InvalidSetType',\n message: 'Sets can contain string, number, or binary values'\n });\n }\n },\n\n validate: function() {\n var self = this;\n var length = self.values.length;\n var values = self.values;\n for (var i = 0; i < length; i++) {\n if (memberTypeToSetType[typeOf(values[i])] !== self.type) {\n throw util.error(new Error(), {\n code: 'InvalidType',\n message: self.type + ' Set contains ' + typeOf(values[i]) + ' value'\n });\n }\n }\n },\n\n /**\n * Render the underlying values only when converting to JSON.\n */\n toJSON: function() {\n var self = this;\n return self.values;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBSet;\n","var util = require('../core').util;\nvar convert = require('./converter');\n\nvar Translator = function(options) {\n options = options || {};\n this.attrValue = options.attrValue;\n this.convertEmptyValues = Boolean(options.convertEmptyValues);\n this.wrapNumbers = Boolean(options.wrapNumbers);\n};\n\nTranslator.prototype.translateInput = function(value, shape) {\n this.mode = 'input';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translateOutput = function(value, shape) {\n this.mode = 'output';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translate = function(value, shape) {\n var self = this;\n if (!shape || value === undefined) return undefined;\n\n if (shape.shape === self.attrValue) {\n return convert[self.mode](value, {\n convertEmptyValues: self.convertEmptyValues,\n wrapNumbers: self.wrapNumbers,\n });\n }\n switch (shape.type) {\n case 'structure': return self.translateStructure(value, shape);\n case 'map': return self.translateMap(value, shape);\n case 'list': return self.translateList(value, shape);\n default: return self.translateScalar(value, shape);\n }\n};\n\nTranslator.prototype.translateStructure = function(structure, shape) {\n var self = this;\n if (structure == null) return undefined;\n\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n var result = self.translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n }\n });\n return struct;\n};\n\nTranslator.prototype.translateList = function(list, shape) {\n var self = this;\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = self.translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n};\n\nTranslator.prototype.translateMap = function(map, shape) {\n var self = this;\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = self.translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n};\n\nTranslator.prototype.translateScalar = function(value, shape) {\n return shape.toType(value);\n};\n\n/**\n * @api private\n */\nmodule.exports = Translator;\n","var util = require('../core').util;\n\nfunction typeOf(data) {\n if (data === null && typeof data === 'object') {\n return 'null';\n } else if (data !== undefined && isBinary(data)) {\n return 'Binary';\n } else if (data !== undefined && data.constructor) {\n return data.wrapperName || util.typeName(data.constructor);\n } else if (data !== undefined && typeof data === 'object') {\n // this object is the result of Object.create(null), hence the absence of a\n // defined constructor\n return 'Object';\n } else {\n return 'undefined';\n }\n}\n\nfunction isBinary(data) {\n var types = [\n 'Buffer', 'File', 'Blob', 'ArrayBuffer', 'DataView',\n 'Int8Array', 'Uint8Array', 'Uint8ClampedArray',\n 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array',\n 'Float32Array', 'Float64Array'\n ];\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n if (util.Buffer.isBuffer(data) || data instanceof Stream) {\n return true;\n }\n }\n\n for (var i = 0; i < types.length; i++) {\n if (data !== undefined && data.constructor) {\n if (util.isType(data, types[i])) return true;\n if (util.typeName(data.constructor) === types[i]) return true;\n }\n }\n\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n typeOf: typeOf,\n isBinary: isBinary\n};\n","var eventMessageChunker = require('../event-stream/event-message-chunker').eventMessageChunker;\nvar parseEvent = require('./parse-event').parseEvent;\n\nfunction createEventStream(body, parser, model) {\n var eventMessages = eventMessageChunker(body);\n\n var events = [];\n\n for (var i = 0; i < eventMessages.length; i++) {\n events.push(parseEvent(parser, eventMessages[i], model));\n }\n\n return events;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n createEventStream: createEventStream\n};\n","/**\n * Takes in a buffer of event messages and splits them into individual messages.\n * @param {Buffer} buffer\n * @api private\n */\nfunction eventMessageChunker(buffer) {\n /** @type Buffer[] */\n var messages = [];\n var offset = 0;\n\n while (offset < buffer.length) {\n var totalLength = buffer.readInt32BE(offset);\n\n // create new buffer for individual message (shares memory with original)\n var message = buffer.slice(offset, totalLength + offset);\n // increment offset to it starts at the next message\n offset += totalLength;\n\n messages.push(message);\n }\n\n return messages;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n eventMessageChunker: eventMessageChunker\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n/**\n * A lossless representation of a signed, 64-bit integer. Instances of this\n * class may be used in arithmetic expressions as if they were numeric\n * primitives, but the binary representation will be preserved unchanged as the\n * `bytes` property of the object. The bytes should be encoded as big-endian,\n * two's complement integers.\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction Int64(bytes) {\n if (bytes.length !== 8) {\n throw new Error('Int64 buffers must be exactly 8 bytes');\n }\n if (!util.Buffer.isBuffer(bytes)) bytes = toBuffer(bytes);\n\n this.bytes = bytes;\n}\n\n/**\n * @param {number} number\n * @returns {Int64}\n *\n * @api private\n */\nInt64.fromNumber = function(number) {\n if (number > 9223372036854775807 || number < -9223372036854775808) {\n throw new Error(\n number + ' is too large (or, if negative, too small) to represent as an Int64'\n );\n }\n\n var bytes = new Uint8Array(8);\n for (\n var i = 7, remaining = Math.abs(Math.round(number));\n i > -1 && remaining > 0;\n i--, remaining /= 256\n ) {\n bytes[i] = remaining;\n }\n\n if (number < 0) {\n negate(bytes);\n }\n\n return new Int64(bytes);\n};\n\n/**\n * @returns {number}\n *\n * @api private\n */\nInt64.prototype.valueOf = function() {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n\n return parseInt(bytes.toString('hex'), 16) * (negative ? -1 : 1);\n};\n\nInt64.prototype.toString = function() {\n return String(this.valueOf());\n};\n\n/**\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction negate(bytes) {\n for (var i = 0; i < 8; i++) {\n bytes[i] ^= 0xFF;\n }\n for (var i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0) {\n break;\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n Int64: Int64\n};\n","var parseMessage = require('./parse-message').parseMessage;\n\n/**\n *\n * @param {*} parser\n * @param {Buffer} message\n * @param {*} shape\n * @api private\n */\nfunction parseEvent(parser, message, shape) {\n var parsedMessage = parseMessage(message);\n\n // check if message is an event or error\n var messageType = parsedMessage.headers[':message-type'];\n if (messageType) {\n if (messageType.value === 'error') {\n throw parseError(parsedMessage);\n } else if (messageType.value !== 'event') {\n // not sure how to parse non-events/non-errors, ignore for now\n return;\n }\n }\n\n // determine event type\n var eventType = parsedMessage.headers[':event-type'];\n // check that the event type is modeled\n var eventModel = shape.members[eventType.value];\n if (!eventModel) {\n return;\n }\n\n var result = {};\n // check if an event payload exists\n var eventPayloadMemberName = eventModel.eventPayloadMemberName;\n if (eventPayloadMemberName) {\n var payloadShape = eventModel.members[eventPayloadMemberName];\n // if the shape is binary, return the byte array\n if (payloadShape.type === 'binary') {\n result[eventPayloadMemberName] = parsedMessage.body;\n } else {\n result[eventPayloadMemberName] = parser.parse(parsedMessage.body.toString(), payloadShape);\n }\n }\n\n // read event headers\n var eventHeaderNames = eventModel.eventHeaderMemberNames;\n for (var i = 0; i < eventHeaderNames.length; i++) {\n var name = eventHeaderNames[i];\n if (parsedMessage.headers[name]) {\n // parse the header!\n result[name] = eventModel.members[name].toType(parsedMessage.headers[name].value);\n }\n }\n\n var output = {};\n output[eventType.value] = result;\n return output;\n}\n\nfunction parseError(message) {\n var errorCode = message.headers[':error-code'];\n var errorMessage = message.headers[':error-message'];\n var error = new Error(errorMessage.value || errorMessage);\n error.code = error.name = errorCode.value || errorCode;\n return error;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseEvent: parseEvent\n};\n","var Int64 = require('./int64').Int64;\n\nvar splitMessage = require('./split-message').splitMessage;\n\nvar BOOLEAN_TAG = 'boolean';\nvar BYTE_TAG = 'byte';\nvar SHORT_TAG = 'short';\nvar INT_TAG = 'integer';\nvar LONG_TAG = 'long';\nvar BINARY_TAG = 'binary';\nvar STRING_TAG = 'string';\nvar TIMESTAMP_TAG = 'timestamp';\nvar UUID_TAG = 'uuid';\n\n/**\n * @api private\n *\n * @param {Buffer} headers\n */\nfunction parseHeaders(headers) {\n var out = {};\n var position = 0;\n while (position < headers.length) {\n var nameLength = headers.readUInt8(position++);\n var name = headers.slice(position, position + nameLength).toString();\n position += nameLength;\n switch (headers.readUInt8(position++)) {\n case 0 /* boolTrue */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true\n };\n break;\n case 1 /* boolFalse */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false\n };\n break;\n case 2 /* byte */:\n out[name] = {\n type: BYTE_TAG,\n value: headers.readInt8(position++)\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.readInt16BE(position)\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.readInt32BE(position)\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(headers.slice(position, position + 8))\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n var binaryLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: headers.slice(position, position + binaryLength)\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n var stringLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: headers.slice(\n position,\n position + stringLength\n ).toString()\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(\n new Int64(headers.slice(position, position + 8))\n .valueOf()\n )\n };\n position += 8;\n break;\n case 9 /* uuid */:\n var uuidChars = headers.slice(position, position + 16)\n .toString('hex');\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: uuidChars.substr(0, 8) + '-' +\n uuidChars.substr(8, 4) + '-' +\n uuidChars.substr(12, 4) + '-' +\n uuidChars.substr(16, 4) + '-' +\n uuidChars.substr(20)\n };\n break;\n default:\n throw new Error('Unrecognized header type tag');\n }\n }\n return out;\n}\n\nfunction parseMessage(message) {\n var parsed = splitMessage(message);\n return { headers: parseHeaders(parsed.headers), body: parsed.body };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseMessage: parseMessage\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n// All prelude components are unsigned, 32-bit integers\nvar PRELUDE_MEMBER_LENGTH = 4;\n// The prelude consists of two components\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\n// Checksums are always CRC32 hashes.\nvar CHECKSUM_LENGTH = 4;\n// Messages must include a full prelude, a prelude checksum, and a message checksum\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\n\n/**\n * @api private\n *\n * @param {Buffer} message\n */\nfunction splitMessage(message) {\n if (!util.Buffer.isBuffer(message)) message = toBuffer(message);\n\n if (message.length < MINIMUM_MESSAGE_LENGTH) {\n throw new Error('Provided message too short to accommodate event stream message overhead');\n }\n\n if (message.length !== message.readUInt32BE(0)) {\n throw new Error('Reported message length does not match received message length');\n }\n\n var expectedPreludeChecksum = message.readUInt32BE(PRELUDE_LENGTH);\n\n if (\n expectedPreludeChecksum !== util.crypto.crc32(\n message.slice(0, PRELUDE_LENGTH)\n )\n ) {\n throw new Error(\n 'The prelude checksum specified in the message (' +\n expectedPreludeChecksum +\n ') does not match the calculated CRC32 checksum.'\n );\n }\n\n var expectedMessageChecksum = message.readUInt32BE(message.length - CHECKSUM_LENGTH);\n\n if (\n expectedMessageChecksum !== util.crypto.crc32(\n message.slice(0, message.length - CHECKSUM_LENGTH)\n )\n ) {\n throw new Error(\n 'The message checksum did not match the expected value of ' +\n expectedMessageChecksum\n );\n }\n\n var headersStart = PRELUDE_LENGTH + CHECKSUM_LENGTH;\n var headersEnd = headersStart + message.readUInt32BE(PRELUDE_MEMBER_LENGTH);\n\n return {\n headers: message.slice(headersStart, headersEnd),\n body: message.slice(headersEnd, message.length - CHECKSUM_LENGTH),\n };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n splitMessage: splitMessage\n};\n","var AWS = require('./core');\nvar SequentialExecutor = require('./sequential_executor');\nvar DISCOVER_ENDPOINT = require('./discover_endpoint').discoverEndpoint;\n/**\n * The namespace used to register global event listeners for request building\n * and sending.\n */\nAWS.EventListeners = {\n /**\n * @!attribute VALIDATE_CREDENTIALS\n * A request listener that validates whether the request is being\n * sent with credentials.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating credentials\n * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_REGION\n * A request listener that validates whether the region is set\n * for a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating region configuration\n * var listener = AWS.EventListeners.Core.VALIDATE_REGION;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_PARAMETERS\n * A request listener that validates input parameters in a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating parameters\n * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS;\n * request.removeListener('validate', listener);\n * @example Disable parameter validation globally\n * AWS.EventListeners.Core.removeListener('validate',\n * AWS.EventListeners.Core.VALIDATE_REGION);\n * @readonly\n * @return [Function]\n * @!attribute SEND\n * A request listener that initiates the HTTP connection for a\n * request being sent. Handles the {AWS.Request~send 'send' Request event}\n * @example Replacing the HTTP handler\n * var listener = AWS.EventListeners.Core.SEND;\n * request.removeListener('send', listener);\n * request.on('send', function(response) {\n * customHandler.send(response);\n * });\n * @return [Function]\n * @readonly\n * @!attribute HTTP_DATA\n * A request listener that reads data from the HTTP connection in order\n * to build the response data.\n * Handles the {AWS.Request~httpData 'httpData' Request event}.\n * Remove this handler if you are overriding the 'httpData' event and\n * do not want extra data processing and buffering overhead.\n * @example Disabling default data processing\n * var listener = AWS.EventListeners.Core.HTTP_DATA;\n * request.removeListener('httpData', listener);\n * @return [Function]\n * @readonly\n */\n Core: {} /* doc hack */\n};\n\n/**\n * @api private\n */\nfunction getOperationAuthtype(req) {\n if (!req.service.api.operations) {\n return '';\n }\n var operation = req.service.api.operations[req.operation];\n return operation ? operation.authtype : '';\n}\n\n/**\n * @api private\n */\nfunction getIdentityType(req) {\n var service = req.service;\n\n if (service.config.signatureVersion) {\n return service.config.signatureVersion;\n }\n\n if (service.api.signatureVersion) {\n return service.api.signatureVersion;\n }\n\n return getOperationAuthtype(req);\n}\n\nAWS.EventListeners = {\n Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) {\n addAsync(\n 'VALIDATE_CREDENTIALS', 'validate',\n function VALIDATE_CREDENTIALS(req, done) {\n if (!req.service.api.signatureVersion && !req.service.config.signatureVersion) return done(); // none\n\n var identityType = getIdentityType(req);\n if (identityType === 'bearer') {\n req.service.config.getToken(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err, {code: 'TokenError'});\n }\n done();\n });\n return;\n }\n\n req.service.config.getCredentials(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err,\n {\n code: 'CredentialsError',\n message: 'Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1'\n }\n );\n }\n done();\n });\n });\n\n add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) {\n if (!req.service.isGlobalEndpoint) {\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!req.service.config.region) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n } else if (!dnsHostRegex.test(req.service.config.region)) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Invalid region in config'});\n }\n }\n });\n\n add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var idempotentMembers = operation.idempotentMembers;\n if (!idempotentMembers.length) {\n return;\n }\n // creates a copy of params so user's param object isn't mutated\n var params = AWS.util.copy(req.params);\n for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) {\n if (!params[idempotentMembers[i]]) {\n // add the member\n params[idempotentMembers[i]] = AWS.util.uuid.v4();\n }\n }\n req.params = params;\n });\n\n add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var rules = req.service.api.operations[req.operation].input;\n var validation = req.service.config.paramValidation;\n new AWS.ParamValidator(validation).validate(rules, req.params);\n });\n\n add('COMPUTE_CHECKSUM', 'afterBuild', function COMPUTE_CHECKSUM(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var body = req.httpRequest.body;\n var isNonStreamingPayload = body && (AWS.util.Buffer.isBuffer(body) || typeof body === 'string');\n var headers = req.httpRequest.headers;\n if (\n operation.httpChecksumRequired &&\n req.service.config.computeChecksums &&\n isNonStreamingPayload &&\n !headers['Content-MD5']\n ) {\n var md5 = AWS.util.crypto.md5(body, 'base64');\n headers['Content-MD5'] = md5;\n }\n });\n\n addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) {\n req.haltHandlersOnError();\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n var authtype = operation ? operation.authtype : '';\n if (!req.service.api.signatureVersion && !authtype && !req.service.config.signatureVersion) return done(); // none\n if (req.service.getSignerClass(req) === AWS.Signers.V4) {\n var body = req.httpRequest.body || '';\n if (authtype.indexOf('unsigned-body') >= 0) {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n return done();\n }\n AWS.util.computeSha256(body, function(err, sha) {\n if (err) {\n done(err);\n }\n else {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = sha;\n done();\n }\n });\n } else {\n done();\n }\n });\n\n add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) {\n var authtype = getOperationAuthtype(req);\n var payloadMember = AWS.util.getRequestPayloadShape(req);\n if (req.httpRequest.headers['Content-Length'] === undefined) {\n try {\n var length = AWS.util.string.byteLength(req.httpRequest.body);\n req.httpRequest.headers['Content-Length'] = length;\n } catch (err) {\n if (payloadMember && payloadMember.isStreaming) {\n if (payloadMember.requiresLength) {\n //streaming payload requires length(s3, glacier)\n throw err;\n } else if (authtype.indexOf('unsigned-body') >= 0) {\n //unbounded streaming payload(lex, mediastore)\n req.httpRequest.headers['Transfer-Encoding'] = 'chunked';\n return;\n } else {\n throw err;\n }\n }\n throw err;\n }\n }\n });\n\n add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) {\n req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host;\n });\n\n add('SET_TRACE_ID', 'afterBuild', function SET_TRACE_ID(req) {\n var traceIdHeaderName = 'X-Amzn-Trace-Id';\n if (AWS.util.isNode() && !Object.hasOwnProperty.call(req.httpRequest.headers, traceIdHeaderName)) {\n var ENV_LAMBDA_FUNCTION_NAME = 'AWS_LAMBDA_FUNCTION_NAME';\n var ENV_TRACE_ID = '_X_AMZN_TRACE_ID';\n var functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n var traceId = process.env[ENV_TRACE_ID];\n if (\n typeof functionName === 'string' &&\n functionName.length > 0 &&\n typeof traceId === 'string' &&\n traceId.length > 0\n ) {\n req.httpRequest.headers[traceIdHeaderName] = traceId;\n }\n }\n });\n\n add('RESTART', 'restart', function RESTART() {\n var err = this.response.error;\n if (!err || !err.retryable) return;\n\n this.httpRequest = new AWS.HttpRequest(\n this.service.endpoint,\n this.service.region\n );\n\n if (this.response.retryCount < this.service.config.maxRetries) {\n this.response.retryCount++;\n } else {\n this.response.error = null;\n }\n });\n\n var addToHead = true;\n addAsync('DISCOVER_ENDPOINT', 'sign', DISCOVER_ENDPOINT, addToHead);\n\n addAsync('SIGN', 'sign', function SIGN(req, done) {\n var service = req.service;\n var identityType = getIdentityType(req);\n if (!identityType || identityType.length === 0) return done(); // none\n\n if (identityType === 'bearer') {\n service.config.getToken(function (err, token) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var SignerClass = service.getSignerClass(req);\n var signer = new SignerClass(req.httpRequest);\n signer.addAuthorization(token);\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n } else {\n service.config.getCredentials(function (err, credentials) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var date = service.getSkewCorrectedDate();\n var SignerClass = service.getSignerClass(req);\n var operations = req.service.api.operations || {};\n var operation = operations[req.operation];\n var signer = new SignerClass(req.httpRequest,\n service.getSigningName(req),\n {\n signatureCache: service.config.signatureCache,\n operation: operation,\n signatureVersion: service.api.signatureVersion\n });\n signer.setServiceClientId(service._clientId);\n\n // clear old authorization headers\n delete req.httpRequest.headers['Authorization'];\n delete req.httpRequest.headers['Date'];\n delete req.httpRequest.headers['X-Amz-Date'];\n\n // add new authorization\n signer.addAuthorization(credentials, date);\n req.signedAt = date;\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n\n }\n });\n\n add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) {\n if (this.service.successfulResponse(resp, this)) {\n resp.data = {};\n resp.error = null;\n } else {\n resp.data = null;\n resp.error = AWS.util.error(new Error(),\n {code: 'UnknownError', message: 'An unknown error occurred.'});\n }\n });\n\n add('ERROR', 'error', function ERROR(err, resp) {\n var awsQueryCompatible = resp.request.service.api.awsQueryCompatible;\n if (awsQueryCompatible) {\n var headers = resp.httpResponse.headers;\n var queryErrorCode = headers ? headers['x-amzn-query-error'] : undefined;\n if (queryErrorCode && queryErrorCode.includes(';')) {\n resp.error.code = queryErrorCode.split(';')[0];\n }\n }\n }, true);\n\n addAsync('SEND', 'send', function SEND(resp, done) {\n resp.httpResponse._abortCallback = done;\n resp.error = null;\n resp.data = null;\n\n function callback(httpResp) {\n resp.httpResponse.stream = httpResp;\n var stream = resp.request.httpRequest.stream;\n var service = resp.request.service;\n var api = service.api;\n var operationName = resp.request.operation;\n var operation = api.operations[operationName] || {};\n\n httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) {\n resp.request.emit(\n 'httpHeaders',\n [statusCode, headers, resp, statusMessage]\n );\n\n if (!resp.httpResponse.streaming) {\n if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check\n // if we detect event streams, we're going to have to\n // return the stream immediately\n if (operation.hasEventOutput && service.successfulResponse(resp)) {\n // skip reading the IncomingStream\n resp.request.emit('httpDone');\n done();\n return;\n }\n\n httpResp.on('readable', function onReadable() {\n var data = httpResp.read();\n if (data !== null) {\n resp.request.emit('httpData', [data, resp]);\n }\n });\n } else { // legacy streams API\n httpResp.on('data', function onData(data) {\n resp.request.emit('httpData', [data, resp]);\n });\n }\n }\n });\n\n httpResp.on('end', function onEnd() {\n if (!stream || !stream.didCallback) {\n if (AWS.HttpClient.streamsApiVersion === 2 && (operation.hasEventOutput && service.successfulResponse(resp))) {\n // don't concatenate response chunks when streaming event stream data when response is successful\n return;\n }\n resp.request.emit('httpDone');\n done();\n }\n });\n }\n\n function progress(httpResp) {\n httpResp.on('sendProgress', function onSendProgress(value) {\n resp.request.emit('httpUploadProgress', [value, resp]);\n });\n\n httpResp.on('receiveProgress', function onReceiveProgress(value) {\n resp.request.emit('httpDownloadProgress', [value, resp]);\n });\n }\n\n function error(err) {\n if (err.code !== 'RequestAbortedError') {\n var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError';\n err = AWS.util.error(err, {\n code: errCode,\n region: resp.request.httpRequest.region,\n hostname: resp.request.httpRequest.endpoint.hostname,\n retryable: true\n });\n }\n resp.error = err;\n resp.request.emit('httpError', [resp.error, resp], function() {\n done();\n });\n }\n\n function executeSend() {\n var http = AWS.HttpClient.getInstance();\n var httpOptions = resp.request.service.config.httpOptions || {};\n try {\n var stream = http.handleRequest(resp.request.httpRequest, httpOptions,\n callback, error);\n progress(stream);\n } catch (err) {\n error(err);\n }\n }\n var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000;\n if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign\n this.emit('sign', [this], function(err) {\n if (err) done(err);\n else executeSend();\n });\n } else {\n executeSend();\n }\n });\n\n add('HTTP_HEADERS', 'httpHeaders',\n function HTTP_HEADERS(statusCode, headers, resp, statusMessage) {\n resp.httpResponse.statusCode = statusCode;\n resp.httpResponse.statusMessage = statusMessage;\n resp.httpResponse.headers = headers;\n resp.httpResponse.body = AWS.util.buffer.toBuffer('');\n resp.httpResponse.buffers = [];\n resp.httpResponse.numBytes = 0;\n var dateHeader = headers.date || headers.Date;\n var service = resp.request.service;\n if (dateHeader) {\n var serverTime = Date.parse(dateHeader);\n if (service.config.correctClockSkew\n && service.isClockSkewed(serverTime)) {\n service.applyClockOffset(serverTime);\n }\n }\n });\n\n add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) {\n if (chunk) {\n if (AWS.util.isNode()) {\n resp.httpResponse.numBytes += chunk.length;\n\n var total = resp.httpResponse.headers['content-length'];\n var progress = { loaded: resp.httpResponse.numBytes, total: total };\n resp.request.emit('httpDownloadProgress', [progress, resp]);\n }\n\n resp.httpResponse.buffers.push(AWS.util.buffer.toBuffer(chunk));\n }\n });\n\n add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) {\n // convert buffers array into single buffer\n if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) {\n var body = AWS.util.buffer.concat(resp.httpResponse.buffers);\n resp.httpResponse.body = body;\n }\n delete resp.httpResponse.numBytes;\n delete resp.httpResponse.buffers;\n });\n\n add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) {\n if (resp.httpResponse.statusCode) {\n resp.error.statusCode = resp.httpResponse.statusCode;\n if (resp.error.retryable === undefined) {\n resp.error.retryable = this.service.retryableError(resp.error, this);\n }\n }\n });\n\n add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) {\n if (!resp.error) return;\n switch (resp.error.code) {\n case 'RequestExpired': // EC2 only\n case 'ExpiredTokenException':\n case 'ExpiredToken':\n resp.error.retryable = true;\n resp.request.service.config.credentials.expired = true;\n }\n });\n\n add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) {\n var err = resp.error;\n if (!err) return;\n if (typeof err.code === 'string' && typeof err.message === 'string') {\n if (err.code.match(/Signature/) && err.message.match(/expired/)) {\n resp.error.retryable = true;\n }\n }\n });\n\n add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) {\n if (!resp.error) return;\n if (this.service.clockSkewError(resp.error)\n && this.service.config.correctClockSkew) {\n resp.error.retryable = true;\n }\n });\n\n add('REDIRECT', 'retry', function REDIRECT(resp) {\n if (resp.error && resp.error.statusCode >= 300 &&\n resp.error.statusCode < 400 && resp.httpResponse.headers['location']) {\n this.httpRequest.endpoint =\n new AWS.Endpoint(resp.httpResponse.headers['location']);\n this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host;\n this.httpRequest.path = this.httpRequest.endpoint.path;\n resp.error.redirect = true;\n resp.error.retryable = true;\n }\n });\n\n add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) {\n if (resp.error) {\n if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.error.retryDelay = 0;\n } else if (resp.retryCount < resp.maxRetries) {\n resp.error.retryDelay = this.service.retryDelays(resp.retryCount, resp.error) || 0;\n }\n }\n });\n\n addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) {\n var delay, willRetry = false;\n\n if (resp.error) {\n delay = resp.error.retryDelay || 0;\n if (resp.error.retryable && resp.retryCount < resp.maxRetries) {\n resp.retryCount++;\n willRetry = true;\n } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.redirectCount++;\n willRetry = true;\n }\n }\n\n // delay < 0 is a signal from customBackoff to skip retries\n if (willRetry && delay >= 0) {\n resp.error = null;\n setTimeout(done, delay);\n } else {\n done();\n }\n });\n }),\n\n CorePost: new SequentialExecutor().addNamedListeners(function(add) {\n add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId);\n add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId);\n\n add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) {\n function isDNSError(err) {\n return err.errno === 'ENOTFOUND' ||\n typeof err.errno === 'number' &&\n typeof AWS.util.getSystemErrorName === 'function' &&\n ['EAI_NONAME', 'EAI_NODATA'].indexOf(AWS.util.getSystemErrorName(err.errno) >= 0);\n }\n if (err.code === 'NetworkingError' && isDNSError(err)) {\n var message = 'Inaccessible host: `' + err.hostname + '\\' at port `' + err.port +\n '\\'. This service may not be available in the `' + err.region +\n '\\' region.';\n this.response.error = AWS.util.error(new Error(message), {\n code: 'UnknownEndpoint',\n region: err.region,\n hostname: err.hostname,\n retryable: true,\n originalError: err\n });\n }\n });\n }),\n\n Logger: new SequentialExecutor().addNamedListeners(function(add) {\n add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) {\n var req = resp.request;\n var logger = req.service.config.logger;\n if (!logger) return;\n function filterSensitiveLog(inputShape, shape) {\n if (!shape) {\n return shape;\n }\n if (inputShape.isSensitive) {\n return '***SensitiveInformation***';\n }\n switch (inputShape.type) {\n case 'structure':\n var struct = {};\n AWS.util.each(shape, function(subShapeName, subShape) {\n if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) {\n struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape);\n } else {\n struct[subShapeName] = subShape;\n }\n });\n return struct;\n case 'list':\n var list = [];\n AWS.util.arrayEach(shape, function(subShape, index) {\n list.push(filterSensitiveLog(inputShape.member, subShape));\n });\n return list;\n case 'map':\n var map = {};\n AWS.util.each(shape, function(key, value) {\n map[key] = filterSensitiveLog(inputShape.value, value);\n });\n return map;\n default:\n return shape;\n }\n }\n\n function buildMessage() {\n var time = resp.request.service.getSkewCorrectedDate().getTime();\n var delta = (time - req.startTime.getTime()) / 1000;\n var ansi = logger.isTTY ? true : false;\n var status = resp.httpResponse.statusCode;\n var censoredParams = req.params;\n if (\n req.service.api.operations &&\n req.service.api.operations[req.operation] &&\n req.service.api.operations[req.operation].input\n ) {\n var inputShape = req.service.api.operations[req.operation].input;\n censoredParams = filterSensitiveLog(inputShape, req.params);\n }\n var params = require('util').inspect(censoredParams, true, null);\n var message = '';\n if (ansi) message += '\\x1B[33m';\n message += '[AWS ' + req.service.serviceIdentifier + ' ' + status;\n message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]';\n if (ansi) message += '\\x1B[0;1m';\n message += ' ' + AWS.util.string.lowerFirst(req.operation);\n message += '(' + params + ')';\n if (ansi) message += '\\x1B[0m';\n return message;\n }\n\n var line = buildMessage();\n if (typeof logger.log === 'function') {\n logger.log(line);\n } else if (typeof logger.write === 'function') {\n logger.write(line + '\\n');\n }\n });\n }),\n\n Json: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Rest: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n RestJson: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n add('UNSET_CONTENT_LENGTH', 'afterBuild', svc.unsetContentLength);\n }),\n\n RestXml: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_xml');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Query: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/query');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n })\n};\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\n\n/**\n * The endpoint that a service will talk to, for example,\n * `'https://ec2.ap-southeast-1.amazonaws.com'`. If\n * you need to override an endpoint for a service, you can\n * set the endpoint on a service by passing the endpoint\n * object with the `endpoint` option key:\n *\n * ```javascript\n * var ep = new AWS.Endpoint('awsproxy.example.com');\n * var s3 = new AWS.S3({endpoint: ep});\n * s3.service.endpoint.hostname == 'awsproxy.example.com'\n * ```\n *\n * Note that if you do not specify a protocol, the protocol will\n * be selected based on your current {AWS.config} configuration.\n *\n * @!attribute protocol\n * @return [String] the protocol (http or https) of the endpoint\n * URL\n * @!attribute hostname\n * @return [String] the host portion of the endpoint, e.g.,\n * example.com\n * @!attribute host\n * @return [String] the host portion of the endpoint including\n * the port, e.g., example.com:80\n * @!attribute port\n * @return [Integer] the port of the endpoint\n * @!attribute href\n * @return [String] the full URL of the endpoint\n */\nAWS.Endpoint = inherit({\n\n /**\n * @overload Endpoint(endpoint)\n * Constructs a new endpoint given an endpoint URL. If the\n * URL omits a protocol (http or https), the default protocol\n * set in the global {AWS.config} will be used.\n * @param endpoint [String] the URL to construct an endpoint from\n */\n constructor: function Endpoint(endpoint, config) {\n AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']);\n\n if (typeof endpoint === 'undefined' || endpoint === null) {\n throw new Error('Invalid endpoint: ' + endpoint);\n } else if (typeof endpoint !== 'string') {\n return AWS.util.copy(endpoint);\n }\n\n if (!endpoint.match(/^http/)) {\n var useSSL = config && config.sslEnabled !== undefined ?\n config.sslEnabled : AWS.config.sslEnabled;\n endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint;\n }\n\n AWS.util.update(this, AWS.util.urlParse(endpoint));\n\n // Ensure the port property is set as an integer\n if (this.port) {\n this.port = parseInt(this.port, 10);\n } else {\n this.port = this.protocol === 'https:' ? 443 : 80;\n }\n }\n\n});\n\n/**\n * The low level HTTP request object, encapsulating all HTTP header\n * and body data sent by a service request.\n *\n * @!attribute method\n * @return [String] the HTTP method of the request\n * @!attribute path\n * @return [String] the path portion of the URI, e.g.,\n * \"/list/?start=5&num=10\"\n * @!attribute headers\n * @return [map]\n * a map of header keys and their respective values\n * @!attribute body\n * @return [String] the request body payload\n * @!attribute endpoint\n * @return [AWS.Endpoint] the endpoint for the request\n * @!attribute region\n * @api private\n * @return [String] the region, for signing purposes only.\n */\nAWS.HttpRequest = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpRequest(endpoint, region) {\n endpoint = new AWS.Endpoint(endpoint);\n this.method = 'POST';\n this.path = endpoint.path || '/';\n this.headers = {};\n this.body = '';\n this.endpoint = endpoint;\n this.region = region;\n this._userAgent = '';\n this.setUserAgent();\n },\n\n /**\n * @api private\n */\n setUserAgent: function setUserAgent() {\n this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent();\n },\n\n getUserAgentHeaderName: function getUserAgentHeaderName() {\n var prefix = AWS.util.isBrowser() ? 'X-Amz-' : '';\n return prefix + 'User-Agent';\n },\n\n /**\n * @api private\n */\n appendToUserAgent: function appendToUserAgent(agentPartial) {\n if (typeof agentPartial === 'string' && agentPartial) {\n this._userAgent += ' ' + agentPartial;\n }\n this.headers[this.getUserAgentHeaderName()] = this._userAgent;\n },\n\n /**\n * @api private\n */\n getUserAgent: function getUserAgent() {\n return this._userAgent;\n },\n\n /**\n * @return [String] the part of the {path} excluding the\n * query string\n */\n pathname: function pathname() {\n return this.path.split('?', 1)[0];\n },\n\n /**\n * @return [String] the query string portion of the {path}\n */\n search: function search() {\n var query = this.path.split('?', 2)[1];\n if (query) {\n query = AWS.util.queryStringParse(query);\n return AWS.util.queryParamsToString(query);\n }\n return '';\n },\n\n /**\n * @api private\n * update httpRequest endpoint with endpoint string\n */\n updateEndpoint: function updateEndpoint(endpointStr) {\n var newEndpoint = new AWS.Endpoint(endpointStr);\n this.endpoint = newEndpoint;\n this.path = newEndpoint.path || '/';\n if (this.headers['Host']) {\n this.headers['Host'] = newEndpoint.host;\n }\n }\n});\n\n/**\n * The low level HTTP response object, encapsulating all HTTP header\n * and body data returned from the request.\n *\n * @!attribute statusCode\n * @return [Integer] the HTTP status code of the response (e.g., 200, 404)\n * @!attribute headers\n * @return [map]\n * a map of response header keys and their respective values\n * @!attribute body\n * @return [String] the response body payload\n * @!attribute [r] streaming\n * @return [Boolean] whether this response is being streamed at a low-level.\n * Defaults to `false` (buffered reads). Do not modify this manually, use\n * {createUnbufferedStream} to convert the stream to unbuffered mode\n * instead.\n */\nAWS.HttpResponse = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpResponse() {\n this.statusCode = undefined;\n this.headers = {};\n this.body = undefined;\n this.streaming = false;\n this.stream = null;\n },\n\n /**\n * Disables buffering on the HTTP response and returns the stream for reading.\n * @return [Stream, XMLHttpRequest, null] the underlying stream object.\n * Use this object to directly read data off of the stream.\n * @note This object is only available after the {AWS.Request~httpHeaders}\n * event has fired. This method must be called prior to\n * {AWS.Request~httpData}.\n * @example Taking control of a stream\n * request.on('httpHeaders', function(statusCode, headers) {\n * if (statusCode < 300) {\n * if (headers.etag === 'xyz') {\n * // pipe the stream, disabling buffering\n * var stream = this.response.httpResponse.createUnbufferedStream();\n * stream.pipe(process.stdout);\n * } else { // abort this request and set a better error message\n * this.abort();\n * this.response.error = new Error('Invalid ETag');\n * }\n * }\n * }).send(console.log);\n */\n createUnbufferedStream: function createUnbufferedStream() {\n this.streaming = true;\n return this.stream;\n }\n});\n\n\nAWS.HttpClient = inherit({});\n\n/**\n * @api private\n */\nAWS.HttpClient.getInstance = function getInstance() {\n if (this.singleton === undefined) {\n this.singleton = new this();\n }\n return this.singleton;\n};\n","var AWS = require('../core');\nvar EventEmitter = require('events').EventEmitter;\nrequire('../http');\n\n/**\n * @api private\n */\nAWS.XHRClient = AWS.util.inherit({\n handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) {\n var self = this;\n var endpoint = httpRequest.endpoint;\n var emitter = new EventEmitter();\n var href = endpoint.protocol + '//' + endpoint.hostname;\n if (endpoint.port !== 80 && endpoint.port !== 443) {\n href += ':' + endpoint.port;\n }\n href += httpRequest.path;\n\n var xhr = new XMLHttpRequest(), headersEmitted = false;\n httpRequest.stream = xhr;\n\n xhr.addEventListener('readystatechange', function() {\n try {\n if (xhr.status === 0) return; // 0 code is invalid\n } catch (e) { return; }\n\n if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) {\n emitter.statusCode = xhr.status;\n emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders());\n emitter.emit(\n 'headers',\n emitter.statusCode,\n emitter.headers,\n xhr.statusText\n );\n headersEmitted = true;\n }\n if (this.readyState === this.DONE) {\n self.finishRequest(xhr, emitter);\n }\n }, false);\n xhr.upload.addEventListener('progress', function (evt) {\n emitter.emit('sendProgress', evt);\n });\n xhr.addEventListener('progress', function (evt) {\n emitter.emit('receiveProgress', evt);\n }, false);\n xhr.addEventListener('timeout', function () {\n errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'}));\n }, false);\n xhr.addEventListener('error', function () {\n errCallback(AWS.util.error(new Error('Network Failure'), {\n code: 'NetworkingError'\n }));\n }, false);\n xhr.addEventListener('abort', function () {\n errCallback(AWS.util.error(new Error('Request aborted'), {\n code: 'RequestAbortedError'\n }));\n }, false);\n\n callback(emitter);\n xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false);\n AWS.util.each(httpRequest.headers, function (key, value) {\n if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') {\n xhr.setRequestHeader(key, value);\n }\n });\n\n if (httpOptions.timeout && httpOptions.xhrAsync !== false) {\n xhr.timeout = httpOptions.timeout;\n }\n\n if (httpOptions.xhrWithCredentials) {\n xhr.withCredentials = true;\n }\n try { xhr.responseType = 'arraybuffer'; } catch (e) {}\n\n try {\n if (httpRequest.body) {\n xhr.send(httpRequest.body);\n } else {\n xhr.send();\n }\n } catch (err) {\n if (httpRequest.body && typeof httpRequest.body.buffer === 'object') {\n xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly\n } else {\n throw err;\n }\n }\n\n return emitter;\n },\n\n parseHeaders: function parseHeaders(rawHeaders) {\n var headers = {};\n AWS.util.arrayEach(rawHeaders.split(/\\r?\\n/), function (line) {\n var key = line.split(':', 1)[0];\n var value = line.substring(key.length + 2);\n if (key.length > 0) headers[key.toLowerCase()] = value;\n });\n return headers;\n },\n\n finishRequest: function finishRequest(xhr, emitter) {\n var buffer;\n if (xhr.responseType === 'arraybuffer' && xhr.response) {\n var ab = xhr.response;\n buffer = new AWS.util.Buffer(ab.byteLength);\n var view = new Uint8Array(ab);\n for (var i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n }\n\n try {\n if (!buffer && typeof xhr.responseText === 'string') {\n buffer = new AWS.util.Buffer(xhr.responseText);\n }\n } catch (e) {}\n\n if (buffer) emitter.emit('data', buffer);\n emitter.emit('end');\n }\n});\n\n/**\n * @api private\n */\nAWS.HttpClient.prototype = AWS.XHRClient.prototype;\n\n/**\n * @api private\n */\nAWS.HttpClient.streamsApiVersion = 1;\n","var util = require('../util');\n\nfunction JsonBuilder() { }\n\nJsonBuilder.prototype.build = function(value, shape) {\n return JSON.stringify(translate(value, shape));\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined || value === null) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (shape.isDocument) {\n return structure;\n }\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n if (memberShape.location !== 'body') return;\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n var result = translate(value, memberShape);\n if (result !== undefined) struct[locationName] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result !== undefined) out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result !== undefined) out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toWireFormat(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonBuilder;\n","var util = require('../util');\n\nfunction JsonParser() { }\n\nJsonParser.prototype.parse = function(value, shape) {\n return translate(JSON.parse(value), shape);\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (structure == null) return undefined;\n if (shape.isDocument) return structure;\n\n var struct = {};\n var shapeMembers = shape.members;\n var isAwsQueryCompatible = shape.api && shape.api.awsQueryCompatible;\n util.each(shapeMembers, function(name, memberShape) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n if (Object.prototype.hasOwnProperty.call(structure, locationName)) {\n var value = structure[locationName];\n var result = translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n } else if (isAwsQueryCompatible && memberShape.defaultValue) {\n if (memberShape.type === 'list') {\n struct[name] = typeof memberShape.defaultValue === 'function' ? memberShape.defaultValue() : memberShape.defaultValue;\n }\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toType(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonParser;\n","var warning = [\n 'The AWS SDK for JavaScript (v2) will enter maintenance mode',\n 'on September 8, 2024 and reach end-of-support on September 8, 2025.\\n',\n 'Please migrate your code to use AWS SDK for JavaScript (v3).',\n 'For more information, check blog post at https://a.co/cUPnyil'\n].join('\\n');\n\nmodule.exports = {\n suppress: false\n};\n\n/**\n * To suppress this message:\n * @example\n * require('aws-sdk/lib/maintenance_mode_message').suppress = true;\n */\nfunction emitWarning() {\n if (typeof process === 'undefined')\n return;\n\n // Skip maintenance mode message in Lambda environments\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_EXECUTION_ENV !== 'undefined' &&\n process.env.AWS_EXECUTION_ENV.indexOf('AWS_Lambda_') === 0\n ) {\n return;\n }\n\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE !== 'undefined'\n ) {\n return;\n }\n\n if (typeof process.emitWarning === 'function') {\n process.emitWarning(warning, {\n type: 'NOTE'\n });\n }\n}\n\nsetTimeout(function () {\n if (!module.exports.suppress) {\n emitWarning();\n }\n}, 0);\n","var Collection = require('./collection');\nvar Operation = require('./operation');\nvar Shape = require('./shape');\nvar Paginator = require('./paginator');\nvar ResourceWaiter = require('./resource_waiter');\nvar metadata = require('../../apis/metadata.json');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Api(api, options) {\n var self = this;\n api = api || {};\n options = options || {};\n options.api = this;\n\n api.metadata = api.metadata || {};\n\n var serviceIdentifier = options.serviceIdentifier;\n delete options.serviceIdentifier;\n\n property(this, 'isApi', true, false);\n property(this, 'apiVersion', api.metadata.apiVersion);\n property(this, 'endpointPrefix', api.metadata.endpointPrefix);\n property(this, 'signingName', api.metadata.signingName);\n property(this, 'globalEndpoint', api.metadata.globalEndpoint);\n property(this, 'signatureVersion', api.metadata.signatureVersion);\n property(this, 'jsonVersion', api.metadata.jsonVersion);\n property(this, 'targetPrefix', api.metadata.targetPrefix);\n property(this, 'protocol', api.metadata.protocol);\n property(this, 'timestampFormat', api.metadata.timestampFormat);\n property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace);\n property(this, 'abbreviation', api.metadata.serviceAbbreviation);\n property(this, 'fullName', api.metadata.serviceFullName);\n property(this, 'serviceId', api.metadata.serviceId);\n if (serviceIdentifier && metadata[serviceIdentifier]) {\n property(this, 'xmlNoDefaultLists', metadata[serviceIdentifier].xmlNoDefaultLists, false);\n }\n\n memoizedProperty(this, 'className', function() {\n var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName;\n if (!name) return null;\n\n name = name.replace(/^Amazon|AWS\\s*|\\(.*|\\s+|\\W+/g, '');\n if (name === 'ElasticLoadBalancing') name = 'ELB';\n return name;\n });\n\n function addEndpointOperation(name, operation) {\n if (operation.endpointoperation === true) {\n property(self, 'endpointOperation', util.string.lowerFirst(name));\n }\n if (operation.endpointdiscovery && !self.hasRequiredEndpointDiscovery) {\n property(\n self,\n 'hasRequiredEndpointDiscovery',\n operation.endpointdiscovery.required === true\n );\n }\n }\n\n property(this, 'operations', new Collection(api.operations, options, function(name, operation) {\n return new Operation(name, operation, options);\n }, util.string.lowerFirst, addEndpointOperation));\n\n property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) {\n return Shape.create(shape, options);\n }));\n\n property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) {\n return new Paginator(name, paginator, options);\n }));\n\n property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) {\n return new ResourceWaiter(name, waiter, options);\n }, util.string.lowerFirst));\n\n if (options.documentation) {\n property(this, 'documentation', api.documentation);\n property(this, 'documentationUrl', api.documentationUrl);\n }\n property(this, 'awsQueryCompatible', api.metadata.awsQueryCompatible);\n}\n\n/**\n * @api private\n */\nmodule.exports = Api;\n","var memoizedProperty = require('../util').memoizedProperty;\n\nfunction memoize(name, value, factory, nameTr) {\n memoizedProperty(this, nameTr(name), function() {\n return factory(name, value);\n });\n}\n\nfunction Collection(iterable, options, factory, nameTr, callback) {\n nameTr = nameTr || String;\n var self = this;\n\n for (var id in iterable) {\n if (Object.prototype.hasOwnProperty.call(iterable, id)) {\n memoize.call(self, id, iterable[id], factory, nameTr);\n if (callback) callback(id, iterable[id]);\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = Collection;\n","var Shape = require('./shape');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Operation(name, operation, options) {\n var self = this;\n options = options || {};\n\n property(this, 'name', operation.name || name);\n property(this, 'api', options.api, false);\n\n operation.http = operation.http || {};\n property(this, 'endpoint', operation.endpoint);\n property(this, 'httpMethod', operation.http.method || 'POST');\n property(this, 'httpPath', operation.http.requestUri || '/');\n property(this, 'authtype', operation.authtype || '');\n property(\n this,\n 'endpointDiscoveryRequired',\n operation.endpointdiscovery ?\n (operation.endpointdiscovery.required ? 'REQUIRED' : 'OPTIONAL') :\n 'NULL'\n );\n\n // httpChecksum replaces usage of httpChecksumRequired, but some APIs\n // (s3control) still uses old trait.\n var httpChecksumRequired = operation.httpChecksumRequired\n || (operation.httpChecksum && operation.httpChecksum.requestChecksumRequired);\n property(this, 'httpChecksumRequired', httpChecksumRequired, false);\n\n memoizedProperty(this, 'input', function() {\n if (!operation.input) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.input, options);\n });\n\n memoizedProperty(this, 'output', function() {\n if (!operation.output) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.output, options);\n });\n\n memoizedProperty(this, 'errors', function() {\n var list = [];\n if (!operation.errors) return null;\n\n for (var i = 0; i < operation.errors.length; i++) {\n list.push(Shape.create(operation.errors[i], options));\n }\n\n return list;\n });\n\n memoizedProperty(this, 'paginator', function() {\n return options.api.paginators[name];\n });\n\n if (options.documentation) {\n property(this, 'documentation', operation.documentation);\n property(this, 'documentationUrl', operation.documentationUrl);\n }\n\n // idempotentMembers only tracks top-level input shapes\n memoizedProperty(this, 'idempotentMembers', function() {\n var idempotentMembers = [];\n var input = self.input;\n var members = input.members;\n if (!input.members) {\n return idempotentMembers;\n }\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n continue;\n }\n if (members[name].isIdempotent === true) {\n idempotentMembers.push(name);\n }\n }\n return idempotentMembers;\n });\n\n memoizedProperty(this, 'hasEventOutput', function() {\n var output = self.output;\n return hasEventStream(output);\n });\n}\n\nfunction hasEventStream(topLevelShape) {\n var members = topLevelShape.members;\n var payload = topLevelShape.payload;\n\n if (!topLevelShape.members) {\n return false;\n }\n\n if (payload) {\n var payloadMember = members[payload];\n return payloadMember.isEventStream;\n }\n\n // check if any member is an event stream\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n if (members[name].isEventStream === true) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = Operation;\n","var property = require('../util').property;\n\nfunction Paginator(name, paginator) {\n property(this, 'inputToken', paginator.input_token);\n property(this, 'limitKey', paginator.limit_key);\n property(this, 'moreResults', paginator.more_results);\n property(this, 'outputToken', paginator.output_token);\n property(this, 'resultKey', paginator.result_key);\n}\n\n/**\n * @api private\n */\nmodule.exports = Paginator;\n","var util = require('../util');\nvar property = util.property;\n\nfunction ResourceWaiter(name, waiter, options) {\n options = options || {};\n property(this, 'name', name);\n property(this, 'api', options.api, false);\n\n if (waiter.operation) {\n property(this, 'operation', util.string.lowerFirst(waiter.operation));\n }\n\n var self = this;\n var keys = [\n 'type',\n 'description',\n 'delay',\n 'maxAttempts',\n 'acceptors'\n ];\n\n keys.forEach(function(key) {\n var value = waiter[key];\n if (value) {\n property(self, key, value);\n }\n });\n}\n\n/**\n * @api private\n */\nmodule.exports = ResourceWaiter;\n","var Collection = require('./collection');\n\nvar util = require('../util');\n\nfunction property(obj, name, value) {\n if (value !== null && value !== undefined) {\n util.property.apply(this, arguments);\n }\n}\n\nfunction memoizedProperty(obj, name) {\n if (!obj.constructor.prototype[name]) {\n util.memoizedProperty.apply(this, arguments);\n }\n}\n\nfunction Shape(shape, options, memberName) {\n options = options || {};\n\n property(this, 'shape', shape.shape);\n property(this, 'api', options.api, false);\n property(this, 'type', shape.type);\n property(this, 'enum', shape.enum);\n property(this, 'min', shape.min);\n property(this, 'max', shape.max);\n property(this, 'pattern', shape.pattern);\n property(this, 'location', shape.location || this.location || 'body');\n property(this, 'name', this.name || shape.xmlName || shape.queryName ||\n shape.locationName || memberName);\n property(this, 'isStreaming', shape.streaming || this.isStreaming || false);\n property(this, 'requiresLength', shape.requiresLength, false);\n property(this, 'isComposite', shape.isComposite || false);\n property(this, 'isShape', true, false);\n property(this, 'isQueryName', Boolean(shape.queryName), false);\n property(this, 'isLocationName', Boolean(shape.locationName), false);\n property(this, 'isIdempotent', shape.idempotencyToken === true);\n property(this, 'isJsonValue', shape.jsonvalue === true);\n property(this, 'isSensitive', shape.sensitive === true || shape.prototype && shape.prototype.sensitive === true);\n property(this, 'isEventStream', Boolean(shape.eventstream), false);\n property(this, 'isEvent', Boolean(shape.event), false);\n property(this, 'isEventPayload', Boolean(shape.eventpayload), false);\n property(this, 'isEventHeader', Boolean(shape.eventheader), false);\n property(this, 'isTimestampFormatSet', Boolean(shape.timestampFormat) || shape.prototype && shape.prototype.isTimestampFormatSet === true, false);\n property(this, 'endpointDiscoveryId', Boolean(shape.endpointdiscoveryid), false);\n property(this, 'hostLabel', Boolean(shape.hostLabel), false);\n\n if (options.documentation) {\n property(this, 'documentation', shape.documentation);\n property(this, 'documentationUrl', shape.documentationUrl);\n }\n\n if (shape.xmlAttribute) {\n property(this, 'isXmlAttribute', shape.xmlAttribute || false);\n }\n\n // type conversion and parsing\n property(this, 'defaultValue', null);\n this.toWireFormat = function(value) {\n if (value === null || value === undefined) return '';\n return value;\n };\n this.toType = function(value) { return value; };\n}\n\n/**\n * @api private\n */\nShape.normalizedTypes = {\n character: 'string',\n double: 'float',\n long: 'integer',\n short: 'integer',\n biginteger: 'integer',\n bigdecimal: 'float',\n blob: 'binary'\n};\n\n/**\n * @api private\n */\nShape.types = {\n 'structure': StructureShape,\n 'list': ListShape,\n 'map': MapShape,\n 'boolean': BooleanShape,\n 'timestamp': TimestampShape,\n 'float': FloatShape,\n 'integer': IntegerShape,\n 'string': StringShape,\n 'base64': Base64Shape,\n 'binary': BinaryShape\n};\n\nShape.resolve = function resolve(shape, options) {\n if (shape.shape) {\n var refShape = options.api.shapes[shape.shape];\n if (!refShape) {\n throw new Error('Cannot find shape reference: ' + shape.shape);\n }\n\n return refShape;\n } else {\n return null;\n }\n};\n\nShape.create = function create(shape, options, memberName) {\n if (shape.isShape) return shape;\n\n var refShape = Shape.resolve(shape, options);\n if (refShape) {\n var filteredKeys = Object.keys(shape);\n if (!options.documentation) {\n filteredKeys = filteredKeys.filter(function(name) {\n return !name.match(/documentation/);\n });\n }\n\n // create an inline shape with extra members\n var InlineShape = function() {\n refShape.constructor.call(this, shape, options, memberName);\n };\n InlineShape.prototype = refShape;\n return new InlineShape();\n } else {\n // set type if not set\n if (!shape.type) {\n if (shape.members) shape.type = 'structure';\n else if (shape.member) shape.type = 'list';\n else if (shape.key) shape.type = 'map';\n else shape.type = 'string';\n }\n\n // normalize types\n var origType = shape.type;\n if (Shape.normalizedTypes[shape.type]) {\n shape.type = Shape.normalizedTypes[shape.type];\n }\n\n if (Shape.types[shape.type]) {\n return new Shape.types[shape.type](shape, options, memberName);\n } else {\n throw new Error('Unrecognized shape type: ' + origType);\n }\n }\n};\n\nfunction CompositeShape(shape) {\n Shape.apply(this, arguments);\n property(this, 'isComposite', true);\n\n if (shape.flattened) {\n property(this, 'flattened', shape.flattened || false);\n }\n}\n\nfunction StructureShape(shape, options) {\n var self = this;\n var requiredMap = null, firstInit = !this.isShape;\n\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'members', {});\n property(this, 'memberNames', []);\n property(this, 'required', []);\n property(this, 'isRequired', function() { return false; });\n property(this, 'isDocument', Boolean(shape.document));\n }\n\n if (shape.members) {\n property(this, 'members', new Collection(shape.members, options, function(name, member) {\n return Shape.create(member, options, name);\n }));\n memoizedProperty(this, 'memberNames', function() {\n return shape.xmlOrder || Object.keys(shape.members);\n });\n\n if (shape.event) {\n memoizedProperty(this, 'eventPayloadMemberName', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n // iterate over members to find ones that are event payloads\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventPayload) {\n return memberNames[i];\n }\n }\n });\n\n memoizedProperty(this, 'eventHeaderMemberNames', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n var eventHeaderMemberNames = [];\n // iterate over members to find ones that are event headers\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventHeader) {\n eventHeaderMemberNames.push(memberNames[i]);\n }\n }\n return eventHeaderMemberNames;\n });\n }\n }\n\n if (shape.required) {\n property(this, 'required', shape.required);\n property(this, 'isRequired', function(name) {\n if (!requiredMap) {\n requiredMap = {};\n for (var i = 0; i < shape.required.length; i++) {\n requiredMap[shape.required[i]] = true;\n }\n }\n\n return requiredMap[name];\n }, false, true);\n }\n\n property(this, 'resultWrapper', shape.resultWrapper || null);\n\n if (shape.payload) {\n property(this, 'payload', shape.payload);\n }\n\n if (typeof shape.xmlNamespace === 'string') {\n property(this, 'xmlNamespaceUri', shape.xmlNamespace);\n } else if (typeof shape.xmlNamespace === 'object') {\n property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix);\n property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri);\n }\n}\n\nfunction ListShape(shape, options) {\n var self = this, firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return []; });\n }\n\n if (shape.member) {\n memoizedProperty(this, 'member', function() {\n return Shape.create(shape.member, options);\n });\n }\n\n if (this.flattened) {\n var oldName = this.name;\n memoizedProperty(this, 'name', function() {\n return self.member.name || oldName;\n });\n }\n}\n\nfunction MapShape(shape, options) {\n var firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'key', Shape.create({type: 'string'}, options));\n property(this, 'value', Shape.create({type: 'string'}, options));\n }\n\n if (shape.key) {\n memoizedProperty(this, 'key', function() {\n return Shape.create(shape.key, options);\n });\n }\n if (shape.value) {\n memoizedProperty(this, 'value', function() {\n return Shape.create(shape.value, options);\n });\n }\n}\n\nfunction TimestampShape(shape) {\n var self = this;\n Shape.apply(this, arguments);\n\n if (shape.timestampFormat) {\n property(this, 'timestampFormat', shape.timestampFormat);\n } else if (self.isTimestampFormatSet && this.timestampFormat) {\n property(this, 'timestampFormat', this.timestampFormat);\n } else if (this.location === 'header') {\n property(this, 'timestampFormat', 'rfc822');\n } else if (this.location === 'querystring') {\n property(this, 'timestampFormat', 'iso8601');\n } else if (this.api) {\n switch (this.api.protocol) {\n case 'json':\n case 'rest-json':\n property(this, 'timestampFormat', 'unixTimestamp');\n break;\n case 'rest-xml':\n case 'query':\n case 'ec2':\n property(this, 'timestampFormat', 'iso8601');\n break;\n }\n }\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n if (typeof value.toUTCString === 'function') return value;\n return typeof value === 'string' || typeof value === 'number' ?\n util.date.parseTimestamp(value) : null;\n };\n\n this.toWireFormat = function(value) {\n return util.date.format(value, self.timestampFormat);\n };\n}\n\nfunction StringShape() {\n Shape.apply(this, arguments);\n\n var nullLessProtocols = ['rest-xml', 'query', 'ec2'];\n this.toType = function(value) {\n value = this.api && nullLessProtocols.indexOf(this.api.protocol) > -1 ?\n value || '' : value;\n if (this.isJsonValue) {\n return JSON.parse(value);\n }\n\n return value && typeof value.toString === 'function' ?\n value.toString() : value;\n };\n\n this.toWireFormat = function(value) {\n return this.isJsonValue ? JSON.stringify(value) : value;\n };\n}\n\nfunction FloatShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseFloat(value);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction IntegerShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseInt(value, 10);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction BinaryShape() {\n Shape.apply(this, arguments);\n this.toType = function(value) {\n var buf = util.base64.decode(value);\n if (this.isSensitive && util.isNode() && typeof util.Buffer.alloc === 'function') {\n /* Node.js can create a Buffer that is not isolated.\n * i.e. buf.byteLength !== buf.buffer.byteLength\n * This means that the sensitive data is accessible to anyone with access to buf.buffer.\n * If this is the node shared Buffer, then other code within this process _could_ find this secret.\n * Copy sensitive data to an isolated Buffer and zero the sensitive data.\n * While this is safe to do here, copying this code somewhere else may produce unexpected results.\n */\n var secureBuf = util.Buffer.alloc(buf.length, buf);\n buf.fill(0);\n buf = secureBuf;\n }\n return buf;\n };\n this.toWireFormat = util.base64.encode;\n}\n\nfunction Base64Shape() {\n BinaryShape.apply(this, arguments);\n}\n\nfunction BooleanShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (typeof value === 'boolean') return value;\n if (value === null || value === undefined) return null;\n return value === 'true';\n };\n}\n\n/**\n * @api private\n */\nShape.shapes = {\n StructureShape: StructureShape,\n ListShape: ListShape,\n MapShape: MapShape,\n StringShape: StringShape,\n BooleanShape: BooleanShape,\n Base64Shape: Base64Shape\n};\n\n/**\n * @api private\n */\nmodule.exports = Shape;\n","var AWS = require('./core');\n\n/**\n * @api private\n */\nAWS.ParamValidator = AWS.util.inherit({\n /**\n * Create a new validator object.\n *\n * @param validation [Boolean|map] whether input parameters should be\n * validated against the operation description before sending the\n * request. Pass a map to enable any of the following specific\n * validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n */\n constructor: function ParamValidator(validation) {\n if (validation === true || validation === undefined) {\n validation = {'min': true};\n }\n this.validation = validation;\n },\n\n validate: function validate(shape, params, context) {\n this.errors = [];\n this.validateMember(shape, params || {}, context || 'params');\n\n if (this.errors.length > 1) {\n var msg = this.errors.join('\\n* ');\n msg = 'There were ' + this.errors.length +\n ' validation errors:\\n* ' + msg;\n throw AWS.util.error(new Error(msg),\n {code: 'MultipleValidationErrors', errors: this.errors});\n } else if (this.errors.length === 1) {\n throw this.errors[0];\n } else {\n return true;\n }\n },\n\n fail: function fail(code, message) {\n this.errors.push(AWS.util.error(new Error(message), {code: code}));\n },\n\n validateStructure: function validateStructure(shape, params, context) {\n if (shape.isDocument) return true;\n\n this.validateType(params, context, ['object'], 'structure');\n var paramName;\n for (var i = 0; shape.required && i < shape.required.length; i++) {\n paramName = shape.required[i];\n var value = params[paramName];\n if (value === undefined || value === null) {\n this.fail('MissingRequiredParameter',\n 'Missing required key \\'' + paramName + '\\' in ' + context);\n }\n }\n\n // validate hash members\n for (paramName in params) {\n if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue;\n\n var paramValue = params[paramName],\n memberShape = shape.members[paramName];\n\n if (memberShape !== undefined) {\n var memberContext = [context, paramName].join('.');\n this.validateMember(memberShape, paramValue, memberContext);\n } else if (paramValue !== undefined && paramValue !== null) {\n this.fail('UnexpectedParameter',\n 'Unexpected key \\'' + paramName + '\\' found in ' + context);\n }\n }\n\n return true;\n },\n\n validateMember: function validateMember(shape, param, context) {\n switch (shape.type) {\n case 'structure':\n return this.validateStructure(shape, param, context);\n case 'list':\n return this.validateList(shape, param, context);\n case 'map':\n return this.validateMap(shape, param, context);\n default:\n return this.validateScalar(shape, param, context);\n }\n },\n\n validateList: function validateList(shape, params, context) {\n if (this.validateType(params, context, [Array])) {\n this.validateRange(shape, params.length, context, 'list member count');\n // validate array members\n for (var i = 0; i < params.length; i++) {\n this.validateMember(shape.member, params[i], context + '[' + i + ']');\n }\n }\n },\n\n validateMap: function validateMap(shape, params, context) {\n if (this.validateType(params, context, ['object'], 'map')) {\n // Build up a count of map members to validate range traits.\n var mapCount = 0;\n for (var param in params) {\n if (!Object.prototype.hasOwnProperty.call(params, param)) continue;\n // Validate any map key trait constraints\n this.validateMember(shape.key, param,\n context + '[key=\\'' + param + '\\']');\n this.validateMember(shape.value, params[param],\n context + '[\\'' + param + '\\']');\n mapCount++;\n }\n this.validateRange(shape, mapCount, context, 'map member count');\n }\n },\n\n validateScalar: function validateScalar(shape, value, context) {\n switch (shape.type) {\n case null:\n case undefined:\n case 'string':\n return this.validateString(shape, value, context);\n case 'base64':\n case 'binary':\n return this.validatePayload(value, context);\n case 'integer':\n case 'float':\n return this.validateNumber(shape, value, context);\n case 'boolean':\n return this.validateType(value, context, ['boolean']);\n case 'timestamp':\n return this.validateType(value, context, [Date,\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$/, 'number'],\n 'Date object, ISO-8601 string, or a UNIX timestamp');\n default:\n return this.fail('UnkownType', 'Unhandled type ' +\n shape.type + ' for ' + context);\n }\n },\n\n validateString: function validateString(shape, value, context) {\n var validTypes = ['string'];\n if (shape.isJsonValue) {\n validTypes = validTypes.concat(['number', 'object', 'boolean']);\n }\n if (value !== null && this.validateType(value, context, validTypes)) {\n this.validateEnum(shape, value, context);\n this.validateRange(shape, value.length, context, 'string length');\n this.validatePattern(shape, value, context);\n this.validateUri(shape, value, context);\n }\n },\n\n validateUri: function validateUri(shape, value, context) {\n if (shape['location'] === 'uri') {\n if (value.length === 0) {\n this.fail('UriParameterError', 'Expected uri parameter to have length >= 1,'\n + ' but found \"' + value +'\" for ' + context);\n }\n }\n },\n\n validatePattern: function validatePattern(shape, value, context) {\n if (this.validation['pattern'] && shape['pattern'] !== undefined) {\n if (!(new RegExp(shape['pattern'])).test(value)) {\n this.fail('PatternMatchError', 'Provided value \"' + value + '\" '\n + 'does not match regex pattern /' + shape['pattern'] + '/ for '\n + context);\n }\n }\n },\n\n validateRange: function validateRange(shape, value, context, descriptor) {\n if (this.validation['min']) {\n if (shape['min'] !== undefined && value < shape['min']) {\n this.fail('MinRangeError', 'Expected ' + descriptor + ' >= '\n + shape['min'] + ', but found ' + value + ' for ' + context);\n }\n }\n if (this.validation['max']) {\n if (shape['max'] !== undefined && value > shape['max']) {\n this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= '\n + shape['max'] + ', but found ' + value + ' for ' + context);\n }\n }\n },\n\n validateEnum: function validateRange(shape, value, context) {\n if (this.validation['enum'] && shape['enum'] !== undefined) {\n // Fail if the string value is not present in the enum list\n if (shape['enum'].indexOf(value) === -1) {\n this.fail('EnumError', 'Found string value of ' + value + ', but '\n + 'expected ' + shape['enum'].join('|') + ' for ' + context);\n }\n }\n },\n\n validateType: function validateType(value, context, acceptedTypes, type) {\n // We will not log an error for null or undefined, but we will return\n // false so that callers know that the expected type was not strictly met.\n if (value === null || value === undefined) return false;\n\n var foundInvalidType = false;\n for (var i = 0; i < acceptedTypes.length; i++) {\n if (typeof acceptedTypes[i] === 'string') {\n if (typeof value === acceptedTypes[i]) return true;\n } else if (acceptedTypes[i] instanceof RegExp) {\n if ((value || '').toString().match(acceptedTypes[i])) return true;\n } else {\n if (value instanceof acceptedTypes[i]) return true;\n if (AWS.util.isType(value, acceptedTypes[i])) return true;\n if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice();\n acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]);\n }\n foundInvalidType = true;\n }\n\n var acceptedType = type;\n if (!acceptedType) {\n acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1');\n }\n\n var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : '';\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' +\n vowel + ' ' + acceptedType);\n return false;\n },\n\n validateNumber: function validateNumber(shape, value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') {\n var castedValue = parseFloat(value);\n if (castedValue.toString() === value) value = castedValue;\n }\n if (this.validateType(value, context, ['number'])) {\n this.validateRange(shape, value, context, 'numeric value');\n }\n },\n\n validatePayload: function validatePayload(value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') return;\n if (value && typeof value.byteLength === 'number') return; // typed arrays\n if (AWS.util.isNode()) { // special check for buffer/stream in Node.js\n var Stream = AWS.util.stream.Stream;\n if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return;\n } else {\n if (typeof Blob !== void 0 && value instanceof Blob) return;\n }\n\n var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView'];\n if (value) {\n for (var i = 0; i < types.length; i++) {\n if (AWS.util.isType(value, types[i])) return;\n if (AWS.util.typeName(value.constructor) === types[i]) return;\n }\n }\n\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' +\n 'string, Buffer, Stream, Blob, or typed array object');\n }\n});\n","var AWS = require('../core');\nvar rest = AWS.Protocol.Rest;\n\n/**\n * A presigner object can be used to generate presigned urls for the Polly service.\n */\nAWS.Polly.Presigner = AWS.util.inherit({\n /**\n * Creates a presigner object with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.Polly] An optional pre-configured instance\n * of the AWS.Polly service object to use for requests. The object may\n * bound parameters used by the presigner.\n * @see AWS.Polly.constructor\n */\n constructor: function Signer(options) {\n options = options || {};\n this.options = options;\n this.service = options.service;\n this.bindServiceObject(options);\n this._operations = {};\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n options = options || {};\n if (!this.service) {\n this.service = new AWS.Polly(options);\n } else {\n var config = AWS.util.copy(this.service.config);\n this.service = new this.service.constructor.__super__(config);\n this.service.config.params = AWS.util.merge(this.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n modifyInputMembers: function modifyInputMembers(input) {\n // make copies of the input so we don't overwrite the api\n // need to be careful to copy anything we access/modify\n var modifiedInput = AWS.util.copy(input);\n modifiedInput.members = AWS.util.copy(input.members);\n AWS.util.each(input.members, function(name, member) {\n modifiedInput.members[name] = AWS.util.copy(member);\n // update location and locationName\n if (!member.location || member.location === 'body') {\n modifiedInput.members[name].location = 'querystring';\n modifiedInput.members[name].locationName = name;\n }\n });\n return modifiedInput;\n },\n\n /**\n * @api private\n */\n convertPostToGet: function convertPostToGet(req) {\n // convert method\n req.httpRequest.method = 'GET';\n\n var operation = req.service.api.operations[req.operation];\n // get cached operation input first\n var input = this._operations[req.operation];\n if (!input) {\n // modify the original input\n this._operations[req.operation] = input = this.modifyInputMembers(operation.input);\n }\n\n var uri = rest.generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n\n req.httpRequest.path = uri;\n req.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete req.httpRequest.headers['Content-Length'];\n delete req.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @overload getSynthesizeSpeechUrl(params = {}, [expires = 3600], [callback])\n * Generate a presigned url for {AWS.Polly.synthesizeSpeech}.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @param params [map] parameters to pass to the operation. See the {AWS.Polly.synthesizeSpeech}\n * operation for the expected operation parameters.\n * @param expires [Integer] (3600) the number of seconds to expire the pre-signed URL operation in.\n * Defaults to 1 hour.\n * @return [string] if called synchronously (with no callback), returns the signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, url)\n * If a callback is supplied, it is called when a signed URL has been generated.\n * @param err [Error] the error object returned from the presigner.\n * @param url [String] the signed URL.\n * @see AWS.Polly.synthesizeSpeech\n */\n getSynthesizeSpeechUrl: function getSynthesizeSpeechUrl(params, expires, callback) {\n var self = this;\n var request = this.service.makeRequest('synthesizeSpeech', params);\n // remove existing build listeners\n request.removeAllListeners('build');\n request.on('build', function(req) {\n self.convertPostToGet(req);\n });\n return request.presign(expires, callback);\n }\n});\n","var util = require('../util');\nvar AWS = require('../core');\n\n/**\n * Prepend prefix defined by API model to endpoint that's already\n * constructed. This feature does not apply to operations using\n * endpoint discovery and can be disabled.\n * @api private\n */\nfunction populateHostPrefix(request) {\n var enabled = request.service.config.hostPrefixEnabled;\n if (!enabled) return request;\n var operationModel = request.service.api.operations[request.operation];\n //don't marshal host prefix when operation has endpoint discovery traits\n if (hasEndpointDiscover(request)) return request;\n if (operationModel.endpoint && operationModel.endpoint.hostPrefix) {\n var hostPrefixNotation = operationModel.endpoint.hostPrefix;\n var hostPrefix = expandHostPrefix(hostPrefixNotation, request.params, operationModel.input);\n prependEndpointPrefix(request.httpRequest.endpoint, hostPrefix);\n validateHostname(request.httpRequest.endpoint.hostname);\n }\n return request;\n}\n\n/**\n * @api private\n */\nfunction hasEndpointDiscover(request) {\n var api = request.service.api;\n var operationModel = api.operations[request.operation];\n var isEndpointOperation = api.endpointOperation && (api.endpointOperation === util.string.lowerFirst(operationModel.name));\n return (operationModel.endpointDiscoveryRequired !== 'NULL' || isEndpointOperation === true);\n}\n\n/**\n * @api private\n */\nfunction expandHostPrefix(hostPrefixNotation, params, shape) {\n util.each(shape.members, function(name, member) {\n if (member.hostLabel === true) {\n if (typeof params[name] !== 'string' || params[name] === '') {\n throw util.error(new Error(), {\n message: 'Parameter ' + name + ' should be a non-empty string.',\n code: 'InvalidParameter'\n });\n }\n var regex = new RegExp('\\\\{' + name + '\\\\}', 'g');\n hostPrefixNotation = hostPrefixNotation.replace(regex, params[name]);\n }\n });\n return hostPrefixNotation;\n}\n\n/**\n * @api private\n */\nfunction prependEndpointPrefix(endpoint, prefix) {\n if (endpoint.host) {\n endpoint.host = prefix + endpoint.host;\n }\n if (endpoint.hostname) {\n endpoint.hostname = prefix + endpoint.hostname;\n }\n}\n\n/**\n * @api private\n */\nfunction validateHostname(hostname) {\n var labels = hostname.split('.');\n //Reference: https://tools.ietf.org/html/rfc1123#section-2\n var hostPattern = /^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]$/;\n util.arrayEach(labels, function(label) {\n if (!label.length || label.length < 1 || label.length > 63) {\n throw util.error(new Error(), {\n code: 'ValidationError',\n message: 'Hostname label length should be between 1 to 63 characters, inclusive.'\n });\n }\n if (!hostPattern.test(label)) {\n throw AWS.util.error(new Error(),\n {code: 'ValidationError', message: label + ' is not hostname compatible.'});\n }\n });\n}\n\nmodule.exports = {\n populateHostPrefix: populateHostPrefix\n};\n","var util = require('../util');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var httpRequest = req.httpRequest;\n var api = req.service.api;\n var target = api.targetPrefix + '.' + api.operations[req.operation].name;\n var version = api.jsonVersion || '1.0';\n var input = api.operations[req.operation].input;\n var builder = new JsonBuilder();\n\n if (version === 1) version = '1.0';\n\n if (api.awsQueryCompatible) {\n if (!httpRequest.params) {\n httpRequest.params = {};\n }\n // because Query protocol does this.\n Object.assign(httpRequest.params, req.params);\n }\n\n httpRequest.body = builder.build(req.params || {}, input);\n httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version;\n httpRequest.headers['X-Amz-Target'] = target;\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var error = {};\n var httpResponse = resp.httpResponse;\n\n error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError';\n if (typeof error.code === 'string') {\n error.code = error.code.split(':')[0];\n }\n\n if (httpResponse.body.length > 0) {\n try {\n var e = JSON.parse(httpResponse.body.toString());\n\n var code = e.__type || e.code || e.Code;\n if (code) {\n error.code = code.split('#').pop();\n }\n if (error.code === 'RequestEntityTooLarge') {\n error.message = 'Request body must be less than 1 MB';\n } else {\n error.message = (e.message || e.Message || null);\n }\n\n // The minimized models do not have error shapes, so\n // without expanding the model size, it's not possible\n // to validate the response shape (members) or\n // check if any are sensitive to logging.\n\n // Assign the fields as non-enumerable, allowing specific access only.\n for (var key in e || {}) {\n if (key === 'code' || key === 'message') {\n continue;\n }\n error['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(error, key, {\n value: e[key],\n enumerable: false,\n writable: true\n });\n }\n } catch (e) {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusMessage;\n }\n } else {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusCode.toString();\n }\n\n resp.error = util.error(new Error(), error);\n}\n\nfunction extractData(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n if (resp.request.service.config.convertResponseTypes === false) {\n resp.data = JSON.parse(body);\n } else {\n var operation = resp.request.service.api.operations[resp.request.operation];\n var shape = operation.output || {};\n var parser = new JsonParser();\n resp.data = parser.parse(body, shape);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar QueryParamSerializer = require('../query/query_param_serializer');\nvar Shape = require('../model/shape');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var operation = req.service.api.operations[req.operation];\n var httpRequest = req.httpRequest;\n httpRequest.headers['Content-Type'] =\n 'application/x-www-form-urlencoded; charset=utf-8';\n httpRequest.params = {\n Version: req.service.api.apiVersion,\n Action: operation.name\n };\n\n // convert the request parameters into a list of query params,\n // e.g. Deeply.NestedParam.0.Name=value\n var builder = new QueryParamSerializer();\n builder.serialize(req.params, operation.input, function(name, value) {\n httpRequest.params[name] = value;\n });\n httpRequest.body = util.queryParamsToString(httpRequest.params);\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var data, body = resp.httpResponse.body.toString();\n if (body.match('= 0 ? '&' : '?');\n var parts = [];\n util.arrayEach(Object.keys(queryString).sort(), function(key) {\n if (!Array.isArray(queryString[key])) {\n queryString[key] = [queryString[key]];\n }\n for (var i = 0; i < queryString[key].length; i++) {\n parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]);\n }\n });\n uri += parts.join('&');\n }\n\n return uri;\n}\n\nfunction populateURI(req) {\n var operation = req.service.api.operations[req.operation];\n var input = operation.input;\n\n var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n req.httpRequest.path = uri;\n}\n\nfunction populateHeaders(req) {\n var operation = req.service.api.operations[req.operation];\n util.each(operation.input.members, function (name, member) {\n var value = req.params[name];\n if (value === null || value === undefined) return;\n\n if (member.location === 'headers' && member.type === 'map') {\n util.each(value, function(key, memberValue) {\n req.httpRequest.headers[member.name + key] = memberValue;\n });\n } else if (member.location === 'header') {\n value = member.toWireFormat(value).toString();\n if (member.isJsonValue) {\n value = util.base64.encode(value);\n }\n req.httpRequest.headers[member.name] = value;\n }\n });\n}\n\nfunction buildRequest(req) {\n populateMethod(req);\n populateURI(req);\n populateHeaders(req);\n populateHostPrefix(req);\n}\n\nfunction extractError() {\n}\n\nfunction extractData(resp) {\n var req = resp.request;\n var data = {};\n var r = resp.httpResponse;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n // normalize headers names to lower-cased keys for matching\n var headers = {};\n util.each(r.headers, function (k, v) {\n headers[k.toLowerCase()] = v;\n });\n\n util.each(output.members, function(name, member) {\n var header = (member.name || name).toLowerCase();\n if (member.location === 'headers' && member.type === 'map') {\n data[name] = {};\n var location = member.isLocationName ? member.name : '';\n var pattern = new RegExp('^' + location + '(.+)', 'i');\n util.each(r.headers, function (k, v) {\n var result = k.match(pattern);\n if (result !== null) {\n data[name][result[1]] = v;\n }\n });\n } else if (member.location === 'header') {\n if (headers[header] !== undefined) {\n var value = member.isJsonValue ?\n util.base64.decode(headers[header]) :\n headers[header];\n data[name] = member.toType(value);\n }\n } else if (member.location === 'statusCode') {\n data[name] = parseInt(r.statusCode, 10);\n }\n });\n\n resp.data = data;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n generateURI: generateURI\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar Rest = require('./rest');\nvar Json = require('./json');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\n\nvar METHODS_WITHOUT_BODY = ['GET', 'HEAD', 'DELETE'];\n\nfunction unsetContentLength(req) {\n var payloadMember = util.getRequestPayloadShape(req);\n if (\n payloadMember === undefined &&\n METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) >= 0\n ) {\n delete req.httpRequest.headers['Content-Length'];\n }\n}\n\nfunction populateBody(req) {\n var builder = new JsonBuilder();\n var input = req.service.api.operations[req.operation].input;\n\n if (input.payload) {\n var params = {};\n var payloadShape = input.members[input.payload];\n params = req.params[input.payload];\n\n if (payloadShape.type === 'structure') {\n req.httpRequest.body = builder.build(params || {}, payloadShape);\n applyContentTypeHeader(req);\n } else if (params !== undefined) {\n // non-JSON payload\n req.httpRequest.body = params;\n if (payloadShape.type === 'binary' || payloadShape.isStreaming) {\n applyContentTypeHeader(req, true);\n }\n }\n } else {\n req.httpRequest.body = builder.build(req.params, input);\n applyContentTypeHeader(req);\n }\n}\n\nfunction applyContentTypeHeader(req, isBinary) {\n if (!req.httpRequest.headers['Content-Type']) {\n var type = isBinary ? 'binary/octet-stream' : 'application/json';\n req.httpRequest.headers['Content-Type'] = type;\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD/DELETE\n if (METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Json.extractError(resp);\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var req = resp.request;\n var operation = req.service.api.operations[req.operation];\n var rules = req.service.api.operations[req.operation].output || {};\n var parser;\n var hasEventOutput = operation.hasEventOutput;\n\n if (rules.payload) {\n var payloadMember = rules.members[rules.payload];\n var body = resp.httpResponse.body;\n if (payloadMember.isEventStream) {\n parser = new JsonParser();\n resp.data[rules.payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') {\n var parser = new JsonParser();\n resp.data[rules.payload] = parser.parse(body, payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[rules.payload] = body;\n } else {\n resp.data[rules.payload] = payloadMember.toType(body);\n }\n } else {\n var data = resp.data;\n Json.extractData(resp);\n resp.data = util.merge(data, resp.data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n unsetContentLength: unsetContentLength\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar Rest = require('./rest');\n\nfunction populateBody(req) {\n var input = req.service.api.operations[req.operation].input;\n var builder = new AWS.XML.Builder();\n var params = req.params;\n\n var payload = input.payload;\n if (payload) {\n var payloadMember = input.members[payload];\n params = params[payload];\n if (params === undefined) return;\n\n if (payloadMember.type === 'structure') {\n var rootElement = payloadMember.name;\n req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true);\n } else { // non-xml payload\n req.httpRequest.body = params;\n }\n } else {\n req.httpRequest.body = builder.toXML(params, input, input.name ||\n input.shape || util.string.upperFirst(req.operation) + 'Request');\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD\n if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Rest.extractError(resp);\n\n var data;\n try {\n data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString());\n } catch (e) {\n data = {\n Code: resp.httpResponse.statusCode,\n Message: resp.httpResponse.statusMessage\n };\n }\n\n if (data.Errors) data = data.Errors;\n if (data.Error) data = data.Error;\n if (data.Code) {\n resp.error = util.error(new Error(), {\n code: data.Code,\n message: data.Message\n });\n } else {\n resp.error = util.error(new Error(), {\n code: resp.httpResponse.statusCode,\n message: null\n });\n }\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var parser;\n var req = resp.request;\n var body = resp.httpResponse.body;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n var hasEventOutput = operation.hasEventOutput;\n\n var payload = output.payload;\n if (payload) {\n var payloadMember = output.members[payload];\n if (payloadMember.isEventStream) {\n parser = new AWS.XML.Parser();\n resp.data[payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : resp.httpResponse.body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure') {\n parser = new AWS.XML.Parser();\n resp.data[payload] = parser.parse(body.toString(), payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[payload] = body;\n } else {\n resp.data[payload] = payloadMember.toType(body);\n }\n } else if (body.length > 0) {\n parser = new AWS.XML.Parser();\n var data = parser.parse(body.toString(), output);\n util.update(resp.data, data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var util = require('../util');\n\nfunction QueryParamSerializer() {\n}\n\nQueryParamSerializer.prototype.serialize = function(params, shape, fn) {\n serializeStructure('', params, shape, fn);\n};\n\nfunction ucfirst(shape) {\n if (shape.isQueryName || shape.api.protocol !== 'ec2') {\n return shape.name;\n } else {\n return shape.name[0].toUpperCase() + shape.name.substr(1);\n }\n}\n\nfunction serializeStructure(prefix, struct, rules, fn) {\n util.each(rules.members, function(name, member) {\n var value = struct[name];\n if (value === null || value === undefined) return;\n\n var memberName = ucfirst(member);\n memberName = prefix ? prefix + '.' + memberName : memberName;\n serializeMember(memberName, value, member, fn);\n });\n}\n\nfunction serializeMap(name, map, rules, fn) {\n var i = 1;\n util.each(map, function (key, value) {\n var prefix = rules.flattened ? '.' : '.entry.';\n var position = prefix + (i++) + '.';\n var keyName = position + (rules.key.name || 'key');\n var valueName = position + (rules.value.name || 'value');\n serializeMember(name + keyName, key, rules.key, fn);\n serializeMember(name + valueName, value, rules.value, fn);\n });\n}\n\nfunction serializeList(name, list, rules, fn) {\n var memberRules = rules.member || {};\n\n if (list.length === 0) {\n if (rules.api.protocol !== 'ec2') {\n fn.call(this, name, null);\n }\n return;\n }\n\n util.arrayEach(list, function (v, n) {\n var suffix = '.' + (n + 1);\n if (rules.api.protocol === 'ec2') {\n // Do nothing for EC2\n suffix = suffix + ''; // make linter happy\n } else if (rules.flattened) {\n if (memberRules.name) {\n var parts = name.split('.');\n parts.pop();\n parts.push(ucfirst(memberRules));\n name = parts.join('.');\n }\n } else {\n suffix = '.' + (memberRules.name ? memberRules.name : 'member') + suffix;\n }\n serializeMember(name + suffix, v, memberRules, fn);\n });\n}\n\nfunction serializeMember(name, value, rules, fn) {\n if (value === null || value === undefined) return;\n if (rules.type === 'structure') {\n serializeStructure(name, value, rules, fn);\n } else if (rules.type === 'list') {\n serializeList(name, value, rules, fn);\n } else if (rules.type === 'map') {\n serializeMap(name, value, rules, fn);\n } else {\n fn(name, rules.toWireFormat(value).toString());\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = QueryParamSerializer;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar service = null;\n\n/**\n * @api private\n */\nvar api = {\n signatureVersion: 'v4',\n signingName: 'rds-db',\n operations: {}\n};\n\n/**\n * @api private\n */\nvar requiredAuthTokenOptions = {\n region: 'string',\n hostname: 'string',\n port: 'number',\n username: 'string'\n};\n\n/**\n * A signer object can be used to generate an auth token to a database.\n */\nAWS.RDS.Signer = AWS.util.inherit({\n /**\n * Creates a signer object can be used to generate an auth token.\n *\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * @option options hostname [String] the hostname of the database to connect to.\n * @option options port [Number] the port number the database is listening on.\n * @option options region [String] the region the database is located in.\n * @option options username [String] the username to login as.\n * @example Passing in options to constructor\n * var signer = new AWS.RDS.Signer({\n * credentials: new AWS.SharedIniFileCredentials({profile: 'default'}),\n * region: 'us-east-1',\n * hostname: 'db.us-east-1.rds.amazonaws.com',\n * port: 8000,\n * username: 'name'\n * });\n */\n constructor: function Signer(options) {\n this.options = options || {};\n },\n\n /**\n * @api private\n * Strips the protocol from a url.\n */\n convertUrlToAuthToken: function convertUrlToAuthToken(url) {\n // we are always using https as the protocol\n var protocol = 'https://';\n if (url.indexOf(protocol) === 0) {\n return url.substring(protocol.length);\n }\n },\n\n /**\n * @overload getAuthToken(options = {}, [callback])\n * Generate an auth token to a database.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @param options [map] The fields to use when generating an auth token.\n * Any options specified here will be merged on top of any options passed\n * to AWS.RDS.Signer:\n *\n * * **credentials** (AWS.Credentials) — the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * * **hostname** (String) — the hostname of the database to connect to.\n * * **port** (Number) — the port number the database is listening on.\n * * **region** (String) — the region the database is located in.\n * * **username** (String) — the username to login as.\n * @return [String] if called synchronously (with no callback), returns the\n * auth token.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, token)\n * If a callback is supplied, it is called when an auth token has been generated.\n * @param err [Error] the error object returned from the signer.\n * @param token [String] the auth token.\n *\n * @example Generating an auth token synchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * var token = signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * });\n * @example Generating an auth token asynchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * }, function(err, token) {\n * if (err) {\n * // handle error\n * } else {\n * // use token\n * }\n * });\n *\n */\n getAuthToken: function getAuthToken(options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = {};\n }\n var self = this;\n var hasCallback = typeof callback === 'function';\n // merge options with existing options\n options = AWS.util.merge(this.options, options);\n // validate options\n var optionsValidation = this.validateAuthTokenOptions(options);\n if (optionsValidation !== true) {\n if (hasCallback) {\n return callback(optionsValidation, null);\n }\n throw optionsValidation;\n }\n\n // 15 minutes\n var expires = 900;\n // create service to generate a request from\n var serviceOptions = {\n region: options.region,\n endpoint: new AWS.Endpoint(options.hostname + ':' + options.port),\n paramValidation: false,\n signatureVersion: 'v4'\n };\n if (options.credentials) {\n serviceOptions.credentials = options.credentials;\n }\n service = new AWS.Service(serviceOptions);\n // ensure the SDK is using sigv4 signing (config is not enough)\n service.api = api;\n\n var request = service.makeRequest();\n // add listeners to request to properly build auth token\n this.modifyRequestForAuthToken(request, options);\n\n if (hasCallback) {\n request.presign(expires, function(err, url) {\n if (url) {\n url = self.convertUrlToAuthToken(url);\n }\n callback(err, url);\n });\n } else {\n var url = request.presign(expires);\n return this.convertUrlToAuthToken(url);\n }\n },\n\n /**\n * @api private\n * Modifies a request to allow the presigner to generate an auth token.\n */\n modifyRequestForAuthToken: function modifyRequestForAuthToken(request, options) {\n request.on('build', request.buildAsGet);\n var httpRequest = request.httpRequest;\n httpRequest.body = AWS.util.queryParamsToString({\n Action: 'connect',\n DBUser: options.username\n });\n },\n\n /**\n * @api private\n * Validates that the options passed in contain all the keys with values of the correct type that\n * are needed to generate an auth token.\n */\n validateAuthTokenOptions: function validateAuthTokenOptions(options) {\n // iterate over all keys in options\n var message = '';\n options = options || {};\n for (var key in requiredAuthTokenOptions) {\n if (!Object.prototype.hasOwnProperty.call(requiredAuthTokenOptions, key)) {\n continue;\n }\n if (typeof options[key] !== requiredAuthTokenOptions[key]) {\n message += 'option \\'' + key + '\\' should have been type \\'' + requiredAuthTokenOptions[key] + '\\', was \\'' + typeof options[key] + '\\'.\\n';\n }\n }\n if (message.length) {\n return AWS.util.error(new Error(), {\n code: 'InvalidParameter',\n message: message\n });\n }\n return true;\n }\n});\n","module.exports = {\n //provide realtime clock for performance measurement\n now: function now() {\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n return performance.now();\n }\n return Date.now();\n }\n};\n","function isFipsRegion(region) {\n return typeof region === 'string' && (region.startsWith('fips-') || region.endsWith('-fips'));\n}\n\nfunction isGlobalRegion(region) {\n return typeof region === 'string' && ['aws-global', 'aws-us-gov-global'].includes(region);\n}\n\nfunction getRealRegion(region) {\n return ['fips-aws-global', 'aws-fips', 'aws-global'].includes(region)\n ? 'us-east-1'\n : ['fips-aws-us-gov-global', 'aws-us-gov-global'].includes(region)\n ? 'us-gov-west-1'\n : region.replace(/fips-(dkr-|prod-)?|-fips/, '');\n}\n\nmodule.exports = {\n isFipsRegion: isFipsRegion,\n isGlobalRegion: isGlobalRegion,\n getRealRegion: getRealRegion\n};\n","var util = require('./util');\nvar regionConfig = require('./region_config_data.json');\n\nfunction generateRegionPrefix(region) {\n if (!region) return null;\n var parts = region.split('-');\n if (parts.length < 3) return null;\n return parts.slice(0, parts.length - 2).join('-') + '-*';\n}\n\nfunction derivedKeys(service) {\n var region = service.config.region;\n var regionPrefix = generateRegionPrefix(region);\n var endpointPrefix = service.api.endpointPrefix;\n\n return [\n [region, endpointPrefix],\n [regionPrefix, endpointPrefix],\n [region, '*'],\n [regionPrefix, '*'],\n ['*', endpointPrefix],\n [region, 'internal-*'],\n ['*', '*']\n ].map(function(item) {\n return item[0] && item[1] ? item.join('/') : null;\n });\n}\n\nfunction applyConfig(service, config) {\n util.each(config, function(key, value) {\n if (key === 'globalEndpoint') return;\n if (service.config[key] === undefined || service.config[key] === null) {\n service.config[key] = value;\n }\n });\n}\n\nfunction configureEndpoint(service) {\n var keys = derivedKeys(service);\n var useFipsEndpoint = service.config.useFipsEndpoint;\n var useDualstackEndpoint = service.config.useDualstackEndpoint;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!key) continue;\n\n var rules = useFipsEndpoint\n ? useDualstackEndpoint\n ? regionConfig.dualstackFipsRules\n : regionConfig.fipsRules\n : useDualstackEndpoint\n ? regionConfig.dualstackRules\n : regionConfig.rules;\n\n if (Object.prototype.hasOwnProperty.call(rules, key)) {\n var config = rules[key];\n if (typeof config === 'string') {\n config = regionConfig.patterns[config];\n }\n\n // set global endpoint\n service.isGlobalEndpoint = !!config.globalEndpoint;\n if (config.signingRegion) {\n service.signingRegion = config.signingRegion;\n }\n\n // signature version\n if (!config.signatureVersion) {\n // Note: config is a global object and should not be mutated here.\n // However, we are retaining this line for backwards compatibility.\n // The non-v4 signatureVersion will be set in a copied object below.\n config.signatureVersion = 'v4';\n }\n\n var useBearer = (service.api && service.api.signatureVersion) === 'bearer';\n\n // merge config\n applyConfig(service, Object.assign(\n {},\n config,\n { signatureVersion: useBearer ? 'bearer' : config.signatureVersion }\n ));\n return;\n }\n }\n}\n\nfunction getEndpointSuffix(region) {\n var regionRegexes = {\n '^(us|eu|ap|sa|ca|me)\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^cn\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com.cn',\n '^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$': 'c2s.ic.gov',\n '^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$': 'sc2s.sgov.gov',\n '^eu\\\\-isoe\\\\-west\\\\-1$': 'cloud.adc-e.uk',\n };\n var defaultSuffix = 'amazonaws.com';\n var regexes = Object.keys(regionRegexes);\n for (var i = 0; i < regexes.length; i++) {\n var regionPattern = RegExp(regexes[i]);\n var dnsSuffix = regionRegexes[regexes[i]];\n if (regionPattern.test(region)) return dnsSuffix;\n }\n return defaultSuffix;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n configureEndpoint: configureEndpoint,\n getEndpointSuffix: getEndpointSuffix,\n};\n","var AWS = require('./core');\nvar AcceptorStateMachine = require('./state_machine');\nvar inherit = AWS.util.inherit;\nvar domain = AWS.util.domain;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nvar hardErrorStates = {success: 1, error: 1, complete: 1};\n\nfunction isTerminalState(machine) {\n return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState);\n}\n\nvar fsm = new AcceptorStateMachine();\nfsm.setupStates = function() {\n var transition = function(_, done) {\n var self = this;\n self._haltHandlersOnError = false;\n\n self.emit(self._asm.currentState, function(err) {\n if (err) {\n if (isTerminalState(self)) {\n if (domain && self.domain instanceof domain.Domain) {\n err.domainEmitter = self;\n err.domain = self.domain;\n err.domainThrown = false;\n self.domain.emit('error', err);\n } else {\n throw err;\n }\n } else {\n self.response.error = err;\n done(err);\n }\n } else {\n done(self.response.error);\n }\n });\n\n };\n\n this.addState('validate', 'build', 'error', transition);\n this.addState('build', 'afterBuild', 'restart', transition);\n this.addState('afterBuild', 'sign', 'restart', transition);\n this.addState('sign', 'send', 'retry', transition);\n this.addState('retry', 'afterRetry', 'afterRetry', transition);\n this.addState('afterRetry', 'sign', 'error', transition);\n this.addState('send', 'validateResponse', 'retry', transition);\n this.addState('validateResponse', 'extractData', 'extractError', transition);\n this.addState('extractError', 'extractData', 'retry', transition);\n this.addState('extractData', 'success', 'retry', transition);\n this.addState('restart', 'build', 'error', transition);\n this.addState('success', 'complete', 'complete', transition);\n this.addState('error', 'complete', 'complete', transition);\n this.addState('complete', null, null, transition);\n};\nfsm.setupStates();\n\n/**\n * ## Asynchronous Requests\n *\n * All requests made through the SDK are asynchronous and use a\n * callback interface. Each service method that kicks off a request\n * returns an `AWS.Request` object that you can use to register\n * callbacks.\n *\n * For example, the following service method returns the request\n * object as \"request\", which can be used to register callbacks:\n *\n * ```javascript\n * // request is an AWS.Request object\n * var request = ec2.describeInstances();\n *\n * // register callbacks on request to retrieve response data\n * request.on('success', function(response) {\n * console.log(response.data);\n * });\n * ```\n *\n * When a request is ready to be sent, the {send} method should\n * be called:\n *\n * ```javascript\n * request.send();\n * ```\n *\n * Since registered callbacks may or may not be idempotent, requests should only\n * be sent once. To perform the same operation multiple times, you will need to\n * create multiple request objects, each with its own registered callbacks.\n *\n * ## Removing Default Listeners for Events\n *\n * Request objects are built with default listeners for the various events,\n * depending on the service type. In some cases, you may want to remove\n * some built-in listeners to customize behaviour. Doing this requires\n * access to the built-in listener functions, which are exposed through\n * the {AWS.EventListeners.Core} namespace. For instance, you may\n * want to customize the HTTP handler used when sending a request. In this\n * case, you can remove the built-in listener associated with the 'send'\n * event, the {AWS.EventListeners.Core.SEND} listener and add your own.\n *\n * ## Multiple Callbacks and Chaining\n *\n * You can register multiple callbacks on any request object. The\n * callbacks can be registered for different events, or all for the\n * same event. In addition, you can chain callback registration, for\n * example:\n *\n * ```javascript\n * request.\n * on('success', function(response) {\n * console.log(\"Success!\");\n * }).\n * on('error', function(error, response) {\n * console.log(\"Error!\");\n * }).\n * on('complete', function(response) {\n * console.log(\"Always!\");\n * }).\n * send();\n * ```\n *\n * The above example will print either \"Success! Always!\", or \"Error! Always!\",\n * depending on whether the request succeeded or not.\n *\n * @!attribute httpRequest\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpRequest] the raw HTTP request object\n * containing request headers and body information\n * sent by the service.\n *\n * @!attribute startTime\n * @readonly\n * @!group Operation Properties\n * @return [Date] the time that the request started\n *\n * @!group Request Building Events\n *\n * @!event validate(request)\n * Triggered when a request is being validated. Listeners\n * should throw an error if the request should not be sent.\n * @param request [Request] the request object being sent\n * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS\n * @see AWS.EventListeners.Core.VALIDATE_REGION\n * @example Ensuring that a certain parameter is set before sending a request\n * var req = s3.putObject(params);\n * req.on('validate', function() {\n * if (!req.params.Body.match(/^Hello\\s/)) {\n * throw new Error('Body must start with \"Hello \"');\n * }\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event build(request)\n * Triggered when the request payload is being built. Listeners\n * should fill the necessary information to send the request\n * over HTTP.\n * @param (see AWS.Request~validate)\n * @example Add a custom HTTP header to a request\n * var req = s3.putObject(params);\n * req.on('build', function() {\n * req.httpRequest.headers['Custom-Header'] = 'value';\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event sign(request)\n * Triggered when the request is being signed. Listeners should\n * add the correct authentication headers and/or adjust the body,\n * depending on the authentication mechanism being used.\n * @param (see AWS.Request~validate)\n *\n * @!group Request Sending Events\n *\n * @!event send(response)\n * Triggered when the request is ready to be sent. Listeners\n * should call the underlying transport layer to initiate\n * the sending of the request.\n * @param response [Response] the response object\n * @context [Request] the request object that was sent\n * @see AWS.EventListeners.Core.SEND\n *\n * @!event retry(response)\n * Triggered when a request failed and might need to be retried or redirected.\n * If the response is retryable, the listener should set the\n * `response.error.retryable` property to `true`, and optionally set\n * `response.error.retryDelay` to the millisecond delay for the next attempt.\n * In the case of a redirect, `response.error.redirect` should be set to\n * `true` with `retryDelay` set to an optional delay on the next request.\n *\n * If a listener decides that a request should not be retried,\n * it should set both `retryable` and `redirect` to false.\n *\n * Note that a retryable error will be retried at most\n * {AWS.Config.maxRetries} times (based on the service object's config).\n * Similarly, a request that is redirected will only redirect at most\n * {AWS.Config.maxRedirects} times.\n *\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @example Adding a custom retry for a 404 response\n * request.on('retry', function(response) {\n * // this resource is not yet available, wait 10 seconds to get it again\n * if (response.httpResponse.statusCode === 404 && response.error) {\n * response.error.retryable = true; // retry this error\n * response.error.retryDelay = 10000; // wait 10 seconds\n * }\n * });\n *\n * @!group Data Parsing Events\n *\n * @!event extractError(response)\n * Triggered on all non-2xx requests so that listeners can extract\n * error details from the response body. Listeners to this event\n * should set the `response.error` property.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event extractData(response)\n * Triggered in successful requests to allow listeners to\n * de-serialize the response body into `response.data`.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group Completion Events\n *\n * @!event success(response)\n * Triggered when the request completed successfully.\n * `response.data` will contain the response data and\n * `response.error` will be null.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event error(error, response)\n * Triggered when an error occurs at any point during the\n * request. `response.error` will contain details about the error\n * that occurred. `response.data` will be null.\n * @param error [Error] the error object containing details about\n * the error that occurred.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event complete(response)\n * Triggered whenever a request cycle completes. `response.error`\n * should be checked, since the request may have failed.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group HTTP Events\n *\n * @!event httpHeaders(statusCode, headers, response, statusMessage)\n * Triggered when headers are sent by the remote server\n * @param statusCode [Integer] the HTTP response code\n * @param headers [map] the response headers\n * @param (see AWS.Request~send)\n * @param statusMessage [String] A status message corresponding to the HTTP\n * response code\n * @context (see AWS.Request~send)\n *\n * @!event httpData(chunk, response)\n * Triggered when data is sent by the remote server\n * @param chunk [Buffer] the buffer data containing the next data chunk\n * from the server\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @see AWS.EventListeners.Core.HTTP_DATA\n *\n * @!event httpUploadProgress(progress, response)\n * Triggered when the HTTP request has uploaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpDownloadProgress(progress, response)\n * Triggered when the HTTP request has downloaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpError(error, response)\n * Triggered when the HTTP request failed\n * @param error [Error] the error object that was thrown\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event httpDone(response)\n * Triggered when the server is finished sending data\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @see AWS.Response\n */\nAWS.Request = inherit({\n\n /**\n * Creates a request for an operation on a given service with\n * a set of input parameters.\n *\n * @param service [AWS.Service] the service to perform the operation on\n * @param operation [String] the operation to perform on the service\n * @param params [Object] parameters to send to the operation.\n * See the operation's documentation for the format of the\n * parameters.\n */\n constructor: function Request(service, operation, params) {\n var endpoint = service.endpoint;\n var region = service.config.region;\n var customUserAgent = service.config.customUserAgent;\n\n if (service.signingRegion) {\n region = service.signingRegion;\n } else if (service.isGlobalEndpoint) {\n region = 'us-east-1';\n }\n\n this.domain = domain && domain.active;\n this.service = service;\n this.operation = operation;\n this.params = params || {};\n this.httpRequest = new AWS.HttpRequest(endpoint, region);\n this.httpRequest.appendToUserAgent(customUserAgent);\n this.startTime = service.getSkewCorrectedDate();\n\n this.response = new AWS.Response(this);\n this._asm = new AcceptorStateMachine(fsm.states, 'validate');\n this._haltHandlersOnError = false;\n\n AWS.SequentialExecutor.call(this);\n this.emit = this.emitEvent;\n },\n\n /**\n * @!group Sending a Request\n */\n\n /**\n * @overload send(callback = null)\n * Sends the request object.\n *\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @context [AWS.Request] the request object being sent.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n * @example Sending a request with a callback\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.send(function(err, data) { console.log(err, data); });\n * @example Sending a request with no callback (using event handlers)\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.on('complete', function(response) { ... }); // register a callback\n * request.send();\n */\n send: function send(callback) {\n if (callback) {\n // append to user agent\n this.httpRequest.appendToUserAgent('callback');\n this.on('complete', function (resp) {\n callback.call(resp, resp.error, resp.data);\n });\n }\n this.runTo();\n\n return this.response;\n },\n\n /**\n * @!method promise()\n * Sends the request and returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [Object] the de-serialized data returned from the request.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param error [Error] the error object returned from the request.\n * @return [Promise] A promise that represents the state of the request.\n * @example Sending a request using promises.\n * var request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * var result = request.promise();\n * result.then(function(data) { ... }, function(error) { ... });\n */\n\n /**\n * @api private\n */\n build: function build(callback) {\n return this.runTo('send', callback);\n },\n\n /**\n * @api private\n */\n runTo: function runTo(state, done) {\n this._asm.runTo(state, done, this);\n return this;\n },\n\n /**\n * Aborts a request, emitting the error and complete events.\n *\n * @!macro nobrowser\n * @example Aborting a request after sending\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 5) // 5MB payload\n * };\n * var request = s3.putObject(params);\n * request.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(request.abort.bind(request), 1000);\n *\n * // prints \"Error: RequestAbortedError Request aborted by user\"\n * @return [AWS.Request] the same request object, for chaining.\n * @since v1.4.0\n */\n abort: function abort() {\n this.removeAllListeners('validateResponse');\n this.removeAllListeners('extractError');\n this.on('validateResponse', function addAbortedError(resp) {\n resp.error = AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n });\n });\n\n if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream\n this.httpRequest.stream.abort();\n if (this.httpRequest._abortCallback) {\n this.httpRequest._abortCallback();\n } else {\n this.removeAllListeners('send'); // haven't sent yet, so let's not\n }\n }\n\n return this;\n },\n\n /**\n * Iterates over each page of results given a pageable request, calling\n * the provided callback with each page of data. After all pages have been\n * retrieved, the callback is called with `null` data.\n *\n * @note This operation can generate multiple requests to a service.\n * @example Iterating over multiple pages of objects in an S3 bucket\n * var pages = 1;\n * s3.listObjects().eachPage(function(err, data) {\n * if (err) return;\n * console.log(\"Page\", pages++);\n * console.log(data);\n * });\n * @example Iterating over multiple pages with an asynchronous callback\n * s3.listObjects(params).eachPage(function(err, data, done) {\n * doSomethingAsyncAndOrExpensive(function() {\n * // The next page of results isn't fetched until done is called\n * done();\n * });\n * });\n * @callback callback function(err, data, [doneCallback])\n * Called with each page of resulting data from the request. If the\n * optional `doneCallback` is provided in the function, it must be called\n * when the callback is complete.\n *\n * @param err [Error] an error object, if an error occurred.\n * @param data [Object] a single page of response data. If there is no\n * more data, this object will be `null`.\n * @param doneCallback [Function] an optional done callback. If this\n * argument is defined in the function declaration, it should be called\n * when the next page is ready to be retrieved. This is useful for\n * controlling serial pagination across asynchronous operations.\n * @return [Boolean] if the callback returns `false`, pagination will\n * stop.\n *\n * @see AWS.Request.eachItem\n * @see AWS.Response.nextPage\n * @since v1.4.0\n */\n eachPage: function eachPage(callback) {\n // Make all callbacks async-ish\n callback = AWS.util.fn.makeAsync(callback, 3);\n\n function wrappedCallback(response) {\n callback.call(response, response.error, response.data, function (result) {\n if (result === false) return;\n\n if (response.hasNextPage()) {\n response.nextPage().on('complete', wrappedCallback).send();\n } else {\n callback.call(response, null, null, AWS.util.fn.noop);\n }\n });\n }\n\n this.on('complete', wrappedCallback).send();\n },\n\n /**\n * Enumerates over individual items of a request, paging the responses if\n * necessary.\n *\n * @api experimental\n * @since v1.4.0\n */\n eachItem: function eachItem(callback) {\n var self = this;\n function wrappedCallback(err, data) {\n if (err) return callback(err, null);\n if (data === null) return callback(null, null);\n\n var config = self.service.paginationConfig(self.operation);\n var resultKey = config.resultKey;\n if (Array.isArray(resultKey)) resultKey = resultKey[0];\n var items = jmespath.search(data, resultKey);\n var continueIteration = true;\n AWS.util.arrayEach(items, function(item) {\n continueIteration = callback(null, item);\n if (continueIteration === false) {\n return AWS.util.abort;\n }\n });\n return continueIteration;\n }\n\n this.eachPage(wrappedCallback);\n },\n\n /**\n * @return [Boolean] whether the operation can return multiple pages of\n * response data.\n * @see AWS.Response.eachPage\n * @since v1.4.0\n */\n isPageable: function isPageable() {\n return this.service.paginationConfig(this.operation) ? true : false;\n },\n\n /**\n * Sends the request and converts the request object into a readable stream\n * that can be read from or piped into a writable stream.\n *\n * @note The data read from a readable stream contains only\n * the raw HTTP body contents.\n * @example Manually reading from a stream\n * request.createReadStream().on('data', function(data) {\n * console.log(\"Got data:\", data.toString());\n * });\n * @example Piping a request body into a file\n * var out = fs.createWriteStream('/path/to/outfile.jpg');\n * s3.service.getObject(params).createReadStream().pipe(out);\n * @return [Stream] the readable stream object that can be piped\n * or read from (by registering 'data' event listeners).\n * @!macro nobrowser\n */\n createReadStream: function createReadStream() {\n var streams = AWS.util.stream;\n var req = this;\n var stream = null;\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n stream = new streams.PassThrough();\n process.nextTick(function() { req.send(); });\n } else {\n stream = new streams.Stream();\n stream.readable = true;\n\n stream.sent = false;\n stream.on('newListener', function(event) {\n if (!stream.sent && event === 'data') {\n stream.sent = true;\n process.nextTick(function() { req.send(); });\n }\n });\n }\n\n this.on('error', function(err) {\n stream.emit('error', err);\n });\n\n this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) {\n if (statusCode < 300) {\n req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA);\n req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR);\n req.on('httpError', function streamHttpError(error) {\n resp.error = error;\n resp.error.retryable = false;\n });\n\n var shouldCheckContentLength = false;\n var expectedLen;\n if (req.httpRequest.method !== 'HEAD') {\n expectedLen = parseInt(headers['content-length'], 10);\n }\n if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) {\n shouldCheckContentLength = true;\n var receivedLen = 0;\n }\n\n var checkContentLengthAndEmit = function checkContentLengthAndEmit() {\n if (shouldCheckContentLength && receivedLen !== expectedLen) {\n stream.emit('error', AWS.util.error(\n new Error('Stream content length mismatch. Received ' +\n receivedLen + ' of ' + expectedLen + ' bytes.'),\n { code: 'StreamContentLengthMismatch' }\n ));\n } else if (AWS.HttpClient.streamsApiVersion === 2) {\n stream.end();\n } else {\n stream.emit('end');\n }\n };\n\n var httpStream = resp.httpResponse.createUnbufferedStream();\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n if (shouldCheckContentLength) {\n var lengthAccumulator = new streams.PassThrough();\n lengthAccumulator._write = function(chunk) {\n if (chunk && chunk.length) {\n receivedLen += chunk.length;\n }\n return streams.PassThrough.prototype._write.apply(this, arguments);\n };\n\n lengthAccumulator.on('end', checkContentLengthAndEmit);\n stream.on('error', function(err) {\n shouldCheckContentLength = false;\n httpStream.unpipe(lengthAccumulator);\n lengthAccumulator.emit('end');\n lengthAccumulator.end();\n });\n httpStream.pipe(lengthAccumulator).pipe(stream, { end: false });\n } else {\n httpStream.pipe(stream);\n }\n } else {\n\n if (shouldCheckContentLength) {\n httpStream.on('data', function(arg) {\n if (arg && arg.length) {\n receivedLen += arg.length;\n }\n });\n }\n\n httpStream.on('data', function(arg) {\n stream.emit('data', arg);\n });\n httpStream.on('end', checkContentLengthAndEmit);\n }\n\n httpStream.on('error', function(err) {\n shouldCheckContentLength = false;\n stream.emit('error', err);\n });\n }\n });\n\n return stream;\n },\n\n /**\n * @param [Array,Response] args This should be the response object,\n * or an array of args to send to the event.\n * @api private\n */\n emitEvent: function emit(eventName, args, done) {\n if (typeof args === 'function') { done = args; args = null; }\n if (!done) done = function() { };\n if (!args) args = this.eventParameters(eventName, this.response);\n\n var origEmit = AWS.SequentialExecutor.prototype.emit;\n origEmit.call(this, eventName, args, function (err) {\n if (err) this.response.error = err;\n done.call(this, err);\n });\n },\n\n /**\n * @api private\n */\n eventParameters: function eventParameters(eventName) {\n switch (eventName) {\n case 'restart':\n case 'validate':\n case 'sign':\n case 'build':\n case 'afterValidate':\n case 'afterBuild':\n return [this];\n case 'error':\n return [this.response.error, this.response];\n default:\n return [this.response];\n }\n },\n\n /**\n * @api private\n */\n presign: function presign(expires, callback) {\n if (!callback && typeof expires === 'function') {\n callback = expires;\n expires = null;\n }\n return new AWS.Signers.Presign().sign(this.toGet(), expires, callback);\n },\n\n /**\n * @api private\n */\n isPresigned: function isPresigned() {\n return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires');\n },\n\n /**\n * @api private\n */\n toUnauthenticated: function toUnauthenticated() {\n this._unAuthenticated = true;\n this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS);\n this.removeListener('sign', AWS.EventListeners.Core.SIGN);\n return this;\n },\n\n /**\n * @api private\n */\n toGet: function toGet() {\n if (this.service.api.protocol === 'query' ||\n this.service.api.protocol === 'ec2') {\n this.removeListener('build', this.buildAsGet);\n this.addListener('build', this.buildAsGet);\n }\n return this;\n },\n\n /**\n * @api private\n */\n buildAsGet: function buildAsGet(request) {\n request.httpRequest.method = 'GET';\n request.httpRequest.path = request.service.endpoint.path +\n '?' + request.httpRequest.body;\n request.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete request.httpRequest.headers['Content-Length'];\n delete request.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @api private\n */\n haltHandlersOnError: function haltHandlersOnError() {\n this._haltHandlersOnError = true;\n }\n});\n\n/**\n * @api private\n */\nAWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = function promise() {\n var self = this;\n // append to user agent\n this.httpRequest.appendToUserAgent('promise');\n return new PromiseDependency(function(resolve, reject) {\n self.on('complete', function(resp) {\n if (resp.error) {\n reject(resp.error);\n } else {\n // define $response property so that it is not enumerable\n // this prevents circular reference errors when stringifying the JSON object\n resolve(Object.defineProperty(\n resp.data || {},\n '$response',\n {value: resp}\n ));\n }\n });\n self.runTo();\n });\n };\n};\n\n/**\n * @api private\n */\nAWS.Request.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.Request);\n\nAWS.util.mixin(AWS.Request, AWS.SequentialExecutor);\n","/**\n * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You\n * may not use this file except in compliance with the License. A copy of\n * the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific\n * language governing permissions and limitations under the License.\n */\n\nvar AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nfunction CHECK_ACCEPTORS(resp) {\n var waiter = resp.request._waiter;\n var acceptors = waiter.config.acceptors;\n var acceptorMatched = false;\n var state = 'retry';\n\n acceptors.forEach(function(acceptor) {\n if (!acceptorMatched) {\n var matcher = waiter.matchers[acceptor.matcher];\n if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) {\n acceptorMatched = true;\n state = acceptor.state;\n }\n }\n });\n\n if (!acceptorMatched && resp.error) state = 'failure';\n\n if (state === 'success') {\n waiter.setSuccess(resp);\n } else {\n waiter.setError(resp, state === 'retry');\n }\n}\n\n/**\n * @api private\n */\nAWS.ResourceWaiter = inherit({\n /**\n * Waits for a given state on a service object\n * @param service [Service] the service object to wait on\n * @param state [String] the state (defined in waiter configuration) to wait\n * for.\n * @example Create a waiter for running EC2 instances\n * var ec2 = new AWS.EC2;\n * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning');\n */\n constructor: function constructor(service, state) {\n this.service = service;\n this.state = state;\n this.loadWaiterConfig(this.state);\n },\n\n service: null,\n\n state: null,\n\n config: null,\n\n matchers: {\n path: function(resp, expected, argument) {\n try {\n var result = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n return jmespath.strictDeepEqual(result,expected);\n },\n\n pathAll: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n if (!numResults) return false;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (!jmespath.strictDeepEqual(results[ind], expected)) {\n return false;\n }\n }\n return true;\n },\n\n pathAny: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (jmespath.strictDeepEqual(results[ind], expected)) {\n return true;\n }\n }\n return false;\n },\n\n status: function(resp, expected) {\n var statusCode = resp.httpResponse.statusCode;\n return (typeof statusCode === 'number') && (statusCode === expected);\n },\n\n error: function(resp, expected) {\n if (typeof expected === 'string' && resp.error) {\n return expected === resp.error.code;\n }\n // if expected is not string, can be boolean indicating presence of error\n return expected === !!resp.error;\n }\n },\n\n listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) {\n add('RETRY_CHECK', 'retry', function(resp) {\n var waiter = resp.request._waiter;\n if (resp.error && resp.error.code === 'ResourceNotReady') {\n resp.error.retryDelay = (waiter.config.delay || 0) * 1000;\n }\n });\n\n add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS);\n\n add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS);\n }),\n\n /**\n * @return [AWS.Request]\n */\n wait: function wait(params, callback) {\n if (typeof params === 'function') {\n callback = params; params = undefined;\n }\n\n if (params && params.$waiter) {\n params = AWS.util.copy(params);\n if (typeof params.$waiter.delay === 'number') {\n this.config.delay = params.$waiter.delay;\n }\n if (typeof params.$waiter.maxAttempts === 'number') {\n this.config.maxAttempts = params.$waiter.maxAttempts;\n }\n delete params.$waiter;\n }\n\n var request = this.service.makeRequest(this.config.operation, params);\n request._waiter = this;\n request.response.maxRetries = this.config.maxAttempts;\n request.addListeners(this.listeners);\n\n if (callback) request.send(callback);\n return request;\n },\n\n setSuccess: function setSuccess(resp) {\n resp.error = null;\n resp.data = resp.data || {};\n resp.request.removeAllListeners('extractData');\n },\n\n setError: function setError(resp, retryable) {\n resp.data = null;\n resp.error = AWS.util.error(resp.error || new Error(), {\n code: 'ResourceNotReady',\n message: 'Resource is not in the state ' + this.state,\n retryable: retryable\n });\n },\n\n /**\n * Loads waiter configuration from API configuration\n *\n * @api private\n */\n loadWaiterConfig: function loadWaiterConfig(state) {\n if (!this.service.api.waiters[state]) {\n throw new AWS.util.error(new Error(), {\n code: 'StateNotFoundError',\n message: 'State ' + state + ' not found.'\n });\n }\n\n this.config = AWS.util.copy(this.service.api.waiters[state]);\n }\n});\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * This class encapsulates the response information\n * from a service request operation sent through {AWS.Request}.\n * The response object has two main properties for getting information\n * back from a request:\n *\n * ## The `data` property\n *\n * The `response.data` property contains the serialized object data\n * retrieved from the service request. For instance, for an\n * Amazon DynamoDB `listTables` method call, the response data might\n * look like:\n *\n * ```\n * > resp.data\n * { TableNames:\n * [ 'table1', 'table2', ... ] }\n * ```\n *\n * The `data` property can be null if an error occurs (see below).\n *\n * ## The `error` property\n *\n * In the event of a service error (or transfer error), the\n * `response.error` property will be filled with the given\n * error data in the form:\n *\n * ```\n * { code: 'SHORT_UNIQUE_ERROR_CODE',\n * message: 'Some human readable error message' }\n * ```\n *\n * In the case of an error, the `data` property will be `null`.\n * Note that if you handle events that can be in a failure state,\n * you should always check whether `response.error` is set\n * before attempting to access the `response.data` property.\n *\n * @!attribute data\n * @readonly\n * @!group Data Properties\n * @note Inside of a {AWS.Request~httpData} event, this\n * property contains a single raw packet instead of the\n * full de-serialized service response.\n * @return [Object] the de-serialized response data\n * from the service.\n *\n * @!attribute error\n * An structure containing information about a service\n * or networking error.\n * @readonly\n * @!group Data Properties\n * @note This attribute is only filled if a service or\n * networking error occurs.\n * @return [Error]\n * * code [String] a unique short code representing the\n * error that was emitted.\n * * message [String] a longer human readable error message\n * * retryable [Boolean] whether the error message is\n * retryable.\n * * statusCode [Numeric] in the case of a request that reached the service,\n * this value contains the response status code.\n * * time [Date] the date time object when the error occurred.\n * * hostname [String] set when a networking error occurs to easily\n * identify the endpoint of the request.\n * * region [String] set when a networking error occurs to easily\n * identify the region of the request.\n *\n * @!attribute requestId\n * @readonly\n * @!group Data Properties\n * @return [String] the unique request ID associated with the response.\n * Log this value when debugging requests for AWS support.\n *\n * @!attribute retryCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of retries that were\n * attempted before the request was completed.\n *\n * @!attribute redirectCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of redirects that were\n * followed before the request was completed.\n *\n * @!attribute httpResponse\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpResponse] the raw HTTP response object\n * containing the response headers and body information\n * from the server.\n *\n * @see AWS.Request\n */\nAWS.Response = inherit({\n\n /**\n * @api private\n */\n constructor: function Response(request) {\n this.request = request;\n this.data = null;\n this.error = null;\n this.retryCount = 0;\n this.redirectCount = 0;\n this.httpResponse = new AWS.HttpResponse();\n if (request) {\n this.maxRetries = request.service.numRetries();\n this.maxRedirects = request.service.config.maxRedirects;\n }\n },\n\n /**\n * Creates a new request for the next page of response data, calling the\n * callback with the page data if a callback is provided.\n *\n * @callback callback function(err, data)\n * Called when a page of data is returned from the next request.\n *\n * @param err [Error] an error object, if an error occurred in the request\n * @param data [Object] the next page of data, or null, if there are no\n * more pages left.\n * @return [AWS.Request] the request object for the next page of data\n * @return [null] if no callback is provided and there are no pages left\n * to retrieve.\n * @since v1.4.0\n */\n nextPage: function nextPage(callback) {\n var config;\n var service = this.request.service;\n var operation = this.request.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { this.error = e; }\n\n if (!this.hasNextPage()) {\n if (callback) callback(this.error, null);\n else if (this.error) throw this.error;\n return null;\n }\n\n var params = AWS.util.copy(this.request.params);\n if (!this.nextPageTokens) {\n return callback ? callback(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = this.nextPageTokens[i];\n }\n return service.makeRequest(this.request.operation, params, callback);\n }\n },\n\n /**\n * @return [Boolean] whether more pages of data can be returned by further\n * requests\n * @since v1.4.0\n */\n hasNextPage: function hasNextPage() {\n this.cacheNextPageTokens();\n if (this.nextPageTokens) return true;\n if (this.nextPageTokens === undefined) return undefined;\n else return false;\n },\n\n /**\n * @api private\n */\n cacheNextPageTokens: function cacheNextPageTokens() {\n if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens;\n this.nextPageTokens = undefined;\n\n var config = this.request.service.paginationConfig(this.request.operation);\n if (!config) return this.nextPageTokens;\n\n this.nextPageTokens = null;\n if (config.moreResults) {\n if (!jmespath.search(this.data, config.moreResults)) {\n return this.nextPageTokens;\n }\n }\n\n var exprs = config.outputToken;\n if (typeof exprs === 'string') exprs = [exprs];\n AWS.util.arrayEach.call(this, exprs, function (expr) {\n var output = jmespath.search(this.data, expr);\n if (output) {\n this.nextPageTokens = this.nextPageTokens || [];\n this.nextPageTokens.push(output);\n }\n });\n\n return this.nextPageTokens;\n }\n\n});\n","var AWS = require('../core');\nvar byteLength = AWS.util.string.byteLength;\nvar Buffer = AWS.util.Buffer;\n\n/**\n * The managed uploader allows for easy and efficient uploading of buffers,\n * blobs, or streams, using a configurable amount of concurrency to perform\n * multipart uploads where possible. This abstraction also enables uploading\n * streams of unknown size due to the use of multipart uploads.\n *\n * To construct a managed upload object, see the {constructor} function.\n *\n * ## Tracking upload progress\n *\n * The managed upload object can also track progress by attaching an\n * 'httpUploadProgress' listener to the upload manager. This event is similar\n * to {AWS.Request~httpUploadProgress} but groups all concurrent upload progress\n * into a single event. See {AWS.S3.ManagedUpload~httpUploadProgress} for more\n * information.\n *\n * ## Handling Multipart Cleanup\n *\n * By default, this class will automatically clean up any multipart uploads\n * when an individual part upload fails. This behavior can be disabled in order\n * to manually handle failures by setting the `leavePartsOnError` configuration\n * option to `true` when initializing the upload object.\n *\n * @!event httpUploadProgress(progress)\n * Triggered when the uploader has uploaded more data.\n * @note The `total` property may not be set if the stream being uploaded has\n * not yet finished chunking. In this case the `total` will be undefined\n * until the total stream size is known.\n * @note This event will not be emitted in Node.js 0.8.x.\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request and the `key` of the S3 object. Note that `total` may be undefined until the payload\n * size is known.\n * @context (see AWS.Request~send)\n */\nAWS.S3.ManagedUpload = AWS.util.inherit({\n /**\n * Creates a managed upload object with a set of configuration options.\n *\n * @note A \"Body\" parameter is required to be set prior to calling {send}.\n * @note In Node.js, sending \"Body\" as {https://nodejs.org/dist/latest/docs/api/stream.html#stream_object_mode object-mode stream}\n * may result in upload hangs. Using buffer stream is preferable.\n * @option options params [map] a map of parameters to pass to the upload\n * requests. The \"Body\" parameter is required to be specified either on\n * the service or in the params option.\n * @note ContentMD5 should not be provided when using the managed upload object.\n * Instead, setting \"computeChecksums\" to true will enable automatic ContentMD5 generation\n * by the managed upload object.\n * @option options queueSize [Number] (4) the size of the concurrent queue\n * manager to upload parts in parallel. Set to 1 for synchronous uploading\n * of parts. Note that the uploader will buffer at most queueSize * partSize\n * bytes into memory at any given time.\n * @option options partSize [Number] (5mb) the size in bytes for each\n * individual part to be uploaded. Adjust the part size to ensure the number\n * of parts does not exceed {maxTotalParts}. See {minPartSize} for the\n * minimum allowed part size.\n * @option options leavePartsOnError [Boolean] (false) whether to abort the\n * multipart upload if an error occurs. Set to true if you want to handle\n * failures manually.\n * @option options service [AWS.S3] an optional S3 service object to use for\n * requests. This object might have bound parameters used by the uploader.\n * @option options tags [Array] The tags to apply to the uploaded object.\n * Each tag should have a `Key` and `Value` keys.\n * @example Creating a default uploader for a stream object\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with concurrency of 1 and partSize of 10mb\n * var upload = new AWS.S3.ManagedUpload({\n * partSize: 10 * 1024 * 1024, queueSize: 1,\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with tags\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream},\n * tags: [{Key: 'tag1', Value: 'value1'}, {Key: 'tag2', Value: 'value2'}]\n * });\n * @see send\n */\n constructor: function ManagedUpload(options) {\n var self = this;\n AWS.SequentialExecutor.call(self);\n self.body = null;\n self.sliceFn = null;\n self.callback = null;\n self.parts = {};\n self.completeInfo = [];\n self.fillQueue = function() {\n self.callback(new Error('Unsupported body payload ' + typeof self.body));\n };\n\n self.configure(options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n options = options || {};\n this.partSize = this.minPartSize;\n\n if (options.queueSize) this.queueSize = options.queueSize;\n if (options.partSize) this.partSize = options.partSize;\n if (options.leavePartsOnError) this.leavePartsOnError = true;\n if (options.tags) {\n if (!Array.isArray(options.tags)) {\n throw new Error('Tags must be specified as an array; ' +\n typeof options.tags + ' provided.');\n }\n this.tags = options.tags;\n }\n\n if (this.partSize < this.minPartSize) {\n throw new Error('partSize must be greater than ' +\n this.minPartSize);\n }\n\n this.service = options.service;\n this.bindServiceObject(options.params);\n this.validateBody();\n this.adjustTotalBytes();\n },\n\n /**\n * @api private\n */\n leavePartsOnError: false,\n\n /**\n * @api private\n */\n queueSize: 4,\n\n /**\n * @api private\n */\n partSize: null,\n\n /**\n * @readonly\n * @return [Number] the minimum number of bytes for an individual part\n * upload.\n */\n minPartSize: 1024 * 1024 * 5,\n\n /**\n * @readonly\n * @return [Number] the maximum allowed number of parts in a multipart upload.\n */\n maxTotalParts: 10000,\n\n /**\n * Initiates the managed upload for the payload.\n *\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * * `Location` (String) the URL of the uploaded object\n * * `ETag` (String) the ETag of the uploaded object\n * * `Bucket` (String) the bucket to which the object was uploaded\n * * `Key` (String) the key to which the object was uploaded\n * @example Sending a managed upload object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var upload = new AWS.S3.ManagedUpload({params: params});\n * upload.send(function(err, data) {\n * console.log(err, data);\n * });\n */\n send: function(callback) {\n var self = this;\n self.failed = false;\n self.callback = callback || function(err) { if (err) throw err; };\n\n var runFill = true;\n if (self.sliceFn) {\n self.fillQueue = self.fillBuffer;\n } else if (AWS.util.isNode()) {\n var Stream = AWS.util.stream.Stream;\n if (self.body instanceof Stream) {\n runFill = false;\n self.fillQueue = self.fillStream;\n self.partBuffers = [];\n self.body.\n on('error', function(err) { self.cleanup(err); }).\n on('readable', function() { self.fillQueue(); }).\n on('end', function() {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers;\n self.fillQueue.call(self);\n\n if (self.isDoneChunking && self.totalPartNumbers >= 1 && self.doneParts === self.numParts) {\n self.finishMultiPart();\n }\n });\n }\n }\n\n if (runFill) self.fillQueue.call(self);\n },\n\n /**\n * @!method promise()\n * Returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [map] The response data from the successful upload:\n * `Location` (String) the URL of the uploaded object\n * `ETag` (String) the ETag of the uploaded object\n * `Bucket` (String) the bucket to which the object was uploaded\n * `Key` (String) the key to which the object was uploaded\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] an error or null if no error occurred.\n * @return [Promise] A promise that represents the state of the upload request.\n * @example Sending an upload request using promises.\n * var upload = s3.upload({Bucket: 'bucket', Key: 'key', Body: stream});\n * var promise = upload.promise();\n * promise.then(function(data) { ... }, function(err) { ... });\n */\n\n /**\n * Aborts a managed upload, including all concurrent upload requests.\n * @note By default, calling this function will cleanup a multipart upload\n * if one was created. To leave the multipart upload around after aborting\n * a request, configure `leavePartsOnError` to `true` in the {constructor}.\n * @note Calling {abort} in the browser environment will not abort any requests\n * that are already in flight. If a multipart upload was created, any parts\n * not yet uploaded will not be sent, and the multipart upload will be cleaned up.\n * @example Aborting an upload\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 25) // 25MB payload\n * };\n * var upload = s3.upload(params);\n * upload.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(upload.abort.bind(upload), 1000);\n */\n abort: function() {\n var self = this;\n //abort putObject request\n if (self.isDoneChunking === true && self.totalPartNumbers === 1 && self.singlePart) {\n self.singlePart.abort();\n } else {\n self.cleanup(AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n }));\n }\n },\n\n /**\n * @api private\n */\n validateBody: function validateBody() {\n var self = this;\n self.body = self.service.config.params.Body;\n if (typeof self.body === 'string') {\n self.body = AWS.util.buffer.toBuffer(self.body);\n } else if (!self.body) {\n throw new Error('params.Body is required');\n }\n self.sliceFn = AWS.util.arraySliceFn(self.body);\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(params) {\n params = params || {};\n var self = this;\n // bind parameters to new service object\n if (!self.service) {\n self.service = new AWS.S3({params: params});\n } else {\n // Create a new S3 client from the supplied client's constructor.\n var service = self.service;\n var config = AWS.util.copy(service.config);\n config.signatureVersion = service.getSignatureVersion();\n self.service = new service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, params);\n Object.defineProperty(self.service, '_originalConfig', {\n get: function() { return service._originalConfig; },\n enumerable: false,\n configurable: true\n });\n }\n },\n\n /**\n * @api private\n */\n adjustTotalBytes: function adjustTotalBytes() {\n var self = this;\n try { // try to get totalBytes\n self.totalBytes = byteLength(self.body);\n } catch (e) { }\n\n // try to adjust partSize if we know payload length\n if (self.totalBytes) {\n var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts);\n if (newPartSize > self.partSize) self.partSize = newPartSize;\n } else {\n self.totalBytes = undefined;\n }\n },\n\n /**\n * @api private\n */\n isDoneChunking: false,\n\n /**\n * @api private\n */\n partPos: 0,\n\n /**\n * @api private\n */\n totalChunkedBytes: 0,\n\n /**\n * @api private\n */\n totalUploadedBytes: 0,\n\n /**\n * @api private\n */\n totalBytes: undefined,\n\n /**\n * @api private\n */\n numParts: 0,\n\n /**\n * @api private\n */\n totalPartNumbers: 0,\n\n /**\n * @api private\n */\n activeParts: 0,\n\n /**\n * @api private\n */\n doneParts: 0,\n\n /**\n * @api private\n */\n parts: null,\n\n /**\n * @api private\n */\n completeInfo: null,\n\n /**\n * @api private\n */\n failed: false,\n\n /**\n * @api private\n */\n multipartReq: null,\n\n /**\n * @api private\n */\n partBuffers: null,\n\n /**\n * @api private\n */\n partBufferLength: 0,\n\n /**\n * @api private\n */\n fillBuffer: function fillBuffer() {\n var self = this;\n var bodyLen = byteLength(self.body);\n\n if (bodyLen === 0) {\n self.isDoneChunking = true;\n self.numParts = 1;\n self.nextChunk(self.body);\n return;\n }\n\n while (self.activeParts < self.queueSize && self.partPos < bodyLen) {\n var endPos = Math.min(self.partPos + self.partSize, bodyLen);\n var buf = self.sliceFn.call(self.body, self.partPos, endPos);\n self.partPos += self.partSize;\n\n if (byteLength(buf) < self.partSize || self.partPos === bodyLen) {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers + 1;\n }\n self.nextChunk(buf);\n }\n },\n\n /**\n * @api private\n */\n fillStream: function fillStream() {\n var self = this;\n if (self.activeParts >= self.queueSize) return;\n\n var buf = self.body.read(self.partSize - self.partBufferLength) ||\n self.body.read();\n if (buf) {\n self.partBuffers.push(buf);\n self.partBufferLength += buf.length;\n self.totalChunkedBytes += buf.length;\n }\n\n if (self.partBufferLength >= self.partSize) {\n // if we have single buffer we avoid copyfull concat\n var pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n\n // if we have more than partSize, push the rest back on the queue\n if (pbuf.length > self.partSize) {\n var rest = pbuf.slice(self.partSize);\n self.partBuffers.push(rest);\n self.partBufferLength += rest.length;\n pbuf = pbuf.slice(0, self.partSize);\n }\n\n self.nextChunk(pbuf);\n }\n\n if (self.isDoneChunking && !self.isDoneSending) {\n // if we have single buffer we avoid copyfull concat\n pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n self.totalBytes = self.totalChunkedBytes;\n self.isDoneSending = true;\n\n if (self.numParts === 0 || pbuf.length > 0) {\n self.numParts++;\n self.nextChunk(pbuf);\n }\n }\n\n self.body.read(0);\n },\n\n /**\n * @api private\n */\n nextChunk: function nextChunk(chunk) {\n var self = this;\n if (self.failed) return null;\n\n var partNumber = ++self.totalPartNumbers;\n if (self.isDoneChunking && partNumber === 1) {\n var params = {Body: chunk};\n if (this.tags) {\n params.Tagging = this.getTaggingHeader();\n }\n var req = self.service.putObject(params);\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress).send(self.finishSinglePart);\n self.singlePart = req; //save the single part request\n return null;\n } else if (self.service.config.params.ContentMD5) {\n var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), {\n code: 'InvalidDigest', retryable: false\n });\n\n self.cleanup(err);\n return null;\n }\n\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) {\n return null; // Already uploaded this part.\n }\n\n self.activeParts++;\n if (!self.service.config.params.UploadId) {\n\n if (!self.multipartReq) { // create multipart\n self.multipartReq = self.service.createMultipartUpload();\n self.multipartReq.on('success', function(resp) {\n self.service.config.params.UploadId = resp.data.UploadId;\n self.multipartReq = null;\n });\n self.queueChunks(chunk, partNumber);\n self.multipartReq.on('error', function(err) {\n self.cleanup(err);\n });\n self.multipartReq.send();\n } else {\n self.queueChunks(chunk, partNumber);\n }\n } else { // multipart is created, just send\n self.uploadPart(chunk, partNumber);\n }\n },\n\n /**\n * @api private\n */\n getTaggingHeader: function getTaggingHeader() {\n var kvPairStrings = [];\n for (var i = 0; i < this.tags.length; i++) {\n kvPairStrings.push(AWS.util.uriEscape(this.tags[i].Key) + '=' +\n AWS.util.uriEscape(this.tags[i].Value));\n }\n\n return kvPairStrings.join('&');\n },\n\n /**\n * @api private\n */\n uploadPart: function uploadPart(chunk, partNumber) {\n var self = this;\n\n var partParams = {\n Body: chunk,\n ContentLength: AWS.util.string.byteLength(chunk),\n PartNumber: partNumber\n };\n\n var partInfo = {ETag: null, PartNumber: partNumber};\n self.completeInfo[partNumber] = partInfo;\n\n var req = self.service.uploadPart(partParams);\n self.parts[partNumber] = req;\n req._lastUploadedBytes = 0;\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress);\n req.send(function(err, data) {\n delete self.parts[partParams.PartNumber];\n self.activeParts--;\n\n if (!err && (!data || !data.ETag)) {\n var message = 'No access to ETag property on response.';\n if (AWS.util.isBrowser()) {\n message += ' Check CORS configuration to expose ETag header.';\n }\n\n err = AWS.util.error(new Error(message), {\n code: 'ETagMissing', retryable: false\n });\n }\n if (err) return self.cleanup(err);\n //prevent sending part being returned twice (https://github.com/aws/aws-sdk-js/issues/2304)\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) return null;\n partInfo.ETag = data.ETag;\n self.doneParts++;\n if (self.isDoneChunking && self.doneParts === self.totalPartNumbers) {\n self.finishMultiPart();\n } else {\n self.fillQueue.call(self);\n }\n });\n },\n\n /**\n * @api private\n */\n queueChunks: function queueChunks(chunk, partNumber) {\n var self = this;\n self.multipartReq.on('success', function() {\n self.uploadPart(chunk, partNumber);\n });\n },\n\n /**\n * @api private\n */\n cleanup: function cleanup(err) {\n var self = this;\n if (self.failed) return;\n\n // clean up stream\n if (typeof self.body.removeAllListeners === 'function' &&\n typeof self.body.resume === 'function') {\n self.body.removeAllListeners('readable');\n self.body.removeAllListeners('end');\n self.body.resume();\n }\n\n // cleanup multipartReq listeners\n if (self.multipartReq) {\n self.multipartReq.removeAllListeners('success');\n self.multipartReq.removeAllListeners('error');\n self.multipartReq.removeAllListeners('complete');\n delete self.multipartReq;\n }\n\n if (self.service.config.params.UploadId && !self.leavePartsOnError) {\n self.service.abortMultipartUpload().send();\n } else if (self.leavePartsOnError) {\n self.isDoneChunking = false;\n }\n\n AWS.util.each(self.parts, function(partNumber, part) {\n part.removeAllListeners('complete');\n part.abort();\n });\n\n self.activeParts = 0;\n self.partPos = 0;\n self.numParts = 0;\n self.totalPartNumbers = 0;\n self.parts = {};\n self.failed = true;\n self.callback(err);\n },\n\n /**\n * @api private\n */\n finishMultiPart: function finishMultiPart() {\n var self = this;\n var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } };\n self.service.completeMultipartUpload(completeParams, function(err, data) {\n if (err) {\n return self.cleanup(err);\n }\n\n if (data && typeof data.Location === 'string') {\n data.Location = data.Location.replace(/%2F/g, '/');\n }\n\n if (Array.isArray(self.tags)) {\n for (var i = 0; i < self.tags.length; i++) {\n self.tags[i].Value = String(self.tags[i].Value);\n }\n self.service.putObjectTagging(\n {Tagging: {TagSet: self.tags}},\n function(e, d) {\n if (e) {\n self.callback(e);\n } else {\n self.callback(e, data);\n }\n }\n );\n } else {\n self.callback(err, data);\n }\n });\n },\n\n /**\n * @api private\n */\n finishSinglePart: function finishSinglePart(err, data) {\n var upload = this.request._managedUpload;\n var httpReq = this.request.httpRequest;\n var endpoint = httpReq.endpoint;\n if (err) return upload.callback(err);\n data.Location =\n [endpoint.protocol, '//', endpoint.host, httpReq.path].join('');\n data.key = this.request.params.Key; // will stay undocumented\n data.Key = this.request.params.Key;\n data.Bucket = this.request.params.Bucket;\n upload.callback(err, data);\n },\n\n /**\n * @api private\n */\n progress: function progress(info) {\n var upload = this._managedUpload;\n if (this.operation === 'putObject') {\n info.part = 1;\n info.key = this.params.Key;\n } else {\n upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes;\n this._lastUploadedBytes = info.loaded;\n info = {\n loaded: upload.totalUploadedBytes,\n total: upload.totalBytes,\n part: this.params.PartNumber,\n key: this.params.Key\n };\n }\n upload.emit('httpUploadProgress', [info]);\n }\n});\n\nAWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = AWS.util.promisifyMethod('send', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.S3.ManagedUpload);\n\n/**\n * @api private\n */\nmodule.exports = AWS.S3.ManagedUpload;\n","var AWS = require('./core');\n\n/**\n * @api private\n * @!method on(eventName, callback)\n * Registers an event listener callback for the event given by `eventName`.\n * Parameters passed to the callback function depend on the individual event\n * being triggered. See the event documentation for those parameters.\n *\n * @param eventName [String] the event name to register the listener for\n * @param callback [Function] the listener callback function\n * @param toHead [Boolean] attach the listener callback to the head of callback array if set to true.\n * Default to be false.\n * @return [AWS.SequentialExecutor] the same object for chaining\n */\nAWS.SequentialExecutor = AWS.util.inherit({\n\n constructor: function SequentialExecutor() {\n this._events = {};\n },\n\n /**\n * @api private\n */\n listeners: function listeners(eventName) {\n return this._events[eventName] ? this._events[eventName].slice(0) : [];\n },\n\n on: function on(eventName, listener, toHead) {\n if (this._events[eventName]) {\n toHead ?\n this._events[eventName].unshift(listener) :\n this._events[eventName].push(listener);\n } else {\n this._events[eventName] = [listener];\n }\n return this;\n },\n\n onAsync: function onAsync(eventName, listener, toHead) {\n listener._isAsync = true;\n return this.on(eventName, listener, toHead);\n },\n\n removeListener: function removeListener(eventName, listener) {\n var listeners = this._events[eventName];\n if (listeners) {\n var length = listeners.length;\n var position = -1;\n for (var i = 0; i < length; ++i) {\n if (listeners[i] === listener) {\n position = i;\n }\n }\n if (position > -1) {\n listeners.splice(position, 1);\n }\n }\n return this;\n },\n\n removeAllListeners: function removeAllListeners(eventName) {\n if (eventName) {\n delete this._events[eventName];\n } else {\n this._events = {};\n }\n return this;\n },\n\n /**\n * @api private\n */\n emit: function emit(eventName, eventArgs, doneCallback) {\n if (!doneCallback) doneCallback = function() { };\n var listeners = this.listeners(eventName);\n var count = listeners.length;\n this.callListeners(listeners, eventArgs, doneCallback);\n return count > 0;\n },\n\n /**\n * @api private\n */\n callListeners: function callListeners(listeners, args, doneCallback, prevError) {\n var self = this;\n var error = prevError || null;\n\n function callNextListener(err) {\n if (err) {\n error = AWS.util.error(error || new Error(), err);\n if (self._haltHandlersOnError) {\n return doneCallback.call(self, error);\n }\n }\n self.callListeners(listeners, args, doneCallback, error);\n }\n\n while (listeners.length > 0) {\n var listener = listeners.shift();\n if (listener._isAsync) { // asynchronous listener\n listener.apply(self, args.concat([callNextListener]));\n return; // stop here, callNextListener will continue\n } else { // synchronous listener\n try {\n listener.apply(self, args);\n } catch (err) {\n error = AWS.util.error(error || new Error(), err);\n }\n if (error && self._haltHandlersOnError) {\n doneCallback.call(self, error);\n return;\n }\n }\n }\n doneCallback.call(self, error);\n },\n\n /**\n * Adds or copies a set of listeners from another list of\n * listeners or SequentialExecutor object.\n *\n * @param listeners [map>, AWS.SequentialExecutor]\n * a list of events and callbacks, or an event emitter object\n * containing listeners to add to this emitter object.\n * @return [AWS.SequentialExecutor] the emitter object, for chaining.\n * @example Adding listeners from a map of listeners\n * emitter.addListeners({\n * event1: [function() { ... }, function() { ... }],\n * event2: [function() { ... }]\n * });\n * emitter.emit('event1'); // emitter has event1\n * emitter.emit('event2'); // emitter has event2\n * @example Adding listeners from another emitter object\n * var emitter1 = new AWS.SequentialExecutor();\n * emitter1.on('event1', function() { ... });\n * emitter1.on('event2', function() { ... });\n * var emitter2 = new AWS.SequentialExecutor();\n * emitter2.addListeners(emitter1);\n * emitter2.emit('event1'); // emitter2 has event1\n * emitter2.emit('event2'); // emitter2 has event2\n */\n addListeners: function addListeners(listeners) {\n var self = this;\n\n // extract listeners if parameter is an SequentialExecutor object\n if (listeners._events) listeners = listeners._events;\n\n AWS.util.each(listeners, function(event, callbacks) {\n if (typeof callbacks === 'function') callbacks = [callbacks];\n AWS.util.arrayEach(callbacks, function(callback) {\n self.on(event, callback);\n });\n });\n\n return self;\n },\n\n /**\n * Registers an event with {on} and saves the callback handle function\n * as a property on the emitter object using a given `name`.\n *\n * @param name [String] the property name to set on this object containing\n * the callback function handle so that the listener can be removed in\n * the future.\n * @param (see on)\n * @return (see on)\n * @example Adding a named listener DATA_CALLBACK\n * var listener = function() { doSomething(); };\n * emitter.addNamedListener('DATA_CALLBACK', 'data', listener);\n *\n * // the following prints: true\n * console.log(emitter.DATA_CALLBACK == listener);\n */\n addNamedListener: function addNamedListener(name, eventName, callback, toHead) {\n this[name] = callback;\n this.addListener(eventName, callback, toHead);\n return this;\n },\n\n /**\n * @api private\n */\n addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback, toHead) {\n callback._isAsync = true;\n return this.addNamedListener(name, eventName, callback, toHead);\n },\n\n /**\n * Helper method to add a set of named listeners using\n * {addNamedListener}. The callback contains a parameter\n * with a handle to the `addNamedListener` method.\n *\n * @callback callback function(add)\n * The callback function is called immediately in order to provide\n * the `add` function to the block. This simplifies the addition of\n * a large group of named listeners.\n * @param add [Function] the {addNamedListener} function to call\n * when registering listeners.\n * @example Adding a set of named listeners\n * emitter.addNamedListeners(function(add) {\n * add('DATA_CALLBACK', 'data', function() { ... });\n * add('OTHER', 'otherEvent', function() { ... });\n * add('LAST', 'lastEvent', function() { ... });\n * });\n *\n * // these properties are now set:\n * emitter.DATA_CALLBACK;\n * emitter.OTHER;\n * emitter.LAST;\n */\n addNamedListeners: function addNamedListeners(callback) {\n var self = this;\n callback(\n function() {\n self.addNamedListener.apply(self, arguments);\n },\n function() {\n self.addNamedAsyncListener.apply(self, arguments);\n }\n );\n return this;\n }\n});\n\n/**\n * {on} is the prefered method.\n * @api private\n */\nAWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on;\n\n/**\n * @api private\n */\nmodule.exports = AWS.SequentialExecutor;\n","var AWS = require('./core');\nvar Api = require('./model/api');\nvar regionConfig = require('./region_config');\n\nvar inherit = AWS.util.inherit;\nvar clientCount = 0;\nvar region_utils = require('./region/utils');\n\n/**\n * The service class representing an AWS service.\n *\n * @class_abstract This class is an abstract class.\n *\n * @!attribute apiVersions\n * @return [Array] the list of API versions supported by this service.\n * @readonly\n */\nAWS.Service = inherit({\n /**\n * Create a new service object with a configuration object\n *\n * @param config [map] a map of configuration options\n */\n constructor: function Service(config) {\n if (!this.loadServiceClass) {\n throw AWS.util.error(new Error(),\n 'Service must be constructed with `new\\' operator');\n }\n\n if (config) {\n if (config.region) {\n var region = config.region;\n if (region_utils.isFipsRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n config.useFipsEndpoint = true;\n }\n if (region_utils.isGlobalRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n }\n }\n if (typeof config.useDualstack === 'boolean'\n && typeof config.useDualstackEndpoint !== 'boolean') {\n config.useDualstackEndpoint = config.useDualstack;\n }\n }\n\n var ServiceClass = this.loadServiceClass(config || {});\n if (ServiceClass) {\n var originalConfig = AWS.util.copy(config);\n var svc = new ServiceClass(config);\n Object.defineProperty(svc, '_originalConfig', {\n get: function() { return originalConfig; },\n enumerable: false,\n configurable: true\n });\n svc._clientId = ++clientCount;\n return svc;\n }\n this.initialize(config);\n },\n\n /**\n * @api private\n */\n initialize: function initialize(config) {\n var svcConfig = AWS.config[this.serviceIdentifier];\n this.config = new AWS.Config(AWS.config);\n if (svcConfig) this.config.update(svcConfig, true);\n if (config) this.config.update(config, true);\n\n this.validateService();\n if (!this.config.endpoint) regionConfig.configureEndpoint(this);\n\n this.config.endpoint = this.endpointFromTemplate(this.config.endpoint);\n this.setEndpoint(this.config.endpoint);\n //enable attaching listeners to service client\n AWS.SequentialExecutor.call(this);\n AWS.Service.addDefaultMonitoringListeners(this);\n if ((this.config.clientSideMonitoring || AWS.Service._clientSideMonitoring) && this.publisher) {\n var publisher = this.publisher;\n this.addNamedListener('PUBLISH_API_CALL', 'apiCall', function PUBLISH_API_CALL(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n this.addNamedListener('PUBLISH_API_ATTEMPT', 'apiCallAttempt', function PUBLISH_API_ATTEMPT(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n }\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n },\n\n /**\n * @api private\n */\n loadServiceClass: function loadServiceClass(serviceConfig) {\n var config = serviceConfig;\n if (!AWS.util.isEmpty(this.api)) {\n return null;\n } else if (config.apiConfig) {\n return AWS.Service.defineServiceApi(this.constructor, config.apiConfig);\n } else if (!this.constructor.services) {\n return null;\n } else {\n config = new AWS.Config(AWS.config);\n config.update(serviceConfig, true);\n var version = config.apiVersions[this.constructor.serviceIdentifier];\n version = version || config.apiVersion;\n return this.getLatestServiceClass(version);\n }\n },\n\n /**\n * @api private\n */\n getLatestServiceClass: function getLatestServiceClass(version) {\n version = this.getLatestServiceVersion(version);\n if (this.constructor.services[version] === null) {\n AWS.Service.defineServiceApi(this.constructor, version);\n }\n\n return this.constructor.services[version];\n },\n\n /**\n * @api private\n */\n getLatestServiceVersion: function getLatestServiceVersion(version) {\n if (!this.constructor.services || this.constructor.services.length === 0) {\n throw new Error('No services defined on ' +\n this.constructor.serviceIdentifier);\n }\n\n if (!version) {\n version = 'latest';\n } else if (AWS.util.isType(version, Date)) {\n version = AWS.util.date.iso8601(version).split('T')[0];\n }\n\n if (Object.hasOwnProperty(this.constructor.services, version)) {\n return version;\n }\n\n var keys = Object.keys(this.constructor.services).sort();\n var selectedVersion = null;\n for (var i = keys.length - 1; i >= 0; i--) {\n // versions that end in \"*\" are not available on disk and can be\n // skipped, so do not choose these as selectedVersions\n if (keys[i][keys[i].length - 1] !== '*') {\n selectedVersion = keys[i];\n }\n if (keys[i].substr(0, 10) <= version) {\n return selectedVersion;\n }\n }\n\n throw new Error('Could not find ' + this.constructor.serviceIdentifier +\n ' API to satisfy version constraint `' + version + '\\'');\n },\n\n /**\n * @api private\n */\n api: {},\n\n /**\n * @api private\n */\n defaultRetryCount: 3,\n\n /**\n * @api private\n */\n customizeRequests: function customizeRequests(callback) {\n if (!callback) {\n this.customRequestHandler = null;\n } else if (typeof callback === 'function') {\n this.customRequestHandler = callback;\n } else {\n throw new Error('Invalid callback type \\'' + typeof callback + '\\' provided in customizeRequests');\n }\n },\n\n /**\n * Calls an operation on a service with the given input parameters.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeRequest: function makeRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = null;\n }\n\n params = params || {};\n if (this.config.params) { // copy only toplevel bound params\n var rules = this.api.operations[operation];\n if (rules) {\n params = AWS.util.copy(params);\n AWS.util.each(this.config.params, function(key, value) {\n if (rules.input.members[key]) {\n if (params[key] === undefined || params[key] === null) {\n params[key] = value;\n }\n }\n });\n }\n }\n\n var request = new AWS.Request(this, operation, params);\n this.addAllRequestListeners(request);\n this.attachMonitoringEmitter(request);\n if (callback) request.send(callback);\n return request;\n },\n\n /**\n * Calls an operation on a service with the given input parameters, without\n * any authentication data. This method is useful for \"public\" API operations.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = {};\n }\n\n var request = this.makeRequest(operation, params).toUnauthenticated();\n return callback ? request.send(callback) : request;\n },\n\n /**\n * Waits for a given state\n *\n * @param state [String] the state on the service to wait for\n * @param params [map] a map of parameters to pass with each request\n * @option params $waiter [map] a map of configuration options for the waiter\n * @option params $waiter.delay [Number] The number of seconds to wait between\n * requests\n * @option params $waiter.maxAttempts [Number] The maximum number of requests\n * to send while waiting\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n waitFor: function waitFor(state, params, callback) {\n var waiter = new AWS.ResourceWaiter(this, state);\n return waiter.wait(params, callback);\n },\n\n /**\n * @api private\n */\n addAllRequestListeners: function addAllRequestListeners(request) {\n var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(),\n AWS.EventListeners.CorePost];\n for (var i = 0; i < list.length; i++) {\n if (list[i]) request.addListeners(list[i]);\n }\n\n // disable parameter validation\n if (!this.config.paramValidation) {\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n\n if (this.config.logger) { // add logging events\n request.addListeners(AWS.EventListeners.Logger);\n }\n\n this.setupRequestListeners(request);\n // call prototype's customRequestHandler\n if (typeof this.constructor.prototype.customRequestHandler === 'function') {\n this.constructor.prototype.customRequestHandler(request);\n }\n // call instance's customRequestHandler\n if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') {\n this.customRequestHandler(request);\n }\n },\n\n /**\n * Event recording metrics for a whole API call.\n * @returns {object} a subset of api call metrics\n * @api private\n */\n apiCallEvent: function apiCallEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCall',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Region: request.httpRequest.region,\n MaxRetriesExceeded: 0,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.FinalHttpStatusCode = response.httpResponse.statusCode;\n }\n if (response.error) {\n var error = response.error;\n var statusCode = response.httpResponse.statusCode;\n if (statusCode > 299) {\n if (error.code) monitoringEvent.FinalAwsException = error.code;\n if (error.message) monitoringEvent.FinalAwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.FinalSdkException = error.code || error.name;\n if (error.message) monitoringEvent.FinalSdkExceptionMessage = error.message;\n }\n }\n return monitoringEvent;\n },\n\n /**\n * Event recording metrics for an API call attempt.\n * @returns {object} a subset of api call attempt metrics\n * @api private\n */\n apiAttemptEvent: function apiAttemptEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCallAttempt',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Fqdn: request.httpRequest.endpoint.hostname,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.HttpStatusCode = response.httpResponse.statusCode;\n }\n if (\n !request._unAuthenticated &&\n request.service.config.credentials &&\n request.service.config.credentials.accessKeyId\n ) {\n monitoringEvent.AccessKey = request.service.config.credentials.accessKeyId;\n }\n if (!response.httpResponse.headers) return monitoringEvent;\n if (request.httpRequest.headers['x-amz-security-token']) {\n monitoringEvent.SessionToken = request.httpRequest.headers['x-amz-security-token'];\n }\n if (response.httpResponse.headers['x-amzn-requestid']) {\n monitoringEvent.XAmznRequestId = response.httpResponse.headers['x-amzn-requestid'];\n }\n if (response.httpResponse.headers['x-amz-request-id']) {\n monitoringEvent.XAmzRequestId = response.httpResponse.headers['x-amz-request-id'];\n }\n if (response.httpResponse.headers['x-amz-id-2']) {\n monitoringEvent.XAmzId2 = response.httpResponse.headers['x-amz-id-2'];\n }\n return monitoringEvent;\n },\n\n /**\n * Add metrics of failed request.\n * @api private\n */\n attemptFailEvent: function attemptFailEvent(request) {\n var monitoringEvent = this.apiAttemptEvent(request);\n var response = request.response;\n var error = response.error;\n if (response.httpResponse.statusCode > 299 ) {\n if (error.code) monitoringEvent.AwsException = error.code;\n if (error.message) monitoringEvent.AwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.SdkException = error.code || error.name;\n if (error.message) monitoringEvent.SdkExceptionMessage = error.message;\n }\n return monitoringEvent;\n },\n\n /**\n * Attach listeners to request object to fetch metrics of each request\n * and emit data object through \\'ApiCall\\' and \\'ApiCallAttempt\\' events.\n * @api private\n */\n attachMonitoringEmitter: function attachMonitoringEmitter(request) {\n var attemptTimestamp; //timestamp marking the beginning of a request attempt\n var attemptStartRealTime; //Start time of request attempt. Used to calculating attemptLatency\n var attemptLatency; //latency from request sent out to http response reaching SDK\n var callStartRealTime; //Start time of API call. Used to calculating API call latency\n var attemptCount = 0; //request.retryCount is not reliable here\n var region; //region cache region for each attempt since it can be updated in plase (e.g. s3)\n var callTimestamp; //timestamp when the request is created\n var self = this;\n var addToHead = true;\n\n request.on('validate', function () {\n callStartRealTime = AWS.util.realClock.now();\n callTimestamp = Date.now();\n }, addToHead);\n request.on('sign', function () {\n attemptStartRealTime = AWS.util.realClock.now();\n attemptTimestamp = Date.now();\n region = request.httpRequest.region;\n attemptCount++;\n }, addToHead);\n request.on('validateResponse', function() {\n attemptLatency = Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n });\n request.addNamedListener('API_CALL_ATTEMPT', 'success', function API_CALL_ATTEMPT() {\n var apiAttemptEvent = self.apiAttemptEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL_ATTEMPT_RETRY', 'retry', function API_CALL_ATTEMPT_RETRY() {\n var apiAttemptEvent = self.attemptFailEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n //attemptLatency may not be available if fail before response\n attemptLatency = attemptLatency ||\n Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL', 'complete', function API_CALL() {\n var apiCallEvent = self.apiCallEvent(request);\n apiCallEvent.AttemptCount = attemptCount;\n if (apiCallEvent.AttemptCount <= 0) return;\n apiCallEvent.Timestamp = callTimestamp;\n var latency = Math.round(AWS.util.realClock.now() - callStartRealTime);\n apiCallEvent.Latency = latency >= 0 ? latency : 0;\n var response = request.response;\n if (\n response.error &&\n response.error.retryable &&\n typeof response.retryCount === 'number' &&\n typeof response.maxRetries === 'number' &&\n (response.retryCount >= response.maxRetries)\n ) {\n apiCallEvent.MaxRetriesExceeded = 1;\n }\n self.emit('apiCall', [apiCallEvent]);\n });\n },\n\n /**\n * Override this method to setup any custom request listeners for each\n * new request to the service.\n *\n * @method_abstract This is an abstract method.\n */\n setupRequestListeners: function setupRequestListeners(request) {\n },\n\n /**\n * Gets the signing name for a given request\n * @api private\n */\n getSigningName: function getSigningName() {\n return this.api.signingName || this.api.endpointPrefix;\n },\n\n /**\n * Gets the signer class for a given request\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var version;\n // get operation authtype if present\n var operation = null;\n var authtype = '';\n if (request) {\n var operations = request.service.api.operations || {};\n operation = operations[request.operation] || null;\n authtype = operation ? operation.authtype : '';\n }\n if (this.config.signatureVersion) {\n version = this.config.signatureVersion;\n } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') {\n version = 'v4';\n } else if (authtype === 'bearer') {\n version = 'bearer';\n } else {\n version = this.api.signatureVersion;\n }\n return AWS.Signers.RequestSigner.getVersion(version);\n },\n\n /**\n * @api private\n */\n serviceInterface: function serviceInterface() {\n switch (this.api.protocol) {\n case 'ec2': return AWS.EventListeners.Query;\n case 'query': return AWS.EventListeners.Query;\n case 'json': return AWS.EventListeners.Json;\n case 'rest-json': return AWS.EventListeners.RestJson;\n case 'rest-xml': return AWS.EventListeners.RestXml;\n }\n if (this.api.protocol) {\n throw new Error('Invalid service `protocol\\' ' +\n this.api.protocol + ' in API config');\n }\n },\n\n /**\n * @api private\n */\n successfulResponse: function successfulResponse(resp) {\n return resp.httpResponse.statusCode < 300;\n },\n\n /**\n * How many times a failed request should be retried before giving up.\n * the defaultRetryCount can be overriden by service classes.\n *\n * @api private\n */\n numRetries: function numRetries() {\n if (this.config.maxRetries !== undefined) {\n return this.config.maxRetries;\n } else {\n return this.defaultRetryCount;\n }\n },\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions, err);\n },\n\n /**\n * @api private\n */\n retryableError: function retryableError(error) {\n if (this.timeoutError(error)) return true;\n if (this.networkingError(error)) return true;\n if (this.expiredCredentialsError(error)) return true;\n if (this.throttledError(error)) return true;\n if (error.statusCode >= 500) return true;\n return false;\n },\n\n /**\n * @api private\n */\n networkingError: function networkingError(error) {\n return error.code === 'NetworkingError';\n },\n\n /**\n * @api private\n */\n timeoutError: function timeoutError(error) {\n return error.code === 'TimeoutError';\n },\n\n /**\n * @api private\n */\n expiredCredentialsError: function expiredCredentialsError(error) {\n // TODO : this only handles *one* of the expired credential codes\n return (error.code === 'ExpiredTokenException');\n },\n\n /**\n * @api private\n */\n clockSkewError: function clockSkewError(error) {\n switch (error.code) {\n case 'RequestTimeTooSkewed':\n case 'RequestExpired':\n case 'InvalidSignatureException':\n case 'SignatureDoesNotMatch':\n case 'AuthFailure':\n case 'RequestInTheFuture':\n return true;\n default: return false;\n }\n },\n\n /**\n * @api private\n */\n getSkewCorrectedDate: function getSkewCorrectedDate() {\n return new Date(Date.now() + this.config.systemClockOffset);\n },\n\n /**\n * @api private\n */\n applyClockOffset: function applyClockOffset(newServerTime) {\n if (newServerTime) {\n this.config.systemClockOffset = newServerTime - Date.now();\n }\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(newServerTime) {\n if (newServerTime) {\n return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 300000;\n }\n },\n\n /**\n * @api private\n */\n throttledError: function throttledError(error) {\n // this logic varies between services\n if (error.statusCode === 429) return true;\n switch (error.code) {\n case 'ProvisionedThroughputExceededException':\n case 'Throttling':\n case 'ThrottlingException':\n case 'RequestLimitExceeded':\n case 'RequestThrottled':\n case 'RequestThrottledException':\n case 'TooManyRequestsException':\n case 'TransactionInProgressException': //dynamodb\n case 'EC2ThrottledException':\n return true;\n default:\n return false;\n }\n },\n\n /**\n * @api private\n */\n endpointFromTemplate: function endpointFromTemplate(endpoint) {\n if (typeof endpoint !== 'string') return endpoint;\n\n var e = endpoint;\n e = e.replace(/\\{service\\}/g, this.api.endpointPrefix);\n e = e.replace(/\\{region\\}/g, this.config.region);\n e = e.replace(/\\{scheme\\}/g, this.config.sslEnabled ? 'https' : 'http');\n return e;\n },\n\n /**\n * @api private\n */\n setEndpoint: function setEndpoint(endpoint) {\n this.endpoint = new AWS.Endpoint(endpoint, this.config);\n },\n\n /**\n * @api private\n */\n paginationConfig: function paginationConfig(operation, throwException) {\n var paginator = this.api.operations[operation].paginator;\n if (!paginator) {\n if (throwException) {\n var e = new Error();\n throw AWS.util.error(e, 'No pagination configuration for ' + operation);\n }\n return null;\n }\n\n return paginator;\n }\n});\n\nAWS.util.update(AWS.Service, {\n\n /**\n * Adds one method for each operation described in the api configuration\n *\n * @api private\n */\n defineMethods: function defineMethods(svc) {\n AWS.util.each(svc.prototype.api.operations, function iterator(method) {\n if (svc.prototype[method]) return;\n var operation = svc.prototype.api.operations[method];\n if (operation.authtype === 'none') {\n svc.prototype[method] = function (params, callback) {\n return this.makeUnauthenticatedRequest(method, params, callback);\n };\n } else {\n svc.prototype[method] = function (params, callback) {\n return this.makeRequest(method, params, callback);\n };\n }\n });\n },\n\n /**\n * Defines a new Service class using a service identifier and list of versions\n * including an optional set of features (functions) to apply to the class\n * prototype.\n *\n * @param serviceIdentifier [String] the identifier for the service\n * @param versions [Array] a list of versions that work with this\n * service\n * @param features [Object] an object to attach to the prototype\n * @return [Class] the service class defined by this function.\n */\n defineService: function defineService(serviceIdentifier, versions, features) {\n AWS.Service._serviceMap[serviceIdentifier] = true;\n if (!Array.isArray(versions)) {\n features = versions;\n versions = [];\n }\n\n var svc = inherit(AWS.Service, features || {});\n\n if (typeof serviceIdentifier === 'string') {\n AWS.Service.addVersions(svc, versions);\n\n var identifier = svc.serviceIdentifier || serviceIdentifier;\n svc.serviceIdentifier = identifier;\n } else { // defineService called with an API\n svc.prototype.api = serviceIdentifier;\n AWS.Service.defineMethods(svc);\n }\n AWS.SequentialExecutor.call(this.prototype);\n //util.clientSideMonitoring is only available in node\n if (!this.prototype.publisher && AWS.util.clientSideMonitoring) {\n var Publisher = AWS.util.clientSideMonitoring.Publisher;\n var configProvider = AWS.util.clientSideMonitoring.configProvider;\n var publisherConfig = configProvider();\n this.prototype.publisher = new Publisher(publisherConfig);\n if (publisherConfig.enabled) {\n //if csm is enabled in environment, SDK should send all metrics\n AWS.Service._clientSideMonitoring = true;\n }\n }\n AWS.SequentialExecutor.call(svc.prototype);\n AWS.Service.addDefaultMonitoringListeners(svc.prototype);\n return svc;\n },\n\n /**\n * @api private\n */\n addVersions: function addVersions(svc, versions) {\n if (!Array.isArray(versions)) versions = [versions];\n\n svc.services = svc.services || {};\n for (var i = 0; i < versions.length; i++) {\n if (svc.services[versions[i]] === undefined) {\n svc.services[versions[i]] = null;\n }\n }\n\n svc.apiVersions = Object.keys(svc.services).sort();\n },\n\n /**\n * @api private\n */\n defineServiceApi: function defineServiceApi(superclass, version, apiConfig) {\n var svc = inherit(superclass, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n\n function setApi(api) {\n if (api.isApi) {\n svc.prototype.api = api;\n } else {\n svc.prototype.api = new Api(api, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n }\n }\n\n if (typeof version === 'string') {\n if (apiConfig) {\n setApi(apiConfig);\n } else {\n try {\n setApi(AWS.apiLoader(superclass.serviceIdentifier, version));\n } catch (err) {\n throw AWS.util.error(err, {\n message: 'Could not find API configuration ' +\n superclass.serviceIdentifier + '-' + version\n });\n }\n }\n if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) {\n superclass.apiVersions = superclass.apiVersions.concat(version).sort();\n }\n superclass.services[version] = svc;\n } else {\n setApi(version);\n }\n\n AWS.Service.defineMethods(svc);\n return svc;\n },\n\n /**\n * @api private\n */\n hasService: function(identifier) {\n return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier);\n },\n\n /**\n * @param attachOn attach default monitoring listeners to object\n *\n * Each monitoring event should be emitted from service client to service constructor prototype and then\n * to global service prototype like bubbling up. These default monitoring events listener will transfer\n * the monitoring events to the upper layer.\n * @api private\n */\n addDefaultMonitoringListeners: function addDefaultMonitoringListeners(attachOn) {\n attachOn.addNamedListener('MONITOR_EVENTS_BUBBLE', 'apiCallAttempt', function EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCallAttempt', [event]);\n });\n attachOn.addNamedListener('CALL_EVENTS_BUBBLE', 'apiCall', function CALL_EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCall', [event]);\n });\n },\n\n /**\n * @api private\n */\n _serviceMap: {}\n});\n\nAWS.util.mixin(AWS.Service, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nmodule.exports = AWS.Service;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.APIGateway.prototype, {\n/**\n * Sets the Accept header to application/json.\n *\n * @api private\n */\n setAcceptHeader: function setAcceptHeader(req) {\n var httpRequest = req.httpRequest;\n if (!httpRequest.headers.Accept) {\n httpRequest.headers['Accept'] = 'application/json';\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.setAcceptHeader);\n if (request.operation === 'getExport') {\n var params = request.params || {};\n if (params.exportType === 'swagger') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n }\n});\n\n","var AWS = require('../core');\n\n// pull in CloudFront signer\nrequire('../cloudfront/signer');\n\nAWS.util.update(AWS.CloudFront.prototype, {\n\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n }\n\n});\n","var AWS = require('../core');\nrequire('../dynamodb/document_client');\n\nAWS.util.update(AWS.DynamoDB.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.service.config.dynamoDbCrc32) {\n request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n request.addListener('extractData', this.checkCrc32);\n request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n }\n },\n\n /**\n * @api private\n */\n checkCrc32: function checkCrc32(resp) {\n if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) {\n resp.data = null;\n resp.error = AWS.util.error(new Error(), {\n code: 'CRC32CheckFailed',\n message: 'CRC32 integrity check failed',\n retryable: true\n });\n resp.request.haltHandlersOnError();\n throw (resp.error);\n }\n },\n\n /**\n * @api private\n */\n crc32IsValid: function crc32IsValid(resp) {\n var crc = resp.httpResponse.headers['x-amz-crc32'];\n if (!crc) return true; // no (valid) CRC32 header\n return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body);\n },\n\n /**\n * @api private\n */\n defaultRetryCount: 10,\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n var retryDelayOptions = AWS.util.copy(this.config.retryDelayOptions);\n\n if (typeof retryDelayOptions.base !== 'number') {\n retryDelayOptions.base = 50; // default for dynamodb\n }\n var delay = AWS.util.calculateRetryDelay(retryCount, retryDelayOptions, err);\n return delay;\n }\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.EC2.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR);\n request.addListener('extractError', this.extractError);\n\n if (request.operation === 'copySnapshot') {\n request.onAsync('validate', this.buildCopySnapshotPresignedUrl);\n }\n },\n\n /**\n * @api private\n */\n buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) {\n if (req.params.PresignedUrl || req._subRequest) {\n return done();\n }\n\n req.params = AWS.util.copy(req.params);\n req.params.DestinationRegion = req.service.config.region;\n\n var config = AWS.util.copy(req.service.config);\n delete config.endpoint;\n config.region = req.params.SourceRegion;\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](req.params);\n newReq._subRequest = true;\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PresignedUrl = url;\n done();\n }\n });\n },\n\n /**\n * @api private\n */\n extractError: function extractError(resp) {\n // EC2 nests the error code and message deeper than other AWS Query services.\n var httpResponse = resp.httpResponse;\n var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || '');\n if (data.Errors) {\n resp.error = AWS.util.error(new Error(), {\n code: data.Errors.Error.Code,\n message: data.Errors.Error.Message\n });\n } else {\n resp.error = AWS.util.error(new Error(), {\n code: httpResponse.statusCode,\n message: null\n });\n }\n resp.error.requestId = data.RequestID || null;\n }\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar blobPayloadOutputOps = [\n 'deleteThingShadow',\n 'getThingShadow',\n 'updateThingShadow'\n];\n\n/**\n * Constructs a service interface object. Each API operation is exposed as a\n * function on service.\n *\n * ### Sending a Request Using IotData\n *\n * ```javascript\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * iotdata.getThingShadow(params, function (err, data) {\n * if (err) console.log(err, err.stack); // an error occurred\n * else console.log(data); // successful response\n * });\n * ```\n *\n * ### Locking the API Version\n *\n * In order to ensure that the IotData object uses this specific API,\n * you can construct the object by passing the `apiVersion` option to the\n * constructor:\n *\n * ```javascript\n * var iotdata = new AWS.IotData({\n * endpoint: 'my.host.tld',\n * apiVersion: '2015-05-28'\n * });\n * ```\n *\n * You can also set the API version globally in `AWS.config.apiVersions` using\n * the **iotdata** service identifier:\n *\n * ```javascript\n * AWS.config.apiVersions = {\n * iotdata: '2015-05-28',\n * // other service API versions\n * };\n *\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * ```\n *\n * @note You *must* provide an `endpoint` configuration parameter when\n * constructing this service. See {constructor} for more information.\n *\n * @!method constructor(options = {})\n * Constructs a service object. This object has one method for each\n * API operation.\n *\n * @example Constructing a IotData object\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * @note You *must* provide an `endpoint` when constructing this service.\n * @option (see AWS.Config.constructor)\n *\n * @service iotdata\n * @version 2015-05-28\n */\nAWS.util.update(AWS.IotData.prototype, {\n /**\n * @api private\n */\n validateService: function validateService() {\n if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) {\n var msg = 'AWS.IotData requires an explicit ' +\n '`endpoint\\' configuration option.';\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.validateResponseBody);\n if (blobPayloadOutputOps.indexOf(request.operation) > -1) {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n },\n\n /**\n * @api private\n */\n validateResponseBody: function validateResponseBody(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n var bodyCheck = body.trim();\n if (!bodyCheck || bodyCheck.charAt(0) !== '{') {\n resp.httpResponse.body = '';\n }\n }\n\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Lambda.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'invoke') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n});\n\n","var AWS = require('../core');\n\nAWS.util.update(AWS.MachineLearning.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'predict') {\n request.addListener('build', this.buildEndpoint);\n }\n },\n\n /**\n * Updates request endpoint from PredictEndpoint\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.params.PredictEndpoint;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n }\n }\n\n});\n","require('../polly/presigner');\n","var AWS = require('../core');\nvar rdsutil = require('./rdsutil');\nrequire('../rds/signer');\n /**\n * @api private\n */\n var crossRegionOperations = ['copyDBSnapshot', 'createDBInstanceReadReplica', 'createDBCluster', 'copyDBClusterSnapshot', 'startDBInstanceAutomatedBackupsReplication'];\n\n AWS.util.update(AWS.RDS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n rdsutil.setupRequestListeners(this, request, crossRegionOperations);\n },\n });\n","var AWS = require('../core');\n\nvar rdsutil = {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(service, request, crossRegionOperations) {\n if (crossRegionOperations.indexOf(request.operation) !== -1 &&\n request.params.SourceRegion) {\n request.params = AWS.util.copy(request.params);\n if (request.params.PreSignedUrl ||\n request.params.SourceRegion === service.config.region) {\n delete request.params.SourceRegion;\n } else {\n var doesParamValidation = !!service.config.paramValidation;\n // remove the validate parameters listener so we can re-add it after we build the URL\n if (doesParamValidation) {\n request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n request.onAsync('validate', rdsutil.buildCrossRegionPresignedUrl);\n if (doesParamValidation) {\n request.addListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n }\n }\n },\n\n /**\n * @api private\n */\n buildCrossRegionPresignedUrl: function buildCrossRegionPresignedUrl(req, done) {\n var config = AWS.util.copy(req.service.config);\n config.region = req.params.SourceRegion;\n delete req.params.SourceRegion;\n delete config.endpoint;\n // relevant params for the operation will already be in req.params\n delete config.params;\n config.signatureVersion = 'v4';\n var destinationRegion = req.service.config.region;\n\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](AWS.util.copy(req.params));\n newReq.on('build', function addDestinationRegionParam(request) {\n var httpRequest = request.httpRequest;\n httpRequest.params.DestinationRegion = destinationRegion;\n httpRequest.body = AWS.util.queryParamsToString(httpRequest.params);\n });\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PreSignedUrl = url;\n done();\n }\n });\n }\n};\n\n/**\n * @api private\n */\nmodule.exports = rdsutil;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Route53.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.on('build', this.sanitizeUrl);\n },\n\n /**\n * @api private\n */\n sanitizeUrl: function sanitizeUrl(request) {\n var path = request.httpRequest.path;\n request.httpRequest.path = path.replace(/\\/%2F\\w+%2F/, '/');\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error) {\n if (error.code === 'PriorRequestNotComplete' &&\n error.statusCode === 400) {\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error);\n }\n }\n});\n","var AWS = require('../core');\nvar v4Credentials = require('../signers/v4_credentials');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar s3util = require('./s3util');\nvar regionUtil = require('../region_config');\n\n// Pull in managed upload extension\nrequire('../s3/managed_upload');\n\n/**\n * @api private\n */\nvar operationsWith200StatusCodeError = {\n 'completeMultipartUpload': true,\n 'copyObject': true,\n 'uploadPartCopy': true\n};\n\n/**\n * @api private\n */\n var regionRedirectErrorCodes = [\n 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints\n 'BadRequest', // head operations on virtual-hosted global bucket endpoints\n 'PermanentRedirect', // non-head operations on path-style or regional endpoints\n 301 // head operations on path-style or regional endpoints\n ];\n\nvar OBJECT_LAMBDA_SERVICE = 's3-object-lambda';\n\nAWS.util.update(AWS.S3.prototype, {\n /**\n * @api private\n */\n getSignatureVersion: function getSignatureVersion(request) {\n var defaultApiVersion = this.api.signatureVersion;\n var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null;\n var regionDefinedVersion = this.config.signatureVersion;\n var isPresigned = request ? request.isPresigned() : false;\n /*\n 1) User defined version specified:\n a) always return user defined version\n 2) No user defined version specified:\n a) If not using presigned urls, default to V4\n b) If using presigned urls, default to lowest version the region supports\n */\n if (userDefinedVersion) {\n userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion;\n return userDefinedVersion;\n }\n if (isPresigned !== true) {\n defaultApiVersion = 'v4';\n } else if (regionDefinedVersion) {\n defaultApiVersion = regionDefinedVersion;\n }\n return defaultApiVersion;\n },\n\n /**\n * @api private\n */\n getSigningName: function getSigningName(req) {\n if (req && req.operation === 'writeGetObjectResponse') {\n return OBJECT_LAMBDA_SERVICE;\n }\n\n var _super = AWS.Service.prototype.getSigningName;\n return (req && req._parsedArn && req._parsedArn.service)\n ? req._parsedArn.service\n : _super.call(this);\n },\n\n /**\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var signatureVersion = this.getSignatureVersion(request);\n return AWS.Signers.RequestSigner.getVersion(signatureVersion);\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n var msg;\n var messages = [];\n\n // default to us-east-1 when no region is provided\n if (!this.config.region) this.config.region = 'us-east-1';\n\n if (!this.config.endpoint && this.config.s3BucketEndpoint) {\n messages.push('An endpoint must be provided when configuring ' +\n '`s3BucketEndpoint` to true.');\n }\n if (messages.length === 1) {\n msg = messages[0];\n } else if (messages.length > 1) {\n msg = 'Multiple configuration errors:\\n' + messages.join('\\n');\n }\n if (msg) {\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n shouldDisableBodySigning: function shouldDisableBodySigning(request) {\n var signerClass = this.getSignerClass();\n if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4\n && request.httpRequest.endpoint.protocol === 'https:') {\n return true;\n }\n return false;\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.setExpiresString);\n var prependListener = true;\n request.addListener('validate', this.validateScheme);\n request.addListener('validate', this.validateBucketName, prependListener);\n request.addListener('validate', this.optInUsEast1RegionalEndpoint, prependListener);\n\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_REGION);\n request.addListener('build', this.addContentType);\n request.addListener('build', this.computeContentMd5);\n request.addListener('build', this.computeSseCustomerKeyMd5);\n request.addListener('build', this.populateURI);\n request.addListener('afterBuild', this.addExpect100Continue);\n request.addListener('extractError', this.extractError);\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n request.addListener('extractData', this.extractData);\n request.addListener('extractData', this.extractErrorFrom200Response);\n request.addListener('beforePresign', this.prepareSignedUrl);\n if (this.shouldDisableBodySigning(request)) {\n request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n request.addListener('afterBuild', this.disableBodySigning);\n }\n //deal with ARNs supplied to Bucket\n if (request.operation !== 'createBucket' && s3util.isArnInParam(request, 'Bucket')) {\n // avoid duplicate parsing in the future\n request._parsedArn = AWS.util.ARN.parse(request.params.Bucket);\n\n request.removeListener('validate', this.validateBucketName);\n request.removeListener('build', this.populateURI);\n if (request._parsedArn.service === 's3') {\n request.addListener('validate', s3util.validateS3AccessPointArn);\n request.addListener('validate', this.validateArnResourceType);\n request.addListener('validate', this.validateArnRegion);\n } else if (request._parsedArn.service === 's3-outposts') {\n request.addListener('validate', s3util.validateOutpostsAccessPointArn);\n request.addListener('validate', s3util.validateOutpostsArn);\n request.addListener('validate', s3util.validateArnRegion);\n }\n request.addListener('validate', s3util.validateArnAccount);\n request.addListener('validate', s3util.validateArnService);\n request.addListener('build', this.populateUriFromAccessPointArn);\n request.addListener('build', s3util.validatePopulateUriFromArn);\n return;\n }\n //listeners regarding region inference\n request.addListener('validate', this.validateBucketEndpoint);\n request.addListener('validate', this.correctBucketRegionFromCache);\n request.onAsync('extractError', this.requestBucketRegion);\n if (AWS.util.isBrowser()) {\n request.onAsync('retry', this.reqRegionForNetworkingError);\n }\n },\n\n /**\n * @api private\n */\n validateScheme: function(req) {\n var params = req.params,\n scheme = req.httpRequest.endpoint.protocol,\n sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey;\n if (sensitive && scheme !== 'https:') {\n var msg = 'Cannot send SSE keys over HTTP. Set \\'sslEnabled\\'' +\n 'to \\'true\\' in your configuration';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateBucketEndpoint: function(req) {\n if (!req.params.Bucket && req.service.config.s3BucketEndpoint) {\n var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateArnRegion: function validateArnRegion(req) {\n s3util.validateArnRegion(req, { allowFipsEndpoint: true });\n },\n\n /**\n * Validate resource-type supplied in S3 ARN\n */\n validateArnResourceType: function validateArnResourceType(req) {\n var resource = req._parsedArn.resource;\n\n if (\n resource.indexOf('accesspoint:') !== 0 &&\n resource.indexOf('accesspoint/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'accesspoint/\\''\n });\n }\n },\n\n /**\n * @api private\n */\n validateBucketName: function validateBucketName(req) {\n var service = req.service;\n var signatureVersion = service.getSignatureVersion(req);\n var bucket = req.params && req.params.Bucket;\n var key = req.params && req.params.Key;\n var slashIndex = bucket && bucket.indexOf('/');\n if (bucket && slashIndex >= 0) {\n if (typeof key === 'string' && slashIndex > 0) {\n req.params = AWS.util.copy(req.params);\n // Need to include trailing slash to match sigv2 behavior\n var prefix = bucket.substr(slashIndex + 1) || '';\n req.params.Key = prefix + '/' + key;\n req.params.Bucket = bucket.substr(0, slashIndex);\n } else if (signatureVersion === 'v4') {\n var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket;\n throw AWS.util.error(new Error(),\n { code: 'InvalidBucket', message: msg });\n }\n }\n },\n\n /**\n * @api private\n */\n isValidAccelerateOperation: function isValidAccelerateOperation(operation) {\n var invalidOperations = [\n 'createBucket',\n 'deleteBucket',\n 'listBuckets'\n ];\n return invalidOperations.indexOf(operation) === -1;\n },\n\n /**\n * When us-east-1 region endpoint configuration is set, in stead of sending request to\n * global endpoint(e.g. 's3.amazonaws.com'), we will send request to\n * 's3.us-east-1.amazonaws.com'.\n * @api private\n */\n optInUsEast1RegionalEndpoint: function optInUsEast1RegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.s3UsEast1RegionalEndpoint = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: 'AWS_S3_US_EAST_1_REGIONAL_ENDPOINT',\n sharedConfig: 's3_us_east_1_regional_endpoint',\n clientConfig: 's3UsEast1RegionalEndpoint'\n });\n if (\n !(service._originalConfig || {}).endpoint &&\n req.httpRequest.region === 'us-east-1' &&\n config.s3UsEast1RegionalEndpoint === 'regional' &&\n req.httpRequest.endpoint.hostname.indexOf('s3.amazonaws.com') >= 0\n ) {\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.us-east-1' + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n }\n },\n\n /**\n * S3 prefers dns-compatible bucket names to be moved from the uri path\n * to the hostname as a sub-domain. This is not possible, even for dns-compat\n * buckets when using SSL and the bucket name contains a dot ('.'). The\n * ssl wildcard certificate is only 1-level deep.\n *\n * @api private\n */\n populateURI: function populateURI(req) {\n var httpRequest = req.httpRequest;\n var b = req.params.Bucket;\n var service = req.service;\n var endpoint = httpRequest.endpoint;\n if (b) {\n if (!service.pathStyleBucketName(b)) {\n if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) {\n if (service.config.useDualstackEndpoint) {\n endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com';\n } else {\n endpoint.hostname = b + '.s3-accelerate.amazonaws.com';\n }\n } else if (!service.config.s3BucketEndpoint) {\n endpoint.hostname =\n b + '.' + endpoint.hostname;\n }\n\n var port = endpoint.port;\n if (port !== 80 && port !== 443) {\n endpoint.host = endpoint.hostname + ':' +\n endpoint.port;\n } else {\n endpoint.host = endpoint.hostname;\n }\n\n httpRequest.virtualHostedBucket = b; // needed for signing the request\n service.removeVirtualHostedBucketFromPath(req);\n }\n }\n },\n\n /**\n * Takes the bucket name out of the path if bucket is virtual-hosted\n *\n * @api private\n */\n removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) {\n var httpRequest = req.httpRequest;\n var bucket = httpRequest.virtualHostedBucket;\n if (bucket && httpRequest.path) {\n if (req.params && req.params.Key) {\n var encodedS3Key = '/' + AWS.util.uriEscapePath(req.params.Key);\n if (httpRequest.path.indexOf(encodedS3Key) === 0 && (httpRequest.path.length === encodedS3Key.length || httpRequest.path[encodedS3Key.length] === '?')) {\n //path only contains key or path contains only key and querystring\n return;\n }\n }\n httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), '');\n if (httpRequest.path[0] !== '/') {\n httpRequest.path = '/' + httpRequest.path;\n }\n }\n },\n\n /**\n * When user supply an access point ARN in the Bucket parameter, we need to\n * populate the URI according to the ARN.\n */\n populateUriFromAccessPointArn: function populateUriFromAccessPointArn(req) {\n var accessPointArn = req._parsedArn;\n\n var isOutpostArn = accessPointArn.service === 's3-outposts';\n var isObjectLambdaArn = accessPointArn.service === 's3-object-lambda';\n\n var outpostsSuffix = isOutpostArn ? '.' + accessPointArn.outpostId: '';\n var serviceName = isOutpostArn ? 's3-outposts': 's3-accesspoint';\n var fipsSuffix = !isOutpostArn && req.service.config.useFipsEndpoint ? '-fips': '';\n var dualStackSuffix = !isOutpostArn &&\n req.service.config.useDualstackEndpoint ? '.dualstack' : '';\n\n var endpoint = req.httpRequest.endpoint;\n var dnsSuffix = regionUtil.getEndpointSuffix(accessPointArn.region);\n var useArnRegion = req.service.config.s3UseArnRegion;\n\n endpoint.hostname = [\n accessPointArn.accessPoint + '-' + accessPointArn.accountId + outpostsSuffix,\n serviceName + fipsSuffix + dualStackSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n\n if (isObjectLambdaArn) {\n // should be in the format: \"accesspoint/${accesspointName}\"\n var serviceName = 's3-object-lambda';\n var accesspointName = accessPointArn.resource.split('/')[1];\n var fipsSuffix = req.service.config.useFipsEndpoint ? '-fips': '';\n endpoint.hostname = [\n accesspointName + '-' + accessPointArn.accountId,\n serviceName + fipsSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n }\n endpoint.host = endpoint.hostname;\n var encodedArn = AWS.util.uriEscape(req.params.Bucket);\n var path = req.httpRequest.path;\n //remove the Bucket value from path\n req.httpRequest.path = path.replace(new RegExp('/' + encodedArn), '');\n if (req.httpRequest.path[0] !== '/') {\n req.httpRequest.path = '/' + req.httpRequest.path;\n }\n req.httpRequest.region = accessPointArn.region; //region used to sign\n },\n\n /**\n * Adds Expect: 100-continue header if payload is greater-or-equal 1MB\n * @api private\n */\n addExpect100Continue: function addExpect100Continue(req) {\n var len = req.httpRequest.headers['Content-Length'];\n if (AWS.util.isNode() && (len >= 1024 * 1024 || req.params.Body instanceof AWS.util.stream.Stream)) {\n req.httpRequest.headers['Expect'] = '100-continue';\n }\n },\n\n /**\n * Adds a default content type if none is supplied.\n *\n * @api private\n */\n addContentType: function addContentType(req) {\n var httpRequest = req.httpRequest;\n if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') {\n // Content-Type is not set in GET/HEAD requests\n delete httpRequest.headers['Content-Type'];\n return;\n }\n\n if (!httpRequest.headers['Content-Type']) { // always have a Content-Type\n httpRequest.headers['Content-Type'] = 'application/octet-stream';\n }\n\n var contentType = httpRequest.headers['Content-Type'];\n if (AWS.util.isBrowser()) {\n if (typeof httpRequest.body === 'string' && !contentType.match(/;\\s*charset=/)) {\n var charset = '; charset=UTF-8';\n httpRequest.headers['Content-Type'] += charset;\n } else {\n var replaceFn = function(_, prefix, charsetName) {\n return prefix + charsetName.toUpperCase();\n };\n\n httpRequest.headers['Content-Type'] =\n contentType.replace(/(;\\s*charset=)(.+)$/, replaceFn);\n }\n }\n },\n\n /**\n * Checks whether checksums should be computed for the request if it's not\n * already set by {AWS.EventListeners.Core.COMPUTE_CHECKSUM}. It depends on\n * whether {AWS.Config.computeChecksums} is set.\n *\n * @param req [AWS.Request] the request to check against\n * @return [Boolean] whether to compute checksums for a request.\n * @api private\n */\n willComputeChecksums: function willComputeChecksums(req) {\n var rules = req.service.api.operations[req.operation].input.members;\n var body = req.httpRequest.body;\n var needsContentMD5 = req.service.config.computeChecksums &&\n rules.ContentMD5 &&\n !req.params.ContentMD5 &&\n body &&\n (AWS.util.Buffer.isBuffer(req.httpRequest.body) || typeof req.httpRequest.body === 'string');\n\n // Sha256 signing disabled, and not a presigned url\n if (needsContentMD5 && req.service.shouldDisableBodySigning(req) && !req.isPresigned()) {\n return true;\n }\n\n // SigV2 and presign, for backwards compatibility purpose.\n if (needsContentMD5 && this.getSignatureVersion(req) === 's3' && req.isPresigned()) {\n return true;\n }\n\n return false;\n },\n\n /**\n * A listener that computes the Content-MD5 and sets it in the header.\n * This listener is to support S3-specific features like\n * s3DisableBodySigning and SigV2 presign. Content MD5 logic for SigV4 is\n * handled in AWS.EventListeners.Core.COMPUTE_CHECKSUM\n *\n * @api private\n */\n computeContentMd5: function computeContentMd5(req) {\n if (req.service.willComputeChecksums(req)) {\n var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64');\n req.httpRequest.headers['Content-MD5'] = md5;\n }\n },\n\n /**\n * @api private\n */\n computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) {\n var keys = {\n SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5',\n CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5'\n };\n AWS.util.each(keys, function(key, header) {\n if (req.params[key]) {\n var value = AWS.util.crypto.md5(req.params[key], 'base64');\n req.httpRequest.headers[header] = value;\n }\n });\n },\n\n /**\n * Returns true if the bucket name should be left in the URI path for\n * a request to S3. This function takes into account the current\n * endpoint protocol (e.g. http or https).\n *\n * @api private\n */\n pathStyleBucketName: function pathStyleBucketName(bucketName) {\n // user can force path style requests via the configuration\n if (this.config.s3ForcePathStyle) return true;\n if (this.config.s3BucketEndpoint) return false;\n\n if (s3util.dnsCompatibleBucketName(bucketName)) {\n return (this.config.sslEnabled && bucketName.match(/\\./)) ? true : false;\n } else {\n return true; // not dns compatible names must always use path style\n }\n },\n\n /**\n * For COPY operations, some can be error even with status code 200.\n * SDK treats the response as exception when response body indicates\n * an exception or body is empty.\n *\n * @api private\n */\n extractErrorFrom200Response: function extractErrorFrom200Response(resp) {\n var service = this.service ? this.service : this;\n if (!service.is200Error(resp) && !operationsWith200StatusCodeError[resp.request.operation]) {\n return;\n }\n var httpResponse = resp.httpResponse;\n var bodyString = httpResponse.body && httpResponse.body.toString() || '';\n if (bodyString && bodyString.indexOf('') === bodyString.length - 8) {\n // Response body with '...' indicates an exception.\n // Get S3 client object. In ManagedUpload, this.service refers to\n // S3 client object.\n resp.data = null;\n service.extractError(resp);\n resp.error.is200Error = true;\n throw resp.error;\n } else if (!httpResponse.body || !bodyString.match(/<[\\w_]/)) {\n // When body is empty or incomplete, S3 might stop the request on detecting client\n // side aborting the request.\n resp.data = null;\n throw AWS.util.error(new Error(), {\n code: 'InternalError',\n message: 'S3 aborted request'\n });\n }\n },\n\n /**\n * @api private\n * @param resp - to evaluate.\n * @return true if the response has status code 200 but is an error.\n */\n is200Error: function is200Error(resp) {\n var code = resp && resp.httpResponse && resp.httpResponse.statusCode;\n if (code !== 200) {\n return false;\n }\n try {\n var req = resp.request;\n var outputMembers = req.service.api.operations[req.operation].output.members;\n var keys = Object.keys(outputMembers);\n for (var i = 0; i < keys.length; ++i) {\n var member = outputMembers[keys[i]];\n if (member.type === 'binary' && member.isStreaming) {\n return false;\n }\n }\n\n var body = resp.httpResponse.body;\n if (body && body.byteLength !== undefined) {\n if (body.byteLength < 15 || body.byteLength > 3000) {\n // body is too short or long to be an error message.\n return false;\n }\n }\n if (!body) {\n return false;\n }\n var bodyString = body.toString();\n if (bodyString.indexOf('') === bodyString.length - 8) {\n return true;\n }\n } catch (e) {\n return false;\n }\n return false;\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error, request) {\n if (error.is200Error ||\n (operationsWith200StatusCodeError[request.operation] && error.statusCode === 200)) {\n return true;\n } else if (request._requestRegionForBucket &&\n request.service.bucketRegionCache[request._requestRegionForBucket]) {\n return false;\n } else if (error && error.code === 'RequestTimeout') {\n return true;\n } else if (error &&\n regionRedirectErrorCodes.indexOf(error.code) != -1 &&\n error.region && error.region != request.httpRequest.region) {\n request.httpRequest.region = error.region;\n if (error.statusCode === 301) {\n request.service.updateReqBucketRegion(request);\n }\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error, request);\n }\n },\n\n /**\n * Updates httpRequest with region. If region is not provided, then\n * the httpRequest will be updated based on httpRequest.region\n *\n * @api private\n */\n updateReqBucketRegion: function updateReqBucketRegion(request, region) {\n var httpRequest = request.httpRequest;\n if (typeof region === 'string' && region.length) {\n httpRequest.region = region;\n }\n if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\\.amazonaws\\.com$/)) {\n return;\n }\n var service = request.service;\n var s3Config = service.config;\n var s3BucketEndpoint = s3Config.s3BucketEndpoint;\n if (s3BucketEndpoint) {\n delete s3Config.s3BucketEndpoint;\n }\n var newConfig = AWS.util.copy(s3Config);\n delete newConfig.endpoint;\n newConfig.region = httpRequest.region;\n\n httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint;\n service.populateURI(request);\n s3Config.s3BucketEndpoint = s3BucketEndpoint;\n httpRequest.headers.Host = httpRequest.endpoint.host;\n\n if (request._asm.currentState === 'validate') {\n request.removeListener('build', service.populateURI);\n request.addListener('build', service.removeVirtualHostedBucketFromPath);\n }\n },\n\n /**\n * Provides a specialized parser for getBucketLocation -- all other\n * operations are parsed by the super class.\n *\n * @api private\n */\n extractData: function extractData(resp) {\n var req = resp.request;\n if (req.operation === 'getBucketLocation') {\n var match = resp.httpResponse.body.toString().match(/>(.+)<\\/Location/);\n delete resp.data['_'];\n if (match) {\n resp.data.LocationConstraint = match[1];\n } else {\n resp.data.LocationConstraint = '';\n }\n }\n var bucket = req.params.Bucket || null;\n if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) {\n req.service.clearBucketRegionCache(bucket);\n } else {\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n if (!region && req.operation === 'createBucket' && !resp.error) {\n var createBucketConfiguration = req.params.CreateBucketConfiguration;\n if (!createBucketConfiguration) {\n region = 'us-east-1';\n } else if (createBucketConfiguration.LocationConstraint === 'EU') {\n region = 'eu-west-1';\n } else {\n region = createBucketConfiguration.LocationConstraint;\n }\n }\n if (region) {\n if (bucket && region !== req.service.bucketRegionCache[bucket]) {\n req.service.bucketRegionCache[bucket] = region;\n }\n }\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * Extracts an error object from the http response.\n *\n * @api private\n */\n extractError: function extractError(resp) {\n var codes = {\n 304: 'NotModified',\n 403: 'Forbidden',\n 400: 'BadRequest',\n 404: 'NotFound'\n };\n\n var req = resp.request;\n var code = resp.httpResponse.statusCode;\n var body = resp.httpResponse.body || '';\n\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n var bucket = req.params.Bucket || null;\n var bucketRegionCache = req.service.bucketRegionCache;\n if (region && bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n\n var cachedRegion;\n if (codes[code] && body.length === 0) {\n if (bucket && !region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n resp.error = AWS.util.error(new Error(), {\n code: codes[code],\n message: null,\n region: region\n });\n } else {\n var data = new AWS.XML.Parser().parse(body.toString());\n\n if (data.Region && !region) {\n region = data.Region;\n if (bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n } else if (bucket && !region && !data.Region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n\n resp.error = AWS.util.error(new Error(), {\n code: data.Code || code,\n message: data.Message || null,\n region: region\n });\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * If region was not obtained synchronously, then send async request\n * to get bucket region for errors resulting from wrong region.\n *\n * @api private\n */\n requestBucketRegion: function requestBucketRegion(resp, done) {\n var error = resp.error;\n var req = resp.request;\n var bucket = req.params.Bucket || null;\n\n if (!error || !bucket || error.region || req.operation === 'listObjects' ||\n (AWS.util.isNode() && req.operation === 'headBucket') ||\n (error.statusCode === 400 && req.operation !== 'headObject') ||\n regionRedirectErrorCodes.indexOf(error.code) === -1) {\n return done();\n }\n var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects';\n var reqParams = {Bucket: bucket};\n if (reqOperation === 'listObjects') reqParams.MaxKeys = 0;\n var regionReq = req.service[reqOperation](reqParams);\n regionReq._requestRegionForBucket = bucket;\n regionReq.send(function() {\n var region = req.service.bucketRegionCache[bucket] || null;\n error.region = region;\n done();\n });\n },\n\n /**\n * For browser only. If NetworkingError received, will attempt to obtain\n * the bucket region.\n *\n * @api private\n */\n reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) {\n if (!AWS.util.isBrowser()) {\n return done();\n }\n var error = resp.error;\n var request = resp.request;\n var bucket = request.params.Bucket;\n if (!error || error.code !== 'NetworkingError' || !bucket ||\n request.httpRequest.region === 'us-east-1') {\n return done();\n }\n var service = request.service;\n var bucketRegionCache = service.bucketRegionCache;\n var cachedRegion = bucketRegionCache[bucket] || null;\n\n if (cachedRegion && cachedRegion !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, cachedRegion);\n done();\n } else if (!s3util.dnsCompatibleBucketName(bucket)) {\n service.updateReqBucketRegion(request, 'us-east-1');\n if (bucketRegionCache[bucket] !== 'us-east-1') {\n bucketRegionCache[bucket] = 'us-east-1';\n }\n done();\n } else if (request.httpRequest.virtualHostedBucket) {\n var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0});\n service.updateReqBucketRegion(getRegionReq, 'us-east-1');\n getRegionReq._requestRegionForBucket = bucket;\n\n getRegionReq.send(function() {\n var region = service.bucketRegionCache[bucket] || null;\n if (region && region !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, region);\n }\n done();\n });\n } else {\n // DNS-compatible path-style\n // (s3ForcePathStyle or bucket name with dot over https)\n // Cannot obtain region information for this case\n done();\n }\n },\n\n /**\n * Cache for bucket region.\n *\n * @api private\n */\n bucketRegionCache: {},\n\n /**\n * Clears bucket region cache.\n *\n * @api private\n */\n clearBucketRegionCache: function(buckets) {\n var bucketRegionCache = this.bucketRegionCache;\n if (!buckets) {\n buckets = Object.keys(bucketRegionCache);\n } else if (typeof buckets === 'string') {\n buckets = [buckets];\n }\n for (var i = 0; i < buckets.length; i++) {\n delete bucketRegionCache[buckets[i]];\n }\n return bucketRegionCache;\n },\n\n /**\n * Corrects request region if bucket's cached region is different\n *\n * @api private\n */\n correctBucketRegionFromCache: function correctBucketRegionFromCache(req) {\n var bucket = req.params.Bucket || null;\n if (bucket) {\n var service = req.service;\n var requestRegion = req.httpRequest.region;\n var cachedRegion = service.bucketRegionCache[bucket];\n if (cachedRegion && cachedRegion !== requestRegion) {\n service.updateReqBucketRegion(req, cachedRegion);\n }\n }\n },\n\n /**\n * Extracts S3 specific request ids from the http response.\n *\n * @api private\n */\n extractRequestIds: function extractRequestIds(resp) {\n var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null;\n var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null;\n resp.extendedRequestId = extendedRequestId;\n resp.cfId = cfId;\n\n if (resp.error) {\n resp.error.requestId = resp.requestId || null;\n resp.error.extendedRequestId = extendedRequestId;\n resp.error.cfId = cfId;\n }\n },\n\n /**\n * Get a pre-signed URL for a given operation name.\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @note The default signer allows altering the request by adding corresponding\n * headers to set some parameters (e.g. Range) and these added parameters\n * won't be signed. You must use signatureVersion v4 to to include these\n * parameters in the signed portion of the URL and enforce exact matching\n * between headers and signed params in the URL.\n * @note This operation cannot be used with a promise. See note above regarding\n * asynchronous credentials and use with a callback.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @param callback [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @example Pre-signing a getObject operation (synchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url);\n * @example Pre-signing a putObject (asynchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * s3.getSignedUrl('putObject', params, function (err, url) {\n * console.log('The URL is', url);\n * });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var url = s3.getSignedUrl('putObject', params);\n * console.log('The URL is', url);\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url); // expires in 60 seconds\n */\n getSignedUrl: function getSignedUrl(operation, params, callback) {\n params = AWS.util.copy(params || {});\n var expires = params.Expires || 900;\n\n if (typeof expires !== 'number') {\n throw AWS.util.error(new Error(),\n { code: 'InvalidParameterException', message: 'The expiration must be a number, received ' + typeof expires });\n }\n\n delete params.Expires; // we can't validate this\n var request = this.makeRequest(operation, params);\n\n if (callback) {\n AWS.util.defer(function() {\n request.presign(expires, callback);\n });\n } else {\n return request.presign(expires, callback);\n }\n },\n\n /**\n * @!method getSignedUrlPromise()\n * Returns a 'thenable' promise that will be resolved with a pre-signed URL\n * for a given operation name.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @callback fulfilledCallback function(url)\n * Called if the promise is fulfilled.\n * @param url [String] the signed url\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Pre-signing a getObject operation\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var promise = s3.getSignedUrlPromise('putObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n */\n\n /**\n * Get a pre-signed POST policy to support uploading to S3 directly from an\n * HTML form.\n *\n * @param params [map]\n * @option params Bucket [String] The bucket to which the post should be\n * uploaded\n * @option params Expires [Integer] (3600) The number of seconds for which\n * the presigned policy should be valid.\n * @option params Conditions [Array] An array of conditions that must be met\n * for the presigned policy to allow the\n * upload. This can include required tags,\n * the accepted range for content lengths,\n * etc.\n * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html\n * @option params Fields [map] Fields to include in the form. All\n * values passed in as fields will be\n * signed as exact match conditions.\n * @param callback [Function]\n *\n * @note All fields passed in when creating presigned post data will be signed\n * as exact match conditions. Any fields that will be interpolated by S3\n * must be added to the fields hash after signing, and an appropriate\n * condition for such fields must be explicitly added to the Conditions\n * array passed to this function before signing.\n *\n * @example Presiging post data with a known key\n * var params = {\n * Bucket: 'bucket',\n * Fields: {\n * key: 'key'\n * }\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * console.log('The post data is', data);\n * }\n * });\n *\n * @example Presigning post data with an interpolated key\n * var params = {\n * Bucket: 'bucket',\n * Conditions: [\n * ['starts-with', '$key', 'path/to/uploads/']\n * ]\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * data.Fields.key = 'path/to/uploads/${filename}';\n * console.log('The post data is', data);\n * }\n * });\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @return [map] If called synchronously (with no callback), returns a hash\n * with the url to set as the form action and a hash of fields\n * to include in the form.\n * @return [null] Nothing is returned if a callback is provided.\n *\n * @callback callback function (err, data)\n * @param err [Error] the error object returned from the policy signer\n * @param data [map] The data necessary to construct an HTML form\n * @param data.url [String] The URL to use as the action of the form\n * @param data.fields [map] A hash of fields that must be included in the\n * form for the upload to succeed. This hash will\n * include the signed POST policy, your access key\n * ID and security token (if present), etc. These\n * may be safely included as input elements of type\n * 'hidden.'\n */\n createPresignedPost: function createPresignedPost(params, callback) {\n if (typeof params === 'function' && callback === undefined) {\n callback = params;\n params = null;\n }\n\n params = AWS.util.copy(params || {});\n var boundParams = this.config.params || {};\n var bucket = params.Bucket || boundParams.Bucket,\n self = this,\n config = this.config,\n endpoint = AWS.util.copy(this.endpoint);\n if (!config.s3BucketEndpoint) {\n endpoint.pathname = '/' + bucket;\n }\n\n function finalizePost() {\n return {\n url: AWS.util.urlFormat(endpoint),\n fields: self.preparePostFields(\n config.credentials,\n config.region,\n bucket,\n params.Fields,\n params.Conditions,\n params.Expires\n )\n };\n }\n\n if (callback) {\n config.getCredentials(function (err) {\n if (err) {\n callback(err);\n } else {\n try {\n callback(null, finalizePost());\n } catch (err) {\n callback(err);\n }\n }\n });\n } else {\n return finalizePost();\n }\n },\n\n /**\n * @api private\n */\n preparePostFields: function preparePostFields(\n credentials,\n region,\n bucket,\n fields,\n conditions,\n expiresInSeconds\n ) {\n var now = this.getSkewCorrectedDate();\n if (!credentials || !region || !bucket) {\n throw new Error('Unable to create a POST object policy without a bucket,'\n + ' region, and credentials');\n }\n fields = AWS.util.copy(fields || {});\n conditions = (conditions || []).slice(0);\n expiresInSeconds = expiresInSeconds || 3600;\n\n var signingDate = AWS.util.date.iso8601(now).replace(/[:\\-]|\\.\\d{3}/g, '');\n var shortDate = signingDate.substr(0, 8);\n var scope = v4Credentials.createScope(shortDate, region, 's3');\n var credential = credentials.accessKeyId + '/' + scope;\n\n fields['bucket'] = bucket;\n fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';\n fields['X-Amz-Credential'] = credential;\n fields['X-Amz-Date'] = signingDate;\n if (credentials.sessionToken) {\n fields['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n for (var field in fields) {\n if (fields.hasOwnProperty(field)) {\n var condition = {};\n condition[field] = fields[field];\n conditions.push(condition);\n }\n }\n\n fields.Policy = this.preparePostPolicy(\n new Date(now.valueOf() + expiresInSeconds * 1000),\n conditions\n );\n fields['X-Amz-Signature'] = AWS.util.crypto.hmac(\n v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true),\n fields.Policy,\n 'hex'\n );\n\n return fields;\n },\n\n /**\n * @api private\n */\n preparePostPolicy: function preparePostPolicy(expiration, conditions) {\n return AWS.util.base64.encode(JSON.stringify({\n expiration: AWS.util.date.iso8601(expiration),\n conditions: conditions\n }));\n },\n\n /**\n * @api private\n */\n prepareSignedUrl: function prepareSignedUrl(request) {\n request.addListener('validate', request.service.noPresignedContentLength);\n request.removeListener('build', request.service.addContentType);\n if (!request.params.Body) {\n // no Content-MD5/SHA-256 if body is not provided\n request.removeListener('build', request.service.computeContentMd5);\n } else {\n request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n }\n },\n\n /**\n * @api private\n * @param request\n */\n disableBodySigning: function disableBodySigning(request) {\n var headers = request.httpRequest.headers;\n // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined\n if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) {\n headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n }\n },\n\n /**\n * @api private\n */\n noPresignedContentLength: function noPresignedContentLength(request) {\n if (request.params.ContentLength !== undefined) {\n throw AWS.util.error(new Error(), {code: 'UnexpectedParameter',\n message: 'ContentLength is not supported in pre-signed URLs.'});\n }\n },\n\n createBucket: function createBucket(params, callback) {\n // When creating a bucket *outside* the classic region, the location\n // constraint must be set for the bucket and it must match the endpoint.\n // This chunk of code will set the location constraint param based\n // on the region (when possible), but it will not override a passed-in\n // location constraint.\n if (typeof params === 'function' || !params) {\n callback = callback || params;\n params = {};\n }\n var hostname = this.endpoint.hostname;\n // copy params so that appending keys does not unintentioinallly\n // mutate params object argument passed in by user\n var copiedParams = AWS.util.copy(params);\n\n if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) {\n copiedParams.CreateBucketConfiguration = { LocationConstraint: this.config.region };\n }\n return this.makeRequest('createBucket', copiedParams, callback);\n },\n\n writeGetObjectResponse: function writeGetObjectResponse(params, callback) {\n\n var request = this.makeRequest('writeGetObjectResponse', AWS.util.copy(params), callback);\n var hostname = this.endpoint.hostname;\n if (hostname.indexOf(this.config.region) !== -1) {\n // hostname specifies a region already\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.');\n } else {\n // Hostname doesn't have a region.\n // Object Lambda requires an explicit region.\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.' + this.config.region + '.');\n }\n\n request.httpRequest.endpoint = new AWS.Endpoint(hostname, this.config);\n return request;\n },\n\n /**\n * @see AWS.S3.ManagedUpload\n * @overload upload(params = {}, [options], [callback])\n * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent\n * concurrent handling of parts if the payload is large enough. You can\n * configure the concurrent queue size by setting `options`. Note that this\n * is the only operation for which the SDK can retry requests with stream\n * bodies.\n *\n * @param (see AWS.S3.putObject)\n * @option (see AWS.S3.ManagedUpload.constructor)\n * @return [AWS.S3.ManagedUpload] the managed upload object that can call\n * `send()` or track progress.\n * @example Uploading a stream object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * s3.upload(params, function(err, data) {\n * console.log(err, data);\n * });\n * @example Uploading a stream with concurrency of 1 and partSize of 10mb\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var options = {partSize: 10 * 1024 * 1024, queueSize: 1};\n * s3.upload(params, options, function(err, data) {\n * console.log(err, data);\n * });\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * @param data.Location [String] the URL of the uploaded object\n * @param data.ETag [String] the ETag of the uploaded object\n * @param data.Bucket [String] the bucket to which the object was uploaded\n * @param data.Key [String] the key to which the object was uploaded\n */\n upload: function upload(params, options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options = AWS.util.merge(options || {}, {service: this, params: params});\n\n var uploader = new AWS.S3.ManagedUpload(options);\n if (typeof callback === 'function') uploader.send(callback);\n return uploader;\n },\n\n /**\n * @api private\n */\n setExpiresString: function setExpiresString(response) {\n // Check if response contains Expires value, and populate ExpiresString.\n if (response && response.httpResponse && response.httpResponse.headers) {\n if ('expires' in response.httpResponse.headers) {\n response.httpResponse.headers.expiresstring = response.httpResponse.headers.expires;\n }\n }\n\n // Check if value in Expires is not a Date using parseTimestamp.\n try {\n if (response && response.httpResponse && response.httpResponse.headers) {\n if ('expires' in response.httpResponse.headers) {\n AWS.util.date.parseTimestamp(response.httpResponse.headers.expires);\n }\n }\n } catch (e) {\n console.log('AWS SDK', '(warning)', e);\n delete response.httpResponse.headers.expires;\n }\n }\n});\n\n/**\n * @api private\n */\nAWS.S3.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getSignedUrlPromise = AWS.util.promisifyMethod('getSignedUrl', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getSignedUrlPromise;\n};\n\nAWS.util.addPromises(AWS.S3);\n","var AWS = require('../core');\nvar regionUtil = require('../region_config');\n\nvar s3util = {\n /**\n * @api private\n */\n isArnInParam: function isArnInParam(req, paramName) {\n var inputShape = (req.service.api.operations[req.operation] || {}).input || {};\n var inputMembers = inputShape.members || {};\n if (!req.params[paramName] || !inputMembers[paramName]) return false;\n return AWS.util.ARN.validate(req.params[paramName]);\n },\n\n /**\n * Validate service component from ARN supplied in Bucket parameter\n */\n validateArnService: function validateArnService(req) {\n var parsedArn = req._parsedArn;\n\n if (parsedArn.service !== 's3'\n && parsedArn.service !== 's3-outposts'\n && parsedArn.service !== 's3-object-lambda') {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'expect \\'s3\\' or \\'s3-outposts\\' or \\'s3-object-lambda\\' in ARN service component'\n });\n }\n },\n\n /**\n * Validate account ID from ARN supplied in Bucket parameter is a valid account\n */\n validateArnAccount: function validateArnAccount(req) {\n var parsedArn = req._parsedArn;\n\n if (!/[0-9]{12}/.exec(parsedArn.accountId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN accountID does not match regex \"[0-9]{12}\"'\n });\n }\n },\n\n /**\n * Validate ARN supplied in Bucket parameter is a valid access point ARN\n */\n validateS3AccessPointArn: function validateS3AccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['accesspoint'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 2) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access Point ARN should have one resource accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[1];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsArn: function validateOutpostsArn(req) {\n var parsedArn = req._parsedArn;\n\n if (\n parsedArn.resource.indexOf('outpost:') !== 0 &&\n parsedArn.resource.indexOf('outpost/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'outpost/\\''\n });\n }\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n var outpostId = parsedArn.resource.split(delimiter)[1];\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(outpostId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outpost resource in ARN is not DNS compatible. Got ' + outpostId\n });\n }\n req._parsedArn.outpostId = outpostId;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsAccessPointArn: function validateOutpostsAccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 4) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outposts ARN should have two resources outpost/{outpostId}/accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[3];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate region field in ARN supplied in Bucket parameter is a valid region\n */\n validateArnRegion: function validateArnRegion(req, options) {\n if (options === undefined) {\n options = {};\n }\n\n var useArnRegion = s3util.loadUseArnRegionConfig(req);\n var regionFromArn = req._parsedArn.region;\n var clientRegion = req.service.config.region;\n var useFipsEndpoint = req.service.config.useFipsEndpoint;\n var allowFipsEndpoint = options.allowFipsEndpoint || false;\n\n if (!regionFromArn) {\n var message = 'ARN region is empty';\n if (req._parsedArn.service === 's3') {\n message = message + '\\nYou may want to use multi-regional ARN. The feature is not supported in current SDK. ' +\n 'You should consider switching to V3(https://github.com/aws/aws-sdk-js-v3).';\n }\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: message\n });\n }\n\n if (useFipsEndpoint && !allowFipsEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'ARN endpoint is not compatible with FIPS region'\n });\n }\n\n if (regionFromArn.indexOf('fips') >= 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'FIPS region not allowed in ARN'\n });\n }\n\n if (!useArnRegion && regionFromArn !== clientRegion) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region conflicts with access point region'\n });\n } else if (\n useArnRegion &&\n regionUtil.getEndpointSuffix(regionFromArn) !== regionUtil.getEndpointSuffix(clientRegion)\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region and access point region not in same partition'\n });\n }\n\n if (req.service.config.useAccelerateEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'useAccelerateEndpoint config is not supported with access point ARN'\n });\n }\n\n if (req._parsedArn.service === 's3-outposts' && req.service.config.useDualstackEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Dualstack is not supported with outposts access point ARN'\n });\n }\n },\n\n loadUseArnRegionConfig: function loadUseArnRegionConfig(req) {\n var envName = 'AWS_S3_USE_ARN_REGION';\n var configName = 's3_use_arn_region';\n var useArnRegion = true;\n var originalConfig = req.service._originalConfig || {};\n if (req.service.config.s3UseArnRegion !== undefined) {\n return req.service.config.s3UseArnRegion;\n } else if (originalConfig.s3UseArnRegion !== undefined) {\n useArnRegion = originalConfig.s3UseArnRegion === true;\n } else if (AWS.util.isNode()) {\n //load from environmental variable AWS_USE_ARN_REGION\n if (process.env[envName]) {\n var value = process.env[envName].trim().toLowerCase();\n if (['false', 'true'].indexOf(value) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: envName + ' only accepts true or false. Got ' + process.env[envName],\n retryable: false\n });\n }\n useArnRegion = value === 'true';\n } else { //load from shared config property use_arn_region\n var profiles = {};\n var profile = {};\n try {\n profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {}\n if (profile[configName]) {\n if (['false', 'true'].indexOf(profile[configName].trim().toLowerCase()) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: configName + ' only accepts true or false. Got ' + profile[configName],\n retryable: false\n });\n }\n useArnRegion = profile[configName].trim().toLowerCase() === 'true';\n }\n }\n }\n req.service.config.s3UseArnRegion = useArnRegion;\n return useArnRegion;\n },\n\n /**\n * Validations before URI can be populated\n */\n validatePopulateUriFromArn: function validatePopulateUriFromArn(req) {\n if (req.service._originalConfig && req.service._originalConfig.endpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Custom endpoint is not compatible with access point ARN'\n });\n }\n\n if (req.service.config.s3ForcePathStyle) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Cannot construct path-style endpoint with access point'\n });\n }\n },\n\n /**\n * Returns true if the bucket name is DNS compatible. Buckets created\n * outside of the classic region MUST be DNS compatible.\n *\n * @api private\n */\n dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) {\n var b = bucketName;\n var domain = new RegExp(/^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/);\n var ipAddress = new RegExp(/(\\d+\\.){3}\\d+/);\n var dots = new RegExp(/\\.\\./);\n return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false;\n },\n};\n\n/**\n * @api private\n */\nmodule.exports = s3util;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.SQS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.buildEndpoint);\n\n if (request.service.config.computeChecksums) {\n if (request.operation === 'sendMessage') {\n request.addListener('extractData', this.verifySendMessageChecksum);\n } else if (request.operation === 'sendMessageBatch') {\n request.addListener('extractData', this.verifySendMessageBatchChecksum);\n } else if (request.operation === 'receiveMessage') {\n request.addListener('extractData', this.verifyReceiveMessageChecksum);\n }\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageChecksum: function verifySendMessageChecksum(response) {\n if (!response.data) return;\n\n var md5 = response.data.MD5OfMessageBody;\n var body = this.params.MessageBody;\n var calculatedMd5 = this.service.calculateChecksum(body);\n if (calculatedMd5 !== md5) {\n var msg = 'Got \"' + response.data.MD5OfMessageBody +\n '\", expecting \"' + calculatedMd5 + '\".';\n this.service.throwInvalidChecksumError(response,\n [response.data.MessageId], msg);\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageBatchChecksum: function verifySendMessageBatchChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var entries = {};\n var errors = [];\n var messageIds = [];\n AWS.util.arrayEach(response.data.Successful, function (entry) {\n entries[entry.Id] = entry;\n });\n AWS.util.arrayEach(this.params.Entries, function (entry) {\n if (entries[entry.Id]) {\n var md5 = entries[entry.Id].MD5OfMessageBody;\n var body = entry.MessageBody;\n if (!service.isChecksumValid(md5, body)) {\n errors.push(entry.Id);\n messageIds.push(entries[entry.Id].MessageId);\n }\n }\n });\n\n if (errors.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + errors.join(', '));\n }\n },\n\n /**\n * @api private\n */\n verifyReceiveMessageChecksum: function verifyReceiveMessageChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var messageIds = [];\n AWS.util.arrayEach(response.data.Messages, function(message) {\n var md5 = message.MD5OfBody;\n var body = message.Body;\n if (!service.isChecksumValid(md5, body)) {\n messageIds.push(message.MessageId);\n }\n });\n\n if (messageIds.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + messageIds.join(', '));\n }\n },\n\n /**\n * @api private\n */\n throwInvalidChecksumError: function throwInvalidChecksumError(response, ids, message) {\n response.error = AWS.util.error(new Error(), {\n retryable: true,\n code: 'InvalidChecksum',\n messageIds: ids,\n message: response.request.operation +\n ' returned an invalid MD5 response. ' + message\n });\n },\n\n /**\n * @api private\n */\n isChecksumValid: function isChecksumValid(checksum, data) {\n return this.calculateChecksum(data) === checksum;\n },\n\n /**\n * @api private\n */\n calculateChecksum: function calculateChecksum(data) {\n return AWS.util.crypto.md5(data, 'hex');\n },\n\n /**\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.httpRequest.params.QueueUrl;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n\n // signature version 4 requires the region name to be set,\n // sqs queue urls contain the region name\n var matches = request.httpRequest.endpoint.host.match(/^sqs\\.(.+?)\\./);\n if (matches) request.httpRequest.region = matches[1];\n }\n }\n});\n","var AWS = require('../core');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar ENV_REGIONAL_ENDPOINT_ENABLED = 'AWS_STS_REGIONAL_ENDPOINTS';\nvar CONFIG_REGIONAL_ENDPOINT_ENABLED = 'sts_regional_endpoints';\n\nAWS.util.update(AWS.STS.prototype, {\n /**\n * @overload credentialsFrom(data, credentials = null)\n * Creates a credentials object from STS response data containing\n * credentials information. Useful for quickly setting AWS credentials.\n *\n * @note This is a low-level utility function. If you want to load temporary\n * credentials into your process for subsequent requests to AWS resources,\n * you should use {AWS.TemporaryCredentials} instead.\n * @param data [map] data retrieved from a call to {getFederatedToken},\n * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}.\n * @param credentials [AWS.Credentials] an optional credentials object to\n * fill instead of creating a new object. Useful when modifying an\n * existing credentials object from a refresh call.\n * @return [AWS.TemporaryCredentials] the set of temporary credentials\n * loaded from a raw STS operation response.\n * @example Using credentialsFrom to load global AWS credentials\n * var sts = new AWS.STS();\n * sts.getSessionToken(function (err, data) {\n * if (err) console.log(\"Error getting credentials\");\n * else {\n * AWS.config.credentials = sts.credentialsFrom(data);\n * }\n * });\n * @see AWS.TemporaryCredentials\n */\n credentialsFrom: function credentialsFrom(data, credentials) {\n if (!data) return null;\n if (!credentials) credentials = new AWS.TemporaryCredentials();\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretAccessKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n return credentials;\n },\n\n assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback);\n },\n\n assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback);\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validate', this.optInRegionalEndpoint, true);\n },\n\n /**\n * @api private\n */\n optInRegionalEndpoint: function optInRegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.stsRegionalEndpoints = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: ENV_REGIONAL_ENDPOINT_ENABLED,\n sharedConfig: CONFIG_REGIONAL_ENDPOINT_ENABLED,\n clientConfig: 'stsRegionalEndpoints'\n });\n if (\n config.stsRegionalEndpoints === 'regional' &&\n service.isGlobalEndpoint\n ) {\n //client will throw if region is not supplied; request will be signed with specified region\n if (!config.region) {\n throw AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n }\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.' + config.region + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n req.httpRequest.region = config.region;\n }\n }\n\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nAWS.Signers.Bearer = AWS.util.inherit(AWS.Signers.RequestSigner, {\n constructor: function Bearer(request) {\n AWS.Signers.RequestSigner.call(this, request);\n },\n\n addAuthorization: function addAuthorization(token) {\n this.request.headers['Authorization'] = 'Bearer ' + token.token;\n }\n});\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nfunction signedUrlBuilder(request) {\n var expires = request.httpRequest.headers[expiresHeader];\n var signerClass = request.service.getSignerClass(request);\n\n delete request.httpRequest.headers['User-Agent'];\n delete request.httpRequest.headers['X-Amz-User-Agent'];\n\n if (signerClass === AWS.Signers.V4) {\n if (expires > 604800) { // one week expiry is invalid\n var message = 'Presigning does not support expiry time greater ' +\n 'than a week with SigV4 signing.';\n throw AWS.util.error(new Error(), {\n code: 'InvalidExpiryTime', message: message, retryable: false\n });\n }\n request.httpRequest.headers[expiresHeader] = expires;\n } else if (signerClass === AWS.Signers.S3) {\n var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate();\n request.httpRequest.headers[expiresHeader] = parseInt(\n AWS.util.date.unixTimestamp(now) + expires, 10).toString();\n } else {\n throw AWS.util.error(new Error(), {\n message: 'Presigning only supports S3 or SigV4 signing.',\n code: 'UnsupportedSigner', retryable: false\n });\n }\n}\n\n/**\n * @api private\n */\nfunction signedUrlSigner(request) {\n var endpoint = request.httpRequest.endpoint;\n var parsedUrl = AWS.util.urlParse(request.httpRequest.path);\n var queryParams = {};\n\n if (parsedUrl.search) {\n queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1));\n }\n\n var auth = request.httpRequest.headers['Authorization'].split(' ');\n if (auth[0] === 'AWS') {\n auth = auth[1].split(':');\n queryParams['Signature'] = auth.pop();\n queryParams['AWSAccessKeyId'] = auth.join(':');\n\n AWS.util.each(request.httpRequest.headers, function (key, value) {\n if (key === expiresHeader) key = 'Expires';\n if (key.indexOf('x-amz-meta-') === 0) {\n // Delete existing, potentially not normalized key\n delete queryParams[key];\n key = key.toLowerCase();\n }\n queryParams[key] = value;\n });\n delete request.httpRequest.headers[expiresHeader];\n delete queryParams['Authorization'];\n delete queryParams['Host'];\n } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing\n auth.shift();\n var rest = auth.join(' ');\n var signature = rest.match(/Signature=(.*?)(?:,|\\s|\\r?\\n|$)/)[1];\n queryParams['X-Amz-Signature'] = signature;\n delete queryParams['Expires'];\n }\n\n // build URL\n endpoint.pathname = parsedUrl.pathname;\n endpoint.search = AWS.util.queryParamsToString(queryParams);\n}\n\n/**\n * @api private\n */\nAWS.Signers.Presign = inherit({\n /**\n * @api private\n */\n sign: function sign(request, expireTime, callback) {\n request.httpRequest.headers[expiresHeader] = expireTime || 3600;\n request.on('build', signedUrlBuilder);\n request.on('sign', signedUrlSigner);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.SET_CONTENT_LENGTH);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.COMPUTE_SHA256);\n\n request.emit('beforePresign', [request]);\n\n if (callback) {\n request.build(function() {\n if (this.response.error) callback(this.response.error);\n else {\n callback(null, AWS.util.urlFormat(request.httpRequest.endpoint));\n }\n });\n } else {\n request.build();\n if (request.response.error) throw request.response.error;\n return AWS.util.urlFormat(request.httpRequest.endpoint);\n }\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.Presign;\n","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.RequestSigner = inherit({\n constructor: function RequestSigner(request) {\n this.request = request;\n },\n\n setServiceClientId: function setServiceClientId(id) {\n this.serviceClientId = id;\n },\n\n getServiceClientId: function getServiceClientId() {\n return this.serviceClientId;\n }\n});\n\nAWS.Signers.RequestSigner.getVersion = function getVersion(version) {\n switch (version) {\n case 'v2': return AWS.Signers.V2;\n case 'v3': return AWS.Signers.V3;\n case 's3v4': return AWS.Signers.V4;\n case 'v4': return AWS.Signers.V4;\n case 's3': return AWS.Signers.S3;\n case 'v3https': return AWS.Signers.V3Https;\n case 'bearer': return AWS.Signers.Bearer;\n }\n throw new Error('Unknown signing version ' + version);\n};\n\nrequire('./v2');\nrequire('./v3');\nrequire('./v3https');\nrequire('./v4');\nrequire('./s3');\nrequire('./presign');\nrequire('./bearer');\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {\n /**\n * When building the stringToSign, these sub resource params should be\n * part of the canonical resource string with their NON-decoded values\n */\n subResources: {\n 'acl': 1,\n 'accelerate': 1,\n 'analytics': 1,\n 'cors': 1,\n 'lifecycle': 1,\n 'delete': 1,\n 'inventory': 1,\n 'location': 1,\n 'logging': 1,\n 'metrics': 1,\n 'notification': 1,\n 'partNumber': 1,\n 'policy': 1,\n 'requestPayment': 1,\n 'replication': 1,\n 'restore': 1,\n 'tagging': 1,\n 'torrent': 1,\n 'uploadId': 1,\n 'uploads': 1,\n 'versionId': 1,\n 'versioning': 1,\n 'versions': 1,\n 'website': 1\n },\n\n // when building the stringToSign, these querystring params should be\n // part of the canonical resource string with their NON-encoded values\n responseHeaders: {\n 'response-content-type': 1,\n 'response-content-language': 1,\n 'response-expires': 1,\n 'response-cache-control': 1,\n 'response-content-disposition': 1,\n 'response-content-encoding': 1\n },\n\n addAuthorization: function addAuthorization(credentials, date) {\n if (!this.request.headers['presigned-expires']) {\n this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date);\n }\n\n if (credentials.sessionToken) {\n // presigned URLs require this header to be lowercased\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n var signature = this.sign(credentials.secretAccessKey, this.stringToSign());\n var auth = 'AWS ' + credentials.accessKeyId + ':' + signature;\n\n this.request.headers['Authorization'] = auth;\n },\n\n stringToSign: function stringToSign() {\n var r = this.request;\n\n var parts = [];\n parts.push(r.method);\n parts.push(r.headers['Content-MD5'] || '');\n parts.push(r.headers['Content-Type'] || '');\n\n // This is the \"Date\" header, but we use X-Amz-Date.\n // The S3 signing mechanism requires us to pass an empty\n // string for this Date header regardless.\n parts.push(r.headers['presigned-expires'] || '');\n\n var headers = this.canonicalizedAmzHeaders();\n if (headers) parts.push(headers);\n parts.push(this.canonicalizedResource());\n\n return parts.join('\\n');\n\n },\n\n canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {\n\n var amzHeaders = [];\n\n AWS.util.each(this.request.headers, function (name) {\n if (name.match(/^x-amz-/i))\n amzHeaders.push(name);\n });\n\n amzHeaders.sort(function (a, b) {\n return a.toLowerCase() < b.toLowerCase() ? -1 : 1;\n });\n\n var parts = [];\n AWS.util.arrayEach.call(this, amzHeaders, function (name) {\n parts.push(name.toLowerCase() + ':' + String(this.request.headers[name]));\n });\n\n return parts.join('\\n');\n\n },\n\n canonicalizedResource: function canonicalizedResource() {\n\n var r = this.request;\n\n var parts = r.path.split('?');\n var path = parts[0];\n var querystring = parts[1];\n\n var resource = '';\n\n if (r.virtualHostedBucket)\n resource += '/' + r.virtualHostedBucket;\n\n resource += path;\n\n if (querystring) {\n\n // collect a list of sub resources and query params that need to be signed\n var resources = [];\n\n AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {\n var name = param.split('=')[0];\n var value = param.split('=')[1];\n if (this.subResources[name] || this.responseHeaders[name]) {\n var subresource = { name: name };\n if (value !== undefined) {\n if (this.subResources[name]) {\n subresource.value = value;\n } else {\n subresource.value = decodeURIComponent(value);\n }\n }\n resources.push(subresource);\n }\n });\n\n resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; });\n\n if (resources.length) {\n\n querystring = [];\n AWS.util.arrayEach(resources, function (res) {\n if (res.value === undefined) {\n querystring.push(res.name);\n } else {\n querystring.push(res.name + '=' + res.value);\n }\n });\n\n resource += '?' + querystring.join('&');\n }\n\n }\n\n return resource;\n\n },\n\n sign: function sign(secret, string) {\n return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.S3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n if (!date) date = AWS.util.date.getDate();\n\n var r = this.request;\n\n r.params.Timestamp = AWS.util.date.iso8601(date);\n r.params.SignatureVersion = '2';\n r.params.SignatureMethod = 'HmacSHA256';\n r.params.AWSAccessKeyId = credentials.accessKeyId;\n\n if (credentials.sessionToken) {\n r.params.SecurityToken = credentials.sessionToken;\n }\n\n delete r.params.Signature; // delete old Signature for re-signing\n r.params.Signature = this.signature(credentials);\n\n r.body = AWS.util.queryParamsToString(r.params);\n r.headers['Content-Length'] = r.body.length;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push(this.request.endpoint.host.toLowerCase());\n parts.push(this.request.pathname());\n parts.push(AWS.util.queryParamsToString(this.request.params));\n return parts.join('\\n');\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V2;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n var datetime = AWS.util.date.rfc822(date);\n\n this.request.headers['X-Amz-Date'] = datetime;\n\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n this.request.headers['X-Amzn-Authorization'] =\n this.authorization(credentials, datetime);\n\n },\n\n authorization: function authorization(credentials) {\n return 'AWS3 ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'SignedHeaders=' + this.signedHeaders() + ',' +\n 'Signature=' + this.signature(credentials);\n },\n\n signedHeaders: function signedHeaders() {\n var headers = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n headers.push(h.toLowerCase());\n });\n return headers.sort().join(';');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = this.request.headers;\n var parts = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim());\n });\n return parts.sort().join('\\n') + '\\n';\n },\n\n headersToSign: function headersToSign() {\n var headers = [];\n AWS.util.each(this.request.headers, function iterator(k) {\n if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) {\n headers.push(k);\n }\n });\n return headers;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push('/');\n parts.push('');\n parts.push(this.canonicalHeaders());\n parts.push(this.request.body);\n return AWS.util.crypto.sha256(parts.join('\\n'));\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\nrequire('./v3');\n\n/**\n * @api private\n */\nAWS.Signers.V3Https = inherit(AWS.Signers.V3, {\n authorization: function authorization(credentials) {\n return 'AWS3-HTTPS ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'Signature=' + this.signature(credentials);\n },\n\n stringToSign: function stringToSign() {\n return this.request.headers['X-Amz-Date'];\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3Https;\n","var AWS = require('../core');\nvar v4Credentials = require('./v4_credentials');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nAWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {\n constructor: function V4(request, serviceName, options) {\n AWS.Signers.RequestSigner.call(this, request);\n this.serviceName = serviceName;\n options = options || {};\n this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true;\n this.operation = options.operation;\n this.signatureVersion = options.signatureVersion;\n },\n\n algorithm: 'AWS4-HMAC-SHA256',\n\n addAuthorization: function addAuthorization(credentials, date) {\n var datetime = AWS.util.date.iso8601(date).replace(/[:\\-]|\\.\\d{3}/g, '');\n\n if (this.isPresigned()) {\n this.updateForPresigned(credentials, datetime);\n } else {\n this.addHeaders(credentials, datetime);\n }\n\n this.request.headers['Authorization'] =\n this.authorization(credentials, datetime);\n },\n\n addHeaders: function addHeaders(credentials, datetime) {\n this.request.headers['X-Amz-Date'] = datetime;\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n },\n\n updateForPresigned: function updateForPresigned(credentials, datetime) {\n var credString = this.credentialString(datetime);\n var qs = {\n 'X-Amz-Date': datetime,\n 'X-Amz-Algorithm': this.algorithm,\n 'X-Amz-Credential': credentials.accessKeyId + '/' + credString,\n 'X-Amz-Expires': this.request.headers[expiresHeader],\n 'X-Amz-SignedHeaders': this.signedHeaders()\n };\n\n if (credentials.sessionToken) {\n qs['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n\n if (this.request.headers['Content-Type']) {\n qs['Content-Type'] = this.request.headers['Content-Type'];\n }\n if (this.request.headers['Content-MD5']) {\n qs['Content-MD5'] = this.request.headers['Content-MD5'];\n }\n if (this.request.headers['Cache-Control']) {\n qs['Cache-Control'] = this.request.headers['Cache-Control'];\n }\n\n // need to pull in any other X-Amz-* headers\n AWS.util.each.call(this, this.request.headers, function(key, value) {\n if (key === expiresHeader) return;\n if (this.isSignableHeader(key)) {\n var lowerKey = key.toLowerCase();\n // Metadata should be normalized\n if (lowerKey.indexOf('x-amz-meta-') === 0) {\n qs[lowerKey] = value;\n } else if (lowerKey.indexOf('x-amz-') === 0) {\n qs[key] = value;\n }\n }\n });\n\n var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';\n this.request.path += sep + AWS.util.queryParamsToString(qs);\n },\n\n authorization: function authorization(credentials, datetime) {\n var parts = [];\n var credString = this.credentialString(datetime);\n parts.push(this.algorithm + ' Credential=' +\n credentials.accessKeyId + '/' + credString);\n parts.push('SignedHeaders=' + this.signedHeaders());\n parts.push('Signature=' + this.signature(credentials, datetime));\n return parts.join(', ');\n },\n\n signature: function signature(credentials, datetime) {\n var signingKey = v4Credentials.getSigningKey(\n credentials,\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName,\n this.signatureCache\n );\n return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex');\n },\n\n stringToSign: function stringToSign(datetime) {\n var parts = [];\n parts.push('AWS4-HMAC-SHA256');\n parts.push(datetime);\n parts.push(this.credentialString(datetime));\n parts.push(this.hexEncodedHash(this.canonicalString()));\n return parts.join('\\n');\n },\n\n canonicalString: function canonicalString() {\n var parts = [], pathname = this.request.pathname();\n if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname);\n\n parts.push(this.request.method);\n parts.push(pathname);\n parts.push(this.request.search());\n parts.push(this.canonicalHeaders() + '\\n');\n parts.push(this.signedHeaders());\n parts.push(this.hexEncodedBodyHash());\n return parts.join('\\n');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = [];\n AWS.util.each.call(this, this.request.headers, function (key, item) {\n headers.push([key, item]);\n });\n headers.sort(function (a, b) {\n return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1;\n });\n var parts = [];\n AWS.util.arrayEach.call(this, headers, function (item) {\n var key = item[0].toLowerCase();\n if (this.isSignableHeader(key)) {\n var value = item[1];\n if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') {\n throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), {\n code: 'InvalidHeader'\n });\n }\n parts.push(key + ':' +\n this.canonicalHeaderValues(value.toString()));\n }\n });\n return parts.join('\\n');\n },\n\n canonicalHeaderValues: function canonicalHeaderValues(values) {\n return values.replace(/\\s+/g, ' ').replace(/^\\s+|\\s+$/g, '');\n },\n\n signedHeaders: function signedHeaders() {\n var keys = [];\n AWS.util.each.call(this, this.request.headers, function (key) {\n key = key.toLowerCase();\n if (this.isSignableHeader(key)) keys.push(key);\n });\n return keys.sort().join(';');\n },\n\n credentialString: function credentialString(datetime) {\n return v4Credentials.createScope(\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName\n );\n },\n\n hexEncodedHash: function hash(string) {\n return AWS.util.crypto.sha256(string, 'hex');\n },\n\n hexEncodedBodyHash: function hexEncodedBodyHash() {\n var request = this.request;\n if (this.isPresigned() && (['s3', 's3-object-lambda'].indexOf(this.serviceName) > -1) && !request.body) {\n return 'UNSIGNED-PAYLOAD';\n } else if (request.headers['X-Amz-Content-Sha256']) {\n return request.headers['X-Amz-Content-Sha256'];\n } else {\n return this.hexEncodedHash(this.request.body || '');\n }\n },\n\n unsignableHeaders: [\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n expiresHeader,\n 'expect',\n 'x-amzn-trace-id'\n ],\n\n isSignableHeader: function isSignableHeader(key) {\n if (key.toLowerCase().indexOf('x-amz-') === 0) return true;\n return this.unsignableHeaders.indexOf(key) < 0;\n },\n\n isPresigned: function isPresigned() {\n return this.request.headers[expiresHeader] ? true : false;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V4;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar cachedSecret = {};\n\n/**\n * @api private\n */\nvar cacheQueue = [];\n\n/**\n * @api private\n */\nvar maxCacheEntries = 50;\n\n/**\n * @api private\n */\nvar v4Identifier = 'aws4_request';\n\n/**\n * @api private\n */\nmodule.exports = {\n /**\n * @api private\n *\n * @param date [String]\n * @param region [String]\n * @param serviceName [String]\n * @return [String]\n */\n createScope: function createScope(date, region, serviceName) {\n return [\n date.substr(0, 8),\n region,\n serviceName,\n v4Identifier\n ].join('/');\n },\n\n /**\n * @api private\n *\n * @param credentials [Credentials]\n * @param date [String]\n * @param region [String]\n * @param service [String]\n * @param shouldCache [Boolean]\n * @return [String]\n */\n getSigningKey: function getSigningKey(\n credentials,\n date,\n region,\n service,\n shouldCache\n ) {\n var credsIdentifier = AWS.util.crypto\n .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64');\n var cacheKey = [credsIdentifier, date, region, service].join('_');\n shouldCache = shouldCache !== false;\n if (shouldCache && (cacheKey in cachedSecret)) {\n return cachedSecret[cacheKey];\n }\n\n var kDate = AWS.util.crypto.hmac(\n 'AWS4' + credentials.secretAccessKey,\n date,\n 'buffer'\n );\n var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer');\n var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer');\n\n var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer');\n if (shouldCache) {\n cachedSecret[cacheKey] = signingKey;\n cacheQueue.push(cacheKey);\n if (cacheQueue.length > maxCacheEntries) {\n // remove the oldest entry (not the least recently used)\n delete cachedSecret[cacheQueue.shift()];\n }\n }\n\n return signingKey;\n },\n\n /**\n * @api private\n *\n * Empties the derived signing key cache. Made available for testing purposes\n * only.\n */\n emptyCache: function emptyCache() {\n cachedSecret = {};\n cacheQueue = [];\n }\n};\n","function AcceptorStateMachine(states, state) {\n this.currentState = state || null;\n this.states = states || {};\n}\n\nAcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) {\n if (typeof finalState === 'function') {\n inputError = bindObject; bindObject = done;\n done = finalState; finalState = null;\n }\n\n var self = this;\n var state = self.states[self.currentState];\n state.fn.call(bindObject || self, inputError, function(err) {\n if (err) {\n if (state.fail) self.currentState = state.fail;\n else return done ? done.call(bindObject, err) : null;\n } else {\n if (state.accept) self.currentState = state.accept;\n else return done ? done.call(bindObject) : null;\n }\n if (self.currentState === finalState) {\n return done ? done.call(bindObject, err) : null;\n }\n\n self.runTo(finalState, done, bindObject, err);\n });\n};\n\nAcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) {\n if (typeof acceptState === 'function') {\n fn = acceptState; acceptState = null; failState = null;\n } else if (typeof failState === 'function') {\n fn = failState; failState = null;\n }\n\n if (!this.currentState) this.currentState = name;\n this.states[name] = { accept: acceptState, fail: failState, fn: fn };\n return this;\n};\n\n/**\n * @api private\n */\nmodule.exports = AcceptorStateMachine;\n","/* eslint guard-for-in:0 */\nvar AWS;\n\n/**\n * A set of utility methods for use with the AWS SDK.\n *\n * @!attribute abort\n * Return this value from an iterator function {each} or {arrayEach}\n * to break out of the iteration.\n * @example Breaking out of an iterator function\n * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) {\n * if (key == 'b') return AWS.util.abort;\n * });\n * @see each\n * @see arrayEach\n * @api private\n */\nvar util = {\n environment: 'nodejs',\n engine: function engine() {\n if (util.isBrowser() && typeof navigator !== 'undefined') {\n return navigator.userAgent;\n } else {\n var engine = process.platform + '/' + process.version;\n if (process.env.AWS_EXECUTION_ENV) {\n engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV;\n }\n return engine;\n }\n },\n\n userAgent: function userAgent() {\n var name = util.environment;\n var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION;\n if (name === 'nodejs') agent += ' ' + util.engine();\n return agent;\n },\n\n uriEscape: function uriEscape(string) {\n var output = encodeURIComponent(string);\n output = output.replace(/[^A-Za-z0-9_.~\\-%]+/g, escape);\n\n // AWS percent-encodes some extra non-standard characters in a URI\n output = output.replace(/[*]/g, function(ch) {\n return '%' + ch.charCodeAt(0).toString(16).toUpperCase();\n });\n\n return output;\n },\n\n uriEscapePath: function uriEscapePath(string) {\n var parts = [];\n util.arrayEach(string.split('/'), function (part) {\n parts.push(util.uriEscape(part));\n });\n return parts.join('/');\n },\n\n urlParse: function urlParse(url) {\n return util.url.parse(url);\n },\n\n urlFormat: function urlFormat(url) {\n return util.url.format(url);\n },\n\n queryStringParse: function queryStringParse(qs) {\n return util.querystring.parse(qs);\n },\n\n queryParamsToString: function queryParamsToString(params) {\n var items = [];\n var escape = util.uriEscape;\n var sortedKeys = Object.keys(params).sort();\n\n util.arrayEach(sortedKeys, function(name) {\n var value = params[name];\n var ename = escape(name);\n var result = ename + '=';\n if (Array.isArray(value)) {\n var vals = [];\n util.arrayEach(value, function(item) { vals.push(escape(item)); });\n result = ename + '=' + vals.sort().join('&' + ename + '=');\n } else if (value !== undefined && value !== null) {\n result = ename + '=' + escape(value);\n }\n items.push(result);\n });\n\n return items.join('&');\n },\n\n readFileSync: function readFileSync(path) {\n if (util.isBrowser()) return null;\n return require('fs').readFileSync(path, 'utf-8');\n },\n\n base64: {\n encode: function encode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 encode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n var buf = util.buffer.toBuffer(string);\n return buf.toString('base64');\n },\n\n decode: function decode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 decode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n return util.buffer.toBuffer(string, 'base64');\n }\n\n },\n\n buffer: {\n /**\n * Buffer constructor for Node buffer and buffer pollyfill\n */\n toBuffer: function(data, encoding) {\n return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ?\n util.Buffer.from(data, encoding) : new util.Buffer(data, encoding);\n },\n\n alloc: function(size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new Error('size passed to alloc must be a number.');\n }\n if (typeof util.Buffer.alloc === 'function') {\n return util.Buffer.alloc(size, fill, encoding);\n } else {\n var buf = new util.Buffer(size);\n if (fill !== undefined && typeof buf.fill === 'function') {\n buf.fill(fill, undefined, undefined, encoding);\n }\n return buf;\n }\n },\n\n toStream: function toStream(buffer) {\n if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer);\n\n var readable = new (util.stream.Readable)();\n var pos = 0;\n readable._read = function(size) {\n if (pos >= buffer.length) return readable.push(null);\n\n var end = pos + size;\n if (end > buffer.length) end = buffer.length;\n readable.push(buffer.slice(pos, end));\n pos = end;\n };\n\n return readable;\n },\n\n /**\n * Concatenates a list of Buffer objects.\n */\n concat: function(buffers) {\n var length = 0,\n offset = 0,\n buffer = null, i;\n\n for (i = 0; i < buffers.length; i++) {\n length += buffers[i].length;\n }\n\n buffer = util.buffer.alloc(length);\n\n for (i = 0; i < buffers.length; i++) {\n buffers[i].copy(buffer, offset);\n offset += buffers[i].length;\n }\n\n return buffer;\n }\n },\n\n string: {\n byteLength: function byteLength(string) {\n if (string === null || string === undefined) return 0;\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n\n if (typeof string.byteLength === 'number') {\n return string.byteLength;\n } else if (typeof string.length === 'number') {\n return string.length;\n } else if (typeof string.size === 'number') {\n return string.size;\n } else if (typeof string.path === 'string') {\n return require('fs').lstatSync(string.path).size;\n } else {\n throw util.error(new Error('Cannot determine length of ' + string),\n { object: string });\n }\n },\n\n upperFirst: function upperFirst(string) {\n return string[0].toUpperCase() + string.substr(1);\n },\n\n lowerFirst: function lowerFirst(string) {\n return string[0].toLowerCase() + string.substr(1);\n }\n },\n\n ini: {\n parse: function string(ini) {\n var currentSection, map = {};\n util.arrayEach(ini.split(/\\r?\\n/), function(line) {\n line = line.split(/(^|\\s)[;#]/)[0].trim(); // remove comments and trim\n var isSection = line[0] === '[' && line[line.length - 1] === ']';\n if (isSection) {\n currentSection = line.substring(1, line.length - 1);\n if (currentSection === '__proto__' || currentSection.split(/\\s/)[1] === '__proto__') {\n throw util.error(\n new Error('Cannot load profile name \\'' + currentSection + '\\' from shared ini file.')\n );\n }\n } else if (currentSection) {\n var indexOfEqualsSign = line.indexOf('=');\n var start = 0;\n var end = line.length - 1;\n var isAssignment =\n indexOfEqualsSign !== -1 && indexOfEqualsSign !== start && indexOfEqualsSign !== end;\n\n if (isAssignment) {\n var name = line.substring(0, indexOfEqualsSign).trim();\n var value = line.substring(indexOfEqualsSign + 1).trim();\n\n map[currentSection] = map[currentSection] || {};\n map[currentSection][name] = value;\n }\n }\n });\n\n return map;\n }\n },\n\n fn: {\n noop: function() {},\n callback: function (err) { if (err) throw err; },\n\n /**\n * Turn a synchronous function into as \"async\" function by making it call\n * a callback. The underlying function is called with all but the last argument,\n * which is treated as the callback. The callback is passed passed a first argument\n * of null on success to mimick standard node callbacks.\n */\n makeAsync: function makeAsync(fn, expectedArgs) {\n if (expectedArgs && expectedArgs <= fn.length) {\n return fn;\n }\n\n return function() {\n var args = Array.prototype.slice.call(arguments, 0);\n var callback = args.pop();\n var result = fn.apply(null, args);\n callback(result);\n };\n }\n },\n\n /**\n * Date and time utility functions.\n */\n date: {\n\n /**\n * @return [Date] the current JavaScript date object. Since all\n * AWS services rely on this date object, you can override\n * this function to provide a special time value to AWS service\n * requests.\n */\n getDate: function getDate() {\n if (!AWS) AWS = require('./core');\n if (AWS.config.systemClockOffset) { // use offset when non-zero\n return new Date(new Date().getTime() + AWS.config.systemClockOffset);\n } else {\n return new Date();\n }\n },\n\n /**\n * @return [String] the date in ISO-8601 format\n */\n iso8601: function iso8601(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n },\n\n /**\n * @return [String] the date in RFC 822 format\n */\n rfc822: function rfc822(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toUTCString();\n },\n\n /**\n * @return [Integer] the UNIX timestamp value for the current time\n */\n unixTimestamp: function unixTimestamp(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.getTime() / 1000;\n },\n\n /**\n * @param [String,number,Date] date\n * @return [Date]\n */\n from: function format(date) {\n if (typeof date === 'number') {\n return new Date(date * 1000); // unix timestamp\n } else {\n return new Date(date);\n }\n },\n\n /**\n * Given a Date or date-like value, this function formats the\n * date into a string of the requested value.\n * @param [String,number,Date] date\n * @param [String] formatter Valid formats are:\n # * 'iso8601'\n # * 'rfc822'\n # * 'unixTimestamp'\n * @return [String]\n */\n format: function format(date, formatter) {\n if (!formatter) formatter = 'iso8601';\n return util.date[formatter](util.date.from(date));\n },\n\n parseTimestamp: function parseTimestamp(value) {\n if (typeof value === 'number') { // unix timestamp (number)\n return new Date(value * 1000);\n } else if (value.match(/^\\d+$/)) { // unix timestamp\n return new Date(value * 1000);\n } else if (value.match(/^\\d{4}/)) { // iso8601\n return new Date(value);\n } else if (value.match(/^\\w{3},/)) { // rfc822\n return new Date(value);\n } else {\n throw util.error(\n new Error('unhandled timestamp format: ' + value),\n {code: 'TimestampParserError'});\n }\n }\n\n },\n\n crypto: {\n crc32Table: [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,\n 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,\n 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,\n 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,\n 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,\n 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,\n 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,\n 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A,\n 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599,\n 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190,\n 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,\n 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E,\n 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED,\n 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,\n 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3,\n 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,\n 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5,\n 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010,\n 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17,\n 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6,\n 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615,\n 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344,\n 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,\n 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A,\n 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1,\n 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C,\n 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,\n 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE,\n 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31,\n 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C,\n 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B,\n 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,\n 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1,\n 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278,\n 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7,\n 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66,\n 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,\n 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8,\n 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B,\n 0x2D02EF8D],\n\n crc32: function crc32(data) {\n var tbl = util.crypto.crc32Table;\n var crc = 0 ^ -1;\n\n if (typeof data === 'string') {\n data = util.buffer.toBuffer(data);\n }\n\n for (var i = 0; i < data.length; i++) {\n var code = data.readUInt8(i);\n crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF];\n }\n return (crc ^ -1) >>> 0;\n },\n\n hmac: function hmac(key, string, digest, fn) {\n if (!digest) digest = 'binary';\n if (digest === 'buffer') { digest = undefined; }\n if (!fn) fn = 'sha256';\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n return util.crypto.lib.createHmac(fn, key).update(string).digest(digest);\n },\n\n md5: function md5(data, digest, callback) {\n return util.crypto.hash('md5', data, digest, callback);\n },\n\n sha256: function sha256(data, digest, callback) {\n return util.crypto.hash('sha256', data, digest, callback);\n },\n\n hash: function(algorithm, data, digest, callback) {\n var hash = util.crypto.createHash(algorithm);\n if (!digest) { digest = 'binary'; }\n if (digest === 'buffer') { digest = undefined; }\n if (typeof data === 'string') data = util.buffer.toBuffer(data);\n var sliceFn = util.arraySliceFn(data);\n var isBuffer = util.Buffer.isBuffer(data);\n //Identifying objects with an ArrayBuffer as buffers\n if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true;\n\n if (callback && typeof data === 'object' &&\n typeof data.on === 'function' && !isBuffer) {\n data.on('data', function(chunk) { hash.update(chunk); });\n data.on('error', function(err) { callback(err); });\n data.on('end', function() { callback(null, hash.digest(digest)); });\n } else if (callback && sliceFn && !isBuffer &&\n typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n var index = 0, size = 1024 * 512;\n var reader = new FileReader();\n reader.onerror = function() {\n callback(new Error('Failed to read data.'));\n };\n reader.onload = function() {\n var buf = new util.Buffer(new Uint8Array(reader.result));\n hash.update(buf);\n index += buf.length;\n reader._continueReading();\n };\n reader._continueReading = function() {\n if (index >= data.size) {\n callback(null, hash.digest(digest));\n return;\n }\n\n var back = index + size;\n if (back > data.size) back = data.size;\n reader.readAsArrayBuffer(sliceFn.call(data, index, back));\n };\n\n reader._continueReading();\n } else {\n if (util.isBrowser() && typeof data === 'object' && !isBuffer) {\n data = new util.Buffer(new Uint8Array(data));\n }\n var out = hash.update(data).digest(digest);\n if (callback) callback(null, out);\n return out;\n }\n },\n\n toHex: function toHex(data) {\n var out = [];\n for (var i = 0; i < data.length; i++) {\n out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2));\n }\n return out.join('');\n },\n\n createHash: function createHash(algorithm) {\n return util.crypto.lib.createHash(algorithm);\n }\n\n },\n\n /** @!ignore */\n\n /* Abort constant */\n abort: {},\n\n each: function each(object, iterFunction) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n var ret = iterFunction.call(this, key, object[key]);\n if (ret === util.abort) break;\n }\n }\n },\n\n arrayEach: function arrayEach(array, iterFunction) {\n for (var idx in array) {\n if (Object.prototype.hasOwnProperty.call(array, idx)) {\n var ret = iterFunction.call(this, array[idx], parseInt(idx, 10));\n if (ret === util.abort) break;\n }\n }\n },\n\n update: function update(obj1, obj2) {\n util.each(obj2, function iterator(key, item) {\n obj1[key] = item;\n });\n return obj1;\n },\n\n merge: function merge(obj1, obj2) {\n return util.update(util.copy(obj1), obj2);\n },\n\n copy: function copy(object) {\n if (object === null || object === undefined) return object;\n var dupe = {};\n // jshint forin:false\n for (var key in object) {\n dupe[key] = object[key];\n }\n return dupe;\n },\n\n isEmpty: function isEmpty(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n return false;\n }\n }\n return true;\n },\n\n arraySliceFn: function arraySliceFn(obj) {\n var fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n return typeof fn === 'function' ? fn : null;\n },\n\n isType: function isType(obj, type) {\n // handle cross-\"frame\" objects\n if (typeof type === 'function') type = util.typeName(type);\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n typeName: function typeName(type) {\n if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name;\n var str = type.toString();\n var match = str.match(/^\\s*function (.+)\\(/);\n return match ? match[1] : str;\n },\n\n error: function error(err, options) {\n var originalError = null;\n if (typeof err.message === 'string' && err.message !== '') {\n if (typeof options === 'string' || (options && options.message)) {\n originalError = util.copy(err);\n originalError.message = err.message;\n }\n }\n err.message = err.message || null;\n\n if (typeof options === 'string') {\n err.message = options;\n } else if (typeof options === 'object' && options !== null) {\n util.update(err, options);\n if (options.message)\n err.message = options.message;\n if (options.code || options.name)\n err.code = options.code || options.name;\n if (options.stack)\n err.stack = options.stack;\n }\n\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(err, 'name', {writable: true, enumerable: false});\n Object.defineProperty(err, 'message', {enumerable: true});\n }\n\n err.name = String(options && options.name || err.name || err.code || 'Error');\n err.time = new Date();\n\n if (originalError) {\n err.originalError = originalError;\n }\n\n\n for (var key in options || {}) {\n if (key[0] === '[' && key[key.length - 1] === ']') {\n key = key.slice(1, -1);\n if (key === 'code' || key === 'message') {\n continue;\n }\n err['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(err, key, {\n value: err[key] || (options && options[key]) || (originalError && originalError[key]),\n enumerable: false,\n writable: true\n });\n }\n }\n\n return err;\n },\n\n /**\n * @api private\n */\n inherit: function inherit(klass, features) {\n var newObject = null;\n if (features === undefined) {\n features = klass;\n klass = Object;\n newObject = {};\n } else {\n var ctor = function ConstructorWrapper() {};\n ctor.prototype = klass.prototype;\n newObject = new ctor();\n }\n\n // constructor not supplied, create pass-through ctor\n if (features.constructor === Object) {\n features.constructor = function() {\n if (klass !== Object) {\n return klass.apply(this, arguments);\n }\n };\n }\n\n features.constructor.prototype = newObject;\n util.update(features.constructor.prototype, features);\n features.constructor.__super__ = klass;\n return features.constructor;\n },\n\n /**\n * @api private\n */\n mixin: function mixin() {\n var klass = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n // jshint forin:false\n for (var prop in arguments[i].prototype) {\n var fn = arguments[i].prototype[prop];\n if (prop !== 'constructor') {\n klass.prototype[prop] = fn;\n }\n }\n }\n return klass;\n },\n\n /**\n * @api private\n */\n hideProperties: function hideProperties(obj, props) {\n if (typeof Object.defineProperty !== 'function') return;\n\n util.arrayEach(props, function (key) {\n Object.defineProperty(obj, key, {\n enumerable: false, writable: true, configurable: true });\n });\n },\n\n /**\n * @api private\n */\n property: function property(obj, name, value, enumerable, isValue) {\n var opts = {\n configurable: true,\n enumerable: enumerable !== undefined ? enumerable : true\n };\n if (typeof value === 'function' && !isValue) {\n opts.get = value;\n }\n else {\n opts.value = value; opts.writable = true;\n }\n\n Object.defineProperty(obj, name, opts);\n },\n\n /**\n * @api private\n */\n memoizedProperty: function memoizedProperty(obj, name, get, enumerable) {\n var cachedValue = null;\n\n // build enumerable attribute for each value with lazy accessor.\n util.property(obj, name, function() {\n if (cachedValue === null) {\n cachedValue = get();\n }\n return cachedValue;\n }, enumerable);\n },\n\n /**\n * TODO Remove in major version revision\n * This backfill populates response data without the\n * top-level payload name.\n *\n * @api private\n */\n hoistPayloadMember: function hoistPayloadMember(resp) {\n var req = resp.request;\n var operationName = req.operation;\n var operation = req.service.api.operations[operationName];\n var output = operation.output;\n if (output.payload && !operation.hasEventOutput) {\n var payloadMember = output.members[output.payload];\n var responsePayload = resp.data[output.payload];\n if (payloadMember.type === 'structure') {\n util.each(responsePayload, function(key, value) {\n util.property(resp.data, key, value, false);\n });\n }\n }\n },\n\n /**\n * Compute SHA-256 checksums of streams\n *\n * @api private\n */\n computeSha256: function computeSha256(body, done) {\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n var fs = require('fs');\n if (typeof Stream === 'function' && body instanceof Stream) {\n if (typeof body.path === 'string') { // assume file object\n var settings = {};\n if (typeof body.start === 'number') {\n settings.start = body.start;\n }\n if (typeof body.end === 'number') {\n settings.end = body.end;\n }\n body = fs.createReadStream(body.path, settings);\n } else { // TODO support other stream types\n return done(new Error('Non-file stream objects are ' +\n 'not supported with SigV4'));\n }\n }\n }\n\n util.crypto.sha256(body, 'hex', function(err, sha) {\n if (err) done(err);\n else done(null, sha);\n });\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(serverTime) {\n if (serverTime) {\n util.property(AWS.config, 'isClockSkewed',\n Math.abs(new Date().getTime() - serverTime) >= 300000, false);\n return AWS.config.isClockSkewed;\n }\n },\n\n applyClockOffset: function applyClockOffset(serverTime) {\n if (serverTime)\n AWS.config.systemClockOffset = serverTime - new Date().getTime();\n },\n\n /**\n * @api private\n */\n extractRequestId: function extractRequestId(resp) {\n var requestId = resp.httpResponse.headers['x-amz-request-id'] ||\n resp.httpResponse.headers['x-amzn-requestid'];\n\n if (!requestId && resp.data && resp.data.ResponseMetadata) {\n requestId = resp.data.ResponseMetadata.RequestId;\n }\n\n if (requestId) {\n resp.requestId = requestId;\n }\n\n if (resp.error) {\n resp.error.requestId = requestId;\n }\n },\n\n /**\n * @api private\n */\n addPromises: function addPromises(constructors, PromiseDependency) {\n var deletePromises = false;\n if (PromiseDependency === undefined && AWS && AWS.config) {\n PromiseDependency = AWS.config.getPromisesDependency();\n }\n if (PromiseDependency === undefined && typeof Promise !== 'undefined') {\n PromiseDependency = Promise;\n }\n if (typeof PromiseDependency !== 'function') deletePromises = true;\n if (!Array.isArray(constructors)) constructors = [constructors];\n\n for (var ind = 0; ind < constructors.length; ind++) {\n var constructor = constructors[ind];\n if (deletePromises) {\n if (constructor.deletePromisesFromClass) {\n constructor.deletePromisesFromClass();\n }\n } else if (constructor.addPromisesToClass) {\n constructor.addPromisesToClass(PromiseDependency);\n }\n }\n },\n\n /**\n * @api private\n * Return a function that will return a promise whose fate is decided by the\n * callback behavior of the given method with `methodName`. The method to be\n * promisified should conform to node.js convention of accepting a callback as\n * last argument and calling that callback with error as the first argument\n * and success value on the second argument.\n */\n promisifyMethod: function promisifyMethod(methodName, PromiseDependency) {\n return function promise() {\n var self = this;\n var args = Array.prototype.slice.call(arguments);\n return new PromiseDependency(function(resolve, reject) {\n args.push(function(err, data) {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n });\n self[methodName].apply(self, args);\n });\n };\n },\n\n /**\n * @api private\n */\n isDualstackAvailable: function isDualstackAvailable(service) {\n if (!service) return false;\n var metadata = require('../apis/metadata.json');\n if (typeof service !== 'string') service = service.serviceIdentifier;\n if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false;\n return !!metadata[service].dualstackAvailable;\n },\n\n /**\n * @api private\n */\n calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions, err) {\n if (!retryDelayOptions) retryDelayOptions = {};\n var customBackoff = retryDelayOptions.customBackoff || null;\n if (typeof customBackoff === 'function') {\n return customBackoff(retryCount, err);\n }\n var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100;\n var delay = Math.random() * (Math.pow(2, retryCount) * base);\n return delay;\n },\n\n /**\n * @api private\n */\n handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) {\n if (!options) options = {};\n var http = AWS.HttpClient.getInstance();\n var httpOptions = options.httpOptions || {};\n var retryCount = 0;\n\n var errCallback = function(err) {\n var maxRetries = options.maxRetries || 0;\n if (err && err.code === 'TimeoutError') err.retryable = true;\n\n // Call `calculateRetryDelay()` only when relevant, see #3401\n if (err && err.retryable && retryCount < maxRetries) {\n var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err);\n if (delay >= 0) {\n retryCount++;\n setTimeout(sendRequest, delay + (err.retryAfter || 0));\n return;\n }\n }\n cb(err);\n };\n\n var sendRequest = function() {\n var data = '';\n http.handleRequest(httpRequest, httpOptions, function(httpResponse) {\n httpResponse.on('data', function(chunk) { data += chunk.toString(); });\n httpResponse.on('end', function() {\n var statusCode = httpResponse.statusCode;\n if (statusCode < 300) {\n cb(null, data);\n } else {\n var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0;\n var err = util.error(new Error(),\n {\n statusCode: statusCode,\n retryable: statusCode >= 500 || statusCode === 429\n }\n );\n if (retryAfter && err.retryable) err.retryAfter = retryAfter;\n errCallback(err);\n }\n });\n }, errCallback);\n };\n\n AWS.util.defer(sendRequest);\n },\n\n /**\n * @api private\n */\n uuid: {\n v4: function uuidV4() {\n return require('uuid').v4();\n }\n },\n\n /**\n * @api private\n */\n convertPayloadToString: function convertPayloadToString(resp) {\n var req = resp.request;\n var operation = req.operation;\n var rules = req.service.api.operations[operation].output || {};\n if (rules.payload && resp.data[rules.payload]) {\n resp.data[rules.payload] = resp.data[rules.payload].toString();\n }\n },\n\n /**\n * @api private\n */\n defer: function defer(callback) {\n if (typeof process === 'object' && typeof process.nextTick === 'function') {\n process.nextTick(callback);\n } else if (typeof setImmediate === 'function') {\n setImmediate(callback);\n } else {\n setTimeout(callback, 0);\n }\n },\n\n /**\n * @api private\n */\n getRequestPayloadShape: function getRequestPayloadShape(req) {\n var operations = req.service.api.operations;\n if (!operations) return undefined;\n var operation = (operations || {})[req.operation];\n if (!operation || !operation.input || !operation.input.payload) return undefined;\n return operation.input.members[operation.input.payload];\n },\n\n getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) {\n var profiles = {};\n var profilesFromConfig = {};\n if (process.env[util.configOptInEnv]) {\n var profilesFromConfig = iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[util.sharedConfigFileEnv]\n });\n }\n var profilesFromCreds= {};\n try {\n var profilesFromCreds = iniLoader.loadFrom({\n filename: filename ||\n (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv])\n });\n } catch (error) {\n // if using config, assume it is fully descriptive without a credentials file:\n if (!process.env[util.configOptInEnv]) throw error;\n }\n for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromConfig[profileNames[i]]);\n }\n for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromCreds[profileNames[i]]);\n }\n return profiles;\n\n /**\n * Roughly the semantics of `Object.assign(target, source)`\n */\n function objectAssign(target, source) {\n for (var i = 0, keys = Object.keys(source); i < keys.length; i++) {\n target[keys[i]] = source[keys[i]];\n }\n return target;\n }\n },\n\n /**\n * @api private\n */\n ARN: {\n validate: function validateARN(str) {\n return str && str.indexOf('arn:') === 0 && str.split(':').length >= 6;\n },\n parse: function parseARN(arn) {\n var matched = arn.split(':');\n return {\n partition: matched[1],\n service: matched[2],\n region: matched[3],\n accountId: matched[4],\n resource: matched.slice(5).join(':')\n };\n },\n build: function buildARN(arnObject) {\n if (\n arnObject.service === undefined ||\n arnObject.region === undefined ||\n arnObject.accountId === undefined ||\n arnObject.resource === undefined\n ) throw util.error(new Error('Input ARN object is invalid'));\n return 'arn:'+ (arnObject.partition || 'aws') + ':' + arnObject.service +\n ':' + arnObject.region + ':' + arnObject.accountId + ':' + arnObject.resource;\n }\n },\n\n /**\n * @api private\n */\n defaultProfile: 'default',\n\n /**\n * @api private\n */\n configOptInEnv: 'AWS_SDK_LOAD_CONFIG',\n\n /**\n * @api private\n */\n sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE',\n\n /**\n * @api private\n */\n sharedConfigFileEnv: 'AWS_CONFIG_FILE',\n\n /**\n * @api private\n */\n imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED'\n};\n\n/**\n * @api private\n */\nmodule.exports = util;\n","var util = require('../util');\nvar Shape = require('../model/shape');\n\nfunction DomXmlParser() { }\n\nDomXmlParser.prototype.parse = function(xml, shape) {\n if (xml.replace(/^\\s+/, '') === '') return {};\n\n var result, error;\n try {\n if (window.DOMParser) {\n try {\n var parser = new DOMParser();\n result = parser.parseFromString(xml, 'text/xml');\n } catch (syntaxError) {\n throw util.error(new Error('Parse error in document'),\n {\n originalError: syntaxError,\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n if (result.documentElement === null) {\n throw util.error(new Error('Cannot parse empty document.'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n var isError = result.getElementsByTagName('parsererror')[0];\n if (isError && (isError.parentNode === result ||\n isError.parentNode.nodeName === 'body' ||\n isError.parentNode.parentNode === result ||\n isError.parentNode.parentNode.nodeName === 'body')) {\n var errorElement = isError.getElementsByTagName('div')[0] || isError;\n throw util.error(new Error(errorElement.textContent || 'Parser error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else if (window.ActiveXObject) {\n result = new window.ActiveXObject('Microsoft.XMLDOM');\n result.async = false;\n\n if (!result.loadXML(xml)) {\n throw util.error(new Error('Parse error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else {\n throw new Error('Cannot load XML parser');\n }\n } catch (e) {\n error = e;\n }\n\n if (result && result.documentElement && !error) {\n var data = parseXml(result.documentElement, shape);\n var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata');\n if (metadata) {\n data.ResponseMetadata = parseXml(metadata, {});\n }\n return data;\n } else if (error) {\n throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});\n } else { // empty xml document\n return {};\n }\n};\n\nfunction getElementByTagName(xml, tag) {\n var elements = xml.getElementsByTagName(tag);\n for (var i = 0, iLen = elements.length; i < iLen; i++) {\n if (elements[i].parentNode === xml) {\n return elements[i];\n }\n }\n}\n\nfunction parseXml(xml, shape) {\n if (!shape) shape = {};\n switch (shape.type) {\n case 'structure': return parseStructure(xml, shape);\n case 'map': return parseMap(xml, shape);\n case 'list': return parseList(xml, shape);\n case undefined: case null: return parseUnknown(xml);\n default: return parseScalar(xml, shape);\n }\n}\n\nfunction parseStructure(xml, shape) {\n var data = {};\n if (xml === null) return data;\n\n util.each(shape.members, function(memberName, memberShape) {\n if (memberShape.isXmlAttribute) {\n if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) {\n var value = xml.attributes[memberShape.name].value;\n data[memberName] = parseXml({textContent: value}, memberShape);\n }\n } else {\n var xmlChild = memberShape.flattened ? xml :\n getElementByTagName(xml, memberShape.name);\n if (xmlChild) {\n data[memberName] = parseXml(xmlChild, memberShape);\n } else if (\n !memberShape.flattened &&\n memberShape.type === 'list' &&\n !shape.api.xmlNoDefaultLists) {\n data[memberName] = memberShape.defaultValue;\n }\n }\n });\n\n return data;\n}\n\nfunction parseMap(xml, shape) {\n var data = {};\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n var tagName = shape.flattened ? shape.name : 'entry';\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n var key = getElementByTagName(child, xmlKey).textContent;\n var value = getElementByTagName(child, xmlValue);\n data[key] = parseXml(value, shape.value);\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseList(xml, shape) {\n var data = [];\n var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n data.push(parseXml(child, shape.member));\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseScalar(xml, shape) {\n if (xml.getAttribute) {\n var encoding = xml.getAttribute('encoding');\n if (encoding === 'base64') {\n shape = new Shape.create({type: encoding});\n }\n }\n\n var text = xml.textContent;\n if (text === '') text = null;\n if (typeof shape.toType === 'function') {\n return shape.toType(text);\n } else {\n return text;\n }\n}\n\nfunction parseUnknown(xml) {\n if (xml === undefined || xml === null) return '';\n\n // empty object\n if (!xml.firstElementChild) {\n if (xml.parentNode.parentNode === null) return {};\n if (xml.childNodes.length === 0) return '';\n else return xml.textContent;\n }\n\n // object, parse as structure\n var shape = {type: 'structure', members: {}};\n var child = xml.firstElementChild;\n while (child) {\n var tag = child.nodeName;\n if (Object.prototype.hasOwnProperty.call(shape.members, tag)) {\n // multiple tags of the same name makes it a list\n shape.members[tag].type = 'list';\n } else {\n shape.members[tag] = {name: tag};\n }\n child = child.nextElementSibling;\n }\n return parseStructure(xml, shape);\n}\n\n/**\n * @api private\n */\nmodule.exports = DomXmlParser;\n","var util = require('../util');\nvar XmlNode = require('./xml-node').XmlNode;\nvar XmlText = require('./xml-text').XmlText;\n\nfunction XmlBuilder() { }\n\nXmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) {\n var xml = new XmlNode(rootElement);\n applyNamespaces(xml, shape, true);\n serialize(xml, params, shape);\n return xml.children.length > 0 || noEmpty ? xml.toString() : '';\n};\n\nfunction serialize(xml, value, shape) {\n switch (shape.type) {\n case 'structure': return serializeStructure(xml, value, shape);\n case 'map': return serializeMap(xml, value, shape);\n case 'list': return serializeList(xml, value, shape);\n default: return serializeScalar(xml, value, shape);\n }\n}\n\nfunction serializeStructure(xml, params, shape) {\n util.arrayEach(shape.memberNames, function(memberName) {\n var memberShape = shape.members[memberName];\n if (memberShape.location !== 'body') return;\n\n var value = params[memberName];\n var name = memberShape.name;\n if (value !== undefined && value !== null) {\n if (memberShape.isXmlAttribute) {\n xml.addAttribute(name, value);\n } else if (memberShape.flattened) {\n serialize(xml, value, memberShape);\n } else {\n var element = new XmlNode(name);\n xml.addChildNode(element);\n applyNamespaces(element, memberShape);\n serialize(element, value, memberShape);\n }\n }\n });\n}\n\nfunction serializeMap(xml, map, shape) {\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n\n util.each(map, function(key, value) {\n var entry = new XmlNode(shape.flattened ? shape.name : 'entry');\n xml.addChildNode(entry);\n\n var entryKey = new XmlNode(xmlKey);\n var entryValue = new XmlNode(xmlValue);\n entry.addChildNode(entryKey);\n entry.addChildNode(entryValue);\n\n serialize(entryKey, key, shape.key);\n serialize(entryValue, value, shape.value);\n });\n}\n\nfunction serializeList(xml, list, shape) {\n if (shape.flattened) {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || shape.name;\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n } else {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || 'member';\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n }\n}\n\nfunction serializeScalar(xml, value, shape) {\n xml.addChildNode(\n new XmlText(shape.toWireFormat(value))\n );\n}\n\nfunction applyNamespaces(xml, shape, isRoot) {\n var uri, prefix = 'xmlns';\n if (shape.xmlNamespaceUri) {\n uri = shape.xmlNamespaceUri;\n if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix;\n } else if (isRoot && shape.api.xmlNamespaceUri) {\n uri = shape.api.xmlNamespaceUri;\n }\n\n if (uri) xml.addAttribute(prefix, uri);\n}\n\n/**\n * @api private\n */\nmodule.exports = XmlBuilder;\n","/**\n * Escapes characters that can not be in an XML attribute.\n */\nfunction escapeAttribute(value) {\n return value.replace(/&/g, '&').replace(/'/g, ''').replace(//g, '>').replace(/\"/g, '"');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeAttribute: escapeAttribute\n};\n","/**\n * Escapes characters that can not be in an XML element.\n */\nfunction escapeElement(value) {\n return value.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\\r/g, ' ')\n .replace(/\\n/g, ' ')\n .replace(/\\u0085/g, '…')\n .replace(/\\u2028/, '
');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeElement: escapeElement\n};\n","var escapeAttribute = require('./escape-attribute').escapeAttribute;\n\n/**\n * Represents an XML node.\n * @api private\n */\nfunction XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n}\nXmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n};\nXmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n};\nXmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n};\nXmlNode.prototype.toString = function () {\n var hasChildren = Boolean(this.children.length);\n var xmlText = '<' + this.name;\n // add attributes\n var attributes = this.attributes;\n for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {\n var attributeName = attributeNames[i];\n var attribute = attributes[attributeName];\n if (typeof attribute !== 'undefined' && attribute !== null) {\n xmlText += ' ' + attributeName + '=\\\"' + escapeAttribute('' + attribute) + '\\\"';\n }\n }\n return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + '';\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlNode: XmlNode\n};\n","var escapeElement = require('./escape-element').escapeElement;\n\n/**\n * Represents an XML text value.\n * @api private\n */\nfunction XmlText(value) {\n this.value = value;\n}\n\nXmlText.prototype.toString = function () {\n return escapeElement('' + this.value);\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlText: XmlText\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nvar _default = bytesToUuid;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var i;\n var x;\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n var hex;\n\n for (i = 0; i < length32; i += 8) {\n x = input[i >> 5] >>> i % 32 & 0xff;\n hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[(len + 64 >>> 9 << 4) + 14] = len;\n var i;\n var olda;\n var oldb;\n var oldc;\n var oldd;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n var i;\n var output = [];\n output[(input.length >> 2) - 1] = undefined;\n\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0;\n }\n\n var length8 = input.length * 8;\n\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nfunction rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var i = 0; i < N; i++) {\n M[i] = new Array(16);\n\n for (var j = 0; j < 16; j++) {\n M[i][j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var i = 0; i < N; i++) {\n var W = new Array(80);\n\n for (var t = 0; t < 16; t++) W[t] = M[i][t];\n\n for (var t = 16; t < 80; t++) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var t = 0; t < 80; t++) {\n var s = Math.floor(t / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : (0, _bytesToUuid.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction uuidToBytes(uuid) {\n // Note: We assume we're being passed a valid uuid string\n var bytes = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) {\n bytes.push(parseInt(hex, 16));\n });\n return bytes;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = new Array(str.length);\n\n for (var i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n var generateUUID = function (value, namespace, buf, offset) {\n var off = buf && offset || 0;\n if (typeof value == 'string') value = stringToBytes(value);\n if (typeof namespace == 'string') namespace = uuidToBytes(namespace);\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); // Per 4.3\n\n var bytes = hashfunc(namespace.concat(value));\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n for (var idx = 0; idx < 16; ++idx) {\n buf[off + idx] = bytes[idx];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(bytes);\n }; // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name;\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n\n var rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRU_1 = require(\"./utils/LRU\");\nvar CACHE_SIZE = 1000;\n/**\n * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache]\n */\nvar EndpointCache = /** @class */ (function () {\n function EndpointCache(maxSize) {\n if (maxSize === void 0) { maxSize = CACHE_SIZE; }\n this.maxSize = maxSize;\n this.cache = new LRU_1.LRUCache(maxSize);\n }\n ;\n Object.defineProperty(EndpointCache.prototype, \"size\", {\n get: function () {\n return this.cache.length;\n },\n enumerable: true,\n configurable: true\n });\n EndpointCache.prototype.put = function (key, value) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var endpointRecord = this.populateValue(value);\n this.cache.put(keyString, endpointRecord);\n };\n EndpointCache.prototype.get = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var now = Date.now();\n var records = this.cache.get(keyString);\n if (records) {\n for (var i = records.length-1; i >= 0; i--) {\n var record = records[i];\n if (record.Expire < now) {\n records.splice(i, 1);\n }\n }\n if (records.length === 0) {\n this.cache.remove(keyString);\n return undefined;\n }\n }\n return records;\n };\n EndpointCache.getKeyString = function (key) {\n var identifiers = [];\n var identifierNames = Object.keys(key).sort();\n for (var i = 0; i < identifierNames.length; i++) {\n var identifierName = identifierNames[i];\n if (key[identifierName] === undefined)\n continue;\n identifiers.push(key[identifierName]);\n }\n return identifiers.join(' ');\n };\n EndpointCache.prototype.populateValue = function (endpoints) {\n var now = Date.now();\n return endpoints.map(function (endpoint) { return ({\n Address: endpoint.Address || '',\n Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000\n }); });\n };\n EndpointCache.prototype.empty = function () {\n this.cache.empty();\n };\n EndpointCache.prototype.remove = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n this.cache.remove(keyString);\n };\n return EndpointCache;\n}());\nexports.EndpointCache = EndpointCache;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedListNode = /** @class */ (function () {\n function LinkedListNode(key, value) {\n this.key = key;\n this.value = value;\n }\n return LinkedListNode;\n}());\nvar LRUCache = /** @class */ (function () {\n function LRUCache(size) {\n this.nodeMap = {};\n this.size = 0;\n if (typeof size !== 'number' || size < 1) {\n throw new Error('Cache size can only be positive number');\n }\n this.sizeLimit = size;\n }\n Object.defineProperty(LRUCache.prototype, \"length\", {\n get: function () {\n return this.size;\n },\n enumerable: true,\n configurable: true\n });\n LRUCache.prototype.prependToList = function (node) {\n if (!this.headerNode) {\n this.tailNode = node;\n }\n else {\n this.headerNode.prev = node;\n node.next = this.headerNode;\n }\n this.headerNode = node;\n this.size++;\n };\n LRUCache.prototype.removeFromTail = function () {\n if (!this.tailNode) {\n return undefined;\n }\n var node = this.tailNode;\n var prevNode = node.prev;\n if (prevNode) {\n prevNode.next = undefined;\n }\n node.prev = undefined;\n this.tailNode = prevNode;\n this.size--;\n return node;\n };\n LRUCache.prototype.detachFromList = function (node) {\n if (this.headerNode === node) {\n this.headerNode = node.next;\n }\n if (this.tailNode === node) {\n this.tailNode = node.prev;\n }\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n node.next = undefined;\n node.prev = undefined;\n this.size--;\n };\n LRUCache.prototype.get = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n this.prependToList(node);\n return node.value;\n }\n };\n LRUCache.prototype.remove = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n LRUCache.prototype.put = function (key, value) {\n if (this.nodeMap[key]) {\n this.remove(key);\n }\n else if (this.size === this.sizeLimit) {\n var tailNode = this.removeFromTail();\n var key_1 = tailNode.key;\n delete this.nodeMap[key_1];\n }\n var newNode = new LinkedListNode(key, value);\n this.nodeMap[key] = newNode;\n this.prependToList(newNode);\n };\n LRUCache.prototype.empty = function () {\n var keys = Object.keys(this.nodeMap);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n return LRUCache;\n}());\nexports.LRUCache = LRUCache;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports[\"facebook-login-react-component\"]=t(require(\"react\")):e[\"facebook-login-react-component\"]=t(e.React)}(self,(function(e){return(()=>{var t={41:(e,t,o)=>{\"use strict\";o.r(t),o.d(t,{FacebookLogin:()=>l,FacebookLoginWithButton:()=>f});var n=o(383),r=o.n(n),i=o(697),s=o.n(i);const a=()=>{let e=!1;try{e=!!(window.navigator&&window.navigator.standalone||navigator.userAgent.match(\"CriOS\")||navigator.userAgent.match(/mobile/i))}catch(e){}return e},c=({appId:e,render:t,autoLoad:o,callback:r,onFailure:i=null,scope:s=\"public_profile,email\",returnScopes:c=!1,authType:l=\"\",fields:d=\"name\",isMobile:u=a(),disableMobileRedirect:p=!1,redirectUri:f=(\"undefined\"!=typeof window?window.location.href:\"/\"),state:g=\"facebookdirect\",responseType:b=\"code\",language:y=\"en_US\",isDisabled:m=!1,xfbml:w=!1,cookie:k=!1,version:h=\"9.0\",onClick:v=null})=>{const[x,S]=(0,n.useState)(!1),[_,O]=(0,n.useState)(!1),B=(0,n.useRef)(!1),T=e=>{var t;B.current&&O(!1),e.authResponse?(t=e.authResponse,window.FB.api(\"/me\",{locale:\"en\",fields:d},(e=>{Object.assign(e,t),r(e)}))):i?i({status:e.status}):r({status:e.status})},E=e=>{\"connected\"===e.status?T(e):window.FB.login((e=>T(e)),!0)};(0,n.useEffect)((()=>{if(B.current=!0,document.getElementById(\"facebook-jssdk\"))return void S(!0);window.fbAsyncInit=()=>{window.FB.init({version:`v${h}`,appId:e,xfbml:w,cookie:k}),B.current&&S(!0),(o||(()=>{const e=new URLSearchParams(window.location.search);return\"facebookdirect\"===e.get(\"state\")&&(e.get(\"code\")||e.get(\"granted_scopes\"))})())&&window.FB.getLoginStatus(E)},((e,t,o)=>{const n=e.getElementsByTagName(t)[0],r=n;let i=n;e.getElementById(o)||(i=e.createElement(t),i.id=o,i.src=`https://connect.facebook.net/${y}/sdk.js`,r.parentNode.insertBefore(i,r))})(document,\"script\",\"facebook-jssdk\");let t=document.getElementById(\"fb-root\");return t||(t=document.createElement(\"div\"),t.id=\"fb-root\",document.body.appendChild(t)),()=>{B.current=!1}}),[]),(0,n.useEffect)((()=>{x&&o&&window.FB.getLoginStatus(E)}),[o]);const j={onClick:t=>{if(x&&!_&&!m)if(O(!0),v&&(v(t),t.defaultPrevented))O(!1);else if(u&&!p){const t=new URLSearchParams({client_id:e,redirect_uri:f,state:g,return_scopes:c,scope:s,response_type:b,auth_type:l}).toString();window.location.href=`https://www.facebook.com/dialog/oauth?${t}`}else{if(!window.FB)return void(i&&i({status:\"facebookNotLoaded\"}));window.FB.getLoginStatus((e=>{\"connected\"===e.status?T(e):window.FB.login(T,{scope:s,return_scopes:c,auth_type:l})}))}},isDisabled:m,isProcessing:_,isSdkLoaded:x};if(!t)throw new Error(\"ReactFacebookLogin requires a render proper to render\");return t(j)};c.propTypes={appId:s().string.isRequired,render:s().func.isRequired,autoLoad:s().bool.isRequired,callback:s().func.isRequired,onFailure:s().func,scope:s().string,returnScopes:s().bool,authType:s().string,fields:s().string,isMobile:s().bool,disableMobileRedirect:s().bool,redirectUri:s().string,state:s().string,responseType:s().string,language:s().string,isDisabled:s().bool,xfbml:s().bool,cookie:s().bool,version:s().string,onClick:s().func};const l=c;var d=o(537);function u(){return(u=Object.assign||function(e){for(var t=1;t{const t=()=>\"kep-login-facebook\"===e.cssClass&&r().createElement(\"style\",{dangerouslySetInnerHTML:{__html:d.Z}}),o=o=>{const{isProcessing:n,isSdkLoaded:r,isDisabled:i}=o;return(n||!r||i)&&(t.opacity=.6),Object.assign({transition:\"opacity 0.5s\"},e.containerStyle)};return r().createElement(l,u({},e,{render:n=>(n=>{const{cssClass:i,size:s,icon:a,textButton:c,typeButton:l,buttonStyle:d}=e,{onClick:p,isDisabled:f}=n,g=\"string\"==typeof a,b={};var y;return f&&(y=e.tag,[\"button\",\"input\",\"select\",\"textarea\",\"optgroup\",\"option\",\"fieldset\"].indexOf(y.toLowerCase())>=0)&&(b.disabled=!0),r().createElement(\"span\",{style:o(n)},g&&r().createElement(\"link\",{rel:\"stylesheet\",href:\"https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css\"}),r().createElement(e.tag,u({type:l,className:`${i} ${s}`,style:d,onClick:p},b),a&&g&&r().createElement(\"i\",{className:`fa ${a}`}),a&&!g&&a,c),t())})(n)}))};p.defaultProps={textButton:\"Login with Facebook\",typeButton:\"button\",size:\"metro\",fields:\"name\",cssClass:\"kep-login-facebook\",tag:\"button\",buttonStyle:{},containerStyle:{},icon:null},p.propTypes={textButton:s().string,typeButton:s().string,size:s().string,cssClass:s().string,icon:s().any,fields:s().string,containerStyle:s().objectOf(s().any),buttonStyle:s().objectOf(s().any),tag:s().oneOfType([s().node,s().func])};const f=p},537:(e,t,o)=>{\"use strict\";o.d(t,{Z:()=>i});var n=o(645),r=o.n(n)()((function(e){return e[1]}));r.push([e.id,'.kep-login-facebook{font-family:\"Helvetica\",sans-serif;font-weight:bold;-webkit-font-smoothing:antialiased;border-width:calc(0.0688705234vw + 0.6776859504px);border-style:solid;color:#fff;cursor:pointer;display:inline-block;font-size:calc(0.2754820937vw + 12.7107438017px);text-decoration:none;transition:background-color .3s,border-color .3s;background-color:#1877f2;border-color:#1877f2;padding:calc(0.3443526171vw + 13.3884297521px) calc(0.3443526171vw + 18.3884297521px)}.kep-login-facebook.small{padding:calc(0.3443526171vw + 3.3884297521px) calc(0.3443526171vw + 8.3884297521px)}.kep-login-facebook.medium{padding:calc(0.3443526171vw + 8.3884297521px) calc(0.3443526171vw + 13.3884297521px)}.kep-login-facebook.metro{border-radius:0}.kep-login-facebook .fa{margin-right:calc(0.3443526171vw + 3.3884297521px)}',\"\"]);const i=r},645:e=>{\"use strict\";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var o=e(t);return t[2]?\"@media \".concat(t[2],\" {\").concat(o,\"}\"):o})).join(\"\")},t.i=function(e,o,n){\"string\"==typeof e&&(e=[[null,e,\"\"]]);var r={};if(n)for(var i=0;i{\"use strict\";var n=o(414);function r(){}function i(){}i.resetWarningCache=r,e.exports=function(){function e(e,t,o,r,i,s){if(s!==n){var a=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw a.name=\"Invariant Violation\",a}}function t(){return e}e.isRequired=e;var o={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return o.PropTypes=o,o}},697:(e,t,o)=>{e.exports=o(703)()},414:e=>{\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},383:t=>{\"use strict\";t.exports=e}},o={};function n(e){if(o[e])return o[e].exports;var r=o[e]={id:e,exports:{}};return t[e](r,r.exports,n),r.exports}return n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n(41)})()}));","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","(function(exports) {\n \"use strict\";\n\n function isArray(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n } else {\n return false;\n }\n }\n\n function isObject(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n } else {\n return false;\n }\n }\n\n function strictDeepEqual(first, second) {\n // Check the scalar case first.\n if (first === second) {\n return true;\n }\n\n // Check if they are the same type.\n var firstType = Object.prototype.toString.call(first);\n if (firstType !== Object.prototype.toString.call(second)) {\n return false;\n }\n // We know that first and second have the same type so we can just check the\n // first type from now on.\n if (isArray(first) === true) {\n // Short circuit if they're not the same length;\n if (first.length !== second.length) {\n return false;\n }\n for (var i = 0; i < first.length; i++) {\n if (strictDeepEqual(first[i], second[i]) === false) {\n return false;\n }\n }\n return true;\n }\n if (isObject(first) === true) {\n // An object is equal if it has the same key/value pairs.\n var keysSeen = {};\n for (var key in first) {\n if (hasOwnProperty.call(first, key)) {\n if (strictDeepEqual(first[key], second[key]) === false) {\n return false;\n }\n keysSeen[key] = true;\n }\n }\n // Now check that there aren't any keys in second that weren't\n // in first.\n for (var key2 in second) {\n if (hasOwnProperty.call(second, key2)) {\n if (keysSeen[key2] !== true) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n }\n\n function isFalse(obj) {\n // From the spec:\n // A false value corresponds to the following values:\n // Empty list\n // Empty object\n // Empty string\n // False boolean\n // null value\n\n // First check the scalar values.\n if (obj === \"\" || obj === false || obj === null) {\n return true;\n } else if (isArray(obj) && obj.length === 0) {\n // Check for an empty array.\n return true;\n } else if (isObject(obj)) {\n // Check for an empty object.\n for (var key in obj) {\n // If there are any keys, then\n // the object is not empty so the object\n // is not false.\n if (obj.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n }\n\n function objValues(obj) {\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n }\n\n function merge(a, b) {\n var merged = {};\n for (var key in a) {\n merged[key] = a[key];\n }\n for (var key2 in b) {\n merged[key2] = b[key2];\n }\n return merged;\n }\n\n var trimLeft;\n if (typeof String.prototype.trimLeft === \"function\") {\n trimLeft = function(str) {\n return str.trimLeft();\n };\n } else {\n trimLeft = function(str) {\n return str.match(/^\\s*(.*)/)[1];\n };\n }\n\n // Type constants used to define functions.\n var TYPE_NUMBER = 0;\n var TYPE_ANY = 1;\n var TYPE_STRING = 2;\n var TYPE_ARRAY = 3;\n var TYPE_OBJECT = 4;\n var TYPE_BOOLEAN = 5;\n var TYPE_EXPREF = 6;\n var TYPE_NULL = 7;\n var TYPE_ARRAY_NUMBER = 8;\n var TYPE_ARRAY_STRING = 9;\n var TYPE_NAME_TABLE = {\n 0: 'number',\n 1: 'any',\n 2: 'string',\n 3: 'array',\n 4: 'object',\n 5: 'boolean',\n 6: 'expression',\n 7: 'null',\n 8: 'Array',\n 9: 'Array'\n };\n\n var TOK_EOF = \"EOF\";\n var TOK_UNQUOTEDIDENTIFIER = \"UnquotedIdentifier\";\n var TOK_QUOTEDIDENTIFIER = \"QuotedIdentifier\";\n var TOK_RBRACKET = \"Rbracket\";\n var TOK_RPAREN = \"Rparen\";\n var TOK_COMMA = \"Comma\";\n var TOK_COLON = \"Colon\";\n var TOK_RBRACE = \"Rbrace\";\n var TOK_NUMBER = \"Number\";\n var TOK_CURRENT = \"Current\";\n var TOK_EXPREF = \"Expref\";\n var TOK_PIPE = \"Pipe\";\n var TOK_OR = \"Or\";\n var TOK_AND = \"And\";\n var TOK_EQ = \"EQ\";\n var TOK_GT = \"GT\";\n var TOK_LT = \"LT\";\n var TOK_GTE = \"GTE\";\n var TOK_LTE = \"LTE\";\n var TOK_NE = \"NE\";\n var TOK_FLATTEN = \"Flatten\";\n var TOK_STAR = \"Star\";\n var TOK_FILTER = \"Filter\";\n var TOK_DOT = \"Dot\";\n var TOK_NOT = \"Not\";\n var TOK_LBRACE = \"Lbrace\";\n var TOK_LBRACKET = \"Lbracket\";\n var TOK_LPAREN= \"Lparen\";\n var TOK_LITERAL= \"Literal\";\n\n // The \"&\", \"[\", \"<\", \">\" tokens\n // are not in basicToken because\n // there are two token variants\n // (\"&&\", \"[?\", \"<=\", \">=\"). This is specially handled\n // below.\n\n var basicTokens = {\n \".\": TOK_DOT,\n \"*\": TOK_STAR,\n \",\": TOK_COMMA,\n \":\": TOK_COLON,\n \"{\": TOK_LBRACE,\n \"}\": TOK_RBRACE,\n \"]\": TOK_RBRACKET,\n \"(\": TOK_LPAREN,\n \")\": TOK_RPAREN,\n \"@\": TOK_CURRENT\n };\n\n var operatorStartToken = {\n \"<\": true,\n \">\": true,\n \"=\": true,\n \"!\": true\n };\n\n var skipChars = {\n \" \": true,\n \"\\t\": true,\n \"\\n\": true\n };\n\n\n function isAlpha(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n ch === \"_\";\n }\n\n function isNum(ch) {\n return (ch >= \"0\" && ch <= \"9\") ||\n ch === \"-\";\n }\n function isAlphaNum(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n (ch >= \"0\" && ch <= \"9\") ||\n ch === \"_\";\n }\n\n function Lexer() {\n }\n Lexer.prototype = {\n tokenize: function(stream) {\n var tokens = [];\n this._current = 0;\n var start;\n var identifier;\n var token;\n while (this._current < stream.length) {\n if (isAlpha(stream[this._current])) {\n start = this._current;\n identifier = this._consumeUnquotedIdentifier(stream);\n tokens.push({type: TOK_UNQUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (basicTokens[stream[this._current]] !== undefined) {\n tokens.push({type: basicTokens[stream[this._current]],\n value: stream[this._current],\n start: this._current});\n this._current++;\n } else if (isNum(stream[this._current])) {\n token = this._consumeNumber(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"[\") {\n // No need to increment this._current. This happens\n // in _consumeLBracket\n token = this._consumeLBracket(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"\\\"\") {\n start = this._current;\n identifier = this._consumeQuotedIdentifier(stream);\n tokens.push({type: TOK_QUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"'\") {\n start = this._current;\n identifier = this._consumeRawStringLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"`\") {\n start = this._current;\n var literal = this._consumeLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: literal,\n start: start});\n } else if (operatorStartToken[stream[this._current]] !== undefined) {\n tokens.push(this._consumeOperator(stream));\n } else if (skipChars[stream[this._current]] !== undefined) {\n // Ignore whitespace.\n this._current++;\n } else if (stream[this._current] === \"&\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"&\") {\n this._current++;\n tokens.push({type: TOK_AND, value: \"&&\", start: start});\n } else {\n tokens.push({type: TOK_EXPREF, value: \"&\", start: start});\n }\n } else if (stream[this._current] === \"|\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"|\") {\n this._current++;\n tokens.push({type: TOK_OR, value: \"||\", start: start});\n } else {\n tokens.push({type: TOK_PIPE, value: \"|\", start: start});\n }\n } else {\n var error = new Error(\"Unknown character:\" + stream[this._current]);\n error.name = \"LexerError\";\n throw error;\n }\n }\n return tokens;\n },\n\n _consumeUnquotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n while (this._current < stream.length && isAlphaNum(stream[this._current])) {\n this._current++;\n }\n return stream.slice(start, this._current);\n },\n\n _consumeQuotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"\\\"\" && this._current < maxLength) {\n // You can escape a double quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"\\\"\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n return JSON.parse(stream.slice(start, this._current));\n },\n\n _consumeRawStringLiteral: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"'\" && this._current < maxLength) {\n // You can escape a single quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"'\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n var literal = stream.slice(start + 1, this._current - 1);\n return literal.replace(\"\\\\'\", \"'\");\n },\n\n _consumeNumber: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (isNum(stream[this._current]) && this._current < maxLength) {\n this._current++;\n }\n var value = parseInt(stream.slice(start, this._current));\n return {type: TOK_NUMBER, value: value, start: start};\n },\n\n _consumeLBracket: function(stream) {\n var start = this._current;\n this._current++;\n if (stream[this._current] === \"?\") {\n this._current++;\n return {type: TOK_FILTER, value: \"[?\", start: start};\n } else if (stream[this._current] === \"]\") {\n this._current++;\n return {type: TOK_FLATTEN, value: \"[]\", start: start};\n } else {\n return {type: TOK_LBRACKET, value: \"[\", start: start};\n }\n },\n\n _consumeOperator: function(stream) {\n var start = this._current;\n var startingChar = stream[start];\n this._current++;\n if (startingChar === \"!\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_NE, value: \"!=\", start: start};\n } else {\n return {type: TOK_NOT, value: \"!\", start: start};\n }\n } else if (startingChar === \"<\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_LTE, value: \"<=\", start: start};\n } else {\n return {type: TOK_LT, value: \"<\", start: start};\n }\n } else if (startingChar === \">\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_GTE, value: \">=\", start: start};\n } else {\n return {type: TOK_GT, value: \">\", start: start};\n }\n } else if (startingChar === \"=\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_EQ, value: \"==\", start: start};\n }\n }\n },\n\n _consumeLiteral: function(stream) {\n this._current++;\n var start = this._current;\n var maxLength = stream.length;\n var literal;\n while(stream[this._current] !== \"`\" && this._current < maxLength) {\n // You can escape a literal char or you can escape the escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"`\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n var literalString = trimLeft(stream.slice(start, this._current));\n literalString = literalString.replace(\"\\\\`\", \"`\");\n if (this._looksLikeJSON(literalString)) {\n literal = JSON.parse(literalString);\n } else {\n // Try to JSON parse it as \"\"\n literal = JSON.parse(\"\\\"\" + literalString + \"\\\"\");\n }\n // +1 gets us to the ending \"`\", +1 to move on to the next char.\n this._current++;\n return literal;\n },\n\n _looksLikeJSON: function(literalString) {\n var startingChars = \"[{\\\"\";\n var jsonLiterals = [\"true\", \"false\", \"null\"];\n var numberLooking = \"-0123456789\";\n\n if (literalString === \"\") {\n return false;\n } else if (startingChars.indexOf(literalString[0]) >= 0) {\n return true;\n } else if (jsonLiterals.indexOf(literalString) >= 0) {\n return true;\n } else if (numberLooking.indexOf(literalString[0]) >= 0) {\n try {\n JSON.parse(literalString);\n return true;\n } catch (ex) {\n return false;\n }\n } else {\n return false;\n }\n }\n };\n\n var bindingPower = {};\n bindingPower[TOK_EOF] = 0;\n bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_QUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_RBRACKET] = 0;\n bindingPower[TOK_RPAREN] = 0;\n bindingPower[TOK_COMMA] = 0;\n bindingPower[TOK_RBRACE] = 0;\n bindingPower[TOK_NUMBER] = 0;\n bindingPower[TOK_CURRENT] = 0;\n bindingPower[TOK_EXPREF] = 0;\n bindingPower[TOK_PIPE] = 1;\n bindingPower[TOK_OR] = 2;\n bindingPower[TOK_AND] = 3;\n bindingPower[TOK_EQ] = 5;\n bindingPower[TOK_GT] = 5;\n bindingPower[TOK_LT] = 5;\n bindingPower[TOK_GTE] = 5;\n bindingPower[TOK_LTE] = 5;\n bindingPower[TOK_NE] = 5;\n bindingPower[TOK_FLATTEN] = 9;\n bindingPower[TOK_STAR] = 20;\n bindingPower[TOK_FILTER] = 21;\n bindingPower[TOK_DOT] = 40;\n bindingPower[TOK_NOT] = 45;\n bindingPower[TOK_LBRACE] = 50;\n bindingPower[TOK_LBRACKET] = 55;\n bindingPower[TOK_LPAREN] = 60;\n\n function Parser() {\n }\n\n Parser.prototype = {\n parse: function(expression) {\n this._loadTokens(expression);\n this.index = 0;\n var ast = this.expression(0);\n if (this._lookahead(0) !== TOK_EOF) {\n var t = this._lookaheadToken(0);\n var error = new Error(\n \"Unexpected token type: \" + t.type + \", value: \" + t.value);\n error.name = \"ParserError\";\n throw error;\n }\n return ast;\n },\n\n _loadTokens: function(expression) {\n var lexer = new Lexer();\n var tokens = lexer.tokenize(expression);\n tokens.push({type: TOK_EOF, value: \"\", start: expression.length});\n this.tokens = tokens;\n },\n\n expression: function(rbp) {\n var leftToken = this._lookaheadToken(0);\n this._advance();\n var left = this.nud(leftToken);\n var currentToken = this._lookahead(0);\n while (rbp < bindingPower[currentToken]) {\n this._advance();\n left = this.led(currentToken, left);\n currentToken = this._lookahead(0);\n }\n return left;\n },\n\n _lookahead: function(number) {\n return this.tokens[this.index + number].type;\n },\n\n _lookaheadToken: function(number) {\n return this.tokens[this.index + number];\n },\n\n _advance: function() {\n this.index++;\n },\n\n nud: function(token) {\n var left;\n var right;\n var expression;\n switch (token.type) {\n case TOK_LITERAL:\n return {type: \"Literal\", value: token.value};\n case TOK_UNQUOTEDIDENTIFIER:\n return {type: \"Field\", name: token.value};\n case TOK_QUOTEDIDENTIFIER:\n var node = {type: \"Field\", name: token.value};\n if (this._lookahead(0) === TOK_LPAREN) {\n throw new Error(\"Quoted identifier not allowed for function names.\");\n }\n return node;\n case TOK_NOT:\n right = this.expression(bindingPower.Not);\n return {type: \"NotExpression\", children: [right]};\n case TOK_STAR:\n left = {type: \"Identity\"};\n right = null;\n if (this._lookahead(0) === TOK_RBRACKET) {\n // This can happen in a multiselect,\n // [a, b, *]\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Star);\n }\n return {type: \"ValueProjection\", children: [left, right]};\n case TOK_FILTER:\n return this.led(token.type, {type: \"Identity\"});\n case TOK_LBRACE:\n return this._parseMultiselectHash();\n case TOK_FLATTEN:\n left = {type: TOK_FLATTEN, children: [{type: \"Identity\"}]};\n right = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [left, right]};\n case TOK_LBRACKET:\n if (this._lookahead(0) === TOK_NUMBER || this._lookahead(0) === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice({type: \"Identity\"}, right);\n } else if (this._lookahead(0) === TOK_STAR &&\n this._lookahead(1) === TOK_RBRACKET) {\n this._advance();\n this._advance();\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\",\n children: [{type: \"Identity\"}, right]};\n }\n return this._parseMultiselectList();\n case TOK_CURRENT:\n return {type: TOK_CURRENT};\n case TOK_EXPREF:\n expression = this.expression(bindingPower.Expref);\n return {type: \"ExpressionReference\", children: [expression]};\n case TOK_LPAREN:\n var args = [];\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n return args[0];\n default:\n this._errorToken(token);\n }\n },\n\n led: function(tokenName, left) {\n var right;\n switch(tokenName) {\n case TOK_DOT:\n var rbp = bindingPower.Dot;\n if (this._lookahead(0) !== TOK_STAR) {\n right = this._parseDotRHS(rbp);\n return {type: \"Subexpression\", children: [left, right]};\n }\n // Creating a projection.\n this._advance();\n right = this._parseProjectionRHS(rbp);\n return {type: \"ValueProjection\", children: [left, right]};\n case TOK_PIPE:\n right = this.expression(bindingPower.Pipe);\n return {type: TOK_PIPE, children: [left, right]};\n case TOK_OR:\n right = this.expression(bindingPower.Or);\n return {type: \"OrExpression\", children: [left, right]};\n case TOK_AND:\n right = this.expression(bindingPower.And);\n return {type: \"AndExpression\", children: [left, right]};\n case TOK_LPAREN:\n var name = left.name;\n var args = [];\n var expression, node;\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n node = {type: \"Function\", name: name, children: args};\n return node;\n case TOK_FILTER:\n var condition = this.expression(0);\n this._match(TOK_RBRACKET);\n if (this._lookahead(0) === TOK_FLATTEN) {\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Filter);\n }\n return {type: \"FilterProjection\", children: [left, right, condition]};\n case TOK_FLATTEN:\n var leftNode = {type: TOK_FLATTEN, children: [left]};\n var rightNode = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [leftNode, rightNode]};\n case TOK_EQ:\n case TOK_NE:\n case TOK_GT:\n case TOK_GTE:\n case TOK_LT:\n case TOK_LTE:\n return this._parseComparator(left, tokenName);\n case TOK_LBRACKET:\n var token = this._lookaheadToken(0);\n if (token.type === TOK_NUMBER || token.type === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice(left, right);\n }\n this._match(TOK_STAR);\n this._match(TOK_RBRACKET);\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\", children: [left, right]};\n default:\n this._errorToken(this._lookaheadToken(0));\n }\n },\n\n _match: function(tokenType) {\n if (this._lookahead(0) === tokenType) {\n this._advance();\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Expected \" + tokenType + \", got: \" + t.type);\n error.name = \"ParserError\";\n throw error;\n }\n },\n\n _errorToken: function(token) {\n var error = new Error(\"Invalid token (\" +\n token.type + \"): \\\"\" +\n token.value + \"\\\"\");\n error.name = \"ParserError\";\n throw error;\n },\n\n\n _parseIndexExpression: function() {\n if (this._lookahead(0) === TOK_COLON || this._lookahead(1) === TOK_COLON) {\n return this._parseSliceExpression();\n } else {\n var node = {\n type: \"Index\",\n value: this._lookaheadToken(0).value};\n this._advance();\n this._match(TOK_RBRACKET);\n return node;\n }\n },\n\n _projectIfSlice: function(left, right) {\n var indexExpr = {type: \"IndexExpression\", children: [left, right]};\n if (right.type === \"Slice\") {\n return {\n type: \"Projection\",\n children: [indexExpr, this._parseProjectionRHS(bindingPower.Star)]\n };\n } else {\n return indexExpr;\n }\n },\n\n _parseSliceExpression: function() {\n // [start:end:step] where each part is optional, as well as the last\n // colon.\n var parts = [null, null, null];\n var index = 0;\n var currentToken = this._lookahead(0);\n while (currentToken !== TOK_RBRACKET && index < 3) {\n if (currentToken === TOK_COLON) {\n index++;\n this._advance();\n } else if (currentToken === TOK_NUMBER) {\n parts[index] = this._lookaheadToken(0).value;\n this._advance();\n } else {\n var t = this._lookahead(0);\n var error = new Error(\"Syntax error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"Parsererror\";\n throw error;\n }\n currentToken = this._lookahead(0);\n }\n this._match(TOK_RBRACKET);\n return {\n type: \"Slice\",\n children: parts\n };\n },\n\n _parseComparator: function(left, comparator) {\n var right = this.expression(bindingPower[comparator]);\n return {type: \"Comparator\", name: comparator, children: [left, right]};\n },\n\n _parseDotRHS: function(rbp) {\n var lookahead = this._lookahead(0);\n var exprTokens = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER, TOK_STAR];\n if (exprTokens.indexOf(lookahead) >= 0) {\n return this.expression(rbp);\n } else if (lookahead === TOK_LBRACKET) {\n this._match(TOK_LBRACKET);\n return this._parseMultiselectList();\n } else if (lookahead === TOK_LBRACE) {\n this._match(TOK_LBRACE);\n return this._parseMultiselectHash();\n }\n },\n\n _parseProjectionRHS: function(rbp) {\n var right;\n if (bindingPower[this._lookahead(0)] < 10) {\n right = {type: \"Identity\"};\n } else if (this._lookahead(0) === TOK_LBRACKET) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_FILTER) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_DOT) {\n this._match(TOK_DOT);\n right = this._parseDotRHS(rbp);\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Sytanx error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"ParserError\";\n throw error;\n }\n return right;\n },\n\n _parseMultiselectList: function() {\n var expressions = [];\n while (this._lookahead(0) !== TOK_RBRACKET) {\n var expression = this.expression(0);\n expressions.push(expression);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n if (this._lookahead(0) === TOK_RBRACKET) {\n throw new Error(\"Unexpected token Rbracket\");\n }\n }\n }\n this._match(TOK_RBRACKET);\n return {type: \"MultiSelectList\", children: expressions};\n },\n\n _parseMultiselectHash: function() {\n var pairs = [];\n var identifierTypes = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER];\n var keyToken, keyName, value, node;\n for (;;) {\n keyToken = this._lookaheadToken(0);\n if (identifierTypes.indexOf(keyToken.type) < 0) {\n throw new Error(\"Expecting an identifier token, got: \" +\n keyToken.type);\n }\n keyName = keyToken.value;\n this._advance();\n this._match(TOK_COLON);\n value = this.expression(0);\n node = {type: \"KeyValuePair\", name: keyName, value: value};\n pairs.push(node);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n } else if (this._lookahead(0) === TOK_RBRACE) {\n this._match(TOK_RBRACE);\n break;\n }\n }\n return {type: \"MultiSelectHash\", children: pairs};\n }\n };\n\n\n function TreeInterpreter(runtime) {\n this.runtime = runtime;\n }\n\n TreeInterpreter.prototype = {\n search: function(node, value) {\n return this.visit(node, value);\n },\n\n visit: function(node, value) {\n var matched, current, result, first, second, field, left, right, collected, i;\n switch (node.type) {\n case \"Field\":\n if (value !== null && isObject(value)) {\n field = value[node.name];\n if (field === undefined) {\n return null;\n } else {\n return field;\n }\n }\n return null;\n case \"Subexpression\":\n result = this.visit(node.children[0], value);\n for (i = 1; i < node.children.length; i++) {\n result = this.visit(node.children[1], result);\n if (result === null) {\n return null;\n }\n }\n return result;\n case \"IndexExpression\":\n left = this.visit(node.children[0], value);\n right = this.visit(node.children[1], left);\n return right;\n case \"Index\":\n if (!isArray(value)) {\n return null;\n }\n var index = node.value;\n if (index < 0) {\n index = value.length + index;\n }\n result = value[index];\n if (result === undefined) {\n result = null;\n }\n return result;\n case \"Slice\":\n if (!isArray(value)) {\n return null;\n }\n var sliceParams = node.children.slice(0);\n var computed = this.computeSliceParams(value.length, sliceParams);\n var start = computed[0];\n var stop = computed[1];\n var step = computed[2];\n result = [];\n if (step > 0) {\n for (i = start; i < stop; i += step) {\n result.push(value[i]);\n }\n } else {\n for (i = start; i > stop; i += step) {\n result.push(value[i]);\n }\n }\n return result;\n case \"Projection\":\n // Evaluate left child.\n var base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n collected = [];\n for (i = 0; i < base.length; i++) {\n current = this.visit(node.children[1], base[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"ValueProjection\":\n // Evaluate left child.\n base = this.visit(node.children[0], value);\n if (!isObject(base)) {\n return null;\n }\n collected = [];\n var values = objValues(base);\n for (i = 0; i < values.length; i++) {\n current = this.visit(node.children[1], values[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"FilterProjection\":\n base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n var filtered = [];\n var finalResults = [];\n for (i = 0; i < base.length; i++) {\n matched = this.visit(node.children[2], base[i]);\n if (!isFalse(matched)) {\n filtered.push(base[i]);\n }\n }\n for (var j = 0; j < filtered.length; j++) {\n current = this.visit(node.children[1], filtered[j]);\n if (current !== null) {\n finalResults.push(current);\n }\n }\n return finalResults;\n case \"Comparator\":\n first = this.visit(node.children[0], value);\n second = this.visit(node.children[1], value);\n switch(node.name) {\n case TOK_EQ:\n result = strictDeepEqual(first, second);\n break;\n case TOK_NE:\n result = !strictDeepEqual(first, second);\n break;\n case TOK_GT:\n result = first > second;\n break;\n case TOK_GTE:\n result = first >= second;\n break;\n case TOK_LT:\n result = first < second;\n break;\n case TOK_LTE:\n result = first <= second;\n break;\n default:\n throw new Error(\"Unknown comparator: \" + node.name);\n }\n return result;\n case TOK_FLATTEN:\n var original = this.visit(node.children[0], value);\n if (!isArray(original)) {\n return null;\n }\n var merged = [];\n for (i = 0; i < original.length; i++) {\n current = original[i];\n if (isArray(current)) {\n merged.push.apply(merged, current);\n } else {\n merged.push(current);\n }\n }\n return merged;\n case \"Identity\":\n return value;\n case \"MultiSelectList\":\n if (value === null) {\n return null;\n }\n collected = [];\n for (i = 0; i < node.children.length; i++) {\n collected.push(this.visit(node.children[i], value));\n }\n return collected;\n case \"MultiSelectHash\":\n if (value === null) {\n return null;\n }\n collected = {};\n var child;\n for (i = 0; i < node.children.length; i++) {\n child = node.children[i];\n collected[child.name] = this.visit(child.value, value);\n }\n return collected;\n case \"OrExpression\":\n matched = this.visit(node.children[0], value);\n if (isFalse(matched)) {\n matched = this.visit(node.children[1], value);\n }\n return matched;\n case \"AndExpression\":\n first = this.visit(node.children[0], value);\n\n if (isFalse(first) === true) {\n return first;\n }\n return this.visit(node.children[1], value);\n case \"NotExpression\":\n first = this.visit(node.children[0], value);\n return isFalse(first);\n case \"Literal\":\n return node.value;\n case TOK_PIPE:\n left = this.visit(node.children[0], value);\n return this.visit(node.children[1], left);\n case TOK_CURRENT:\n return value;\n case \"Function\":\n var resolvedArgs = [];\n for (i = 0; i < node.children.length; i++) {\n resolvedArgs.push(this.visit(node.children[i], value));\n }\n return this.runtime.callFunction(node.name, resolvedArgs);\n case \"ExpressionReference\":\n var refNode = node.children[0];\n // Tag the node with a specific attribute so the type\n // checker verify the type.\n refNode.jmespathType = TOK_EXPREF;\n return refNode;\n default:\n throw new Error(\"Unknown node type: \" + node.type);\n }\n },\n\n computeSliceParams: function(arrayLength, sliceParams) {\n var start = sliceParams[0];\n var stop = sliceParams[1];\n var step = sliceParams[2];\n var computed = [null, null, null];\n if (step === null) {\n step = 1;\n } else if (step === 0) {\n var error = new Error(\"Invalid slice, step cannot be 0\");\n error.name = \"RuntimeError\";\n throw error;\n }\n var stepValueNegative = step < 0 ? true : false;\n\n if (start === null) {\n start = stepValueNegative ? arrayLength - 1 : 0;\n } else {\n start = this.capSliceRange(arrayLength, start, step);\n }\n\n if (stop === null) {\n stop = stepValueNegative ? -1 : arrayLength;\n } else {\n stop = this.capSliceRange(arrayLength, stop, step);\n }\n computed[0] = start;\n computed[1] = stop;\n computed[2] = step;\n return computed;\n },\n\n capSliceRange: function(arrayLength, actualValue, step) {\n if (actualValue < 0) {\n actualValue += arrayLength;\n if (actualValue < 0) {\n actualValue = step < 0 ? -1 : 0;\n }\n } else if (actualValue >= arrayLength) {\n actualValue = step < 0 ? arrayLength - 1 : arrayLength;\n }\n return actualValue;\n }\n\n };\n\n function Runtime(interpreter) {\n this._interpreter = interpreter;\n this.functionTable = {\n // name: [function, ]\n // The can be:\n //\n // {\n // args: [[type1, type2], [type1, type2]],\n // variadic: true|false\n // }\n //\n // Each arg in the arg list is a list of valid types\n // (if the function is overloaded and supports multiple\n // types. If the type is \"any\" then no type checking\n // occurs on the argument. Variadic is optional\n // and if not provided is assumed to be false.\n abs: {_func: this._functionAbs, _signature: [{types: [TYPE_NUMBER]}]},\n avg: {_func: this._functionAvg, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n ceil: {_func: this._functionCeil, _signature: [{types: [TYPE_NUMBER]}]},\n contains: {\n _func: this._functionContains,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]},\n {types: [TYPE_ANY]}]},\n \"ends_with\": {\n _func: this._functionEndsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n floor: {_func: this._functionFloor, _signature: [{types: [TYPE_NUMBER]}]},\n length: {\n _func: this._functionLength,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY, TYPE_OBJECT]}]},\n map: {\n _func: this._functionMap,\n _signature: [{types: [TYPE_EXPREF]}, {types: [TYPE_ARRAY]}]},\n max: {\n _func: this._functionMax,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"merge\": {\n _func: this._functionMerge,\n _signature: [{types: [TYPE_OBJECT], variadic: true}]\n },\n \"max_by\": {\n _func: this._functionMaxBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n sum: {_func: this._functionSum, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n \"starts_with\": {\n _func: this._functionStartsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n min: {\n _func: this._functionMin,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"min_by\": {\n _func: this._functionMinBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n type: {_func: this._functionType, _signature: [{types: [TYPE_ANY]}]},\n keys: {_func: this._functionKeys, _signature: [{types: [TYPE_OBJECT]}]},\n values: {_func: this._functionValues, _signature: [{types: [TYPE_OBJECT]}]},\n sort: {_func: this._functionSort, _signature: [{types: [TYPE_ARRAY_STRING, TYPE_ARRAY_NUMBER]}]},\n \"sort_by\": {\n _func: this._functionSortBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n join: {\n _func: this._functionJoin,\n _signature: [\n {types: [TYPE_STRING]},\n {types: [TYPE_ARRAY_STRING]}\n ]\n },\n reverse: {\n _func: this._functionReverse,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}]},\n \"to_array\": {_func: this._functionToArray, _signature: [{types: [TYPE_ANY]}]},\n \"to_string\": {_func: this._functionToString, _signature: [{types: [TYPE_ANY]}]},\n \"to_number\": {_func: this._functionToNumber, _signature: [{types: [TYPE_ANY]}]},\n \"not_null\": {\n _func: this._functionNotNull,\n _signature: [{types: [TYPE_ANY], variadic: true}]\n }\n };\n }\n\n Runtime.prototype = {\n callFunction: function(name, resolvedArgs) {\n var functionEntry = this.functionTable[name];\n if (functionEntry === undefined) {\n throw new Error(\"Unknown function: \" + name + \"()\");\n }\n this._validateArgs(name, resolvedArgs, functionEntry._signature);\n return functionEntry._func.call(this, resolvedArgs);\n },\n\n _validateArgs: function(name, args, signature) {\n // Validating the args requires validating\n // the correct arity and the correct type of each arg.\n // If the last argument is declared as variadic, then we need\n // a minimum number of args to be required. Otherwise it has to\n // be an exact amount.\n var pluralized;\n if (signature[signature.length - 1].variadic) {\n if (args.length < signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes at least\" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n } else if (args.length !== signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes \" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n var currentSpec;\n var actualType;\n var typeMatched;\n for (var i = 0; i < signature.length; i++) {\n typeMatched = false;\n currentSpec = signature[i].types;\n actualType = this._getTypeName(args[i]);\n for (var j = 0; j < currentSpec.length; j++) {\n if (this._typeMatches(actualType, currentSpec[j], args[i])) {\n typeMatched = true;\n break;\n }\n }\n if (!typeMatched) {\n var expected = currentSpec\n .map(function(typeIdentifier) {\n return TYPE_NAME_TABLE[typeIdentifier];\n })\n .join(',');\n throw new Error(\"TypeError: \" + name + \"() \" +\n \"expected argument \" + (i + 1) +\n \" to be type \" + expected +\n \" but received type \" +\n TYPE_NAME_TABLE[actualType] + \" instead.\");\n }\n }\n },\n\n _typeMatches: function(actual, expected, argValue) {\n if (expected === TYPE_ANY) {\n return true;\n }\n if (expected === TYPE_ARRAY_STRING ||\n expected === TYPE_ARRAY_NUMBER ||\n expected === TYPE_ARRAY) {\n // The expected type can either just be array,\n // or it can require a specific subtype (array of numbers).\n //\n // The simplest case is if \"array\" with no subtype is specified.\n if (expected === TYPE_ARRAY) {\n return actual === TYPE_ARRAY;\n } else if (actual === TYPE_ARRAY) {\n // Otherwise we need to check subtypes.\n // I think this has potential to be improved.\n var subtype;\n if (expected === TYPE_ARRAY_NUMBER) {\n subtype = TYPE_NUMBER;\n } else if (expected === TYPE_ARRAY_STRING) {\n subtype = TYPE_STRING;\n }\n for (var i = 0; i < argValue.length; i++) {\n if (!this._typeMatches(\n this._getTypeName(argValue[i]), subtype,\n argValue[i])) {\n return false;\n }\n }\n return true;\n }\n } else {\n return actual === expected;\n }\n },\n _getTypeName: function(obj) {\n switch (Object.prototype.toString.call(obj)) {\n case \"[object String]\":\n return TYPE_STRING;\n case \"[object Number]\":\n return TYPE_NUMBER;\n case \"[object Array]\":\n return TYPE_ARRAY;\n case \"[object Boolean]\":\n return TYPE_BOOLEAN;\n case \"[object Null]\":\n return TYPE_NULL;\n case \"[object Object]\":\n // Check if it's an expref. If it has, it's been\n // tagged with a jmespathType attr of 'Expref';\n if (obj.jmespathType === TOK_EXPREF) {\n return TYPE_EXPREF;\n } else {\n return TYPE_OBJECT;\n }\n }\n },\n\n _functionStartsWith: function(resolvedArgs) {\n return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0;\n },\n\n _functionEndsWith: function(resolvedArgs) {\n var searchStr = resolvedArgs[0];\n var suffix = resolvedArgs[1];\n return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1;\n },\n\n _functionReverse: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n if (typeName === TYPE_STRING) {\n var originalStr = resolvedArgs[0];\n var reversedStr = \"\";\n for (var i = originalStr.length - 1; i >= 0; i--) {\n reversedStr += originalStr[i];\n }\n return reversedStr;\n } else {\n var reversedArray = resolvedArgs[0].slice(0);\n reversedArray.reverse();\n return reversedArray;\n }\n },\n\n _functionAbs: function(resolvedArgs) {\n return Math.abs(resolvedArgs[0]);\n },\n\n _functionCeil: function(resolvedArgs) {\n return Math.ceil(resolvedArgs[0]);\n },\n\n _functionAvg: function(resolvedArgs) {\n var sum = 0;\n var inputArray = resolvedArgs[0];\n for (var i = 0; i < inputArray.length; i++) {\n sum += inputArray[i];\n }\n return sum / inputArray.length;\n },\n\n _functionContains: function(resolvedArgs) {\n return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0;\n },\n\n _functionFloor: function(resolvedArgs) {\n return Math.floor(resolvedArgs[0]);\n },\n\n _functionLength: function(resolvedArgs) {\n if (!isObject(resolvedArgs[0])) {\n return resolvedArgs[0].length;\n } else {\n // As far as I can tell, there's no way to get the length\n // of an object without O(n) iteration through the object.\n return Object.keys(resolvedArgs[0]).length;\n }\n },\n\n _functionMap: function(resolvedArgs) {\n var mapped = [];\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[0];\n var elements = resolvedArgs[1];\n for (var i = 0; i < elements.length; i++) {\n mapped.push(interpreter.visit(exprefNode, elements[i]));\n }\n return mapped;\n },\n\n _functionMerge: function(resolvedArgs) {\n var merged = {};\n for (var i = 0; i < resolvedArgs.length; i++) {\n var current = resolvedArgs[i];\n for (var key in current) {\n merged[key] = current[key];\n }\n }\n return merged;\n },\n\n _functionMax: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.max.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var maxElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (maxElement.localeCompare(elements[i]) < 0) {\n maxElement = elements[i];\n }\n }\n return maxElement;\n }\n } else {\n return null;\n }\n },\n\n _functionMin: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.min.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var minElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (elements[i].localeCompare(minElement) < 0) {\n minElement = elements[i];\n }\n }\n return minElement;\n }\n } else {\n return null;\n }\n },\n\n _functionSum: function(resolvedArgs) {\n var sum = 0;\n var listToSum = resolvedArgs[0];\n for (var i = 0; i < listToSum.length; i++) {\n sum += listToSum[i];\n }\n return sum;\n },\n\n _functionType: function(resolvedArgs) {\n switch (this._getTypeName(resolvedArgs[0])) {\n case TYPE_NUMBER:\n return \"number\";\n case TYPE_STRING:\n return \"string\";\n case TYPE_ARRAY:\n return \"array\";\n case TYPE_OBJECT:\n return \"object\";\n case TYPE_BOOLEAN:\n return \"boolean\";\n case TYPE_EXPREF:\n return \"expref\";\n case TYPE_NULL:\n return \"null\";\n }\n },\n\n _functionKeys: function(resolvedArgs) {\n return Object.keys(resolvedArgs[0]);\n },\n\n _functionValues: function(resolvedArgs) {\n var obj = resolvedArgs[0];\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n },\n\n _functionJoin: function(resolvedArgs) {\n var joinChar = resolvedArgs[0];\n var listJoin = resolvedArgs[1];\n return listJoin.join(joinChar);\n },\n\n _functionToArray: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) {\n return resolvedArgs[0];\n } else {\n return [resolvedArgs[0]];\n }\n },\n\n _functionToString: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) {\n return resolvedArgs[0];\n } else {\n return JSON.stringify(resolvedArgs[0]);\n }\n },\n\n _functionToNumber: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n var convertedValue;\n if (typeName === TYPE_NUMBER) {\n return resolvedArgs[0];\n } else if (typeName === TYPE_STRING) {\n convertedValue = +resolvedArgs[0];\n if (!isNaN(convertedValue)) {\n return convertedValue;\n }\n }\n return null;\n },\n\n _functionNotNull: function(resolvedArgs) {\n for (var i = 0; i < resolvedArgs.length; i++) {\n if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) {\n return resolvedArgs[i];\n }\n }\n return null;\n },\n\n _functionSort: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n sortedArray.sort();\n return sortedArray;\n },\n\n _functionSortBy: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n if (sortedArray.length === 0) {\n return sortedArray;\n }\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[1];\n var requiredType = this._getTypeName(\n interpreter.visit(exprefNode, sortedArray[0]));\n if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) {\n throw new Error(\"TypeError\");\n }\n var that = this;\n // In order to get a stable sort out of an unstable\n // sort algorithm, we decorate/sort/undecorate (DSU)\n // by creating a new list of [index, element] pairs.\n // In the cmp function, if the evaluated elements are\n // equal, then the index will be used as the tiebreaker.\n // After the decorated list has been sorted, it will be\n // undecorated to extract the original elements.\n var decorated = [];\n for (var i = 0; i < sortedArray.length; i++) {\n decorated.push([i, sortedArray[i]]);\n }\n decorated.sort(function(a, b) {\n var exprA = interpreter.visit(exprefNode, a[1]);\n var exprB = interpreter.visit(exprefNode, b[1]);\n if (that._getTypeName(exprA) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprA));\n } else if (that._getTypeName(exprB) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprB));\n }\n if (exprA > exprB) {\n return 1;\n } else if (exprA < exprB) {\n return -1;\n } else {\n // If they're equal compare the items by their\n // order to maintain relative order of equal keys\n // (i.e. to get a stable sort).\n return a[0] - b[0];\n }\n });\n // Undecorate: extract out the original list elements.\n for (var j = 0; j < decorated.length; j++) {\n sortedArray[j] = decorated[j][1];\n }\n return sortedArray;\n },\n\n _functionMaxBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var maxNumber = -Infinity;\n var maxRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current > maxNumber) {\n maxNumber = current;\n maxRecord = resolvedArray[i];\n }\n }\n return maxRecord;\n },\n\n _functionMinBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var minNumber = Infinity;\n var minRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current < minNumber) {\n minNumber = current;\n minRecord = resolvedArray[i];\n }\n }\n return minRecord;\n },\n\n createKeyFunction: function(exprefNode, allowedTypes) {\n var that = this;\n var interpreter = this._interpreter;\n var keyFunc = function(x) {\n var current = interpreter.visit(exprefNode, x);\n if (allowedTypes.indexOf(that._getTypeName(current)) < 0) {\n var msg = \"TypeError: expected one of \" + allowedTypes +\n \", received \" + that._getTypeName(current);\n throw new Error(msg);\n }\n return current;\n };\n return keyFunc;\n }\n\n };\n\n function compile(stream) {\n var parser = new Parser();\n var ast = parser.parse(stream);\n return ast;\n }\n\n function tokenize(stream) {\n var lexer = new Lexer();\n return lexer.tokenize(stream);\n }\n\n function search(data, expression) {\n var parser = new Parser();\n // This needs to be improved. Both the interpreter and runtime depend on\n // each other. The runtime needs the interpreter to support exprefs.\n // There's likely a clean way to avoid the cyclic dependency.\n var runtime = new Runtime();\n var interpreter = new TreeInterpreter(runtime);\n runtime._interpreter = interpreter;\n var node = parser.parse(expression);\n return interpreter.search(node, data);\n }\n\n exports.tokenize = tokenize;\n exports.compile = compile;\n exports.search = search;\n exports.strictDeepEqual = strictDeepEqual;\n})(typeof exports === \"undefined\" ? this.jmespath = {} : exports);\n","\nmodule.exports = function load (src, opts, cb) {\n var head = document.head || document.getElementsByTagName('head')[0]\n var script = document.createElement('script')\n\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n opts = opts || {}\n cb = cb || function() {}\n\n script.type = opts.type || 'text/javascript'\n script.charset = opts.charset || 'utf8';\n script.async = 'async' in opts ? !!opts.async : true\n script.src = src\n\n if (opts.attrs) {\n setAttributes(script, opts.attrs)\n }\n\n if (opts.text) {\n script.text = '' + opts.text\n }\n\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd\n onend(script, cb)\n\n // some good legacy browsers (firefox) fail the 'in' detection above\n // so as a fallback we always set onload\n // old IE will ignore this and new IE will set onload\n if (!script.onload) {\n stdOnEnd(script, cb);\n }\n\n head.appendChild(script)\n}\n\nfunction setAttributes(script, attrs) {\n for (var attr in attrs) {\n script.setAttribute(attr, attrs[attr]);\n }\n}\n\nfunction stdOnEnd (script, cb) {\n script.onload = function () {\n this.onerror = this.onload = null\n cb(null, script)\n }\n script.onerror = function () {\n // this.onload = null here is necessary\n // because even IE9 works not like others\n this.onerror = this.onload = null\n cb(new Error('Failed to load ' + this.src), script)\n }\n}\n\nfunction ieOnEnd (script, cb) {\n script.onreadystatechange = function () {\n if (this.readyState != 'complete' && this.readyState != 'loaded') return\n this.onreadystatechange = null\n cb(null, script) // there is no way to catch loading errors in IE8\n }\n}\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar Player_exports = {};\n__export(Player_exports, {\n default: () => Player\n});\nmodule.exports = __toCommonJS(Player_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_react_fast_compare = __toESM(require(\"react-fast-compare\"));\nvar import_props = require(\"./props\");\nvar import_utils = require(\"./utils\");\nconst SEEK_ON_PLAY_EXPIRY = 5e3;\nclass Player extends import_react.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"mounted\", false);\n __publicField(this, \"isReady\", false);\n __publicField(this, \"isPlaying\", false);\n // Track playing state internally to prevent bugs\n __publicField(this, \"isLoading\", true);\n // Use isLoading to prevent onPause when switching URL\n __publicField(this, \"loadOnReady\", null);\n __publicField(this, \"startOnPlay\", true);\n __publicField(this, \"seekOnPlay\", null);\n __publicField(this, \"onDurationCalled\", false);\n __publicField(this, \"handlePlayerMount\", (player) => {\n if (this.player) {\n this.progress();\n return;\n }\n this.player = player;\n this.player.load(this.props.url);\n this.progress();\n });\n __publicField(this, \"getInternalPlayer\", (key) => {\n if (!this.player)\n return null;\n return this.player[key];\n });\n __publicField(this, \"progress\", () => {\n if (this.props.url && this.player && this.isReady) {\n const playedSeconds = this.getCurrentTime() || 0;\n const loadedSeconds = this.getSecondsLoaded();\n const duration = this.getDuration();\n if (duration) {\n const progress = {\n playedSeconds,\n played: playedSeconds / duration\n };\n if (loadedSeconds !== null) {\n progress.loadedSeconds = loadedSeconds;\n progress.loaded = loadedSeconds / duration;\n }\n if (progress.playedSeconds !== this.prevPlayed || progress.loadedSeconds !== this.prevLoaded) {\n this.props.onProgress(progress);\n }\n this.prevPlayed = progress.playedSeconds;\n this.prevLoaded = progress.loadedSeconds;\n }\n }\n this.progressTimeout = setTimeout(this.progress, this.props.progressFrequency || this.props.progressInterval);\n });\n __publicField(this, \"handleReady\", () => {\n if (!this.mounted)\n return;\n this.isReady = true;\n this.isLoading = false;\n const { onReady, playing, volume, muted } = this.props;\n onReady();\n if (!muted && volume !== null) {\n this.player.setVolume(volume);\n }\n if (this.loadOnReady) {\n this.player.load(this.loadOnReady, true);\n this.loadOnReady = null;\n } else if (playing) {\n this.player.play();\n }\n this.handleDurationCheck();\n });\n __publicField(this, \"handlePlay\", () => {\n this.isPlaying = true;\n this.isLoading = false;\n const { onStart, onPlay, playbackRate } = this.props;\n if (this.startOnPlay) {\n if (this.player.setPlaybackRate && playbackRate !== 1) {\n this.player.setPlaybackRate(playbackRate);\n }\n onStart();\n this.startOnPlay = false;\n }\n onPlay();\n if (this.seekOnPlay) {\n this.seekTo(this.seekOnPlay);\n this.seekOnPlay = null;\n }\n this.handleDurationCheck();\n });\n __publicField(this, \"handlePause\", (e) => {\n this.isPlaying = false;\n if (!this.isLoading) {\n this.props.onPause(e);\n }\n });\n __publicField(this, \"handleEnded\", () => {\n const { activePlayer, loop, onEnded } = this.props;\n if (activePlayer.loopOnEnded && loop) {\n this.seekTo(0);\n }\n if (!loop) {\n this.isPlaying = false;\n onEnded();\n }\n });\n __publicField(this, \"handleError\", (...args) => {\n this.isLoading = false;\n this.props.onError(...args);\n });\n __publicField(this, \"handleDurationCheck\", () => {\n clearTimeout(this.durationCheckTimeout);\n const duration = this.getDuration();\n if (duration) {\n if (!this.onDurationCalled) {\n this.props.onDuration(duration);\n this.onDurationCalled = true;\n }\n } else {\n this.durationCheckTimeout = setTimeout(this.handleDurationCheck, 100);\n }\n });\n __publicField(this, \"handleLoaded\", () => {\n this.isLoading = false;\n });\n }\n componentDidMount() {\n this.mounted = true;\n }\n componentWillUnmount() {\n clearTimeout(this.progressTimeout);\n clearTimeout(this.durationCheckTimeout);\n if (this.isReady && this.props.stopOnUnmount) {\n this.player.stop();\n if (this.player.disablePIP) {\n this.player.disablePIP();\n }\n }\n this.mounted = false;\n }\n componentDidUpdate(prevProps) {\n if (!this.player) {\n return;\n }\n const { url, playing, volume, muted, playbackRate, pip, loop, activePlayer, disableDeferredLoading } = this.props;\n if (!(0, import_react_fast_compare.default)(prevProps.url, url)) {\n if (this.isLoading && !activePlayer.forceLoad && !disableDeferredLoading && !(0, import_utils.isMediaStream)(url)) {\n console.warn(`ReactPlayer: the attempt to load ${url} is being deferred until the player has loaded`);\n this.loadOnReady = url;\n return;\n }\n this.isLoading = true;\n this.startOnPlay = true;\n this.onDurationCalled = false;\n this.player.load(url, this.isReady);\n }\n if (!prevProps.playing && playing && !this.isPlaying) {\n this.player.play();\n }\n if (prevProps.playing && !playing && this.isPlaying) {\n this.player.pause();\n }\n if (!prevProps.pip && pip && this.player.enablePIP) {\n this.player.enablePIP();\n }\n if (prevProps.pip && !pip && this.player.disablePIP) {\n this.player.disablePIP();\n }\n if (prevProps.volume !== volume && volume !== null) {\n this.player.setVolume(volume);\n }\n if (prevProps.muted !== muted) {\n if (muted) {\n this.player.mute();\n } else {\n this.player.unmute();\n if (volume !== null) {\n setTimeout(() => this.player.setVolume(volume));\n }\n }\n }\n if (prevProps.playbackRate !== playbackRate && this.player.setPlaybackRate) {\n this.player.setPlaybackRate(playbackRate);\n }\n if (prevProps.loop !== loop && this.player.setLoop) {\n this.player.setLoop(loop);\n }\n }\n getDuration() {\n if (!this.isReady)\n return null;\n return this.player.getDuration();\n }\n getCurrentTime() {\n if (!this.isReady)\n return null;\n return this.player.getCurrentTime();\n }\n getSecondsLoaded() {\n if (!this.isReady)\n return null;\n return this.player.getSecondsLoaded();\n }\n seekTo(amount, type, keepPlaying) {\n if (!this.isReady) {\n if (amount !== 0) {\n this.seekOnPlay = amount;\n setTimeout(() => {\n this.seekOnPlay = null;\n }, SEEK_ON_PLAY_EXPIRY);\n }\n return;\n }\n const isFraction = !type ? amount > 0 && amount < 1 : type === \"fraction\";\n if (isFraction) {\n const duration = this.player.getDuration();\n if (!duration) {\n console.warn(\"ReactPlayer: could not seek using fraction \\u2013\\xA0duration not yet available\");\n return;\n }\n this.player.seekTo(duration * amount, keepPlaying);\n return;\n }\n this.player.seekTo(amount, keepPlaying);\n }\n render() {\n const Player2 = this.props.activePlayer;\n if (!Player2) {\n return null;\n }\n return /* @__PURE__ */ import_react.default.createElement(\n Player2,\n {\n ...this.props,\n onMount: this.handlePlayerMount,\n onReady: this.handleReady,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onEnded: this.handleEnded,\n onLoaded: this.handleLoaded,\n onError: this.handleError\n }\n );\n }\n}\n__publicField(Player, \"displayName\", \"Player\");\n__publicField(Player, \"propTypes\", import_props.propTypes);\n__publicField(Player, \"defaultProps\", import_props.defaultProps);\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar ReactPlayer_exports = {};\n__export(ReactPlayer_exports, {\n createReactPlayer: () => createReactPlayer\n});\nmodule.exports = __toCommonJS(ReactPlayer_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_deepmerge = __toESM(require(\"deepmerge\"));\nvar import_memoize_one = __toESM(require(\"memoize-one\"));\nvar import_react_fast_compare = __toESM(require(\"react-fast-compare\"));\nvar import_props = require(\"./props\");\nvar import_utils = require(\"./utils\");\nvar import_Player = __toESM(require(\"./Player\"));\nconst Preview = (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerPreview' */\n \"./Preview\"\n));\nconst IS_BROWSER = typeof window !== \"undefined\" && window.document && typeof document !== \"undefined\";\nconst IS_GLOBAL = typeof global !== \"undefined\" && global.window && global.window.document;\nconst SUPPORTED_PROPS = Object.keys(import_props.propTypes);\nconst UniversalSuspense = IS_BROWSER || IS_GLOBAL ? import_react.Suspense : () => null;\nconst customPlayers = [];\nconst createReactPlayer = (players, fallback) => {\n var _a;\n return _a = class extends import_react.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"state\", {\n showPreview: !!this.props.light\n });\n // Use references, as refs is used by React\n __publicField(this, \"references\", {\n wrapper: (wrapper) => {\n this.wrapper = wrapper;\n },\n player: (player) => {\n this.player = player;\n }\n });\n __publicField(this, \"handleClickPreview\", (e) => {\n this.setState({ showPreview: false });\n this.props.onClickPreview(e);\n });\n __publicField(this, \"showPreview\", () => {\n this.setState({ showPreview: true });\n });\n __publicField(this, \"getDuration\", () => {\n if (!this.player)\n return null;\n return this.player.getDuration();\n });\n __publicField(this, \"getCurrentTime\", () => {\n if (!this.player)\n return null;\n return this.player.getCurrentTime();\n });\n __publicField(this, \"getSecondsLoaded\", () => {\n if (!this.player)\n return null;\n return this.player.getSecondsLoaded();\n });\n __publicField(this, \"getInternalPlayer\", (key = \"player\") => {\n if (!this.player)\n return null;\n return this.player.getInternalPlayer(key);\n });\n __publicField(this, \"seekTo\", (fraction, type, keepPlaying) => {\n if (!this.player)\n return null;\n this.player.seekTo(fraction, type, keepPlaying);\n });\n __publicField(this, \"handleReady\", () => {\n this.props.onReady(this);\n });\n __publicField(this, \"getActivePlayer\", (0, import_memoize_one.default)((url) => {\n for (const player of [...customPlayers, ...players]) {\n if (player.canPlay(url)) {\n return player;\n }\n }\n if (fallback) {\n return fallback;\n }\n return null;\n }));\n __publicField(this, \"getConfig\", (0, import_memoize_one.default)((url, key) => {\n const { config } = this.props;\n return import_deepmerge.default.all([\n import_props.defaultProps.config,\n import_props.defaultProps.config[key] || {},\n config,\n config[key] || {}\n ]);\n }));\n __publicField(this, \"getAttributes\", (0, import_memoize_one.default)((url) => {\n return (0, import_utils.omit)(this.props, SUPPORTED_PROPS);\n }));\n __publicField(this, \"renderActivePlayer\", (url) => {\n if (!url)\n return null;\n const player = this.getActivePlayer(url);\n if (!player)\n return null;\n const config = this.getConfig(url, player.key);\n return /* @__PURE__ */ import_react.default.createElement(\n import_Player.default,\n {\n ...this.props,\n key: player.key,\n ref: this.references.player,\n config,\n activePlayer: player.lazyPlayer || player,\n onReady: this.handleReady\n }\n );\n });\n }\n shouldComponentUpdate(nextProps, nextState) {\n return !(0, import_react_fast_compare.default)(this.props, nextProps) || !(0, import_react_fast_compare.default)(this.state, nextState);\n }\n componentDidUpdate(prevProps) {\n const { light } = this.props;\n if (!prevProps.light && light) {\n this.setState({ showPreview: true });\n }\n if (prevProps.light && !light) {\n this.setState({ showPreview: false });\n }\n }\n renderPreview(url) {\n if (!url)\n return null;\n const { light, playIcon, previewTabIndex, oEmbedUrl, previewAriaLabel } = this.props;\n return /* @__PURE__ */ import_react.default.createElement(\n Preview,\n {\n url,\n light,\n playIcon,\n previewTabIndex,\n previewAriaLabel,\n oEmbedUrl,\n onClick: this.handleClickPreview\n }\n );\n }\n render() {\n const { url, style, width, height, fallback: fallback2, wrapper: Wrapper } = this.props;\n const { showPreview } = this.state;\n const attributes = this.getAttributes(url);\n const wrapperRef = typeof Wrapper === \"string\" ? this.references.wrapper : void 0;\n return /* @__PURE__ */ import_react.default.createElement(Wrapper, { ref: wrapperRef, style: { ...style, width, height }, ...attributes }, /* @__PURE__ */ import_react.default.createElement(UniversalSuspense, { fallback: fallback2 }, showPreview ? this.renderPreview(url) : this.renderActivePlayer(url)));\n }\n }, __publicField(_a, \"displayName\", \"ReactPlayer\"), __publicField(_a, \"propTypes\", import_props.propTypes), __publicField(_a, \"defaultProps\", import_props.defaultProps), __publicField(_a, \"addCustomPlayer\", (player) => {\n customPlayers.push(player);\n }), __publicField(_a, \"removeCustomPlayers\", () => {\n customPlayers.length = 0;\n }), __publicField(_a, \"canPlay\", (url) => {\n for (const Player2 of [...customPlayers, ...players]) {\n if (Player2.canPlay(url)) {\n return true;\n }\n }\n return false;\n }), __publicField(_a, \"canEnablePIP\", (url) => {\n for (const Player2 of [...customPlayers, ...players]) {\n if (Player2.canEnablePIP && Player2.canEnablePIP(url)) {\n return true;\n }\n }\n return false;\n }), _a;\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar src_exports = {};\n__export(src_exports, {\n default: () => src_default\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_players = __toESM(require(\"./players\"));\nvar import_ReactPlayer = require(\"./ReactPlayer\");\nconst fallback = import_players.default[import_players.default.length - 1];\nvar src_default = (0, import_ReactPlayer.createReactPlayer)(import_players.default, fallback);\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar patterns_exports = {};\n__export(patterns_exports, {\n AUDIO_EXTENSIONS: () => AUDIO_EXTENSIONS,\n DASH_EXTENSIONS: () => DASH_EXTENSIONS,\n FLV_EXTENSIONS: () => FLV_EXTENSIONS,\n HLS_EXTENSIONS: () => HLS_EXTENSIONS,\n MATCH_URL_DAILYMOTION: () => MATCH_URL_DAILYMOTION,\n MATCH_URL_FACEBOOK: () => MATCH_URL_FACEBOOK,\n MATCH_URL_FACEBOOK_WATCH: () => MATCH_URL_FACEBOOK_WATCH,\n MATCH_URL_KALTURA: () => MATCH_URL_KALTURA,\n MATCH_URL_MIXCLOUD: () => MATCH_URL_MIXCLOUD,\n MATCH_URL_MUX: () => MATCH_URL_MUX,\n MATCH_URL_SOUNDCLOUD: () => MATCH_URL_SOUNDCLOUD,\n MATCH_URL_STREAMABLE: () => MATCH_URL_STREAMABLE,\n MATCH_URL_TWITCH_CHANNEL: () => MATCH_URL_TWITCH_CHANNEL,\n MATCH_URL_TWITCH_VIDEO: () => MATCH_URL_TWITCH_VIDEO,\n MATCH_URL_VIDYARD: () => MATCH_URL_VIDYARD,\n MATCH_URL_VIMEO: () => MATCH_URL_VIMEO,\n MATCH_URL_WISTIA: () => MATCH_URL_WISTIA,\n MATCH_URL_YOUTUBE: () => MATCH_URL_YOUTUBE,\n VIDEO_EXTENSIONS: () => VIDEO_EXTENSIONS,\n canPlay: () => canPlay\n});\nmodule.exports = __toCommonJS(patterns_exports);\nvar import_utils = require(\"./utils\");\nconst MATCH_URL_YOUTUBE = /(?:youtu\\.be\\/|youtube(?:-nocookie|education)?\\.com\\/(?:embed\\/|v\\/|watch\\/|watch\\?v=|watch\\?.+&v=|shorts\\/|live\\/))((\\w|-){11})|youtube\\.com\\/playlist\\?list=|youtube\\.com\\/user\\//;\nconst MATCH_URL_SOUNDCLOUD = /(?:soundcloud\\.com|snd\\.sc)\\/[^.]+$/;\nconst MATCH_URL_VIMEO = /vimeo\\.com\\/(?!progressive_redirect).+/;\nconst MATCH_URL_MUX = /stream\\.mux\\.com\\/(\\w+)/;\nconst MATCH_URL_FACEBOOK = /^https?:\\/\\/(www\\.)?facebook\\.com.*\\/(video(s)?|watch|story)(\\.php?|\\/).+$/;\nconst MATCH_URL_FACEBOOK_WATCH = /^https?:\\/\\/fb\\.watch\\/.+$/;\nconst MATCH_URL_STREAMABLE = /streamable\\.com\\/([a-z0-9]+)$/;\nconst MATCH_URL_WISTIA = /(?:wistia\\.(?:com|net)|wi\\.st)\\/(?:medias|embed)\\/(?:iframe\\/)?([^?]+)/;\nconst MATCH_URL_TWITCH_VIDEO = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/;\nconst MATCH_URL_TWITCH_CHANNEL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+)($|\\?)/;\nconst MATCH_URL_DAILYMOTION = /^(?:(?:https?):)?(?:\\/\\/)?(?:www\\.)?(?:(?:dailymotion\\.com(?:\\/embed)?\\/video)|dai\\.ly)\\/([a-zA-Z0-9]+)(?:_[\\w_-]+)?(?:[\\w.#_-]+)?/;\nconst MATCH_URL_MIXCLOUD = /mixcloud\\.com\\/([^/]+\\/[^/]+)/;\nconst MATCH_URL_VIDYARD = /vidyard.com\\/(?:watch\\/)?([a-zA-Z0-9-_]+)/;\nconst MATCH_URL_KALTURA = /^https?:\\/\\/[a-zA-Z]+\\.kaltura.(com|org)\\/p\\/([0-9]+)\\/sp\\/([0-9]+)00\\/embedIframeJs\\/uiconf_id\\/([0-9]+)\\/partner_id\\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/;\nconst AUDIO_EXTENSIONS = /\\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nconst VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\\d+]+)?($|\\?)/i;\nconst HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i;\nconst DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i;\nconst FLV_EXTENSIONS = /\\.(flv)($|\\?)/i;\nconst canPlayFile = (url) => {\n if (url instanceof Array) {\n for (const item of url) {\n if (typeof item === \"string\" && canPlayFile(item)) {\n return true;\n }\n if (canPlayFile(item.src)) {\n return true;\n }\n }\n return false;\n }\n if ((0, import_utils.isMediaStream)(url) || (0, import_utils.isBlobUrl)(url)) {\n return true;\n }\n return AUDIO_EXTENSIONS.test(url) || VIDEO_EXTENSIONS.test(url) || HLS_EXTENSIONS.test(url) || DASH_EXTENSIONS.test(url) || FLV_EXTENSIONS.test(url);\n};\nconst canPlay = {\n youtube: (url) => {\n if (url instanceof Array) {\n return url.every((item) => MATCH_URL_YOUTUBE.test(item));\n }\n return MATCH_URL_YOUTUBE.test(url);\n },\n soundcloud: (url) => MATCH_URL_SOUNDCLOUD.test(url) && !AUDIO_EXTENSIONS.test(url),\n vimeo: (url) => MATCH_URL_VIMEO.test(url) && !VIDEO_EXTENSIONS.test(url) && !HLS_EXTENSIONS.test(url),\n mux: (url) => MATCH_URL_MUX.test(url),\n facebook: (url) => MATCH_URL_FACEBOOK.test(url) || MATCH_URL_FACEBOOK_WATCH.test(url),\n streamable: (url) => MATCH_URL_STREAMABLE.test(url),\n wistia: (url) => MATCH_URL_WISTIA.test(url),\n twitch: (url) => MATCH_URL_TWITCH_VIDEO.test(url) || MATCH_URL_TWITCH_CHANNEL.test(url),\n dailymotion: (url) => MATCH_URL_DAILYMOTION.test(url),\n mixcloud: (url) => MATCH_URL_MIXCLOUD.test(url),\n vidyard: (url) => MATCH_URL_VIDYARD.test(url),\n kaltura: (url) => MATCH_URL_KALTURA.test(url),\n file: canPlayFile\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar players_exports = {};\n__export(players_exports, {\n default: () => players_default\n});\nmodule.exports = __toCommonJS(players_exports);\nvar import_utils = require(\"../utils\");\nvar import_patterns = require(\"../patterns\");\nvar players_default = [\n {\n key: \"youtube\",\n name: \"YouTube\",\n canPlay: import_patterns.canPlay.youtube,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerYouTube' */\n \"./YouTube\"\n ))\n },\n {\n key: \"soundcloud\",\n name: \"SoundCloud\",\n canPlay: import_patterns.canPlay.soundcloud,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerSoundCloud' */\n \"./SoundCloud\"\n ))\n },\n {\n key: \"vimeo\",\n name: \"Vimeo\",\n canPlay: import_patterns.canPlay.vimeo,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerVimeo' */\n \"./Vimeo\"\n ))\n },\n {\n key: \"mux\",\n name: \"Mux\",\n canPlay: import_patterns.canPlay.mux,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerMux' */\n \"./Mux\"\n ))\n },\n {\n key: \"facebook\",\n name: \"Facebook\",\n canPlay: import_patterns.canPlay.facebook,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerFacebook' */\n \"./Facebook\"\n ))\n },\n {\n key: \"streamable\",\n name: \"Streamable\",\n canPlay: import_patterns.canPlay.streamable,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerStreamable' */\n \"./Streamable\"\n ))\n },\n {\n key: \"wistia\",\n name: \"Wistia\",\n canPlay: import_patterns.canPlay.wistia,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerWistia' */\n \"./Wistia\"\n ))\n },\n {\n key: \"twitch\",\n name: \"Twitch\",\n canPlay: import_patterns.canPlay.twitch,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerTwitch' */\n \"./Twitch\"\n ))\n },\n {\n key: \"dailymotion\",\n name: \"DailyMotion\",\n canPlay: import_patterns.canPlay.dailymotion,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerDailyMotion' */\n \"./DailyMotion\"\n ))\n },\n {\n key: \"mixcloud\",\n name: \"Mixcloud\",\n canPlay: import_patterns.canPlay.mixcloud,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerMixcloud' */\n \"./Mixcloud\"\n ))\n },\n {\n key: \"vidyard\",\n name: \"Vidyard\",\n canPlay: import_patterns.canPlay.vidyard,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerVidyard' */\n \"./Vidyard\"\n ))\n },\n {\n key: \"kaltura\",\n name: \"Kaltura\",\n canPlay: import_patterns.canPlay.kaltura,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerKaltura' */\n \"./Kaltura\"\n ))\n },\n {\n key: \"file\",\n name: \"FilePlayer\",\n canPlay: import_patterns.canPlay.file,\n canEnablePIP: (url) => {\n return import_patterns.canPlay.file(url) && (document.pictureInPictureEnabled || (0, import_utils.supportsWebKitPresentationMode)()) && !import_patterns.AUDIO_EXTENSIONS.test(url);\n },\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerFilePlayer' */\n \"./FilePlayer\"\n ))\n }\n];\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar props_exports = {};\n__export(props_exports, {\n defaultProps: () => defaultProps,\n propTypes: () => propTypes\n});\nmodule.exports = __toCommonJS(props_exports);\nvar import_prop_types = __toESM(require(\"prop-types\"));\nconst { string, bool, number, array, oneOfType, shape, object, func, node } = import_prop_types.default;\nconst propTypes = {\n url: oneOfType([string, array, object]),\n playing: bool,\n loop: bool,\n controls: bool,\n volume: number,\n muted: bool,\n playbackRate: number,\n width: oneOfType([string, number]),\n height: oneOfType([string, number]),\n style: object,\n progressInterval: number,\n playsinline: bool,\n pip: bool,\n stopOnUnmount: bool,\n light: oneOfType([bool, string, object]),\n playIcon: node,\n previewTabIndex: number,\n previewAriaLabel: string,\n fallback: node,\n oEmbedUrl: string,\n wrapper: oneOfType([\n string,\n func,\n shape({ render: func.isRequired })\n ]),\n config: shape({\n soundcloud: shape({\n options: object\n }),\n youtube: shape({\n playerVars: object,\n embedOptions: object,\n onUnstarted: func\n }),\n facebook: shape({\n appId: string,\n version: string,\n playerId: string,\n attributes: object\n }),\n dailymotion: shape({\n params: object\n }),\n vimeo: shape({\n playerOptions: object,\n title: string\n }),\n mux: shape({\n attributes: object,\n version: string\n }),\n file: shape({\n attributes: object,\n tracks: array,\n forceVideo: bool,\n forceAudio: bool,\n forceHLS: bool,\n forceSafariHLS: bool,\n forceDisableHls: bool,\n forceDASH: bool,\n forceFLV: bool,\n hlsOptions: object,\n hlsVersion: string,\n dashVersion: string,\n flvVersion: string\n }),\n wistia: shape({\n options: object,\n playerId: string,\n customControls: array\n }),\n mixcloud: shape({\n options: object\n }),\n twitch: shape({\n options: object,\n playerId: string\n }),\n vidyard: shape({\n options: object\n })\n }),\n onReady: func,\n onStart: func,\n onPlay: func,\n onPause: func,\n onBuffer: func,\n onBufferEnd: func,\n onEnded: func,\n onError: func,\n onDuration: func,\n onSeek: func,\n onPlaybackRateChange: func,\n onPlaybackQualityChange: func,\n onProgress: func,\n onClickPreview: func,\n onEnablePIP: func,\n onDisablePIP: func\n};\nconst noop = () => {\n};\nconst defaultProps = {\n playing: false,\n loop: false,\n controls: false,\n volume: null,\n muted: false,\n playbackRate: 1,\n width: \"640px\",\n height: \"360px\",\n style: {},\n progressInterval: 1e3,\n playsinline: false,\n pip: false,\n stopOnUnmount: true,\n light: false,\n fallback: null,\n wrapper: \"div\",\n previewTabIndex: 0,\n previewAriaLabel: \"\",\n oEmbedUrl: \"https://noembed.com/embed?url={url}\",\n config: {\n soundcloud: {\n options: {\n visual: true,\n // Undocumented, but makes player fill container and look better\n buying: false,\n liking: false,\n download: false,\n sharing: false,\n show_comments: false,\n show_playcount: false\n }\n },\n youtube: {\n playerVars: {\n playsinline: 1,\n showinfo: 0,\n rel: 0,\n iv_load_policy: 3,\n modestbranding: 1\n },\n embedOptions: {},\n onUnstarted: noop\n },\n facebook: {\n appId: \"1309697205772819\",\n version: \"v3.3\",\n playerId: null,\n attributes: {}\n },\n dailymotion: {\n params: {\n api: 1,\n \"endscreen-enable\": false\n }\n },\n vimeo: {\n playerOptions: {\n autopause: false,\n byline: false,\n portrait: false,\n title: false\n },\n title: null\n },\n mux: {\n attributes: {},\n version: \"2\"\n },\n file: {\n attributes: {},\n tracks: [],\n forceVideo: false,\n forceAudio: false,\n forceHLS: false,\n forceDASH: false,\n forceFLV: false,\n hlsOptions: {},\n hlsVersion: \"1.1.4\",\n dashVersion: \"3.1.3\",\n flvVersion: \"1.5.0\",\n forceDisableHls: false\n },\n wistia: {\n options: {},\n playerId: null,\n customControls: null\n },\n mixcloud: {\n options: {\n hide_cover: 1\n }\n },\n twitch: {\n options: {},\n playerId: null\n },\n vidyard: {\n options: {}\n }\n },\n onReady: noop,\n onStart: noop,\n onPlay: noop,\n onPause: noop,\n onBuffer: noop,\n onBufferEnd: noop,\n onEnded: noop,\n onError: noop,\n onDuration: noop,\n onSeek: noop,\n onPlaybackRateChange: noop,\n onPlaybackQualityChange: noop,\n onProgress: noop,\n onClickPreview: noop,\n onEnablePIP: noop,\n onDisablePIP: noop\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar utils_exports = {};\n__export(utils_exports, {\n callPlayer: () => callPlayer,\n getConfig: () => getConfig,\n getSDK: () => getSDK,\n isBlobUrl: () => isBlobUrl,\n isMediaStream: () => isMediaStream,\n lazy: () => lazy,\n omit: () => omit,\n parseEndTime: () => parseEndTime,\n parseStartTime: () => parseStartTime,\n queryString: () => queryString,\n randomString: () => randomString,\n supportsWebKitPresentationMode: () => supportsWebKitPresentationMode\n});\nmodule.exports = __toCommonJS(utils_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_load_script = __toESM(require(\"load-script\"));\nvar import_deepmerge = __toESM(require(\"deepmerge\"));\nconst lazy = (componentImportFn) => import_react.default.lazy(async () => {\n const obj = await componentImportFn();\n return typeof obj.default === \"function\" ? obj : obj.default;\n});\nconst MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/;\nconst MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;\nconst MATCH_START_STAMP = /(\\d+)(h|m|s)/g;\nconst MATCH_NUMERIC = /^\\d+$/;\nfunction parseTimeParam(url, pattern) {\n if (url instanceof Array) {\n return void 0;\n }\n const match = url.match(pattern);\n if (match) {\n const stamp = match[1];\n if (stamp.match(MATCH_START_STAMP)) {\n return parseTimeString(stamp);\n }\n if (MATCH_NUMERIC.test(stamp)) {\n return parseInt(stamp);\n }\n }\n return void 0;\n}\nfunction parseTimeString(stamp) {\n let seconds = 0;\n let array = MATCH_START_STAMP.exec(stamp);\n while (array !== null) {\n const [, count, period] = array;\n if (period === \"h\")\n seconds += parseInt(count, 10) * 60 * 60;\n if (period === \"m\")\n seconds += parseInt(count, 10) * 60;\n if (period === \"s\")\n seconds += parseInt(count, 10);\n array = MATCH_START_STAMP.exec(stamp);\n }\n return seconds;\n}\nfunction parseStartTime(url) {\n return parseTimeParam(url, MATCH_START_QUERY);\n}\nfunction parseEndTime(url) {\n return parseTimeParam(url, MATCH_END_QUERY);\n}\nfunction randomString() {\n return Math.random().toString(36).substr(2, 5);\n}\nfunction queryString(object) {\n return Object.keys(object).map((key) => `${key}=${object[key]}`).join(\"&\");\n}\nfunction getGlobal(key) {\n if (window[key]) {\n return window[key];\n }\n if (window.exports && window.exports[key]) {\n return window.exports[key];\n }\n if (window.module && window.module.exports && window.module.exports[key]) {\n return window.module.exports[key];\n }\n return null;\n}\nconst requests = {};\nconst getSDK = enableStubOn(function getSDK2(url, sdkGlobal, sdkReady = null, isLoaded = () => true, fetchScript = import_load_script.default) {\n const existingGlobal = getGlobal(sdkGlobal);\n if (existingGlobal && isLoaded(existingGlobal)) {\n return Promise.resolve(existingGlobal);\n }\n return new Promise((resolve, reject) => {\n if (requests[url]) {\n requests[url].push({ resolve, reject });\n return;\n }\n requests[url] = [{ resolve, reject }];\n const onLoaded = (sdk) => {\n requests[url].forEach((request) => request.resolve(sdk));\n };\n if (sdkReady) {\n const previousOnReady = window[sdkReady];\n window[sdkReady] = function() {\n if (previousOnReady)\n previousOnReady();\n onLoaded(getGlobal(sdkGlobal));\n };\n }\n fetchScript(url, (err) => {\n if (err) {\n requests[url].forEach((request) => request.reject(err));\n requests[url] = null;\n } else if (!sdkReady) {\n onLoaded(getGlobal(sdkGlobal));\n }\n });\n });\n});\nfunction getConfig(props, defaultProps) {\n return (0, import_deepmerge.default)(defaultProps.config, props.config);\n}\nfunction omit(object, ...arrays) {\n const omitKeys = [].concat(...arrays);\n const output = {};\n const keys = Object.keys(object);\n for (const key of keys) {\n if (omitKeys.indexOf(key) === -1) {\n output[key] = object[key];\n }\n }\n return output;\n}\nfunction callPlayer(method, ...args) {\n if (!this.player || !this.player[method]) {\n let message = `ReactPlayer: ${this.constructor.displayName} player could not call %c${method}%c \\u2013 `;\n if (!this.player) {\n message += \"The player was not available\";\n } else if (!this.player[method]) {\n message += \"The method was not available\";\n }\n console.warn(message, \"font-weight: bold\", \"\");\n return null;\n }\n return this.player[method](...args);\n}\nfunction isMediaStream(url) {\n return typeof window !== \"undefined\" && typeof window.MediaStream !== \"undefined\" && url instanceof window.MediaStream;\n}\nfunction isBlobUrl(url) {\n return /^blob:/.test(url);\n}\nfunction supportsWebKitPresentationMode(video = document.createElement(\"video\")) {\n const notMobile = /iPhone|iPod/.test(navigator.userAgent) === false;\n return video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === \"function\" && notMobile;\n}\nfunction enableStubOn(fn) {\n if (false) {\n const wrap = (...args) => wrap.stub(...args);\n wrap.stub = fn;\n return wrap;\n }\n return fn;\n}\n","/*\nReact-Quill\nhttps://github.com/zenoamaro/react-quill\n*/\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport isEqual from 'lodash/isEqual';\n\nimport Quill, {\n QuillOptionsStatic,\n DeltaStatic,\n RangeStatic,\n BoundsStatic,\n StringMap,\n Sources,\n} from 'quill';\n\n// Merged namespace hack to export types along with default object\n// See: https://github.com/Microsoft/TypeScript/issues/2719\nnamespace ReactQuill {\n export type Value = string | DeltaStatic;\n export type Range = RangeStatic | null;\n\n export interface QuillOptions extends QuillOptionsStatic {\n tabIndex?: number,\n }\n\n export interface ReactQuillProps {\n bounds?: string | HTMLElement,\n children?: React.ReactElement,\n className?: string,\n defaultValue?: Value,\n formats?: string[],\n id?: string,\n modules?: StringMap,\n onChange?(\n value: string,\n delta: DeltaStatic,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onChangeSelection?(\n selection: Range,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onFocus?(\n selection: Range,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onBlur?(\n previousSelection: Range,\n source: Sources,\n editor: UnprivilegedEditor,\n ): void,\n onKeyDown?: React.EventHandler,\n onKeyPress?: React.EventHandler,\n onKeyUp?: React.EventHandler,\n placeholder?: string,\n preserveWhitespace?: boolean,\n readOnly?: boolean,\n scrollingContainer?: string | HTMLElement,\n style?: React.CSSProperties,\n tabIndex?: number,\n theme?: string,\n value?: Value,\n }\n\n export interface UnprivilegedEditor {\n getLength(): number;\n getText(index?: number, length?: number): string;\n getHTML(): string;\n getBounds(index: number, length?: number): BoundsStatic;\n getSelection(focus?: boolean): RangeStatic;\n getContents(index?: number, length?: number): DeltaStatic;\n }\n}\n\n// Re-import everything from namespace into scope for comfort\nimport Value = ReactQuill.Value;\nimport Range = ReactQuill.Range;\nimport QuillOptions = ReactQuill.QuillOptions;\nimport ReactQuillProps = ReactQuill.ReactQuillProps;\nimport UnprivilegedEditor = ReactQuill.UnprivilegedEditor;\n\ninterface ReactQuillState {\n generation: number,\n}\n\nclass ReactQuill extends React.Component {\n\n static displayName = 'React Quill'\n\n /*\n Export Quill to be able to call `register`\n */\n static Quill = Quill;\n\n /*\n Changing one of these props should cause a full re-render and a\n re-instantiation of the Quill editor.\n */\n dirtyProps: (keyof ReactQuillProps)[] = [\n 'modules',\n 'formats',\n 'bounds',\n 'theme',\n 'children',\n ]\n\n /*\n Changing one of these props should cause a regular update. These are mostly\n props that act on the container, rather than the quillized editing area.\n */\n cleanProps: (keyof ReactQuillProps)[] = [\n 'id',\n 'className',\n 'style',\n 'placeholder',\n 'tabIndex',\n 'onChange',\n 'onChangeSelection',\n 'onFocus',\n 'onBlur',\n 'onKeyPress',\n 'onKeyDown',\n 'onKeyUp',\n ]\n\n static defaultProps = {\n theme: 'snow',\n modules: {},\n readOnly: false,\n }\n\n state: ReactQuillState = {\n generation: 0,\n }\n\n /*\n The Quill Editor instance.\n */\n editor?: Quill\n\n /*\n Reference to the element holding the Quill editing area.\n */\n editingArea?: React.ReactInstance | null\n\n /*\n Tracks the internal value of the Quill editor\n */\n value: Value\n\n /*\n Tracks the internal selection of the Quill editor\n */\n selection: Range = null\n\n /*\n Used to compare whether deltas from `onChange` are being used as `value`.\n */\n lastDeltaChangeSet?: DeltaStatic\n\n /*\n Stores the contents of the editor to be restored after regeneration.\n */\n regenerationSnapshot?: {\n delta: DeltaStatic,\n selection: Range,\n }\n\n /*\n A weaker, unprivileged proxy for the editor that does not allow accidentally\n modifying editor state.\n */\n unprivilegedEditor?: UnprivilegedEditor\n\n constructor(props: ReactQuillProps) {\n super(props);\n const value = this.isControlled()? props.value : props.defaultValue;\n this.value = value ?? '';\n }\n\n validateProps(props: ReactQuillProps): void {\n if (React.Children.count(props.children) > 1) throw new Error(\n 'The Quill editing area can only be composed of a single React element.'\n );\n\n if (React.Children.count(props.children)) {\n const child = React.Children.only(props.children);\n if (child?.type === 'textarea') throw new Error(\n 'Quill does not support editing on a \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ContactUs","import React, { useEffect, useState } from 'react'\r\nimport { Link, useLocation, useNavigate } from 'react-router-dom'\r\nimport \"./coursedetails.css\";\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\nconst CourseDetails = () => {\r\n const navigate = useNavigate();\r\n const [enrollment, setenrollment] = useState('');\r\n let token = localStorage.getItem('accessToken') ?? false;\r\n const courseenroll =(e) =>{\r\n e.preventDefault();\r\n\r\n let getRes = (res) => {\r\n if (res.statusCode === 200) {\r\n setenrollment(res.data);\r\n // console.log(res.data.clientSecret);\r\n // console.log(res.data.paymentIntentId);\r\n navigate('/courseenrollpayment', { state: { clientSecret: res.data.clientSecret, paymentIntent: res.data.paymentIntentId } });\r\n } else{\r\n alert(res?.message);\r\n }\r\n };\r\n\r\n callApi(\r\n 'POST',\r\n routes.courseEnrollment+'/'+courseId,\r\n null,\r\n setIsLoading,\r\n getRes,\r\n (error) => {\r\n console.log('error', error);\r\n }\r\n );\r\n };\r\n const [isloading, setIsLoading] = useState(false);\r\n const [coursedetail, setcoursedetail] = useState([]);\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const courseId = queryParams.get(\"courseId\");\r\n const getCourseDetail = () => {\r\n \r\n let getRes = (res) => {\r\n // localStorage.setItem(\"userData\", res?.data?.user);\r\n setcoursedetail(res.courseInfo);\r\n // setproducts(res.data.data.products);\r\n // console.log(productId)\r\n };\r\n \r\n callApi(\"GET\", routes.coursedetails+'/'+courseId, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n if (courseId) {\r\n getCourseDetail();\r\n }\r\n }, [courseId]);\r\n // const getSocialMediaIcon = (url) => {\r\n // if (url.includes('facebook.com')) {\r\n // return ;\r\n // } else if (url.includes('twitter.com')) {\r\n // return ;\r\n // } else if (url.includes('instagram.com')) {\r\n // return ;\r\n // } else if (url.includes('whatsapp.com')) {\r\n // return ;\r\n // } else {\r\n // return ;\r\n // }\r\n // };\r\n \r\n // const SocialMediaLinks = ({ links }) => (\r\n //
\r\n // {links?.map((link, index) => (\r\n //

\r\n // {getSocialMediaIcon(link)}\r\n // {link}\r\n //

\r\n // ))}\r\n //
\r\n // );\r\n const splitTitle = (title, charLimit) => {\r\n if (!title) return ['', ''];\r\n \r\n // Find the position to split the title without cutting words\r\n let splitIndex = charLimit;\r\n \r\n if (title.length > charLimit) {\r\n while (splitIndex > 0 && title[splitIndex] !== ' ') {\r\n splitIndex--;\r\n }\r\n \r\n if (splitIndex === 0) {\r\n // If no space is found, fall back to the charLimit\r\n splitIndex = charLimit;\r\n }\r\n }\r\n \r\n const firstPart = title.substring(0, splitIndex);\r\n const secondPart = title.substring(splitIndex).trim();\r\n \r\n return [firstPart, secondPart];\r\n };\r\n const [firstPart, secondPart] = splitTitle(coursedetail?.title, 25);\r\n function decodeHtml(html) {\r\n const txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value;\r\n }\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n

{firstPart}

\r\n
\r\n
\r\n
{secondPart}
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{coursedetail?.title}\r\n
\r\n\r\n {coursedetail?.level}\r\n \r\n
\r\n
\r\n
${coursedetail?.price}{coursedetail?.courseDuration}
\r\n
\r\n
\r\n
\r\n \r\n

{coursedetail?.totalStudents} Students

\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{coursedetail?.courseDuration}

\r\n
\r\n
\r\n
\r\n
\r\n
Course Description
\r\n

\r\n
\r\n
\r\n
Course Objective
\r\n

\r\n
\r\n
\r\n
Digital Book
\r\n {coursedetail?.books && coursedetail?.books.map((book, index) => (
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n
\r\n
\r\n
\r\n

\r\n {book?.bookTitle}\r\n

\r\n
\r\n ${book?.bookPrice}\r\n
\r\n
\r\n
\r\n
\r\n {/* */}\r\n
\r\n
))}\r\n\r\n
\r\n
\r\n
\r\n
Course Instructor
\r\n
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n
\r\n
\r\n
\r\n

\r\n {coursedetail?.instructor?.fullName}\r\n

\r\n
\r\n {coursedetail?.instructor?.description}\r\n
\r\n
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n\r\n
\r\n
\r\n
Course Assignment
\r\n
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n \r\n

\r\n {coursedetail?.title}\r\n

\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
Course Quiz
\r\n
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n \r\n

\r\n {coursedetail?.title}\r\n

\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
Course Content
\r\n {coursedetail?.content && coursedetail?.content.map((content, index) => (
\r\n
\r\n
\r\n

{content?.contentTitle}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
))}\r\n\r\n\r\n\r\n\r\n\r\n
\r\n {token ?
\r\n \r\n
:
\r\n \r\n
}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
{coursedetail?.instructor?.fullName}
\r\n

{coursedetail?.instructor?.description}

\r\n
\r\n
\r\n

{coursedetail?.instructor?.totalCourses}

\r\n

Courses

\r\n
\r\n
\r\n

{coursedetail?.instructor?.totalStudentsInAllCourses}

\r\n

Students

\r\n
\r\n \r\n
\r\n \r\n
\r\n {token ? \r\n Chat with Instructor\r\n : }\r\n
\r\n \r\n
\r\n
\r\n About Instructor\r\n
\r\n

{coursedetail?.instructor?.description}

\r\n
\r\n {/* */}\r\n {coursedetail?.instructor?.socialMediaLinks?.[0]?.whatsApp &&

{coursedetail?.instructor?.socialMediaLinks?.[0]?.whatsApp}

}\r\n {coursedetail?.instructor?.socialMediaLinks?.[0]?.facebook &&

{coursedetail?.instructor?.socialMediaLinks?.[0]?.facebook}

}\r\n {coursedetail?.instructor?.socialMediaLinks?.[0]?.twitter &&

{coursedetail?.instructor?.socialMediaLinks?.[0]?.twitter}

}\r\n {coursedetail?.instructor?.socialMediaLinks?.[0]?.instagram &&

{coursedetail?.instructor?.socialMediaLinks?.[0]?.instagram}

}\r\n {coursedetail?.instructor?.socialMediaLinks?.[0]?.website &&

{coursedetail?.instructor?.socialMediaLinks?.[0]?.website}

}\r\n\r\n
\r\n Courses\r\n \r\n
\r\n
\r\n {coursedetail?.instructor?.instructorCourses && coursedetail?.instructor?.instructorCourses.map((course, index) => (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
{course?.title}
\r\n \r\n
\r\n \r\n {course?.level}\r\n \r\n
\r\n
\r\n
\r\n {/* ${course?.price+10} span */}\r\n ${course?.price}\r\n 3 Month Course\r\n
\r\n
\r\n
\r\n
\r\n
))}\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default CourseDetails","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"4.1.0\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar onErrorListener = null;\nvar onLoadListener = null;\n\nvar onError = function onError(reject) {\n return function () {\n reject(new Error('Failed to load Stripe.js'));\n };\n};\n\nvar onLoad = function onLoad(resolve, reject) {\n return function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n };\n};\n\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n } else if (script && onLoadListener !== null && onErrorListener !== null) {\n var _script$parentNode;\n\n // remove event listeners\n script.removeEventListener('load', onLoadListener);\n script.removeEventListener('error', onErrorListener); // if script exists, but we are reloading due to an error,\n // reload script to trigger 'load' event\n\n (_script$parentNode = script.parentNode) === null || _script$parentNode === void 0 ? void 0 : _script$parentNode.removeChild(script);\n script = injectScript(params);\n }\n\n onLoadListener = onLoad(resolve, reject);\n onErrorListener = onError(reject);\n script.addEventListener('load', onLoadListener);\n script.addEventListener('error', onErrorListener);\n } catch (error) {\n reject(error);\n return;\n }\n }); // Resets stripePromise on error\n\n return stripePromise[\"catch\"](function (error) {\n stripePromise = null;\n return Promise.reject(error);\n });\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nvar stripePromise$1;\nvar loadCalled = false;\n\nvar getStripePromise = function getStripePromise() {\n if (stripePromise$1) {\n return stripePromise$1;\n }\n\n stripePromise$1 = loadScript(null)[\"catch\"](function (error) {\n // clear cache on error\n stripePromise$1 = null;\n return Promise.reject(error);\n });\n return stripePromise$1;\n}; // Execute our own script injection after a tick to give users time to do their\n// own script injection.\n\n\nPromise.resolve().then(function () {\n return getStripePromise();\n})[\"catch\"](function (error) {\n if (!loadCalled) {\n console.warn(error);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now(); // if previous attempts are unsuccessful, will re-load script\n\n return getStripePromise().then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","import React, { useState } from 'react';\r\nimport { useStripe, useElements, CardElement } from '@stripe/react-stripe-js';\r\nimport { loadStripe } from '@stripe/stripe-js';\r\nimport { Elements } from '@stripe/react-stripe-js';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nconst stripePromise = loadStripe('pk_test_51PacoIH8rwhS1mDiNUNu0lx8zzmEf633SktSvCkWvP1h32gaxC0YMkQUnTPaTeJoXCSvNsyle9D0StkSi4kJsmb400ZW1iMyUh');\r\n\r\nconst PaymentForm = () => {\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n const [errorMessage, setErrorMessage] = useState('');\r\n const location = useLocation();\r\n const clientSecret = location.state.clientSecret;\r\n const paymentIntentId = location.state.paymentIntent;\r\n const [isloading, setIsLoading] = useState(false);\r\n const [confirmPayment, setconfirmPayment] = useState('');\r\n const navigate = useNavigate();\r\n const handleconfirmPayment =() =>{\r\n let getRes = (res) => {\r\n if (res.statusCode === 200) {\r\n toast.success(\"Course Enrolled Successfully\", {\r\n autoClose: 1500,\r\n onClose: () => {\r\n \r\n navigate('/courses');\r\n }\r\n });\r\n} else {\r\ntoast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n\r\n \r\n }\r\n };\r\n let body = {\r\n paymentIntentId: paymentIntentId,\r\n \r\n };\r\n callApi(\r\n 'POST',\r\n routes.confirmPayment,\r\n body,\r\n setIsLoading,\r\n getRes,\r\n (error) => {\r\n console.log(\"error\", error);\r\n }\r\n );\r\n};\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n\r\n if (!stripe || !elements) {\r\n return;\r\n }\r\n\r\n const { error, paymentIntent } = await stripe.confirmCardPayment(clientSecret, {\r\n payment_method: {\r\n card: elements.getElement(CardElement),\r\n },\r\n });\r\n\r\n if (error) {\r\n setErrorMessage(error.message);\r\n } else {\r\n console.log('Payment successful!', paymentIntent);\r\n \r\n setconfirmPayment(paymentIntent)\r\n console.log(paymentIntent.id)\r\n handleconfirmPayment();\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

Payment Details

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {errorMessage &&
{errorMessage}
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst CheckoutForm = () => (\r\n <> \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default CheckoutForm;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Link, useLocation, useNavigate } from 'react-router-dom'\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\nimport { loadStripe } from '@stripe/stripe-js';\r\nimport CheckoutForm from './CheckoutForm';\r\nimport { Elements } from '@stripe/react-stripe-js';\r\nconst WorkoutDetails = () => {\r\n\r\n const navigate = useNavigate();\r\n const [clientSecret, setClientSecret] = useState(null);\r\n const stripePromise = loadStripe('pk_test_6pRNASCoBOKtIshFeQd4XMUh');\r\n const [enrollment, setenrollment] = useState('');\r\n let token = localStorage.getItem('accessToken') ?? false;\r\n const courseenroll =(e) =>{\r\n e.preventDefault();\r\n\r\n let getRes = (res) => {\r\n if (res.statusCode === 200) {\r\n setenrollment(res.data);\r\n console.log(res.data.clientSecret);\r\n console.log(res.data.paymentIntentId);\r\n navigate('/courseenrollpayment', { state: { clientSecret: res.data.clientSecret, paymentIntent: res.data.paymentIntentId } });\r\n }\r\n };\r\n\r\n callApi(\r\n 'POST',\r\n routes.courseEnrollment+'/'+workoutId,\r\n null,\r\n setIsLoading,\r\n getRes,\r\n (error) => {\r\n console.log('error', error);\r\n }\r\n );\r\n };\r\n // navigate('/coursepayment')\r\n \r\n const [isloading, setIsLoading] = useState(false);\r\n const [workoutdetail, setworkoutdetail] = useState([]);\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const workoutId = queryParams.get(\"workoutId\");\r\n const getWorkoutDetail = () => {\r\n \r\n let getRes = (res) => {\r\n // localStorage.setItem(\"userData\", res?.data?.user);\r\n setworkoutdetail(res.workoutInfo);\r\n // setproducts(res.data.data.products);\r\n // console.log(productId)\r\n };\r\n \r\n callApi(\"GET\", routes.workoutdetails+'/'+workoutId, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n if (workoutId) {\r\n getWorkoutDetail();\r\n }\r\n }, [workoutId]);\r\n const splitTitle = (title, charLimit) => {\r\n if (!title) return ['', ''];\r\n \r\n // Find the position to split the title without cutting words\r\n let splitIndex = charLimit;\r\n \r\n if (title.length > charLimit) {\r\n while (splitIndex > 0 && title[splitIndex] !== ' ') {\r\n splitIndex--;\r\n }\r\n \r\n if (splitIndex === 0) {\r\n // If no space is found, fall back to the charLimit\r\n splitIndex = charLimit;\r\n }\r\n }\r\n \r\n const firstPart = title.substring(0, splitIndex);\r\n const secondPart = title.substring(splitIndex).trim();\r\n \r\n return [firstPart, secondPart];\r\n };\r\n const [firstPart, secondPart] = splitTitle(workoutdetail?.workoutTitle, 25);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n

{firstPart}

\r\n
\r\n
\r\n
{secondPart}
\r\n
\r\n
\r\nFind the perfect workout to help you build muscle, improve endurance, and achieve your personal fitness goals. Get started and transform your routine today!\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{workoutdetail?.workoutTitle}\r\n\r\n
\r\n
${workoutdetail?.workoutPrice}
\r\n
\r\n
\r\n\r\n {workoutdetail?.workoutLevel}\r\n \r\n
\r\n
\r\n\r\n {workoutdetail?.totalWorkouts} workout\r\n \r\n
\r\n
\r\n\r\n {workoutdetail?.workoutDuration}\r\n \r\n
\r\n
\r\n \r\n
\r\n {workoutdetail?.workoutActivity && workoutdetail?.workoutActivity.map((workout, index) => (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{workout?.title}
\r\n {/* \r\n
{workout?.title}
\r\n */}\r\n \r\n \r\n

{workout?.activityDuration?.duration} {workout?.activityDuration?.unit}

\r\n
\r\n
\r\n
\r\n
\r\n
))}\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
{workoutdetail?.trainer?.fullName}
\r\n

{workoutdetail?.trainer?.description}

\r\n
\r\n
\r\n

{workoutdetail?.trainer?.totalWorkouts}

\r\n

Courses

\r\n
\r\n
\r\n

{workoutdetail?.trainer?.totalStudents}

\r\n

Students

\r\n
\r\n \r\n
\r\n \r\n
\r\n {token ?\r\n Chat with Trainer\r\n:\r\n}\r\n
\r\n \r\n
\r\n
\r\n About Instructor\r\n
\r\n

{workoutdetail?.trainer?.description}

\r\n \r\n
\r\n Workout Session\r\n
\r\n \r\n
\r\n
\r\n {workoutdetail?.trainer?.workouts && workoutdetail?.trainer?.workouts.map((workout, index) => (\r\n
\r\n
\r\n {/*
City
*/}\r\n
\r\n

{workout?.workoutTitle}

\r\n

{workout?.workoutDuration} | {workout?.workoutLevel}

\r\n
\r\n {/* \"User\" */}\r\n \r\n
\r\n
\r\n))}\r\n\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default WorkoutDetails","import React, { useEffect, useState } from 'react'\r\n\r\nconst CoursePayment = () => {\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n useEffect(() => {\r\n let timer;\r\n if (showModal) {\r\n timer = setTimeout(() => {\r\n setShowModal(false);\r\n }, 2000);\r\n }\r\n return () => clearTimeout(timer);\r\n }, [showModal]);\r\n \r\n const handleConfirmPayment = () => {\r\n setShowModal(true);\r\n // Perform payment processing logic here\r\n };\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n

UI UX Designer Course

\r\n
\r\n
\r\n
for Absolute Beginners
\r\n
\r\n
\r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore consectetur. adipi elit, sed do eiusmod tempor incididunt ut labore consectetur.\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n

Select Payment Method

\r\n

Kindly choose your preferred payment method for making the payment!

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n Credit Card\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n Visa Pay\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n PayPal\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Select Payment Method

\r\n

Kindly choose your preferred payment method for making the payment!

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n {showModal && (\r\n
\r\n
\r\n
\r\n {/*
\r\n
Payment Successful
\r\n \r\n
*/}\r\n
\r\n \r\n \"\"\r\n

Payment Successful!

\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default CoursePayment","import x from\"react\";import{useRef as U}from\"react\";import{useState as E,useRef as b,useCallback as q}from\"react\";import{useEffect as M,useLayoutEffect as L}from\"react\";var G=typeof window==\"undefined\"?M:L,I=({isPlaying:o,duration:e,startAt:n=0,updateInterval:t=0,onComplete:s,onUpdate:r})=>{let[i,c]=E(n),m=b(0),p=b(n),f=b(n*-1e3),u=b(null),a=b(null),h=b(null),w=g=>{let l=g/1e3;if(a.current===null){a.current=l,u.current=requestAnimationFrame(w);return}let d=l-a.current,C=m.current+d;a.current=l,m.current=C;let k=p.current+(t===0?C:(C/t|0)*t),R=p.current+C,v=typeof e==\"number\"&&R>=e;c(v?e:k),v||(u.current=requestAnimationFrame(w))},$=()=>{u.current&&cancelAnimationFrame(u.current),h.current&&clearTimeout(h.current),a.current=null},y=q(g=>{$(),m.current=0;let l=typeof g==\"number\"?g:n;p.current=l,c(l),o&&(u.current=requestAnimationFrame(w))},[o,n]);return G(()=>{if(r==null||r(i),e&&i>=e){f.current+=e*1e3;let{shouldRepeat:g=!1,delay:l=0,newStartAt:d}=(s==null?void 0:s(f.current/1e3))||{};g&&(h.current=setTimeout(()=>y(d),l*1e3))}},[i,e]),G(()=>(o&&(u.current=requestAnimationFrame(w)),$),[o,e,t]),{elapsedTime:i,reset:y}};var A=(o,e,n)=>{let t=o/2,s=e/2,r=t-s,i=2*r,c=n===\"clockwise\"?\"1,0\":\"0,1\",m=2*Math.PI*r;return{path:`m ${t},${s} a ${r},${r} 0 ${c} 0,${i} a ${r},${r} 0 ${c} 0,-${i}`,pathLength:m}},T=(o,e)=>o===0||o===e?0:typeof e==\"number\"?o-e:0,B=o=>({position:\"relative\",width:o,height:o}),P={display:\"flex\",justifyContent:\"center\",alignItems:\"center\",position:\"absolute\",left:0,top:0,width:\"100%\",height:\"100%\"};var F=(o,e,n,t,s)=>{if(t===0)return e;let r=(s?t-o:o)/t;return e+n*r},W=o=>{var e,n;return(n=(e=o.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,(t,s,r,i)=>`#${s}${s}${r}${r}${i}${i}`).substring(1).match(/.{2}/g))==null?void 0:e.map(t=>parseInt(t,16)))!=null?n:[]},j=(o,e)=>{var u;let{colors:n,colorsTime:t,isSmoothColorTransition:s=!0}=o;if(typeof n==\"string\")return n;let r=(u=t==null?void 0:t.findIndex((a,h)=>a>=e&&e>=t[h+1]))!=null?u:-1;if(!t||r===-1)return n[0];if(!s)return n[r];let i=t[r]-e,c=t[r]-t[r+1],m=W(n[r]),p=W(n[r+1]),f=!!o.isGrowing;return`rgb(${m.map((a,h)=>F(i,a,p[h]-a,c,f)|0).join(\",\")})`},S=o=>{let{duration:e,initialRemainingTime:n,updateInterval:t,size:s=180,strokeWidth:r=12,trailStrokeWidth:i,isPlaying:c=!1,isGrowing:m=!1,rotation:p=\"clockwise\",onComplete:f,onUpdate:u}=o,a=U(),h=Math.max(r,i!=null?i:0),{path:w,pathLength:$}=A(s,h,p),{elapsedTime:y}=I({isPlaying:c,duration:e,startAt:T(e,n),updateInterval:t,onUpdate:typeof u==\"function\"?l=>{let d=Math.ceil(e-l);d!==a.current&&(a.current=d,u(d))}:void 0,onComplete:typeof f==\"function\"?l=>{var R;let{shouldRepeat:d,delay:C,newInitialRemainingTime:k}=(R=f(l))!=null?R:{};if(d)return{shouldRepeat:d,delay:C,newStartAt:T(e,k)}}:void 0}),g=e-y;return{elapsedTime:y,path:w,pathLength:$,remainingTime:Math.ceil(g),rotation:p,size:s,stroke:j(o,g),strokeDashoffset:F(y,0,$,e,m),strokeWidth:r}};var D=o=>{let{children:e,strokeLinecap:n,trailColor:t,trailStrokeWidth:s}=o,{path:r,pathLength:i,stroke:c,strokeDashoffset:m,remainingTime:p,elapsedTime:f,size:u,strokeWidth:a}=S(o);return x.createElement(\"div\",{style:B(u)},x.createElement(\"svg\",{viewBox:`0 0 ${u} ${u}`,width:u,height:u,xmlns:\"http://www.w3.org/2000/svg\"},x.createElement(\"path\",{d:r,fill:\"none\",stroke:t!=null?t:\"#d9d9d9\",strokeWidth:s!=null?s:a}),x.createElement(\"path\",{d:r,fill:\"none\",stroke:c,strokeLinecap:n!=null?n:\"round\",strokeWidth:a,strokeDasharray:i,strokeDashoffset:m})),typeof e==\"function\"&&x.createElement(\"div\",{style:P},e({remainingTime:p,elapsedTime:f,color:c})))};D.displayName=\"CountdownCircleTimer\";export{D as CountdownCircleTimer,S as useCountdown};\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { CountdownCircleTimer } from \"react-countdown-circle-timer\";\r\nimport { Link, useLocation, useNavigate } from \"react-router-dom\";\r\nimport { callApi } from \"../../Api/ApiCaller\";\r\nimport routes from \"../../Api/routes\";\r\nimport ReactPlayer from \"react-player\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nconst WorkoutStart = () => {\r\n const [showModal, setShowModal] = useState(false);\r\n const [timerKey, setTimerKey] = useState(0);\r\n const countdownRef = useRef(null);\r\n const [currentActivityIndex, setCurrentActivityIndex] = useState(0);\r\n const [ongoingWorkout, setOngoingWorkout] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isPlaying, setIsPlaying] = useState(false);\r\n const [duration, setDuration] = useState(0);\r\n const [activityduration, setActivityDuration] = useState(0);\r\n const [watchedTime, setWatchedTime] = useState(0);\r\n\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const [openWorkoutId, setOpenWorkoutId] = useState(0);\r\n const workoutId = queryParams.get(\"workoutId\");\r\n const workoutActivity = queryParams.get(\"workoutActivity\");\r\n const playerRef = useRef(null);\r\n\r\n const handleVideoDoneSuccessful = () => {\r\n let watchvedio = Math.round(watchedTime / 60);\r\n let totalvedio = Math.round(duration / 60);\r\n console.log(`Total video time: ${totalvedio} minutes`);\r\n console.log(`Watched time: ${watchvedio} minutes`);\r\n\r\n let body = {\r\n watchedDuration: watchvedio,\r\n videoDuration: totalvedio,\r\n };\r\n\r\n let getRes = (res) => {\r\n if (res.statusCode === 200) {\r\n toast.success(res.message, { autoClose: 1500 });\r\n } else {\r\n toast.error(res.message, { autoClose: 1500 });\r\n }\r\n };\r\n\r\n callApi(\"POST\", `${routes.markVideoComplete}/${openWorkoutId}/${currentActivity?._id}`, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (workoutId && workoutActivity) {\r\n getWorkout();\r\n }\r\n }, [workoutId, workoutActivity]);\r\n\r\n useEffect(() => {\r\n if (ongoingWorkout) {\r\n const currentActivity = ongoingWorkout.workout.workoutActivity[currentActivityIndex];\r\n const exerciseDuration = currentActivity?.exerciseDuration;\r\n let durationInSeconds = exerciseDuration?.duration;\r\n \r\n if (exerciseDuration?.unit === \"minutes\") {\r\n durationInSeconds *= 60;\r\n }\r\n\r\n setActivityDuration(durationInSeconds);\r\n setTimerKey((prevKey) => prevKey + 1); // Reset the timer key\r\n setIsPlaying(false); // Pause the timer initially\r\n }\r\n }, [currentActivityIndex, ongoingWorkout]);\r\n\r\n const handleDuration = (duration) => {\r\n setDuration(duration);\r\n };\r\n\r\n const handleProgress = (state) => {\r\n setWatchedTime(state.playedSeconds);\r\n };\r\n\r\n const handleStart = () => {\r\n setIsPlaying(true);\r\n };\r\n\r\n const handlePause = () => {\r\n setIsPlaying(false);\r\n };\r\n\r\n const handleTimerComplete = () => {\r\n setShowModal(true);\r\n };\r\n\r\n const nextWorkout = () => {\r\n setShowModal(false);\r\n if (currentActivityIndex < ongoingWorkout.workout.workoutActivity.length - 1) {\r\n setCurrentActivityIndex(currentActivityIndex + 1);\r\n }\r\n };\r\n\r\n const prevWorkout = () => {\r\n if (currentActivityIndex > 0) {\r\n setCurrentActivityIndex(currentActivityIndex - 1);\r\n handlePause();\r\n }\r\n };\r\n\r\n const skipWorkout = () => {\r\n if (currentActivityIndex < ongoingWorkout.workout.workoutActivity.length - 1) {\r\n setCurrentActivityIndex(currentActivityIndex + 1);\r\n handlePause();\r\n }\r\n };\r\n\r\n const getWorkout = () => {\r\n let getRes = (res) => {\r\n setOngoingWorkout(res.progressWorkout);\r\n setOpenWorkoutId(res?.progressWorkout?.workout?._id);\r\n\r\n const index = res.progressWorkout.workout.workoutActivity.findIndex(\r\n (activity) => activity._id === workoutActivity\r\n );\r\n if (index !== -1) {\r\n setCurrentActivityIndex(index);\r\n }\r\n };\r\n\r\n callApi(\"GET\", `${routes.getOneOngoingWorkout}/${workoutId}`, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n\r\n if (!ongoingWorkout) return null; // Or a loading indicator\r\n\r\n const currentActivity = ongoingWorkout.workout.workoutActivity[currentActivityIndex];\r\n\r\n const splitTitle = (title, charLimit) => {\r\n if (!title) return [\"\", \"\"];\r\n\r\n let splitIndex = charLimit;\r\n\r\n if (title.length > charLimit) {\r\n while (splitIndex > 0 && title[splitIndex] !== \" \") {\r\n splitIndex--;\r\n }\r\n\r\n if (splitIndex === 0) {\r\n splitIndex = charLimit;\r\n }\r\n }\r\n\r\n const firstPart = title.substring(0, splitIndex);\r\n const secondPart = title.substring(splitIndex).trim();\r\n\r\n return [firstPart, secondPart];\r\n };\r\n\r\n const [firstPart, secondPart] = splitTitle(currentActivity.title, 25);\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{firstPart}

\r\n
\r\n
\r\n
{secondPart}
\r\n
\r\n
\r\n \r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\r\n eiusmod tempor incididunt ut labore consectetur. adipi elit, sed\r\n do eiusmod tempor incididunt ut labore consectetur.\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {currentActivity.title}\r\n
\r\n
\r\n \r\n {({ remainingTime }) => (\r\n
\r\n {remainingTime}\r\n
\r\n )}\r\n \r\n
\r\n
\r\n \r\n Start\r\n \r\n
\r\n
\r\n \r\n Pause\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Previous\r\n \r\n
\r\n
\r\n \r\n Skip\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {showModal && (\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

\r\n Congratulations!\r\n

\r\n
You have completed the Activity!
\r\n
\r\n
\r\n
\r\n

{ongoingWorkout?.workout?.workoutActivity?.length ?? 0}

\r\n

Workout

\r\n
\r\n
\r\n

{(duration * 0.083).toFixed(3)}

\r\n

Cal

\r\n
\r\n
\r\n

{duration}

\r\n

Seconds

\r\n
\r\n
\r\n
\r\n \r\n Go to Home\r\n \r\n
\r\n
\r\n \r\n Next Workout\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default WorkoutStart;\r\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar FAMILY_CLASSIC = 'classic';\nvar FAMILY_SHARP = 'sharp';\nvar FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n }\n });\n}\nvar PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n 'fa': 'solid',\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fakd': 'kit',\n 'fa-kit': 'kit',\n 'fa-kit-duotone': 'kit'\n}), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid',\n 'fasr': 'regular',\n 'fa-regular': 'regular',\n 'fasl': 'light',\n 'fa-light': 'light',\n 'fast': 'thin',\n 'fa-thin': 'thin'\n}), _familyProxy));\nvar STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n solid: 'fas',\n regular: 'far',\n light: 'fal',\n thin: 'fat',\n duotone: 'fad',\n brands: 'fab',\n kit: 'fak'\n}), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n solid: 'fass',\n regular: 'fasr',\n light: 'fasl',\n thin: 'fast'\n}), _familyProxy2));\nvar PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n fab: 'fa-brands',\n fad: 'fa-duotone',\n fak: 'fa-kit',\n fal: 'fa-light',\n far: 'fa-regular',\n fas: 'fa-solid',\n fat: 'fa-thin'\n}), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n fass: 'fa-solid',\n fasr: 'fa-regular',\n fasl: 'fa-light',\n fast: 'fa-thin'\n}), _familyProxy3));\nvar LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n}), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n 'fa-solid': 'fass',\n 'fa-regular': 'fasr',\n 'fa-light': 'fasl',\n 'fa-thin': 'fast'\n}), _familyProxy4));\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss|sr|sl|st)?[\\-\\ ]/; // eslint-disable-line no-useless-escape\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i;\nvar FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n 900: 'fas',\n 400: 'far',\n normal: 'far',\n 300: 'fal',\n 100: 'fat'\n}), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n 900: 'fass',\n 400: 'fasr',\n 300: 'fasl',\n 100: 'fast'\n}), _familyProxy5));\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\nvar RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-thin: normal 100 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n -webkit-transition-delay: 0s;\\n transition-delay: 0s;\\n -webkit-transition-duration: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nvar PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\nfunction getCanonicalIcon(values) {\n var _famProps;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n var givenPrefix = null;\n var family = FAMILY_CLASSIC;\n\n if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n })) {\n family = FAMILY_CLASSIC;\n }\n\n if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n })) {\n family = FAMILY_SHARP;\n }\n\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family: family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"6.5.1\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (_abstract) {\n node.parentNode.insertBefore(convertSVG(_abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var _abstract2 = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete _abstract2[0].attributes.id;\n\n if (_abstract2[0].attributes.class) {\n var splitClasses = _abstract2[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n\n _abstract2[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = _abstract2.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nvar knownPrefixes = new Set();\nFAMILIES.map(function (family) {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = _toConsumableArray(knownPrefixes);\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {\n return \"fa-\".concat(f);\n }).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var _abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n\n var element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = _abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(_abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (_abstract.attributes && (_abstract.attributes.fill || force)) {\n _abstract.attributes.fill = 'black';\n }\n\n return _abstract;\n}\n\nfunction deGroup(_abstract2) {\n if (_abstract2.tag === 'g') {\n return _abstract2.children;\n } else {\n return [_abstract2];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","var prefix = \"fas\";\nvar fa0 = {\n prefix: 'fas',\n iconName: '0',\n icon: [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160V320c0 88.4-71.6 160-160 160S0 408.4 0 320V192zM160 96c-53 0-96 43-96 96V320c0 53 43 96 96 96s96-43 96-96V192c0-53-43-96-96-96z\"]\n};\nvar fa1 = {\n prefix: 'fas',\n iconName: '1',\n icon: [256, 512, [], \"31\", \"M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z\"]\n};\nvar fa2 = {\n prefix: 'fas',\n iconName: '2',\n icon: [320, 512, [], \"32\", \"M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z\"]\n};\nvar fa3 = {\n prefix: 'fas',\n iconName: '3',\n icon: [320, 512, [], \"33\", \"M0 64C0 46.3 14.3 32 32 32H272c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H105.4C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H80c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar fa4 = {\n prefix: 'fas',\n iconName: '4',\n icon: [384, 512, [], \"34\", \"M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z\"]\n};\nvar fa5 = {\n prefix: 'fas',\n iconName: '5',\n icon: [320, 512, [], \"35\", \"M32.5 58.3C35.3 43.1 48.5 32 64 32H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H90.7L70.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H100.5c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H32c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z\"]\n};\nvar fa6 = {\n prefix: 'fas',\n iconName: '6',\n icon: [320, 512, [], \"36\", \"M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3c0 .2 0 .3 0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z\"]\n};\nvar fa7 = {\n prefix: 'fas',\n iconName: '7',\n icon: [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32H288c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar fa8 = {\n prefix: 'fas',\n iconName: '8',\n icon: [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128h64c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288H192c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h15.9c0 0 .1 0 .1 0h32c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0H144c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z\"]\n};\nvar fa9 = {\n prefix: 'fas',\n iconName: '9',\n icon: [320, 512, [], \"39\", \"M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6H386.7l42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z\"]\n};\nvar faArrowsToCircle = {\n prefix: 'fas',\n iconName: 'arrows-to-circle',\n icon: [640, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7V96c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h18.7L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32v18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1v0V96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V320v0c0 0 0-.1 0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4c0 0 .1 0 .1 0h0 96c17.7 0 32 14.3 32 32s-14.3 32-32 32H525.3z\"]\n};\nvar faCircleChevronRight = {\n prefix: 'fas',\n iconName: 'circle-chevron-right',\n icon: [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"]\n};\nvar faChevronCircleRight = faCircleChevronRight;\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256v32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32v80 32c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faTrashCan = {\n prefix: 'fas',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M64 128V96h64l0 320H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H192l0-320h64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H160 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM502.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V352H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H512V160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faUserXmark = {\n prefix: 'fas',\n iconName: 'user-xmark',\n icon: [640, 512, [\"user-times\"], \"f235\", \"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faUserTimes = faUserXmark;\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [576, 512, [129658], \"f0f1\", \"M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1V192c0 53 43 96 96 96s96-43 96-96V71.1l-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1V192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112V265.3c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V336c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192V71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faMessage = {\n prefix: 'fas',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64h96v80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faCommentAlt = faMessage;\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faDownLeftAndUpRightToCenter = {\n prefix: 'fas',\n iconName: 'down-left-and-up-right-to-center',\n icon: [512, 512, [\"compress-alt\"], \"f422\", \"M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H296c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272H216c13.3 0 24 10.7 24 24V440c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z\"]\n};\nvar faCompressAlt = faDownLeftAndUpRightToCenter;\nvar faExplosion = {\n prefix: 'fas',\n iconName: 'explosion',\n icon: [576, 512, [], \"e4e9\", \"M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87H378.5c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64H117.8L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448v0H512v0h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64zM288 0c13.3 0 24 10.7 24 24V72c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24z\"]\n};\nvar faFileLines = {\n prefix: 'fas',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M128 64c0-17.7 14.3-32 32-32H320c17.7 0 32 14.3 32 32V416h96V256c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H512V448c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V96H192V256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V64z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8v96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304V208z\"]\n};\nvar faBuildingUn = {\n prefix: 'fas',\n iconName: 'building-un',\n icon: [384, 512, [], \"e4d9\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM237.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V80c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faCalendarDays = {\n prefix: 'fas',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faAnchorCircleCheck = {\n prefix: 'fas',\n iconName: 'anchor-circle-check',\n icon: [640, 512, [], \"e4aa\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faBuildingCircleArrowRight = {\n prefix: 'fas',\n iconName: 'building-circle-arrow-right',\n icon: [640, 512, [], \"e4d1\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V232.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm96 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6L521.4 352H432c-8.8 0-16 7.2-16 16s7.2 16 16 16h89.4l-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"]\n};\nvar faVolleyball = {\n prefix: 'fas',\n iconName: 'volleyball',\n icon: [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z\"]\n};\nvar faVolleyballBall = faVolleyball;\nvar faArrowsUpToLine = {\n prefix: 'fas',\n iconName: 'arrows-up-to-line',\n icon: [576, 512, [], \"e4c2\", \"M32 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96zM9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 237.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L416 237.3 416 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [\"sort-desc\"], \"f0dd\", \"M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z\"]\n};\nvar faSortDesc = faSortDown;\nvar faCircleMinus = {\n prefix: 'fas',\n iconName: 'circle-minus',\n icon: [512, 512, [\"minus-circle\"], \"f056\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232H328c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusCircle = faCircleMinus;\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [576, 512, [], \"f52b\", \"M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 288h32V480 32zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128h96V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H512V128c0-35.3-28.7-64-64-64H352v64z\"]\n};\nvar faRightFromBracket = {\n prefix: 'fas',\n iconName: 'right-from-bracket',\n icon: [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSignOutAlt = faRightFromBracket;\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [512, 512, [9883], \"f5d2\", \"M256 398.8c-11.8 5.1-23.4 9.7-34.9 13.5c16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM446 256c33 45.2 44.3 90.9 23.6 128c-20.2 36.3-62.5 49.3-115.2 43.2c-22 52.1-55.6 84.8-98.4 84.8s-76.4-32.7-98.4-84.8c-52.7 6.1-95-6.8-115.2-43.2C21.7 346.9 33 301.2 66 256c-33-45.2-44.3-90.9-23.6-128c20.2-36.3 62.5-49.3 115.2-43.2C179.6 32.7 213.2 0 256 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2c20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2c31.8 1.4 38.6-8.7 40.2-11.7c2.3-4.2 7-17.9-11.9-48.1c-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2c7.6 6.1 14.8 12.3 21.6 18.6c18.9-30.2 14.2-44 11.9-48.1c-1.6-2.9-8.4-13-40.2-11.7zM290.9 99.7C274.1 65.9 259.9 64 256 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5c11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2c-31.8-1.4-38.6 8.7-40.2 11.7c-2.3 4.2-7 17.9 11.9 48.1c6.8-6.3 14-12.5 21.6-18.6zM110.2 304.8C91.4 335 96 348.7 98.3 352.9c1.6 2.9 8.4 13 40.2 11.7c-2.8-13.1-5-26.9-6.7-41.2c-7.6-6.1-14.8-12.3-21.6-18.6zM336 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [129532], \"e06e\", \"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM416 32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96H160c-53 0-96-43-96-96s43-96 96-96h88.4c-15.2-17-24.4-39.4-24.4-64H96c-53 0-96 43-96 96V416c0 53 43 96 96 96H416c53 0 96-43 96-96V288c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64H352c35.3 0 64-28.7 64-64s-28.7-64-64-64H320 160z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M500.3 7.3C507.7 13.3 512 22.4 512 32V176c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V71L352 90.2V208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V64c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM74.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2h61.7c10.7 0 20.7 5.3 26.6 14.2L213.3 304H240c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V352c0-26.5 21.5-48 48-48H74.7zM192 408a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM478.7 278.3L440.3 368H496c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L391.7 400H336c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L19.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z\"]\n};\nvar faHeartMusicCameraBolt = faIcons;\nvar faMicrophoneLinesSlash = {\n prefix: 'fas',\n iconName: 'microphone-lines-slash',\n icon: [640, 512, [\"microphone-alt-slash\"], \"f539\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8V256H358.9l-34.5-27c2.9-3.1 7-5 11.6-5h80V192H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zM358.2 378.2C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9z\"]\n};\nvar faMicrophoneAltSlash = faMicrophoneLinesSlash;\nvar faBridgeCircleCheck = {\n prefix: 'fas',\n iconName: 'bridge-circle-check',\n icon: [640, 512, [], \"e4c9\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [448, 512, [], \"e06a\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM216 280v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V360H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V280c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256v40c0 13.3 10.7 24 24 24s24-10.7 24-24V256zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1v40c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128v24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7V256c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256v24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8V256c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96v24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7V256c0-28.7 23.3-52 52-52s52 23.3 52 52v24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1V256c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24v24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9V256z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z\"]\n};\nvar faMagnifyingGlassLocation = {\n prefix: 'fas',\n iconName: 'magnifying-glass-location',\n icon: [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faSearchLocation = faMagnifyingGlassLocation;\nvar faForwardStep = {\n prefix: 'fas',\n iconName: 'forward-step',\n icon: [320, 512, [\"step-forward\"], \"f051\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241V96c0-17.7 14.3-32 32-32s32 14.3 32 32V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V271l-11.5 9.6-192 160z\"]\n};\nvar faStepForward = faForwardStep;\nvar faFaceSmileBeam = {\n prefix: 'fas',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [448, 512, [127937], \"f11e\", \"M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1V345.8c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V400 334 64 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9v65.5L64 252.6V318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3V238.7l38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9v66.7l-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8v71.4c21.8 1.9 43.3 6.7 64 14.4V244.2l22.7 6.7c13.5 4 27.3 6.4 41.3 7.4V194c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12v-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8v72.4c-13-.4-26 .8-38.7 3.6L128 173.2V98L64 114v73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2V251.9l-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5v77.4zm64-149.4V115.4c-20.9 6.1-42.4 9.1-64 9.1V194c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"]\n};\nvar faFootball = {\n prefix: 'fas',\n iconName: 'football',\n icon: [512, 512, [127944, \"football-ball\"], \"f44e\", \"M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6c-18.3 29.8-30.9 62.3-39.2 95.4L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faFootballBall = faFootball;\nvar faSchoolCircleExclamation = {\n prefix: 'fas',\n iconName: 'school-circle-exclamation',\n icon: [640, 512, [], \"e56c\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64v64l178.7 0L128 338.7V32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H173.3L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-274.7z\"]\n};\nvar faAnglesDown = {\n prefix: 'fas',\n iconName: 'angles-down',\n icon: [448, 512, [\"angle-double-down\"], \"f103\", \"M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faAngleDoubleDown = faAnglesDown;\nvar faUsersRectangle = {\n prefix: 'fas',\n iconName: 'users-rectangle',\n icon: [640, 512, [], \"e594\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H544c53 0 96-43 96-96V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zm159.8 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3C119.9 256 96 279.9 96 309.3zM461.2 336h56.1c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nvar faPeopleRoof = {\n prefix: 'fas',\n iconName: 'people-roof',\n icon: [640, 512, [], \"e537\", \"M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 160a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM144 256a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm312 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM226.9 491.4L200 441.5V480c0 17.7-14.3 32-32 32H120c-17.7 0-32-14.3-32-32V441.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6h19.5c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5V480c0 17.7-14.3 32-32 32H472c-17.7 0-32-14.3-32-32V441.5l-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5V400c0 17.7-14.3 32-32 32H296c-17.7 0-32-14.3-32-32V345.5l-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z\"]\n};\nvar faPeopleLine = {\n prefix: 'fas',\n iconName: 'people-line',\n icon: [640, 512, [], \"e534\", \"M360 72a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM144 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM496 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5V272c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V217.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5z\"]\n};\nvar faBeerMugEmpty = {\n prefix: 'fas',\n iconName: 'beer-mug-empty',\n icon: [512, 512, [\"beer\"], \"f0fc\", \"M32 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V96h51.2c42.4 0 76.8 34.4 76.8 76.8V274.9c0 30.4-17.9 57.9-45.6 70.2L384 381.7V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7V172.8c0-7.1-5.7-12.8-12.8-12.8H384V311.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144z\"]\n};\nvar faBeer = faBeerMugEmpty;\nvar faDiagramPredecessor = {\n prefix: 'fas',\n iconName: 'diagram-predecessor',\n icon: [512, 512, [], \"e477\", \"M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z\"]\n};\nvar faArrowUpLong = {\n prefix: 'fas',\n iconName: 'arrow-up-long',\n icon: [384, 512, [\"long-arrow-up\"], \"f176\", \"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"]\n};\nvar faLongArrowUp = faArrowUpLong;\nvar faFireFlameSimple = {\n prefix: 'fas',\n iconName: 'fire-flame-simple',\n icon: [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"]\n};\nvar faBurn = faFireFlameSimple;\nvar faPerson = {\n prefix: 'fas',\n iconName: 'person',\n icon: [320, 512, [129485, \"male\"], \"f183\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152z\"]\n};\nvar faMale = faPerson;\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96V352h64V96H512V352h64V96c0-35.3-28.7-64-64-64H128zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480H563.2c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2H19.2z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [512, 512, [], \"f6dd\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V304H176c-35.3 0-64 28.7-64 64V512H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM200 352h16c22.1 0 40 17.9 40 40v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-4.4-3.6-8-8-8H200c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-8c0-8.8 7.2-16 16-16s16 7.2 16 16v8c0 22.1-17.9 40-40 40H200c-22.1 0-40-17.9-40-40V392c0-22.1 17.9-40 40-40zm133.1 0H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H333.1c-7.2 0-13.1 5.9-13.1 13.1c0 5.2 3 9.9 7.8 12l37.4 16.6c16.3 7.2 26.8 23.4 26.8 41.2c0 24.9-20.2 45.1-45.1 45.1H304c-8.8 0-16-7.2-16-16s7.2-16 16-16h42.9c7.2 0 13.1-5.9 13.1-13.1c0-5.2-3-9.9-7.8-12l-37.4-16.6c-16.3-7.2-26.8-23.4-26.8-41.2c0-24.9 20.2-45.1 45.1-45.1zm98.9 0c8.8 0 16 7.2 16 16v31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66V368c0-8.8 7.2-16 16-16s16 7.2 16 16v31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6V368c0-8.8 7.2-16 16-16z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32S0 81.7 0 64V62.8c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32V288c0 17.7 14.3 32 32 32H288V160c0-17.7 14.3-32 32-32s32 14.3 32 32V320H544c17.7 0 32-14.3 32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 53-43 96-96 96H352v64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V384H96c-53 0-96-43-96-96V160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H96V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H192V256 160c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32v96 32H384V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H480V256 160c0-17.7 14.3-32 32-32z\"]\n};\nvar faTruckPlane = {\n prefix: 'fas',\n iconName: 'truck-plane',\n icon: [640, 512, [], \"e58f\", \"M200 0c-30.6 0-56 54.7-56 86.1V192.5L7.8 274.3C2.9 277.2 0 282.4 0 288v64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37v81.2l-50 40c-3.8 3-6 7.6-6 12.5v32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15V463.4c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1V408 325.5 184l0-1.1 0 0V86.1C256 54.7 231.5 0 200 0zm88 176V400c0 20.9 13.4 38.7 32 45.3V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V448H544v40c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V445.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7H539.7c9.2 0 17.2 6 20.5 14.7L576 304H352l15.8-49.3zM568 352a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM336 376a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 224a128 128 0 1 0 0-256 128 128 0 1 0 0 256zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFaceGrinStars = {\n prefix: 'fas',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm407.4 75.5c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", \"M160 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7H302.9c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8V64H160V208.5zM288 64V208.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L366.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C374 314.1 384 347.9 384 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5H76.1c-17.3 0-34.2-7.1-43.8-21.5C11.9 460.1 0 423.4 0 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14V64C78.3 64 64 49.7 64 32S78.3 0 96 0h16H272h16c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"]\n};\nvar faSpaghettiMonsterFlying = {\n prefix: 'fas',\n iconName: 'spaghetti-monster-flying',\n icon: [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1l0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faPastafarianism = faSpaghettiMonsterFlying;\nvar faArrowDownUpAcrossLine = {\n prefix: 'fas',\n iconName: 'arrow-down-up-across-line',\n icon: [576, 512, [], \"e4af\", \"M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V288H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H448V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3V224H192 128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192h64V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192zM448 320H384V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320z\"]\n};\nvar faSpoon = {\n prefix: 'fas',\n iconName: 'spoon',\n icon: [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"]\n};\nvar faUtensilSpoon = faSpoon;\nvar faJarWheat = {\n prefix: 'fas',\n iconName: 'jar-wheat',\n icon: [320, 512, [], \"e517\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm112 0H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7zM112 352H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416H144v32c0 8.8 7.2 16 16 16s16-7.2 16-16V416h21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z\"]\n};\nvar faEnvelopesBulk = {\n prefix: 'fas',\n iconName: 'envelopes-bulk',\n icon: [640, 512, [\"mail-bulk\"], \"f674\", \"M128 0C110.3 0 96 14.3 96 32V224h96V192c0-35.3 28.7-64 64-64H480V32c0-17.7-14.3-32-32-32H128zM256 160c-17.7 0-32 14.3-32 32v32h96c35.3 0 64 28.7 64 64V416H576c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H256zm240 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM64 256c-17.7 0-32 14.3-32 32v13L187.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L352 301V288c0-17.7-14.3-32-32-32H64zm288 84.8L216 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L32 340.8V480c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V340.8z\"]\n};\nvar faMailBulk = faEnvelopesBulk;\nvar faFileCircleExclamation = {\n prefix: 'fas',\n iconName: 'file-circle-exclamation',\n icon: [576, 512, [], \"e4eb\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faCircleH = {\n prefix: 'fas',\n iconName: 'circle-h',\n icon: [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM368 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H192l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H320V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHospitalSymbol = faCircleH;\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zm64 32v64c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H80zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H216z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM208 288h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z\"]\n};\nvar faContactBook = faAddressBook;\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z\"]\n};\nvar faK = {\n prefix: 'fas',\n iconName: 'k',\n icon: [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249V64c0-17.7-14.3-32-32-32S0 46.3 0 64V328 448c0 17.7 14.3 32 32 32s32-14.3 32-32V341l64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"]\n};\nvar faLandmarkFlag = {\n prefix: 'fas',\n iconName: 'landmark-flag',\n icon: [512, 512, [], \"e51c\", \"M272 0h80c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H272v32H464c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H240V16c0-8.8 7.2-16 16-16h16zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"]\n};\nvar faPencil = {\n prefix: 'fas',\n iconName: 'pencil',\n icon: [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPencilAlt = faPencil;\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [9194], \"f04a\", \"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3V256v41.7L459.5 440.6zM256 352V256 128 96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V352z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [256, 512, [], \"f0da\", \"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [640, 512, [128490, 61670], \"f086\", \"M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M160 0c-23.7 0-44.4 12.9-55.4 32H48C21.5 32 0 53.5 0 80V400c0 26.5 21.5 48 48 48H192V176c0-44.2 35.8-80 80-80h48V80c0-26.5-21.5-48-48-48H215.4C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48V448v16c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V243.9c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1H320 272zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faFileClipboard = faPaste;\nvar faCodePullRequest = {\n prefix: 'fas',\n iconName: 'code-pull-request',\n icon: [512, 512, [], \"e13c\", \"M305.8 2.1C314.4 5.9 320 14.5 320 24V64h16c70.7 0 128 57.3 128 128V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-35.3-28.7-64-64-64H320v40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80A24 24 0 1 0 56 80a24 24 0 1 0 48 0zm8 73.3V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm328 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16z\"]\n};\nvar faTruckRampBox = {\n prefix: 'fas',\n iconName: 'truck-ramp-box',\n icon: [640, 512, [\"truck-loading\"], \"f4de\", \"M640 0V400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8V64c0-35.3 28.7-64 64-64H640zM576 400a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z\"]\n};\nvar faTruckLoading = faTruckRampBox;\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faVialVirus = {\n prefix: 'fas',\n iconName: 'vial-virus',\n icon: [512, 512, [], \"e597\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V384c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5V96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 96 32zM96 192V96h64v96H96zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-88a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm40 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faSheetPlastic = {\n prefix: 'fas',\n iconName: 'sheet-plastic',\n icon: [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64H224V384c0-17.7 14.3-32 32-32H384V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384H256V512L384 384z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144V368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144H128v96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48V144z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [129399], \"f504\", \"M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 399.5 56.4 330 132.8 309.9c6-1.6 12.2 .9 15.9 5.8l62.5 83.3c6.4 8.5 19.2 8.5 25.6 0l62.5-83.3c3.7-4.9 9.9-7.4 15.9-5.8C391.6 330 448 399.5 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H160z\"]\n};\nvar faPersonArrowUpFromLine = {\n prefix: 'fas',\n iconName: 'person-arrow-up-from-line',\n icon: [640, 512, [], \"e539\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32V141.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faScrollTorah = {\n prefix: 'fas',\n iconName: 'scroll-torah',\n icon: [640, 512, [\"torah\"], \"f6a0\", \"M96 480V32C96 14.3 74.5 0 48 0S0 14.3 0 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32H128V480H512V32zM592 0c-26.5 0-48 14.3-48 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32V32c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3H271l31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180h56.7c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3H369l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332H214.3c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332H298.8L320 368.4zM254.5 256l30.3 52h70.4l30.3-52-30.3-52H284.8l-30.3 52zm144.9 23.8L383 308h32.8l-16.4-28.2zM415.8 204H383l16.4 28.2L415.8 204zM320 143.6L298.8 180h42.4L320 143.6zM224.2 204l16.4 28.2L257 204H224.2zM257 308l-16.4-28.2L224.2 308H257z\"]\n};\nvar faTorah = faScrollTorah;\nvar faBroomBall = {\n prefix: 'fas',\n iconName: 'broom-ball',\n icon: [576, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M566.6 9.4c12.5 12.5 12.5 32.8 0 45.3l-192 192 34.7 34.7c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H364.3L256 211.7V182.6c0-12.5 10.1-22.6 22.6-22.6c6 0 11.8 2.4 16 6.6l34.7 34.7 192-192c12.5-12.5 32.8-12.5 45.3 0zm-344 225.5L341.1 353.4c3.7 42.7-11.7 85.2-42.3 115.8C271.4 496.6 234.2 512 195.5 512L22.1 512C9.9 512 0 502.1 0 489.9c0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2c0-31.5 12.5-61.7 34.8-84l8-8c30.6-30.6 73.1-45.9 115.8-42.3zM464 352a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nvar faQuidditch = faBroomBall;\nvar faQuidditchBroomBall = faBroomBall;\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128H192c-70.7 0-128-57.3-128-128s57.3-128 128-128H384zM576 256c0-106-86-192-192-192H192C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192zM192 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nvar faBoxArchive = {\n prefix: 'fas',\n iconName: 'box-archive',\n icon: [512, 512, [\"archive\"], \"f187\", \"M32 32H480c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H32C14.3 128 0 113.7 0 96V64C0 46.3 14.3 32 32 32zm0 128H480V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V160zm128 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"]\n};\nvar faArchive = faBoxArchive;\nvar faPersonDrowning = {\n prefix: 'fas',\n iconName: 'person-drowning',\n icon: [576, 512, [], \"e545\", \"M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V96.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3V64zM320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faArrowDown91 = {\n prefix: 'fas',\n iconName: 'arrow-down-9-1',\n icon: [576, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM450.7 294c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2V416H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V320c0-10.3-4.9-19.9-13.3-26zM418.3 91a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 91zM405.1 203.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nvar faSortNumericDesc = faArrowDown91;\nvar faSortNumericDownAlt = faArrowDown91;\nvar faFaceGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M128 0h64c17.7 0 32 14.3 32 32v96H96V32c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96H224c53 0 96 43 96 96V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V256zm240 80A80 80 0 1 0 80 336a80 80 0 1 0 160 0zM256 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM448 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M288 64v64H416L368 64H288zM419.2 25.6L496 128h80c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64H288c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H224V48c0-26.5 21.5-48 48-48h96c20.1 0 39.1 9.5 51.2 25.6zM152 256h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512H152c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512H472c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faW = {\n prefix: 'fas',\n iconName: 'w',\n icon: [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"]\n};\nvar faEarthAfrica = {\n prefix: 'fas',\n iconName: 'earth-africa',\n icon: [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9v41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.4-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32v28c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16v48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4V318.6c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nvar faGlobeAfrica = faEarthAfrica;\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C0 175.3 143.3 32 320 32s320 143.3 320 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-70.7 57.3-128 128-128s128 57.3 128 128v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-35.3-28.7-64-64-64zM160 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-123.7 100.3-224 224-224s224 100.3 224 224v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-88.4-71.6-160-160-160s-160 71.6-160 160z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z\"]\n};\nvar faTabletScreenButton = {\n prefix: 'fas',\n iconName: 'tablet-screen-button',\n icon: [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64H64V384H384V64z\"]\n};\nvar faTabletAlt = faTabletScreenButton;\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5v1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3v-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z\"]\n};\nvar faTrowelBricks = {\n prefix: 'fas',\n iconName: 'trowel-bricks',\n icon: [512, 512, [], \"e58a\", \"M240.8 4.8C250.3 10.6 256 20.9 256 32v72h89c3.6-13.8 16.1-24 31-24h88c26.5 0 48 21.5 48 48s-21.5 48-48 48H376c-14.9 0-27.4-10.2-31-24H256v72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V256zM32 384h96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32zm192 0H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32z\"]\n};\nvar faFaceFlushed = {\n prefix: 'fas',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM176 384c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16s-7.2-16-16-16H192c-8.8 0-16 7.2-16 16zm-16-88a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [576, 512, [], \"f80d\", \"M48 0C21.5 0 0 21.5 0 48V256H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v64H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v80c0 26.5 21.5 48 48 48H265.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM152 64h16c8.8 0 16 7.2 16 16v24h24c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H184v24c0 8.8-7.2 16-16 16H152c-8.8 0-16-7.2-16-16V152H112c-8.8 0-16-7.2-16-16V120c0-8.8 7.2-16 16-16h24V80c0-8.8 7.2-16 16-16zM512 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM288 477.1c0 19.3 15.6 34.9 34.9 34.9H541.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H381.1c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nvar faTentArrowLeftRight = {\n prefix: 'fas',\n iconName: 'tent-arrow-left-right',\n icon: [576, 512, [], \"e57f\", \"M488.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L489.5 72 86.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H240h16c17.7 0 32-14.3 32-32V361.9c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7H464h16c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [\"legal\"], \"f0e3\", \"M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z\"]\n};\nvar faLegal = faGavel;\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M128 32h32c17.7 0 32 14.3 32 32V96H96V64c0-17.7 14.3-32 32-32zm64 96V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V388.9c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28H192zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3V448c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V128h99.8zM320 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V96H320V64zm-32 64V288H224V128h64z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 21.2-5.1 41.1-14.2 58.7L416 300.8V96c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M92.5 0H208c40 0 52 24 64 48s24 48 64 48h85.2C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288H128l-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64H80c-8.8 0-16 7.2-16 16s7.2 16 16 16h48H384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H418.5l25.6-64H464c26.5 0 48 21.5 48 48V384H0V272c0-26.5 21.5-48 48-48H79zM0 416H512v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V416z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [127949], \"f21c\", \"M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h57.7l16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7H64c-17.7 0-32 14.3-32 32v32h96c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32h70.4c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128H480c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H459.6c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21H280zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40h66.4C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104H187.3zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faBellConcierge = {\n prefix: 'fas',\n iconName: 'bell-concierge',\n icon: [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24h16v33.3C119.6 157.2 32 252.4 32 368H480c0-115.6-87.6-210.8-200-222.7V112h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H256 216zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z\"]\n};\nvar faConciergeBell = faBellConcierge;\nvar faPenRuler = {\n prefix: 'fas',\n iconName: 'pen-ruler',\n icon: [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z\"]\n};\nvar faPencilRuler = faPenRuler;\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [640, 512, [\"people-arrows-left-right\"], \"e068\", \"M64 64a64 64 0 1 1 128 0A64 64 0 1 1 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160h44.8c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2V464c0 26.5-21.5 48-48 48H112c-26.5 0-48-21.5-48-48V348.3c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM448 64a64 64 0 1 1 128 0A64 64 0 1 1 448 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1h44.8c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6V464c0 26.5-21.5 48-48 48H496c-26.5 0-48-21.5-48-48V391.2l47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240v32h96V240c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V336H272v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z\"]\n};\nvar faPeopleArrowsLeftRight = faPeopleArrows;\nvar faMarsAndVenusBurst = {\n prefix: 'fas',\n iconName: 'mars-and-venus-burst',\n icon: [640, 512, [], \"e523\", \"M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59 146.6 136 158.2V408H352c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v32c0 13.3 10.7 24 24 24s24-10.7 24-24V456h24c13.3 0 24-10.7 24-24s-10.7-24-24-24H424V382.2c77-11.6 136-78 136-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H504zM400 128a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z\"]\n};\nvar faSquareCaretRight = {\n prefix: 'fas',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faScissors = {\n prefix: 'fas',\n iconName: 'scissors',\n icon: [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faCut = faScissors;\nvar faSunPlantWilt = {\n prefix: 'fas',\n iconName: 'sun-plant-wilt',\n icon: [640, 512, [], \"e57a\", \"M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32v53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6V176c0-44.2-35.8-80-80-80s-80 35.8-80 80v22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80v21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6V272c0-17.7 14.3-32 32-32s32 14.3 32 32v8V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H504V280v-8V176z\"]\n};\nvar faToiletsPortable = {\n prefix: 'fas',\n iconName: 'toilets-portable',\n icon: [576, 512, [], \"e584\", \"M32 0H224c17.7 0 32 14.3 32 32V64H0V32C0 14.3 14.3 0 32 0zM0 96H24 232h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H48v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM192 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16zM352 0H544c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32zM320 96h24H552h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H368v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM512 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6V352c0 53-114.6 96-256 96S0 405 0 352V222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M64 256V160H224v96H64zm0 64H224v96H64V320zm224 96V320H448v96H288zM448 256H288V160H448v96zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faMagnifyingGlassArrowRight = {\n prefix: 'fas',\n iconName: 'magnifying-glass-arrow-right',\n icon: [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31H120c-13.3 0-24 10.7-24 24s10.7 24 24 24H238.1l-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTachographDigital = {\n prefix: 'fas',\n iconName: 'tachograph-digital',\n icon: [640, 512, [\"digital-tachograph\"], \"f566\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm32 64H320c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16H560c8.8 0 16 7.2 16 16s-7.2 16-16 16H400c-8.8 0-16-7.2-16-16zM80 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faDigitalTachograph = faTachographDigital;\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320H618.7c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192H106.7zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H485.3c10.5 0 19.5-6 23.9-14.8L324.9 352H261.3zM512 160A80 80 0 1 0 512 0a80 80 0 1 0 0 160z\"]\n};\nvar faClover = {\n prefix: 'fas',\n iconName: 'clover',\n icon: [448, 512, [], \"e139\", \"M216.6 49.9C205.1 38.5 189.5 32 173.3 32C139.4 32 112 59.4 112 93.3v4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4H61.3C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368h4.9c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34v4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3v-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4h4.9c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3h-4.9c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34V93.3C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z\"]\n};\nvar faMailReply = faReply;\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [9770], \"f699\", \"M0 256C0 114.6 114.6 0 256 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512C114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"]\n};\nvar faHouseFire = {\n prefix: 'fas',\n iconName: 'house-fire',\n icon: [640, 512, [], \"e50c\", \"M288 350.1l0 1.9H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM480 512c-88.4 0-160-71.6-160-160c0-76.7 62.5-144.7 107.2-179.4c5-3.9 10.9-5.8 16.8-5.8c7.9-.1 16 3.1 22 9.2l46 46 11.3-11.3c11.7-11.7 30.6-12.7 42.3-1C624.5 268 640 320.2 640 352c0 88.4-71.6 160-160 160zm64-111.8c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 327.1 416 363.6 416 400.2c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faSquareMinus = {\n prefix: 'fas',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 200H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [128641], \"f533\", \"M128 32c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H384v64h32c88.4 0 160 71.6 160 160v64c0 17.7-14.3 32-32 32H384 320c-20.1 0-39.1-9.5-51.2-25.6l-71.4-95.2c-3.5-4.7-8.3-8.3-13.7-10.5L47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64H48c10.1 0 19.6 4.7 25.6 12.8L112 128H320V64H160c-17.7 0-32-14.3-32-32zM384 320H512V288c0-53-43-96-96-96H384V320zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H536.2c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'fas',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faFileCircleQuestion = {\n prefix: 'fas',\n iconName: 'file-circle-question',\n icon: [576, 512, [], \"e4ef\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M0 32C0 14.3 14.3 0 32 0H160c17.7 0 32 14.3 32 32V416c0 53-43 96-96 96s-96-43-96-96V32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9V154l75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192H480c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H182.8zM128 64H64v64h64V64zM64 192v64h64V192H64zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V416H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V320H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V224H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V128z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faNavicon = faBars;\nvar faPeopleGroup = {\n prefix: 'fas',\n iconName: 'people-group',\n icon: [640, 512, [], \"e533\", \"M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3V245.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V389.2C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112h32c24 0 46.2 7.5 64.4 20.3zM448 416V394.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176h32c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2V416c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3V261.7c-10 11.3-16 26.1-16 42.3zm144-42.3v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2V448c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V405.2c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112h32c61.9 0 112 50.1 112 112z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z\"]\n};\nvar faHourglass3 = faHourglassEnd;\nvar faHeartCrack = {\n prefix: 'fas',\n iconName: 'heart-crack',\n icon: [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1v5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141z\"]\n};\nvar faHeartBroken = faHeartCrack;\nvar faSquareUpRight = {\n prefix: 'fas',\n iconName: 'square-up-right',\n icon: [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM320 313.4V176c0-8.8-7.2-16-16-16H166.6c-12.5 0-22.6 10.1-22.6 22.6c0 6 2.4 11.8 6.6 16L184 232l-66.3 66.3C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7L248 296l33.4 33.4c4.2 4.2 10 6.6 16 6.6c12.5 0 22.6-10.1 22.6-22.6z\"]\n};\nvar faExternalLinkSquareAlt = faSquareUpRight;\nvar faFaceKissBeam = {\n prefix: 'fas',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [127902], \"f008\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM48 368v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H416zM48 240v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H416zM48 112v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H416zM160 128v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32H192z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [640, 512, [], \"f547\", \"M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z\"]\n};\nvar faPeopleRobbery = {\n prefix: 'fas',\n iconName: 'people-robbery',\n icon: [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V174.3c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64v96l0 .6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352H88V480c0 17.7 14.3 32 32 32s32-14.3 32-32V252.7l13 20.5c5.9 9.2 16.1 14.9 27 14.9h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H209.6l-37.4-58.9C157.6 142 132.1 128 104.7 128H72z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [256, 512, [], \"f0d9\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"]\n};\nvar faCircleExclamation = {\n prefix: 'fas',\n iconName: 'circle-exclamation',\n icon: [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faExclamationCircle = faCircleExclamation;\nvar faSchoolCircleXmark = {\n prefix: 'fas',\n iconName: 'school-circle-xmark',\n icon: [640, 512, [], \"e56d\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z\"]\n};\nvar faArrowRightFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-from-bracket',\n icon: [512, 512, [\"sign-out\"], \"f08b\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"]\n};\nvar faSignOut = faArrowRightFromBracket;\nvar faCircleChevronDown = {\n prefix: 'fas',\n iconName: 'circle-chevron-down',\n icon: [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"]\n};\nvar faChevronCircleDown = faCircleChevronDown;\nvar faUnlockKeyhole = {\n prefix: 'fas',\n iconName: 'unlock-keyhole',\n icon: [448, 512, [\"unlock-alt\"], \"f13e\", \"M224 64c-44.2 0-80 35.8-80 80v48H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80V144C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h64z\"]\n};\nvar faUnlockAlt = faUnlockKeyhole;\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zM81.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6S-3.3 490.7 1.9 478.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM313.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z\"]\n};\nvar faHeadphonesSimple = {\n prefix: 'fas',\n iconName: 'headphones-simple',\n icon: [512, 512, [\"headphones-alt\"], \"f58f\", \"M256 80C141.1 80 48 173.1 48 288V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288C0 146.6 114.6 32 256 32s256 114.6 256 256V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64h16c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V352zm288-64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h16z\"]\n};\nvar faHeadphonesAlt = faHeadphonesSimple;\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [576, 512, [], \"f0e8\", \"M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z\"]\n};\nvar faCircleDollarToSlot = {\n prefix: 'fas',\n iconName: 'circle-dollar-to-slot',\n icon: [512, 512, [\"donate\"], \"f4b9\", \"M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3c-.3-.1-.5-.2-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 84c-11 0-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V312c0 11 9 20 20 20s20-9 20-20V298.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V104c0-11-9-20-20-20zM48 352H64c19.5 25.9 44 47.7 72.2 64H64v32H256 448V416H375.8c28.2-16.3 52.8-38.1 72.2-64h16c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V400c0-26.5 21.5-48 48-48z\"]\n};\nvar faDonate = faCircleDollarToSlot;\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [576, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128v7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6V320H576V248.6c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3V128c0-35.3-28.7-64-64-64H64zM576 352H0v64c0 17.7 14.3 32 32 32H80V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h48c17.7 0 32-14.3 32-32V352zM192 160v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faRoadSpikes = {\n prefix: 'fas',\n iconName: 'road-spikes',\n icon: [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256V116.8c0-15.8 20.5-22 29.3-8.9L320 256V116.8c0-15.8 20.5-22 29.3-8.9L448 256V116.8c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7H512 448 384 320 256 192 64V116.8zM32 384H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFireBurner = {\n prefix: 'fas',\n iconName: 'fire-burner',\n icon: [640, 512, [], \"e4f1\", \"M320 352c-88.4 0-160-71.6-160-160c0-76.7 62.5-144.7 107.2-179.4c5-3.9 10.9-5.8 16.8-5.8c7.9-.1 16 3.1 22 9.2l46 46 11.3-11.3c11.7-11.7 30.6-12.7 42.3-1C464.5 108 480 160.2 480 192c0 88.4-71.6 160-160 160zm64-111.8c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C293 167.1 256 203.6 256 240.2c0 35.3 28.7 64 64 64s64-28.7 64-64zM32 288c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32s-14.3 32-32 32v64H544V320c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32V288zM320 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm160-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM192 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V64 368 480c0 17.7 14.3 32 32 32s32-14.3 32-32V352l64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48V32z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [128334], \"f6e6\", \"M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32V320H96c-17.7 0-32-14.3-32-32V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 53 43 96 96 96H288v64H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H544c53 0 96-43 96-96V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H352V144z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [129718], \"f52d\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nvar faVolumeLow = {\n prefix: 'fas',\n iconName: 'volume-low',\n icon: [448, 512, [128264, \"volume-down\"], \"f027\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z\"]\n};\nvar faVolumeDown = faVolumeLow;\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zm385.2 425L82.9 161.3C70.7 185.6 64 212.2 64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104.1-17.9z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [640, 512, [127782], \"f743\", \"M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l10.4 62.4c-23.3 10.8-42.9 28.4-56 50.3c-14.6-9-31.8-14.1-50.2-14.1c-53 0-96 43-96 96c0 35.5 19.3 66.6 48 83.2c.8 31.8 13.2 60.7 33.1 82.7l-56 39.2c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM208 144c13.8 0 26.7 4.4 37.1 11.9c-1.2 4.1-2.2 8.3-3 12.6c-37.9 14.6-67.2 46.6-77.8 86.4C151.8 243.1 144 226.5 144 208c0-35.3 28.7-64 64-64zm69.4 276c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm74.5-116.1c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V64zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V64zM320 320c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"]\n};\nvar faWheatAwn = {\n prefix: 'fas',\n iconName: 'wheat-awn',\n icon: [512, 512, [\"wheat-alt\"], \"e2cd\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z\"]\n};\nvar faWheatAlt = faWheatAwn;\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V480c0 17.7 14.3 32 32 32s32-14.3 32-32V320h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H241.2c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z\"]\n};\nvar faHandsHoldingChild = {\n prefix: 'fas',\n iconName: 'hands-holding-child',\n icon: [640, 512, [], \"e4fa\", \"M320 0a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm44.7 164.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35h-7.6l-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [384, 512, [10033, 61545], \"2a\", \"M192 32c17.7 0 32 14.3 32 32V199.5l111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V312.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faSquareCheck = {\n prefix: 'fas',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faPesetaSign = {\n prefix: 'fas',\n iconName: 'peseta-sign',\n icon: [384, 512, [], \"e221\", \"M64 32C46.3 32 32 46.3 32 64v96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96V448c0 17.7 14.3 32 32 32s32-14.3 32-32V352h96c77.4 0 142-55 156.8-128H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-3.2C334 87 269.4 32 192 32H64zM282.5 160H96V96h96c41.8 0 77.4 26.7 90.5 64zM96 224H282.5c-13.2 37.3-48.7 64-90.5 64H96V224z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32H80h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H112V208H336V96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h48 48c17.7 0 32 14.3 32 32s-14.3 32-32 32H400V240 416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H368 320c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112V416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V240 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar faHeader = faHeading;\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [128123], \"f6e2\", \"M40.1 467.1l-11.2 9c-3.2 2.5-7.1 3.9-11.1 3.9C8 480 0 472 0 462.2V192C0 86 86 0 192 0S384 86 384 192V462.2c0 9.8-8 17.8-17.8 17.8c-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z\"]\n};\nvar faListSquares = faList;\nvar faSquarePhoneFlip = {\n prefix: 'fas',\n iconName: 'square-phone-flip',\n icon: [448, 512, [\"phone-square-alt\"], \"f87b\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z\"]\n};\nvar faPhoneSquareAlt = faSquarePhoneFlip;\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20h44v44c0 11 9 20 20 20s20-9 20-20V180h44c11 0 20-9 20-20s-9-20-20-20H356V96c0-11-9-20-20-20s-20 9-20 20v44H272c-11 0-20 9-20 20z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M192 64C86 64 0 150 0 256S86 448 192 448H448c106 0 192-86 192-192s-86-192-192-192H192zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V200z\"]\n};\nvar faCircleDot = {\n prefix: 'fas',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faFaceDizzy = {\n prefix: 'fas',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-224a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z\"]\n};\nvar faHouseMedicalCircleXmark = {\n prefix: 'fas',\n iconName: 'house-medical-circle-xmark',\n icon: [640, 512, [], \"e513\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [576, 512, [9978], \"f6bb\", \"M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4V464c0 26.5 21.5 48 48 48H288 528c26.5 0 48-21.5 48-48V440.4c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448H168.5L288 291.7 407.5 448H288z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M512 416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64V416zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24V312h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V200c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faPaintbrush = {\n prefix: 'fas',\n iconName: 'paintbrush',\n icon: [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H208c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z\"]\n};\nvar faPaintBrush = faPaintbrush;\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [128274], \"f023\", \"M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0H256c35.3 0 64 28.7 64 64V256h8c48.6 0 88 39.4 88 88v32c0 13.3 10.7 24 24 24s24-10.7 24-24V222c-27.6-7.1-48-32.2-48-62V96L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3V168v24 32V376c0 39.8-32.2 72-72 72s-72-32.2-72-72V344c0-22.1-17.9-40-40-40h-8V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64zM96 80v96c0 8.8 7.2 16 16 16H240c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16z\"]\n};\nvar faHotTubPerson = {\n prefix: 'fas',\n iconName: 'hot-tub-person',\n icon: [512, 512, [\"hot-tub\"], \"f593\", \"M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2V24zM0 320v16V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H277.3c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96v64zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm112 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2V24c0-13.3-10.7-24-24-24zM64 128A64 64 0 1 0 64 0a64 64 0 1 0 0 128z\"]\n};\nvar faHotTub = faHotTubPerson;\nvar faMapLocation = {\n prefix: 'fas',\n iconName: 'map-location',\n icon: [576, 512, [\"map-marked\"], \"f59f\", \"M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3V152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6V503zM15.1 187.3C6 191 0 199.8 0 209.6V480.4c0 17 17.1 28.6 32.9 22.3L160 451.8V200.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77V449.4l192 54.9V255z\"]\n};\nvar faMapMarked = faMapLocation;\nvar faHouseFloodWater = {\n prefix: 'fas',\n iconName: 'house-flood-water',\n icon: [576, 512, [], \"e50e\", \"M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192h16v73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2H464c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [448, 512, [127794], \"f1bb\", \"M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208H104L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320H80L5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5H192v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448H424.5c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320h33.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208h24.9c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z\"]\n};\nvar faBridgeLock = {\n prefix: 'fas',\n iconName: 'bridge-lock',\n icon: [640, 512, [], \"e4cc\", \"M32 64c0-17.7 14.3-32 32-32H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H536v64h-8c-61.9 0-112 50.1-112 112v24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V384c0-53-43-96-96-96V160h72V96H64C46.3 96 32 81.7 32 64zM408 96v64h80V96H408zm-48 64V96H280v64h80zM152 96v64h80V96H152zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faSackDollar = {\n prefix: 'fas',\n iconName: 'sack-dollar',\n icon: [512, 512, [128176], \"f81d\", \"M320 96H192L144.6 24.9C137.5 14.2 145.1 0 157.9 0H354.1c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128H320c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96H96c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4l0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84 88c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V424c0 11 9 20 20 20s20-9 20-20V410.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l0 0-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V216z\"]\n};\nvar faPenToSquare = {\n prefix: 'fas',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z\"]\n};\nvar faEdit = faPenToSquare;\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [128663], \"f5e4\", \"M171.3 96H224v96H111.3l30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192V96h81.2c9.7 0 18.9 4.4 25 12l67.2 84H272zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36H171.3c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256V368c0 17.7 14.3 32 32 32H65.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H385.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H608c17.7 0 32-14.3 32-32V320c0-65.2-48.8-119-111.8-127zM434.7 368a48 48 0 1 1 90.5 32 48 48 0 1 1 -90.5-32zM160 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faShareNodes = {\n prefix: 'fas',\n iconName: 'share-nodes',\n icon: [448, 512, [\"share-alt\"], \"f1e0\", \"M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z\"]\n};\nvar faShareAlt = faShareNodes;\nvar faHeartCircleMinus = {\n prefix: 'fas',\n iconName: 'heart-circle-minus',\n icon: [576, 512, [], \"e4ff\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 19-5.6 37.4-16 53H112c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.1 14.9H112z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [128300], \"f610\", \"M160 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96V288H160V264c0-30.9-25.1-56-56-56H56c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c4.4 0 8 3.6 8 8v24H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H256 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H400V264c0-4.4 3.6-8 8-8h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H408c-30.9 0-56 25.1-56 56v24H288V96zM480 416V384H32v32c0 53 43 96 96 96H384c53 0 96-43 96-96z\"]\n};\nvar faBagShopping = {\n prefix: 'fas',\n iconName: 'bag-shopping',\n icon: [448, 512, [\"shopping-bag\"], \"f290\", \"M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64v48H160V112zm-48 48H48c-26.5 0-48 21.5-48 48V416c0 53 43 96 96 96H352c53 0 96-43 96-96V208c0-26.5-21.5-48-48-48H336V112C336 50.1 285.9 0 224 0S112 50.1 112 112v48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faShoppingBag = faBagShopping;\nvar faArrowDownZA = {\n prefix: 'fas',\n iconName: 'arrow-down-z-a',\n icon: [576, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96H352c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400h40.4L416 359.6 395.8 400z\"]\n};\nvar faSortAlphaDesc = faArrowDownZA;\nvar faSortAlphaDownAlt = faArrowDownZA;\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M352 384H64L5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0h3.4c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192h2.8c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V448z\"]\n};\nvar faPersonRays = {\n prefix: 'fas',\n iconName: 'person-rays',\n icon: [512, 512, [], \"e54d\", \"M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9l-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H248zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z\"]\n};\nvar faFlaskVial = {\n prefix: 'fas',\n iconName: 'flask-vial',\n icon: [640, 512, [], \"e4f3\", \"M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96V64C14.3 64 0 49.7 0 32S14.3 0 32 0H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V309.9l-49 79.6zM96 64v96h64V64H96zM352 0H480h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V214.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4H261.4c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h32zm32 64V224c0 5.9-1.6 11.7-4.7 16.8L330.5 320h171l-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8V64H384z\"]\n};\nvar faHand = {\n prefix: 'fas',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32z\"]\n};\nvar faHandPaper = faHand;\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [128329], \"f679\", \"M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM281 66.7c-2.2-1.5-4.9-2.5-7.7-2.7c-.6 0-1.3-.1-1.9 0c-3.9 .2-7.4 1.7-10.1 4.2c-.9 .8-1.6 1.7-2.3 2.6c-1.7 2.4-2.7 5.3-2.9 8.5c0 .7 0 1.4 0 2.1c.2 2.2 .9 4.3 1.9 6.2l.3 .6c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .1-.1 .1-.1 0 0 0 0c5.9-5.8 9.5-13.9 9.5-22.8c0-17.7-14.3-32-32-32c-8.7 0-16.7 3.5-22.4 9.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48H109.8c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9H144h16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5c-.3-.9-.7-1.8-1.1-2.6c-1.2-2.2-2.8-4-4.7-5.4c-1.9-1.4-4.1-2.3-6.5-2.8c-1.4-.3-2.9-.3-4.4-.2c-2.5 .2-4.8 1-6.8 2.3c-1.1 .7-2.2 1.5-3.1 2.5c-2.4 2.5-4.1 5.8-4.5 9.5c-.1 .6-.1 1.1-.1 1.7c0 0 0 0 0 0c0 .8 .1 1.7 .2 2.5l0 .1c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64h22.6c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.2c-.3-1.3-.8-2.6-1.5-3.8c-1.1-2-2.6-3.8-4.4-5.1c-2.7-2-6-3.2-9.6-3.2l-.2 0c-8 .1-14.6 6.1-15.6 13.9l0 0c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96V288c0-53-43-96-96-96h-5.5c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4H245.2c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4z\"]\n};\nvar faWorm = {\n prefix: 'fas',\n iconName: 'worm',\n icon: [512, 512, [], \"e599\", \"M256 96c0-53 43-96 96-96h38.4C439.9 0 480 40.1 480 89.6V176v16V376c0 75.1-60.9 136-136 136s-136-60.9-136-136V296c0-22.1-17.9-40-40-40s-40 17.9-40 40V464c0 26.5-21.5 48-48 48s-48-21.5-48-48V296c0-75.1 60.9-136 136-136s136 60.9 136 136v80c0 22.1 17.9 40 40 40s40-17.9 40-40V192H352c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHouseCircleXmark = {\n prefix: 'fas',\n iconName: 'house-circle-xmark',\n icon: [640, 512, [], \"e50b\", \"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [128268], \"f1e6\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8C297 398 352 333.4 352 256V224c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [512, 512, [], \"f077\", \"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [576, 512, [128406], \"f259\", \"M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64h10.9 8.2c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [9201], \"f2f2\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H224 176zm72 192V320c0 13.3-10.7 24-24 24s-24-10.7-24-24V192c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFaceKiss = {\n prefix: 'fas',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faKiss = faFaceKiss;\nvar faBridgeCircleXmark = {\n prefix: 'fas',\n iconName: 'bridge-circle-xmark',\n icon: [640, 512, [], \"e4cb\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faFaceGrinTongue = {\n prefix: 'fas',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7V400H256V372.7c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32H128zM48 432L6.6 473.4c-4.2 4.2-6.6 10-6.6 16C0 501.9 10.1 512 22.6 512H297.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L272 432H48z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'fas',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faEarDeaf = {\n prefix: 'fas',\n iconName: 'ear-deaf',\n icon: [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7V400c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48v-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faDeaf = faEarDeaf;\nvar faDeafness = faEarDeaf;\nvar faHardOfHearing = faEarDeaf;\nvar faRoadCircleCheck = {\n prefix: 'fas',\n iconName: 'road-circle-check',\n icon: [640, 512, [], \"e564\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSquareRss = {\n prefix: 'fas',\n iconName: 'square-rss',\n icon: [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faRssSquare = faSquareRss;\nvar faLandMineOn = {\n prefix: 'fas',\n iconName: 'land-mine-on',\n icon: [640, 512, [], \"e51b\", \"M344 24V168c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32v32H192V320zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5H482.3c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512H115.8c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40.1 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V128.3c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2H112C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V413.3c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112H366.2c-29.9 0-54.2-24.3-54.2-54.2zM416 416v32H96V416H416z\"]\n};\nvar faStairs = {\n prefix: 'fas',\n iconName: 'stairs',\n icon: [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v96c0 17.7-14.3 32-32 32H320v96c0 17.7-14.3 32-32 32H192v96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V320c0-17.7 14.3-32 32-32h96V192c0-17.7 14.3-32 32-32h96V64z\"]\n};\nvar faI = {\n prefix: 'fas',\n iconName: 'i',\n icon: [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96h96V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V96h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 32z\"]\n};\nvar faHryvniaSign = {\n prefix: 'fas',\n iconName: 'hryvnia-sign',\n icon: [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M121.9 116.2C138.3 103.1 158.7 96 179.6 96H223c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H155.5l-50.6 28.9c-1.7 1-3.4 2-5.1 3.1H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H52.3c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113h43.4c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2H161c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H228.5l50.6-28.9c1.7-1 3.4-2 5.1-3.1H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H331.7c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113H179.6c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z\"]\n};\nvar faHryvnia = faHryvniaSign;\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 96c-26.5 0-48 21.5-48 48V256h96V144c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112V368c0 61.9-50.1 112-112 112S0 429.9 0 368V144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z\"]\n};\nvar faFaceGrinWide = {\n prefix: 'fas',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [129463], \"f5c9\", \"M186.1 52.1C169.3 39.1 148.7 32 127.5 32C74.7 32 32 74.7 32 127.5v6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2l36.7 205.8c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C192.2 323.7 207 312 224 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5v-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z\"]\n};\nvar faV = {\n prefix: 'fas',\n iconName: 'v',\n icon: [384, 512, [118], \"56\", \"M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z\"]\n};\nvar faBangladeshiTakaSign = {\n prefix: 'fas',\n iconName: 'bangladeshi-taka-sign',\n icon: [384, 512, [], \"e2e6\", \"M36 32.2C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8V160H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V384c0 53 43 96 96 96h32c106 0 192-86 192-192V256c0-53-43-96-96-96H272c-17.7 0-32 14.3-32 32s14.3 32 32 32h16c17.7 0 32 14.3 32 32v32c0 70.7-57.3 128-128 128H160c-17.7 0-32-14.3-32-32V224h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V128.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [128690], \"f206\", \"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h25.7l34.6 64H222.9l-27.4-38C191 99.7 183.7 96 176 96H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h43.7l22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112h49c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32H312zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368h65c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1H166.8zm90.6-128H365.9L317 274.8 257.4 192z\"]\n};\nvar faStaffSnake = {\n prefix: 'fas',\n iconName: 'staff-snake',\n icon: [384, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M222.6 43.2l-.1 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faRodAsclepius = faStaffSnake;\nvar faRodSnake = faStaffSnake;\nvar faStaffAesculapius = faStaffSnake;\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M448 325.8l44 34.5c8.1 1.4 14.8 6.8 18 14.1L552.9 408c10.6 .4 19.5 7.6 22.2 17.4l39.1 30.6c.6 0 1.2-.1 1.8-.1c11.1 0 20.4 7.5 23.2 17.8h-3.9c6.2 8.5 6.4 20.4-.4 29c-8.2 10.4-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L89.6 44.9C127 16.7 173.5 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v0 5.8zM0 224.2c0-38.7 9.8-75.1 27.1-106.9L341.8 365.3l-2.5 .3c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9l62 3.9 43 33.9C439.3 466.2 421.2 480 400 480H320v8c0 13.3-10.7 24-24 24H256v0H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM616 360a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-64-48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faTruckMedical = {\n prefix: 'fas',\n iconName: 'truck-medical',\n icon: [640, 512, [128657, \"ambulance\"], \"f0f9\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM176 80v48l-48 0c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V192h48c8.8 0 16-7.2 16-16V144c0-8.8-7.2-16-16-16H240V80c0-8.8-7.2-16-16-16H192c-8.8 0-16 7.2-16 16z\"]\n};\nvar faAmbulance = faTruckMedical;\nvar faWheatAwnCircleExclamation = {\n prefix: 'fas',\n iconName: 'wheat-awn-circle-exclamation',\n icon: [640, 512, [], \"e598\", \"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [512, 512, [9731, 9924], \"f7d0\", \"M341.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L408 160.2V120c0-13.3 10.7-24 24-24s24 10.7 24 24v19.6l22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C396.7 296.9 416 338.2 416 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9H181.3c-13.9 0-27.7-4.2-37.5-13.9C114.3 469 96 428.7 96 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3L70.5 198.1l-56-24C2.4 168.8-3.3 154.7 1.9 142.5s19.3-17.8 31.5-12.6L56 139.6V120c0-13.3 10.7-24 24-24s24 10.7 24 24v40.2L152.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C164 127.2 160 112.1 160 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM224 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm48 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-16 80a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm16 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM288 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48 24v3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9V120c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160H397.3L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512H352c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faRoadBarrier = {\n prefix: 'fas',\n iconName: 'road-barrier',\n icon: [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V266.3L149.2 96H64V64c0-17.7-14.3-32-32-32zM405.2 96H330.8l-5.4 10.7L234.8 288h74.3l5.4-10.7L405.2 96zM362.8 288h74.3l5.4-10.7L533.2 96H458.8l-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288h74.3l5.4-10.7L277.2 96H202.8zm288 192H576V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v53.7L490.8 288z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [127979], \"f549\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H256V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96H592c26.5 0 48-21.5 48-48V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V208zM96 320h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V336zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.8V160H48.5C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160V39.1C424.9 55.7 487.2 99.8 527.5 160H352zM29.9 192H96V320H0c0-46 10.8-89.4 29.9-128zM192 320H128V192H448V320H384v32H576v80c0 26.5-21.5 48-48 48H352V352c0-35.3-28.7-64-64-64s-64 28.7-64 64V480H48c-26.5 0-48-21.5-48-48V352H192V320zm288 0V192h66.1c19.2 38.6 29.9 82 29.9 128H480z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9v11c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43V32zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8v11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512h67.3c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512h19 51.3c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352H336 288c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9V392c0-22.1-17.9-40-40-40H444.7c-4.1 0-6.3 5.1-3.6 8.3z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [320, 512, [8250], \"f105\", \"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [128014], \"f6f0\", \"M448 238.1V160h16l9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1V80c0-19.1-8.4-36.3-21.7-48H560c8.8 0 16-7.2 16-16s-7.2-16-16-16H480 448C377.3 0 320 57.3 320 128H224 203.2 148.8c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256v56c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9h33.7c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8V480c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V315.7c19.2-19.2 31.5-45.7 32-75.7h0v-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faQ = {\n prefix: 'fas',\n iconName: 'q',\n icon: [448, 512, [113], \"51\", \"M64 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C371.9 325.8 384 292.3 384 256c0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"]\n};\nvar faG = {\n prefix: 'fas',\n iconName: 'g',\n icon: [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H400c25.8 0 49.6 21.4 47.2 50.6C437.8 389.6 341.4 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [512, 512, [], \"f481\", \"M96 352V96c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V293.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7H160c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V256h48c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H320V144c0-8.8-7.2-16-16-16H272zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24H136C60.9 512 0 451.1 0 376V152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88H296z\"]\n};\nvar faTemperatureHalf = {\n prefix: 'fas',\n iconName: 'temperature-half',\n icon: [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V208c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature2 = faTemperatureHalf;\nvar faThermometer2 = faTemperatureHalf;\nvar faThermometerHalf = faTemperatureHalf;\nvar faDongSign = {\n prefix: 'fas',\n iconName: 'dong-sign',\n icon: [384, 512, [], \"e169\", \"M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32V288 128c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM128 288a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48V256H64V144zM0 144V368c0 61.9 50.1 112 112 112s112-50.1 112-112V189.6c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83V144c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [\"poo-bolt\"], \"f75a\", \"M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 21.7-8.5 37.2-21.9 47.6c-13.8 10.8-34 17-57.8 17H128c-35.3 0-64 28.7-64 64c0 12.2 3.4 23.5 9.3 33.2C31.7 216.2 0 252.4 0 296c0 40.9 28 75.4 65.8 85.2c-5.3-18.5 1-38.5 16.2-50.7l160-128c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L285.7 320H304c20.4 0 38.5 12.9 45.3 32.1c3.7 10.6 3.5 21.8 0 31.9H360c48.6 0 88-39.4 88-88c0-43.6-31.7-79.8-73.3-86.8c5.9-9.7 9.3-21.1 9.3-33.2c0-35.3-28.7-64-64-64h-1.4c.9-5.4 1.4-10.9 1.4-16.6c0-48.7-36.1-88.9-83.1-95.2zm45.1 227.4c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L129.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H233.9l52.4-104.8c3.4-6.7 1.6-14.9-4.3-19.6z\"]\n};\nvar faPooBolt = faPooStorm;\nvar faFaceFrownOpen = {\n prefix: 'fas',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-122 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32V240H32V32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192zm-64-64c17.7 0 32 14.3 32 32v48c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H162.3c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363V336c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [576, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM288 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [576, 512, [127958], \"f5ca\", \"M346.3 271.8l-60.1-21.9L214 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H282.1l64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z\"]\n};\nvar faHelmetUn = {\n prefix: 'fas',\n iconName: 'helmet-un',\n icon: [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240v56.3C0 344.8 39.2 384 87.7 384H200h14.9L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6h96c13.3 0 24-10.7 24-24s-10.7-24-24-24H369.5l-1.5-1.5V288h80 32c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.5zM320 417.2l-78-73.7L274.4 288H320V417.2zM285.3 103.1l34.7 52V112c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V208c0 8.8-7.2 16-16 16s-16-7.2-16-16V112c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112v64c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [512, 512, [], \"f140\", \"M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [129363], \"f7e5\", \"M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6l0 0 .2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32V272H32V480zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-64 64c17.7 0 32-14.3 32-32V304c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6V160C384 71.6 312.4 0 224 0H162.3C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149v27c0 35.3 28.7 64 64 64h88c22.1 0 40-17.9 40-40s-17.9-40-40-40H96c-8.8 0-16-7.2-16-16s7.2-16 16-16h56c39.8 0 72 32.2 72 72z\"]\n};\nvar faArrowUpFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-up-from-bracket',\n icon: [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3V320c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 53 43 96 96 96H352c53 0 96-43 96-96V352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V352z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z\"]\n};\nvar faFolderBlank = faFolder;\nvar faFileWaveform = {\n prefix: 'fas',\n iconName: 'file-waveform',\n icon: [448, 512, [\"file-medical-alt\"], \"f478\", \"M96 0C60.7 0 32 28.7 32 64V288H144c6.1 0 11.6 3.4 14.3 8.8L176 332.2l49.7-99.4c2.7-5.4 8.3-8.8 14.3-8.8s11.6 3.4 14.3 8.8L281.9 288H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-6.1 0-11.6-3.4-14.3-8.8L240 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L134.1 320H32V448c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V160H288c-17.7 0-32-14.3-32-32V0H96zM288 0V128H416L288 0z\"]\n};\nvar faFileMedicalAlt = faFileWaveform;\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [512, 512, [], \"f7b9\", \"M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faChartSimple = {\n prefix: 'fas',\n iconName: 'chart-simple',\n icon: [448, 512, [], \"e473\", \"M160 80c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V80zM0 272c0-26.5 21.5-48 48-48H80c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V272zM368 96h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [512, 512, [9894], \"f229\", \"M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H376zm88 48h0v0l0 0zM96 304a112 112 0 1 1 224 0A112 112 0 1 1 96 304z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5V416c0 53 43 96 96 96h5.5c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96H205.3z\"]\n};\nvar faGauge = {\n prefix: 'fas',\n iconName: 'gauge',\n icon: [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faDashboard = faGauge;\nvar faGaugeMed = faGauge;\nvar faTachometerAltAverage = faGauge;\nvar faWandMagicSparkles = {\n prefix: 'fas',\n iconName: 'wand-magic-sparkles',\n icon: [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z\"]\n};\nvar faMagicWandSparkles = faWandMagicSparkles;\nvar faE = {\n prefix: 'fas',\n iconName: 'e',\n icon: [320, 512, [101], \"45\", \"M64 32C28.7 32 0 60.7 0 96V256 416c0 35.3 28.7 64 64 64H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64z\"]\n};\nvar faPenClip = {\n prefix: 'fas',\n iconName: 'pen-clip',\n icon: [512, 512, [\"pen-alt\"], \"f305\", \"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z\"]\n};\nvar faPenAlt = faPenClip;\nvar faBridgeCircleExclamation = {\n prefix: 'fas',\n iconName: 'bridge-circle-exclamation',\n icon: [640, 512, [], \"e4ca\", \"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [128100, 62144], \"f007\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"]\n};\nvar faSchoolCircleCheck = {\n prefix: 'fas',\n iconName: 'school-circle-check',\n icon: [640, 512, [], \"e56b\", \"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0H428.5L402.9 32H304V160zm157.1 0h94c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l25.6 128zM32 192l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H448c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160h12c17.7 0 32-14.3 32-32s-14.3-32-32-32h-4l4-32H32z\"]\n};\nvar faVanShuttle = {\n prefix: 'fas',\n iconName: 'van-shuttle',\n icon: [640, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 104v88h96V96H72c-4.4 0-8 3.6-8 8zm482 88L465.1 96H384v96H546zm-226 0V96H224v96h96zM592 384H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V104C0 64.2 32.2 32 72 32H192 352 465.1c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2V336c0 26.5-21.5 48-48 48zm-64 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faShuttleVan = faVanShuttle;\nvar faBuildingUser = {\n prefix: 'fas',\n iconName: 'building-user',\n icon: [640, 512, [], \"e4da\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h89.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM576 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM352 477.1c0 19.3 15.6 34.9 34.9 34.9H605.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H445.1c-51.4 0-93.1 41.7-93.1 93.1z\"]\n};\nvar faSquareCaretLeft = {\n prefix: 'fas',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [576, 512, [], \"f591\", \"M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H224l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H24c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [512, 512, [128226, 128363], \"f0a1\", \"M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [512, 512, [127760], \"f0ac\", \"M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [128333], \"f69b\", \"M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166V280.1 512H464 352V416c0-17.7-14.3-32-32-32s-32 14.3-32 32v96H176 160V280.1 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512V244.5l28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1V448c0 35.3-28.7 64-64 64H512zM128 244.5V512H64c-35.3 0-64-28.7-64-64V316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z\"]\n};\nvar faPersonHalfDress = {\n prefix: 'fas',\n iconName: 'person-half-dress',\n icon: [320, 512, [], \"e548\", \"M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm8 352V128h6.9c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352h0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3V384h0v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z\"]\n};\nvar faRoadBridge = {\n prefix: 'fas',\n iconName: 'road-bridge',\n icon: [640, 512, [], \"e563\", \"M352 0H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V224c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V384zM480 40c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V64c0-13.3-10.7-24-24-24zM32 96H288v64H248v64h40v96c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416c0-53-43-96-96-96V224H72V160H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64H120v64h80V160z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [448, 512, [], \"f124\", \"M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8H224V432c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z\"]\n};\nvar faC = {\n prefix: 'fas',\n iconName: 'c',\n icon: [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faTabletButton = {\n prefix: 'fas',\n iconName: 'tablet-button',\n icon: [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBuildingLock = {\n prefix: 'fas',\n iconName: 'building-lock',\n icon: [576, 512, [], \"e4d6\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h88.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-23.7 12.9-44.4 32-55.4V272c0-30.5 12.2-58.2 32-78.4V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32v48H432V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [576, 512, [], \"f53a\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64H64V352zm64-208c0 35.3-28.7 64-64 64V144h64zM512 304v64H448c0-35.3 28.7-64 64-64zM448 96h64v64c-35.3 0-64-28.7-64-64z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [\"area-chart\"], \"f1fe\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm96 288H448c17.7 0 32-14.3 32-32V251.8c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1v84c0 17.7 14.3 32 32 32z\"]\n};\nvar faAreaChart = faChartArea;\nvar faHouseFlag = {\n prefix: 'fas',\n iconName: 'house-flag',\n icon: [640, 512, [], \"e50d\", \"M480 0c-17.7 0-32 14.3-32 32V192 512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H512c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288H64V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v96c0 17.7 14.3 32 32 32h64.7l.2 0h-1V159z\"]\n};\nvar faPersonCircleMinus = {\n prefix: 'fas',\n iconName: 'person-circle-minus',\n icon: [576, 512, [], \"e540\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nvar faCancel = faBan;\nvar faCameraRotate = {\n prefix: 'fas',\n iconName: 'camera-rotate',\n icon: [640, 512, [], \"e0d8\", \"M213.1 64.8L202.7 96H128c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H437.3L426.9 64.8C420.4 45.2 402.1 32 381.4 32H258.6c-20.7 0-39 13.2-45.5 32.8zM448 256c0 8.8-7.2 16-16 16H355.3c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L371 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L249 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C257.4 172.7 288 160 320 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3V256zM192 320c0-8.8 7.2-16 16-16h76.7c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L269 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L391 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C382.6 403.3 352 416 320 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3V320z\"]\n};\nvar faSprayCanSparkles = {\n prefix: 'fas',\n iconName: 'spray-can-sparkles',\n icon: [512, 512, [\"air-freshener\"], \"f5d0\", \"M96 32v96H224V32c0-17.7-14.3-32-32-32H128C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96V464c0 26.5 21.5 48 48 48H272c26.5 0 48-21.5 48-48V256c0-53-43-96-96-96H96zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z\"]\n};\nvar faAirFreshener = faSprayCanSparkles;\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z\"]\n};\nvar faRepeat = {\n prefix: 'fas',\n iconName: 'repeat',\n icon: [512, 512, [128257], \"f363\", \"M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32V64H160C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96H192V352c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V448H352c88.4 0 160-71.6 160-160z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48v80H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h80V464c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V256h80c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H256V48c0-26.5-21.5-48-48-48H176z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [448, 512, [128230], \"f466\", \"M50.7 58.5L0 160H208V32H93.7C75.5 32 58.9 42.3 50.7 58.5zM240 160H448L397.3 58.5C389.1 42.3 372.5 32 354.3 32H240V160zm208 32H0V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [640, 512, [9892], \"f228\", \"M176 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM352 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H208v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0H616c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z\"]\n};\nvar faArrowPointer = {\n prefix: 'fas',\n iconName: 'arrow-pointer',\n icon: [320, 512, [\"mouse-pointer\"], \"f245\", \"M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z\"]\n};\nvar faMousePointer = faArrowPointer;\nvar faMaximize = {\n prefix: 'fas',\n iconName: 'maximize',\n icon: [512, 512, [\"expand-arrows-alt\"], \"f31e\", \"M200 32H56C42.7 32 32 42.7 32 56V200c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312V456c0 13.3 10.7 24 24 24H200c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H456c13.3 0 24-10.7 24-24V312c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z\"]\n};\nvar faExpandArrowsAlt = faMaximize;\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M96 0C60.7 0 32 28.7 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32s-14.3-32-32-32V304h16c22.1 0 40 17.9 40 40v32c0 39.8 32.2 72 72 72s72-32.2 72-72V252.3c32.5-10.2 56-40.5 56-76.3V144c0-8.8-7.2-16-16-16H544V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H480V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H432c-8.8 0-16 7.2-16 16v32c0 35.8 23.5 66.1 56 76.3V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V344c0-48.6-39.4-88-88-88H320V64c0-35.3-28.7-64-64-64H96zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9H256c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9H96c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2H384c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312V456c0 22.1 17.9 40 40 40H472c22.1 0 40-17.9 40-40V312c0-22.1-17.9-40-40-40H328c-22.1 0-40 17.9-40 40zM128 512a128 128 0 1 0 0-256 128 128 0 1 0 0 256z\"]\n};\nvar faTriangleCircleSquare = faShapes;\nvar faShuffle = {\n prefix: 'fas',\n iconName: 'shuffle',\n icon: [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"]\n};\nvar faRandom = faShuffle;\nvar faPersonRunning = {\n prefix: 'fas',\n iconName: 'person-running',\n icon: [448, 512, [127939, \"running\"], \"f70c\", \"M320 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM125.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L137.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L238 299l30.9-82.4 5.1 12.3C289 264.7 323.9 288 362.7 288H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H362.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L57.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM91.2 352H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h69.6c19 0 36.2-11.2 43.9-28.5L157 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L91.2 352z\"]\n};\nvar faRunning = faPersonRunning;\nvar faMobileRetro = {\n prefix: 'fas',\n iconName: 'mobile-retro',\n icon: [320, 512, [], \"e527\", \"M0 64C0 28.7 28.7 0 64 0H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm64 96v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 352a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H128z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [512, 512, [128375], \"f717\", \"M158.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L81.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4L70.8 190.3c-2.4-.8-4.3-2.7-5.1-5.1L46.8 128.4C42.6 115.8 29 109 16.4 113.2S-3 131 1.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L116.1 256 55.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L1.2 368.4C-3 381 3.8 394.6 16.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8L93.7 352.3C78.1 368 73.1 391.4 81.1 412l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L160 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L430.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L395.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L398.4 15.4C393.6 3 379.8-3.2 367.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L336 174.1V160c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4V112c0 8.8-7.2 16-16 16s-16-7.2-16-16V101.2c0-10.1-9.4-17.7-18.5-13.4C194.6 100.7 176 128.2 176 160v14.1l-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z\"]\n};\nvar faHandsBound = {\n prefix: 'fas',\n iconName: 'hands-bound',\n icon: [640, 512, [], \"e4f9\", \"M96 32C96 14.3 81.7 0 64 0S32 14.3 32 32V96v59.1 .7V192v21.9c0 14.2 5.1 27.9 14.3 38.7L131.6 352H128c-13.3 0-24 10.7-24 24s10.7 24 24 24h32H288h64H480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24h-3.6l85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7V192 155.8v-.7V96 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V96v48.8l-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L473 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C361 209.7 352 233.4 352 258.1V320v32H288V320 258.1c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L96 144.8V96 32zm64 448v32H288V480h64v32H480V480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H480 352 288 160 128c-13.3 0-24 10.7-24 24s10.7 24 24 24h32z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16v17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1 0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1V440c0 8.8-7.2 16-16 16s-16-7.2-16-16V422.2c-11.2-2.1-21.7-5.7-30.9-8.9l0 0 0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4l0 0 0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7V232c0-8.8 7.2-16 16-16z\"]\n};\nvar faPlaneCircleExclamation = {\n prefix: 'fas',\n iconName: 'plane-circle-exclamation',\n icon: [640, 512, [], \"e556\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16v32H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48H128c-8.8 0-16 7.2-16 16s7.2 16 16 16H240v70.6L189.1 307c-5.2-2-10.6-3-16.2-3h-2.1c-23.6 0-42.8 19.2-42.8 42.8c0 9.6 3.2 18.9 9.1 26.4l18.2 23.2c9.7 12.4 24.6 19.6 40.3 19.6H316.4c15.7 0 30.6-7.2 40.3-19.6l18.2-23.2c5.9-7.5 9.1-16.8 9.1-26.4c0-23.6-19.2-42.8-42.8-42.8H339c-5.5 0-11 1-16.2 3L272 326.6V256H384c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V176h80c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16zM208 352a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm80 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M112 0C99.1 0 87.4 7.8 82.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L66.7 224h90.7l5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C136.6 7.8 124.9 0 112 0zm18.7 160H93.3L112 115.2 130.7 160zM256 32v96 96c0 17.7 14.3 32 32 32h80c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80H288c-17.7 0-32 14.3-32 32zm96 64H320V64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64h32 16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320V160zM566.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L352 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z\"]\n};\nvar faComputerMouse = {\n prefix: 'fas',\n iconName: 'computer-mouse',\n icon: [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192H176V0H160C71.6 0 0 71.6 0 160v32zm0 32V352c0 88.4 71.6 160 160 160h64c88.4 0 160-71.6 160-160V224H192 0zm384-32V160C384 71.6 312.4 0 224 0H208V192H384z\"]\n};\nvar faMouse = faComputerMouse;\nvar faArrowRightToBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-to-bracket',\n icon: [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignIn = faArrowRightToBracket;\nvar faShopSlash = {\n prefix: 'fas',\n iconName: 'shop-slash',\n icon: [640, 512, [\"store-alt-slash\"], \"e070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43V224H512V376L384 275.7V224H320v1.5L277.2 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192h85L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V398.5l-64-50.4V384zM544 512l-.3 0h.6l-.3 0z\"]\n};\nvar faStoreAltSlash = faShopSlash;\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faVirusCovidSlash = {\n prefix: 'fas',\n iconName: 'virus-covid-slash',\n icon: [640, 512, [], \"e4a9\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7H528v16c0 13.3 10.7 24 24 24s24-10.7 24-24V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v16H494.4c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6V48h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h16V81.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zm362.5 407L149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5H112V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V280h33.6c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1V464H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2z\"]\n};\nvar faShopLock = {\n prefix: 'fas',\n iconName: 'shop-lock',\n icon: [640, 512, [], \"e4a5\", \"M36.8 192H449.6c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224H320V384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 352 224zm144 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM288 437v11H96V437c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"]\n};\nvar faHourglass1 = faHourglassStart;\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M224 352L196.8 52.3C194.2 24.2 216.3 0 244.6 0H534.1c21.1 0 36.4 20.1 30.9 40.4L558.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H549.8l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H523.6l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L480 352H224zm-16 32H496c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z\"]\n};\nvar faBuildingWheat = {\n prefix: 'fas',\n iconName: 'building-wheat',\n icon: [640, 512, [], \"e4db\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm384 80v16c0 44.2-35.8 80-80 80H544V272c0-44.2 35.8-80 80-80h16zm0 128c0 44.2-35.8 80-80 80H544V384c0-44.2 35.8-80 80-80h16v16zm0 112c0 44.2-35.8 80-80 80H544V496c0-44.2 35.8-80 80-80h16v16zM512 496v16H496c-44.2 0-80-35.8-80-80V416h16c44.2 0 80 35.8 80 80zm0-96H496c-44.2 0-80-35.8-80-80V304h16c44.2 0 80 35.8 80 80v16zm0-128v16H496c-44.2 0-80-35.8-80-80V192h16c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24V160c0 13.3-10.7 24-24 24s-24-10.7-24-24V56c0-13.3 10.7-24 24-24zm96 64v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24z\"]\n};\nvar faPersonBreastfeeding = {\n prefix: 'fas',\n iconName: 'person-breastfeeding',\n icon: [448, 512, [], \"e53a\", \"M224 0a80 80 0 1 1 0 160A80 80 0 1 1 224 0zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.8-.1c-38.9-5.6-74.3-25.1-99.7-54.8V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1h75.2c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z\"]\n};\nvar faRightToBracket = {\n prefix: 'fas',\n iconName: 'right-to-bracket',\n icon: [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSignInAlt = faRightToBracket;\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [384, 512, [9792], \"f221\", \"M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V384H128c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V349.1z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8h39.1c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5h47.1c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8h39.1c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8H279.6zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5H200.5c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8H129.3c5.3-31.4 25.8-57.6 53.7-70.8zM352 192A128 128 0 1 0 96 192a128 128 0 1 0 256 0zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"]\n};\nvar faHeartPulse = {\n prefix: 'fas',\n iconName: 'heart-pulse',\n icon: [512, 512, [\"heartbeat\"], \"f21e\", \"M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z\"]\n};\nvar faHeartbeat = faHeartPulse;\nvar faPeopleCarryBox = {\n prefix: 'fas',\n iconName: 'people-carry-box',\n icon: [640, 512, [\"people-carry\"], \"f4ce\", \"M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm64 193.7v65.1l51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7V186.6c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5V160c0-17.7 14.3-32 32-32H384c17.7 0 32 14.3 32 32v76.2l10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6v88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51V241.7l-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8H256.7c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm77.9 348.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z\"]\n};\nvar faPeopleCarry = faPeopleCarryBox;\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 128A96 96 0 1 0 416 0a96 96 0 1 0 0 192zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.2 32 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [576, 512, [128081], \"f521\", \"M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32H120c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512H464c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128H346.5z\"]\n};\nvar faXmarksLines = {\n prefix: 'fas',\n iconName: 'xmarks-lines',\n icon: [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM104 196h72c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6H124v44c0 11-9 20-20 20s-20-9-20-20V296 216c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20H124v40h52z\"]\n};\nvar faWeightScale = {\n prefix: 'fas',\n iconName: 'weight-scale',\n icon: [512, 512, [\"weight\"], \"f496\", \"M128 176a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zM391.8 64C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H391.8zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z\"]\n};\nvar faWeight = faWeightScale;\nvar faUserGroup = {\n prefix: 'fas',\n iconName: 'user-group',\n icon: [640, 512, [128101, \"user-friends\"], \"f500\", \"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM609.3 512H471.4c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z\"]\n};\nvar faUserFriends = faUserGroup;\nvar faArrowUpAZ = {\n prefix: 'fas',\n iconName: 'arrow-up-a-z',\n icon: [576, 512, [\"sort-alpha-up\"], \"f15e\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176H395.8z\"]\n};\nvar faSortAlphaUp = faArrowUpAZ;\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [448, 512, [9822], \"f441\", \"M96 48L82.7 61.3C70.7 73.3 64 89.5 64 106.5V238.9c0 10.7 5.3 20.7 14.2 26.6l10.6 7c14.3 9.6 32.7 10.7 48.1 3l3.2-1.6c2.6-1.3 5-2.8 7.3-4.5l49.4-37c6.6-5 15.7-5 22.3 0c10.2 7.7 9.9 23.1-.7 30.3L90.4 350C73.9 361.3 64 380 64 400H384l28.9-159c2.1-11.3 3.1-22.8 3.1-34.3V192C416 86 330 0 224 0H83.8C72.9 0 64 8.9 64 19.8c0 7.5 4.2 14.3 10.9 17.7L96 48zm24 68a20 20 0 1 1 40 0 20 20 0 1 1 -40 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512H409.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L384 432H64L22.6 473.4z\"]\n};\nvar faFaceLaughSquint = {\n prefix: 'fas',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM120.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C43.1 225.1 0 283.5 0 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C240 440 202.8 464 160 464C98.1 464 48 413.9 48 352c0-47.9 30.1-88.8 72.5-104.8zM259.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4h5.1c.4 0 .8 0 1.3 0h94.1c6.7 0 12.6 4.1 15 10.4L402 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9H282.2l-9.6-48H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H259.8z\"]\n};\nvar faCircleArrowUp = {\n prefix: 'fas',\n iconName: 'circle-arrow-up',\n icon: [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM385 231c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V193.9l-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 119c9.4-9.4 24.6-9.4 33.9 0L385 231z\"]\n};\nvar faArrowCircleUp = faCircleArrowUp;\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192s-86-192-192-192H192zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faPersonWalking = {\n prefix: 'fas',\n iconName: 'person-walking',\n icon: [320, 512, [128694, \"walking\"], \"f554\", \"M160 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z\"]\n};\nvar faWalking = faPersonWalking;\nvar faL = {\n prefix: 'fas',\n iconName: 'l',\n icon: [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32V416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [448, 512, [128293], \"f06d\", \"M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z\"]\n};\nvar faBedPulse = {\n prefix: 'fas',\n iconName: 'bed-pulse',\n icon: [640, 512, [\"procedures\"], \"f487\", \"M483.2 9.6L524 64h92c13.3 0 24 10.7 24 24s-10.7 24-24 24H512c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112H216c-13.3 0-24-10.7-24-24s10.7-24 24-24H352c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160h12.7l20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160H544c53 0 96 43 96 96V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V352H288V192c0-17.7 14.3-32 32-32zm-144 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nvar faProcedures = faBedPulse;\nvar faShuttleSpace = {\n prefix: 'fas',\n iconName: 'shuttle-space',\n icon: [640, 512, [\"space-shuttle\"], \"f197\", \"M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96h2zM352 128L245.2 63.9C210.4 43 170.6 32 130 32h-2v96l224 0zM96 128l0-96H80C53.5 32 32 53.5 32 80v48h8c-22.1 0-40 17.9-40 40v16V328v16c0 22.1 17.9 40 40 40H32v48c0 26.5 21.5 48 48 48H96l0-96h8c26.2 0 49.4-12.6 64-32H456c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160H168c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6v24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4V212.4c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z\"]\n};\nvar faSpaceShuttle = faShuttleSpace;\nvar faFaceLaugh = {\n prefix: 'fas',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z\"]\n};\nvar faHeartCirclePlus = {\n prefix: 'fas',\n iconName: 'heart-circle-plus',\n icon: [576, 512, [], \"e500\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faCodeFork = {\n prefix: 'fas',\n iconName: 'code-fork',\n icon: [448, 512, [], \"e13b\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [127961], \"f64f\", \"M480 48c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48V96H224V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V96H112V24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144v96V464c0 26.5 21.5 48 48 48H304h32 96H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H480V48zm96 320v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM240 416H208c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM560 256c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32zM256 176v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32zM256 304c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM112 320H80c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zm304-48v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h32zm16 112v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faMicrophoneLines = {\n prefix: 'fas',\n iconName: 'microphone-lines',\n icon: [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96V256c0 53 43 96 96 96s96-43 96-96H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V192H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96S96 43 96 96zM320 240v16c0 70.7-57.3 128-128 128s-128-57.3-128-128V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24z\"]\n};\nvar faMicrophoneAlt = faMicrophoneLines;\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [127798], \"f816\", \"M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3H360c-13.3 0-24-10.7-24-24V152c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0v80c0 26.5 21.5 48 48 48h76.2l23.9 47.8C372.3 443.9 244.3 512 103.2 512H44.4C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [128275], \"f09c\", \"M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H144V144z\"]\n};\nvar faColonSign = {\n prefix: 'fas',\n iconName: 'colon-sign',\n icon: [384, 512, [], \"e140\", \"M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.2 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M256 48C141.1 48 48 141.1 48 256v40c0 13.3-10.7 24-24 24s-24-10.7-24-24V256C0 114.6 114.6 0 256 0S512 114.6 512 256V400.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24H240c-26.5 0-48-21.5-48-48s21.5-48 48-48h32c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40V256c0-114.9-93.1-208-208-208zM144 208h16c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V272c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64v48c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V240c0-17.7 14.3-32 32-32h16z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68V384 252.6c-4 1-8 1.8-12.3 2.3l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V350.9L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0H141.6c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zM514.9 501.7L365.5 384H160V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H480c12.9 0 24.8-3.8 34.9-10.3zM155.3 218.4L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6z\"]\n};\nvar faRoadCircleXmark = {\n prefix: 'fas',\n iconName: 'road-circle-xmark',\n icon: [640, 512, [], \"e566\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM472 200H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H472c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMarsStrokeUp = {\n prefix: 'fas',\n iconName: 'mars-stroke-up',\n icon: [320, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H184v24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H184v24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8V168H104c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V96H96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352A96 96 0 1 0 64 352a96 96 0 1 0 192 0z\"]\n};\nvar faMarsStrokeV = faMarsStrokeUp;\nvar faChampagneGlasses = {\n prefix: 'fas',\n iconName: 'champagne-glasses',\n icon: [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M155.6 17.3C163 3 179.9-3.6 195 1.9L320 47.5l125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6L556.1 413l41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41l-71.1 25.9L476.8 510c-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-34-130-95.2L320 188.8l-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6 25.2 24.4 19.1 41s-24.4 25.2-41 19.1L92.2 484.1 21.1 458.2c-16.6-6.1-25.2-24.4-19.1-41s24.4-25.2 41-19.1l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8L261.6 157l13.1-57.9L199.6 71.7zm240.9 0L365.4 99.1 378.5 157l89.2-32.5L440.5 71.7z\"]\n};\nvar faGlassCheers = faChampagneGlasses;\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faHouseCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-circle-exclamation',\n icon: [640, 512, [], \"e50a\", \"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faFileArrowUp = {\n prefix: 'fas',\n iconName: 'file-arrow-up',\n icon: [384, 512, [\"file-upload\"], \"f574\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24V305.9l-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31V408z\"]\n};\nvar faFileUpload = faFileArrowUp;\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faWifi3 = faWifi;\nvar faWifiStrong = faWifi;\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3V256c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H96V77.3zM32 352v16c0 28.4 12.4 54 32 71.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V464H384v16c0 17.7 14.3 32 32 32s32-14.3 32-32V439.6c19.6-17.6 32-43.1 32-71.6V352H32z\"]\n};\nvar faBathtub = faBath;\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faUserPen = {\n prefix: 'fas',\n iconName: 'user-pen',\n icon: [640, 512, [\"user-edit\"], \"f4ff\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H322.8c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1H178.3zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z\"]\n};\nvar faUserEdit = faUserPen;\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32v7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92v71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3V128c0-53-43-96-96-96s-96 43-96 96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V128zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5V335.6c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24H64.3c-.2-2.8-.3-5.6-.3-8.5V368H24zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24H305.9c-6.7 16.3-14.2 32.3-22.3 48H616z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3L86.3 199.4c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L256 414.4l33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L414.4 256l33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3L233.4 256l-45.3 45.3L142.9 256zm67.9 67.9L256 278.6l45.3 45.3L256 369.1l-45.3-45.3zM278.6 256l45.3-45.3L369.1 256l-45.3 45.3L278.6 256zm22.6-67.9L256 233.4l-45.3-45.3L256 142.9l45.3 45.3z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z\"]\n};\nvar faAnchorLock = {\n prefix: 'fas',\n iconName: 'anchor-lock',\n icon: [640, 512, [], \"e4ad\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3V446.7c-5.2 .9-10.5 1.3-16 1.3H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faBuildingNgo = {\n prefix: 'fas',\n iconName: 'building-ngo',\n icon: [384, 512, [], \"e4d7\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM168 64h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H184v64h16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 13.3-10.7 24-24 24H176c-13.3 0-24-10.7-24-24V80c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48v32c0 26.5-21.5 48-48 48s-48-21.5-48-48V112zM61.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z\"]\n};\nvar faManatSign = {\n prefix: 'fas',\n iconName: 'manat-sign',\n icon: [384, 512, [], \"e1d5\", \"M192 32c-17.7 0-32 14.3-32 32V98.7C69.2 113.9 0 192.9 0 288V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-59.6 40.8-109.8 96-124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V164c55.2 14.2 96 64.3 96 124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-95.1-69.2-174.1-160-189.3V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H294.5l-64 96H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H187.8l-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H153.5l64-96H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H260.2l65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z\"]\n};\nvar faBorderTopLeft = {\n prefix: 'fas',\n iconName: 'border-top-left',\n icon: [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm-96 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm0 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faBorderStyle = faBorderTopLeft;\nvar faMapLocationDot = {\n prefix: 'fas',\n iconName: 'map-location-dot',\n icon: [576, 512, [\"map-marked-alt\"], \"f5a0\", \"M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152V422.8c0 9.8-6 18.6-15.1 22.3L416 503V200.4zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6V451.8L32.9 502.7C17.1 509 0 497.4 0 480.4V209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77V504.3L192 449.4V255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faMapMarkedAlt = faMapLocationDot;\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9h26c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9H526c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9H64.5c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6h26c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"]\n};\nvar faSquarePollVertical = {\n prefix: 'fas',\n iconName: 'square-poll-vertical',\n icon: [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 192c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V160zM320 288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32z\"]\n};\nvar faPoll = faSquarePollVertical;\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [9749], \"f7b6\", \"M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32V416c0 53 43 96 96 96H288c53 0 96-43 96-96h16c61.9 0 112-50.1 112-112s-50.1-112-112-112H352 32zm352 64h16c26.5 0 48 21.5 48 48s-21.5 48-48 48H384V256zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [\"battery-car\"], \"f5df\", \"M80 96c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32h16c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16v32H320c-8.8 0-16 7.2-16 16s7.2 16 16 16h32v32c0 8.8 7.2 16 16 16s16-7.2 16-16V256h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H384V192zM80 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBatteryCar = faCarBattery;\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [127873], \"f06b\", \"M190.5 68.8L225.3 128H224 152c-22.1 0-40-17.9-40-40s17.9-40 40-40h2.2c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H438.4c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88h-2.2c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0H152C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40H288h-1.3l34.8-59.2C329.1 55.9 342.9 48 357.8 48H360c22.1 0 40 17.9 40 40zM32 288V464c0 26.5 21.5 48 48 48H224V288H32zM288 512H432c26.5 0 48-21.5 48-48V288H288V512z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M256 0a56 56 0 1 1 0 112A56 56 0 1 1 256 0zM134.1 143.8c3.3-13 15-23.8 30.2-23.8c12.3 0 22.6 7.2 27.7 17c12 23.2 36.2 39 64 39s52-15.8 64-39c5.1-9.8 15.4-17 27.7-17c15.3 0 27 10.8 30.2 23.8c7 27.8 32.2 48.3 62.1 48.3c10.8 0 21-2.7 29.8-7.4c8.4-4.4 18.9-4.5 27.6 .9c13 8 17.1 25 9.2 38L399.7 400H384 343.6 168.4 128 112.3L5.4 223.6c-7.9-13-3.8-30 9.2-38c8.7-5.3 19.2-5.3 27.6-.9c8.9 4.7 19 7.4 29.8 7.4c29.9 0 55.1-20.5 62.1-48.3zM256 224l0 0 0 0h0zM112 432H400l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H86.6C74.1 512 64 501.9 64 489.4c0-6 2.4-11.8 6.6-16L112 432z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1 .1 0 0 0 0 0s0 0-6.3 12.7h0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7h40.6c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7h0c-6.3-12.7-6.3-12.7-6.3-12.7l0 0 0 0 .1 0 .2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7v6.7V352v16c0 61.9-50.1 112-112 112H419.7c-59.4 0-108.5-46.4-111.8-105.8L306.6 352H269.4l-1.2 22.2C264.9 433.6 215.8 480 156.3 480H112C50.1 480 0 429.9 0 368V352 310.7 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4V368c0 26.5 21.5 48 48 48h44.3c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368V325.4c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3H464c26.5 0 48-21.5 48-48z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 64v64h64V96h64v64h64V96h64v64H320v64h64v64H320v64h64v64H320V352H256v64H192V352H128v64H64V352h64V288H64V224h64V160H64V96h64zm64 128h64V160H192v64zm0 64V224H128v64h64zm64 0H192v64h64V288zm0 0h64V224H256v64z\"]\n};\nvar faBuildingCircleCheck = {\n prefix: 'fas',\n iconName: 'building-circle-check',\n icon: [640, 512, [], \"e4d2\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faPersonChalkboard = {\n prefix: 'fas',\n iconName: 'person-chalkboard',\n icon: [640, 512, [], \"e53d\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V192h56 64 16c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64H576V256H384V224H320v48c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v80H243.1 177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faMarsStrokeRight = {\n prefix: 'fas',\n iconName: 'mars-stroke-right',\n icon: [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M208 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152H416V176c0-13.3 10.7-24 24-24s24 10.7 24 24v56h32V176c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V280H464v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H382.4z\"]\n};\nvar faMarsStrokeH = faMarsStrokeRight;\nvar faHandBackFist = {\n prefix: 'fas',\n iconName: 'hand-back-fist',\n icon: [448, 512, [\"hand-rock\"], \"f255\", \"M144 0C117.5 0 96 21.5 96 48V96v28.5V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V149.3l-9 7.5C40.4 169 32 187 32 206V244c0 38 16.9 74 46.1 98.3L128 384v96c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V374.7c46.9-19 80-65 80-118.7V176 160 144c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faSquareCaretUp = {\n prefix: 'fas',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4H120c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faCloudShowersWater = {\n prefix: 'fas',\n iconName: 'cloud-showers-water',\n icon: [576, 512, [], \"e4e4\", \"M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64H448c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarChart = faChartBar;\nvar faHandsBubbles = {\n prefix: 'fas',\n iconName: 'hands-bubbles',\n icon: [576, 512, [\"hands-wash\"], \"e05e\", \"M416 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM32 160l.1 72.6c.1 52.2 24 101 64 133.1c-.1-1.9-.1-3.8-.1-5.7v-8c0-71.8 37-138.6 97.9-176.7l60.2-37.6c8.6-5.4 17.9-8.4 27.3-9.4l45.9-79.5c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-78 135.1c-3.3 5.7-10.7 7.7-16.4 4.4s-7.7-10.7-4.4-16.4l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S214 5 207.4 16.5l-68 117.8 0 0 0 0-43.3 75L96 160c0-17.7-14.4-32-32-32s-32 14.4-32 32zM332.1 88.5L307.5 131c13.9 4.5 26.4 13.7 34.7 27c.9 1.5 1.8 2.9 2.5 4.4l28.9-50c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-26.8 46.4c-.6 6-2.1 11.8-4.3 17.4H352h13.3l0 0H397l23-39.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM315.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C159.3 234.7 128 291.2 128 352v8c0 8.9 .8 17.6 2.2 26.1c35.4 8.2 61.8 40 61.8 77.9c0 6.3-.7 12.5-2.1 18.4C215.1 501 246.3 512 280 512H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H352l0 0 0 0H258.8L305 219.1c15-9.4 19.5-29.1 10.2-44.1z\"]\n};\nvar faHandsWash = faHandsBubbles;\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [128646], \"f238\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zM224 288a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faEyeLowVision = {\n prefix: 'fas',\n iconName: 'eye-low-vision',\n icon: [640, 512, [\"low-vision\"], \"f2a8\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223 149.5c48.6-44.3 123-50.8 179.3-11.7c60.8 42.4 78.9 123.2 44.2 186.9L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3L223 149.5zm-139.9 12c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8L83.1 161.5zm-50 86.3c-1.8 6.8-1.3 14 1.4 20.5c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8z\"]\n};\nvar faLowVision = faEyeLowVision;\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M456 0c-48.6 0-88 39.4-88 88v29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384H259.2l46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384H352c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192V128v-8l80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32H523.9C507.7 12.5 483.3 0 456 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faSailboat = {\n prefix: 'fas',\n iconName: 'sailboat',\n icon: [576, 512, [], \"e445\", \"M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6H272c-8.8 0-16-7.2-16-16V16zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5V336c0 8.8-7.2 16-16 16H80c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384H554.9c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512H133C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M432 64H208c-8.8 0-16 7.2-16 16V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V320h16c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192zm64 32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32z\"]\n};\nvar faSquarePlus = {\n prefix: 'fas',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [9961], \"f6a1\", \"M0 80c0 26.5 21.5 48 48 48H64v64h64V128h96v64h64V128h96v64h64V128h16c26.5 0 48-21.5 48-48V13.4C512 6 506 0 498.6 0c-1.7 0-3.4 .3-5 1l-49 19.6C425.7 28.1 405.5 32 385.2 32H126.8c-20.4 0-40.5-3.9-59.4-11.4L18.4 1c-1.6-.6-3.3-1-5-1C6 0 0 6 0 13.4V80zM64 288V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288H384V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H480c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faBucket = {\n prefix: 'fas',\n iconName: 'bucket',\n icon: [448, 512, [], \"e4cf\", \"M96 152v8H48v-8C48 68.1 116.1 0 200 0h48c83.9 0 152 68.1 152 152v8H352v-8c0-57.4-46.6-104-104-104H200C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32h-5.1L388.5 469c-2.6 24.4-23.2 43-47.7 43H107.2c-24.6 0-45.2-18.5-47.7-43L37.1 256H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96V256c0 53 43 96 96 96s96-43 96-96V96c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V216z\"]\n};\nvar faCow = {\n prefix: 'fas',\n iconName: 'cow',\n icon: [640, 512, [128004], \"f6c8\", \"M96 224v32V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V327.8c9.9 6.6 20.6 12 32 16.1V368c0 8.8 7.2 16 16 16s16-7.2 16-16V351.1c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9V368c0 8.8 7.2 16 16 16s16-7.2 16-16V343.8c11.4-4 22.1-9.4 32-16.1V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256l32 32v49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5V184c0-13.3-10.7-24-24-24s-24 10.7-24 24v14.4l-52.9-74.1C496 86.5 452.4 64 405.9 64H272 256 192 144C77.7 64 24 117.7 24 184v54C9.4 249.8 0 267.8 0 288v17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4V256 224 184c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160v64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6H361.4c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [129691], \"f54a\", \"M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19v54.1l-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192H408c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z\"]\n};\nvar faFolderClosed = {\n prefix: 'fas',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 480H64c-35.3 0-64-28.7-64-64V192H512V416c0 35.3-28.7 64-64 64zm64-320H0V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64z\"]\n};\nvar faHouseTsunami = {\n prefix: 'fas',\n iconName: 'house-tsunami',\n icon: [576, 512, [], \"e515\", \"M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1l0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6V265c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"]\n};\nvar faSquareNfi = {\n prefix: 'fas',\n iconName: 'square-nfi',\n icon: [448, 512, [], \"e576\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm75.7 64.6C68.8 162.5 64 168.8 64 176V336c0 8.8 7.2 16 16 16s16-7.2 16-16V233.8l66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4V176c0-8.8-7.2-16-16-16s-16 7.2-16 16V278.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176v64 96c0 8.8 7.2 16 16 16s16-7.2 16-16V256h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H256V192h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V336c0 8.8 7.2 16 16 16s16-7.2 16-16V176z\"]\n};\nvar faArrowUpFromGroundWater = {\n prefix: 'fas',\n iconName: 'arrow-up-from-ground-water',\n icon: [576, 512, [], \"e4b5\", \"M288 352c17.7 0 32-14.3 32-32V109.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192H48c-26.5 0-48 21.5-48 48V425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3V192zm384 48c0-26.5-21.5-48-48-48H384V416.5h0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9V240z\"]\n};\nvar faMartiniGlass = {\n prefix: 'fas',\n iconName: 'martini-glass',\n icon: [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM173.3 128l-64-64H402.7l-64 64H173.3z\"]\n};\nvar faGlassMartiniAlt = faMartiniGlass;\nvar faRotateLeft = {\n prefix: 'fas',\n iconName: 'rotate-left',\n icon: [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M48.5 224H40c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H48.5z\"]\n};\nvar faRotateBack = faRotateLeft;\nvar faRotateBackward = faRotateLeft;\nvar faUndoAlt = faRotateLeft;\nvar faTableColumns = {\n prefix: 'fas',\n iconName: 'table-columns',\n icon: [512, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 64V416H224V160H64zm384 0H288V416H448V160z\"]\n};\nvar faColumns = faTableColumns;\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [576, 512, [], \"e063\", \"M32 224.2c0-22.2 3.2-43.6 9.2-63.9L262.2 321c-4 9.5-6.2 20-6.2 31V512H128c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C48.6 322.4 32 274.1 32 224.2zm248.3 70.4L53 129.3C88.7 53 166.2 0 256 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c5.4 6.7 8.6 14.8 9.4 23.2H336c-21.7 0-41.3 8.6-55.7 22.6zM336 304H534l0 0h10l-19.7 64H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H514.5l-9.8 32H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H494.8l-.9 2.8c-8.3 26.9-33.1 45.2-61.2 45.2H288V352c0-14 6-26.7 15.6-35.4c0 0 0 0 0 0c8.5-7.8 19.9-12.6 32.4-12.6zm48-80a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM16 128c-8.8 0-16 7.2-16 16V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V128H16zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V144c0-8.8-7.2-16-16-16H544zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [\"dolly-box\"], \"f472\", \"M0 32C0 14.3 14.3 0 32 0h72.9c27.5 0 52 17.6 60.7 43.8L257.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L352 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L104.9 64H32C14.3 64 0 49.7 0 32zM244.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L311 79.4l19.8 60.9 60.9-19.8L371.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L334.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L244.8 134.5z\"]\n};\nvar faDollyBox = faDolly;\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [128684], \"f48d\", \"M448 32V43c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2v11c0 17.7-14.3 32-32 32s-32-14.3-32-32V245c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43V32c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256V245c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2V32c0-17.7 14.3-32 32-32s32 14.3 32 32V43c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1v11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H64c-35.3 0-64-28.7-64-64V416zm224 0v32H384V416H224zm288-64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32z\"]\n};\nvar faMinimize = {\n prefix: 'fas',\n iconName: 'minimize',\n icon: [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224H312c-13.3 0-24-10.7-24-24V56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V312c0-13.3 10.7-24 24-24H456zm-256 0c13.3 0 24 10.7 24 24V456c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8H200zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2V200c0 13.3-10.7 24-24 24H56z\"]\n};\nvar faCompressArrowsAlt = faMinimize;\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322H55.9L96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H152zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M298.9 64l68.6 160H256l-64-64V64H298.9zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0H176c-26.5 0-48 21.5-48 48V160H96c-17.7 0-32 14.3-32 32V298.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112H368c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48H512v50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7V320 235.2L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40V288H448V256.7c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48H112c-26.5 0-48-21.5-48-48s21.5-48 48-48H368zM144 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm216 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-56-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM200 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faAnglesRight = {\n prefix: 'fas',\n iconName: 'angles-right',\n icon: [512, 512, [187, \"angle-double-right\"], \"f101\", \"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faAngleDoubleRight = faAnglesRight;\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V417.2l-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"]\n};\nvar faCirclePlay = {\n prefix: 'fas',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M614.3 247c16.3-25 25.7-54.9 25.7-87C640 71.6 568.4 0 480 0c-32.1 0-61.9 9.4-87 25.7c-7.9 5.2-8.5 16.2-1.8 22.9L591.4 248.8c6.7 6.7 17.8 6.2 22.9-1.8zM567 294.3c7.9-5.2 8.5-16.2 1.8-22.9L368.6 71.2c-6.7-6.7-17.8-6.2-22.9 1.8c-16.3 25-25.7 54.9-25.7 87c0 88.4 71.6 160 160 160c32.1 0 61.9-9.4 87-25.7zM301.5 368H18.5c-9.5 0-16.9 8.2-15 17.5C18.9 457.8 83.1 512 160 512s141.1-54.2 156.5-126.5c2-9.3-5.5-17.5-15-17.5zm0-32c9.5 0 16.9-8.2 15-17.5C301.1 246.2 236.9 192 160 192S18.9 246.2 3.5 318.5c-2 9.3 5.5 17.5 15 17.5H301.5z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M0 224V416c0 17.7 14.3 32 32 32H96V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H448V160c0-17.7-14.3-32-32-32H384V96c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32v32H96c-17.7 0-32 14.3-32 32v32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M48.1 240c-.1 2.7-.1 5.3-.1 8v16c0 2.7 0 5.3 .1 8H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H60.3C89.9 419.9 170 480 264 480h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264c-57.9 0-108.2-32.4-133.9-80H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112.2c-.1-2.6-.2-5.3-.2-8V248c0-2.7 .1-5.4 .2-8H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H130.1c25.7-47.6 76-80 133.9-80h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264C170 32 89.9 92.1 60.3 176H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48.1z\"]\n};\nvar faEur = faEuroSign;\nvar faEuro = faEuroSign;\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [129681], \"f6c0\", \"M248 48V256h48V58.7c23.9 13.8 40 39.7 40 69.3V256h48V128C384 57.3 326.7 0 256 0H192C121.3 0 64 57.3 64 128V256h48V128c0-29.6 16.1-55.5 40-69.3V256h48V48h48zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32V384H352v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288H48z\"]\n};\nvar faCircleCheck = {\n prefix: 'fas',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faCircleStop = {\n prefix: 'fas',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faCompassDrafting = {\n prefix: 'fas',\n iconName: 'compass-drafting',\n icon: [512, 512, [\"drafting-compass\"], \"f568\", \"M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192h0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496V440.6c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1V496c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faDraftingCompass = faCompassDrafting;\nvar faPlateWheat = {\n prefix: 'fas',\n iconName: 'plate-wheat',\n icon: [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zM56 64h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48zM400 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zm80 160v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80zm-96 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320H484.2c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446v2c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32v-2c-48.2-9-86.3-48.2-92.5-98.4z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z\"]\n};\nvar faPersonShelter = {\n prefix: 'fas',\n iconName: 'person-shelter',\n icon: [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160V480c0 17.7 14.3 32 32 32s32-14.3 32-32V178.6L256 68.9 448 178.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 280V400h16v88c0 13.3 10.7 24 24 24s24-10.7 24-24V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H246.2c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5V488c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [384, 512, [9906], \"f22c\", \"M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V480c0 17.7 14.3 32 32 32s32-14.3 32-32V349.1z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zm96 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM144 64h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z\"]\n};\nvar faFaceLaughBeam = {\n prefix: 'fas',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM217.6 212.8l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faHelicopterSymbol = {\n prefix: 'fas',\n iconName: 'helicopter-symbol',\n icon: [512, 512, [], \"e502\", \"M445.3 224H510C495.6 108.2 403.8 16.4 288 2V66.7C368.4 80.1 431.9 143.6 445.3 224zM510 288H445.3C431.9 368.4 368.4 431.9 288 445.4V510c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510V445.4C143.6 431.9 80.1 368.4 66.7 288H2zm0-64H66.7C80.1 143.6 143.6 80.1 224 66.7V2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 17.7 14.3 32 32 32s32-14.3 32-32V288h96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H208V160z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3v50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6V235.5c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faCircleChevronUp = {\n prefix: 'fas',\n iconName: 'circle-chevron-up',\n icon: [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"]\n};\nvar faChevronCircleUp = faCircleChevronUp;\nvar faLariSign = {\n prefix: 'fas',\n iconName: 'lari-sign',\n icon: [384, 512, [], \"e1c8\", \"M144 32c17.7 0 32 14.3 32 32V96.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7V64c0-17.7 14.3-32 32-32s32 14.3 32 32v49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3V256c0 17.7-14.3 32-32 32s-32-14.3-32-32V161c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1v95c0 17.7-14.3 32-32 32s-32-14.3-32-32V188.1C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H192 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48.9C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faVolcano = {\n prefix: 'fas',\n iconName: 'volcano',\n icon: [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-58.9-66.3c-9.1-10.2-22.2-16.1-35.9-16.1H235.1c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2h41.8c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2H52.2C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z\"]\n};\nvar faPersonWalkingDashedLineArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-dashed-line-arrow-right',\n icon: [640, 512, [], \"e553\", \"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24V72c0 13.3 10.7 24 24 24s24-10.7 24-24V24c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM392 320c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V344c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24v48c0 13.3 10.7 24 24 24s24-10.7 24-24V440z\"]\n};\nvar faSterlingSign = {\n prefix: 'fas',\n iconName: 'sterling-sign',\n icon: [320, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v44.5c0 17.4-4.7 34.5-13.7 49.4L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H88.5l.7-1.1C104.1 390 112 361.5 112 332.5V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V160.4z\"]\n};\nvar faGbp = faSterlingSign;\nvar faPoundSign = faSterlingSign;\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M192 0c13.3 0 24 10.7 24 24V37.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168H360c13.3 0 24 10.7 24 24s-10.7 24-24 24H346.5c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5V360c0 13.3-10.7 24-24 24s-24-10.7-24-24V346.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H37.5c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5V24c0-13.3 10.7-24 24-24zm48 224a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48-64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faSquarePersonConfined = {\n prefix: 'fas',\n iconName: 'square-person-confined',\n icon: [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56V350.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7V248z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M96 128a128 128 0 1 0 256 0A128 128 0 1 0 96 128zm94.5 200.2l18.6 31L175.8 483.1l-36-146.9c-2-8.1-9.8-13.4-17.9-11.3C51.9 342.4 0 405.8 0 481.3c0 17 13.8 30.7 30.7 30.7H162.5c0 0 0 0 .1 0H168 280h5.5c0 0 0 0 .1 0H417.3c17 0 30.7-13.8 30.7-30.7c0-75.5-51.9-138.9-121.9-156.4c-8.1-2-15.9 3.3-17.9 11.3l-36 146.9L238.9 359.2l18.6-31c6.4-10.7-1.3-24.2-13.7-24.2H224 204.3c-12.4 0-20.1 13.6-13.7 24.2z\"]\n};\nvar faArrowDownLong = {\n prefix: 'fas',\n iconName: 'arrow-down-long',\n icon: [384, 512, [\"long-arrow-down\"], \"f175\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z\"]\n};\nvar faLongArrowDown = faArrowDownLong;\nvar faTentArrowDownToLine = {\n prefix: 'fas',\n iconName: 'tent-arrow-down-to-line',\n icon: [640, 512, [], \"e57e\", \"M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H159.6l.7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448h80L402.7 325.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9V448z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [\"mail-reply-all\"], \"f122\", \"M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2V288h32c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176H352V64z\"]\n};\nvar faMailReplyAll = faReplyAll;\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [129523], \"f0f2\", \"M176 56V96H336V56c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zM128 96V56c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56V96v32V480H128V128 96zM64 96H96V480H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64zM448 480H416V96h32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64z\"]\n};\nvar faPersonSkating = {\n prefix: 'fas',\n iconName: 'person-skating',\n icon: [448, 512, [\"skating\"], \"f7c5\", \"M352 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM128 128c0-17.7 14.3-32 32-32H319.4c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V349.3l-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17H160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h88.8c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"]\n};\nvar faSkating = faPersonSkating;\nvar faFilterCircleDollar = {\n prefix: 'fas',\n iconName: 'filter-circle-dollar',\n icon: [576, 512, [\"funnel-dollar\"], \"f662\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm120.8-32.6c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7V288c0-8.8-7.2-16-16-16s-16 7.2-16 16v9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6l0 0 0 0c7 2.3 15.1 4.8 23.7 6.6v11.4c0 8.8 7.2 16 16 16s16-7.2 16-16V438.7c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5l0-.1c-.1-1.9 .3-2.9 .8-3.6z\"]\n};\nvar faFunnelDollar = faFilterCircleDollar;\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [128247], \"f083\", \"M220.6 121.2L271.1 96 448 96v96H333.2c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24H64V128H192c9.9 0 19.7-2.3 28.6-6.8zM0 128V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H271.1c-9.9 0-19.7 2.3-28.6 6.8L192 64H160V48c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM168 304a88 88 0 1 1 176 0 88 88 0 1 1 -176 0z\"]\n};\nvar faCircleArrowDown = {\n prefix: 'fas',\n iconName: 'circle-arrow-down',\n icon: [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM127 281c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 136c0-13.3 10.7-24 24-24s24 10.7 24 24l0 182.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 393c-9.4 9.4-24.6 9.4-33.9 0L127 281z\"]\n};\nvar faArrowCircleDown = faCircleArrowDown;\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [\"arrow-right-to-file\"], \"f56f\", \"M128 64c0-35.3 28.7-64 64-64H352V128c0 17.7 14.3 32 32 32H512V448c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336H302.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H128V64zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H128zM512 128H384V0L512 128z\"]\n};\nvar faArrowRightToFile = faFileImport;\nvar faSquareArrowUpRight = {\n prefix: 'fas',\n iconName: 'square-arrow-up-right',\n icon: [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z\"]\n};\nvar faExternalLinkSquare = faSquareArrowUpRight;\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6v167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5v-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128h2.2z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [576, 512, [128220], \"f70e\", \"M0 80v48c0 17.7 14.3 32 32 32H48 96V80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48V384c0 35.3 28.7 64 64 64s64-28.7 64-64v-5.3c0-32.4 26.3-58.7 58.7-58.7H480V128c0-53-43-96-96-96H112zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16H314.7c-14.7 0-26.7 11.9-26.7 26.7V384c0 53-43 96-96 96H368h96z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192h9.9c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480H288 267.9C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192H30c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z\"]\n};\nvar faLocationPinLock = {\n prefix: 'fas',\n iconName: 'location-pin-lock',\n icon: [512, 512, [], \"e51f\", \"M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3V352c0-23.7 12.9-44.4 32-55.4V272c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c17.7 0 32 14.3 32 32v48H368V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [320, 512, [9208], \"f04c\", \"M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z\"]\n};\nvar faHillAvalanche = {\n prefix: 'fas',\n iconName: 'hill-avalanche',\n icon: [576, 512, [], \"e507\", \"M439.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C401.2 261.3 416 236.4 416 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C216.3 46.6 197.9 32 176 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L439.7 401.9zM480 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87z\"]\n};\nvar faTemperatureEmpty = {\n prefix: 'fas',\n iconName: 'temperature-empty',\n icon: [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM160 0C98.1 0 48 50.2 48 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C272 50.2 221.9 0 160 0zm0 416a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faTemperature0 = faTemperatureEmpty;\nvar faThermometer0 = faTemperatureEmpty;\nvar faThermometerEmpty = faTemperatureEmpty;\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [128163], \"f1e2\", \"M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-75.1 60.9-136 136-136h8c8.8 0 16 7.2 16 16s-7.2 16-16 16h-8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152c0-13.3 10.7-24 24-24h88c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288H208v72c0 13.3-10.7 24-24 24s-24-10.7-24-24V264 152zm48 88h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H208v64z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 256h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faScaleUnbalancedFlip = {\n prefix: 'fas',\n iconName: 'scale-unbalanced-flip',\n icon: [640, 512, [\"balance-scale-right\"], \"f516\", \"M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2V480c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.4 288L128 163.8 55.6 288H200.4zM128 384C65.1 384 12.8 350 2 305.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C243.2 350 190.9 384 128 384zm382.8-92.2L438.4 416H583.3L510.8 291.8zm126 141.3C626 478 573.7 512 510.8 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z\"]\n};\nvar faBalanceScaleRight = faScaleUnbalancedFlip;\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V320z\"]\n};\nvar faDiamondTurnRight = {\n prefix: 'fas',\n iconName: 'diamond-turn-right',\n icon: [512, 512, [\"directions\"], \"f5eb\", \"M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8v56H224c-35.3 0-64 28.7-64 64v48c0 13.3 10.7 24 24 24s24-10.7 24-24V280c0-8.8 7.2-16 16-16h64v56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z\"]\n};\nvar faDirections = faDiamondTurnRight;\nvar faBurst = {\n prefix: 'fas',\n iconName: 'burst',\n icon: [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z\"]\n};\nvar faHouseLaptop = {\n prefix: 'fas',\n iconName: 'house-laptop',\n icon: [640, 512, [\"laptop-house\"], \"e066\", \"M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5H336c-19.1 0-36.3 8.4-48 21.7V208c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64V416H112c-26.5 0-48-21.5-48-48V256H32c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304V448H544V304H352zm-48-16c0-17.7 14.3-32 32-32H560c17.7 0 32 14.3 32 32V448h32c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48H544 352 304c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16h32V288z\"]\n};\nvar faLaptopHouse = faHouseLaptop;\nvar faFaceTired = {\n prefix: 'fas',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3h-3.2c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faTired = faFaceTired;\nvar faMoneyBills = {\n prefix: 'fas',\n iconName: 'money-bills',\n icon: [640, 512, [], \"e1f3\", \"M96 96V320c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64H160V256zM224 96c0 35.3-28.7 64-64 64V96h64zM576 256v64H512c0-35.3 28.7-64 64-64zM512 96h64v64c-35.3 0-64-28.7-64-64zM288 208a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V360c0 66.3 53.7 120 120 120H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H120c-39.8 0-72-32.2-72-72V120z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M32 144c0 79.5 64.5 144 144 144H299.3c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32H496c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368H280c-13.3 0-24 10.7-24 24s10.7 24 24 24H616c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96H440c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H200c13.3 0 24-10.7 24-24z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z\"]\n};\nvar faFontAwesome = {\n prefix: 'fas',\n iconName: 'font-awesome',\n icon: [448, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M448 48V384c-63.1 22.5-82.3 32-119.5 32c-62.8 0-86.6-32-149.3-32c-20.6 0-36.6 3.6-51.2 8.2v-64c14.6-4.6 30.6-8.2 51.2-8.2c62.7 0 86.5 32 149.3 32c20.4 0 35.6-3 55.5-9.3v-208c-19.9 6.3-35.1 9.3-55.5 9.3c-62.8 0-86.6-32-149.3-32c-50.8 0-74.9 20.6-115.2 28.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32s32 14.3 32 32V76.7c40.3-8 64.4-28.7 115.2-28.7c62.7 0 86.5 32 149.3 32c37.1 0 56.4-9.5 119.5-32z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faCloudArrowUp = {\n prefix: 'fas',\n iconName: 'cloud-arrow-up',\n icon: [640, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z\"]\n};\nvar faCloudUpload = faCloudArrowUp;\nvar faCloudUploadAlt = faCloudArrowUp;\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faArrowsTurnRight = {\n prefix: 'fas',\n iconName: 'arrows-turn-right',\n icon: [448, 512, [], \"e4c0\", \"M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 160H128c-35.3 0-64 28.7-64 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V224C0 153.3 57.3 96 128 96H338.7L297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416H96c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96H242.7l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V270.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6V128 54.3 48c0-26.5-21.5-48-48-48h-4.5c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0H112C85.5 0 64 21.5 64 48v6.3V128v17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5V464c0 26.5 21.5 48 48 48H176c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464V295.8c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z\"]\n};\nvar faFerry = {\n prefix: 'fas',\n iconName: 'ferry',\n icon: [576, 512, [], \"e4ea\", \"M224 0H352c17.7 0 32 14.3 32 32h75.1c20.6 0 31.6 24.3 18.1 39.8L456 96H120L98.8 71.8C85.3 56.3 96.3 32 116.9 32H192c0-17.7 14.3-32 32-32zM96 128H480c17.7 0 32 14.3 32 32V283.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9H375.6c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9H183.9c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5V160c0-17.7 14.3-32 32-32zm32 64v96H448V192H128zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faArrowsDownToPeople = {\n prefix: 'fas',\n iconName: 'arrows-down-to-people',\n icon: [640, 512, [], \"e4b9\", \"M144 0c-13.3 0-24 10.7-24 24V142.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24zM360 200a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM184 296a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm312 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5V400c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V345.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V142.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0h32c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64H64c123.7 0 224 100.3 224 224v32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320C100.3 320 0 219.7 0 96z\"]\n};\nvar faSprout = faSeedling;\nvar faLeftRight = {\n prefix: 'fas',\n iconName: 'left-right',\n icon: [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z\"]\n};\nvar faArrowsAltH = faLeftRight;\nvar faBoxesPacking = {\n prefix: 'fas',\n iconName: 'boxes-packing',\n icon: [640, 512, [], \"e4c7\", \"M256 48c0-26.5 21.5-48 48-48H592c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H381.3c1.8-5 2.7-10.4 2.7-16V253.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H256V48zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6V432c0 8.8 7.2 16 16 16s16-7.2 16-16V310.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H16c-8.8 0-16-7.2-16-16V176zm352 80V480c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V256H352zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H144z\"]\n};\nvar faCircleArrowLeft = {\n prefix: 'fas',\n iconName: 'circle-arrow-left',\n icon: [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM231 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L376 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-182.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L119 273c-9.4-9.4-9.4-24.6 0-33.9L231 127z\"]\n};\nvar faArrowCircleLeft = faCircleArrowLeft;\nvar faGroupArrowsRotate = {\n prefix: 'fas',\n iconName: 'group-arrows-rotate',\n icon: [512, 512, [], \"e4f6\", \"M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4V163.2c0-5.7-4.7-10.4-10.4-10.4H169.9c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4v60.5c0 5.7 4.7 10.4 10.4 10.4h60.5c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z\"]\n};\nvar faBowlFood = {\n prefix: 'fas',\n iconName: 'bowl-food',\n icon: [512, 512, [], \"e4c6\", \"M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32H8.6C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23v5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8V151C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z\"]\n};\nvar faArrowDownWideShort = {\n prefix: 'fas',\n iconName: 'arrow-down-wide-short',\n icon: [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320z\"]\n};\nvar faSortAmountAsc = faArrowDownWideShort;\nvar faSortAmountDown = faArrowDownWideShort;\nvar faCloudBolt = {\n prefix: 'fas',\n iconName: 'cloud-bolt',\n icon: [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96h47.2L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320H352h64c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H281.9l52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z\"]\n};\nvar faThunderstorm = faCloudBolt;\nvar faTextSlash = {\n prefix: 'fas',\n iconName: 'text-slash',\n icon: [640, 512, [\"remove-format\"], \"f87d\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32H376.1h-.3H204.5c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM327.3 353.9L272.9 311 243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1z\"]\n};\nvar faRemoveFormat = faTextSlash;\nvar faFaceSmileWink = {\n prefix: 'fas',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM136 240h68c42 0 76 34 76 76s-34 76-76 76H160v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V368 264c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28H160v56h44z\"]\n};\nvar faArrowsLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-left-right',\n icon: [512, 512, [\"arrows-h\"], \"f07e\", \"M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faArrowsH = faArrowsLeftRight;\nvar faHouseLock = {\n prefix: 'fas',\n iconName: 'house-lock',\n icon: [640, 512, [], \"e510\", \"M384 480c0 11.7 3.1 22.6 8.6 32H392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272v24.6c-19.1 11.1-32 31.7-32 55.4V480zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faCloudArrowDown = {\n prefix: 'fas',\n iconName: 'cloud-arrow-down',\n icon: [640, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V318.1l-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"]\n};\nvar faCloudDownload = faCloudArrowDown;\nvar faCloudDownloadAlt = faCloudArrowDown;\nvar faChildren = {\n prefix: 'fas',\n iconName: 'children',\n icon: [640, 512, [], \"e4e1\", \"M160 0a64 64 0 1 1 0 128A64 64 0 1 1 160 0zM88 480V400H70.2c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1H232v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V400H152v80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 0a64 64 0 1 1 0 128A64 64 0 1 1 480 0zm-8 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V300.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9h12.3c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H472z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [576, 512, [\"blackboard\"], \"f51b\", \"M96 32C60.7 32 32 60.7 32 96V384H96V96l384 0V384h64V96c0-35.3-28.7-64-64-64H96zM224 384v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H416V384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32z\"]\n};\nvar faBlackboard = faChalkboard;\nvar faUserLargeSlash = {\n prefix: 'fas',\n iconName: 'user-large-slash',\n icon: [640, 512, [\"user-alt-slash\"], \"f4fa\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512H528L284.3 320h-59C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7H545.3l.3 0z\"]\n};\nvar faUserAltSlash = faUserLargeSlash;\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M64 208.1L256 65.9 448 208.1v47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5V208.1zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V208.1c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z\"]\n};\nvar faHandshakeSimpleSlash = {\n prefix: 'fas',\n iconName: 'handshake-simple-slash',\n icon: [640, 512, [\"handshake-alt-slash\"], \"e05f\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.3-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM413.6 421.9L41.2 128.5C17.9 131.8 0 151.8 0 176V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6z\"]\n};\nvar faHandshakeAltSlash = faHandshakeSimpleSlash;\nvar faMattressPillow = {\n prefix: 'fas',\n iconName: 'mattress-pillow',\n icon: [640, 512, [], \"e525\", \"M256 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H256V64zm32 384H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H288V448zM64 160c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160z\"]\n};\nvar faGuaraniSign = {\n prefix: 'fas',\n iconName: 'guarani-sign',\n icon: [384, 512, [], \"e19a\", \"M192 0c-17.7 0-32 14.3-32 32V66.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32H224V132c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7V32c0-17.7-14.3-32-32-32zM160 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380V288h92c-11.6 45-47 80.4-92 92z\"]\n};\nvar faArrowsRotate = {\n prefix: 'fas',\n iconName: 'arrows-rotate',\n icon: [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H352c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V432c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H160c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z\"]\n};\nvar faRefresh = faArrowsRotate;\nvar faSync = faArrowsRotate;\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [512, 512, [129519], \"f134\", \"M500.3 7.3C507.7 13.3 512 22.4 512 32v96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104H224v34.8c37.8 18 64 56.5 64 101.2V384H64V240c0-44.7 26.2-83.2 64-101.2V110c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4V32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V56h65c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416v32c0 35.3-28.7 64-64 64H128c-35.3 0-64-28.7-64-64V416H288zM176 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faCruzeiroSign = {\n prefix: 'fas',\n iconName: 'cruzeiro-sign',\n icon: [448, 512, [], \"e152\", \"M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416V320v-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32v55.3V320v82.7C135.5 378 96 321.6 96 256z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416z\"]\n};\nvar faShieldHalved = {\n prefix: 'fas',\n iconName: 'shield-halved',\n icon: [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z\"]\n};\nvar faShieldAlt = faShieldHalved;\nvar faBookAtlas = {\n prefix: 'fas',\n iconName: 'book-atlas',\n icon: [448, 512, [\"atlas\"], \"f558\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9h63c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9h31.1c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9H303.5c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM145.3 208h31.1c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32H145.3c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9h-63c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z\"]\n};\nvar faAtlas = faBookAtlas;\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H43.5c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H468.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5V32zM176 224a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faEnvelopeCircleCheck = {\n prefix: 'fas',\n iconName: 'envelope-circle-check',\n icon: [640, 512, [], \"e4e8\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176V384c0 35.3 28.7 64 64 64H360.2C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [576, 512, [], \"f5fd\", \"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z\"]\n};\nvar faArrowsToDot = {\n prefix: 'fas',\n iconName: 'arrows-to-dot',\n icon: [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32V64h32c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8h32V32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H288v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H192c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224H64V192c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H96h64V352c0-53 43-96 96-96s96 43 96 96V480h64 64c17.7 0 32-14.3 32-32s-14.3-32-32-32V128H32V416z\"]\n};\nvar faHeartCircleCheck = {\n prefix: 'fas',\n iconName: 'heart-circle-check',\n icon: [576, 512, [], \"e4fd\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faHouseChimneyCrack = {\n prefix: 'fas',\n iconName: 'house-chimney-crack',\n icon: [576, 512, [\"house-damage\"], \"f6f1\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H326.4L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24z\"]\n};\nvar faHouseDamage = faHouseChimneyCrack;\nvar faFileZipper = {\n prefix: 'fas',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM96 48c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8h14.8c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z\"]\n};\nvar faMartiniGlassEmpty = {\n prefix: 'fas',\n iconName: 'martini-glass-empty',\n icon: [512, 512, [\"glass-martini\"], \"f000\", \"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM256 210.7L109.3 64H402.7L256 210.7z\"]\n};\nvar faGlassMartini = faMartiniGlassEmpty;\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M64 160C64 89.3 121.3 32 192 32H448c70.7 0 128 57.3 128 128v33.6c-36.5 7.4-64 39.7-64 78.4v48H128V272c0-38.7-27.5-71-64-78.4V160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48V448c0 17.7-14.3 32-32 32H576c-17.7 0-32-14.3-32-32H96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3v48 32h32H512h32V320 272z\"]\n};\nvar faCediSign = {\n prefix: 'fas',\n iconName: 'cedi-sign',\n icon: [384, 512, [], \"e0df\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V66.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6V132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8V32zM192 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [9962], \"f51d\", \"M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V48H264c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V251.2c0-16.9-8.8-32.5-23.3-41.2L344 142.4V96h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [640, 512, [], \"f653\", \"M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9l0 0 0 0 .2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2 0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20V86c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V280c0 11 9 20 20 20s20-9 20-20V266.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V72z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8H480l32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17V320H192l-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3h-2C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352h96v64 64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V416H288v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416 352h96H448zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z\"]\n};\nvar faZ = {\n prefix: 'fas',\n iconName: 'z',\n icon: [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32H352c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96H32C14.3 96 0 81.7 0 64z\"]\n};\nvar faPersonSkiing = {\n prefix: 'fas',\n iconName: 'person-skiing',\n icon: [512, 512, [9975, \"skiing\"], \"f7c9\", \"M380.7 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM2.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L232.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L289.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 301.3C1.2 295.2-3.4 280.7 2.7 268.9zM118.9 65.6L137 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L151.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z\"]\n};\nvar faSkiing = faPersonSkiing;\nvar faRoadLock = {\n prefix: 'fas',\n iconName: 'road-lock',\n icon: [640, 512, [], \"e567\", \"M288 32H213.2c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480H288V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64h32V352c0-23.7 12.9-44.4 32-55.4V272c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32H352V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faA = {\n prefix: 'fas',\n iconName: 'a',\n icon: [384, 512, [97], \"41\", \"M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L93.3 384H290.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM264 320H120l72-172.8L264 320z\"]\n};\nvar faTemperatureArrowDown = {\n prefix: 'fas',\n iconName: 'temperature-arrow-down',\n icon: [576, 512, [\"temperature-down\"], \"e03f\", \"M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM176 0C114.1 0 64 50.1 64 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V272c0-8.8-7.2-16-16-16s-16 7.2-16 16v50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64H480V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352H384c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z\"]\n};\nvar faTemperatureDown = faTemperatureArrowDown;\nvar faFeatherPointed = {\n prefix: 'fas',\n iconName: 'feather-pointed',\n icon: [512, 512, [\"feather-alt\"], \"f56b\", \"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"]\n};\nvar faFeatherAlt = faFeatherPointed;\nvar faP = {\n prefix: 'fas',\n iconName: 'p',\n icon: [320, 512, [112], \"50\", \"M0 96C0 60.7 28.7 32 64 32h96c88.4 0 160 71.6 160 160s-71.6 160-160 160H64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V320 96zM64 288h96c53 0 96-43 96-96s-43-96-96-96H64V288z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [10052, 10054], \"f2dc\", \"M224 0c17.7 0 32 14.3 32 32V62.1l15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49v70.3l61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7v70.3l49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V449.9l-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49V311.7l-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3V129.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M96 96c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H80c-44.2 0-80-35.8-80-80V128c0-17.7 14.3-32 32-32s32 14.3 32 32V400c0 8.8 7.2 16 16 16s16-7.2 16-16V96zm64 24v80c0 13.3 10.7 24 24 24H296c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H184c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H384c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H384c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"]\n};\nvar faRectangleAd = {\n prefix: 'fas',\n iconName: 'rectangle-ad',\n icon: [576, 512, [\"ad\"], \"f641\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328H162.8l-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280h42.3L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9V184c0-13.3 10.7-24 24-24s24 10.7 24 24v96 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z\"]\n};\nvar faAd = faRectangleAd;\nvar faCircleArrowRight = {\n prefix: 'fas',\n iconName: 'circle-arrow-right',\n icon: [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM281 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L136 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l182.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L393 239c9.4 9.4 9.4 24.6 0 33.9L281 385z\"]\n};\nvar faArrowCircleRight = faCircleArrowRight;\nvar faFilterCircleXmark = {\n prefix: 'fas',\n iconName: 'filter-circle-xmark',\n icon: [576, 512, [], \"e17b\", \"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faLocust = {\n prefix: 'fas',\n iconName: 'locust',\n icon: [576, 512, [], \"e520\", \"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h16c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4H431.8l-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L215.1 400h74.5l-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L348 400h80.4l38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L483.6 400H496c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3V280C576 143 465 32 328 32H312zm50.5 168l17.1 40H333l29.5-40zm-87.7 38.1l-1.4 1.9H225.1l32.7-41.5 16.9 39.5zM88.8 240C57.4 240 32 265.4 32 296.8c0 15.5 6.3 30 16.9 40.4L126.7 240H88.8zM496 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [\"unsorted\"], \"f0dc\", \"M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z\"]\n};\nvar faUnsorted = faSort;\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faList12 = faListOl;\nvar faListNumeric = faListOl;\nvar faPersonDressBurst = {\n prefix: 'fas',\n iconName: 'person-dress-burst',\n icon: [640, 512, [], \"e544\", \"M528 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM390.2 384H408v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h16v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h17.8c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3H474.2c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nvar faMoneyCheckDollar = {\n prefix: 'fas',\n iconName: 'money-check-dollar',\n icon: [576, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zM272 192H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16zM164 152v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V360c0 11-9 20-20 20s-20-9-20-20V345.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V152c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faMoneyCheckAlt = faMoneyCheckDollar;\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [448, 512, [], \"f5cb\", \"M368 80h32v32H368V80zM352 32c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32V160c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H352zM96 160c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32V160zM48 400H80v32H48V400zm320 32V400h32v32H368zM48 112V80H80v32H48z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [512, 512, [], \"f7ec\", \"M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z\"]\n};\nvar faFaceKissWinkHeart = {\n prefix: 'fas',\n iconName: 'face-kiss-wink-heart',\n icon: [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm194.8 57.6c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [320, 512, [10067, 10068, 61736], \"3f\", \"M80 160c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64v3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74V320c0 17.7 14.3 32 32 32s32-14.3 32-32v-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7V160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V428.7c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8h8.9c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z\"]\n};\nvar faUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'up-down-left-right',\n icon: [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32v96H128V192c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V288h96v96H192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H288V288h96v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H288V128h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faArrowsAlt = faUpDownLeftRight;\nvar faHouseChimneyUser = {\n prefix: 'fas',\n iconName: 'house-chimney-user',\n icon: [576, 512, [], \"e065\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM288 160a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM176 400c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [512, 512, [129513], \"f12e\", \"M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [576, 512, [], \"f53c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm48 160H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zM376 160h80c13.3 0 24 10.7 24 24v48c0 13.3-10.7 24-24 24H376c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24z\"]\n};\nvar faStarHalfStroke = {\n prefix: 'fas',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3V376.4zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faWhiskeyGlass = {\n prefix: 'fas',\n iconName: 'whiskey-glass',\n icon: [512, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5h253c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32H32zM87.7 224L69 96H443L424.3 224H87.7z\"]\n};\nvar faGlassWhiskey = faWhiskeyGlass;\nvar faBuildingCircleExclamation = {\n prefix: 'fas',\n iconName: 'building-circle-exclamation',\n icon: [640, 512, [], \"e4d3\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faMagnifyingGlassChart = {\n prefix: 'fas',\n iconName: 'magnifying-glass-chart',\n icon: [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8v64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96V280c0 13.3 10.7 24 24 24s24-10.7 24-24V120c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64v96c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faArrowUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'arrow-up-right-from-square',\n icon: [512, 512, [\"external-link\"], \"f08e\", \"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faExternalLink = faArrowUpRightFromSquare;\nvar faCubesStacked = {\n prefix: 'fas',\n iconName: 'cubes-stacked',\n icon: [448, 512, [], \"e4e6\", \"M192 64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H224c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H288zm64 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H352zM160 384v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H32z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H72.9l56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288h46L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224H329L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224h-64L62.4 53.9zm78 234.1H167l-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1H249zm96 64h26.6l-15.2 45.6L345 288z\"]\n};\nvar faKrw = faWonSign;\nvar faWon = faWonSign;\nvar faVirusCovid = {\n prefix: 'fas',\n iconName: 'virus-covid',\n icon: [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V81.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3H464V216c0-13.3 10.7-24 24-24s24 10.7 24 24v80c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H430.4c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1V464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V430.4c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280H48v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V216c0-13.3 10.7-24 24-24s24 10.7 24 24v16H81.6c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1V48H216c-13.3 0-24-10.7-24-24zm48 200a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm64 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faAustralSign = {\n prefix: 'fas',\n iconName: 'austral-sign',\n icon: [448, 512, [], \"e0a9\", \"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96L82.7 320H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H56L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H365.3L352 288h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H325.3L253.5 51.7zM256 224H192l32-76.8L256 224zm-90.7 64H282.7L296 320H152l13.3-32z\"]\n};\nvar faF = {\n prefix: 'fas',\n iconName: 'f',\n icon: [320, 512, [102], \"46\", \"M64 32C28.7 32 0 60.7 0 96V256 448c0 17.7 14.3 32 32 32s32-14.3 32-32V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [512, 512, [], \"f06c\", \"M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [128739], \"f018\", \"M256 32H181.2c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480H256V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64H521.4c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32H320V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32V64c0 .1 0 .1 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288V432v48c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V432H416v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V432 288c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1c0-.1 0-.1 0-.2V32c0-17.7-14.3-32-32-32H192zM165.4 128H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 224H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 288a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCab = faTaxi;\nvar faPersonCirclePlus = {\n prefix: 'fas',\n iconName: 'person-circle-plus',\n icon: [576, 512, [], \"e541\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [576, 512, [\"pie-chart\"], \"f200\", \"M304 240V16.6c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16H304zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4V288L412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288H558.4z\"]\n};\nvar faPieChart = faChartPie;\nvar faBoltLightning = {\n prefix: 'fas',\n iconName: 'bolt-lightning',\n icon: [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSackXmark = {\n prefix: 'fas',\n iconName: 'sack-xmark',\n icon: [512, 512, [], \"e56a\", \"M192 96H320l47.4-71.1C374.5 14.2 366.9 0 354.1 0H157.9c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32H192c-3.8 2.5-8.1 5.3-13 8.4l0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96H416c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z\"]\n};\nvar faFishFins = {\n prefix: 'fas',\n iconName: 'fish-fins',\n icon: [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.6 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.6 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faBuildingFlag = {\n prefix: 'fas',\n iconName: 'building-flag',\n icon: [640, 512, [], \"e4d5\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32V512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H480c0-17.7-14.3-32-32-32z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'fas',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-170.5-84l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H328.6C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V232.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4V232.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4H119.4zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V352h64v40.6c9.7 5.6 17.8 13.7 23.4 23.4H520.6c5.6-9.7 13.7-17.8 23.4-23.4V279.4c-9.7-5.6-17.8-13.7-23.4-23.4h-46c-5.4-15.4-14.6-28.9-26.5-39.6V192h72.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H311.4z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32H352c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48H408c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72H72c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72h13.7C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64h16.2c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z\"]\n};\nvar faLocationPin = {\n prefix: 'fas',\n iconName: 'location-pin',\n icon: [384, 512, [\"map-marker\"], \"f041\", \"M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z\"]\n};\nvar faMapMarker = faLocationPin;\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [128331], \"f66b\", \"M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112v16 0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2V128 112C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8v46.5l-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8V400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400V262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2V182.8l273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [640, 512, [129531], \"f71e\", \"M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1H48c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0H444.2zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm64 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm80-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faHelmetSafety = {\n prefix: 'fas',\n iconName: 'helmet-safety',\n icon: [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M256 32c-17.7 0-32 14.3-32 32v2.3 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288v64H544l0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1V66.3 64c0-17.7-14.3-32-32-32H256zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6H16.6z\"]\n};\nvar faHardHat = faHelmetSafety;\nvar faHatHard = faHelmetSafety;\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320H48c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48s-21.5 48-48 48H48c-26.5 0-48-21.5-48-48z\"]\n};\nvar faCircleRight = {\n prefix: 'fas',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 135.1l99.9 107.1c3.5 3.8 5.5 8.7 5.5 13.8s-2 10.1-5.5 13.8L294.6 376.9c-4.2 4.5-10.1 7.1-16.3 7.1C266 384 256 374 256 361.7l0-57.7-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-57.7c0-12.3 10-22.3 22.3-22.3c6.2 0 12.1 2.6 16.3 7.1z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faPlaneCircleCheck = {\n prefix: 'fas',\n iconName: 'plane-circle-check',\n icon: [640, 512, [], \"e555\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faFaceRollingEyes = {\n prefix: 'fas',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 368H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H192c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H456.6C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM456.6 96H119.4c-5.6 9.7-13.7 17.8-23.4 23.4V392.6c9.7 5.6 17.8 13.7 23.4 23.4H456.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLineChart = faChartLine;\nvar faMaskVentilator = {\n prefix: 'fas',\n iconName: 'mask-ventilator',\n icon: [640, 512, [], \"e524\", \"M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H159.1zm26-48H56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6V393.3c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8v76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H454.5C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48H584c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320V512h64V320c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [8594], \"f061\", \"M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"]\n};\nvar faSignsPost = {\n prefix: 'fas',\n iconName: 'signs-post',\n icon: [512, 512, [\"map-signs\"], \"f277\", \"M224 32H64C46.3 32 32 46.3 32 64v64c0 17.7 14.3 32 32 32H441.4c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7H288c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32H288V192H224v32H70.6c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7H448c17.7 0 32-14.3 32-32V256zM288 480V384H224v96c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faMapSigns = faSignsPost;\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M64 0C46.3 0 32 14.3 32 32V96c0 17.7 14.3 32 32 32h80v32H87c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V378.4c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160H208V128h80c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H64zM96 48H256c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm48-168a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"]\n};\nvar faPersonCircleQuestion = {\n prefix: 'fas',\n iconName: 'person-circle-question',\n icon: [576, 512, [], \"e542\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"]\n};\nvar faH = {\n prefix: 'fas',\n iconName: 'h',\n icon: [384, 512, [104], \"48\", \"M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z\"]\n};\nvar faTarp = {\n prefix: 'fas',\n iconName: 'tarp',\n icon: [576, 512, [], \"e57b\", \"M576 128c0-35.3-28.7-64-64-64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32H576V128zM448 448L576 320H448l0 128zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faScrewdriverWrench = {\n prefix: 'fas',\n iconName: 'screwdriver-wrench',\n icon: [512, 512, [\"tools\"], \"f7d9\", \"M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4h54.1l109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109V104c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7H352c-8.8 0-16-7.2-16-16V102.6c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faTools = faScrewdriverWrench;\nvar faArrowsToEye = {\n prefix: 'fas',\n iconName: 'arrows-to-eye',\n icon: [640, 512, [], \"e4bf\", \"M15 15C24.4 5.7 39.6 5.7 49 15l63 63V40c0-13.3 10.7-24 24-24s24 10.7 24 24v96c0 13.3-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H78.1L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63H600c13.3 0 24 10.7 24 24s-10.7 24-24 24H504c-13.3 0-24-10.7-24-24V40c0-13.3 10.7-24 24-24s24 10.7 24 24V78.1l63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63H40c-13.3 0-24-10.7-24-24s10.7-24 24-24h96c13.3 0 24 10.7 24 24v96c0 13.3-10.7 24-24 24s-24-10.7-24-24V433.9L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63V472c0 13.3-10.7 24-24 24s-24-10.7-24-24V376c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H561.9l63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"]\n};\nvar faPlugCircleBolt = {\n prefix: 'fas',\n iconName: 'plug-circle-bolt',\n icon: [576, 512, [], \"e55b\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z\"]\n};\nvar faMarsAndVenus = {\n prefix: 'fas',\n iconName: 'mars-and-venus',\n icon: [512, 512, [9893], \"f224\", \"M337.8 14.8C341.5 5.8 350.3 0 360 0H472c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59 146.6-136 158.2V408h24c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V456H208c-13.3 0-24-10.7-24-24s10.7-24 24-24h24V382.2C155 370.6 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48l0 0h0v0zM352 224a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [\"home-user\"], \"e1b0\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H256z\"]\n};\nvar faHomeUser = faHouseUser;\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0h58c15.1-18.1 32.1-35.7 50.5-52.1c1.5-1.4 3.2-2.6 4.8-3.8L402.9 32H304V160zm209.9-23.7c17.4-15.8 43.9-16.2 61.7-1.2c-.1-.7-.3-1.4-.5-2.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l12.8 64.2c9.6 1 19 4.9 26.6 11.8c11.7 10.6 23 21.6 33.9 33.1c1.7-1.6 3.3-3.2 5-4.8zM325.2 210.7c3.8-6.2 7.9-12.5 12.3-18.7H32l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H337.6c-31-34.7-49.6-80.6-49.6-129.9c0-35.2 16.3-73.6 37.2-107.4zM480 480c88.4 0 160-71.6 160-160c0-31.8-15.5-84-74.4-142.4c-11.8-11.7-30.6-10.7-42.3 1L512 189.9l-46-46c-6-6.1-14.1-9.3-22-9.2c-5.9 .1-11.8 1.9-16.8 5.8C382.5 175.3 320 243.3 320 320c0 88.4 71.6 160 160 160zm64-111.8c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-36.5 37-73 54.8-88.4c5.4-4.7 13.1-4.7 18.5 0C507 295.1 544 331.6 544 368.2z\"]\n};\nvar faHouseCrack = {\n prefix: 'fas',\n iconName: 'house-crack',\n icon: [576, 512, [], \"e3b1\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H230.4l-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32z\"]\n};\nvar faMartiniGlassCitrus = {\n prefix: 'fas',\n iconName: 'martini-glass-citrus',\n icon: [576, 512, [\"cocktail\"], \"f561\", \"M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48H296.2C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128H392c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177V464h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H208 120c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V345.9L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z\"]\n};\nvar faCocktail = faMartiniGlassCitrus;\nvar faFaceSurprise = {\n prefix: 'fas',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faBottleWater = {\n prefix: 'fas',\n iconName: 'bottle-water',\n icon: [320, 512, [], \"e4c5\", \"M120 0h80c13.3 0 24 10.7 24 24V64H96V24c0-13.3 10.7-24 24-24zM32 167.5c0-19.5 10-37.6 26.6-47.9l15.8-9.9C88.7 100.7 105.2 96 122.1 96h75.8c16.9 0 33.4 4.7 47.7 13.7l15.8 9.9C278 129.9 288 148 288 167.5c0 17-7.5 32.3-19.4 42.6C280.6 221.7 288 238 288 256c0 19.1-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48s-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64c0-19.1 8.4-36.3 21.7-48C40.4 388.3 32 371.1 32 352s8.4-36.3 21.7-48C40.4 292.3 32 275.1 32 256c0-18 7.4-34.3 19.4-45.9C39.5 199.7 32 184.5 32 167.5zM96 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H112c-8.8 0-16 7.2-16 16zm16 112c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"]\n};\nvar faCirclePause = {\n prefix: 'fas',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM224 192V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192H160c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM367.3 385.4L66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512H285.9c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z\"]\n};\nvar faAppleWhole = {\n prefix: 'fas',\n iconName: 'apple-whole',\n icon: [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16V80c0-44.2 35.8-80 80-80h16c8.8 0 16 7.2 16 16V32c0 44.2-35.8 80-80 80H224zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z\"]\n};\nvar faAppleAlt = faAppleWhole;\nvar faKitchenSet = {\n prefix: 'fas',\n iconName: 'kitchen-set',\n icon: [576, 512, [], \"e51a\", \"M240 144A96 96 0 1 0 48 144a96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112h71.8c8.8-9.8 21.6-16 35.8-16H496c26.5 0 48 21.5 48 48s-21.5 48-48 48H392c-14.2 0-27-6.2-35.8-16H284.4zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24v8h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H280c-13.3 0-24-10.7-24-24s10.7-24 24-24h96v-8c0-13.3 10.7-24 24-24zM288 464V352H512V464c0 26.5-21.5 48-48 48H336c-26.5 0-48-21.5-48-48zM48 320h80 16 32c26.5 0 48 21.5 48 48s-21.5 48-48 48H160c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V336c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160v32h16zM24 464H200c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faR = {\n prefix: 'fas',\n iconName: 'r',\n icon: [320, 512, [114], \"52\", \"M64 32C28.7 32 0 60.7 0 96V288 448c0 17.7 14.3 32 32 32s32-14.3 32-32V320h95.3L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144H64zM176 256H64V96H176c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faTemperatureQuarter = {\n prefix: 'fas',\n iconName: 'temperature-quarter',\n icon: [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature1 = faTemperatureQuarter;\nvar faThermometer1 = faTemperatureQuarter;\nvar faThermometerQuarter = faTemperatureQuarter;\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6V377.4c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4V134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1v-188L288 246.6v188z\"]\n};\nvar faBitcoinSign = {\n prefix: 'fas',\n iconName: 'bitcoin-sign',\n icon: [320, 512, [], \"e0b4\", \"M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32V64h32V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H41.7C18.7 448 0 429.3 0 406.3V288 265.7 224 101.6C0 80.8 16.8 64 37.6 64H48V32zM64 224H176c26.5 0 48-21.5 48-48s-21.5-48-48-48H64v96zm112 64H64v96H208c26.5 0 48-21.5 48-48s-21.5-48-48-48H176z\"]\n};\nvar faShieldDog = {\n prefix: 'fas',\n iconName: 'shield-dog',\n icon: [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64V160h44.2c12.1 0 23.2 6.8 28.6 17.7L320 192h64c8.8 0 16 7.2 16 16v32c0 44.2-35.8 80-80 80H272v50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160h40 8v32 32c0 17.7-14.3 32-32 32s-32-14.3-32-32V176c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384H288v64H224c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H569c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0H122.2zM260.9 64H379.1l10.4 104h-139L260.9 64zM202.3 168H101.4L122.2 64h90.4L202.3 168zM91.8 216H197.5L187.1 320H71L91.8 216zm153.9 0H394.3l10.4 104-169.4 0 10.4-104zm196.8 0H548.2L569 320h-116L442.5 216zm96-48H437.7L427.3 64h90.4l31.4-6.3L517.8 64l20.8 104z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z\"]\n};\nvar faElevator = {\n prefix: 'fas',\n iconName: 'elevator',\n icon: [512, 512, [], \"e16d\", \"M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H208c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H64zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V400zm192 0c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32V400zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0H304c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z\"]\n};\nvar faMoneyBillTransfer = {\n prefix: 'fas',\n iconName: 'money-bill-transfer',\n icon: [640, 512, [], \"e528\", \"M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64H337.9c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5V384c0 35.3-28.7 64-64 64H302.1c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5V128c0-35.3 28.7-64 64-64zm64 64H96v64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64h64V320zM320 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nvar faMoneyBillTrendUp = {\n prefix: 'fas',\n iconName: 'money-bill-trend-up',\n icon: [512, 512, [], \"e529\", \"M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2l0 .1v0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64H352c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faHouseFloodWaterCircleArrowRight = {\n prefix: 'fas',\n iconName: 'house-flood-water-circle-arrow-right',\n icon: [640, 512, [], \"e50f\", \"M288 144A144 144 0 1 0 0 144a144 144 0 1 0 288 0zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h89.4L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4H576c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faSquarePollHorizontal = {\n prefix: 'fas',\n iconName: 'square-poll-horizontal',\n icon: [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faPollH = faSquarePollHorizontal;\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z\"]\n};\nvar faBackwardFast = {\n prefix: 'fas',\n iconName: 'backward-fast',\n icon: [512, 512, [9198, \"fast-backward\"], \"f049\", \"M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7V416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V214.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96V214.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96V416c0 12.4-7.2 23.7-18.4 29z\"]\n};\nvar faFastBackward = faBackwardFast;\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [9842, 9850, 9851], \"f1b8\", \"M174.7 45.1C192.2 17 223 0 256 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L283 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM429.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L320 448v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2v32l96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L36 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L182 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3L68.8 335.3c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0C42.7 448-.3 404.8 0 351.6c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128v64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9V128c0-16.8-12.9-30.5-29.3-31.9zM336 144v16c0 53-43 96-96 96H208c-53 0-96-43-96-96V144c0-26.5 21.5-48 48-48H288c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512H128V448c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64l98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16v48h32V464c0-8.8-7.2-16-16-16zm96 32a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M440.6 320h73.8c34.2 0 93.7-28 93.7-64c0-35-59.5-64-93.7-64l-116.6 0L297.2 16.1C291.5 6.2 280.9 0 269.4 0H213.2c-10.6 0-18.3 10.2-15.4 20.4l40.3 140.9L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320zm-78.1 61.6L41.5 128.7C36 130.6 32 135.9 32 142c0 1.3 .2 2.6 .5 3.9L64 256 32.5 366.1c-.4 1.3-.5 2.6-.5 3.9c0 7.8 6.3 14 14 14H88c5 0 9.8-2.4 12.8-6.4L144 320H246.9l-49 171.6c-2.9 10.2 4.8 20.4 15.4 20.4l56.2 0c11.5 0 22.1-6.2 27.8-16.1l65.3-114.3z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [8482], \"f25c\", \"M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128V384c0 17.7 14.3 32 32 32s32-14.3 32-32V224l86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224V384c0 17.7 14.3 32 32 32s32-14.3 32-32V128c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32H96V384c0 17.7 14.3 32 32 32s32-14.3 32-32V160h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32C14.3 96 0 110.3 0 128z\"]\n};\nvar faBasketball = {\n prefix: 'fas',\n iconName: 'basketball',\n icon: [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M86.6 64l85.2 85.2C194.5 121.7 208 86.4 208 48c0-14.7-2-28.9-5.7-42.4C158.6 15 119 35.5 86.6 64zM64 86.6C35.5 119 15 158.6 5.6 202.3C19.1 206 33.3 208 48 208c38.4 0 73.7-13.5 101.3-36.1L64 86.6zM256 0c-7.3 0-14.6 .3-21.8 .9C238 16 240 31.8 240 48c0 47.3-17.1 90.5-45.4 124L256 233.4 425.4 64C380.2 24.2 320.9 0 256 0zM48 240c-16.2 0-32-2-47.1-5.8C.3 241.4 0 248.7 0 256c0 64.9 24.2 124.2 64 169.4L233.4 256 172 194.6C138.5 222.9 95.3 240 48 240zm463.1 37.8c.6-7.2 .9-14.5 .9-21.8c0-64.9-24.2-124.2-64-169.4L278.6 256 340 317.4c33.4-28.3 76.7-45.4 124-45.4c16.2 0 32 2 47.1 5.8zm-4.7 31.9C492.9 306 478.7 304 464 304c-38.4 0-73.7 13.5-101.3 36.1L448 425.4c28.5-32.3 49.1-71.9 58.4-115.7zM340.1 362.7C317.5 390.3 304 425.6 304 464c0 14.7 2 28.9 5.7 42.4C353.4 497 393 476.5 425.4 448l-85.2-85.2zM317.4 340L256 278.6 86.6 448c45.1 39.8 104.4 64 169.4 64c7.3 0 14.6-.3 21.8-.9C274 496 272 480.2 272 464c0-47.3 17.1-90.5 45.4-124z\"]\n};\nvar faBasketballBall = faBasketball;\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [128225], \"f7c0\", \"M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCircleUp = {\n prefix: 'fas',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM135.1 217.4l107.1-99.9c3.8-3.5 8.7-5.5 13.8-5.5s10.1 2 13.8 5.5l107.1 99.9c4.5 4.2 7.1 10.1 7.1 16.3c0 12.3-10 22.3-22.3 22.3H304v96c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V256H150.3C138 256 128 246 128 233.7c0-6.2 2.6-12.1 7.1-16.3z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faMobileScreenButton = {\n prefix: 'fas',\n iconName: 'mobile-screen-button',\n icon: [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM224 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM304 64H80V384H304V64z\"]\n};\nvar faMobileAlt = faMobileScreenButton;\nvar faVolumeHigh = {\n prefix: 'fas',\n iconName: 'volume-high',\n icon: [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5C598.5 85.2 640 165.8 640 256s-41.5 170.7-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z\"]\n};\nvar faVolumeUp = faVolumeHigh;\nvar faUsersRays = {\n prefix: 'fas',\n iconName: 'users-rays',\n icon: [640, 512, [], \"e593\", \"M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H80c-8.8 0-16-7.2-16-16s7.2-16 16-16H448c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM416 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376H80c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h33.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z\"]\n};\nvar faBurger = {\n prefix: 'fas',\n iconName: 'burger',\n icon: [512, 512, [\"hamburger\"], \"f805\", \"M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1H61.1zM144 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm240 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zM272 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM16 304c0-26.5 21.5-48 48-48H448c26.5 0 48 21.5 48 48s-21.5 48-48 48H64c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16v16c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V400z\"]\n};\nvar faHamburger = faBurger;\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [128295], \"f0ad\", \"M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faBugs = {\n prefix: 'fas',\n iconName: 'bugs',\n icon: [576, 512, [], \"e4d0\", \"M164.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L128 71.7 101.9 14.1C96.4 2 82.1-3.3 70.1 2.1S52.7 21.9 58.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6h-17l-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8S-2.1 111.7 .5 124.7l8 40C10.7 175.9 20.6 184 32 184H64v23.3l-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C82.7 274.6 103.8 288 128 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L192 207.3V184h32c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L204.3 136h-17c-4.7-11.6-12.7-21.5-22.9-28.6zM496 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L432.8 250c-12.3 1-24.2 5.6-34.1 13.3L384 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L359 322.7 321.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L503.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L566.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9l0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s24.9-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1l0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.5-13.4-6.6-28-4.4-43.2c8.4-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z\"]\n};\nvar faRupee = faRupeeSign;\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm152 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6H216 176 128 80c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z\"]\n};\nvar faCircleQuestion = {\n prefix: 'fas',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [128747], \"f5b0\", \"M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2H248.4c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48H542.8c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.3-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM413.6 421.9L128 196.8V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM96 171.6L40.6 128H16c-8.8 0-16 7.2-16 16V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V171.6zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V144c0-8.8-7.2-16-16-16H544zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nvar faBookBookmark = {\n prefix: 'fas',\n iconName: 'book-bookmark',\n icon: [448, 512, [], \"e0bb\", \"M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [448, 512, [], \"f126\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3v87.8c18.8-10.9 40.7-17.1 64-17.1h96c35.3 0 64-28.7 64-64v-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V160c0 70.7-57.3 128-128 128H176c-35.3 0-64 28.7-64 64v6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V352 153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z\"]\n};\nvar faBridge = {\n prefix: 'fas',\n iconName: 'bridge',\n icon: [576, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H72v64H0V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96s96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96V160H504V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM456 96v64H376V96h80zM328 96v64H248V96h80zM200 96v64H120V96h80z\"]\n};\nvar faPhoneFlip = {\n prefix: 'fas',\n iconName: 'phone-flip',\n icon: [512, 512, [128381, \"phone-alt\"], \"f879\", \"M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z\"]\n};\nvar faPhoneAlt = faPhoneFlip;\nvar faTruckFront = {\n prefix: 'fas',\n iconName: 'truck-front',\n icon: [512, 512, [], \"e2b7\", \"M0 80C0 35.8 35.8 0 80 0H432c44.2 0 80 35.8 80 80V368c0 26.2-12.6 49.4-32 64v48c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V432C12.6 417.4 0 394.2 0 368V80zm129.9 72.2L112 224H400l-17.9-71.8C378.5 138 365.7 128 351 128H161c-14.7 0-27.5 10-31 24.2zM128 320a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [576, 512, [128008], \"f6be\", \"M320 192h17.1c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4v4 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V339.2L280 448h56c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-53 0-96-43-96-96V192.5c0-16.1-12-29.8-28-31.8l-7.9-1c-17.5-2.2-30-18.2-27.8-35.7s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3v85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5v0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32h0c-3.7-4.1-7-8.5-9.9-13.2C357.3 164 352 146.6 352 128v0V32 12 10.7C352 4.8 356.7 .1 362.6 0h.2c3.3 0 6.4 1.6 8.4 4.2l0 .1L384 21.3l27.2 36.3L416 64h64l4.8-6.4L512 21.3 524.8 4.3l0-.1c2-2.6 5.1-4.2 8.4-4.2h.2C539.3 .1 544 4.8 544 10.7V12 32v96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM432 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faAnchorCircleExclamation = {\n prefix: 'fas',\n iconName: 'anchor-circle-exclamation',\n icon: [640, 512, [], \"e4ab\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faTruckField = {\n prefix: 'fas',\n iconName: 'truck-field',\n icon: [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64H320c23.7 0 44.4 12.9 55.4 32h51.8c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2H544c35.3 0 64 28.7 64 64v32c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V288c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32V96zM384 224h85.9l-42.7-96H384v96zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c53 0 96 43 96 96s-43 96-96 96H139.6c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-53 0-96-43-96-96s43-96 96-96h39.8c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faClipboardQuestion = {\n prefix: 'fas',\n iconName: 'clipboard-question',\n icon: [384, 512, [], \"e4e3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V314.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H158.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faPanorama = {\n prefix: 'fas',\n iconName: 'panorama',\n icon: [640, 512, [], \"e209\", \"M45.6 32C20.4 32 0 52.4 0 77.6V434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6V77.6C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM96 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm272 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272H176c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [576, 512, [], \"f62f\", \"M96 32C43 32 0 75 0 128v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-53-43-96-96-96H96zM224 96c26.5 0 48 21.5 48 48v56c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V144c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48v56c0 13.3-10.7 24-24 24H328c-13.3 0-24-10.7-24-24V144zM96 128c26.5 0 48 21.5 48 48v24c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V176c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48v24c0 13.3-10.7 24-24 24H456c-13.3 0-24-10.7-24-24V176zM96 480H480c53 0 96-43 96-96V352c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48z\"]\n};\nvar faFileCircleMinus = {\n prefix: 'fas',\n iconName: 'file-circle-minus',\n icon: [576, 512, [], \"e4ed\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [512, 512, [], \"f02c\", \"M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5V80C0 53.5 21.5 32 48 32H197.5c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [320, 512, [127863], \"f4e3\", \"M32.1 29.3C33.5 12.8 47.4 0 64 0H256c16.6 0 30.5 12.8 31.9 29.3l14 168.4c6 72-42.5 135.2-109.9 150.6V448h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H160 80c-17.7 0-32-14.3-32-32s14.3-32 32-32h48V348.4C60.6 333 12.1 269.8 18.1 197.8l14-168.4zm56 98.7H231.9l-5.3-64H93.4l-5.3 64z\"]\n};\nvar faForwardFast = {\n prefix: 'fas',\n iconName: 'forward-fast',\n icon: [512, 512, [9197, \"fast-forward\"], \"f050\", \"M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7V416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7V416c0 17.7 14.3 32 32 32s32-14.3 32-32V96c0-17.7-14.3-32-32-32s-32 14.3-32 32V214.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96V214.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96V416c0 12.4 7.2 23.7 18.4 29z\"]\n};\nvar faFastForward = faForwardFast;\nvar faFaceMehBlank = {\n prefix: 'fas',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm208.4-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faSquareParking = {\n prefix: 'fas',\n iconName: 'square-parking',\n icon: [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM192 256h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H192v64zm48 64H192v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 168c0-22.1 17.9-40 40-40h72c53 0 96 43 96 96s-43 96-96 96z\"]\n};\nvar faParking = faSquareParking;\nvar faHouseSignal = {\n prefix: 'fas',\n iconName: 'house-signal',\n icon: [576, 512, [], \"e012\", \"M357.7 8.5c-12.3-11.3-31.2-11.3-43.4 0l-208 192c-9.4 8.6-12.7 22-8.5 34c87.1 25.3 155.6 94.2 180.3 181.6H464c26.5 0 48-21.5 48-48V256h32c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8.1-35.2l-208-192zM288 208c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V208zM24 256c-13.3 0-24 10.7-24 24s10.7 24 24 24c101.6 0 184 82.4 184 184c0 13.3 10.7 24 24 24s24-10.7 24-24c0-128.1-103.9-232-232-232zm8 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM0 376c0 13.3 10.7 24 24 24c48.6 0 88 39.4 88 88c0 13.3 10.7 24 24 24s24-10.7 24-24c0-75.1-60.9-136-136-136c-13.3 0-24 10.7-24 24z\"]\n};\nvar faBarsProgress = {\n prefix: 'fas',\n iconName: 'bars-progress',\n icon: [512, 512, [\"tasks-alt\"], \"f828\", \"M448 160H320V128H448v32zM48 64C21.5 64 0 85.5 0 112v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zM448 352v32H192V352H448zM48 288c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48z\"]\n};\nvar faTasksAlt = faBarsProgress;\nvar faFaucetDrip = {\n prefix: 'fas',\n iconName: 'faucet-drip',\n icon: [512, 512, [128688], \"e006\", \"M224 0c17.7 0 32 14.3 32 32V44l96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12V32c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32h96l22.6-22.6c6-6 14.1-9.4 22.6-9.4H192V116.2l32-4 32 4V160h18.7c8.5 0 16.6 3.4 22.6 9.4L320 192h32c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32s-14.3-32-32-32H315.9c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48H32c-17.7 0-32-14.3-32-32V224zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V480c0 17.7-14.3 32-32 32s-32-14.3-32-32v-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z\"]\n};\nvar faCartFlatbed = {\n prefix: 'fas',\n iconName: 'cart-flatbed',\n icon: [640, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64H48c8.8 0 16 7.2 16 16V368c0 44.2 35.8 80 80 80h18.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H450.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H144c-8.8 0-16-7.2-16-16V80C128 35.8 92.2 0 48 0H32zM192 80V272c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H464V176c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1V32H240c-26.5 0-48 21.5-48 48z\"]\n};\nvar faDollyFlatbed = faCartFlatbed;\nvar faBanSmoking = {\n prefix: 'fas',\n iconName: 'ban-smoking',\n icon: [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32H384v32H333.3zm32 32H400c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H269.3L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48H304c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96H112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H229.5z\"]\n};\nvar faSmokingBan = faBanSmoking;\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [576, 512, [], \"f120\", \"M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faMobileButton = {\n prefix: 'fas',\n iconName: 'mobile-button',\n icon: [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zM192 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faHouseMedicalFlag = {\n prefix: 'fas',\n iconName: 'house-medical-flag',\n icon: [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32H624c8.8 0 16 7.2 16 16V176c0 8.8-7.2 16-16 16H512V512H448V192 32c0-17.7 14.3-32 32-32zM276.8 39.7L416 159V512h1l-.2 0H96c-17.7 0-32-14.3-32-32V288H32c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208v48H176c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H288V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBasketShopping = {\n prefix: 'fas',\n iconName: 'basket-shopping',\n icon: [576, 512, [\"shopping-basket\"], \"f291\", \"M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512H430c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H458.4L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192H171.7L253.3 35.1zM192 304v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faShoppingBasket = faBasketShopping;\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [576, 512, [], \"f4db\", \"M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H380.8zM224 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm64 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faBusSimple = {\n prefix: 'fas',\n iconName: 'bus-simple',\n icon: [448, 512, [\"bus-alt\"], \"f55e\", \"M224 0C348.8 0 448 35.2 448 80V96 416c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32V96 80C0 35.2 99.2 0 224 0zM64 128V256c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faBusAlt = faBusSimple;\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z\"]\n};\nvar faFaceSadCry = {\n prefix: 'fas',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V477.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V493.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336v32c0 26.5 21.5 48 48 48s48-21.5 48-48V336c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [576, 512, [], \"f29e\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9H150.9l-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2h42.2zM304 184c0-13.3 10.7-24 24-24h56c53 0 96 43 96 96s-43 96-96 96H328c-13.3 0-24-10.7-24-24V184zm48 24v96h32c26.5 0 48-21.5 48-48s-21.5-48-48-48H352z\"]\n};\nvar faPersonMilitaryToPerson = {\n prefix: 'fas',\n iconName: 'person-military-to-person',\n icon: [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9H184.1c8.8-.1 15.9-7.2 15.9-16V16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1H66.5C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256v32c0 17.7 14.3 32 32 32H192c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5V256c0-35.3-28.7-64-64-64H96c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32H448c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H352zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376v32l-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0v32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 2.9 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"]\n};\nvar faFileShield = {\n prefix: 'fas',\n iconName: 'file-shield',\n icon: [576, 512, [], \"e4f0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v47l-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7H514.3c3.9 0 7.6-.7 11-2.1l-261-205.6z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [128394], \"f304\", \"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"]\n};\nvar faTowerObservation = {\n prefix: 'fas',\n iconName: 'tower-observation',\n icon: [512, 512, [], \"e586\", \"M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144v80c0 17.7-14.3 32-32 32h-4.9l32 192H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H384.5c-.4 0-.8 0-1.1 0H128.6c-.4 0-.8 0-1.1 0H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l32-192H128c-17.7 0-32-14.3-32-32V144c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448h117zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256H197.8zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [640, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M576 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM352 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM96 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSignal5 = faSignal;\nvar faSignalPerfect = faSignal;\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [576, 512, [128653], \"f207\", \"M288 0C422.4 0 512 35.2 512 80V96l0 32c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H192v32c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h0V96h0V80C64 35.2 153.6 0 288 0zM128 160v96c0 17.7 14.3 32 32 32H272V128H160c-17.7 0-32 14.3-32 32zM304 288H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H304V288zM144 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM384 80c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16s7.2 16 16 16H368c8.8 0 16-7.2 16-16z\"]\n};\nvar faHeartCircleXmark = {\n prefix: 'fas',\n iconName: 'heart-circle-xmark',\n icon: [576, 512, [], \"e501\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faHouseChimney = {\n prefix: 'fas',\n iconName: 'house-chimney',\n icon: [576, 512, [63499, \"home-lg\"], \"e3af\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v64 24c0 22.1 17.9 40 40 40h24 32.5c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1h16c22.1 0 40-17.9 40-40V455.8c.3-2.6 .5-5.3 .5-8.1l-.7-160.2h32z\"]\n};\nvar faHomeLg = faHouseChimney;\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFaceFrown = {\n prefix: 'fas',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFrown = faFaceFrown;\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32V192v96c0 17.7 14.3 32 32 32s32-14.3 32-32V224h50.7l128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0H32zM176 160H64V64H176c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faShop = {\n prefix: 'fas',\n iconName: 'shop',\n icon: [640, 512, [\"store-alt\"], \"f54f\", \"M36.8 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 224H320V384H128V224H64zm448 0V480c0 17.7 14.3 32 32 32s32-14.3 32-32V224H512z\"]\n};\nvar faStoreAlt = faShop;\nvar faFloppyDisk = {\n prefix: 'fas',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V173.3c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32H64zm0 96c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSave = faFloppyDisk;\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9H480v56.1l6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4H544v65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24H576v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H24c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7V288H56.6c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1V176 128h-7.5c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128H320 224v64h72 48 72V128zM160 288v64H296h24 24H480V288H344 320h0H296 160z\"]\n};\nvar faScaleUnbalanced = {\n prefix: 'fas',\n iconName: 'scale-unbalanced',\n icon: [640, 512, [\"balance-scale-left\"], \"f515\", \"M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2V480c0 17.7 14.3 32 32 32H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V153.3c21-9.2 37.2-27 44.2-49l125.9-42zM439.6 288L512 163.8 584.4 288H439.6zM512 384c62.9 0 115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L536.1 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L392.7 273.1c-5.7 9.8-9.3 21.1-6.7 32.1C396.8 350 449.1 384 512 384zM129.2 291.8L201.6 416H56.7l72.4-124.2zM3.2 433.1C14 478 66.3 512 129.2 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L153.2 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L9.9 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z\"]\n};\nvar faBalanceScaleLeft = faScaleUnbalanced;\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [\"sort-asc\"], \"f0de\", \"M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"]\n};\nvar faSortAsc = faSortUp;\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCommenting = faCommentDots;\nvar faPlantWilt = {\n prefix: 'fas',\n iconName: 'plant-wilt',\n icon: [512, 512, [], \"e5aa\", \"M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56v13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V120C464 53.7 410.3 0 344 0S224 53.7 224 120v21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120v13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V248c0-30.9 25.1-56 56-56s56 25.1 56 56v32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V280 248 120z\"]\n};\nvar faDiamond = {\n prefix: 'fas',\n iconName: 'diamond',\n icon: [512, 512, [9830], \"f219\", \"M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z\"]\n};\nvar faFaceGrinSquint = {\n prefix: 'fas',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faHandHoldingDollar = {\n prefix: 'fas',\n iconName: 'hand-holding-dollar',\n icon: [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M312 24V34.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8V232c0 13.3-10.7 24-24 24s-24-10.7-24-24V220.6c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faHandHoldingUsd = faHandHoldingDollar;\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", \"M423.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L196 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L103 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7l0 0-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2C4.7 380.6-2.7 393.8 .9 406.6s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L215 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L371 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L439 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zM92.1 363.3l0 0L144 368l-51.9-4.7zM112 320a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM240 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40V188.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48v48 16 48c0 70.7-57.3 128-128 128l-16 0H240l-.1 0h-5.2c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128V352c0 80-128.9 128-288 128S0 432 0 352V160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9l0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"]\n};\nvar faHandsPraying = {\n prefix: 'fas',\n iconName: 'hands-praying',\n icon: [640, 512, [\"praying-hands\"], \"f684\", \"M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4v73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384v96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7V224c0-17.7 14.3-32 32-32s32 14.3 32 32v80c0 8.8 7.2 16 16 16s16-7.2 16-16V219.1c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8V304c0 8.8 7.2 16 16 16s16-7.2 16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32V342.3c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480V384c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2V238.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z\"]\n};\nvar faPrayingHands = faHandsPraying;\nvar faArrowRotateRight = {\n prefix: 'fas',\n iconName: 'arrow-rotate-right',\n icon: [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z\"]\n};\nvar faArrowRightRotate = faArrowRotateRight;\nvar faArrowRotateForward = faArrowRotateRight;\nvar faRedo = faArrowRotateRight;\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [9763], \"f780\", \"M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM240 272a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z\"]\n};\nvar faLocationCrosshairs = {\n prefix: 'fas',\n iconName: 'location-crosshairs',\n icon: [512, 512, [\"location\"], \"f601\", \"M256 0c17.7 0 32 14.3 32 32V66.7C368.4 80.1 431.9 143.6 445.3 224H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H445.3C431.9 368.4 368.4 431.9 288 445.3V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C143.6 431.9 80.1 368.4 66.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H66.7C80.1 143.6 143.6 80.1 224 66.7V32c0-17.7 14.3-32 32-32zM128 256a128 128 0 1 0 256 0 128 128 0 1 0 -256 0zm128-80a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nvar faLocation = faLocationCrosshairs;\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [640, 512, [9891], \"f227\", \"M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312zm88 48h0v0l0 0zM64 304a112 112 0 1 1 224 0A112 112 0 1 1 64 304zM368 480c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H504c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2v.2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7V168c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z\"]\n};\nvar faChildDress = {\n prefix: 'fas',\n iconName: 'child-dress',\n icon: [320, 512, [], \"e59c\", \"M224 64A64 64 0 1 0 96 64a64 64 0 1 0 128 0zM88 400v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h16v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h17.8c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400H88z\"]\n};\nvar faUsersBetweenLines = {\n prefix: 'fas',\n iconName: 'users-between-lines',\n icon: [640, 512, [], \"e591\", \"M0 24C0 10.7 10.7 0 24 0H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zM83.2 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 320c0-35.3 28.7-64 64-64h96c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6H64c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6h96c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32H493.6zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32h-224c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1h96c7.4 0 14.7 .8 21.6 2.4zm44-130.4a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM321.6 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M320 0c17.7 0 32 14.3 32 32V156.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2V32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faFaceGrinTears = {\n prefix: 'fas',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [128222, 128379], \"f095\", \"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"]\n};\nvar faCalendarXmark = {\n prefix: 'fas',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faChildReaching = {\n prefix: 'fas',\n iconName: 'child-reaching',\n icon: [384, 512, [], \"e59d\", \"M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384h32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V221.6c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M0 224.2C0 100.6 100.2 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v64c0 35.3-28.7 64-64 64H320v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM224 64c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C145.5 152.1 129 192 96 192c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C168.1 286.5 208 303 208 336c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C302.5 263.9 319 224 352 224c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C279.9 129.5 240 113 240 80c0-8.8-7.2-16-16-16zm-24 96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 80a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nvar faUserGear = {\n prefix: 'fas',\n iconName: 'user-gear',\n icon: [640, 512, [\"user-cog\"], \"f4fe\", \"M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304h91.4c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7v.9c0 9.2 2.7 18.5 7.9 26.3H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8v17.7c0 7.8 4.8 14.8 11.6 18.7c6.8 3.9 15.1 4.5 21.8 .6l13.8-7.9c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-14.4 8.3c-6.5 3.7-10 10.9-10 18.4s3.5 14.7 10 18.4l14.4 8.3c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-13.8-7.9c-6.7-3.9-15.1-3.3-21.8 .6c-6.8 3.9-11.6 10.9-11.6 18.7v17.7c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8V467.8c0-7.9-4.9-14.9-11.7-18.9c-6.8-3.9-15.2-4.5-22-.6l-13.5 7.8c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l14-8.1c6.5-3.8 10.1-11.1 10.1-18.6s-3.5-14.8-10.1-18.6l-14-8.1c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l13.6 7.8c6.8 3.9 15.2 3.3 22-.6c6.9-3.9 11.7-11 11.7-18.9V218.2zm92.1 133.5a48.1 48.1 0 1 0 -96.1 0 48.1 48.1 0 1 0 96.1 0z\"]\n};\nvar faUserCog = faUserGear;\nvar faArrowUp19 = {\n prefix: 'fas',\n iconName: 'arrow-up-1-9',\n icon: [576, 512, [\"sort-numeric-up\"], \"f163\", \"M450.7 38c8.3 6 13.3 15.7 13.3 26v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V108.4l-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM445.7 364.9A32 32 0 1 0 418.3 307a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nvar faSortNumericUp = faArrowUp19;\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [576, 512, [128682], \"f52a\", \"M96 64c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V448h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 144 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96V64zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faMosquitoNet = {\n prefix: 'fas',\n iconName: 'mosquito-net',\n icon: [640, 512, [], \"e52c\", \"M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4V242.2L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5V137.9c0-14.9 10.1-27.3 23.8-31V63.7c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2V107c13.7 3.6 23.8 16.1 23.8 31v22.6l45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35v23.1l32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6v50c0 17.7-14.3 32-32 32s-32-14.3-32-32v-50l-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H528v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H448v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V400H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V320H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16zm16 112h48V320H528v48zm0 80h48V400H528v48zM448 320v48h48V320H448zm0 80v48h48V400H448z\"]\n};\nvar faBridgeWater = {\n prefix: 'fas',\n iconName: 'bridge-water',\n icon: [576, 512, [], \"e4ce\", \"M0 96C0 78.3 14.3 64 32 64H544c17.7 0 32 14.3 32 32v35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6V352.5c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3h0l0-.5V256c0-53-43-96-96-96s-96 43-96 96V384l0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7V227.6C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6V96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64V32zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM224 512c17.7 0 32-14.3 32-32V320H192V480c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM112 80A48 48 0 1 0 16 80a48 48 0 1 0 96 0zm0 261.3V269.3l4.7 4.7c9 9 21.2 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H157.3l-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6v55.7l0 .9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384l32 42.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V421.3c0-10.4-3.4-20.5-9.6-28.8L112 341.3z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M64 128V96H192l0 128H176c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H256l0-128H384v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H224 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V416H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H128V320c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6v1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416H240.9l11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416H64zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.4 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z\"]\n};\nvar faPersonDigging = {\n prefix: 'fas',\n iconName: 'person-digging',\n icon: [576, 512, [\"digging\"], \"f85e\", \"M208 64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2H288c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7h32l22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V405.1l-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z\"]\n};\nvar faDigging = faPersonDigging;\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z\"]\n};\nvar faGaugeSimple = {\n prefix: 'fas',\n iconName: 'gauge-simple',\n icon: [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGaugeSimpleMed = faGaugeSimple;\nvar faTachometerAverage = faGaugeSimple;\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM208 112v48H160c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h48c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80H160c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48H104c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72H440c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72H394.3c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64h-5.5c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3H339.7c6.8 0 12.3 5.5 12.3 12.3z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120h-8c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H320c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72zm-256 0c0 66.3-53.7 120-120 120H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72z\"]\n};\nvar faQuoteRightAlt = faQuoteRight;\nvar faShirt = {\n prefix: 'fas',\n iconName: 'shirt',\n icon: [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0h12.6c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7V448c0 35.3-28.7 64-64 64H224c-35.3 0-64-28.7-64-64V197.7l-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0h12.6z\"]\n};\nvar faTShirt = faShirt;\nvar faTshirt = faShirt;\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [576, 512, [], \"f1b3\", \"M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5V204.7c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7V413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.7c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2V152.6L392 121v89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8L256 323.2v95.9l-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1V354.8L528 323.2v90.7c0 3.2-1.9 6-4.8 7.3z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [10135, 247], \"f529\", \"M272 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 320a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H400z\"]\n};\nvar faTengeSign = {\n prefix: 'fas',\n iconName: 'tenge-sign',\n icon: [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 64C0 46.3 14.3 32 32 32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32H192 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V224H32c-17.7 0-32-14.3-32-32z\"]\n};\nvar faTenge = faTengeSign;\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [127911], \"f025\", \"M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80V384 336 288C0 146.6 114.6 32 256 32s256 114.6 256 256v48 48 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z\"]\n};\nvar faHandsHolding = {\n prefix: 'fas',\n iconName: 'hands-holding',\n icon: [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104v56 64V325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7H240c26.5 0 48-21.5 48-48V385.1c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3V224 144 104zm480 0v40 80 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2 0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2V464c0 26.5 21.5 48 48 48h66.7c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9V224 160 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"]\n};\nvar faHandsClapping = {\n prefix: 'fas',\n iconName: 'hands-clapping',\n icon: [512, 512, [], \"e1a8\", \"M336 16V80c0 8.8-7.2 16-16 16s-16-7.2-16-16V16c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4zM424.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32H384c88.4 0 160 71.6 160 160v64H0V192zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160H320h96 32 64 32v32 80c0 8.8 7.2 16 16 16s16-7.2 16-16V352c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80s-80-35.8-80-80V352H448v32 64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V384H128v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V384 288H128z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faPersonCircleXmark = {\n prefix: 'fas',\n iconName: 'person-circle-xmark',\n icon: [576, 512, [], \"e543\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [512, 512, [128207], \"f545\", \"M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M201 10.3c14.3-7.8 31.6-7.8 46 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L201 10.3zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14V496c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L25 423.1C9.6 414.7 0 398.6 0 381V184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8V381c0 17.6-9.6 33.7-25 42.1L263.7 510c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8V280c0-5.9 3.2-11.2 8.3-14l176-96z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V325.2c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128h8c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H120zM320 0c13.3 0 24 10.7 24 24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480V384H422.2c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1H584v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H504v96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faJ = {\n prefix: 'fas',\n iconName: 'j',\n icon: [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32V320c0 88.4-71.6 160-160 160S0 408.4 0 320V288c0-17.7 14.3-32 32-32s32 14.3 32 32v32c0 53 43 96 96 96s96-43 96-96V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faUsersViewfinder = {\n prefix: 'fas',\n iconName: 'users-viewfinder',\n icon: [640, 512, [], \"e595\", \"M48 48h88c13.3 0 24-10.7 24-24s-10.7-24-24-24H32C14.3 0 0 14.3 0 32V136c0 13.3 10.7 24 24 24s24-10.7 24-24V48zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80-32a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM504 48h88v88c0 13.3 10.7 24 24 24s24-10.7 24-24V32c0-17.7-14.3-32-32-32H504c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464V376c0-13.3-10.7-24-24-24s-24 10.7-24 24V480c0 17.7 14.3 32 32 32H136c13.3 0 24-10.7 24-24s-10.7-24-24-24H48zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H608c17.7 0 32-14.3 32-32V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v88H504z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V288zM300.9 397.9L256 368V304l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z\"]\n};\nvar faUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'up-right-from-square',\n icon: [512, 512, [\"external-link-alt\"], \"f35d\", \"M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faExternalLinkAlt = faUpRightFromSquare;\nvar faTableCells = {\n prefix: 'fas',\n iconName: 'table-cells',\n icon: [512, 512, [\"th\"], \"f00a\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 64v64H64V96h88zm56 0h88v64H208V96zm240 0v64H360V96h88zM64 224h88v64H64V224zm232 0v64H208V224h88zm64 0h88v64H360V224zM152 352v64H64V352h88zm56 0h88v64H208V352zm240 0v64H360V352h88z\"]\n};\nvar faTh = faTableCells;\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [512, 512, [], \"f1c1\", \"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z\"]\n};\nvar faBookBible = {\n prefix: 'fas',\n iconName: 'book-bible',\n icon: [448, 512, [\"bible\"], \"f647\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272V304c0 8.8-7.2 16-16 16H224c-8.8 0-16-7.2-16-16V192H160c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h48V80z\"]\n};\nvar faBible = faBookBible;\nvar faO = {\n prefix: 'fas',\n iconName: 'o',\n icon: [448, 512, [111], \"4f\", \"M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256A224 224 0 1 1 0 256a224 224 0 1 1 448 0z\"]\n};\nvar faSuitcaseMedical = {\n prefix: 'fas',\n iconName: 'suitcase-medical',\n icon: [512, 512, [\"medkit\"], \"f0fa\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96v32V480H384V128 96 56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM96 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H96V96zM416 480h32c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H416V480zM224 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faMedkit = faSuitcaseMedical;\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [128373], \"f21b\", \"M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48H45.4C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4H342.7c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.8 3.3-8.8 6.1-15.5 6.1zm56 208H267.6c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2H168c-22.1 0-40-17.9-40-40V169.6c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4V184c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6V144c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3V168c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6v.6c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V336 320c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6V240c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16v32 16 48c0 8.8 7.2 16 16 16s16-7.2 16-16V204.3c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1h0c0 123.7-100.3 224-224 224h-1.1H256h-.6C132 480 32 380 32 256.6V256 216.8c-10.1-14.6-16-32.3-16-51.4V144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24h2.8C44.8 58.2 83.3 32 128 32h64c44.7 0 83.2 26.2 101.2 64H296c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4v21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-13.3 0-24 10.7-24 24v8h56.4c-15.2 17-24.4 39.4-24.4 64H320c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nvar faPersonDress = {\n prefix: 'fas',\n iconName: 'person-dress',\n icon: [320, 512, [\"female\"], \"f182\", \"M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM88 384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3h11.6c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1H232v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H152v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"]\n};\nvar faFemale = faPersonDress;\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V344c0 11-9 20-20 20s-20-9-20-20V329.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V136c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [\"briefcase-clock\"], \"f64a\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 352h8.2c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM320 352H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H360.2C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 288c8.8 0 16 7.2 16 16v48h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16z\"]\n};\nvar faBriefcaseClock = faBusinessTime;\nvar faTableCellsLarge = {\n prefix: 'fas',\n iconName: 'table-cells-large',\n icon: [512, 512, [\"th-large\"], \"f009\", \"M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faThLarge = faTableCellsLarge;\nvar faBookTanakh = {\n prefix: 'fas',\n iconName: 'book-tanakh',\n icon: [448, 512, [\"tanakh\"], \"f827\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24H124.9l13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24h55.4l27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48H305c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24H249.6L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48H111c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48h55.4l27.7 48-27.7 48H180.3l-27.7-48zm0-48l-13.9 24-13.9-24h27.7zm41.6-24L208 88l13.9 24H194.1zm69.3 24h27.7l-13.9 24-13.9-24zm13.9 72l13.9 24H263.4l13.9-24zm-55.4 48L208 280l-13.9-24h27.7z\"]\n};\nvar faTanakh = faBookTanakh;\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [512, 512, [\"volume-control-phone\"], \"f2a0\", \"M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z\"]\n};\nvar faVolumeControlPhone = faPhoneVolume;\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M152.7 135.9l-10.4 57.2c6.8-.7 13.6-1.1 20.5-1.1h10.7c39.4 0 77.8 12.1 110.1 34.7L562.4 421.8l35.1 24.6c24.4-6 42.5-28.1 42.5-54.4c0-75.8-94.7-126.6-134.6-144.7L474 83.9C468.2 53.8 441.8 32 411.1 32h-2.7c-5.6 0-11.1 .7-16.5 2.2L199.2 85.5c-23.9 6.4-42 26-46.5 50.4zM0 384c0 35.3 28.7 64 64 64H544L265.3 252.9c-26.9-18.8-58.9-28.9-91.8-28.9H162.9c-60.6 0-116 34.2-143.1 88.4L13.5 325C4.6 342.7 0 362.3 0 382.2V384z\"]\n};\nvar faClipboardUser = {\n prefix: 'fas',\n iconName: 'clipboard-user',\n icon: [384, 512, [], \"f7f3\", \"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [320, 512, [], \"f1ae\", \"M96 64a64 64 0 1 1 128 0A64 64 0 1 1 96 64zm48 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V287.8L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H144z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [320, 512, [8356], \"f195\", \"M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4V192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H46c-2.2 10.5-6.1 20.6-11.7 29.9L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H88.5l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V160.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [128752], \"f7bf\", \"M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z\"]\n};\nvar faPlaneLock = {\n prefix: 'fas',\n iconName: 'plane-lock',\n icon: [640, 512, [], \"e558\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7v84.6l101.8 58.2C418 247.6 416 259.6 416 272v24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1V400l57.6 43.2c4 3 6.4 7.8 6.4 12.8v24 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8V297.3c0-5.7 3.1-11 8.1-13.9L192 178.3V93.7zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [448, 512, [127991], \"f02b\", \"M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4l0 0 0 0 0 0 0 0 .3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z\"]\n};\nvar faCakeCandles = {\n prefix: 'fas',\n iconName: 'cake-candles',\n icon: [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c-35.3 0-64 28.7-64 64v71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1 0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4l0 0 0 0 .1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8l0 0 0 0 0 0 .1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9V288c0-35.3-28.7-64-64-64V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H256V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H128V176zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4V480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V394.6z\"]\n};\nvar faBirthdayCake = faCakeCandles;\nvar faCake = faCakeCandles;\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"]\n};\nvar faAnglesUp = {\n prefix: 'fas',\n iconName: 'angles-up',\n icon: [448, 512, [\"angle-double-up\"], \"f102\", \"M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faAngleDoubleUp = faAnglesUp;\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [448, 512, [128206], \"f0c6\", \"M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z\"]\n};\nvar faArrowRightToCity = {\n prefix: 'fas',\n iconName: 'arrow-right-to-city',\n icon: [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H146.7l-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [127895], \"f4d6\", \"M333.2 322.8l0 0-133.9-146 0 0L146 118.6c7.8-5.1 37-22.6 78-22.6s70.2 17.4 78 22.6L245.7 180l85.6 93.4 27.4-29.8c16.3-17.7 25.3-40.9 25.3-65V149.1c0-19-5.6-37.5-16.1-53.3L327.8 35.6C312.9 13.4 287.9 0 261.2 0h-76c-25.8 0-50.1 12.5-65.1 33.5L81.9 87C70.3 103.2 64 122.8 64 142.8V164c0 23.2 8.4 45.6 23.6 63.1l56 64.2 0 0 83.3 95.6 0 0 91.8 105.3c10 11.5 26.8 14.3 40 6.8l54.5-31.1c17.8-10.2 21.6-34.3 7.7-49.4l-87.7-95.7zM205.2 410.6l-83.3-95.6L27.1 418.5c-13.9 15.1-10.1 39.2 7.7 49.4l55.1 31.5c13 7.4 29.3 4.9 39.4-6.1l75.9-82.6z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [129729], \"f604\", \"M320 0c17.7 0 32 14.3 32 32V164.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398V325l90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1v-.4l-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58V398c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v45.5l9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faArrowUp91 = {\n prefix: 'fas',\n iconName: 'arrow-up-9-1',\n icon: [576, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM450.7 294c8.3 6 13.3 15.7 13.3 26v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V364.4l-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zm-5-145.1A32 32 0 1 0 418.3 91a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"]\n};\nvar faSortNumericUpAlt = faArrowUp91;\nvar faLitecoinSign = {\n prefix: 'fas',\n iconName: 'litecoin-sign',\n icon: [384, 512, [], \"e1d3\", \"M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64V213.6L23.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L64 280.1V448c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V261.9l136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L128 195.3V64z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"]\n};\nvar faCircleNodes = {\n prefix: 'fas',\n iconName: 'circle-nodes',\n icon: [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16H240V320H208c-7 0-13.7 1.5-19.7 4.2L68.2 192H96.5c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192h6L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V368c0-7.8-1.9-15.2-5.2-21.7L487.1 192h6c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16h28.3L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2H272V192H383.5z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"]\n};\nvar faTruckFieldUn = {\n prefix: 'fas',\n iconName: 'truck-field-un',\n icon: [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96v32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32v32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288c0-35.3-28.7-64-64-64h-4.2c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38H375.4C364.4 44.9 343.7 32 320 32H96zm288 96h43.2l42.7 96H384V128zM112 384a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM253.3 135.1l34.7 52V144c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V144c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144v64c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V144c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0H64 320h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V75c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1v11c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V437c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75V64C14.3 64 0 49.7 0 32zM96 64V75c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9V64H96zm0 384H288V437c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9v11z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [512, 512, [127956], \"f6fc\", \"M256 32c12.5 0 24.1 6.4 30.8 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9H55.9C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5l18.3 24.4c6.4 8.5 19.2 8.5 25.6 0l25.6-34.1c6-8.1 15.5-12.8 25.6-12.8h49z\"]\n};\nvar faUserDoctor = {\n prefix: 'fas',\n iconName: 'user-doctor',\n icon: [448, 512, [\"user-md\"], \"f0f0\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1V362c27.6 7.1 48 32.2 48 62v40c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16s7.2-16 16-16V424c0-17.7-14.3-32-32-32s-32 14.3-32 32v24c8.8 0 16 7.2 16 16s-7.2 16-16 16H256c-8.8 0-16-7.2-16-16V424c0-29.8 20.4-54.9 48-62V304.9c-6-.6-12.1-.9-18.3-.9H178.3c-6.2 0-12.3 .3-18.3 .9v65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7V311.2zM144 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faUserMd = faUserDoctor;\nvar faCircleInfo = {\n prefix: 'fas',\n iconName: 'circle-info',\n icon: [512, 512, [\"info-circle\"], \"f05a\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faInfoCircle = faCircleInfo;\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96h44.7c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40H416c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faCameraAlt = faCamera;\nvar faSquareVirus = {\n prefix: 'fas',\n iconName: 'square-virus',\n icon: [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm88 32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [9732], \"f753\", \"M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faCarOn = {\n prefix: 'fas',\n iconName: 'car-on',\n icon: [512, 512, [], \"e4dd\", \"M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V24zM185.8 224H326.2c6.8 0 12.8 4.3 15.1 10.6L360.3 288H151.7l19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344v40 64 32c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V448H384v32c0 17.7 14.3 32 32 32h16c17.7 0 32-14.3 32-32V448 384 344c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160H185.8c-33.8 0-64 21.3-75.3 53.1zM128 344a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm232 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V256c0 53 43 96 96 96v32h64V352H384v32h64V352c53 0 96-43 96-96V160c17.7 0 32-14.3 32-32s-14.3-32-32-32H512 480c-17.7 0-32 14.3-32 32v41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7H55 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32v8c0 13.3-10.7 24-24 24H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H552c48.6 0 88-39.4 88-88v-8z\"]\n};\nvar faArrowDown19 = {\n prefix: 'fas',\n iconName: 'arrow-down-1-9',\n icon: [576, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M450.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2V160H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V64c0-10.3-4.9-19.9-13.3-26zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM418.3 307a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 307zM405.1 419.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"]\n};\nvar faSortNumericAsc = faArrowDown19;\nvar faSortNumericDown = faArrowDown19;\nvar faHandHoldingDroplet = {\n prefix: 'fas',\n iconName: 'hand-holding-droplet',\n icon: [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3V160c0 53-43 96-96 96s-96-43-96-96v-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faHandHoldingWater = faHandHoldingDroplet;\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M0 96a64 64 0 1 1 128 0A64 64 0 1 1 0 96zM224 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM80 416a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 96a64 64 0 1 1 128 0A64 64 0 1 1 352 96zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0A64 64 0 1 1 512 96zm64 176a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM416 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faPrescriptionBottleMedical = {\n prefix: 'fas',\n iconName: 'prescription-bottle-medical',\n icon: [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zM160 240v48H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V352h48c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPrescriptionBottleAlt = faPrescriptionBottleMedical;\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [127963], \"f66f\", \"M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8H32c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9V104l4.4-1.6L240.1 4.2zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [128666, 9951], \"f0d1\", \"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM112 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faPersonCane = {\n prefix: 'fas',\n iconName: 'person-cane',\n icon: [448, 512, [], \"e53c\", \"M272 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8V488c0 13.3 10.7 24 24 24s24-10.7 24-24V376c0-30.9-25.1-56-56-56s-56 25.1-56 56v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8z\"]\n};\nvar faTent = {\n prefix: 'fas',\n iconName: 'tent',\n icon: [576, 512, [], \"e57d\", \"M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7H464 435.8c-12.1 0-23.2-6.8-28.6-17.7L306.7 293.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9V480c0 17.7-14.3 32-32 32H240 32c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3V464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512H48c-26.5 0-48-21.5-48-48V270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6V128 54.3 48C64 21.5 85.5 0 112 0h4.5c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0H336c26.5 0 48 21.5 48 48v6.3V128v17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6V464c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V295.8c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280v8 32c0 8.8 7.2 16 16 16h32 8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [448, 512, [], \"f560\", \"M342.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 54.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z\"]\n};\nvar faArrowDownAZ = {\n prefix: 'fas',\n iconName: 'arrow-down-a-z',\n icon: [576, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352H352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176h40.4L416 135.6 395.8 176z\"]\n};\nvar faSortAlphaAsc = faArrowDownAZ;\nvar faSortAlphaDown = faArrowDownAZ;\nvar faMoneyBillWheat = {\n prefix: 'fas',\n iconName: 'money-bill-wheat',\n icon: [512, 512, [], \"e52a\", \"M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faArrowRotateLeft = {\n prefix: 'fas',\n iconName: 'arrow-rotate-left',\n icon: [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z\"]\n};\nvar faArrowLeftRotate = faArrowRotateLeft;\nvar faArrowRotateBack = faArrowRotateLeft;\nvar faArrowRotateBackward = faArrowRotateLeft;\nvar faUndo = faArrowRotateLeft;\nvar faHardDrive = {\n prefix: 'fas',\n iconName: 'hard-drive',\n icon: [512, 512, [128436, \"hdd\"], \"f0a0\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faHdd = faHardDrive;\nvar faFaceGrinSquintTears = {\n prefix: 'fas',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-16.3 4.4-34.1 7.5-46.3 9.3c-1.6 .2-3.1 .5-4.6 .6c-5.6 .9-10.3-3.9-9.5-9.5c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c5.6-.9 10.3 3.9 9.5 9.5c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.4 202.3c-4.8-11.9-20.9-10.9-26.9 .4c-19.4 36.7-46.3 73.2-79.8 106.7s-70 60.3-106.7 79.8c-11.3 6-12.3 22.1-.4 26.9c59.4 24.1 129.9 12.2 177.9-35.8s59.9-118.5 35.8-177.9zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.3-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M96 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V224v64V448c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V384H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H96V64zm448 0v64h32c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32v64c0 17.7-14.3 32-32 32H544v64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V288 224 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32zM416 224v64H224V224H416z\"]\n};\nvar faRectangleList = {\n prefix: 'fas',\n iconName: 'rectangle-list',\n icon: [576, 512, [\"list-alt\"], \"f022\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32-128a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224z\"]\n};\nvar faListAlt = faRectangleList;\nvar faTarpDroplet = {\n prefix: 'fas',\n iconName: 'tarp-droplet',\n icon: [576, 512, [], \"e57c\", \"M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128H197.5c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64H512c35.3 0 64 28.7 64 64V352H448c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zM448 512l0-128H576L448 512zM96 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faHouseMedicalCircleCheck = {\n prefix: 'fas',\n iconName: 'house-medical-circle-check',\n icon: [640, 512, [], \"e511\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm32 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faPersonSkiingNordic = {\n prefix: 'fas',\n iconName: 'person-skiing-nordic',\n icon: [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M336 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464H202.8l41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464H99.7l54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H159.3c.4 0 .9 0 1.3 0H319.3c.5 0 1 0 1.4 0H504c39.8 0 72-32.2 72-72v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24v8c0 13.3-10.7 24-24 24H434.6l27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32H426.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464H357.8l21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288h2.7z\"]\n};\nvar faSkiingNordic = faPersonSkiingNordic;\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192zM224 248c13.3 0 24 10.7 24 24v56h56c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V376H144c-13.3 0-24-10.7-24-24s10.7-24 24-24h56V272c0-13.3 10.7-24 24-24z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [128748], \"f5af\", \"M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0h40.1c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14.1-9.3-22.5zM32 448H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faCircleLeft = {\n prefix: 'fas',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9L117.5 269.8c-3.5-3.8-5.5-8.7-5.5-13.8s2-10.1 5.5-13.8l99.9-107.1c4.2-4.5 10.1-7.1 16.3-7.1c12.3 0 22.3 10 22.3 22.3l0 57.7 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 57.7c0 12.3-10 22.3-22.3 22.3c-6.2 0-12.1-2.6-16.3-7.1z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faTrainSubway = {\n prefix: 'fas',\n iconName: 'train-subway',\n icon: [448, 512, [\"subway\"], \"f239\", \"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 128c0-17.7 14.3-32 32-32h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM272 96h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H272c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM64 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSubway = faTrainSubway;\nvar faChartGantt = {\n prefix: 'fas',\n iconName: 'chart-gantt',\n icon: [512, 512, [], \"e0e4\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32zm96 64H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faIndianRupeeSign = {\n prefix: 'fas',\n iconName: 'indian-rupee-sign',\n icon: [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32H96h16H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H231.8c9.6 14.4 16.7 30.6 20.7 48H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H252.4c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256h80c32.8 0 61-19.7 73.3-48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H185.3C173 115.7 144.8 96 112 96H96 32C14.3 96 0 81.7 0 64z\"]\n};\nvar faIndianRupee = faIndianRupeeSign;\nvar faInr = faIndianRupeeSign;\nvar faCropSimple = {\n prefix: 'fas',\n iconName: 'crop-simple',\n icon: [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H128V32zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-256c0-35.3-28.7-64-64-64L160 64v64l224 0 0 352z\"]\n};\nvar faCropAlt = faCropSimple;\nvar faMoneyBill1 = {\n prefix: 'fas',\n iconName: 'money-bill-1',\n icon: [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm76-48c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faLeftLong = {\n prefix: 'fas',\n iconName: 'left-long',\n icon: [512, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M177.5 414c-8.8 3.8-19 2-26-4.6l-144-136C2.7 268.9 0 262.6 0 256s2.7-12.9 7.5-17.4l144-136c7-6.6 17.2-8.4 26-4.6s14.5 12.5 14.5 22l0 72 288 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-288 0 0 72c0 9.6-5.7 18.2-14.5 22z\"]\n};\nvar faLongArrowAltLeft = faLeftLong;\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [129516], \"f471\", \"M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9l0 0 0 0 0 0-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5H283.3c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32H64c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32H384c0-17.7 14.3-32 32-32zM338.6 384H109.4c-10.1 10.6-18.6 21.3-25.5 32H364.1c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128H338.6c10.1-10.7 18.6-21.3 25.5-32H83.9c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5H164.7z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H532.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM402 412.7L144.7 210c-9.5 8.5-22.2 14-37.2 14H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h11.5c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-31.2 23.6-52.7 50-55.7z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faSubtract = faMinus;\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16V32H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h16V96H60.2C49.1 96 40 105.1 40 116.2c0 2.5 .5 4.9 1.3 7.3L73.8 208H72c-13.3 0-24 10.7-24 24s10.7 24 24 24h4L60 384H196L180 256h4c13.3 0 24-10.7 24-24s-10.7-24-24-24h-1.8l32.5-84.5c.9-2.3 1.3-4.8 1.3-7.3c0-11.2-9.1-20.2-20.2-20.2H144V64h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H144V16zM48 416L4.8 473.6C1.7 477.8 0 482.8 0 488c0 13.3 10.7 24 24 24H232c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L208 416H48zm288 0l-43.2 57.6c-3.1 4.2-4.8 9.2-4.8 14.4c0 13.3 10.7 24 24 24H488c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L464 416H336zM304 208v51.9c0 7.8 2.8 15.3 8 21.1L339.2 312 337 384H462.5l-3.3-72 28.3-30.8c5.4-5.9 8.5-13.6 8.5-21.7V208c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16v16H424V208c0-8.8-7.2-16-16-16H392c-8.8 0-16 7.2-16 16v16H352V208c0-8.8-7.2-16-16-16H320c-8.8 0-16 7.2-16 16zm80 96c0-8.8 7.2-16 16-16s16 7.2 16 16v32H384V304z\"]\n};\nvar faArrowLeftLong = {\n prefix: 'fas',\n iconName: 'arrow-left-long',\n icon: [512, 512, [\"long-arrow-left\"], \"f177\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z\"]\n};\nvar faLongArrowLeft = faArrowLeftLong;\nvar faPlugCircleCheck = {\n prefix: 'fas',\n iconName: 'plug-circle-check',\n icon: [576, 512, [], \"e55c\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64v48c0 17.7 14.3 32 32 32h1.8l11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5h38.7c16.3 0 30-12.3 31.8-28.5L318.2 304H320c17.7 0 32-14.3 32-32V224c0-35.3-28.7-64-64-64H224zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z\"]\n};\nvar faFrancSign = {\n prefix: 'fas',\n iconName: 'franc-sign',\n icon: [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64V224v96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [320, 512, [], \"f026\", \"M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160H64c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64h67.8L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448V64z\"]\n};\nvar faHandsAslInterpreting = {\n prefix: 'fas',\n iconName: 'hands-asl-interpreting',\n icon: [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7V256c0 70.7 57.3 128 128 128h72 8v-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2V256c0-70.7-57.3-128-128-128H440h-8v.3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"]\n};\nvar faAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faAslInterpreting = faHandsAslInterpreting;\nvar faHandsAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faGear = {\n prefix: 'fas',\n iconName: 'gear',\n icon: [512, 512, [9881, \"cog\"], \"f013\", \"M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nvar faCog = faGear;\nvar faDropletSlash = {\n prefix: 'fas',\n iconName: 'droplet-slash',\n icon: [640, 512, [\"tint-slash\"], \"f5c7\", \"M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.1 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0h-1.8c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faTintSlash = faDropletSlash;\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [128332], \"f678\", \"M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5l0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4H221.8c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6l0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H192c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H560V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H448V454c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454v58H288zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126v2H0v-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160H160V296.6c-19.1 11.1-32 31.7-32 55.4V480c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2H48c-26.5 0-48-21.5-48-48V176 160z\"]\n};\nvar faMosquito = {\n prefix: 'fas',\n iconName: 'mosquito',\n icon: [640, 512, [], \"e52b\", \"M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [512, 512, [10017], \"f69a\", \"M404.2 309.5L383.1 344h42.3l-21.1-34.5zM371.4 256l-54-88H194.6l-54 88 54 88H317.4l54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4H348.7l-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400H53.4C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112H163.3l56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112H458.6c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168H383.1zM283 112L256 68l-27 44h54zM128.9 168H86.6l21.1 34.5L128.9 168zM107.8 309.5L86.6 344h42.3l-21.1-34.5zM229 400l27 44 27-44H229z\"]\n};\nvar faPersonMilitaryRifle = {\n prefix: 'fas',\n iconName: 'person-military-rifle',\n icon: [512, 512, [], \"e54b\", \"M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4V48c0 8.8-7.2 16-16 16H185c-13.8 0-25-11.2-25-25zm17.6 57H334.4c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7V480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9h50.4c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512H192c-17.7 0-32-14.3-32-32V369.7l-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faCartShopping = {\n prefix: 'fas',\n iconName: 'cart-shopping',\n icon: [576, 512, [128722, \"shopping-cart\"], \"f07a\", \"M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faShoppingCart = faCartShopping;\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [512, 512, [], \"f493\", \"M0 64C0 46.3 14.3 32 32 32H88h48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96C14.3 96 0 81.7 0 64zM136 96H88V256h48V96zM288 64c0-17.7 14.3-32 32-32h56 48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96c-17.7 0-32-14.3-32-32zM424 96H376V256h48V96z\"]\n};\nvar faPlugCirclePlus = {\n prefix: 'fas',\n iconName: 'plug-circle-plus',\n icon: [576, 512, [], \"e55f\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M224 109.3V217.6L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V283.2c0-16.9-8.8-32.5-23.3-41.2L416 217.6V109.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z\"]\n};\nvar faArrowTurnUp = {\n prefix: 'fas',\n iconName: 'arrow-turn-up',\n icon: [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"]\n};\nvar faLevelUp = faArrowTurnUp;\nvar faU = {\n prefix: 'fas',\n iconName: 'u',\n icon: [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32V288c0 70.7 57.3 128 128 128s128-57.3 128-128V64c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 106-86 192-192 192S0 394 0 288V64C0 46.3 14.3 32 32 32z\"]\n};\nvar faSquareRootVariable = {\n prefix: 'fas',\n iconName: 'square-root-variable',\n icon: [576, 512, [\"square-root-alt\"], \"f698\", \"M282.6 78.1c8-27.3 33-46.1 61.4-46.1H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H344L238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H77.6c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8L282.6 78.1zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faSquareRootAlt = faSquareRootVariable;\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faClockFour = faClock;\nvar faBackwardStep = {\n prefix: 'fas',\n iconName: 'backward-step',\n icon: [320, 512, [\"step-backward\"], \"f048\", \"M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241V96c0-17.7-14.3-32-32-32S0 78.3 0 96V416c0 17.7 14.3 32 32 32s32-14.3 32-32V271l11.5 9.6 192 160z\"]\n};\nvar faStepBackward = faBackwardStep;\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 320 544h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H576V384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H544 320 96 32zm96 64H288v64H128V384zm224 0H512v64H352V384z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M192 96v12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12V96c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H132.1c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48H352c17.7 0 32 14.3 32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160H320l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4H256V180.2l-32-4-32 4V224H173.3c-8.5 0-16.6 3.4-22.6 9.4L128 256H32z\"]\n};\nvar faBaseballBatBall = {\n prefix: 'fas',\n iconName: 'baseball-bat-ball',\n icon: [512, 512, [], \"f432\", \"M424 0c-12.4 0-24.2 4.9-33 13.7L233.5 171.2c-10.5 10.5-19.8 22.1-27.7 34.6L132.7 321.6c-7.3 11.5-15.8 22.2-25.5 31.9L69.9 390.7l51.3 51.3 37.3-37.3c9.6-9.6 20.3-18.2 31.9-25.5l115.8-73.1c12.5-7.9 24.1-17.2 34.6-27.7L498.3 121c8.7-8.7 13.7-20.6 13.7-33s-4.9-24.2-13.7-33L457 13.7C448.2 4.9 436.4 0 424 0zm88 432a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM15 399c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L49 399c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faS = {\n prefix: 'fas',\n iconName: 's',\n icon: [320, 512, [115], \"53\", \"M99.1 105.4C79 114 68.2 127.2 65.2 144.8c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3C5.1 440.8-3.9 422.7 1.6 405.9s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5L2.1 133.9C9.4 91.4 37.4 62.2 73.9 46.6c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.2 22.7c-11.2-3-48.1-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z\"]\n};\nvar faTimeline = {\n prefix: 'fas',\n iconName: 'timeline',\n icon: [640, 512, [], \"e29c\", \"M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288v54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V288H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V169.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3V224H160V169.3zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"]\n};\nvar faHouseChimneyMedical = {\n prefix: 'fas',\n iconName: 'house-chimney-medical',\n icon: [576, 512, [\"clinic-medical\"], \"f7f2\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H320V208c0-8.8-7.2-16-16-16H272z\"]\n};\nvar faClinicMedical = faHouseChimneyMedical;\nvar faTemperatureThreeQuarters = {\n prefix: 'fas',\n iconName: 'temperature-three-quarters',\n icon: [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V144c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature3 = faTemperatureThreeQuarters;\nvar faThermometer3 = faTemperatureThreeQuarters;\nvar faThermometerThreeQuarters = faTemperatureThreeQuarters;\nvar faMobileScreen = {\n prefix: 'fas',\n iconName: 'mobile-screen',\n icon: [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM144 448c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160c-8.8 0-16 7.2-16 16zM304 64H80V384H304V64z\"]\n};\nvar faMobileAndroidAlt = faMobileScreen;\nvar faPlaneUp = {\n prefix: 'fas',\n iconName: 'plane-up',\n icon: [512, 512, [], \"e22d\", \"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6v56.7c0 10.9-10.7 18.6-21.1 15.2L320 320v80l57.6 43.2c4 3 6.4 7.8 6.4 12.8v42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400V320L21.1 377C10.7 380.4 0 372.7 0 361.8V305.1c0-10.7 5.3-20.7 14.2-26.6L192 160V93.7z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M400 96l0 .7c-5.3-.4-10.6-.7-16-.7H256c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96h11.5c10.4 0 18 9.8 15.5 19.9l-13.8 55.2c15.8 14.8 28.7 32.8 37.5 52.9H544c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H512c-9.1 12.1-19.9 22.9-32 32v64c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H256v32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V416c-34.9-26.2-58.7-66.3-63.2-112H68c-37.6 0-68-30.4-68-68s30.4-68 68-68h4c13.3 0 24 10.7 24 24s-10.7 24-24 24H68c-11 0-20 9-20 20s9 20 20 20H99.2c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2H384zm64 136a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [576, 512, [\"battery-3\"], \"f242\", \"M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm208 96H96V320H288V192z\"]\n};\nvar faBattery3 = faBatteryHalf;\nvar faMountainCity = {\n prefix: 'fas',\n iconName: 'mountain-city',\n icon: [640, 512, [], \"e52e\", \"M336 0c-26.5 0-48 21.5-48 48v92.1l71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16h-3.5l73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H568V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H480V48c0-26.5-21.5-48-48-48H336zm32 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176zm160 96c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zM224 188.9L283.8 288H223l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512H413.5c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V304v5.7V336zm32 0V304 278.1c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5V272c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5V432c0 44.2-86 80-192 80S0 476.2 0 432V396.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [9772], \"f66d\", \"M245.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9l0 0 0 0 0 0 0 0-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C344.9 97.4 368 134 368 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1 0 0 0 0c3.6 6.7 2 15-3.8 19.9L272 343.5v19.8l35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L401.1 80c7.2-14.3 7.2-14.3 7.2-14.3l0 0 0 0 .1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1 0 0 0 0s0 0-10.2-12.3l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L272 423.4v28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7V424.1l-40.3 27.7C197.8 463.3 187.9 472 176 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L112 400c-10.2 12.3-10.2 12.3-10.3 12.3l0 0 0 0-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C26.4 324.5 0 277.1 0 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29C93 72.5 97 70 99.9 68.4c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0 0 0 0 0s0 0 7.2 14.3l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C105.2 119 96 149.5 96 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L240 362.6V343.5l-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9l0 0 0 0 0 0 .1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C167.1 254.6 144 218 144 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1 0 0 0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM220.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C227 210.2 232 190.9 232 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C285 141.8 280 161.1 280 176s5 34.2 11.8 53.1z\"]\n};\nvar faSliders = {\n prefix: 'fas',\n iconName: 'sliders',\n icon: [512, 512, [\"sliders-h\"], \"f1de\", \"M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z\"]\n};\nvar faSlidersH = faSliders;\nvar faFolderTree = {\n prefix: 'fas',\n iconName: 'folder-tree',\n icon: [576, 512, [], \"f802\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M256 64H384v64H256V64zM240 0c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96v32H80c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H240c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H192V288H448v32H400c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H512V288h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V192h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H240zM96 448V384H224v64H96zm320-64H544v64H416V384z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [320, 512, [128205], \"f276\", \"M16 144a144 144 0 1 1 288 0A144 144 0 1 1 16 144zM160 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM128 480V317.1c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M34.6 288H80c8.8 0 16-7.2 16-16V72c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V40c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V72c0-22.1 17.9-40 40-40s40 17.9 40 40V272c0 8.8 7.2 16 16 16h45.4c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faCentSign = {\n prefix: 'fas',\n iconName: 'cent-sign',\n icon: [384, 512, [], \"e3f5\", \"M224 0c17.7 0 32 14.3 32 32V66.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z\"]\n};\nvar faPersonPregnant = {\n prefix: 'fas',\n iconName: 'person-pregnant',\n icon: [384, 512, [], \"e31e\", \"M192 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM120 383c-13.8-3.6-24-16.1-24-31V296.9l-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1h1.1 12.5H192c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3v32c0 17.7-14.3 32-32 32H304 264v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384h-8-8v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V383z\"]\n};\nvar faWandSparkles = {\n prefix: 'fas',\n iconName: 'wand-sparkles',\n icon: [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7V176c0 8.8-7.2 16-16 16H384.2c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9V272c0-8.8 7.2-16 16-16h34.6c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"]\n};\nvar faEllipsisVertical = {\n prefix: 'fas',\n iconName: 'ellipsis-vertical',\n icon: [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z\"]\n};\nvar faEllipsisV = faEllipsisVertical;\nvar faTicket = {\n prefix: 'fas',\n iconName: 'ticket',\n icon: [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128v64c0 8.8 7.4 15.7 15.7 18.6C34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V320c0-8.8-7.4-15.7-15.7-18.6C541.5 294.9 528 277 528 256s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6V128c0-35.3-28.7-64-64-64H64zm64 112l0 160c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16zM96 160c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V160z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [9211], \"f011\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V256c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z\"]\n};\nvar faRightLong = {\n prefix: 'fas',\n iconName: 'right-long',\n icon: [512, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 72L32 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l288 0 0 72c0 9.6 5.7 18.2 14.5 22z\"]\n};\nvar faLongArrowAltRight = faRightLong;\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [448, 512, [], \"f74d\", \"M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1v36.1l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9v32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3v33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 400v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V416 345.5 312.8 249.5 216.8 153.5 120.8 64 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faLaptopFile = {\n prefix: 'fas',\n iconName: 'laptop-file',\n icon: [640, 512, [], \"e51d\", \"M128 0C92.7 0 64 28.7 64 64V288H19.2C8.6 288 0 296.6 0 307.2C0 349.6 34.4 384 76.8 384H320V288H128V64H448V96h64V64c0-35.3-28.7-64-64-64H128zM512 128H400c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V256H544c-17.7 0-32-14.3-32-32V128zm32 0v96h96l-96-96z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [\"teletype\"], \"f1e4\", \"M38.3 241.3L15.1 200.6c-9.2-16.2-8.4-36.5 4.5-50C61.4 106.8 144.7 48 256 48s194.6 58.8 236.4 102.6c12.9 13.5 13.7 33.8 4.5 50l-23.1 40.7c-7.5 13.2-23.3 19.3-37.8 14.6l-81.1-26.6c-13.1-4.3-22-16.6-22-30.4V144c-49.6-18.1-104-18.1-153.6 0v54.8c0 13.8-8.9 26.1-22 30.4L76.1 255.8c-14.5 4.7-30.3-1.4-37.8-14.6zM32 336c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V336zm0 96c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V432zM144 320h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V336zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V336zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V432c0-8.8 7.2-16 16-16zM128 432c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V432z\"]\n};\nvar faTeletype = faTty;\nvar faDiagramNext = {\n prefix: 'fas',\n iconName: 'diagram-next',\n icon: [512, 512, [], \"e476\", \"M512 160c0 35.3-28.7 64-64 64H280v64h46.1c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41H232V224H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64v64zM448 416V352H365.3l.4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4H64v64H210.7l5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7H448z\"]\n};\nvar faPersonRifle = {\n prefix: 'fas',\n iconName: 'person-rifle',\n icon: [576, 512, [], \"e54e\", \"M265.2 192c25.4 0 49.8 7.1 70.8 19.9V512H144V337.7L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8h50.4zM160 80a80 80 0 1 1 160 0A80 80 0 1 1 160 80zM448 0c8.8 0 16 7.2 16 16V132.3c9.6 5.5 16 15.9 16 27.7V269.3l16-5.3V208c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v84.5c0 6.9-4.4 13-10.9 15.2L480 325.3V352h48c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H484l23 92.1c2.5 10.1-5.1 19.9-15.5 19.9H432c-8.8 0-16-7.2-16-16V400H400c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32V160c0-11.8 6.4-22.2 16-27.7V32c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 16z\"]\n};\nvar faHouseMedicalCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-medical-circle-exclamation',\n icon: [640, 512, [], \"e512\", \"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [576, 512, [], \"f20a\", \"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"]\n};\nvar faPersonHiking = {\n prefix: 'fas',\n iconName: 'person-hiking',\n icon: [384, 512, [\"hiking\"], \"f6ec\", \"M192 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm51.3 182.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3l-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208H336V184c0-13.3 10.7-24 24-24s24 10.7 24 24v55.8c0 .1 0 .2 0 .2s0 .2 0 .2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V272H296.6c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59h4.2c15.6 0 27.1 14.7 23.3 29.8z\"]\n};\nvar faHiking = faPersonHiking;\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [640, 512, [9890], \"f226\", \"M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H224v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H480v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1c-26.6-4.9-51.1-15.7-72-31.1z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M160 32c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H328 280 200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM96 64H288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"]\n};\nvar faPeoplePulling = {\n prefix: 'fas',\n iconName: 'people-pulling',\n icon: [576, 512, [], \"e535\", \"M80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64V320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352h15.7l30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128H64zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"]\n};\nvar faN = {\n prefix: 'fas',\n iconName: 'n',\n icon: [384, 512, [110], \"4e\", \"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V448c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 50.5 8.4 38.5 21.1 33.9z\"]\n};\nvar faCableCar = {\n prefix: 'fas',\n iconName: 'cable-car',\n icon: [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 56a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64H232V157.5l-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5V224H416c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V288zm64 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H96zm112 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H352z\"]\n};\nvar faTram = faCableCar;\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3z\"]\n};\nvar faBuildingCircleXmark = {\n prefix: 'fas',\n iconName: 'building-circle-xmark',\n icon: [640, 512, [], \"e4d4\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [576, 512, [128674], \"f21a\", \"M192 32c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V64h48c26.5 0 48 21.5 48 48V240l44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240V112c0-26.5 21.5-48 48-48h48V32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7V128H160v90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faArrowsDownToLine = {\n prefix: 'fas',\n iconName: 'arrows-down-to-line',\n icon: [576, 512, [], \"e4b8\", \"M544 416L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L480 274.7 480 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L160 274.7 160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L54.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faFaceGrin = {\n prefix: 'fas',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrin = faFaceGrin;\nvar faDeleteLeft = {\n prefix: 'fas',\n iconName: 'delete-left',\n icon: [576, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64H205.3c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7H512c35.3 0 64-28.7 64-64V128zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faBackspace = faDeleteLeft;\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6v42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480h42.4c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7H96V379.9c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z\"]\n};\nvar faEyeDropperEmpty = faEyeDropper;\nvar faEyedropper = faEyeDropper;\nvar faFileCircleCheck = {\n prefix: 'fas',\n iconName: 'file-circle-check',\n icon: [576, 512, [], \"e5a0\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [9193], \"f04e\", \"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3V256v41.7L52.5 440.6zM256 352V256 128 96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29V352z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zm80 432h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMobileAndroid = faMobile;\nvar faMobilePhone = faMobile;\nvar faFaceMeh = {\n prefix: 'fas',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM160 336H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faMeh = faFaceMeh;\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z\"]\n};\nvar faBookSkull = {\n prefix: 'fas',\n iconName: 'book-skull',\n icon: [448, 512, [\"book-dead\"], \"f6b7\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2V176c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V163.2c19.4-11.7 32-30.3 32-51.2zM208 96a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z\"]\n};\nvar faBookDead = faBookSkull;\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96l576 0c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm0 32V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128H0zM64 405.3c0-29.5 23.9-53.3 53.3-53.3H234.7c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7H74.7c-5.9 0-10.7-4.8-10.7-10.7zM176 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm176 16c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [\"dedent\"], \"f03b\", \"M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z\"]\n};\nvar faDedent = faOutdent;\nvar faHeartCircleExclamation = {\n prefix: 'fas',\n iconName: 'heart-circle-exclamation',\n icon: [576, 512, [], \"e4fe\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faHouse = {\n prefix: 'fas',\n iconName: 'house',\n icon: [576, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z\"]\n};\nvar faHome = faHouse;\nvar faHomeAlt = faHouse;\nvar faHomeLgAlt = faHouse;\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H352v48c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V272H240c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"]\n};\nvar faB = {\n prefix: 'fas',\n iconName: 'b',\n icon: [320, 512, [98], \"42\", \"M64 32C28.7 32 0 60.7 0 96V256 416c0 35.3 28.7 64 64 64H192c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128H64zm96 192H64V96h96c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288h96 32c35.3 0 64 28.7 64 64s-28.7 64-64 64H64V288z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM160 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H224v48c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V352H112c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16h48V240z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4H448c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3V224c0-70.7-57.3-128-128-128H392.3c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3V456c0 13.3 10.7 24 24 24s24-10.7 24-24V410c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7V456c0 13.3 10.7 24 24 24s24-10.7 24-24V405.1c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faArrowRightArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-right-arrow-left',\n icon: [448, 512, [8644, \"exchange\"], \"f0ec\", \"M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z\"]\n};\nvar faExchange = faArrowRightArrowLeft;\nvar faRotateRight = {\n prefix: 'fas',\n iconName: 'rotate-right',\n icon: [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z\"]\n};\nvar faRedoAlt = faRotateRight;\nvar faRotateForward = faRotateRight;\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [448, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M416 0C400 0 288 32 288 176V288c0 35.3 28.7 64 64 64h32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352 240 32c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V255.6c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16V150.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8V16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z\"]\n};\nvar faCutlery = faUtensils;\nvar faArrowUpWideShort = {\n prefix: 'fas',\n iconName: 'arrow-up-wide-short',\n icon: [576, 512, [\"sort-amount-up\"], \"f161\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSortAmountUp = faArrowUpWideShort;\nvar faMillSign = {\n prefix: 'fas',\n iconName: 'mill-sign',\n icon: [384, 512, [], \"e1ed\", \"M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128v80V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-26.5 21.5-48 48-48s48 21.5 48 48v42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32V261.5l35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z\"]\n};\nvar faBowlRice = {\n prefix: 'fas',\n iconName: 'bowl-rice',\n icon: [512, 512, [], \"e2eb\", \"M176 56c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24zm24 48h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176H72c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H248c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H104c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H344c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H440c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H392c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [128128], \"f54c\", \"M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1v64c0 26.5 21.5 48 48 48h48V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h64V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c26.5 0 48-21.5 48-48V400c0-.4 0-.7 0-1.1zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faTowerBroadcast = {\n prefix: 'fas',\n iconName: 'tower-broadcast',\n icon: [576, 512, [\"broadcast-tower\"], \"f519\", \"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"]\n};\nvar faBroadcastTower = faTowerBroadcast;\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [128763], \"f63c\", \"M368.6 96l76.8 96H288V96h80.6zM224 80V192H64c-17.7 0-32 14.3-32 32v64c-17.7 0-32 14.3-32 32s14.3 32 32 32H65.1c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16h66.3c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32V224c0-17.7-14.3-32-32-32H527.4L418.6 56c-12.1-15.2-30.5-24-50-24H272c-26.5 0-48 21.5-48 48zm0 288a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm288 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0z\"]\n};\nvar faUpLong = {\n prefix: 'fas',\n iconName: 'up-long',\n icon: [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192H96l0 288c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32l0-288h72c9.6 0 18.2-5.7 22-14.5z\"]\n};\nvar faLongArrowAltUp = faUpLong;\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [384, 512, [9209], \"f04d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"]\n};\nvar faCodeMerge = {\n prefix: 'fas',\n iconName: 'code-merge',\n icon: [448, 512, [], \"f387\", \"M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3V358.7C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V272c26.7 20.1 60 32 96 32h86.7c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48H208c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faHurricane = {\n prefix: 'fas',\n iconName: 'hurricane',\n icon: [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9V81.2c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2V430.2c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48A96 96 0 1 0 96 256a96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faMound = {\n prefix: 'fas',\n iconName: 'mound',\n icon: [576, 512, [], \"e52d\", \"M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z\"]\n};\nvar faToiletPortable = {\n prefix: 'fas',\n iconName: 'toilet-portable',\n icon: [320, 512, [], \"e583\", \"M0 32V64H320V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32zM24 96H0v24V488c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H272v8c0 13.3 10.7 24 24 24s24-10.7 24-24V120 96H296 24zM256 240v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [512, 512, [128191, 128192, 128440], \"f51f\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faFileArrowDown = {\n prefix: 'fas',\n iconName: 'file-arrow-down',\n icon: [384, 512, [\"file-download\"], \"f56d\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faFileDownload = faFileArrowDown;\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M0 112C0 67.8 35.8 32 80 32H416c88.4 0 160 71.6 160 160V352h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0H288c0 53-43 96-96 96s-96-43-96-96H80c-44.2 0-80-35.8-80-80V112zM320 352H448V256H416c-8.8 0-16-7.2-16-16s7.2-16 16-16h32V160c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32V352zM96 128c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96zm96 336a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faShieldCat = {\n prefix: 'fas',\n iconName: 'shield-cat',\n icon: [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4h.2c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4h48c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3h.2c5.8 0 10.4 4.7 10.4 10.4V272c0 53-43 96-96 96s-96-43-96-96V154.4zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [448, 512, [9889, \"zap\"], \"f0e7\", \"M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z\"]\n};\nvar faZap = faBolt;\nvar faGlassWater = {\n prefix: 'fas',\n iconName: 'glass-water',\n icon: [384, 512, [], \"e4f4\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3H275.3c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0H32zM73 156.5L66.4 64H317.6L311 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L73 156.5z\"]\n};\nvar faOilWell = {\n prefix: 'fas',\n iconName: 'oil-well',\n icon: [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H406.7L340 257.5l-62.2 16.1L305.3 352H238.7L265 277l-74.6 19.3L137.3 448H96V288.8l337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32H327.7l11.2 32H205.1z\"]\n};\nvar faVault = {\n prefix: 'fas',\n iconName: 'vault',\n icon: [576, 512, [], \"e2c5\", \"M64 0C28.7 0 0 28.7 0 64V416c0 35.3 28.7 64 64 64H80l16 32h64l16-32H400l16 32h64l16-32h16c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 320a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-240a160 160 0 1 1 0 320 160 160 0 1 1 0-320zM480 221.3V336c0 8.8-7.2 16-16 16s-16-7.2-16-16V221.3c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [448, 512, [9794], \"f222\", \"M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8H424c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80l0 0h0v0zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V196.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H352c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8l0 .1 0 .3zM328.2 384l-.2 .5 0-.5h.2zM112 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faPlaneCircleXmark = {\n prefix: 'fas',\n iconName: 'plane-circle-xmark',\n icon: [640, 512, [], \"e557\", \"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [320, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M58.6 46.2C48.8 31.5 29 27.6 14.3 37.4S-4.4 67 5.4 81.7L100.2 224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V288h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H219.8L314.6 81.7c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.2z\"]\n};\nvar faCny = faYenSign;\nvar faJpy = faYenSign;\nvar faRmb = faYenSign;\nvar faYen = faYenSign;\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M96 32C78.3 32 64 46.3 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V416H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V320H240c79.5 0 144-64.5 144-144s-64.5-144-144-144H96zM240 256H128V96H240c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faRouble = faRubleSign;\nvar faRub = faRubleSign;\nvar faRuble = faRubleSign;\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [9728], \"f185\", \"M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faFaceLaughWink = {\n prefix: 'fas',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [640, 512, [], \"f7ab\", \"M64 464V316.9c0-108.4 68.3-205.1 170.5-241.3L404.2 15.5C425.6 7.9 448 23.8 448 46.4c0 11-5.5 21.2-14.6 27.3L400 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1h-3.4c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8H112c-26.5 0-48-21.5-48-48zM392 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faBoreHole = {\n prefix: 'fas',\n iconName: 'bore-hole',\n icon: [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32V296.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4V32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H384c-17.7 0-32 14.3-32 32V352c0 53-43 96-96 96s-96-43-96-96V160c0-17.7-14.3-32-32-32H48z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [576, 512, [], \"f275\", \"M64 32C46.3 32 32 46.3 32 64V304v48 80c0 26.5 21.5 48 48 48H496c26.5 0 48-21.5 48-48V304 152.2c0-18.2-19.4-29.7-35.4-21.1L352 215.4V152.2c0-18.2-19.4-29.7-35.4-21.1L160 215.4V64c0-17.7-14.3-32-32-32H64z\"]\n};\nvar faCircleDown = {\n prefix: 'fas',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6L269.8 394.5c-3.8 3.5-8.7 5.5-13.8 5.5s-10.1-2-13.8-5.5L135.1 294.6c-4.5-4.2-7.1-10.1-7.1-16.3c0-12.3 10-22.3 22.3-22.3l57.7 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 57.7 0c12.3 0 22.3 10 22.3 22.3c0 6.2-2.6 12.1-7.1 16.3z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faArrowsTurnToDots = {\n prefix: 'fas',\n iconName: 'arrows-turn-to-dots',\n icon: [512, 512, [], \"e4c1\", \"M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM384 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192A64 64 0 1 1 64 64a64 64 0 1 1 0 128z\"]\n};\nvar faFlorinSign = {\n prefix: 'fas',\n iconName: 'florin-sign',\n icon: [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32h80L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H69.3c38.8 0 73.7-23.3 88.6-59.1L213.3 288H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H240l45.1-108.3c5-11.9 16.6-19.7 29.5-19.7H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H314.7z\"]\n};\nvar faArrowDownShortWide = {\n prefix: 'fas',\n iconName: 'arrow-down-short-wide',\n icon: [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSortAmountDesc = faArrowDownShortWide;\nvar faSortAmountDownAlt = faArrowDownShortWide;\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [62774], \"3c\", \"M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [448, 512, [8964], \"f107\", \"M201.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 274.7 86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faCarTunnel = {\n prefix: 'fas',\n iconName: 'car-tunnel',\n icon: [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256V448c0 35.3 28.7 64 64 64h42.8c-6.6-5.9-10.8-14.4-10.8-24V376c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7H313.6c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6V488c0 9.6-4.2 18.1-10.8 24H448c35.3 0 64-28.7 64-64V256C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24V448H160v40c0 9.6-4.2 18.1-10.8 24H362.8zM190.8 277.5L177 320H335l-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5H198.4c-3.5 0-6.5 2.2-7.6 5.5zM168 408a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm200-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M0 224.2C0 100.6 100.2 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v0 32L339.2 365.6c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9L448 416v16c0 26.5-21.5 48-48 48H320v8c0 13.3-10.7 24-24 24H256v0H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm352-.2a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM464 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm152-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM592 480a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 312a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2H464c26.5 0 48-21.5 48-48c0-18.5-10.5-34.6-25.9-42.6C497 236.6 504 223.1 504 208c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48H294.5c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7V192v48 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 384H96c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H32C14.3 96 0 110.3 0 128V352c0 17.7 14.3 32 32 32z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H392.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7H178.3zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faArrowRightLong = {\n prefix: 'fas',\n iconName: 'arrow-right-long',\n icon: [512, 512, [\"long-arrow-right\"], \"f178\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLongArrowRight = faArrowRightLong;\nvar faAnchorCircleXmark = {\n prefix: 'fas',\n iconName: 'anchor-circle-xmark',\n icon: [640, 512, [], \"e4ac\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faEllipsis = {\n prefix: 'fas',\n iconName: 'ellipsis',\n icon: [448, 512, [\"ellipsis-h\"], \"f141\", \"M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faEllipsisH = faEllipsis;\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [9823], \"f443\", \"M215.5 224c29.2-18.4 48.5-50.9 48.5-88c0-57.4-46.6-104-104-104S56 78.6 56 136c0 37.1 19.4 69.6 48.5 88H96c-17.7 0-32 14.3-32 32c0 16.5 12.5 30 28.5 31.8L80 400H240L227.5 287.8c16-1.8 28.5-15.3 28.5-31.8c0-17.7-14.3-32-32-32h-8.5zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512H281.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L256 432H64L22.6 473.4z\"]\n};\nvar faKitMedical = {\n prefix: 'fas',\n iconName: 'kit-medical',\n icon: [576, 512, [\"first-aid\"], \"f479\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H96V32H64zm64 0V480H448V32H128zM512 480c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H480V480h32zM256 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V288H208c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16h48V176z\"]\n};\nvar faFirstAid = faKitMedical;\nvar faPersonThroughWindow = {\n prefix: 'fas',\n iconName: 'person-through-window',\n icon: [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0H64V64zm288 0l224 0V384H508.3l-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320H379.2l42.7 64H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48V400c0 26.5 21.5 48 48 48H308.2l33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0H192s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [129520], \"f552\", \"M176 88v40H336V88c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zm-48 40V88c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56v40h28.1c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9V304H384V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H192V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H0V227.9c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1H128zM0 416V336H128v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H320v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H512v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z\"]\n};\nvar faHandsHoldingCircle = {\n prefix: 'fas',\n iconName: 'hands-holding-circle',\n icon: [640, 512, [], \"e4fb\", \"M320 0a128 128 0 1 1 0 256A128 128 0 1 1 320 0zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M64 32C28.7 32 0 60.7 0 96v32H576V96c0-35.3-28.7-64-64-64H64zM576 224H0V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V224zM112 352h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4L109.1 192H402.9l-26.1-74.6C372.3 104.6 360.2 96 346.6 96H165.4c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32H346.6c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2V400v48c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V400H96v48c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V400 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAutomobile = faCar;\nvar faHandHoldingHand = {\n prefix: 'fas',\n iconName: 'hand-holding-hand',\n icon: [576, 512, [], \"e4f7\", \"M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32H384 544c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H507.2l-44.9 36c-22.7 18.2-50.9 28-80 28H304 288 224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64 16c8.8 0 16-7.2 16-16s-7.2-16-16-16H183.4L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160l0 0 .9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352l0 0-.9 0c.3 0 .6 0 .9 0z\"]\n};\nvar faBookOpenReader = {\n prefix: 'fas',\n iconName: 'book-open-reader',\n icon: [512, 512, [\"book-reader\"], \"f5da\", \"M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152V512l-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427V224c0-17.7 14.3-32 32-32H62.3c63.6 0 125.6 19.6 177.7 56zm32 264V248c52.1-36.4 114.1-56 177.7-56H480c17.7 0 32 14.3 32 32V427c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z\"]\n};\nvar faBookReader = faBookOpenReader;\nvar faMountainSun = {\n prefix: 'fas',\n iconName: 'mountain-sun',\n icon: [640, 512, [], \"e52f\", \"M560 160A80 80 0 1 0 560 0a80 80 0 1 0 0 160zM55.9 512H381.1h75H578.9c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z\"]\n};\nvar faArrowsLeftRightToLine = {\n prefix: 'fas',\n iconName: 'arrows-left-right-to-line',\n icon: [640, 512, [], \"e4ba\", \"M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [512, 512, [], \"f6cf\", \"M48.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L201.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L47.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM16 171.7V295.3c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L40.2 158C29.6 151.6 16 159.3 16 171.7zM310.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L322.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM496 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4V171.7zm-49.3 246L286.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9v52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM233.2 512c3.7 0 6.8-3 6.8-6.8V452.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM41.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L30.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L402.9 238.1c-6.5-10-21.4-9.6-27.3 .8L290.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9H183.1c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM174.4 176H337.6c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2h-3.2c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z\"]\n};\nvar faTruckDroplet = {\n prefix: 'fas',\n iconName: 'truck-droplet',\n icon: [640, 512, [], \"e58c\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z\"]\n};\nvar faFileCircleXmark = {\n prefix: 'fas',\n iconName: 'file-circle-xmark',\n icon: [576, 512, [], \"e5a1\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"]\n};\nvar faTemperatureArrowUp = {\n prefix: 'fas',\n iconName: 'temperature-arrow-up',\n icon: [576, 512, [\"temperature-up\"], \"e040\", \"M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM176 0C114.1 0 64 50.1 64 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM480 160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V160z\"]\n};\nvar faTemperatureUp = faTemperatureArrowUp;\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [127941], \"f5a2\", \"M4.1 38.2C1.4 34.2 0 29.4 0 24.6C0 11 11 0 24.6 0H133.9c11.2 0 21.7 5.9 27.4 15.5l68.5 114.1c-48.2 6.1-91.3 28.6-123.4 61.9L4.1 38.2zm503.7 0L405.6 191.5c-32.1-33.3-75.2-55.8-123.4-61.9L350.7 15.5C356.5 5.9 366.9 0 378.1 0H487.4C501 0 512 11 512 24.6c0 4.8-1.4 9.6-4.1 13.6zM80 336a176 176 0 1 1 352 0A176 176 0 1 1 80 336zm184.4-94.9c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32V320H288V160c0-17.7 14.3-32 32-32H544c53 0 96 43 96 96V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V416H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nvar faSquareH = {\n prefix: 'fas',\n iconName: 'square-h',\n icon: [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM336 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H160l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H288V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHSquare = faSquareH;\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-144a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faTemperatureFull = {\n prefix: 'fas',\n iconName: 'temperature-full',\n icon: [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V112c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faTemperature4 = faTemperatureFull;\nvar faThermometer4 = faTemperatureFull;\nvar faThermometerFull = faTemperatureFull;\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V32zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32z\"]\n};\nvar faPlugCircleXmark = {\n prefix: 'fas',\n iconName: 'plug-circle-xmark',\n icon: [576, 512, [], \"e560\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [512, 512, [], \"f621\", \"M208 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V172.9l122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.5 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1V480c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V339.1L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4V32z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M601.2 5.1c10.4-8.2 25.5-6.3 33.7 4.1s6.3 25.5-4.1 33.7l-592 464c-10.4 8.2-25.5 6.3-33.7-4.1s-6.3-25.5 4.1-33.7l155.6-122C101.8 270 64 171.4 64 64c0-18 12.1-33.8 29.5-38.6l88-24c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L208 207.3c12 25.5 27.2 49.2 45 70.7L601.2 5.1zM234.3 415.6l91.3-72c13.7 9.1 28 17.3 43 24.3L409 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C545.8 499.9 530 512 512 512c-104.9 0-201.3-36-277.7-96.4z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0H352c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 352c0-17.7 14.3-32 32-32V304c0-44.2 35.8-80 80-80H416c17.7 0 32-14.3 32-32V160 69.5c37.3 13.2 64 48.7 64 90.5v32c0 53-43 96-96 96H272c-8.8 0-16 7.2-16 16v16c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V352z\"]\n};\nvar faHandshakeAngle = {\n prefix: 'fas',\n iconName: 'handshake-angle',\n icon: [640, 512, [\"hands-helping\"], \"f4c4\", \"M544 248v3.3l69.7-69.7c21.9-21.9 21.9-57.3 0-79.2L535.6 24.4c-21.9-21.9-57.3-21.9-79.2 0L416.3 64.5c-2.7-.3-5.5-.5-8.3-.5H296c-37.1 0-67.6 28-71.6 64H224V248c0 22.1 17.9 40 40 40s40-17.9 40-40V176c0 0 0-.1 0-.1V160l16 0 136 0c0 0 0 0 .1 0H464c44.2 0 80 35.8 80 80v8zM336 192v56c0 39.8-32.2 72-72 72s-72-32.2-72-72V129.4c-35.9 6.2-65.8 32.3-76 68.2L99.5 255.2 26.3 328.4c-21.9 21.9-21.9 57.3 0 79.2l78.1 78.1c21.9 21.9 57.3 21.9 79.2 0l37.7-37.7c.9 0 1.8 .1 2.7 .1H384c26.5 0 48-21.5 48-48c0-5.6-1-11-2.7-16H432c26.5 0 48-21.5 48-48c0-12.8-5-24.4-13.2-33c25.7-5 45.1-27.6 45.2-54.8v-.4c-.1-30.8-25.1-55.8-56-55.8c0 0 0 0 0 0l-120 0z\"]\n};\nvar faHandsHelping = faHandshakeAngle;\nvar faLocationDot = {\n prefix: 'fas',\n iconName: 'location-dot',\n icon: [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faMapMarkerAlt = faLocationDot;\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [62769], \"3e\", \"M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z\"]\n};\nvar faPersonSwimming = {\n prefix: 'fas',\n iconName: 'person-swimming',\n icon: [576, 512, [127946, \"swimmer\"], \"f5c4\", \"M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-26.9 0-52.3 6.6-74.5 18.4zM160 160A64 64 0 1 1 32 160a64 64 0 1 1 128 0zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faSwimmer = faPersonSwimming;\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [384, 512, [8595], \"f063\", \"M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faDroplet = {\n prefix: 'fas',\n iconName: 'droplet',\n icon: [384, 512, [128167, \"tint\"], \"f043\", \"M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0h1.8c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z\"]\n};\nvar faTint = faDroplet;\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [576, 512, [], \"f12d\", \"M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7H288h9.4H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H387.9L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416H288l-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z\"]\n};\nvar faEarthAmericas = {\n prefix: 'fas',\n iconName: 'earth-americas',\n icon: [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nvar faEarth = faEarthAmericas;\nvar faEarthAmerica = faEarthAmericas;\nvar faGlobeAmericas = faEarthAmericas;\nvar faPersonBurst = {\n prefix: 'fas',\n iconName: 'person-burst',\n icon: [640, 512, [], \"e53b\", \"M480 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H465.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.3-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [128330], \"f4ba\", \"M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6V138.8C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144v30.6l0 0v1.3l0 0 0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448H320c88.4 0 160-71.6 160-160V128l29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3H400c-44.2 0-80 35.8-80 80zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [576, 512, [\"battery-0\"], \"f244\", \"M80 160c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zM0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176z\"]\n};\nvar faBattery0 = faBatteryEmpty;\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [129510], \"f696\", \"M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6V96H128V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64H288V48c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0H176c-26.5 0-48 21.5-48 48V64zM320 96V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304V96H320zM512 64V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48V64H512z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [512, 512, [], \"f01c\", \"M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V323.9c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32H121zm0 64H391l48 192H387.8c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7H195.8c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7H73L121 96z\"]\n};\nvar faSection = {\n prefix: 'fas',\n iconName: 'section',\n icon: [256, 512, [], \"e447\", \"M64.9 96C67.1 84.4 73.7 76.2 86 70.6c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8C123-2.7 88.3-.6 59.7 12.3C29.9 25.8 7.5 50.9 1.6 86.5c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C22.3 194.2 6.5 215.1 1.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31l0 0 3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2l0 0c-4.3-1.5-8.5-2.9-12.3-4.2C25.3 420 7.2 429.1 1.6 445.8s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6l0 0 .2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5c-.2-.1-.4-.1-.6-.2l-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z\"]\n};\nvar faGaugeHigh = {\n prefix: 'fas',\n iconName: 'gauge-high',\n icon: [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faTachometerAlt = faGaugeHigh;\nvar faTachometerAltFast = faGaugeHigh;\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M215.4 96H144 107.8 96v8.8V144v40.4 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3V96c0-26.5 21.5-48 48-48h76.6l49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48H416c26.5 0 48 21.5 48 48v44.3l22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4v-89V144 104.8 96H404.2 368 296.6 215.4zM0 448V242.1L217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1V448v0c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64v0zM176 160H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M192 48c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48V512H368V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H192V48zM48 96H160V512H48c-26.5 0-48-21.5-48-48V320H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V224H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V144c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v48H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80V464c0 26.5-21.5 48-48 48H480V96H592zM312 64c-8.8 0-16 7.2-16 16v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V152h24c8.8 0 16-7.2 16-16V120c0-8.8-7.2-16-16-16H344V80c0-8.8-7.2-16-16-16H312z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [448, 512, [9820], \"f447\", \"M32 192V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V192c0 10.1-4.7 19.6-12.8 25.6L352 256l16 144H80L96 256 44.8 217.6C36.7 211.6 32 202.1 32 192zm176 96h32c8.8 0 16-7.2 16-16V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 8.8 7.2 16 16 16zM22.6 473.4L64 432H384l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H38.6C26.1 512 16 501.9 16 489.4c0-6 2.4-11.8 6.6-16z\"]\n};\nvar faBarsStaggered = {\n prefix: 'fas',\n iconName: 'bars-staggered',\n icon: [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faReorder = faBarsStaggered;\nvar faStream = faBarsStaggered;\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.5-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [127789], \"f80f\", \"M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9l0 0v0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4l0 0-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z\"]\n};\nvar faPersonWalkingWithCane = {\n prefix: 'fas',\n iconName: 'person-walking-with-cane',\n icon: [512, 512, [\"blind\"], \"f29d\", \"M176 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6v43.2c0 17 6.7 33.3 18.7 45.3L224 397.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V390.6c0-12.7-5.1-24.9-14.1-33.9L224 306.7V213.3l70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128H167.6zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z\"]\n};\nvar faBlind = faPersonWalkingWithCane;\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [129345], \"f569\", \"M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96C114.6 96 0 128 0 208V368c0 31.3 27.4 58.8 72 78.7V344c0-13.3 10.7-24 24-24s24 10.7 24 24V463.4c33 8.9 71.1 14.5 112 16.1V376c0-13.3 10.7-24 24-24s24 10.7 24 24V479.5c40.9-1.6 79-7.2 112-16.1V344c0-13.3 10.7-24 24-24s24 10.7 24 24V446.7c44.6-19.9 72-47.4 72-78.7V208c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C458.4 181.8 464 197.4 464 208c0 .8-2.7 17.2-46 35.9C379.1 260.7 322 272 256 272s-123.1-11.3-162-28.1C50.7 225.2 48 208.8 48 208c0-10.6 5.6-26.2 44.4-41.3C130.6 151.9 187.8 144 256 144c18 0 35.1 .5 51.4 1.6z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [448, 512, [127848], \"f810\", \"M367.1 160c.6-5.3 .9-10.6 .9-16C368 64.5 303.5 0 224 0S80 64.5 80 144c0 5.4 .3 10.7 .9 16H80c-26.5 0-48 21.5-48 48s21.5 48 48 48h53.5 181H368c26.5 0 48-21.5 48-48s-21.5-48-48-48h-.9zM96 288L200.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L352 288H96z\"]\n};\nvar faHeartCircleBolt = {\n prefix: 'fas',\n iconName: 'heart-circle-bolt',\n icon: [576, 512, [], \"e4fc\", \"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [128224, 128439], \"f1ac\", \"M128 64v96h64V64H386.7L416 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0H192c-35.3 0-64 28.7-64 64zM0 160V480c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zm480 32H128V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM256 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [182], \"f1dd\", \"M192 32h64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352H288V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H192c-88.4 0-160-71.6-160-160s71.6-160 160-160z\"]\n};\nvar faCheckToSlot = {\n prefix: 'fas',\n iconName: 'check-to-slot',\n icon: [576, 512, [\"vote-yea\"], \"f772\", \"M96 80c0-26.5 21.5-48 48-48H432c26.5 0 48 21.5 48 48V384H96V80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48H64V416H512V288h16c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336z\"]\n};\nvar faVoteYea = faCheckToSlot;\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8V0zM429.9 512c1.1 .1 2.1 .1 3.2 0h-3.2z\"]\n};\nvar faBoxesStacked = {\n prefix: 'fas',\n iconName: 'boxes-stacked',\n icon: [576, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M248 0H208c-26.5 0-48 21.5-48 48V160c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V48c0-26.5-21.5-48-48-48H328V80c0 8.8-7.2 16-16 16H264c-8.8 0-16-7.2-16-16V0zM64 256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H184v80c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V256H64zM352 512H512c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H472v80c0 8.8-7.2 16-16 16H408c-8.8 0-16-7.2-16-16V256H352c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2V464c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z\"]\n};\nvar faBoxes = faBoxesStacked;\nvar faBoxesAlt = faBoxesStacked;\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [640, 512, [128279, \"chain\"], \"f0c1\", \"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z\"]\n};\nvar faChain = faLink;\nvar faEarListen = {\n prefix: 'fas',\n iconName: 'ear-listen',\n icon: [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1-.1 0 0 0c0 0 0 0-14.3 28.6L398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78V400c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112v-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM192 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faAssistiveListeningSystems = faEarListen;\nvar faTreeCity = {\n prefix: 'fas',\n iconName: 'tree-city',\n icon: [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80H160V480c0 18-15 32-32 32c-18 0-32-14-32-32V320H80c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [384, 512, [9654], \"f04b\", \"M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z\"]\n};\nvar faRupiahSign = {\n prefix: 'fas',\n iconName: 'rupiah-sign',\n icon: [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256-96h80c61.9 0 112 50.1 112 112s-50.1 112-112 112H352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 192c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48H352v96h48z\"]\n};\nvar faMagnifyingGlass = {\n prefix: 'fas',\n iconName: 'magnifying-glass',\n icon: [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"]\n};\nvar faSearch = faMagnifyingGlass;\nvar faTableTennisPaddleBall = {\n prefix: 'fas',\n iconName: 'table-tennis-paddle-ball',\n icon: [640, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M480 288c-50.1 0-93.6 28.8-114.6 70.8L132.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C535.8 297.6 509 288 480 288zM113.3 151.9L354.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3H357c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L152.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32c-6.3-6.3-9.7-14.9-9.4-23.8s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8c-24-24-37.5-56.6-37.5-90.5v-2.7c0-22.8 6.1-44.9 17.3-64.3zM480 320a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faPingPongPaddleBall = faTableTennisPaddleBall;\nvar faTableTennis = faTableTennisPaddleBall;\nvar faPersonDotsFromLine = {\n prefix: 'fas',\n iconName: 'person-dots-from-line',\n icon: [576, 512, [\"diagnoses\"], \"f470\", \"M288 176A88 88 0 1 0 288 0a88 88 0 1 0 0 176zM78.7 372.9c15-12.5 50-34.4 97.3-50.1V432H400V322.7c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM224 280a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM96 240a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm368 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faDiagnoses = faPersonDotsFromLine;\nvar faTrashCanArrowUp = {\n prefix: 'fas',\n iconName: 'trash-can-arrow-up',\n icon: [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nvar faTrashRestoreAlt = faTrashCanArrowUp;\nvar faNairaSign = {\n prefix: 'fas',\n iconName: 'naira-sign',\n icon: [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H228.2l97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6V320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V256H262.5L122.6 46.3zM305.1 320H320v22.3L305.1 320zM185.5 256H128V169.7L185.5 256z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H69.5c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H199.7c-11.5 0-21.4-8.2-23.6-19.5L170.7 288H459.2c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32H360V134.1l23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23V32H120.1C111 12.8 91.6 0 69.5 0H24zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faWalkieTalkie = {\n prefix: 'fas',\n iconName: 'walkie-talkie',\n icon: [384, 512, [], \"f8ef\", \"M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144V300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9V464c0 26.5 21.5 48 48 48H304c26.5 0 48-21.5 48-48V371.9c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9V144c0-26.5-21.5-48-48-48H320c0-17.7-14.3-32-32-32s-32 14.3-32 32H224c0-17.7-14.3-32-32-32s-32 14.3-32 32H112V24zm0 136H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faFilePen = {\n prefix: 'fas',\n iconName: 'file-pen',\n icon: [576, 512, [128221, \"file-edit\"], \"f31c\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V299.6l-94.7 94.7c-8.2 8.2-14 18.5-16.8 29.7l-15 60.1c-2.3 9.4-1.8 19 1.4 27.8H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faFileEdit = faFilePen;\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.3-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8V488c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488V24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96zM80 352c0 8.8 7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96z\"]\n};\nvar faSquarePen = {\n prefix: 'fas',\n iconName: 'square-pen',\n icon: [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faPenSquare = faSquarePen;\nvar faPencilSquare = faSquarePen;\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M144 56c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v72H144V56zm176 72H288V56c0-30.9-25.1-56-56-56H152C121.1 0 96 25.1 96 56v72H64c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32H256c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64zM112 224H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faPersonCircleExclamation = {\n prefix: 'fas',\n iconName: 'person-circle-exclamation',\n icon: [576, 512, [], \"e53f\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [512, 512, [], \"f078\", \"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [576, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm368 96H96V320H448V192z\"]\n};\nvar faBattery = faBatteryFull;\nvar faBattery5 = faBatteryFull;\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [128369, 9760], \"f714\", \"M368 128c0 44.4-25.4 83.5-64 106.4V256c0 17.7-14.3 32-32 32H176c-17.7 0-32-14.3-32-32V234.4c-38.6-23-64-62.1-64-106.4C80 57.3 144.5 0 224 0s144 57.3 144 128zM168 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM3.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L224 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L295.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L224 419.8 46.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L152.4 384 17.7 316.6C1.9 308.7-4.5 289.5 3.4 273.7z\"]\n};\nvar faCodeCompare = {\n prefix: 'fas',\n iconName: 'code-compare',\n icon: [512, 512, [], \"e13a\", \"M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9v40h16c35.3 0 64-28.7 64-64V153.3C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V320c0 70.7-57.3 128-128 128H320v40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9V128H176c-35.3 0-64 28.7-64 64V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-70.7 57.3-128 128-128h16V24zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [\"list-dots\"], \"f0ca\", \"M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faListDots = faListUl;\nvar faSchoolLock = {\n prefix: 'fas',\n iconName: 'school-lock',\n icon: [640, 512, [], \"e56f\", \"M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96H592c26.5 0 48 21.5 48 48V272c0-61.9-50.1-112-112-112s-112 50.1-112 112v24.6c-19.1 11.1-32 31.7-32 55.4H320.3l-.3 0c-35.3 0-64 28.7-64 64v96h64v0H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48H166.3L302.2 5.4zM80 208v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm0 128v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"]\n};\nvar faTowerCell = {\n prefix: 'fas',\n iconName: 'tower-cell',\n icon: [576, 512, [], \"e585\", \"M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448H398.3l20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384H206.8l14.5-32H354.7l14.5 32zM288 205.3L325.6 288H250.4L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"]\n};\nvar faDownLong = {\n prefix: 'fas',\n iconName: 'down-long',\n icon: [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M2 334.5c-3.8 8.8-2 19 4.6 26l136 144c4.5 4.8 10.8 7.5 17.4 7.5s12.9-2.7 17.4-7.5l136-144c6.6-7 8.4-17.2 4.6-26s-12.5-14.5-22-14.5l-72 0 0-288c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32l0 288-72 0c-9.6 0-18.2 5.7-22 14.5z\"]\n};\nvar faLongArrowAltDown = faDownLong;\nvar faRankingStar = {\n prefix: 'fas',\n iconName: 'ranking-star',\n icon: [640, 512, [], \"e561\", \"M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V288c0-17.7-14.3-32-32-32H256zM32 320c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H160c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zm416 96v64c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V416c0-17.7-14.3-32-32-32H480c-17.7 0-32 14.3-32 32z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M224 0c17.7 0 32 14.3 32 32V48h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H256v48H408c22.1 0 40 17.9 40 40c0 5.3-1 10.5-3.1 15.4L368 400H80L3.1 215.4C1 210.5 0 205.3 0 200c0-22.1 17.9-40 40-40H192V112H176c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V32c0-17.7 14.3-32 32-32zM38.6 473.4L80 432H368l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H54.6C42.1 512 32 501.9 32 489.4c0-6 2.4-11.8 6.6-16z\"]\n};\nvar faPersonHarassing = {\n prefix: 'fas',\n iconName: 'person-harassing',\n icon: [576, 512, [], \"e549\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H145.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344v58.7l-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9V344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16h56c8.8 0 16-7.2 16-16s-7.2-16-16-16H304c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"]\n};\nvar faBrazilianRealSign = {\n prefix: 'fas',\n iconName: 'brazilian-real-sign',\n icon: [512, 512, [], \"e46c\", \"M400 0c17.7 0 32 14.3 32 32V50.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5h-1.7c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4v3.4c0 51.2-33.6 94.6-80 109.2V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V460.6c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5v-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2V32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256z\"]\n};\nvar faLandmarkDome = {\n prefix: 'fas',\n iconName: 'landmark-dome',\n icon: [512, 512, [\"landmark-alt\"], \"f752\", \"M248 0h16c13.3 0 24 10.7 24 24V34.7C368.4 48.1 431.9 111.6 445.3 192H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h2.7C80.1 111.6 143.6 48.1 224 34.7V24c0-13.3 10.7-24 24-24zM64 288h64V416h40V288h64V416h48V288h64V416h40V288h64V420.3c.6 .3 1.2 .7 1.7 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V288z\"]\n};\nvar faLandmarkAlt = faLandmarkDome;\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [384, 512, [8593], \"f062\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 64V352H576V64H64zM0 64C0 28.7 28.7 0 64 0H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM128 448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faTelevision = faTv;\nvar faTvAlt = faTv;\nvar faShrimp = {\n prefix: 'fas',\n iconName: 'shrimp',\n icon: [512, 512, [129424], \"e448\", \"M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64h1c3.7 88.9 77 160 167 160h56V128H264 88.8 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H464c8.8 0 16-7.2 16-16s-7.2-16-16-16H64zM224 456c0 13.3 10.7 24 24 24h72V407.8l-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3v69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128H320V320h18.3c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faListCheck = {\n prefix: 'fas',\n iconName: 'list-check',\n icon: [512, 512, [\"tasks\"], \"f0ae\", \"M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faTasks = faListCheck;\nvar faJugDetergent = {\n prefix: 'fas',\n iconName: 'jug-detergent',\n icon: [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24V48h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H88C74.7 96 64 85.3 64 72s10.7-24 24-24h8V24zM0 256c0-70.7 57.3-128 128-128H256c70.7 0 128 57.3 128 128V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256zm256 0v96c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faCircleUser = {\n prefix: 'fas',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320H224c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3H178.3zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7V273.8L591.4 312z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32 14.3-32 32zM128 512h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H160c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faCarBurst = {\n prefix: 'fas',\n iconName: 'car-burst',\n icon: [640, 512, [\"car-crash\"], \"f5e1\", \"M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zm-17 131a24 24 0 1 1 -12.4 46.4 24 24 0 1 1 12.4-46.4zm217.9 83.2A24 24 0 1 1 545 358.1a24 24 0 1 1 -46.4-12.4z\"]\n};\nvar faCarCrash = faCarBurst;\nvar faY = {\n prefix: 'fas',\n iconName: 'y',\n icon: [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V298.3L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"]\n};\nvar faPersonSnowboarding = {\n prefix: 'fas',\n iconName: 'person-snowboarding',\n icon: [512, 512, [127938, \"snowboarding\"], \"f7ce\", \"M209.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6H472c13.3 0 24 10.7 24 24s-10.7 24-24 24H443.8c-10.8 0-21.4-2-31.5-5.8L60.1 371.3c-11.5-4.4-22-11.2-30.8-20L7 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L192 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM139 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.3-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L139 350.1zM432 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faSnowboarding = faPersonSnowboarding;\nvar faTruckFast = {\n prefix: 'fas',\n iconName: 'truck-fast',\n icon: [640, 512, [\"shipping-fast\"], \"f48b\", \"M112 0C85.5 0 64 21.5 64 48V96H16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 272c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 48c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 240c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 208c8.8 0 16 7.2 16 16s-7.2 16-16 16H64V416c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H112zM544 237.3V256H416V160h50.7L544 237.3zM160 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faShippingFast = faTruckFast;\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128s-128-57.3-128-128V102.9L48 93.3v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z\"]\n};\nvar faCircleHalfStroke = {\n prefix: 'fas',\n iconName: 'circle-half-stroke',\n icon: [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nvar faAdjust = faCircleHalfStroke;\nvar faClapperboard = {\n prefix: 'fas',\n iconName: 'clapperboard',\n icon: [512, 512, [], \"e131\", \"M448 32H361.9l-1 1-127 127h92.1l1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128V96c0-15.1-5.3-29.1-14-40l-104 104H512zM294.1 32H201.9l-1 1L73.9 160h92.1l1-1 127-127zM64 32C28.7 32 0 60.7 0 96v64H6.1l1-1 127-127H64zM512 192H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192z\"]\n};\nvar faCircleRadiation = {\n prefix: 'fas',\n iconName: 'circle-radiation',\n icon: [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M256 64a192 192 0 1 1 0 384 192 192 0 1 1 0-384zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faRadiationAlt = faCircleRadiation;\nvar faBaseball = {\n prefix: 'fas',\n iconName: 'baseball',\n icon: [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z\"]\n};\nvar faBaseballBall = faBaseball;\nvar faJetFighterUp = {\n prefix: 'fas',\n iconName: 'jet-fighter-up',\n icon: [512, 512, [], \"e518\", \"M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2v77l-144 84V280c0-13.3-10.7-24-24-24s-24 10.7-24 24v56 32 24c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H192v32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12v16c0 8.8 7.2 16 16 16h96V448c0-8.8 7.2-16 16-16s16 7.2 16 16v64h96c8.8 0 16-7.2 16-16V480c0-4.6-2-9-5.5-12L320 416.7V384H464v8c0 13.3 10.7 24 24 24s24-10.7 24-24V368 336 280c0-13.3-10.7-24-24-24s-24 10.7-24 24v18.8l-144-84v-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z\"]\n};\nvar faDiagramProject = {\n prefix: 'fas',\n iconName: 'diagram-project',\n icon: [576, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48V96H384V80c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H432c-26.5 0-48-21.5-48-48V160H192v16c0 1.7-.1 3.4-.3 5L272 288h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V336c0-1.7 .1-3.4 .3-5L144 224H48c-26.5 0-48-21.5-48-48V80z\"]\n};\nvar faProjectDiagram = faDiagramProject;\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M208 0H332.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128h80v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z\"]\n};\nvar faVolumeXmark = {\n prefix: 'fas',\n iconName: 'volume-xmark',\n icon: [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faVolumeMute = faVolumeXmark;\nvar faVolumeTimes = faVolumeXmark;\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V128c0-17.7 14.3-32 32-32s32 14.3 32 32V323.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512H348.8c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V32c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"]\n};\nvar faGrip = {\n prefix: 'fas',\n iconName: 'grip',\n icon: [448, 512, [\"grip-horizontal\"], \"f58d\", \"M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40H40c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40H200c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40H360c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328z\"]\n};\nvar faGripHorizontal = faGrip;\nvar faShareFromSquare = {\n prefix: 'fas',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M352 224H305.5c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8h-2.5c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144h80V34.7C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2H384c-17.7 0-32-14.3-32-32V224zM80 96c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16H400c8.8 0 16-7.2 16-16V384c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V112C0 67.8 35.8 32 80 32h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H80z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faChildCombatant = {\n prefix: 'fas',\n iconName: 'child-combatant',\n icon: [576, 512, [\"child-rifle\"], \"e4e0\", \"M176 128A64 64 0 1 0 176 0a64 64 0 1 0 0 128zm-8 352V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V300.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9H169.8c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0H432 416c-8.8 0-16 7.2-16 16s7.2 16 16 16V132.3c-9.6 5.5-16 15.9-16 27.7v32c-17.7 0-32 14.3-32 32V368c0 17.7 14.3 32 32 32h16v96c0 8.8 7.2 16 16 16h59.5c10.4 0 18-9.8 15.5-19.9L484 400h44c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H480V325.3l53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2V208c0-8.8-7.2-16-16-16H512c-8.8 0-16 7.2-16 16v56l-16 5.3V160c0-11.8-6.4-22.2-16-27.7V16c0-8.8-7.2-16-16-16z\"]\n};\nvar faChildRifle = faChildCombatant;\nvar faGun = {\n prefix: 'fas',\n iconName: 'gun',\n icon: [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24v8H32C14.3 64 0 78.3 0 96V208c0 17.7 14.3 32 32 32H42c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480h96c14.7 0 27.5-10 31-24.2L217 352H321.4c23.7 0 44.8-14.9 52.7-37.2L400.9 240H432c8.5 0 16.6-3.4 22.6-9.4L477.3 208H544c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H528V56zM321.4 304H229l16-64h105l-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faSquarePhone = {\n prefix: 'fas',\n iconName: 'square-phone',\n icon: [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z\"]\n};\nvar faPhoneSquare = faSquarePhone;\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"]\n};\nvar faAdd = faPlus;\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z\"]\n};\nvar faComputer = {\n prefix: 'fas',\n iconName: 'computer',\n icon: [640, 512, [], \"e4e5\", \"M384 96V320H64L64 96H384zM64 32C28.7 32 0 60.7 0 96V320c0 35.3 28.7 64 64 64H181.3l-10.7 32H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H277.3l-10.7-32H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm464 0c-26.5 0-48 21.5-48 48V432c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H528zm16 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faXmark = {\n prefix: 'fas',\n iconName: 'xmark',\n icon: [384, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"]\n};\nvar faClose = faXmark;\nvar faMultiply = faXmark;\nvar faRemove = faXmark;\nvar faTimes = faXmark;\nvar faArrowsUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-up-down-left-right',\n icon: [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faArrows = faArrowsUpDownLeftRight;\nvar faChalkboardUser = {\n prefix: 'fas',\n iconName: 'chalkboard-user',\n icon: [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M160 64c0-35.3 28.7-64 64-64H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H336.8c-11.8-25.5-29.9-47.5-52.4-64H384V320c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v32h64V64L224 64v49.1C205.2 102.2 183.3 96 160 96V64zm0 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM133.3 352h53.3C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7H26.7C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z\"]\n};\nvar faChalkboardTeacher = faChalkboardUser;\nvar faPesoSign = {\n prefix: 'fas',\n iconName: 'peso-sign',\n icon: [384, 512, [], \"e222\", \"M64 32C46.3 32 32 46.3 32 64v64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c68.4 0 127.7-39 156.8-96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.7c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16h.7c17.7 0 32-14.3 32-32s-14.3-32-32-32H332.8C303.7 71 244.4 32 176 32H64zm190.4 96H96V96h80c30.5 0 58.2 12.2 78.4 32zM96 192H286.9c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16H96V192zm158.4 96c-20.2 19.8-47.9 32-78.4 32H96V288H254.4z\"]\n};\nvar faBuildingShield = {\n prefix: 'fas',\n iconName: 'building-shield',\n icon: [576, 512, [], \"e4d8\", \"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V207l-42.4 17H304 272c-8.8 0-16 7.2-16 16v32 24.2V304c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [448, 512, [], \"f77c\", \"M152 88a72 72 0 1 1 144 0A72 72 0 1 1 152 88zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25V288H128V251.7c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z\"]\n};\nvar faUsersLine = {\n prefix: 'fas',\n iconName: 'users-line',\n icon: [640, 512, [], \"e592\", \"M211.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM32 256c0 17.7 14.3 32 32 32h85.6c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4H96c-35.3 0-64 28.7-64 64zm461.6 32H576c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64H448c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4h-96c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM321.6 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320 288 216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V320 288 216z\"]\n};\nvar faQuoteLeftAlt = faQuoteLeft;\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [128668], \"f722\", \"M96 64c0-35.3 28.7-64 64-64H266.3c26.2 0 49.7 15.9 59.4 40.2L373.7 160H480V126.2c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9V160h56c22.1 0 40 17.9 40 40v45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48H352c0 17.7-14.3 32-32 32h-8.2c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8V480c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32v-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1H32c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h8.2c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6V192 160 64zm170.3 0H160v96h32H304.7L266.3 64zM176 256a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM528 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z\"]\n};\nvar faTrashArrowUp = {\n prefix: 'fas',\n iconName: 'trash-arrow-up',\n icon: [448, 512, [\"trash-restore\"], \"f829\", \"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"]\n};\nvar faTrashRestore = faTrashArrowUp;\nvar faArrowDownUpLock = {\n prefix: 'fas',\n iconName: 'arrow-down-up-lock',\n icon: [640, 512, [], \"e4b0\", \"M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7V288H416V272c0-17.2 3.9-33.5 10.8-48H352V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3V224l-128 0H96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32H96V402.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64zM288 320V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H288zm240-80c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"]\n};\nvar faLinesLeaning = {\n prefix: 'fas',\n iconName: 'lines-leaning',\n icon: [384, 512, [], \"e51e\", \"M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [62764], \"3d\", \"M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [576, 512, [], \"f62e\", \"M0 128C0 75 43 32 96 32H480c53 0 96 43 96 96V384c0 53-43 96-96 96H96c-53 0-96-43-96-96V128zm176 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48zM48 208v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H72c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48V312c0-13.3-10.7-24-24-24H200c-13.3 0-24 10.7-24 24v24zm176 48c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H328c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-176v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H456c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192c35.3 0 64 28.7 64 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-70.7-57.3-128-128-128H32zM320 480c70.7 0 128-57.3 128-128V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 35.3-28.7 64-64 64H192V192c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32H320z\"]\n};\nvar faIls = faShekelSign;\nvar faShekel = faShekelSign;\nvar faSheqel = faShekelSign;\nvar faSheqelSign = faShekelSign;\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [128506, 62072], \"f279\", \"M384 476.1L192 421.2V35.9L384 90.8V476.1zm32-1.2V88.4L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3V394.6c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2V423.6L32.9 474.5C17.1 480.8 0 469.2 0 452.2V117.4c0-9.8 6-18.6 15.1-22.3z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2v82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9V380.8c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faPhotoFilm = {\n prefix: 'fas',\n iconName: 'photo-film',\n icon: [640, 512, [\"photo-video\"], \"f87c\", \"M256 0H576c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h80 48H552c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128h96V384v32c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V384H512v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V312c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H72zm336 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H424c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPhotoVideo = faPhotoFilm;\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M448 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [576, 512, [], \"f54e\", \"M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0H109.6C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V384H128V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V384 252.6c-4 1-8 1.8-12.3 2.3z\"]\n};\nvar faArrowTrendUp = {\n prefix: 'fas',\n iconName: 'arrow-trend-up',\n icon: [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32s-32-14.3-32-32V205.3L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160H384z\"]\n};\nvar faPlugCircleMinus = {\n prefix: 'fas',\n iconName: 'plug-circle-minus',\n icon: [576, 512, [], \"e55e\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"]\n};\nvar faSignHanging = {\n prefix: 'fas',\n iconName: 'sign-hanging',\n icon: [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32V64l352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128H32C14.3 128 0 113.7 0 96S14.3 64 32 64H64V32C64 14.3 78.3 0 96 0zm96 160H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"]\n};\nvar faSign = faSignHanging;\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M296 136V88h48v48H296zM288 32c-26.5 0-48 21.5-48 48v4H121.6C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36h66.9c-58.9 39.6-98.9 105-104 180H80c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-3.3c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1h64c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1H496c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-4.5c-5-75-45.1-140.4-104-180h66.9c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36H400V80c0-26.5-21.5-48-48-48H288zM88 376h48v48H88V376zm416 48V376h48v48H504z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [128277, 61943], \"f1f6\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-90.2-70.7c.2-.4 .4-.9 .6-1.3c5.2-11.5 3.1-25-5.3-34.4l-7.4-8.3C497.3 319.2 480 273.9 480 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V51.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM406.2 416L160 222.1v4.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S115.4 416 128 416H406.2zm-40.9 77.3c12-12 18.7-28.3 18.7-45.3H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM176 432h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faTabletAndroid = faTablet;\nvar faSchoolFlag = {\n prefix: 'fas',\n iconName: 'school-flag',\n icon: [576, 512, [], \"e56e\", \"M288 0H400c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H320.7l89.6 64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H336V400c0-26.5-21.5-48-48-48s-48 21.5-48 48V512H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64H165.7L256 95.5V32c0-17.7 14.3-32 32-32zm48 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM80 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm368 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H80zm384 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H464z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M86.6 9.4C74.1-3.1 53.9-3.1 41.4 9.4s-12.5 32.8 0 45.3L122.7 136 30.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L148.1 481.4c37.5 37.5 98.3 37.5 135.8 0L474.3 290.9c28.1-28.1 28.1-73.7 0-101.8L322.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L168 90.7 86.6 9.4zM168 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L429.1 234.3c3.1 3.1 3.1 8.2 0 11.3L386.7 288H67.5c1.4-5.4 4.2-10.4 8.4-14.6L168 181.3z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [448, 512, [8963], \"f106\", \"M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4H336c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176v89.2z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [512, 512, [], \"f7aa\", \"M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72v22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7v-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8v32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8v-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [9001], \"f053\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-4.3 15.2c-8.3-.6-16.8 0-25.2 1.9c-7.3 1.7-14.3 3.5-21.1 5.5l-5.5-12.7c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l4.4 10.4c-16.6 6.7-31.7 14.4-45.4 22.8L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l6 9c-13.7 11-25.5 22.8-35.8 34.9l-10-8c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L65.9 155c-1.8 2.8-3.5 5.7-5.1 8.5c-6.6 11.4-11.8 22.6-16 33l-8-3.2c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l10.4 4.2c-.2 .8-.4 1.5-.5 2.3c-2.2 9.3-3.4 17.3-4.1 23.4c-.4 3.1-.6 5.7-.8 7.8c-.1 1.1-.1 2-.2 2.8l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.1 1l-.1 0L28 269.3c-.1 3.1 0 6.1 .2 9.1l-15.2 4.3C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l15.6-4.5c7.6 13.6 18.9 25 32.6 32.6L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l4.3-15.2c1.2 .1 2.4 .2 3.6 .2c15.6 .5 30.3-3.3 43-10.2l9 9c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-7.2-7.2c9.3-12.6 15.2-27.8 16.3-44.5l7.1 3c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.6-3.7c6.4-9.9 17.3-22.4 36.9-33.3l1.3 4.4c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-2.3-8.1c3.8-1.1 7.7-2.1 11.9-3.1c11.6-2.7 22.1-7.7 31.1-14.4l7.2 7.2c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-9-9c7.6-13.9 11.3-30.1 10.1-46.6l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-15.6 4.5c-7.7-13.9-19.1-25.1-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3zM112 272l-48-1.5 0 0c11.7 .4 27.3 .9 48 1.6zm16-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-48a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM322.7 489c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l4.3-15.2c8.3 .6 16.8 0 25.2-1.9c7.3-1.7 14.3-3.5 21.1-5.5l5.5 12.7c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-4.4-10.4c16.6-6.7 31.7-14.4 45.4-22.8L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-6-9c13.7-11 25.5-22.8 35.8-34.9l10 8c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574.1 357c1.8-2.8 3.5-5.7 5.1-8.5c6.6-11.4 11.8-22.6 16-33l8 3.2c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-10.4-4.2c.2-.8 .4-1.5 .5-2.3c2.2-9.3 3.4-17.3 4.1-23.4c.4-3.1 .6-5.7 .8-7.8c.1-1.1 .1-2 .2-2.8l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.1-1l.1 0 29.1 .9c.1-3.1 0-6.1-.2-9.1l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-15.6 4.5c-7.6-13.6-18.9-25-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.3 12.4l-4.3 15.2c-1.2-.1-2.4-.2-3.6-.2c-15.6-.5-30.3 3.3-43 10.2l-9-9c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l7.2 7.2c-9.3 12.6-15.2 27.8-16.3 44.5l-7.1-3c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.6 3.7c-6.4 9.9-17.3 22.4-36.9 33.3l-1.3-4.4c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l2.3 8.1c-3.8 1.1-7.7 2.1-11.9 3.1c-11.6 2.7-22.1 7.7-31.1 14.4l-7.2-7.2c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l9 9c-7.6 13.9-11.3 30.1-10.1 46.6l-15.2 4.3c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l15.6-4.5c7.7 13.9 19.1 25.1 32.6 32.6L322.7 489zM576 241.5l0 0c-11.7-.4-27.3-.9-48-1.6l48 1.5zM448 384a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64H160h80 46.5c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8v12 16 48c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V402.2L273.9 352H240 160 112c-26.5 0-48-21.5-48-48s21.5-48 48-48h48 80c26.5 0 48-21.5 48-48s-21.5-48-48-48H160 48c-26.5 0-48-21.5-48-48z\"]\n};\nvar faNotdef = {\n prefix: 'fas',\n iconName: 'notdef',\n icon: [384, 512, [], \"e1fe\", \"M64 390.3L153.5 256 64 121.7V390.3zM102.5 448H281.5L192 313.7 102.5 448zm128-192L320 390.3V121.7L230.5 256zM281.5 64H102.5L192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M236.4 61.4L227 75.5c-21.3 32-59.4 48.5-97.3 42.1l-59.6-9.9C33.4 101.6 0 129.9 .1 167.1c0 15.9 6.4 31.2 17.6 42.5l29.2 29.2c11 11 17.2 25.9 17.2 41.5c0 15.8-6.4 30.9-17.7 42L33.3 335.1C22.2 345.9 16 360.7 16 376.2c0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6h10c27.2 0 53.7 9.3 75 26.3L287.8 467c10.5 8.4 23.6 13 37 13c32.7 0 59.3-26.5 59.3-59.3l0-25.2c0-34.9 21.4-66.2 53.9-78.8l36.9-14.3c22.4-8.7 37.2-30.3 37.2-54.3c0-28.1-20.1-52.3-47.8-57.3l-28-5.1c-36.5-6.7-65.4-34.5-73.6-70.7l-7.1-31.5C348.9 53.4 322.1 32 291.3 32c-22 0-42.6 11-54.9 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm0 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [384, 512, [], \"f22d\", \"M192 144a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm0 288a176 176 0 1 0 0-352 176 176 0 1 0 0 352z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [9002], \"f054\", \"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [576, 512, [], \"f079\", \"M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V192h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96H272zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0V192c0-53-43-96-96-96L304 96z\"]\n};\nvar faCarRear = {\n prefix: 'fas',\n iconName: 'car-rear',\n icon: [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 192H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256v80c0 23.7 12.9 44.4 32 55.4V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V400H384v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V391.4c19.1-11.1 32-31.7 32-55.4V256c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32H165.4c-40.8 0-77.1 25.8-90.6 64.3zM208 272h96c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V288c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-13.3 0-24-10.7-24-24zm360-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H408c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faCarAlt = faCarRear;\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [448, 512, [], \"e06b\", \"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [576, 512, [\"battery-2\"], \"f243\", \"M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm112 96H96V320h96V192z\"]\n};\nvar faBattery2 = faBatteryQuarter;\nvar faRadio = {\n prefix: 'fas',\n iconName: 'radio',\n icon: [512, 512, [128251], \"f8d7\", \"M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192v4V304 448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H218.5L494.8 47zM368 240a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM80 256c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16H208c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [\"carriage-baby\"], \"f77d\", \"M256 192H.1C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0v64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0V160zM80 416a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm240 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faCarriageBaby = faBabyCarriage;\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [320, 512, [128678], \"f637\", \"M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M96 382.1V293.3c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4H129.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M576 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H184.4c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40V204.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48v7 73c0 8.8-7.2 16-16 16s-16-7.2-16-16V264.3c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334V372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1H304c70.7 0 128-57.3 128-128V320 288c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2V40c0-22.1-17.9-40-40-40z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [384, 512, [62101, 62785, \"percentage\"], \"25\", \"M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128A64 64 0 1 0 0 128a64 64 0 1 0 128 0zM384 384a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faPercentage = faPercent;\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96V304v80 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16H416h33.6c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H608c17.7 0 32-14.3 32-32V288 272 261.7c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5H480V96c0-35.3-28.7-64-64-64H64zM585 256H480V192h48.8c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM176 400a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM80 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGlassWaterDroplet = {\n prefix: 'fas',\n iconName: 'glass-water-droplet',\n icon: [384, 512, [], \"e4f5\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3H275.3c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0H32zM83 297.5L66.4 64H317.6L301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C161.7 125.9 128 172 128 196c0 33.1 28.7 60 64 60s64-26.9 64-60z\"]\n};\nvar faDisplay = {\n prefix: 'fas',\n iconName: 'display',\n icon: [576, 512, [], \"e163\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V352H64V64H512z\"]\n};\nvar faFaceSmile = {\n prefix: 'fas',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSmile = faFaceSmile;\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0H320c17.7 0 32 14.3 32 32s-14.3 32-32 32H290.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64C46.3 64 32 49.7 32 32zM160 384h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"]\n};\nvar faThumbTack = faThumbtack;\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [127942], \"f091\", \"M400 0H176c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8H24C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H357.9C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24H446.4c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112h84.4c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6h84.4c-5.1 66.3-31.1 111.2-63 142.3z\"]\n};\nvar faPersonPraying = {\n prefix: 'fas',\n iconName: 'person-praying',\n icon: [448, 512, [128720, \"pray\"], \"f683\", \"M352 64A64 64 0 1 0 224 64a64 64 0 1 0 128 0zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432H72c-22.1 0-40 17.9-40 40s17.9 40 40 40H280c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z\"]\n};\nvar faPray = faPersonPraying;\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [128296], \"f6e3\", \"M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6V105.5L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0h18.1c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [512, 512, [9996], \"f25b\", \"M224 0c17.7 0 32 14.3 32 32V240H192V32c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zM93.3 51.2L175.9 240H106.1L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5h69.9H216c22.1 0 40 17.9 40 40s-17.9 40-40 40H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H226.3c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363V336c0-32.7 24.6-59.7 56.3-63.5z\"]\n};\nvar faRotate = {\n prefix: 'fas',\n iconName: 'rotate',\n icon: [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z\"]\n};\nvar faSyncAlt = faRotate;\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [129302], \"f544\", \"M320 0c17.7 0 32 14.3 32 32V96H472c39.8 0 72 32.2 72 72V440c0 39.8-32.2 72-72 72H168c-39.8 0-72-32.2-72-72V168c0-39.8 32.2-72 72-72H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [512, 512, [9774], \"f67c\", \"M224 445.3V323.5l-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8V66.7C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5V445.3c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3V240.8L422.8 351.1zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nvar faGears = {\n prefix: 'fas',\n iconName: 'gears',\n icon: [640, 512, [\"cogs\"], \"f085\", \"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8h-.7c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faCogs = faGears;\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M0 488V171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4V488c0 13.3-10.7 24-24 24H568c-13.3 0-24-10.7-24-24V224c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32V488c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56c0 13.3-10.7 24-24 24zM128 400V336H512v64H128zm0-96V224H512l0 80H128z\"]\n};\nvar faArrowUpRightDots = {\n prefix: 'fas',\n iconName: 'arrow-up-right-dots',\n icon: [576, 512, [], \"e4b7\", \"M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V160c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H160zM576 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM448 208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm128 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM272 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM144 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM576 336a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-48-80a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0c28.5 0 53.6 18.7 61.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2c0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6c-14.8 0-29.3-5.1-40.8-14.3l-55.4-44.3c-4.5-3.6-9.3-6.7-14.5-9.2c-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9C47.8 458.2 16 431.6 16 396.5c0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1c0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9c0-33.4 30.1-58.8 63-53.2l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'fas',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M64 0H242.7c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32v32h64V192H96zM64 352h80 96 80V288H240 144 64v64zM320 224c0-17.7-14.3-32-32-32H256v64h64V224zM160 192v64h64V192H160zM288 448c17.7 0 32-14.3 32-32V384H256v64h32zM160 384v64h64V384H160zM64 416c0 17.7 14.3 32 32 32h32V384H64v32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [512, 512, [9895, \"transgender-alt\"], \"f225\", \"M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9h96c8.8 0 16 7.2 16 16v96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2V432h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v8c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V414.2C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112V16C0 7.2 7.2 0 16 0h96zM352 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z\"]\n};\nvar faTransgenderAlt = faTransgender;\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [384, 512, [9791], \"f223\", \"M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4V424h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V472H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V398.4C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224a112 112 0 1 0 224 0A112 112 0 1 0 80 224z\"]\n};\nvar faArrowTurnDown = {\n prefix: 'fas',\n iconName: 'arrow-turn-down',\n icon: [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"]\n};\nvar faLevelDown = faArrowTurnDown;\nvar faPersonFallingBurst = {\n prefix: 'fas',\n iconName: 'person-falling-burst',\n icon: [640, 512, [], \"e547\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2V352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320H224l80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80A48 48 0 1 0 0 80a48 48 0 1 0 96 0zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z\"]\n};\nvar faTicketSimple = {\n prefix: 'fas',\n iconName: 'ticket-simple',\n icon: [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64v64c0 8.8-7.4 15.7-15.7 18.6C541.5 217.1 528 235 528 256s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320c0-8.8 7.4-15.7 15.7-18.6C34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192V128z\"]\n};\nvar faTicketAlt = faTicketSimple;\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16z\"]\n};\nvar faAnglesLeft = {\n prefix: 'fas',\n iconName: 'angles-left',\n icon: [512, 512, [171, \"angle-double-left\"], \"f100\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"]\n};\nvar faAngleDoubleLeft = faAnglesLeft;\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80zM64 96v64h64V96H64zM0 336c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336zm64 16v64h64V352H64zM304 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H304c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48zm80 64H320v64h64V96zM256 304c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16v96c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16v64c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V304zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z\"]\n};\nvar faClockRotateLeft = {\n prefix: 'fas',\n iconName: 'clock-rotate-left',\n icon: [512, 512, [\"history\"], \"f1da\", \"M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z\"]\n};\nvar faHistory = faClockRotateLeft;\nvar faFaceGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'face-grin-beam-sweat',\n icon: [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM388.1 312.8c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5c5-11.8-7-22.5-19.3-18.7zm-170.5-84l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0zm160 0l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [\"arrow-right-from-file\"], \"f56e\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V288H216c-13.3 0-24 10.7-24 24s10.7 24 24 24H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM384 336V288H494.1l-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39H384zm0-208H256V0L384 128z\"]\n};\nvar faArrowRightFromFile = faFileExport;\nvar faShield = {\n prefix: 'fas',\n iconName: 'shield',\n icon: [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z\"]\n};\nvar faShieldBlank = faShield;\nvar faArrowUpShortWide = {\n prefix: 'fas',\n iconName: 'arrow-up-short-wide',\n icon: [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"]\n};\nvar faSortAmountUpAlt = faArrowUpShortWide;\nvar faHouseMedical = {\n prefix: 'fas',\n iconName: 'house-medical',\n icon: [576, 512, [], \"e3b2\", \"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM256 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V320H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"]\n};\nvar faGolfBallTee = {\n prefix: 'fas',\n iconName: 'golf-ball-tee',\n icon: [384, 512, [\"golf-ball\"], \"f450\", \"M384 192c0 66.8-34.1 125.6-85.8 160H85.8C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zm-52.3-49.3c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zM96 416c0-17.7 14.3-32 32-32h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H240c-8.8 0-16 7.2-16 16v16c0 17.7-14.3 32-32 32s-32-14.3-32-32V464c0-8.8-7.2-16-16-16H128c-17.7 0-32-14.3-32-32z\"]\n};\nvar faGolfBall = faGolfBallTee;\nvar faCircleChevronLeft = {\n prefix: 'fas',\n iconName: 'circle-chevron-left',\n icon: [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"]\n};\nvar faChevronCircleLeft = faCircleChevronLeft;\nvar faHouseChimneyWindow = {\n prefix: 'fas',\n iconName: 'house-chimney-window',\n icon: [576, 512, [], \"e00d\", \"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V216c0-13.3-10.7-24-24-24H248z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [10001], \"f5ad\", \"M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.8-9.2L288 94.6z\"]\n};\nvar faTentArrowTurnLeft = {\n prefix: 'fas',\n iconName: 'tent-arrow-turn-left',\n icon: [576, 512, [], \"e580\", \"M120.1 41.8c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120 456 120c39.8 0 72 32.2 72 72v40c0 13.3 10.7 24 24 24s24-10.7 24-24V192c0-66.3-53.7-120-120-120L86.5 72l33.5-30.2zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H240h16c17.7 0 32-14.3 32-32V361.9c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7H464h16c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faTents = {\n prefix: 'fas',\n iconName: 'tents',\n icon: [640, 512, [], \"e582\", \"M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5H608c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512H176h16c17.7 0 32-14.3 32-32V361.9c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7H400h16c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faWandMagic = {\n prefix: 'fas',\n iconName: 'wand-magic',\n icon: [512, 512, [\"magic\"], \"f0d0\", \"M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z\"]\n};\nvar faMagic = faWandMagic;\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [128021], \"f6d3\", \"M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32h52.1c12.7 0 24.9 5.1 33.9 14.1L496 64h56c13.3 0 24 10.7 24 24v24c0 44.2-35.8 80-80 80H464 448 426.7l-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V364.8c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2V480c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V249.8c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192h30 16H303.8L416 256.1zM464 80a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [129365], \"f787\", \"M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [384, 512, [127769, 9214], \"f186\", \"M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z\"]\n};\nvar faWineGlassEmpty = {\n prefix: 'fas',\n iconName: 'wine-glass-empty',\n icon: [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM81.9 203.1L93.4 64H226.6l11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z\"]\n};\nvar faWineGlassAlt = faWineGlassEmpty;\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M512 240.2V256H0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V288H512z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [512, 512, [9775], \"f6ad\", \"M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm32-352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [127925], \"f001\", \"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"]\n};\nvar faCodeCommit = {\n prefix: 'fas',\n iconName: 'code-commit',\n icon: [640, 512, [], \"f386\", \"M320 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H163.2C178 151 242.6 96 320 96s142 55 156.8 128H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H476.8z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M448 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 96a96 96 0 1 1 192 0A96 96 0 1 1 320 96zM144 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"]\n};\nvar faPersonBiking = {\n prefix: 'fas',\n iconName: 'person-biking',\n icon: [640, 512, [128692, \"biking\"], \"f84a\", \"M400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1V416c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H427.2zM56 384a72 72 0 1 1 144 0A72 72 0 1 1 56 384zm200 0A128 128 0 1 0 0 384a128 128 0 1 0 256 0zm184 0a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zm200 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"]\n};\nvar faBiking = faPersonBiking;\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [576, 512, [129529], \"f51a\", \"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6c-12.5 0-22.6 10.1-22.6 22.6v29.1L364.3 320h29.1c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8C76.5 307.5 64 337.7 64 369.2c0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9C0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8c30.6-30.6 45.9-73.1 42.3-115.8z\"]\n};\nvar faShieldHeart = {\n prefix: 'fas',\n iconName: 'shield-heart',\n icon: [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h48V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8V64v64c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H416V352H384V224H352V128H320v96h32V352h32V512H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H128V352h32V224h32V128H160v96H128V352H96V512H32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32V256c0-17.7 14.3-32 32-32V160c0-17.7 14.3-32 32-32V64 32 24c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32v48h64V304c0-17.7-14.3-32-32-32zm-32-80v32h64V192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faEarthOceania = {\n prefix: 'fas',\n iconName: 'earth-oceania',\n icon: [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3H254.8c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H264c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGlobeOceania = faEarthOceania;\nvar faSquareXmark = {\n prefix: 'fas',\n iconName: 'square-xmark',\n icon: [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesSquare = faSquareXmark;\nvar faXmarkSquare = faSquareXmark;\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [62098], \"23\", \"M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128h95.1l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H347.1L325.8 320H384c17.7 0 32 14.3 32 32s-14.3 32-32 32H315.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7H155.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l21.3-128H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320h95.1l21.3-128H187.1z\"]\n};\nvar faUpRightAndDownLeftFromCenter = {\n prefix: 'fas',\n iconName: 'up-right-and-down-left-from-center',\n icon: [512, 512, [\"expand-alt\"], \"f424\", \"M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512H24c-13.3 0-24-10.7-24-24V344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z\"]\n};\nvar faExpandAlt = faUpRightAndDownLeftFromCenter;\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32H144 96 48c-26.5 0-48 21.5-48 48v64.8c0 19 11.2 36.2 28.5 43.9l67.5 30V368c0 26.5 21.5 48 48 48H403.1c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8H288V128h32zM96 208v86.1L48 272.8V208H96z\"]\n};\nvar faT = {\n prefix: 'fas',\n iconName: 't',\n icon: [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H160V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H192 32z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2h32c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64v32c0 8.8-7.2 16-16 16H560c-8.8 0-16-7.2-16-16V320H480v16c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V318.4c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2V352c0 17.7 14.3 32 32 32h32v64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V372c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12v76c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V329.1L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1h7.2H256h32c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faChartColumn = {\n prefix: 'fas',\n iconName: 'chart-column',\n icon: [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm128-64V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32zM480 96V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [8734, 9854], \"f534\", \"M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1v29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9V241.1zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1v29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1V241.1c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z\"]\n};\nvar faVialCircleCheck = {\n prefix: 'fas',\n iconName: 'vial-circle-check',\n icon: [512, 512, [], \"e596\", \"M0 64C0 46.3 14.3 32 32 32H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V266.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96V96C14.3 96 0 81.7 0 64zM96 96v96h64V96H96zM224 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faPersonArrowDownToLine = {\n prefix: 'fas',\n iconName: 'person-arrow-down-to-line',\n icon: [640, 512, [], \"e538\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM464 64V306.7l-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M144 320a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm119.8 0c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144H496c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80H263.8zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224H29.4C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480v2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288h2.6c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32V29.4C288 13.2 274.8 0 258.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faPersonWalkingLuggage = {\n prefix: 'fas',\n iconName: 'person-walking-luggage',\n icon: [576, 512, [], \"e554\", \"M432 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z\"]\n};\nvar faUpDown = {\n prefix: 'fas',\n iconName: 'up-down',\n icon: [256, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160H80V352H24c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4H176V160h56c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z\"]\n};\nvar faArrowsAltV = faUpDown;\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M481.2 0C417 0 363.5 46.5 353.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM367.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C241.3 114.6 210.8 96 176 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H367.9zM85.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M48 32C21.5 32 0 53.5 0 80V336c0 26.5 21.5 48 48 48H65.1c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96H488h8H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V80c0-26.5-21.5-48-48-48H48zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21V112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [576, 512, [\"haykal\"], \"f666\", \"M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z\"]\n};\nvar faHaykal = faBahai;\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H141.3C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 88v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M416 0C352.3 0 256 32 256 32V160c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64h32V32H192c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32V480s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64H96V352H64c-35.3 0-64 28.7-64 64z\"]\n};\nvar faCirclePlus = {\n prefix: 'fas',\n iconName: 'circle-plus',\n icon: [512, 512, [\"plus-circle\"], \"f055\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusCircle = faCirclePlus;\nvar faFaceGrinTongueWink = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448V401.1c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2V448c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6V448c0 35.3-28.7 64-64 64s-64-28.7-64-64V402.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-366.1-8.3a.5 .5 0 1 1 -.9 .2 .5 .5 0 1 1 .9-.2z\"]\n};\nvar faPlugCircleExclamation = {\n prefix: 'fas',\n iconName: 'plug-circle-exclamation',\n icon: [576, 512, [], \"e55d\", \"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"]\n};\nvar faLinkSlash = {\n prefix: 'fas',\n iconName: 'link-slash',\n icon: [640, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM116.6 187.9L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9zM220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3L220.9 270z\"]\n};\nvar faChainBroken = faLinkSlash;\nvar faChainSlash = faLinkSlash;\nvar faUnlink = faLinkSlash;\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M288 448H64V224h64V160H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H288v64zm-64-96H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64z\"]\n};\nvar faPersonWalkingArrowLoopLeft = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-loop-left',\n icon: [640, 512, [], \"e551\", \"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384H480c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96H461.3l25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z\"]\n};\nvar faArrowUpZA = {\n prefix: 'fas',\n iconName: 'arrow-up-z-a',\n icon: [576, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400H395.8z\"]\n};\nvar faSortAlphaUpAlt = faArrowUpZA;\nvar faFireFlameCurved = {\n prefix: 'fas',\n iconName: 'fire-flame-curved',\n icon: [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z\"]\n};\nvar faFireAlt = faFireFlameCurved;\nvar faTornado = {\n prefix: 'fas',\n iconName: 'tornado',\n icon: [448, 512, [127786], \"f76f\", \"M0 32V45.6C0 62.7 1.7 79.6 5 96H357.8c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0H32C14.3 0 0 14.3 0 32zm352.2 96H13.6c12.2 35.9 32.3 68.7 58.8 96H412l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3H445c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9H110.2c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9H288z\"]\n};\nvar faFileCirclePlus = {\n prefix: 'fas',\n iconName: 'file-circle-plus',\n icon: [576, 512, [58606], \"e494\", \"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"]\n};\nvar faBookQuran = {\n prefix: 'fas',\n iconName: 'book-quran',\n icon: [448, 512, [\"quran\"], \"f687\", \"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z\"]\n};\nvar faQuran = faBookQuran;\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [9875], \"f13d\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c88.4 0 160-71.6 160-160v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 53-43 96-96 96H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M384 96V224H256V96H384zm0 192V416H256V288H384zM192 224H64V96H192V224zM64 288H192V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"]\n};\nvar faFaceAngry = {\n prefix: 'fas',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM338.7 395.9c6.6-5.9 7.1-16 1.2-22.6C323.8 355.4 295.7 336 256 336s-67.8 19.4-83.9 37.3c-5.9 6.6-5.4 16.7 1.2 22.6s16.7 5.4 22.6-1.2c11.7-13 31.6-26.7 60.1-26.7s48.4 13.7 60.1 26.7c5.9 6.6 16 7.1 22.6 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faAngry = faFaceAngry;\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6v0c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9v0c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faArrowTrendDown = {\n prefix: 'fas',\n iconName: 'arrow-trend-down',\n icon: [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352H384z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [\"feed\"], \"f09e\", \"M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFeed = faRss;\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M96 151.4V360.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1l0 0 32-56 4.5-7.9-.1-.3H119.4c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V151.4C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32H328.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z\"]\n};\nvar faScaleBalanced = {\n prefix: 'fas',\n iconName: 'scale-balanced',\n icon: [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H398.4c-5.2 25.8-22.9 47.1-46.4 57.3V448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-23.5-10.3-41.2-31.6-46.4-57.3H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288H584.4L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320H199.3L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z\"]\n};\nvar faBalanceScale = faScaleBalanced;\nvar faGaugeSimpleHigh = {\n prefix: 'fas',\n iconName: 'gauge-simple-high',\n icon: [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faTachometer = faGaugeSimpleHigh;\nvar faTachometerFast = faGaugeSimpleHigh;\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [128703], \"f2cc\", \"M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.2-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32V131.9zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V288H64V64H512z\"]\n};\nvar faDesktopAlt = faDesktop;\nvar faM = {\n prefix: 'fas',\n iconName: 'm',\n icon: [448, 512, [109], \"4d\", \"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.2c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V169.7L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 49.9 9.2 37.5 22.7 33.4z\"]\n};\nvar faTableList = {\n prefix: 'fas',\n iconName: 'table-list',\n icon: [512, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 0v64h64V96H64zm384 0H192v64H448V96zM64 224v64h64V224H64zm384 0H192v64H448V224zM64 352v64h64V352H64zm384 0H192v64H448V352z\"]\n};\nvar faThList = faTableList;\nvar faCommentSms = {\n prefix: 'fas',\n iconName: 'comment-sms',\n icon: [512, 512, [\"sms\"], \"f7cd\", \"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM96 212.8c0-20.3 16.5-36.8 36.8-36.8H152c8.8 0 16 7.2 16 16s-7.2 16-16 16H132.8c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.3 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h27.2c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6C102.2 236.7 96 225.2 96 212.8zM372.8 176H392c8.8 0 16 7.2 16 16s-7.2 16-16 16H372.8c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.2 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8H352c-8.8 0-16-7.2-16-16s7.2-16 16-16h27.2c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6c-10.2-6.8-16.4-18.3-16.4-30.7c0-20.3 16.5-36.8 36.8-36.8zm-152 6.4L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V240l-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-6.9 4.4-13 10.9-15.2s13.7 .1 17.9 5.6z\"]\n};\nvar faSms = faCommentSms;\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [128212], \"f02d\", \"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [448, 512, [10003, 10004], \"f00c\", \"M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [576, 512, [\"battery-4\"], \"f241\", \"M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm272 96H96V320H352V192z\"]\n};\nvar faBattery4 = faBatteryThreeQuarters;\nvar faHouseCircleCheck = {\n prefix: 'fas',\n iconName: 'house-circle-check',\n icon: [640, 512, [], \"e509\", \"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [320, 512, [8249], \"f104\", \"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faDiagramSuccessor = {\n prefix: 'fas',\n iconName: 'diagram-successor',\n icon: [512, 512, [], \"e47a\", \"M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z\"]\n};\nvar faTruckArrowRight = {\n prefix: 'fas',\n iconName: 'truck-arrow-right',\n icon: [640, 512, [], \"e58b\", \"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H262.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z\"]\n};\nvar faArrowsSplitUpAndLeft = {\n prefix: 'fas',\n iconName: 'arrows-split-up-and-left',\n icon: [512, 512, [], \"e4bc\", \"M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3V384c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64H109.3l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256H224c23.3 0 45.2 6.2 64 17.1V109.3l-41.4 41.4z\"]\n};\nvar faHandFist = {\n prefix: 'fas',\n iconName: 'hand-fist',\n icon: [448, 512, [9994, \"fist-raised\"], \"f6de\", \"M192 0c17.7 0 32 14.3 32 32V144H160V32c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H64V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H128c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"]\n};\nvar faFistRaised = faHandFist;\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [640, 512, [], \"f6c3\", \"M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80H96c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [128188], \"f0b1\", \"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 320 512V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM512 288H320v32c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V288z\"]\n};\nvar faPersonFalling = {\n prefix: 'fas',\n iconName: 'person-falling',\n icon: [512, 512, [], \"e546\", \"M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0h-1.4l92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32V278.2c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 32a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faImagePortrait = {\n prefix: 'fas',\n iconName: 'image-portrait',\n icon: [384, 512, [\"portrait\"], \"f3e0\", \"M384 64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64l0-384zM128 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 356.6c0-37.9 30.7-68.6 68.6-68.6h86.9c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4H107.4C92.3 384 80 371.7 80 356.6z\"]\n};\nvar faPortrait = faImagePortrait;\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1v-33c-15.9-4.7-32.8-7.2-50.3-7.2H178.3zM384 224c-17.7 0-32 14.3-32 32v82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7H384zm24 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faRug = {\n prefix: 'fas',\n iconName: 'rug',\n icon: [640, 512, [], \"e569\", \"M24 64H56 80V88v88 80 80 88 24H56 24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V360H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V280H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V200H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V112H24C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0H528V448H112V64zM640 88c0 13.3-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H584 560V424 336 256 176 88 64h24 32c13.3 0 24 10.7 24 24z\"]\n};\nvar faEarthEurope = {\n prefix: 'fas',\n iconName: 'earth-europe',\n icon: [512, 512, [\"globe-europe\"], \"f7a2\", \"M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1v9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1h1c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24v4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H379.3c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3h11.3c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16H454c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.7-15.4H251.4c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3v3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3H248c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faGlobeEurope = faEarthEurope;\nvar faCartFlatbedSuitcase = {\n prefix: 'fas',\n iconName: 'cart-flatbed-suitcase',\n icon: [640, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0H48c44.2 0 80 35.8 80 80V368c0 8.8 7.2 16 16 16H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H541.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H253.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H144c-44.2 0-80-35.8-80-80V80c0-8.8-7.2-16-16-16H32C14.3 64 0 49.7 0 32zM432 96V56c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8V96h96zM288 96V56c0-30.9 25.1-56 56-56h80c30.9 0 56 25.1 56 56V96 320H288V96zM512 320V96h16c26.5 0 48 21.5 48 48V272c0 26.5-21.5 48-48 48H512zM240 96h16V320H240c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"]\n};\nvar faLuggageCart = faCartFlatbedSuitcase;\nvar faRectangleXmark = {\n prefix: 'fas',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faBahtSign = {\n prefix: 'fas',\n iconName: 'baht-sign',\n icon: [320, 512, [], \"e0ac\", \"M144 0c-17.7 0-32 14.3-32 32V64H37.6C16.8 64 0 80.8 0 101.6V224v41.7V288 406.3c0 23 18.7 41.7 41.7 41.7H112v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112V32c0-17.7-14.3-32-32-32zM112 128v96H64V128h48zm64 96V128c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64v96H64V288h48zm64 96V288h32c26.5 0 48 21.5 48 48s-21.5 48-48 48H176z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [128214, 128366], \"f518\", \"M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V83.8c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z\"]\n};\nvar faBookJournalWhills = {\n prefix: 'fas',\n iconName: 'book-journal-whills',\n icon: [448, 512, [\"journal-whills\"], \"f66a\", \"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.2-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.8-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-8.2-17-20.5-31.7-35.9-42.6c-2.7-1.9-6.2 1.4-5 4.5c8.5 22.4 3.6 48-13 65.6c-3.2 3.4-3.6 8.9-.9 12.7c9.8 14 12.7 31.9 7.5 48.5c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-5.1-16.6-2.2-34.4 7.6-48.5c2.7-3.9 2.3-9.3-.9-12.7c-16.6-17.5-21.6-43.1-13.1-65.5c1.2-3.1-2.3-6.4-5-4.5c-15.3 10.9-27.6 25.6-35.8 42.6l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z\"]\n};\nvar faJournalWhills = faBookJournalWhills;\nvar faHandcuffs = {\n prefix: 'fas',\n iconName: 'handcuffs',\n icon: [640, 512, [], \"e4f8\", \"M240 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM192 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32 80c17.7 0 32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32zm0 320a96 96 0 1 0 0-192 96 96 0 1 0 0 192zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32s32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM368 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faTriangleExclamation = {\n prefix: 'fas',\n iconName: 'triangle-exclamation',\n icon: [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faExclamationTriangle = faTriangleExclamation;\nvar faWarning = faTriangleExclamation;\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [\"mail-forward\"], \"f064\", \"M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z\"]\n};\nvar faMailForward = faShare;\nvar faBottleDroplet = {\n prefix: 'fas',\n iconName: 'bottle-droplet',\n icon: [320, 512, [], \"e4c4\", \"M96 0C82.7 0 72 10.7 72 24s10.7 24 24 24c4.4 0 8 3.6 8 8v64.9c0 12.2-7.2 23.1-17.2 30.1C53.7 174.1 32 212.5 32 256V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V256c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1V56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 0 0 0H104l0 0 0 0L96 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C185.9 288.9 208 320.2 208 337c0 24.9-21.5 45-48 45z\"]\n};\nvar faMaskFace = {\n prefix: 'fas',\n iconName: 'mask-face',\n icon: [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1H144 128 56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H512 496h-9.2c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H96v48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3V176h40c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16zm16 48H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHillRockslide = {\n prefix: 'fas',\n iconName: 'hill-rockslide',\n icon: [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2H293.4c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9V309.4c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9v53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faRightLeft = {\n prefix: 'fas',\n iconName: 'right-left',\n icon: [512, 512, [\"exchange-alt\"], \"f362\", \"M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z\"]\n};\nvar faExchangeAlt = faRightLeft;\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [61913], \"f1d8\", \"M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480V396.4c0-4 1.5-7.8 4.2-10.7L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z\"]\n};\nvar faRoadCircleExclamation = {\n prefix: 'fas',\n iconName: 'road-circle-exclamation',\n icon: [640, 512, [], \"e565\", \"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9h80c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24h80c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288H24c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24H408zM24 416c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H24zm384 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H408zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V192zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"]\n};\nvar faMoneyBill1Wave = {\n prefix: 'fas',\n iconName: 'money-bill-1-wave',\n icon: [576, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416H64V352c35.3 0 64 28.7 64 64zM64 224V160h64c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"]\n};\nvar faMoneyBillWaveAlt = faMoneyBill1Wave;\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3s-20.2-113.9-54-157.3c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256s20.2 113.9 54 157.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [576, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M544 160l-.1 72.6c-.1 52.2-24 101-64 133.1c.1-1.9 .1-3.8 .1-5.7v-8c0-71.8-37-138.6-97.9-176.7l-60.2-37.6c-8.6-5.4-17.9-8.4-27.3-9.4L248.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l78 135.1c3.3 5.7 10.7 7.7 16.4 4.4s7.7-10.7 4.4-16.4l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S362 5 368.6 16.5l68 117.8 0 0 0 0 43.3 75L480 160c0-17.7 14.4-32 32-32s32 14.4 32 32zM243.9 88.5L268.5 131c-13.9 4.5-26.4 13.7-34.7 27c-.9 1.4-1.7 2.9-2.5 4.4l-28.9-50c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l26.8 46.4c.6 6 2.1 11.8 4.3 17.4H224 210.7l0 0H179l-23-39.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM260.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C416.7 234.7 448 291.2 448 352v8c0 83.9-68.1 152-152 152H120c-13.3 0-24-10.7-24-24s10.7-24 24-24h92c6.6 0 12-5.4 12-12s-5.4-12-12-12H88c-13.3 0-24-10.7-24-24s10.7-24 24-24H212c6.6 0 12-5.4 12-12s-5.4-12-12-12H56c-13.3 0-24-10.7-24-24s10.7-24 24-24H212c6.6 0 12-5.4 12-12s-5.4-12-12-12H88c-13.3 0-24-10.7-24-24s10.7-24 24-24H224l0 0 0 0h93.2L271 219.1c-15-9.4-19.5-29.1-10.2-44.1z\"]\n};\nvar faSignLanguage = faHands;\nvar faSigning = faHands;\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"]\n};\nvar faWaterLadder = {\n prefix: 'fas',\n iconName: 'water-ladder',\n icon: [576, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V224H384V127.7C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3h0V288H192v96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1V127.7zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"]\n};\nvar faLadderWater = faWaterLadder;\nvar faSwimmingPool = faWaterLadder;\nvar faArrowsUpDown = {\n prefix: 'fas',\n iconName: 'arrows-up-down',\n icon: [320, 512, [\"arrows-v\"], \"f07d\", \"M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faArrowsV = faArrowsUpDown;\nvar faFaceGrimace = {\n prefix: 'fas',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm96-112h-8V360l55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344V304h8c23.8 0 43.5 17.3 47.3 40zM328 344H264V304h64v40zm0 56H264V360h64v40zm-80-96v40l-64 0V304h64zm0 56v40H184V360l64 0zm-80-16H112.7c3.8-22.7 23.6-40 47.3-40h8v40zm0 56h-8c-23.8 0-43.5-17.3-47.3-40H168v40zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faWheelchairMove = {\n prefix: 'fas',\n iconName: 'wheelchair-move',\n icon: [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M320 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224h97.4c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288H306.7c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nvar faWheelchairAlt = faWheelchairMove;\nvar faTurnDown = {\n prefix: 'fas',\n iconName: 'turn-down',\n icon: [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M350 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26s12.5-14.5 22-14.5h88l0-192c0-17.7-14.3-32-32-32H32C14.3 96 0 81.7 0 64V32C0 14.3 14.3 0 32 0l80 0c70.7 0 128 57.3 128 128l0 192h88c9.6 0 18.2 5.7 22 14.5z\"]\n};\nvar faLevelDownAlt = faTurnDown;\nvar faPersonWalkingArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-right',\n icon: [640, 512, [], \"e552\", \"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z\"]\n};\nvar faSquareEnvelope = {\n prefix: 'fas',\n iconName: 'square-envelope',\n icon: [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z\"]\n};\nvar faEnvelopeSquare = faSquareEnvelope;\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [127922], \"f522\", \"M274.9 34.3c-28.1-28.1-73.7-28.1-101.8 0L34.3 173.1c-28.1 28.1-28.1 73.7 0 101.8L173.1 413.7c28.1 28.1 73.7 28.1 101.8 0L413.7 274.9c28.1-28.1 28.1-73.7 0-101.8L274.9 34.3zM200 224a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM96 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 376a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM352 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 120a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm96 328c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H461.7c11.6 36 3.1 77-25.4 105.5L320 413.8V448zM480 328a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [512, 512, [], \"f436\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [512, 512, [129504], \"f5dc\", \"M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z\"]\n};\nvar faBandage = {\n prefix: 'fas',\n iconName: 'bandage',\n icon: [640, 512, [129657, \"band-aid\"], \"f462\", \"M480 416h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H480V416zM448 96H192V416H448V96zM64 96C28.7 96 0 124.7 0 160V352c0 35.3 28.7 64 64 64h96V96H64zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faBandAid = faBandage;\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-13.3 0-24 10.7-24 24s10.7 24 24 24H312z\"]\n};\nvar faCircleXmark = {\n prefix: 'fas',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H200.6c-5.4-9.4-8.6-20.3-8.6-32V256c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96H217.8l28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224H344c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24H272c-26.5 0-48 21.5-48 48v80H416V256h32v96H640V272c0-26.5-21.5-48-48-48h-4.1c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48H416V384H224v80zm224 48H592c26.5 0 48-21.5 48-48V384H448V512zm96-312c0 13.3-10.7 24-24 24H470.9l29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [512, 512, [127976], \"f594\", \"M0 32C0 14.3 14.3 0 32 0H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64C14.3 64 0 49.7 0 32zm96 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16zM240 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H240zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zM112 192c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H112zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H368zM328 384c13.3 0 24.3-10.9 21-23.8c-10.6-41.5-48.2-72.2-93-72.2s-82.5 30.7-93 72.2c-3.3 12.8 7.8 23.8 21 23.8H328z\"]\n};\nvar faEarthAsia = {\n prefix: 'fas',\n iconName: 'earth-asia',\n icon: [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9h2.3c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm144.5 92.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z\"]\n};\nvar faGlobeAsia = faEarthAsia;\nvar faIdCardClip = {\n prefix: 'fas',\n iconName: 'id-card-clip',\n icon: [576, 512, [\"id-card-alt\"], \"f47f\", \"M256 0h64c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM64 64H192v48c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7H389.3c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3H229.3c-29.5 0-53.3 23.9-53.3 53.3zM288 352a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nvar faIdCardAlt = faIdCardClip;\nvar faMagnifyingGlassPlus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-plus',\n icon: [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"]\n};\nvar faSearchPlus = faMagnifyingGlassPlus;\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304h91.4c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H512V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faHandDots = {\n prefix: 'fas',\n iconName: 'hand-dots',\n icon: [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32zM240 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80 16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48-16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-16 80a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM240 432a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-48-48a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faAllergies = faHandDots;\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm0 32v64H288V256H96zM240 416h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"]\n};\nvar faMugSaucer = {\n prefix: 'fas',\n iconName: 'mug-saucer',\n icon: [640, 512, [\"coffee\"], \"f0f4\", \"M96 64c0-17.7 14.3-32 32-32H448h64c70.7 0 128 57.3 128 128s-57.3 128-128 128H480c0 53-43 96-96 96H192c-53 0-96-43-96-96V64zM480 224h32c35.3 0 64-28.7 64-64s-28.7-64-64-64H480V224zM32 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCoffee = faMugSaucer;\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M162.4 6c-1.5-3.6-5-6-8.9-6h-19c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6H48C21.5 0 0 21.5 0 48V224v22.4V256H9.6 374.4 384v-9.6V224 48c0-26.5-21.5-48-48-48H230.5c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288v32c0 35.3 28.7 64 64 64h64v64c0 35.3 28.7 64 64 64s64-28.7 64-64V384h64c35.3 0 64-28.7 64-64V288H0zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448h8.4c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4H400c96 0 176-64 176-176s-64-208-288-208zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faMagnifyingGlassMinus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-minus',\n icon: [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24H280c13.3 0 24-10.7 24-24s-10.7-24-24-24H136z\"]\n};\nvar faSearchMinus = faMagnifyingGlassMinus;\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M0 48C0 21.5 21.5 0 48 0H208c26.5 0 48 21.5 48 48V96H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z\"]\n};\nvar faUserLarge = {\n prefix: 'fas',\n iconName: 'user-large',\n icon: [512, 512, [\"user-alt\"], \"f406\", \"M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7H481.3c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320H161.3z\"]\n};\nvar faUserAlt = faUserLarge;\nvar faTrainTram = {\n prefix: 'fas',\n iconName: 'train-tram',\n icon: [448, 512, [128650], \"e5b4\", \"M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0H361.2c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.8 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15H248V96h40c53 0 96 43 96 96V352c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1H365.3c-8.5 0-16.6-3.4-22.6-9.4L288 448H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H43c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352V192c0-53 43-96 96-96h40V48H86.8zM160 160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H160zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M96 128V70.2c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30V128h-.3c.2 2.6 .3 5.3 .3 8v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V136c0-2.7 .1-5.4 .3-8H96zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80V160H144v16zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6zM208 48V64H192c-4.4 0-8 3.6-8 8V88c0 4.4 3.6 8 8 8h16v16c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V96h16c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8H240V48c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [128137], \"f48e\", \"M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4H97.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V325.3c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [9925], \"f6c4\", \"M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l14.1 84.7 84.7 14.1c5.4 .9 10 4.5 12.1 9.6s1.5 10.9-1.6 15.4l-38.5 55c-2.2-.1-4.4-.2-6.7-.2c-23.3 0-45.1 6.2-64 17.1l0-1.1c0-53-43-96-96-96s-96 43-96 96s43 96 96 96c8.1 0 15.9-1 23.4-2.9c-36.6 18.1-63.3 53.1-69.8 94.9l-24.4 17c-4.5 3.1-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM144 208a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM639.9 431.9c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H176zM288 204c28.7 0 52 23.3 52 52v96c0 28.7-23.3 52-52 52s-52-23.3-52-52V256c0-28.7 23.3-52 52-52zm-12 52v96c0 6.6 5.4 12 12 12s12-5.4 12-12V256c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5v2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9H192c11 0 20 9 20 20s-9 20-20 20H128c-11 0-20-9-20-20V368.3c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8v-2.2c0-6.9-5.6-12.5-12.5-12.5z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 0H512V512H0V0z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [448, 512, [129522], \"f076\", \"M0 160v96C0 379.7 100.3 480 224 480s224-100.3 224-224V160H320v96c0 53-43 96-96 96s-96-43-96-96V160H0zm0-32H128V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64zm320 0H448V64c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32v64z\"]\n};\nvar faJar = {\n prefix: 'fas',\n iconName: 'jar',\n icon: [320, 512, [], \"e516\", \"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm96 64c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H96z\"]\n};\nvar faNoteSticky = {\n prefix: 'fas',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H288V368c0-26.5 21.5-48 48-48H448V96c0-35.3-28.7-64-64-64H64zM448 352H402.7 336c-8.8 0-16 7.2-16 16v66.7V480l32-32 64-64 32-32z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faBugSlash = {\n prefix: 'fas',\n iconName: 'bug-slash',\n icon: [640, 512, [], \"e490\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H479.7c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160H264c-8.3 0-16.3 1-24 2.8L38.8 5.1zm392 430.3L336 360.7V479.2c36.6-3.6 69.7-19.6 94.8-43.8zM166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6V335.5L166.7 227.3zM320 0c-53 0-96 43-96 96v3.6c0 15.7 12.7 28.4 28.4 28.4H387.6c15.7 0 28.4-12.7 28.4-28.4V96c0-53-43-96-96-96z\"]\n};\nvar faArrowUpFromWaterPump = {\n prefix: 'fas',\n iconName: 'arrow-up-from-water-pump',\n icon: [576, 512, [], \"e4b6\", \"M112 0C85.5 0 64 21.5 64 48V256H48c-26.5 0-48 21.5-48 48v96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400V304c0-26.5-21.5-48-48-48H480l0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256H288V48c0-26.5-21.5-48-48-48H112zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [576, 512, [129460], \"f5d7\", \"M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2H384c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336H192c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M240 80H342.7c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80h81.4l91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16H97c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7V512H243.7L181.5 408.2 124 312.4zm33-7.2L204.3 384H272c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48h82.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512H64V345.4C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48H223.5l57.1 95.2C303 507.2 320 487.6 320 464z\"]\n};\nvar faFaceSadTear = {\n prefix: 'fas',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM367.6 208a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z\"]\n};\nvar faTentArrowsDown = {\n prefix: 'fas',\n iconName: 'tent-arrows-down',\n icon: [576, 512, [], \"e581\", \"M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V146.1l-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H240h16c17.7 0 32-14.3 32-32V361.9c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7H464h16c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [64, 512, [10069, 10071, 61738], \"21\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM32 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faArrowsSpin = {\n prefix: 'fas',\n iconName: 'arrows-spin',\n icon: [512, 512, [], \"e4bb\", \"M256 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H448c8.8 0 16-7.2 16-16V64c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C363.4 52.6 312.1 32 256 32c-10.9 0-21.5 .8-32 2.3V99.2c10.3-2.1 21-3.2 32-3.2zM132.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V64c0-8.8-7.2-16-16-16H64c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C52.6 148.6 32 199.9 32 256c0 10.9 .8 21.5 2.3 32H99.2c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM477.7 224H412.8c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8V448c0 8.8 7.2 16 16 16H448c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C459.4 363.4 480 312.1 480 256c0-10.9-.8-21.5-2.3-32zM256 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9H64c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C148.6 459.4 199.9 480 256 480c10.9 0 21.5-.8 32-2.3V412.8c-10.3 2.1-21 3.2-32 3.2z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [128424, 128438, 9113], \"f02f\", \"M128 0C92.7 0 64 28.7 64 64v96h64V64H354.7L384 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0H128zM384 352v32 64H128V384 368 352H384zm64 32h32c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v96c0 17.7 14.3 32 32 32H64v64c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V384zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faTurkishLiraSign = {\n prefix: 'fas',\n iconName: 'turkish-lira-sign',\n icon: [384, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M96 32c17.7 0 32 14.3 32 32V99.3L247.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 165.9v29.4l119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 261.9V416h63.8c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C378.5 399.8 294.1 480 191.8 480H96c-17.7 0-32-14.3-32-32V280.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 213.6V184.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 117.6V64c0-17.7 14.3-32 32-32z\"]\n};\nvar faTry = faTurkishLiraSign;\nvar faTurkishLira = faTurkishLiraSign;\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11V32c0-17.7 14.3-32 32-32z\"]\n};\nvar faDollar = faDollarSign;\nvar faUsd = faDollarSign;\nvar faX = {\n prefix: 'fas',\n iconName: 'x',\n icon: [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"]\n};\nvar faMagnifyingGlassDollar = {\n prefix: 'fas',\n iconName: 'magnifying-glass-dollar',\n icon: [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V312c0 11 9 20 20 20s20-9 20-20V298.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V104z\"]\n};\nvar faSearchDollar = faMagnifyingGlassDollar;\nvar faUsersGear = {\n prefix: 'fas',\n iconName: 'users-gear',\n icon: [640, 512, [\"users-cog\"], \"f509\", \"M144 160A80 80 0 1 0 144 0a80 80 0 1 0 0 160zm368 0A80 80 0 1 0 512 0a80 80 0 1 0 0 160zM0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7H106.7C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2H261.3C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H455.2c-2.1-5.2-3.2-10.9-3.2-16.4v-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3v-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6v3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3l-2.9 1.7c-9.2 5.3-20.4 4-29.6-1.3s-16.1-14.5-16.1-25.1v-3.4c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9v3.4c0 10.6-6.9 19.8-16.1 25.1s-20.4 6.6-29.6 1.3l-2.9-1.7c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l2.9 1.7c9.2 5.3 13.7 15.8 13.7 26.4s-4.5 21.1-13.7 26.4l-3 1.7c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3l2.9-1.7c9.2-5.3 20.4-4 29.6 1.3s16.1 14.5 16.1 25.1v3.4c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9v-3.4c0-10.6 6.9-19.8 16.1-25.1s20.4-6.6 29.6-1.3l2.9 1.7c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-3-1.7c-9.2-5.3-13.7-15.8-13.7-26.4s4.5-21.1 13.7-26.4l3-1.7zM472 384a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"]\n};\nvar faUsersCog = faUsersGear;\nvar faPersonMilitaryPointing = {\n prefix: 'fas',\n iconName: 'person-military-pointing',\n icon: [576, 512, [], \"e54a\", \"M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25H400c8.8 0 16-7.2 16-16V17.4C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H241.6c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40H224v89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5H240 72zm345.7 20.9L246.6 416H416V369.7l53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448v32c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V448H224z\"]\n};\nvar faBuildingColumns = {\n prefix: 'fas',\n iconName: 'building-columns',\n icon: [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160v8c0 13.3 10.7 24 24 24H456c13.3 0 24-10.7 24-24v-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8-3.4-17.2-3.4-25.2 0zM128 224H64V420.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512H480c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1V224H384V416H344V224H280V416H232V224H168V416H128V224zM256 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBank = faBuildingColumns;\nvar faInstitution = faBuildingColumns;\nvar faMuseum = faBuildingColumns;\nvar faUniversity = faBuildingColumns;\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", \"M288 0c17.7 0 32 14.3 32 32V49.7C451.8 63.4 557.7 161 573.9 285.9c2 15.6-17.3 24.4-27.8 12.7C532.1 283 504.8 272 480 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C359 299.5 326.7 272 288 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C167 299.5 134.7 272 96 272c-24.8 0-52.1 11-66.1 26.7C19.4 310.4 .1 301.5 2.1 285.9C18.3 161 124.2 63.4 256 49.7V32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2V430.6c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4V316.2c8.5-7.6 19.7-12.2 32-12.2z\"]\n};\nvar faTrowel = {\n prefix: 'fas',\n iconName: 'trowel',\n icon: [512, 512, [], \"e589\", \"M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"]\n};\nvar faD = {\n prefix: 'fas',\n iconName: 'd',\n icon: [384, 512, [100], \"44\", \"M0 96C0 60.7 28.7 32 64 32h96c123.7 0 224 100.3 224 224s-100.3 224-224 224H64c-35.3 0-64-28.7-64-64V96zm160 0H64V416h96c88.4 0 160-71.6 160-160s-71.6-160-160-160z\"]\n};\nvar faStapler = {\n prefix: 'fas',\n iconName: 'stapler',\n icon: [640, 512, [], \"e5af\", \"M640 299.3V304 432c0 26.5-21.5 48-48 48H512 448 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H448V368H96c-17.7 0-32-14.3-32-32V219.4L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304V288L128 230.9V304H448z\"]\n};\nvar faMasksTheater = {\n prefix: 'fas',\n iconName: 'masks-theater',\n icon: [640, 512, [127917, \"theater-masks\"], \"f630\", \"M74.6 373.2c41.7 36.1 108 82.5 166.1 73.7c6.1-.9 12.1-2.5 18-4.5c-9.2-12.3-17.3-24.4-24.2-35.4c-21.9-35-28.8-75.2-25.9-113.6c-20.6 4.1-39.2 13-54.7 25.4c-6.5 5.2-16.3 1.3-14.8-7c6.4-33.5 33-60.9 68.2-66.3c2.6-.4 5.3-.7 7.9-.8l19.4-131.3c2-13.8 8-32.7 25-45.9C278.2 53.2 310.5 37 363.2 32.2c-.8-.7-1.6-1.4-2.4-2.1C340.6 14.5 288.4-11.5 175.7 5.6S20.5 63 5.7 83.9C0 91.9-.8 102 .6 111.8L24.8 276.1c5.5 37.3 21.5 72.6 49.8 97.2zm87.7-219.6c4.4-3.1 10.8-2 11.8 3.3c.1 .5 .2 1.1 .3 1.6c3.2 21.8-11.6 42-33.1 45.3s-41.5-11.8-44.7-33.5c-.1-.5-.1-1.1-.2-1.6c-.6-5.4 5.2-8.4 10.3-6.7c9 3 18.8 3.9 28.7 2.4s19.1-5.3 26.8-10.8zM261.6 390c29.4 46.9 79.5 110.9 137.6 119.7s124.5-37.5 166.1-73.7c28.3-24.5 44.3-59.8 49.8-97.2l24.2-164.3c1.4-9.8 .6-19.9-5.1-27.9c-14.8-20.9-57.3-61.2-170-78.3S299.4 77.2 279.2 92.8c-7.8 6-11.5 15.4-12.9 25.2L242.1 282.3c-5.5 37.3-.4 75.8 19.6 107.7zM404.5 235.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6c-1 5.3-7.4 6.4-11.8 3.3zm136.2 15.5c-1 5.3-7.4 6.4-11.8 3.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6zM530 350.2c-19.6 44.7-66.8 72.5-116.8 64.9s-87.1-48.2-93-96.7c-1-8.3 8.9-12.1 15.2-6.7c23.9 20.8 53.6 35.3 87 40.3s66.1 .1 94.9-12.8c7.6-3.4 16 3.2 12.6 10.9z\"]\n};\nvar faTheaterMasks = faMasksTheater;\nvar faKipSign = {\n prefix: 'fas',\n iconName: 'kip-sign',\n icon: [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4V64c0-17.7-14.3-32-32-32S64 46.3 64 64V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V325.6L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H182.5L340.8 88.3z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z\"]\n};\nvar faHandshakeSimple = {\n prefix: 'fas',\n iconName: 'handshake-simple',\n icon: [640, 512, [129309, \"handshake-alt\"], \"f4c6\", \"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48H48c-26.5 0-48 21.5-48 48V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z\"]\n};\nvar faHandshakeAlt = faHandshakeSimple;\nvar faJetFighter = {\n prefix: 'fas',\n iconName: 'jet-fighter',\n icon: [640, 512, [\"fighter-jet\"], \"f0fb\", \"M160 24c0-13.3 10.7-24 24-24H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H280L384 192H500.4c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1H384L280 464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V320H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H82.7c8.5 0 16.6 3.4 22.6 9.4L160 192h32V48h-8c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"]\n};\nvar faFighterJet = faJetFighter;\nvar faSquareShareNodes = {\n prefix: 'fas',\n iconName: 'square-share-nodes',\n icon: [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faShareAltSquare = faSquareShareNodes;\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M24 32C10.7 32 0 42.7 0 56V456c0 13.3 10.7 24 24 24H40c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H24zm88 0c-8.8 0-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H184zm96 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H280zM448 56V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H472c-13.3 0-24 10.7-24 24zm-64-8V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faPlusMinus = {\n prefix: 'fas',\n iconName: 'plus-minus',\n icon: [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V144H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H160V320c0 17.7 14.3 32 32 32s32-14.3 32-32V208H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V32zM0 480c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [\"video-camera\"], \"f03d\", \"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z\"]\n};\nvar faVideoCamera = faVideo;\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [127891, \"mortar-board\"], \"f19d\", \"M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9v28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5V291.9c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z\"]\n};\nvar faMortarBoard = faGraduationCap;\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M224 24V80H168c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h56v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176h56c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H320V24c0-13.3-10.7-24-24-24H248c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0 0 0c-.3 0-.6 0-.9 0z\"]\n};\nvar faPersonCircleCheck = {\n prefix: 'fas',\n iconName: 'person-circle-check',\n icon: [576, 512, [], \"e53e\", \"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faTurnUp = {\n prefix: 'fas',\n iconName: 'turn-up',\n icon: [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M350 177.5c3.8-8.8 2-19-4.6-26l-136-144C204.9 2.7 198.6 0 192 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26s12.5 14.5 22 14.5h88l0 192c0 17.7-14.3 32-32 32H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32l80 0c70.7 0 128-57.3 128-128l0-192h88c9.6 0 18.2-5.7 22-14.5z\"]\n};\nvar faLevelUpAlt = faTurnUp;\nvar icons = {\n fa0: fa0,\n fa1: fa1,\n fa2: fa2,\n fa3: fa3,\n fa4: fa4,\n fa5: fa5,\n fa6: fa6,\n fa7: fa7,\n fa8: fa8,\n fa9: fa9,\n faFillDrip: faFillDrip,\n faArrowsToCircle: faArrowsToCircle,\n faCircleChevronRight: faCircleChevronRight,\n faChevronCircleRight: faChevronCircleRight,\n faAt: faAt,\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faTextHeight: faTextHeight,\n faUserXmark: faUserXmark,\n faUserTimes: faUserTimes,\n faStethoscope: faStethoscope,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faInfo: faInfo,\n faDownLeftAndUpRightToCenter: faDownLeftAndUpRightToCenter,\n faCompressAlt: faCompressAlt,\n faExplosion: faExplosion,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faWaveSquare: faWaveSquare,\n faRing: faRing,\n faBuildingUn: faBuildingUn,\n faDiceThree: faDiceThree,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faAnchorCircleCheck: faAnchorCircleCheck,\n faBuildingCircleArrowRight: faBuildingCircleArrowRight,\n faVolleyball: faVolleyball,\n faVolleyballBall: faVolleyballBall,\n faArrowsUpToLine: faArrowsUpToLine,\n faSortDown: faSortDown,\n faSortDesc: faSortDesc,\n faCircleMinus: faCircleMinus,\n faMinusCircle: faMinusCircle,\n faDoorOpen: faDoorOpen,\n faRightFromBracket: faRightFromBracket,\n faSignOutAlt: faSignOutAlt,\n faAtom: faAtom,\n faSoap: faSoap,\n faIcons: faIcons,\n faHeartMusicCameraBolt: faHeartMusicCameraBolt,\n faMicrophoneLinesSlash: faMicrophoneLinesSlash,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faBridgeCircleCheck: faBridgeCircleCheck,\n faPumpMedical: faPumpMedical,\n faFingerprint: faFingerprint,\n faHandPointRight: faHandPointRight,\n faMagnifyingGlassLocation: faMagnifyingGlassLocation,\n faSearchLocation: faSearchLocation,\n faForwardStep: faForwardStep,\n faStepForward: faStepForward,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faFlagCheckered: faFlagCheckered,\n faFootball: faFootball,\n faFootballBall: faFootballBall,\n faSchoolCircleExclamation: faSchoolCircleExclamation,\n faCrop: faCrop,\n faAnglesDown: faAnglesDown,\n faAngleDoubleDown: faAngleDoubleDown,\n faUsersRectangle: faUsersRectangle,\n faPeopleRoof: faPeopleRoof,\n faPeopleLine: faPeopleLine,\n faBeerMugEmpty: faBeerMugEmpty,\n faBeer: faBeer,\n faDiagramPredecessor: faDiagramPredecessor,\n faArrowUpLong: faArrowUpLong,\n faLongArrowUp: faLongArrowUp,\n faFireFlameSimple: faFireFlameSimple,\n faBurn: faBurn,\n faPerson: faPerson,\n faMale: faMale,\n faLaptop: faLaptop,\n faFileCsv: faFileCsv,\n faMenorah: faMenorah,\n faTruckPlane: faTruckPlane,\n faRecordVinyl: faRecordVinyl,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faBong: faBong,\n faSpaghettiMonsterFlying: faSpaghettiMonsterFlying,\n faPastafarianism: faPastafarianism,\n faArrowDownUpAcrossLine: faArrowDownUpAcrossLine,\n faSpoon: faSpoon,\n faUtensilSpoon: faUtensilSpoon,\n faJarWheat: faJarWheat,\n faEnvelopesBulk: faEnvelopesBulk,\n faMailBulk: faMailBulk,\n faFileCircleExclamation: faFileCircleExclamation,\n faCircleH: faCircleH,\n faHospitalSymbol: faHospitalSymbol,\n faPager: faPager,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faStrikethrough: faStrikethrough,\n faK: faK,\n faLandmarkFlag: faLandmarkFlag,\n faPencil: faPencil,\n faPencilAlt: faPencilAlt,\n faBackward: faBackward,\n faCaretRight: faCaretRight,\n faComments: faComments,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faCodePullRequest: faCodePullRequest,\n faClipboardList: faClipboardList,\n faTruckRampBox: faTruckRampBox,\n faTruckLoading: faTruckLoading,\n faUserCheck: faUserCheck,\n faVialVirus: faVialVirus,\n faSheetPlastic: faSheetPlastic,\n faBlog: faBlog,\n faUserNinja: faUserNinja,\n faPersonArrowUpFromLine: faPersonArrowUpFromLine,\n faScrollTorah: faScrollTorah,\n faTorah: faTorah,\n faBroomBall: faBroomBall,\n faQuidditch: faQuidditch,\n faQuidditchBroomBall: faQuidditchBroomBall,\n faToggleOff: faToggleOff,\n faBoxArchive: faBoxArchive,\n faArchive: faArchive,\n faPersonDrowning: faPersonDrowning,\n faArrowDown91: faArrowDown91,\n faSortNumericDesc: faSortNumericDesc,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faSprayCan: faSprayCan,\n faTruckMonster: faTruckMonster,\n faW: faW,\n faEarthAfrica: faEarthAfrica,\n faGlobeAfrica: faGlobeAfrica,\n faRainbow: faRainbow,\n faCircleNotch: faCircleNotch,\n faTabletScreenButton: faTabletScreenButton,\n faTabletAlt: faTabletAlt,\n faPaw: faPaw,\n faCloud: faCloud,\n faTrowelBricks: faTrowelBricks,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faHospitalUser: faHospitalUser,\n faTentArrowLeftRight: faTentArrowLeftRight,\n faGavel: faGavel,\n faLegal: faLegal,\n faBinoculars: faBinoculars,\n faMicrophoneSlash: faMicrophoneSlash,\n faBoxTissue: faBoxTissue,\n faMotorcycle: faMotorcycle,\n faBellConcierge: faBellConcierge,\n faConciergeBell: faConciergeBell,\n faPenRuler: faPenRuler,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleArrowsLeftRight: faPeopleArrowsLeftRight,\n faMarsAndVenusBurst: faMarsAndVenusBurst,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faScissors: faScissors,\n faCut: faCut,\n faSunPlantWilt: faSunPlantWilt,\n faToiletsPortable: faToiletsPortable,\n faHockeyPuck: faHockeyPuck,\n faTable: faTable,\n faMagnifyingGlassArrowRight: faMagnifyingGlassArrowRight,\n faTachographDigital: faTachographDigital,\n faDigitalTachograph: faDigitalTachograph,\n faUsersSlash: faUsersSlash,\n faClover: faClover,\n faReply: faReply,\n faMailReply: faMailReply,\n faStarAndCrescent: faStarAndCrescent,\n faHouseFire: faHouseFire,\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faHelicopter: faHelicopter,\n faCompass: faCompass,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faFileCircleQuestion: faFileCircleQuestion,\n faLaptopCode: faLaptopCode,\n faSwatchbook: faSwatchbook,\n faPrescriptionBottle: faPrescriptionBottle,\n faBars: faBars,\n faNavicon: faNavicon,\n faPeopleGroup: faPeopleGroup,\n faHourglassEnd: faHourglassEnd,\n faHourglass3: faHourglass3,\n faHeartCrack: faHeartCrack,\n faHeartBroken: faHeartBroken,\n faSquareUpRight: faSquareUpRight,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faFilm: faFilm,\n faRulerHorizontal: faRulerHorizontal,\n faPeopleRobbery: faPeopleRobbery,\n faLightbulb: faLightbulb,\n faCaretLeft: faCaretLeft,\n faCircleExclamation: faCircleExclamation,\n faExclamationCircle: faExclamationCircle,\n faSchoolCircleXmark: faSchoolCircleXmark,\n faArrowRightFromBracket: faArrowRightFromBracket,\n faSignOut: faSignOut,\n faCircleChevronDown: faCircleChevronDown,\n faChevronCircleDown: faChevronCircleDown,\n faUnlockKeyhole: faUnlockKeyhole,\n faUnlockAlt: faUnlockAlt,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faHeadphonesSimple: faHeadphonesSimple,\n faHeadphonesAlt: faHeadphonesAlt,\n faSitemap: faSitemap,\n faCircleDollarToSlot: faCircleDollarToSlot,\n faDonate: faDonate,\n faMemory: faMemory,\n faRoadSpikes: faRoadSpikes,\n faFireBurner: faFireBurner,\n faFlag: faFlag,\n faHanukiah: faHanukiah,\n faFeather: faFeather,\n faVolumeLow: faVolumeLow,\n faVolumeDown: faVolumeDown,\n faCommentSlash: faCommentSlash,\n faCloudSunRain: faCloudSunRain,\n faCompress: faCompress,\n faWheatAwn: faWheatAwn,\n faWheatAlt: faWheatAlt,\n faAnkh: faAnkh,\n faHandsHoldingChild: faHandsHoldingChild,\n faAsterisk: faAsterisk,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faPesetaSign: faPesetaSign,\n faHeading: faHeading,\n faHeader: faHeader,\n faGhost: faGhost,\n faList: faList,\n faListSquares: faListSquares,\n faSquarePhoneFlip: faSquarePhoneFlip,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faCartPlus: faCartPlus,\n faGamepad: faGamepad,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faEgg: faEgg,\n faHouseMedicalCircleXmark: faHouseMedicalCircleXmark,\n faCampground: faCampground,\n faFolderPlus: faFolderPlus,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faPaintbrush: faPaintbrush,\n faPaintBrush: faPaintBrush,\n faLock: faLock,\n faGasPump: faGasPump,\n faHotTubPerson: faHotTubPerson,\n faHotTub: faHotTub,\n faMapLocation: faMapLocation,\n faMapMarked: faMapMarked,\n faHouseFloodWater: faHouseFloodWater,\n faTree: faTree,\n faBridgeLock: faBridgeLock,\n faSackDollar: faSackDollar,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faCarSide: faCarSide,\n faShareNodes: faShareNodes,\n faShareAlt: faShareAlt,\n faHeartCircleMinus: faHeartCircleMinus,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faMicroscope: faMicroscope,\n faSink: faSink,\n faBagShopping: faBagShopping,\n faShoppingBag: faShoppingBag,\n faArrowDownZA: faArrowDownZA,\n faSortAlphaDesc: faSortAlphaDesc,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faMitten: faMitten,\n faPersonRays: faPersonRays,\n faUsers: faUsers,\n faEyeSlash: faEyeSlash,\n faFlaskVial: faFlaskVial,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faOm: faOm,\n faWorm: faWorm,\n faHouseCircleXmark: faHouseCircleXmark,\n faPlug: faPlug,\n faChevronUp: faChevronUp,\n faHandSpock: faHandSpock,\n faStopwatch: faStopwatch,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faBridgeCircleXmark: faBridgeCircleXmark,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faChessBishop: faChessBishop,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faEarDeaf: faEarDeaf,\n faDeaf: faDeaf,\n faDeafness: faDeafness,\n faHardOfHearing: faHardOfHearing,\n faRoadCircleCheck: faRoadCircleCheck,\n faDiceFive: faDiceFive,\n faSquareRss: faSquareRss,\n faRssSquare: faRssSquare,\n faLandMineOn: faLandMineOn,\n faICursor: faICursor,\n faStamp: faStamp,\n faStairs: faStairs,\n faI: faI,\n faHryvniaSign: faHryvniaSign,\n faHryvnia: faHryvnia,\n faPills: faPills,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faTooth: faTooth,\n faV: faV,\n faBangladeshiTakaSign: faBangladeshiTakaSign,\n faBicycle: faBicycle,\n faStaffSnake: faStaffSnake,\n faRodAsclepius: faRodAsclepius,\n faRodSnake: faRodSnake,\n faStaffAesculapius: faStaffAesculapius,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faTruckMedical: faTruckMedical,\n faAmbulance: faAmbulance,\n faWheatAwnCircleExclamation: faWheatAwnCircleExclamation,\n faSnowman: faSnowman,\n faMortarPestle: faMortarPestle,\n faRoadBarrier: faRoadBarrier,\n faSchool: faSchool,\n faIgloo: faIgloo,\n faJoint: faJoint,\n faAngleRight: faAngleRight,\n faHorse: faHorse,\n faQ: faQ,\n faG: faG,\n faNotesMedical: faNotesMedical,\n faTemperatureHalf: faTemperatureHalf,\n faTemperature2: faTemperature2,\n faThermometer2: faThermometer2,\n faThermometerHalf: faThermometerHalf,\n faDongSign: faDongSign,\n faCapsules: faCapsules,\n faPooStorm: faPooStorm,\n faPooBolt: faPooBolt,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faHandPointUp: faHandPointUp,\n faMoneyBill: faMoneyBill,\n faBookmark: faBookmark,\n faAlignJustify: faAlignJustify,\n faUmbrellaBeach: faUmbrellaBeach,\n faHelmetUn: faHelmetUn,\n faBullseye: faBullseye,\n faBacon: faBacon,\n faHandPointDown: faHandPointDown,\n faArrowUpFromBracket: faArrowUpFromBracket,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faFileWaveform: faFileWaveform,\n faFileMedicalAlt: faFileMedicalAlt,\n faRadiation: faRadiation,\n faChartSimple: faChartSimple,\n faMarsStroke: faMarsStroke,\n faVial: faVial,\n faGauge: faGauge,\n faDashboard: faDashboard,\n faGaugeMed: faGaugeMed,\n faTachometerAltAverage: faTachometerAltAverage,\n faWandMagicSparkles: faWandMagicSparkles,\n faMagicWandSparkles: faMagicWandSparkles,\n faE: faE,\n faPenClip: faPenClip,\n faPenAlt: faPenAlt,\n faBridgeCircleExclamation: faBridgeCircleExclamation,\n faUser: faUser,\n faSchoolCircleCheck: faSchoolCircleCheck,\n faDumpster: faDumpster,\n faVanShuttle: faVanShuttle,\n faShuttleVan: faShuttleVan,\n faBuildingUser: faBuildingUser,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faHighlighter: faHighlighter,\n faKey: faKey,\n faBullhorn: faBullhorn,\n faGlobe: faGlobe,\n faSynagogue: faSynagogue,\n faPersonHalfDress: faPersonHalfDress,\n faRoadBridge: faRoadBridge,\n faLocationArrow: faLocationArrow,\n faC: faC,\n faTabletButton: faTabletButton,\n faBuildingLock: faBuildingLock,\n faPizzaSlice: faPizzaSlice,\n faMoneyBillWave: faMoneyBillWave,\n faChartArea: faChartArea,\n faAreaChart: faAreaChart,\n faHouseFlag: faHouseFlag,\n faPersonCircleMinus: faPersonCircleMinus,\n faBan: faBan,\n faCancel: faCancel,\n faCameraRotate: faCameraRotate,\n faSprayCanSparkles: faSprayCanSparkles,\n faAirFreshener: faAirFreshener,\n faStar: faStar,\n faRepeat: faRepeat,\n faCross: faCross,\n faBox: faBox,\n faVenusMars: faVenusMars,\n faArrowPointer: faArrowPointer,\n faMousePointer: faMousePointer,\n faMaximize: faMaximize,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faChargingStation: faChargingStation,\n faShapes: faShapes,\n faTriangleCircleSquare: faTriangleCircleSquare,\n faShuffle: faShuffle,\n faRandom: faRandom,\n faPersonRunning: faPersonRunning,\n faRunning: faRunning,\n faMobileRetro: faMobileRetro,\n faGripLinesVertical: faGripLinesVertical,\n faSpider: faSpider,\n faHandsBound: faHandsBound,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faPlaneCircleExclamation: faPlaneCircleExclamation,\n faXRay: faXRay,\n faSpellCheck: faSpellCheck,\n faSlash: faSlash,\n faComputerMouse: faComputerMouse,\n faMouse: faMouse,\n faArrowRightToBracket: faArrowRightToBracket,\n faSignIn: faSignIn,\n faShopSlash: faShopSlash,\n faStoreAltSlash: faStoreAltSlash,\n faServer: faServer,\n faVirusCovidSlash: faVirusCovidSlash,\n faShopLock: faShopLock,\n faHourglassStart: faHourglassStart,\n faHourglass1: faHourglass1,\n faBlenderPhone: faBlenderPhone,\n faBuildingWheat: faBuildingWheat,\n faPersonBreastfeeding: faPersonBreastfeeding,\n faRightToBracket: faRightToBracket,\n faSignInAlt: faSignInAlt,\n faVenus: faVenus,\n faPassport: faPassport,\n faHeartPulse: faHeartPulse,\n faHeartbeat: faHeartbeat,\n faPeopleCarryBox: faPeopleCarryBox,\n faPeopleCarry: faPeopleCarry,\n faTemperatureHigh: faTemperatureHigh,\n faMicrochip: faMicrochip,\n faCrown: faCrown,\n faWeightHanging: faWeightHanging,\n faXmarksLines: faXmarksLines,\n faFilePrescription: faFilePrescription,\n faWeightScale: faWeightScale,\n faWeight: faWeight,\n faUserGroup: faUserGroup,\n faUserFriends: faUserFriends,\n faArrowUpAZ: faArrowUpAZ,\n faSortAlphaUp: faSortAlphaUp,\n faChessKnight: faChessKnight,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faWheelchair: faWheelchair,\n faCircleArrowUp: faCircleArrowUp,\n faArrowCircleUp: faArrowCircleUp,\n faToggleOn: faToggleOn,\n faPersonWalking: faPersonWalking,\n faWalking: faWalking,\n faL: faL,\n faFire: faFire,\n faBedPulse: faBedPulse,\n faProcedures: faProcedures,\n faShuttleSpace: faShuttleSpace,\n faSpaceShuttle: faSpaceShuttle,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faFolderOpen: faFolderOpen,\n faHeartCirclePlus: faHeartCirclePlus,\n faCodeFork: faCodeFork,\n faCity: faCity,\n faMicrophoneLines: faMicrophoneLines,\n faMicrophoneAlt: faMicrophoneAlt,\n faPepperHot: faPepperHot,\n faUnlock: faUnlock,\n faColonSign: faColonSign,\n faHeadset: faHeadset,\n faStoreSlash: faStoreSlash,\n faRoadCircleXmark: faRoadCircleXmark,\n faUserMinus: faUserMinus,\n faMarsStrokeUp: faMarsStrokeUp,\n faMarsStrokeV: faMarsStrokeV,\n faChampagneGlasses: faChampagneGlasses,\n faGlassCheers: faGlassCheers,\n faClipboard: faClipboard,\n faHouseCircleExclamation: faHouseCircleExclamation,\n faFileArrowUp: faFileArrowUp,\n faFileUpload: faFileUpload,\n faWifi: faWifi,\n faWifi3: faWifi3,\n faWifiStrong: faWifiStrong,\n faBath: faBath,\n faBathtub: faBathtub,\n faUnderline: faUnderline,\n faUserPen: faUserPen,\n faUserEdit: faUserEdit,\n faSignature: faSignature,\n faStroopwafel: faStroopwafel,\n faBold: faBold,\n faAnchorLock: faAnchorLock,\n faBuildingNgo: faBuildingNgo,\n faManatSign: faManatSign,\n faNotEqual: faNotEqual,\n faBorderTopLeft: faBorderTopLeft,\n faBorderStyle: faBorderStyle,\n faMapLocationDot: faMapLocationDot,\n faMapMarkedAlt: faMapMarkedAlt,\n faJedi: faJedi,\n faSquarePollVertical: faSquarePollVertical,\n faPoll: faPoll,\n faMugHot: faMugHot,\n faCarBattery: faCarBattery,\n faBatteryCar: faBatteryCar,\n faGift: faGift,\n faDiceTwo: faDiceTwo,\n faChessQueen: faChessQueen,\n faGlasses: faGlasses,\n faChessBoard: faChessBoard,\n faBuildingCircleCheck: faBuildingCircleCheck,\n faPersonChalkboard: faPersonChalkboard,\n faMarsStrokeRight: faMarsStrokeRight,\n faMarsStrokeH: faMarsStrokeH,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faCloudShowersWater: faCloudShowersWater,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faHandsBubbles: faHandsBubbles,\n faHandsWash: faHandsWash,\n faLessThanEqual: faLessThanEqual,\n faTrain: faTrain,\n faEyeLowVision: faEyeLowVision,\n faLowVision: faLowVision,\n faCrow: faCrow,\n faSailboat: faSailboat,\n faWindowRestore: faWindowRestore,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faToriiGate: faToriiGate,\n faFrog: faFrog,\n faBucket: faBucket,\n faImage: faImage,\n faMicrophone: faMicrophone,\n faCow: faCow,\n faCaretUp: faCaretUp,\n faScrewdriver: faScrewdriver,\n faFolderClosed: faFolderClosed,\n faHouseTsunami: faHouseTsunami,\n faSquareNfi: faSquareNfi,\n faArrowUpFromGroundWater: faArrowUpFromGroundWater,\n faMartiniGlass: faMartiniGlass,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faRotateLeft: faRotateLeft,\n faRotateBack: faRotateBack,\n faRotateBackward: faRotateBackward,\n faUndoAlt: faUndoAlt,\n faTableColumns: faTableColumns,\n faColumns: faColumns,\n faLemon: faLemon,\n faHeadSideMask: faHeadSideMask,\n faHandshake: faHandshake,\n faGem: faGem,\n faDolly: faDolly,\n faDollyBox: faDollyBox,\n faSmoking: faSmoking,\n faMinimize: faMinimize,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faMonument: faMonument,\n faSnowplow: faSnowplow,\n faAnglesRight: faAnglesRight,\n faAngleDoubleRight: faAngleDoubleRight,\n faCannabis: faCannabis,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faTablets: faTablets,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faEur: faEur,\n faEuro: faEuro,\n faChair: faChair,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faCompassDrafting: faCompassDrafting,\n faDraftingCompass: faDraftingCompass,\n faPlateWheat: faPlateWheat,\n faIcicles: faIcicles,\n faPersonShelter: faPersonShelter,\n faNeuter: faNeuter,\n faIdBadge: faIdBadge,\n faMarker: faMarker,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faHelicopterSymbol: faHelicopterSymbol,\n faUniversalAccess: faUniversalAccess,\n faCircleChevronUp: faCircleChevronUp,\n faChevronCircleUp: faChevronCircleUp,\n faLariSign: faLariSign,\n faVolcano: faVolcano,\n faPersonWalkingDashedLineArrowRight: faPersonWalkingDashedLineArrowRight,\n faSterlingSign: faSterlingSign,\n faGbp: faGbp,\n faPoundSign: faPoundSign,\n faViruses: faViruses,\n faSquarePersonConfined: faSquarePersonConfined,\n faUserTie: faUserTie,\n faArrowDownLong: faArrowDownLong,\n faLongArrowDown: faLongArrowDown,\n faTentArrowDownToLine: faTentArrowDownToLine,\n faCertificate: faCertificate,\n faReplyAll: faReplyAll,\n faMailReplyAll: faMailReplyAll,\n faSuitcase: faSuitcase,\n faPersonSkating: faPersonSkating,\n faSkating: faSkating,\n faFilterCircleDollar: faFilterCircleDollar,\n faFunnelDollar: faFunnelDollar,\n faCameraRetro: faCameraRetro,\n faCircleArrowDown: faCircleArrowDown,\n faArrowCircleDown: faArrowCircleDown,\n faFileImport: faFileImport,\n faArrowRightToFile: faArrowRightToFile,\n faSquareArrowUpRight: faSquareArrowUpRight,\n faExternalLinkSquare: faExternalLinkSquare,\n faBoxOpen: faBoxOpen,\n faScroll: faScroll,\n faSpa: faSpa,\n faLocationPinLock: faLocationPinLock,\n faPause: faPause,\n faHillAvalanche: faHillAvalanche,\n faTemperatureEmpty: faTemperatureEmpty,\n faTemperature0: faTemperature0,\n faThermometer0: faThermometer0,\n faThermometerEmpty: faThermometerEmpty,\n faBomb: faBomb,\n faRegistered: faRegistered,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faScaleUnbalancedFlip: faScaleUnbalancedFlip,\n faBalanceScaleRight: faBalanceScaleRight,\n faSubscript: faSubscript,\n faDiamondTurnRight: faDiamondTurnRight,\n faDirections: faDirections,\n faBurst: faBurst,\n faHouseLaptop: faHouseLaptop,\n faLaptopHouse: faLaptopHouse,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faMoneyBills: faMoneyBills,\n faSmog: faSmog,\n faCrutch: faCrutch,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faCloudArrowUp: faCloudArrowUp,\n faCloudUpload: faCloudUpload,\n faCloudUploadAlt: faCloudUploadAlt,\n faPalette: faPalette,\n faArrowsTurnRight: faArrowsTurnRight,\n faVest: faVest,\n faFerry: faFerry,\n faArrowsDownToPeople: faArrowsDownToPeople,\n faSeedling: faSeedling,\n faSprout: faSprout,\n faLeftRight: faLeftRight,\n faArrowsAltH: faArrowsAltH,\n faBoxesPacking: faBoxesPacking,\n faCircleArrowLeft: faCircleArrowLeft,\n faArrowCircleLeft: faArrowCircleLeft,\n faGroupArrowsRotate: faGroupArrowsRotate,\n faBowlFood: faBowlFood,\n faCandyCane: faCandyCane,\n faArrowDownWideShort: faArrowDownWideShort,\n faSortAmountAsc: faSortAmountAsc,\n faSortAmountDown: faSortAmountDown,\n faCloudBolt: faCloudBolt,\n faThunderstorm: faThunderstorm,\n faTextSlash: faTextSlash,\n faRemoveFormat: faRemoveFormat,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faFileWord: faFileWord,\n faFilePowerpoint: faFilePowerpoint,\n faArrowsLeftRight: faArrowsLeftRight,\n faArrowsH: faArrowsH,\n faHouseLock: faHouseLock,\n faCloudArrowDown: faCloudArrowDown,\n faCloudDownload: faCloudDownload,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faChildren: faChildren,\n faChalkboard: faChalkboard,\n faBlackboard: faBlackboard,\n faUserLargeSlash: faUserLargeSlash,\n faUserAltSlash: faUserAltSlash,\n faEnvelopeOpen: faEnvelopeOpen,\n faHandshakeSimpleSlash: faHandshakeSimpleSlash,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faMattressPillow: faMattressPillow,\n faGuaraniSign: faGuaraniSign,\n faArrowsRotate: faArrowsRotate,\n faRefresh: faRefresh,\n faSync: faSync,\n faFireExtinguisher: faFireExtinguisher,\n faCruzeiroSign: faCruzeiroSign,\n faGreaterThanEqual: faGreaterThanEqual,\n faShieldHalved: faShieldHalved,\n faShieldAlt: faShieldAlt,\n faBookAtlas: faBookAtlas,\n faAtlas: faAtlas,\n faVirus: faVirus,\n faEnvelopeCircleCheck: faEnvelopeCircleCheck,\n faLayerGroup: faLayerGroup,\n faArrowsToDot: faArrowsToDot,\n faArchway: faArchway,\n faHeartCircleCheck: faHeartCircleCheck,\n faHouseChimneyCrack: faHouseChimneyCrack,\n faHouseDamage: faHouseDamage,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faSquare: faSquare,\n faMartiniGlassEmpty: faMartiniGlassEmpty,\n faGlassMartini: faGlassMartini,\n faCouch: faCouch,\n faCediSign: faCediSign,\n faItalic: faItalic,\n faChurch: faChurch,\n faCommentsDollar: faCommentsDollar,\n faDemocrat: faDemocrat,\n faZ: faZ,\n faPersonSkiing: faPersonSkiing,\n faSkiing: faSkiing,\n faRoadLock: faRoadLock,\n faA: faA,\n faTemperatureArrowDown: faTemperatureArrowDown,\n faTemperatureDown: faTemperatureDown,\n faFeatherPointed: faFeatherPointed,\n faFeatherAlt: faFeatherAlt,\n faP: faP,\n faSnowflake: faSnowflake,\n faNewspaper: faNewspaper,\n faRectangleAd: faRectangleAd,\n faAd: faAd,\n faCircleArrowRight: faCircleArrowRight,\n faArrowCircleRight: faArrowCircleRight,\n faFilterCircleXmark: faFilterCircleXmark,\n faLocust: faLocust,\n faSort: faSort,\n faUnsorted: faUnsorted,\n faListOl: faListOl,\n faList12: faList12,\n faListNumeric: faListNumeric,\n faPersonDressBurst: faPersonDressBurst,\n faMoneyCheckDollar: faMoneyCheckDollar,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faVectorSquare: faVectorSquare,\n faBreadSlice: faBreadSlice,\n faLanguage: faLanguage,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faFilter: faFilter,\n faQuestion: faQuestion,\n faFileSignature: faFileSignature,\n faUpDownLeftRight: faUpDownLeftRight,\n faArrowsAlt: faArrowsAlt,\n faHouseChimneyUser: faHouseChimneyUser,\n faHandHoldingHeart: faHandHoldingHeart,\n faPuzzlePiece: faPuzzlePiece,\n faMoneyCheck: faMoneyCheck,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faCode: faCode,\n faWhiskeyGlass: faWhiskeyGlass,\n faGlassWhiskey: faGlassWhiskey,\n faBuildingCircleExclamation: faBuildingCircleExclamation,\n faMagnifyingGlassChart: faMagnifyingGlassChart,\n faArrowUpRightFromSquare: faArrowUpRightFromSquare,\n faExternalLink: faExternalLink,\n faCubesStacked: faCubesStacked,\n faWonSign: faWonSign,\n faKrw: faKrw,\n faWon: faWon,\n faVirusCovid: faVirusCovid,\n faAustralSign: faAustralSign,\n faF: faF,\n faLeaf: faLeaf,\n faRoad: faRoad,\n faTaxi: faTaxi,\n faCab: faCab,\n faPersonCirclePlus: faPersonCirclePlus,\n faChartPie: faChartPie,\n faPieChart: faPieChart,\n faBoltLightning: faBoltLightning,\n faSackXmark: faSackXmark,\n faFileExcel: faFileExcel,\n faFileContract: faFileContract,\n faFishFins: faFishFins,\n faBuildingFlag: faBuildingFlag,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faObjectUngroup: faObjectUngroup,\n faPoop: faPoop,\n faLocationPin: faLocationPin,\n faMapMarker: faMapMarker,\n faKaaba: faKaaba,\n faToiletPaper: faToiletPaper,\n faHelmetSafety: faHelmetSafety,\n faHardHat: faHardHat,\n faHatHard: faHatHard,\n faEject: faEject,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faPlaneCircleCheck: faPlaneCircleCheck,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faObjectGroup: faObjectGroup,\n faChartLine: faChartLine,\n faLineChart: faLineChart,\n faMaskVentilator: faMaskVentilator,\n faArrowRight: faArrowRight,\n faSignsPost: faSignsPost,\n faMapSigns: faMapSigns,\n faCashRegister: faCashRegister,\n faPersonCircleQuestion: faPersonCircleQuestion,\n faH: faH,\n faTarp: faTarp,\n faScrewdriverWrench: faScrewdriverWrench,\n faTools: faTools,\n faArrowsToEye: faArrowsToEye,\n faPlugCircleBolt: faPlugCircleBolt,\n faHeart: faHeart,\n faMarsAndVenus: faMarsAndVenus,\n faHouseUser: faHouseUser,\n faHomeUser: faHomeUser,\n faDumpsterFire: faDumpsterFire,\n faHouseCrack: faHouseCrack,\n faMartiniGlassCitrus: faMartiniGlassCitrus,\n faCocktail: faCocktail,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faBottleWater: faBottleWater,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faToiletPaperSlash: faToiletPaperSlash,\n faAppleWhole: faAppleWhole,\n faAppleAlt: faAppleAlt,\n faKitchenSet: faKitchenSet,\n faR: faR,\n faTemperatureQuarter: faTemperatureQuarter,\n faTemperature1: faTemperature1,\n faThermometer1: faThermometer1,\n faThermometerQuarter: faThermometerQuarter,\n faCube: faCube,\n faBitcoinSign: faBitcoinSign,\n faShieldDog: faShieldDog,\n faSolarPanel: faSolarPanel,\n faLockOpen: faLockOpen,\n faElevator: faElevator,\n faMoneyBillTransfer: faMoneyBillTransfer,\n faMoneyBillTrendUp: faMoneyBillTrendUp,\n faHouseFloodWaterCircleArrowRight: faHouseFloodWaterCircleArrowRight,\n faSquarePollHorizontal: faSquarePollHorizontal,\n faPollH: faPollH,\n faCircle: faCircle,\n faBackwardFast: faBackwardFast,\n faFastBackward: faFastBackward,\n faRecycle: faRecycle,\n faUserAstronaut: faUserAstronaut,\n faPlaneSlash: faPlaneSlash,\n faTrademark: faTrademark,\n faBasketball: faBasketball,\n faBasketballBall: faBasketballBall,\n faSatelliteDish: faSatelliteDish,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faMobileScreenButton: faMobileScreenButton,\n faMobileAlt: faMobileAlt,\n faVolumeHigh: faVolumeHigh,\n faVolumeUp: faVolumeUp,\n faUsersRays: faUsersRays,\n faWallet: faWallet,\n faClipboardCheck: faClipboardCheck,\n faFileAudio: faFileAudio,\n faBurger: faBurger,\n faHamburger: faHamburger,\n faWrench: faWrench,\n faBugs: faBugs,\n faRupeeSign: faRupeeSign,\n faRupee: faRupee,\n faFileImage: faFileImage,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faPlaneDeparture: faPlaneDeparture,\n faHandshakeSlash: faHandshakeSlash,\n faBookBookmark: faBookBookmark,\n faCodeBranch: faCodeBranch,\n faHatCowboy: faHatCowboy,\n faBridge: faBridge,\n faPhoneFlip: faPhoneFlip,\n faPhoneAlt: faPhoneAlt,\n faTruckFront: faTruckFront,\n faCat: faCat,\n faAnchorCircleExclamation: faAnchorCircleExclamation,\n faTruckField: faTruckField,\n faRoute: faRoute,\n faClipboardQuestion: faClipboardQuestion,\n faPanorama: faPanorama,\n faCommentMedical: faCommentMedical,\n faTeethOpen: faTeethOpen,\n faFileCircleMinus: faFileCircleMinus,\n faTags: faTags,\n faWineGlass: faWineGlass,\n faForwardFast: faForwardFast,\n faFastForward: faFastForward,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faSquareParking: faSquareParking,\n faParking: faParking,\n faHouseSignal: faHouseSignal,\n faBarsProgress: faBarsProgress,\n faTasksAlt: faTasksAlt,\n faFaucetDrip: faFaucetDrip,\n faCartFlatbed: faCartFlatbed,\n faDollyFlatbed: faDollyFlatbed,\n faBanSmoking: faBanSmoking,\n faSmokingBan: faSmokingBan,\n faTerminal: faTerminal,\n faMobileButton: faMobileButton,\n faHouseMedicalFlag: faHouseMedicalFlag,\n faBasketShopping: faBasketShopping,\n faShoppingBasket: faShoppingBasket,\n faTape: faTape,\n faBusSimple: faBusSimple,\n faBusAlt: faBusAlt,\n faEye: faEye,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faAudioDescription: faAudioDescription,\n faPersonMilitaryToPerson: faPersonMilitaryToPerson,\n faFileShield: faFileShield,\n faUserSlash: faUserSlash,\n faPen: faPen,\n faTowerObservation: faTowerObservation,\n faFileCode: faFileCode,\n faSignal: faSignal,\n faSignal5: faSignal5,\n faSignalPerfect: faSignalPerfect,\n faBus: faBus,\n faHeartCircleXmark: faHeartCircleXmark,\n faHouseChimney: faHouseChimney,\n faHomeLg: faHomeLg,\n faWindowMaximize: faWindowMaximize,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faPrescription: faPrescription,\n faShop: faShop,\n faStoreAlt: faStoreAlt,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faVihara: faVihara,\n faScaleUnbalanced: faScaleUnbalanced,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faSortUp: faSortUp,\n faSortAsc: faSortAsc,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faPlantWilt: faPlantWilt,\n faDiamond: faDiamond,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faHandHoldingDollar: faHandHoldingDollar,\n faHandHoldingUsd: faHandHoldingUsd,\n faBacterium: faBacterium,\n faHandPointer: faHandPointer,\n faDrumSteelpan: faDrumSteelpan,\n faHandScissors: faHandScissors,\n faHandsPraying: faHandsPraying,\n faPrayingHands: faPrayingHands,\n faArrowRotateRight: faArrowRotateRight,\n faArrowRightRotate: faArrowRightRotate,\n faArrowRotateForward: faArrowRotateForward,\n faRedo: faRedo,\n faBiohazard: faBiohazard,\n faLocationCrosshairs: faLocationCrosshairs,\n faLocation: faLocation,\n faMarsDouble: faMarsDouble,\n faChildDress: faChildDress,\n faUsersBetweenLines: faUsersBetweenLines,\n faLungsVirus: faLungsVirus,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faPhone: faPhone,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faChildReaching: faChildReaching,\n faHeadSideVirus: faHeadSideVirus,\n faUserGear: faUserGear,\n faUserCog: faUserCog,\n faArrowUp19: faArrowUp19,\n faSortNumericUp: faSortNumericUp,\n faDoorClosed: faDoorClosed,\n faShieldVirus: faShieldVirus,\n faDiceSix: faDiceSix,\n faMosquitoNet: faMosquitoNet,\n faBridgeWater: faBridgeWater,\n faPersonBooth: faPersonBooth,\n faTextWidth: faTextWidth,\n faHatWizard: faHatWizard,\n faPenFancy: faPenFancy,\n faPersonDigging: faPersonDigging,\n faDigging: faDigging,\n faTrash: faTrash,\n faGaugeSimple: faGaugeSimple,\n faGaugeSimpleMed: faGaugeSimpleMed,\n faTachometerAverage: faTachometerAverage,\n faBookMedical: faBookMedical,\n faPoo: faPoo,\n faQuoteRight: faQuoteRight,\n faQuoteRightAlt: faQuoteRightAlt,\n faShirt: faShirt,\n faTShirt: faTShirt,\n faTshirt: faTshirt,\n faCubes: faCubes,\n faDivide: faDivide,\n faTengeSign: faTengeSign,\n faTenge: faTenge,\n faHeadphones: faHeadphones,\n faHandsHolding: faHandsHolding,\n faHandsClapping: faHandsClapping,\n faRepublican: faRepublican,\n faArrowLeft: faArrowLeft,\n faPersonCircleXmark: faPersonCircleXmark,\n faRuler: faRuler,\n faAlignLeft: faAlignLeft,\n faDiceD6: faDiceD6,\n faRestroom: faRestroom,\n faJ: faJ,\n faUsersViewfinder: faUsersViewfinder,\n faFileVideo: faFileVideo,\n faUpRightFromSquare: faUpRightFromSquare,\n faExternalLinkAlt: faExternalLinkAlt,\n faTableCells: faTableCells,\n faTh: faTh,\n faFilePdf: faFilePdf,\n faBookBible: faBookBible,\n faBible: faBible,\n faO: faO,\n faSuitcaseMedical: faSuitcaseMedical,\n faMedkit: faMedkit,\n faUserSecret: faUserSecret,\n faOtter: faOtter,\n faPersonDress: faPersonDress,\n faFemale: faFemale,\n faCommentDollar: faCommentDollar,\n faBusinessTime: faBusinessTime,\n faBriefcaseClock: faBriefcaseClock,\n faTableCellsLarge: faTableCellsLarge,\n faThLarge: faThLarge,\n faBookTanakh: faBookTanakh,\n faTanakh: faTanakh,\n faPhoneVolume: faPhoneVolume,\n faVolumeControlPhone: faVolumeControlPhone,\n faHatCowboySide: faHatCowboySide,\n faClipboardUser: faClipboardUser,\n faChild: faChild,\n faLiraSign: faLiraSign,\n faSatellite: faSatellite,\n faPlaneLock: faPlaneLock,\n faTag: faTag,\n faComment: faComment,\n faCakeCandles: faCakeCandles,\n faBirthdayCake: faBirthdayCake,\n faCake: faCake,\n faEnvelope: faEnvelope,\n faAnglesUp: faAnglesUp,\n faAngleDoubleUp: faAngleDoubleUp,\n faPaperclip: faPaperclip,\n faArrowRightToCity: faArrowRightToCity,\n faRibbon: faRibbon,\n faLungs: faLungs,\n faArrowUp91: faArrowUp91,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faLitecoinSign: faLitecoinSign,\n faBorderNone: faBorderNone,\n faCircleNodes: faCircleNodes,\n faParachuteBox: faParachuteBox,\n faIndent: faIndent,\n faTruckFieldUn: faTruckFieldUn,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faMountain: faMountain,\n faUserDoctor: faUserDoctor,\n faUserMd: faUserMd,\n faCircleInfo: faCircleInfo,\n faInfoCircle: faInfoCircle,\n faCloudMeatball: faCloudMeatball,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faSquareVirus: faSquareVirus,\n faMeteor: faMeteor,\n faCarOn: faCarOn,\n faSleigh: faSleigh,\n faArrowDown19: faArrowDown19,\n faSortNumericAsc: faSortNumericAsc,\n faSortNumericDown: faSortNumericDown,\n faHandHoldingDroplet: faHandHoldingDroplet,\n faHandHoldingWater: faHandHoldingWater,\n faWater: faWater,\n faCalendarCheck: faCalendarCheck,\n faBraille: faBraille,\n faPrescriptionBottleMedical: faPrescriptionBottleMedical,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faLandmark: faLandmark,\n faTruck: faTruck,\n faCrosshairs: faCrosshairs,\n faPersonCane: faPersonCane,\n faTent: faTent,\n faVestPatches: faVestPatches,\n faCheckDouble: faCheckDouble,\n faArrowDownAZ: faArrowDownAZ,\n faSortAlphaAsc: faSortAlphaAsc,\n faSortAlphaDown: faSortAlphaDown,\n faMoneyBillWheat: faMoneyBillWheat,\n faCookie: faCookie,\n faArrowRotateLeft: faArrowRotateLeft,\n faArrowLeftRotate: faArrowLeftRotate,\n faArrowRotateBack: faArrowRotateBack,\n faArrowRotateBackward: faArrowRotateBackward,\n faUndo: faUndo,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faDumbbell: faDumbbell,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faTarpDroplet: faTarpDroplet,\n faHouseMedicalCircleCheck: faHouseMedicalCircleCheck,\n faPersonSkiingNordic: faPersonSkiingNordic,\n faSkiingNordic: faSkiingNordic,\n faCalendarPlus: faCalendarPlus,\n faPlaneArrival: faPlaneArrival,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faTrainSubway: faTrainSubway,\n faSubway: faSubway,\n faChartGantt: faChartGantt,\n faIndianRupeeSign: faIndianRupeeSign,\n faIndianRupee: faIndianRupee,\n faInr: faInr,\n faCropSimple: faCropSimple,\n faCropAlt: faCropAlt,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faLeftLong: faLeftLong,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faDna: faDna,\n faVirusSlash: faVirusSlash,\n faMinus: faMinus,\n faSubtract: faSubtract,\n faChess: faChess,\n faArrowLeftLong: faArrowLeftLong,\n faLongArrowLeft: faLongArrowLeft,\n faPlugCircleCheck: faPlugCircleCheck,\n faStreetView: faStreetView,\n faFrancSign: faFrancSign,\n faVolumeOff: faVolumeOff,\n faHandsAslInterpreting: faHandsAslInterpreting,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAslInterpreting: faAslInterpreting,\n faHandsAmericanSignLanguageInterpreting: faHandsAmericanSignLanguageInterpreting,\n faGear: faGear,\n faCog: faCog,\n faDropletSlash: faDropletSlash,\n faTintSlash: faTintSlash,\n faMosque: faMosque,\n faMosquito: faMosquito,\n faStarOfDavid: faStarOfDavid,\n faPersonMilitaryRifle: faPersonMilitaryRifle,\n faCartShopping: faCartShopping,\n faShoppingCart: faShoppingCart,\n faVials: faVials,\n faPlugCirclePlus: faPlugCirclePlus,\n faPlaceOfWorship: faPlaceOfWorship,\n faGripVertical: faGripVertical,\n faArrowTurnUp: faArrowTurnUp,\n faLevelUp: faLevelUp,\n faU: faU,\n faSquareRootVariable: faSquareRootVariable,\n faSquareRootAlt: faSquareRootAlt,\n faClock: faClock,\n faClockFour: faClockFour,\n faBackwardStep: faBackwardStep,\n faStepBackward: faStepBackward,\n faPallet: faPallet,\n faFaucet: faFaucet,\n faBaseballBatBall: faBaseballBatBall,\n faS: faS,\n faTimeline: faTimeline,\n faKeyboard: faKeyboard,\n faCaretDown: faCaretDown,\n faHouseChimneyMedical: faHouseChimneyMedical,\n faClinicMedical: faClinicMedical,\n faTemperatureThreeQuarters: faTemperatureThreeQuarters,\n faTemperature3: faTemperature3,\n faThermometer3: faThermometer3,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faMobileScreen: faMobileScreen,\n faMobileAndroidAlt: faMobileAndroidAlt,\n faPlaneUp: faPlaneUp,\n faPiggyBank: faPiggyBank,\n faBatteryHalf: faBatteryHalf,\n faBattery3: faBattery3,\n faMountainCity: faMountainCity,\n faCoins: faCoins,\n faKhanda: faKhanda,\n faSliders: faSliders,\n faSlidersH: faSlidersH,\n faFolderTree: faFolderTree,\n faNetworkWired: faNetworkWired,\n faMapPin: faMapPin,\n faHamsa: faHamsa,\n faCentSign: faCentSign,\n faFlask: faFlask,\n faPersonPregnant: faPersonPregnant,\n faWandSparkles: faWandSparkles,\n faEllipsisVertical: faEllipsisVertical,\n faEllipsisV: faEllipsisV,\n faTicket: faTicket,\n faPowerOff: faPowerOff,\n faRightLong: faRightLong,\n faLongArrowAltRight: faLongArrowAltRight,\n faFlagUsa: faFlagUsa,\n faLaptopFile: faLaptopFile,\n faTty: faTty,\n faTeletype: faTeletype,\n faDiagramNext: faDiagramNext,\n faPersonRifle: faPersonRifle,\n faHouseMedicalCircleExclamation: faHouseMedicalCircleExclamation,\n faClosedCaptioning: faClosedCaptioning,\n faPersonHiking: faPersonHiking,\n faHiking: faHiking,\n faVenusDouble: faVenusDouble,\n faImages: faImages,\n faCalculator: faCalculator,\n faPeoplePulling: faPeoplePulling,\n faN: faN,\n faCableCar: faCableCar,\n faTram: faTram,\n faCloudRain: faCloudRain,\n faBuildingCircleXmark: faBuildingCircleXmark,\n faShip: faShip,\n faArrowsDownToLine: faArrowsDownToLine,\n faDownload: faDownload,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faDeleteLeft: faDeleteLeft,\n faBackspace: faBackspace,\n faEyeDropper: faEyeDropper,\n faEyeDropperEmpty: faEyeDropperEmpty,\n faEyedropper: faEyedropper,\n faFileCircleCheck: faFileCircleCheck,\n faForward: faForward,\n faMobile: faMobile,\n faMobileAndroid: faMobileAndroid,\n faMobilePhone: faMobilePhone,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faAlignCenter: faAlignCenter,\n faBookSkull: faBookSkull,\n faBookDead: faBookDead,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faOutdent: faOutdent,\n faDedent: faDedent,\n faHeartCircleExclamation: faHeartCircleExclamation,\n faHouse: faHouse,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeLgAlt: faHomeLgAlt,\n faCalendarWeek: faCalendarWeek,\n faLaptopMedical: faLaptopMedical,\n faB: faB,\n faFileMedical: faFileMedical,\n faDiceOne: faDiceOne,\n faKiwiBird: faKiwiBird,\n faArrowRightArrowLeft: faArrowRightArrowLeft,\n faExchange: faExchange,\n faRotateRight: faRotateRight,\n faRedoAlt: faRedoAlt,\n faRotateForward: faRotateForward,\n faUtensils: faUtensils,\n faCutlery: faCutlery,\n faArrowUpWideShort: faArrowUpWideShort,\n faSortAmountUp: faSortAmountUp,\n faMillSign: faMillSign,\n faBowlRice: faBowlRice,\n faSkull: faSkull,\n faTowerBroadcast: faTowerBroadcast,\n faBroadcastTower: faBroadcastTower,\n faTruckPickup: faTruckPickup,\n faUpLong: faUpLong,\n faLongArrowAltUp: faLongArrowAltUp,\n faStop: faStop,\n faCodeMerge: faCodeMerge,\n faUpload: faUpload,\n faHurricane: faHurricane,\n faMound: faMound,\n faToiletPortable: faToiletPortable,\n faCompactDisc: faCompactDisc,\n faFileArrowDown: faFileArrowDown,\n faFileDownload: faFileDownload,\n faCaravan: faCaravan,\n faShieldCat: faShieldCat,\n faBolt: faBolt,\n faZap: faZap,\n faGlassWater: faGlassWater,\n faOilWell: faOilWell,\n faVault: faVault,\n faMars: faMars,\n faToilet: faToilet,\n faPlaneCircleXmark: faPlaneCircleXmark,\n faYenSign: faYenSign,\n faCny: faCny,\n faJpy: faJpy,\n faRmb: faRmb,\n faYen: faYen,\n faRubleSign: faRubleSign,\n faRouble: faRouble,\n faRub: faRub,\n faRuble: faRuble,\n faSun: faSun,\n faGuitar: faGuitar,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faHorseHead: faHorseHead,\n faBoreHole: faBoreHole,\n faIndustry: faIndustry,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowsTurnToDots: faArrowsTurnToDots,\n faFlorinSign: faFlorinSign,\n faArrowDownShortWide: faArrowDownShortWide,\n faSortAmountDesc: faSortAmountDesc,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faLessThan: faLessThan,\n faAngleDown: faAngleDown,\n faCarTunnel: faCarTunnel,\n faHeadSideCough: faHeadSideCough,\n faGripLines: faGripLines,\n faThumbsDown: faThumbsDown,\n faUserLock: faUserLock,\n faArrowRightLong: faArrowRightLong,\n faLongArrowRight: faLongArrowRight,\n faAnchorCircleXmark: faAnchorCircleXmark,\n faEllipsis: faEllipsis,\n faEllipsisH: faEllipsisH,\n faChessPawn: faChessPawn,\n faKitMedical: faKitMedical,\n faFirstAid: faFirstAid,\n faPersonThroughWindow: faPersonThroughWindow,\n faToolbox: faToolbox,\n faHandsHoldingCircle: faHandsHoldingCircle,\n faBug: faBug,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faCar: faCar,\n faAutomobile: faAutomobile,\n faHandHoldingHand: faHandHoldingHand,\n faBookOpenReader: faBookOpenReader,\n faBookReader: faBookReader,\n faMountainSun: faMountainSun,\n faArrowsLeftRightToLine: faArrowsLeftRightToLine,\n faDiceD20: faDiceD20,\n faTruckDroplet: faTruckDroplet,\n faFileCircleXmark: faFileCircleXmark,\n faTemperatureArrowUp: faTemperatureArrowUp,\n faTemperatureUp: faTemperatureUp,\n faMedal: faMedal,\n faBed: faBed,\n faSquareH: faSquareH,\n faHSquare: faHSquare,\n faPodcast: faPodcast,\n faTemperatureFull: faTemperatureFull,\n faTemperature4: faTemperature4,\n faThermometer4: faThermometer4,\n faThermometerFull: faThermometerFull,\n faBell: faBell,\n faSuperscript: faSuperscript,\n faPlugCircleXmark: faPlugCircleXmark,\n faStarOfLife: faStarOfLife,\n faPhoneSlash: faPhoneSlash,\n faPaintRoller: faPaintRoller,\n faHandshakeAngle: faHandshakeAngle,\n faHandsHelping: faHandsHelping,\n faLocationDot: faLocationDot,\n faMapMarkerAlt: faMapMarkerAlt,\n faFile: faFile,\n faGreaterThan: faGreaterThan,\n faPersonSwimming: faPersonSwimming,\n faSwimmer: faSwimmer,\n faArrowDown: faArrowDown,\n faDroplet: faDroplet,\n faTint: faTint,\n faEraser: faEraser,\n faEarthAmericas: faEarthAmericas,\n faEarth: faEarth,\n faEarthAmerica: faEarthAmerica,\n faGlobeAmericas: faGlobeAmericas,\n faPersonBurst: faPersonBurst,\n faDove: faDove,\n faBatteryEmpty: faBatteryEmpty,\n faBattery0: faBattery0,\n faSocks: faSocks,\n faInbox: faInbox,\n faSection: faSection,\n faGaugeHigh: faGaugeHigh,\n faTachometerAlt: faTachometerAlt,\n faTachometerAltFast: faTachometerAltFast,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faWineBottle: faWineBottle,\n faChessRook: faChessRook,\n faBarsStaggered: faBarsStaggered,\n faReorder: faReorder,\n faStream: faStream,\n faDharmachakra: faDharmachakra,\n faHotdog: faHotdog,\n faPersonWalkingWithCane: faPersonWalkingWithCane,\n faBlind: faBlind,\n faDrum: faDrum,\n faIceCream: faIceCream,\n faHeartCircleBolt: faHeartCircleBolt,\n faFax: faFax,\n faParagraph: faParagraph,\n faCheckToSlot: faCheckToSlot,\n faVoteYea: faVoteYea,\n faStarHalf: faStarHalf,\n faBoxesStacked: faBoxesStacked,\n faBoxes: faBoxes,\n faBoxesAlt: faBoxesAlt,\n faLink: faLink,\n faChain: faChain,\n faEarListen: faEarListen,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faTreeCity: faTreeCity,\n faPlay: faPlay,\n faFont: faFont,\n faRupiahSign: faRupiahSign,\n faMagnifyingGlass: faMagnifyingGlass,\n faSearch: faSearch,\n faTableTennisPaddleBall: faTableTennisPaddleBall,\n faPingPongPaddleBall: faPingPongPaddleBall,\n faTableTennis: faTableTennis,\n faPersonDotsFromLine: faPersonDotsFromLine,\n faDiagnoses: faDiagnoses,\n faTrashCanArrowUp: faTrashCanArrowUp,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faNairaSign: faNairaSign,\n faCartArrowDown: faCartArrowDown,\n faWalkieTalkie: faWalkieTalkie,\n faFilePen: faFilePen,\n faFileEdit: faFileEdit,\n faReceipt: faReceipt,\n faSquarePen: faSquarePen,\n faPenSquare: faPenSquare,\n faPencilSquare: faPencilSquare,\n faSuitcaseRolling: faSuitcaseRolling,\n faPersonCircleExclamation: faPersonCircleExclamation,\n faChevronDown: faChevronDown,\n faBatteryFull: faBatteryFull,\n faBattery: faBattery,\n faBattery5: faBattery5,\n faSkullCrossbones: faSkullCrossbones,\n faCodeCompare: faCodeCompare,\n faListUl: faListUl,\n faListDots: faListDots,\n faSchoolLock: faSchoolLock,\n faTowerCell: faTowerCell,\n faDownLong: faDownLong,\n faLongArrowAltDown: faLongArrowAltDown,\n faRankingStar: faRankingStar,\n faChessKing: faChessKing,\n faPersonHarassing: faPersonHarassing,\n faBrazilianRealSign: faBrazilianRealSign,\n faLandmarkDome: faLandmarkDome,\n faLandmarkAlt: faLandmarkAlt,\n faArrowUp: faArrowUp,\n faTv: faTv,\n faTelevision: faTelevision,\n faTvAlt: faTvAlt,\n faShrimp: faShrimp,\n faListCheck: faListCheck,\n faTasks: faTasks,\n faJugDetergent: faJugDetergent,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faUserShield: faUserShield,\n faWind: faWind,\n faCarBurst: faCarBurst,\n faCarCrash: faCarCrash,\n faY: faY,\n faPersonSnowboarding: faPersonSnowboarding,\n faSnowboarding: faSnowboarding,\n faTruckFast: faTruckFast,\n faShippingFast: faShippingFast,\n faFish: faFish,\n faUserGraduate: faUserGraduate,\n faCircleHalfStroke: faCircleHalfStroke,\n faAdjust: faAdjust,\n faClapperboard: faClapperboard,\n faCircleRadiation: faCircleRadiation,\n faRadiationAlt: faRadiationAlt,\n faBaseball: faBaseball,\n faBaseballBall: faBaseballBall,\n faJetFighterUp: faJetFighterUp,\n faDiagramProject: faDiagramProject,\n faProjectDiagram: faProjectDiagram,\n faCopy: faCopy,\n faVolumeXmark: faVolumeXmark,\n faVolumeMute: faVolumeMute,\n faVolumeTimes: faVolumeTimes,\n faHandSparkles: faHandSparkles,\n faGrip: faGrip,\n faGripHorizontal: faGripHorizontal,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faChildCombatant: faChildCombatant,\n faChildRifle: faChildRifle,\n faGun: faGun,\n faSquarePhone: faSquarePhone,\n faPhoneSquare: faPhoneSquare,\n faPlus: faPlus,\n faAdd: faAdd,\n faExpand: faExpand,\n faComputer: faComputer,\n faXmark: faXmark,\n faClose: faClose,\n faMultiply: faMultiply,\n faRemove: faRemove,\n faTimes: faTimes,\n faArrowsUpDownLeftRight: faArrowsUpDownLeftRight,\n faArrows: faArrows,\n faChalkboardUser: faChalkboardUser,\n faChalkboardTeacher: faChalkboardTeacher,\n faPesoSign: faPesoSign,\n faBuildingShield: faBuildingShield,\n faBaby: faBaby,\n faUsersLine: faUsersLine,\n faQuoteLeft: faQuoteLeft,\n faQuoteLeftAlt: faQuoteLeftAlt,\n faTractor: faTractor,\n faTrashArrowUp: faTrashArrowUp,\n faTrashRestore: faTrashRestore,\n faArrowDownUpLock: faArrowDownUpLock,\n faLinesLeaning: faLinesLeaning,\n faRulerCombined: faRulerCombined,\n faCopyright: faCopyright,\n faEquals: faEquals,\n faBlender: faBlender,\n faTeeth: faTeeth,\n faShekelSign: faShekelSign,\n faIls: faIls,\n faShekel: faShekel,\n faSheqel: faSheqel,\n faSheqelSign: faSheqelSign,\n faMap: faMap,\n faRocket: faRocket,\n faPhotoFilm: faPhotoFilm,\n faPhotoVideo: faPhotoVideo,\n faFolderMinus: faFolderMinus,\n faStore: faStore,\n faArrowTrendUp: faArrowTrendUp,\n faPlugCircleMinus: faPlugCircleMinus,\n faSignHanging: faSignHanging,\n faSign: faSign,\n faBezierCurve: faBezierCurve,\n faBellSlash: faBellSlash,\n faTablet: faTablet,\n faTabletAndroid: faTabletAndroid,\n faSchoolFlag: faSchoolFlag,\n faFill: faFill,\n faAngleUp: faAngleUp,\n faDrumstickBite: faDrumstickBite,\n faHollyBerry: faHollyBerry,\n faChevronLeft: faChevronLeft,\n faBacteria: faBacteria,\n faHandLizard: faHandLizard,\n faNotdef: faNotdef,\n faDisease: faDisease,\n faBriefcaseMedical: faBriefcaseMedical,\n faGenderless: faGenderless,\n faChevronRight: faChevronRight,\n faRetweet: faRetweet,\n faCarRear: faCarRear,\n faCarAlt: faCarAlt,\n faPumpSoap: faPumpSoap,\n faVideoSlash: faVideoSlash,\n faBatteryQuarter: faBatteryQuarter,\n faBattery2: faBattery2,\n faRadio: faRadio,\n faBabyCarriage: faBabyCarriage,\n faCarriageBaby: faCarriageBaby,\n faTrafficLight: faTrafficLight,\n faThermometer: faThermometer,\n faVrCardboard: faVrCardboard,\n faHandMiddleFinger: faHandMiddleFinger,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faTruckMoving: faTruckMoving,\n faGlassWaterDroplet: faGlassWaterDroplet,\n faDisplay: faDisplay,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faThumbtack: faThumbtack,\n faThumbTack: faThumbTack,\n faTrophy: faTrophy,\n faPersonPraying: faPersonPraying,\n faPray: faPray,\n faHammer: faHammer,\n faHandPeace: faHandPeace,\n faRotate: faRotate,\n faSyncAlt: faSyncAlt,\n faSpinner: faSpinner,\n faRobot: faRobot,\n faPeace: faPeace,\n faGears: faGears,\n faCogs: faCogs,\n faWarehouse: faWarehouse,\n faArrowUpRightDots: faArrowUpRightDots,\n faSplotch: faSplotch,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faDiceFour: faDiceFour,\n faSimCard: faSimCard,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faMercury: faMercury,\n faArrowTurnDown: faArrowTurnDown,\n faLevelDown: faLevelDown,\n faPersonFallingBurst: faPersonFallingBurst,\n faAward: faAward,\n faTicketSimple: faTicketSimple,\n faTicketAlt: faTicketAlt,\n faBuilding: faBuilding,\n faAnglesLeft: faAnglesLeft,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faQrcode: faQrcode,\n faClockRotateLeft: faClockRotateLeft,\n faHistory: faHistory,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faFileExport: faFileExport,\n faArrowRightFromFile: faArrowRightFromFile,\n faShield: faShield,\n faShieldBlank: faShieldBlank,\n faArrowUpShortWide: faArrowUpShortWide,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faHouseMedical: faHouseMedical,\n faGolfBallTee: faGolfBallTee,\n faGolfBall: faGolfBall,\n faCircleChevronLeft: faCircleChevronLeft,\n faChevronCircleLeft: faChevronCircleLeft,\n faHouseChimneyWindow: faHouseChimneyWindow,\n faPenNib: faPenNib,\n faTentArrowTurnLeft: faTentArrowTurnLeft,\n faTents: faTents,\n faWandMagic: faWandMagic,\n faMagic: faMagic,\n faDog: faDog,\n faCarrot: faCarrot,\n faMoon: faMoon,\n faWineGlassEmpty: faWineGlassEmpty,\n faWineGlassAlt: faWineGlassAlt,\n faCheese: faCheese,\n faYinYang: faYinYang,\n faMusic: faMusic,\n faCodeCommit: faCodeCommit,\n faTemperatureLow: faTemperatureLow,\n faPersonBiking: faPersonBiking,\n faBiking: faBiking,\n faBroom: faBroom,\n faShieldHeart: faShieldHeart,\n faGopuram: faGopuram,\n faEarthOceania: faEarthOceania,\n faGlobeOceania: faGlobeOceania,\n faSquareXmark: faSquareXmark,\n faTimesSquare: faTimesSquare,\n faXmarkSquare: faXmarkSquare,\n faHashtag: faHashtag,\n faUpRightAndDownLeftFromCenter: faUpRightAndDownLeftFromCenter,\n faExpandAlt: faExpandAlt,\n faOilCan: faOilCan,\n faT: faT,\n faHippo: faHippo,\n faChartColumn: faChartColumn,\n faInfinity: faInfinity,\n faVialCircleCheck: faVialCircleCheck,\n faPersonArrowDownToLine: faPersonArrowDownToLine,\n faVoicemail: faVoicemail,\n faFan: faFan,\n faPersonWalkingLuggage: faPersonWalkingLuggage,\n faUpDown: faUpDown,\n faArrowsAltV: faArrowsAltV,\n faCloudMoonRain: faCloudMoonRain,\n faCalendar: faCalendar,\n faTrailer: faTrailer,\n faBahai: faBahai,\n faHaykal: faHaykal,\n faSdCard: faSdCard,\n faDragon: faDragon,\n faShoePrints: faShoePrints,\n faCirclePlus: faCirclePlus,\n faPlusCircle: faPlusCircle,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faHandHolding: faHandHolding,\n faPlugCircleExclamation: faPlugCircleExclamation,\n faLinkSlash: faLinkSlash,\n faChainBroken: faChainBroken,\n faChainSlash: faChainSlash,\n faUnlink: faUnlink,\n faClone: faClone,\n faPersonWalkingArrowLoopLeft: faPersonWalkingArrowLoopLeft,\n faArrowUpZA: faArrowUpZA,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faFireFlameCurved: faFireFlameCurved,\n faFireAlt: faFireAlt,\n faTornado: faTornado,\n faFileCirclePlus: faFileCirclePlus,\n faBookQuran: faBookQuran,\n faQuran: faQuran,\n faAnchor: faAnchor,\n faBorderAll: faBorderAll,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faCookieBite: faCookieBite,\n faArrowTrendDown: faArrowTrendDown,\n faRss: faRss,\n faFeed: faFeed,\n faDrawPolygon: faDrawPolygon,\n faScaleBalanced: faScaleBalanced,\n faBalanceScale: faBalanceScale,\n faGaugeSimpleHigh: faGaugeSimpleHigh,\n faTachometer: faTachometer,\n faTachometerFast: faTachometerFast,\n faShower: faShower,\n faDesktop: faDesktop,\n faDesktopAlt: faDesktopAlt,\n faM: faM,\n faTableList: faTableList,\n faThList: faThList,\n faCommentSms: faCommentSms,\n faSms: faSms,\n faBook: faBook,\n faUserPlus: faUserPlus,\n faCheck: faCheck,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBattery4: faBattery4,\n faHouseCircleCheck: faHouseCircleCheck,\n faAngleLeft: faAngleLeft,\n faDiagramSuccessor: faDiagramSuccessor,\n faTruckArrowRight: faTruckArrowRight,\n faArrowsSplitUpAndLeft: faArrowsSplitUpAndLeft,\n faHandFist: faHandFist,\n faFistRaised: faFistRaised,\n faCloudMoon: faCloudMoon,\n faBriefcase: faBriefcase,\n faPersonFalling: faPersonFalling,\n faImagePortrait: faImagePortrait,\n faPortrait: faPortrait,\n faUserTag: faUserTag,\n faRug: faRug,\n faEarthEurope: faEarthEurope,\n faGlobeEurope: faGlobeEurope,\n faCartFlatbedSuitcase: faCartFlatbedSuitcase,\n faLuggageCart: faLuggageCart,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faBahtSign: faBahtSign,\n faBookOpen: faBookOpen,\n faBookJournalWhills: faBookJournalWhills,\n faJournalWhills: faJournalWhills,\n faHandcuffs: faHandcuffs,\n faTriangleExclamation: faTriangleExclamation,\n faExclamationTriangle: faExclamationTriangle,\n faWarning: faWarning,\n faDatabase: faDatabase,\n faShare: faShare,\n faMailForward: faMailForward,\n faBottleDroplet: faBottleDroplet,\n faMaskFace: faMaskFace,\n faHillRockslide: faHillRockslide,\n faRightLeft: faRightLeft,\n faExchangeAlt: faExchangeAlt,\n faPaperPlane: faPaperPlane,\n faRoadCircleExclamation: faRoadCircleExclamation,\n faDungeon: faDungeon,\n faAlignRight: faAlignRight,\n faMoneyBill1Wave: faMoneyBill1Wave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faLifeRing: faLifeRing,\n faHands: faHands,\n faSignLanguage: faSignLanguage,\n faSigning: faSigning,\n faCalendarDay: faCalendarDay,\n faWaterLadder: faWaterLadder,\n faLadderWater: faLadderWater,\n faSwimmingPool: faSwimmingPool,\n faArrowsUpDown: faArrowsUpDown,\n faArrowsV: faArrowsV,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faWheelchairMove: faWheelchairMove,\n faWheelchairAlt: faWheelchairAlt,\n faTurnDown: faTurnDown,\n faLevelDownAlt: faLevelDownAlt,\n faPersonWalkingArrowRight: faPersonWalkingArrowRight,\n faSquareEnvelope: faSquareEnvelope,\n faEnvelopeSquare: faEnvelopeSquare,\n faDice: faDice,\n faBowlingBall: faBowlingBall,\n faBrain: faBrain,\n faBandage: faBandage,\n faBandAid: faBandAid,\n faCalendarMinus: faCalendarMinus,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faGifts: faGifts,\n faHotel: faHotel,\n faEarthAsia: faEarthAsia,\n faGlobeAsia: faGlobeAsia,\n faIdCardClip: faIdCardClip,\n faIdCardAlt: faIdCardAlt,\n faMagnifyingGlassPlus: faMagnifyingGlassPlus,\n faSearchPlus: faSearchPlus,\n faThumbsUp: faThumbsUp,\n faUserClock: faUserClock,\n faHandDots: faHandDots,\n faAllergies: faAllergies,\n faFileInvoice: faFileInvoice,\n faWindowMinimize: faWindowMinimize,\n faMugSaucer: faMugSaucer,\n faCoffee: faCoffee,\n faBrush: faBrush,\n faMask: faMask,\n faMagnifyingGlassMinus: faMagnifyingGlassMinus,\n faSearchMinus: faSearchMinus,\n faRulerVertical: faRulerVertical,\n faUserLarge: faUserLarge,\n faUserAlt: faUserAlt,\n faTrainTram: faTrainTram,\n faUserNurse: faUserNurse,\n faSyringe: faSyringe,\n faCloudSun: faCloudSun,\n faStopwatch20: faStopwatch20,\n faSquareFull: faSquareFull,\n faMagnet: faMagnet,\n faJar: faJar,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faBugSlash: faBugSlash,\n faArrowUpFromWaterPump: faArrowUpFromWaterPump,\n faBone: faBone,\n faUserInjured: faUserInjured,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faPlane: faPlane,\n faTentArrowsDown: faTentArrowsDown,\n faExclamation: faExclamation,\n faArrowsSpin: faArrowsSpin,\n faPrint: faPrint,\n faTurkishLiraSign: faTurkishLiraSign,\n faTry: faTry,\n faTurkishLira: faTurkishLira,\n faDollarSign: faDollarSign,\n faDollar: faDollar,\n faUsd: faUsd,\n faX: faX,\n faMagnifyingGlassDollar: faMagnifyingGlassDollar,\n faSearchDollar: faSearchDollar,\n faUsersGear: faUsersGear,\n faUsersCog: faUsersCog,\n faPersonMilitaryPointing: faPersonMilitaryPointing,\n faBuildingColumns: faBuildingColumns,\n faBank: faBank,\n faInstitution: faInstitution,\n faMuseum: faMuseum,\n faUniversity: faUniversity,\n faUmbrella: faUmbrella,\n faTrowel: faTrowel,\n faD: faD,\n faStapler: faStapler,\n faMasksTheater: faMasksTheater,\n faTheaterMasks: faTheaterMasks,\n faKipSign: faKipSign,\n faHandPointLeft: faHandPointLeft,\n faHandshakeSimple: faHandshakeSimple,\n faHandshakeAlt: faHandshakeAlt,\n faJetFighter: faJetFighter,\n faFighterJet: faFighterJet,\n faSquareShareNodes: faSquareShareNodes,\n faShareAltSquare: faShareAltSquare,\n faBarcode: faBarcode,\n faPlusMinus: faPlusMinus,\n faVideo: faVideo,\n faVideoCamera: faVideoCamera,\n faGraduationCap: faGraduationCap,\n faMortarBoard: faMortarBoard,\n faHandHoldingMedical: faHandHoldingMedical,\n faPersonCircleCheck: faPersonCircleCheck,\n faTurnUp: faTurnUp,\n faLevelUpAlt: faLevelUpAlt\n};\n\nexport { icons as fas, prefix, fa0, fa1, fa2, fa3, fa4, fa5, fa6, fa7, fa8, fa9, faFillDrip, faArrowsToCircle, faCircleChevronRight, faChevronCircleRight, faAt, faTrashCan, faTrashAlt, faTextHeight, faUserXmark, faUserTimes, faStethoscope, faMessage, faCommentAlt, faInfo, faDownLeftAndUpRightToCenter, faCompressAlt, faExplosion, faFileLines, faFileAlt, faFileText, faWaveSquare, faRing, faBuildingUn, faDiceThree, faCalendarDays, faCalendarAlt, faAnchorCircleCheck, faBuildingCircleArrowRight, faVolleyball, faVolleyballBall, faArrowsUpToLine, faSortDown, faSortDesc, faCircleMinus, faMinusCircle, faDoorOpen, faRightFromBracket, faSignOutAlt, faAtom, faSoap, faIcons, faHeartMusicCameraBolt, faMicrophoneLinesSlash, faMicrophoneAltSlash, faBridgeCircleCheck, faPumpMedical, faFingerprint, faHandPointRight, faMagnifyingGlassLocation, faSearchLocation, faForwardStep, faStepForward, faFaceSmileBeam, faSmileBeam, faFlagCheckered, faFootball, faFootballBall, faSchoolCircleExclamation, faCrop, faAnglesDown, faAngleDoubleDown, faUsersRectangle, faPeopleRoof, faPeopleLine, faBeerMugEmpty, faBeer, faDiagramPredecessor, faArrowUpLong, faLongArrowUp, faFireFlameSimple, faBurn, faPerson, faMale, faLaptop, faFileCsv, faMenorah, faTruckPlane, faRecordVinyl, faFaceGrinStars, faGrinStars, faBong, faSpaghettiMonsterFlying, faPastafarianism, faArrowDownUpAcrossLine, faSpoon, faUtensilSpoon, faJarWheat, faEnvelopesBulk, faMailBulk, faFileCircleExclamation, faCircleH, faHospitalSymbol, faPager, faAddressBook, faContactBook, faStrikethrough, faK, faLandmarkFlag, faPencil, faPencilAlt, faBackward, faCaretRight, faComments, faPaste, faFileClipboard, faCodePullRequest, faClipboardList, faTruckRampBox, faTruckLoading, faUserCheck, faVialVirus, faSheetPlastic, faBlog, faUserNinja, faPersonArrowUpFromLine, faScrollTorah, faTorah, faBroomBall, faQuidditch, faQuidditchBroomBall, faToggleOff, faBoxArchive, faArchive, faPersonDrowning, faArrowDown91, faSortNumericDesc, faSortNumericDownAlt, faFaceGrinTongueSquint, faGrinTongueSquint, faSprayCan, faTruckMonster, faW, faEarthAfrica, faGlobeAfrica, faRainbow, faCircleNotch, faTabletScreenButton, faTabletAlt, faPaw, faCloud, faTrowelBricks, faFaceFlushed, faFlushed, faHospitalUser, faTentArrowLeftRight, faGavel, faLegal, faBinoculars, faMicrophoneSlash, faBoxTissue, faMotorcycle, faBellConcierge, faConciergeBell, faPenRuler, faPencilRuler, faPeopleArrows, faPeopleArrowsLeftRight, faMarsAndVenusBurst, faSquareCaretRight, faCaretSquareRight, faScissors, faCut, faSunPlantWilt, faToiletsPortable, faHockeyPuck, faTable, faMagnifyingGlassArrowRight, faTachographDigital, faDigitalTachograph, faUsersSlash, faClover, faReply, faMailReply, faStarAndCrescent, faHouseFire, faSquareMinus, faMinusSquare, faHelicopter, faCompass, faSquareCaretDown, faCaretSquareDown, faFileCircleQuestion, faLaptopCode, faSwatchbook, faPrescriptionBottle, faBars, faNavicon, faPeopleGroup, faHourglassEnd, faHourglass3, faHeartCrack, faHeartBroken, faSquareUpRight, faExternalLinkSquareAlt, faFaceKissBeam, faKissBeam, faFilm, faRulerHorizontal, faPeopleRobbery, faLightbulb, faCaretLeft, faCircleExclamation, faExclamationCircle, faSchoolCircleXmark, faArrowRightFromBracket, faSignOut, faCircleChevronDown, faChevronCircleDown, faUnlockKeyhole, faUnlockAlt, faCloudShowersHeavy, faHeadphonesSimple, faHeadphonesAlt, faSitemap, faCircleDollarToSlot, faDonate, faMemory, faRoadSpikes, faFireBurner, faFlag, faHanukiah, faFeather, faVolumeLow, faVolumeDown, faCommentSlash, faCloudSunRain, faCompress, faWheatAwn, faWheatAlt, faAnkh, faHandsHoldingChild, faAsterisk, faSquareCheck, faCheckSquare, faPesetaSign, faHeading, faHeader, faGhost, faList, faListSquares, faSquarePhoneFlip, faPhoneSquareAlt, faCartPlus, faGamepad, faCircleDot, faDotCircle, faFaceDizzy, faDizzy, faEgg, faHouseMedicalCircleXmark, faCampground, faFolderPlus, faFutbol, faFutbolBall, faSoccerBall, faPaintbrush, faPaintBrush, faLock, faGasPump, faHotTubPerson, faHotTub, faMapLocation, faMapMarked, faHouseFloodWater, faTree, faBridgeLock, faSackDollar, faPenToSquare, faEdit, faCarSide, faShareNodes, faShareAlt, faHeartCircleMinus, faHourglassHalf, faHourglass2, faMicroscope, faSink, faBagShopping, faShoppingBag, faArrowDownZA, faSortAlphaDesc, faSortAlphaDownAlt, faMitten, faPersonRays, faUsers, faEyeSlash, faFlaskVial, faHand, faHandPaper, faOm, faWorm, faHouseCircleXmark, faPlug, faChevronUp, faHandSpock, faStopwatch, faFaceKiss, faKiss, faBridgeCircleXmark, faFaceGrinTongue, faGrinTongue, faChessBishop, faFaceGrinWink, faGrinWink, faEarDeaf, faDeaf, faDeafness, faHardOfHearing, faRoadCircleCheck, faDiceFive, faSquareRss, faRssSquare, faLandMineOn, faICursor, faStamp, faStairs, faI, faHryvniaSign, faHryvnia, faPills, faFaceGrinWide, faGrinAlt, faTooth, faV, faBangladeshiTakaSign, faBicycle, faStaffSnake, faRodAsclepius, faRodSnake, faStaffAesculapius, faHeadSideCoughSlash, faTruckMedical, faAmbulance, faWheatAwnCircleExclamation, faSnowman, faMortarPestle, faRoadBarrier, faSchool, faIgloo, faJoint, faAngleRight, faHorse, faQ, faG, faNotesMedical, faTemperatureHalf, faTemperature2, faThermometer2, faThermometerHalf, faDongSign, faCapsules, faPooStorm, faPooBolt, faFaceFrownOpen, faFrownOpen, faHandPointUp, faMoneyBill, faBookmark, faAlignJustify, faUmbrellaBeach, faHelmetUn, faBullseye, faBacon, faHandPointDown, faArrowUpFromBracket, faFolder, faFolderBlank, faFileWaveform, faFileMedicalAlt, faRadiation, faChartSimple, faMarsStroke, faVial, faGauge, faDashboard, faGaugeMed, faTachometerAltAverage, faWandMagicSparkles, faMagicWandSparkles, faE, faPenClip, faPenAlt, faBridgeCircleExclamation, faUser, faSchoolCircleCheck, faDumpster, faVanShuttle, faShuttleVan, faBuildingUser, faSquareCaretLeft, faCaretSquareLeft, faHighlighter, faKey, faBullhorn, faGlobe, faSynagogue, faPersonHalfDress, faRoadBridge, faLocationArrow, faC, faTabletButton, faBuildingLock, faPizzaSlice, faMoneyBillWave, faChartArea, faAreaChart, faHouseFlag, faPersonCircleMinus, faBan, faCancel, faCameraRotate, faSprayCanSparkles, faAirFreshener, faStar, faRepeat, faCross, faBox, faVenusMars, faArrowPointer, faMousePointer, faMaximize, faExpandArrowsAlt, faChargingStation, faShapes, faTriangleCircleSquare, faShuffle, faRandom, faPersonRunning, faRunning, faMobileRetro, faGripLinesVertical, faSpider, faHandsBound, faFileInvoiceDollar, faPlaneCircleExclamation, faXRay, faSpellCheck, faSlash, faComputerMouse, faMouse, faArrowRightToBracket, faSignIn, faShopSlash, faStoreAltSlash, faServer, faVirusCovidSlash, faShopLock, faHourglassStart, faHourglass1, faBlenderPhone, faBuildingWheat, faPersonBreastfeeding, faRightToBracket, faSignInAlt, faVenus, faPassport, faHeartPulse, faHeartbeat, faPeopleCarryBox, faPeopleCarry, faTemperatureHigh, faMicrochip, faCrown, faWeightHanging, faXmarksLines, faFilePrescription, faWeightScale, faWeight, faUserGroup, faUserFriends, faArrowUpAZ, faSortAlphaUp, faChessKnight, faFaceLaughSquint, faLaughSquint, faWheelchair, faCircleArrowUp, faArrowCircleUp, faToggleOn, faPersonWalking, faWalking, faL, faFire, faBedPulse, faProcedures, faShuttleSpace, faSpaceShuttle, faFaceLaugh, faLaugh, faFolderOpen, faHeartCirclePlus, faCodeFork, faCity, faMicrophoneLines, faMicrophoneAlt, faPepperHot, faUnlock, faColonSign, faHeadset, faStoreSlash, faRoadCircleXmark, faUserMinus, faMarsStrokeUp, faMarsStrokeV, faChampagneGlasses, faGlassCheers, faClipboard, faHouseCircleExclamation, faFileArrowUp, faFileUpload, faWifi, faWifi3, faWifiStrong, faBath, faBathtub, faUnderline, faUserPen, faUserEdit, faSignature, faStroopwafel, faBold, faAnchorLock, faBuildingNgo, faManatSign, faNotEqual, faBorderTopLeft, faBorderStyle, faMapLocationDot, faMapMarkedAlt, faJedi, faSquarePollVertical, faPoll, faMugHot, faCarBattery, faBatteryCar, faGift, faDiceTwo, faChessQueen, faGlasses, faChessBoard, faBuildingCircleCheck, faPersonChalkboard, faMarsStrokeRight, faMarsStrokeH, faHandBackFist, faHandRock, faSquareCaretUp, faCaretSquareUp, faCloudShowersWater, faChartBar, faBarChart, faHandsBubbles, faHandsWash, faLessThanEqual, faTrain, faEyeLowVision, faLowVision, faCrow, faSailboat, faWindowRestore, faSquarePlus, faPlusSquare, faToriiGate, faFrog, faBucket, faImage, faMicrophone, faCow, faCaretUp, faScrewdriver, faFolderClosed, faHouseTsunami, faSquareNfi, faArrowUpFromGroundWater, faMartiniGlass, faGlassMartiniAlt, faRotateLeft, faRotateBack, faRotateBackward, faUndoAlt, faTableColumns, faColumns, faLemon, faHeadSideMask, faHandshake, faGem, faDolly, faDollyBox, faSmoking, faMinimize, faCompressArrowsAlt, faMonument, faSnowplow, faAnglesRight, faAngleDoubleRight, faCannabis, faCirclePlay, faPlayCircle, faTablets, faEthernet, faEuroSign, faEur, faEuro, faChair, faCircleCheck, faCheckCircle, faCircleStop, faStopCircle, faCompassDrafting, faDraftingCompass, faPlateWheat, faIcicles, faPersonShelter, faNeuter, faIdBadge, faMarker, faFaceLaughBeam, faLaughBeam, faHelicopterSymbol, faUniversalAccess, faCircleChevronUp, faChevronCircleUp, faLariSign, faVolcano, faPersonWalkingDashedLineArrowRight, faSterlingSign, faGbp, faPoundSign, faViruses, faSquarePersonConfined, faUserTie, faArrowDownLong, faLongArrowDown, faTentArrowDownToLine, faCertificate, faReplyAll, faMailReplyAll, faSuitcase, faPersonSkating, faSkating, faFilterCircleDollar, faFunnelDollar, faCameraRetro, faCircleArrowDown, faArrowCircleDown, faFileImport, faArrowRightToFile, faSquareArrowUpRight, faExternalLinkSquare, faBoxOpen, faScroll, faSpa, faLocationPinLock, faPause, faHillAvalanche, faTemperatureEmpty, faTemperature0, faThermometer0, faThermometerEmpty, faBomb, faRegistered, faAddressCard, faContactCard, faVcard, faScaleUnbalancedFlip, faBalanceScaleRight, faSubscript, faDiamondTurnRight, faDirections, faBurst, faHouseLaptop, faLaptopHouse, faFaceTired, faTired, faMoneyBills, faSmog, faCrutch, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faCloudArrowUp, faCloudUpload, faCloudUploadAlt, faPalette, faArrowsTurnRight, faVest, faFerry, faArrowsDownToPeople, faSeedling, faSprout, faLeftRight, faArrowsAltH, faBoxesPacking, faCircleArrowLeft, faArrowCircleLeft, faGroupArrowsRotate, faBowlFood, faCandyCane, faArrowDownWideShort, faSortAmountAsc, faSortAmountDown, faCloudBolt, faThunderstorm, faTextSlash, faRemoveFormat, faFaceSmileWink, faSmileWink, faFileWord, faFilePowerpoint, faArrowsLeftRight, faArrowsH, faHouseLock, faCloudArrowDown, faCloudDownload, faCloudDownloadAlt, faChildren, faChalkboard, faBlackboard, faUserLargeSlash, faUserAltSlash, faEnvelopeOpen, faHandshakeSimpleSlash, faHandshakeAltSlash, faMattressPillow, faGuaraniSign, faArrowsRotate, faRefresh, faSync, faFireExtinguisher, faCruzeiroSign, faGreaterThanEqual, faShieldHalved, faShieldAlt, faBookAtlas, faAtlas, faVirus, faEnvelopeCircleCheck, faLayerGroup, faArrowsToDot, faArchway, faHeartCircleCheck, faHouseChimneyCrack, faHouseDamage, faFileZipper, faFileArchive, faSquare, faMartiniGlassEmpty, faGlassMartini, faCouch, faCediSign, faItalic, faChurch, faCommentsDollar, faDemocrat, faZ, faPersonSkiing, faSkiing, faRoadLock, faA, faTemperatureArrowDown, faTemperatureDown, faFeatherPointed, faFeatherAlt, faP, faSnowflake, faNewspaper, faRectangleAd, faAd, faCircleArrowRight, faArrowCircleRight, faFilterCircleXmark, faLocust, faSort, faUnsorted, faListOl, faList12, faListNumeric, faPersonDressBurst, faMoneyCheckDollar, faMoneyCheckAlt, faVectorSquare, faBreadSlice, faLanguage, faFaceKissWinkHeart, faKissWinkHeart, faFilter, faQuestion, faFileSignature, faUpDownLeftRight, faArrowsAlt, faHouseChimneyUser, faHandHoldingHeart, faPuzzlePiece, faMoneyCheck, faStarHalfStroke, faStarHalfAlt, faCode, faWhiskeyGlass, faGlassWhiskey, faBuildingCircleExclamation, faMagnifyingGlassChart, faArrowUpRightFromSquare, faExternalLink, faCubesStacked, faWonSign, faKrw, faWon, faVirusCovid, faAustralSign, faF, faLeaf, faRoad, faTaxi, faCab, faPersonCirclePlus, faChartPie, faPieChart, faBoltLightning, faSackXmark, faFileExcel, faFileContract, faFishFins, faBuildingFlag, faFaceGrinBeam, faGrinBeam, faObjectUngroup, faPoop, faLocationPin, faMapMarker, faKaaba, faToiletPaper, faHelmetSafety, faHardHat, faHatHard, faEject, faCircleRight, faArrowAltCircleRight, faPlaneCircleCheck, faFaceRollingEyes, faMehRollingEyes, faObjectGroup, faChartLine, faLineChart, faMaskVentilator, faArrowRight, faSignsPost, faMapSigns, faCashRegister, faPersonCircleQuestion, faH, faTarp, faScrewdriverWrench, faTools, faArrowsToEye, faPlugCircleBolt, faHeart, faMarsAndVenus, faHouseUser, faHomeUser, faDumpsterFire, faHouseCrack, faMartiniGlassCitrus, faCocktail, faFaceSurprise, faSurprise, faBottleWater, faCirclePause, faPauseCircle, faToiletPaperSlash, faAppleWhole, faAppleAlt, faKitchenSet, faR, faTemperatureQuarter, faTemperature1, faThermometer1, faThermometerQuarter, faCube, faBitcoinSign, faShieldDog, faSolarPanel, faLockOpen, faElevator, faMoneyBillTransfer, faMoneyBillTrendUp, faHouseFloodWaterCircleArrowRight, faSquarePollHorizontal, faPollH, faCircle, faBackwardFast, faFastBackward, faRecycle, faUserAstronaut, faPlaneSlash, faTrademark, faBasketball, faBasketballBall, faSatelliteDish, faCircleUp, faArrowAltCircleUp, faMobileScreenButton, faMobileAlt, faVolumeHigh, faVolumeUp, faUsersRays, faWallet, faClipboardCheck, faFileAudio, faBurger, faHamburger, faWrench, faBugs, faRupeeSign, faRupee, faFileImage, faCircleQuestion, faQuestionCircle, faPlaneDeparture, faHandshakeSlash, faBookBookmark, faCodeBranch, faHatCowboy, faBridge, faPhoneFlip, faPhoneAlt, faTruckFront, faCat, faAnchorCircleExclamation, faTruckField, faRoute, faClipboardQuestion, faPanorama, faCommentMedical, faTeethOpen, faFileCircleMinus, faTags, faWineGlass, faForwardFast, faFastForward, faFaceMehBlank, faMehBlank, faSquareParking, faParking, faHouseSignal, faBarsProgress, faTasksAlt, faFaucetDrip, faCartFlatbed, faDollyFlatbed, faBanSmoking, faSmokingBan, faTerminal, faMobileButton, faHouseMedicalFlag, faBasketShopping, faShoppingBasket, faTape, faBusSimple, faBusAlt, faEye, faFaceSadCry, faSadCry, faAudioDescription, faPersonMilitaryToPerson, faFileShield, faUserSlash, faPen, faTowerObservation, faFileCode, faSignal, faSignal5, faSignalPerfect, faBus, faHeartCircleXmark, faHouseChimney, faHomeLg, faWindowMaximize, faFaceFrown, faFrown, faPrescription, faShop, faStoreAlt, faFloppyDisk, faSave, faVihara, faScaleUnbalanced, faBalanceScaleLeft, faSortUp, faSortAsc, faCommentDots, faCommenting, faPlantWilt, faDiamond, faFaceGrinSquint, faGrinSquint, faHandHoldingDollar, faHandHoldingUsd, faBacterium, faHandPointer, faDrumSteelpan, faHandScissors, faHandsPraying, faPrayingHands, faArrowRotateRight, faArrowRightRotate, faArrowRotateForward, faRedo, faBiohazard, faLocationCrosshairs, faLocation, faMarsDouble, faChildDress, faUsersBetweenLines, faLungsVirus, faFaceGrinTears, faGrinTears, faPhone, faCalendarXmark, faCalendarTimes, faChildReaching, faHeadSideVirus, faUserGear, faUserCog, faArrowUp19, faSortNumericUp, faDoorClosed, faShieldVirus, faDiceSix, faMosquitoNet, faBridgeWater, faPersonBooth, faTextWidth, faHatWizard, faPenFancy, faPersonDigging, faDigging, faTrash, faGaugeSimple, faGaugeSimpleMed, faTachometerAverage, faBookMedical, faPoo, faQuoteRight, faQuoteRightAlt, faShirt, faTShirt, faTshirt, faCubes, faDivide, faTengeSign, faTenge, faHeadphones, faHandsHolding, faHandsClapping, faRepublican, faArrowLeft, faPersonCircleXmark, faRuler, faAlignLeft, faDiceD6, faRestroom, faJ, faUsersViewfinder, faFileVideo, faUpRightFromSquare, faExternalLinkAlt, faTableCells, faTh, faFilePdf, faBookBible, faBible, faO, faSuitcaseMedical, faMedkit, faUserSecret, faOtter, faPersonDress, faFemale, faCommentDollar, faBusinessTime, faBriefcaseClock, faTableCellsLarge, faThLarge, faBookTanakh, faTanakh, faPhoneVolume, faVolumeControlPhone, faHatCowboySide, faClipboardUser, faChild, faLiraSign, faSatellite, faPlaneLock, faTag, faComment, faCakeCandles, faBirthdayCake, faCake, faEnvelope, faAnglesUp, faAngleDoubleUp, faPaperclip, faArrowRightToCity, faRibbon, faLungs, faArrowUp91, faSortNumericUpAlt, faLitecoinSign, faBorderNone, faCircleNodes, faParachuteBox, faIndent, faTruckFieldUn, faHourglass, faHourglassEmpty, faMountain, faUserDoctor, faUserMd, faCircleInfo, faInfoCircle, faCloudMeatball, faCamera, faCameraAlt, faSquareVirus, faMeteor, faCarOn, faSleigh, faArrowDown19, faSortNumericAsc, faSortNumericDown, faHandHoldingDroplet, faHandHoldingWater, faWater, faCalendarCheck, faBraille, faPrescriptionBottleMedical, faPrescriptionBottleAlt, faLandmark, faTruck, faCrosshairs, faPersonCane, faTent, faVestPatches, faCheckDouble, faArrowDownAZ, faSortAlphaAsc, faSortAlphaDown, faMoneyBillWheat, faCookie, faArrowRotateLeft, faArrowLeftRotate, faArrowRotateBack, faArrowRotateBackward, faUndo, faHardDrive, faHdd, faFaceGrinSquintTears, faGrinSquintTears, faDumbbell, faRectangleList, faListAlt, faTarpDroplet, faHouseMedicalCircleCheck, faPersonSkiingNordic, faSkiingNordic, faCalendarPlus, faPlaneArrival, faCircleLeft, faArrowAltCircleLeft, faTrainSubway, faSubway, faChartGantt, faIndianRupeeSign, faIndianRupee, faInr, faCropSimple, faCropAlt, faMoneyBill1, faMoneyBillAlt, faLeftLong, faLongArrowAltLeft, faDna, faVirusSlash, faMinus, faSubtract, faChess, faArrowLeftLong, faLongArrowLeft, faPlugCircleCheck, faStreetView, faFrancSign, faVolumeOff, faHandsAslInterpreting, faAmericanSignLanguageInterpreting, faAslInterpreting, faHandsAmericanSignLanguageInterpreting, faGear, faCog, faDropletSlash, faTintSlash, faMosque, faMosquito, faStarOfDavid, faPersonMilitaryRifle, faCartShopping, faShoppingCart, faVials, faPlugCirclePlus, faPlaceOfWorship, faGripVertical, faArrowTurnUp, faLevelUp, faU, faSquareRootVariable, faSquareRootAlt, faClock, faClockFour, faBackwardStep, faStepBackward, faPallet, faFaucet, faBaseballBatBall, faS, faTimeline, faKeyboard, faCaretDown, faHouseChimneyMedical, faClinicMedical, faTemperatureThreeQuarters, faTemperature3, faThermometer3, faThermometerThreeQuarters, faMobileScreen, faMobileAndroidAlt, faPlaneUp, faPiggyBank, faBatteryHalf, faBattery3, faMountainCity, faCoins, faKhanda, faSliders, faSlidersH, faFolderTree, faNetworkWired, faMapPin, faHamsa, faCentSign, faFlask, faPersonPregnant, faWandSparkles, faEllipsisVertical, faEllipsisV, faTicket, faPowerOff, faRightLong, faLongArrowAltRight, faFlagUsa, faLaptopFile, faTty, faTeletype, faDiagramNext, faPersonRifle, faHouseMedicalCircleExclamation, faClosedCaptioning, faPersonHiking, faHiking, faVenusDouble, faImages, faCalculator, faPeoplePulling, faN, faCableCar, faTram, faCloudRain, faBuildingCircleXmark, faShip, faArrowsDownToLine, faDownload, faFaceGrin, faGrin, faDeleteLeft, faBackspace, faEyeDropper, faEyeDropperEmpty, faEyedropper, faFileCircleCheck, faForward, faMobile, faMobileAndroid, faMobilePhone, faFaceMeh, faMeh, faAlignCenter, faBookSkull, faBookDead, faIdCard, faDriversLicense, faOutdent, faDedent, faHeartCircleExclamation, faHouse, faHome, faHomeAlt, faHomeLgAlt, faCalendarWeek, faLaptopMedical, faB, faFileMedical, faDiceOne, faKiwiBird, faArrowRightArrowLeft, faExchange, faRotateRight, faRedoAlt, faRotateForward, faUtensils, faCutlery, faArrowUpWideShort, faSortAmountUp, faMillSign, faBowlRice, faSkull, faTowerBroadcast, faBroadcastTower, faTruckPickup, faUpLong, faLongArrowAltUp, faStop, faCodeMerge, faUpload, faHurricane, faMound, faToiletPortable, faCompactDisc, faFileArrowDown, faFileDownload, faCaravan, faShieldCat, faBolt, faZap, faGlassWater, faOilWell, faVault, faMars, faToilet, faPlaneCircleXmark, faYenSign, faCny, faJpy, faRmb, faYen, faRubleSign, faRouble, faRub, faRuble, faSun, faGuitar, faFaceLaughWink, faLaughWink, faHorseHead, faBoreHole, faIndustry, faCircleDown, faArrowAltCircleDown, faArrowsTurnToDots, faFlorinSign, faArrowDownShortWide, faSortAmountDesc, faSortAmountDownAlt, faLessThan, faAngleDown, faCarTunnel, faHeadSideCough, faGripLines, faThumbsDown, faUserLock, faArrowRightLong, faLongArrowRight, faAnchorCircleXmark, faEllipsis, faEllipsisH, faChessPawn, faKitMedical, faFirstAid, faPersonThroughWindow, faToolbox, faHandsHoldingCircle, faBug, faCreditCard, faCreditCardAlt, faCar, faAutomobile, faHandHoldingHand, faBookOpenReader, faBookReader, faMountainSun, faArrowsLeftRightToLine, faDiceD20, faTruckDroplet, faFileCircleXmark, faTemperatureArrowUp, faTemperatureUp, faMedal, faBed, faSquareH, faHSquare, faPodcast, faTemperatureFull, faTemperature4, faThermometer4, faThermometerFull, faBell, faSuperscript, faPlugCircleXmark, faStarOfLife, faPhoneSlash, faPaintRoller, faHandshakeAngle, faHandsHelping, faLocationDot, faMapMarkerAlt, faFile, faGreaterThan, faPersonSwimming, faSwimmer, faArrowDown, faDroplet, faTint, faEraser, faEarthAmericas, faEarth, faEarthAmerica, faGlobeAmericas, faPersonBurst, faDove, faBatteryEmpty, faBattery0, faSocks, faInbox, faSection, faGaugeHigh, faTachometerAlt, faTachometerAltFast, faEnvelopeOpenText, faHospital, faHospitalAlt, faHospitalWide, faWineBottle, faChessRook, faBarsStaggered, faReorder, faStream, faDharmachakra, faHotdog, faPersonWalkingWithCane, faBlind, faDrum, faIceCream, faHeartCircleBolt, faFax, faParagraph, faCheckToSlot, faVoteYea, faStarHalf, faBoxesStacked, faBoxes, faBoxesAlt, faLink, faChain, faEarListen, faAssistiveListeningSystems, faTreeCity, faPlay, faFont, faRupiahSign, faMagnifyingGlass, faSearch, faTableTennisPaddleBall, faPingPongPaddleBall, faTableTennis, faPersonDotsFromLine, faDiagnoses, faTrashCanArrowUp, faTrashRestoreAlt, faNairaSign, faCartArrowDown, faWalkieTalkie, faFilePen, faFileEdit, faReceipt, faSquarePen, faPenSquare, faPencilSquare, faSuitcaseRolling, faPersonCircleExclamation, faChevronDown, faBatteryFull, faBattery, faBattery5, faSkullCrossbones, faCodeCompare, faListUl, faListDots, faSchoolLock, faTowerCell, faDownLong, faLongArrowAltDown, faRankingStar, faChessKing, faPersonHarassing, faBrazilianRealSign, faLandmarkDome, faLandmarkAlt, faArrowUp, faTv, faTelevision, faTvAlt, faShrimp, faListCheck, faTasks, faJugDetergent, faCircleUser, faUserCircle, faUserShield, faWind, faCarBurst, faCarCrash, faY, faPersonSnowboarding, faSnowboarding, faTruckFast, faShippingFast, faFish, faUserGraduate, faCircleHalfStroke, faAdjust, faClapperboard, faCircleRadiation, faRadiationAlt, faBaseball, faBaseballBall, faJetFighterUp, faDiagramProject, faProjectDiagram, faCopy, faVolumeXmark, faVolumeMute, faVolumeTimes, faHandSparkles, faGrip, faGripHorizontal, faShareFromSquare, faShareSquare, faChildCombatant, faChildRifle, faGun, faSquarePhone, faPhoneSquare, faPlus, faAdd, faExpand, faComputer, faXmark, faClose, faMultiply, faRemove, faTimes, faArrowsUpDownLeftRight, faArrows, faChalkboardUser, faChalkboardTeacher, faPesoSign, faBuildingShield, faBaby, faUsersLine, faQuoteLeft, faQuoteLeftAlt, faTractor, faTrashArrowUp, faTrashRestore, faArrowDownUpLock, faLinesLeaning, faRulerCombined, faCopyright, faEquals, faBlender, faTeeth, faShekelSign, faIls, faShekel, faSheqel, faSheqelSign, faMap, faRocket, faPhotoFilm, faPhotoVideo, faFolderMinus, faStore, faArrowTrendUp, faPlugCircleMinus, faSignHanging, faSign, faBezierCurve, faBellSlash, faTablet, faTabletAndroid, faSchoolFlag, faFill, faAngleUp, faDrumstickBite, faHollyBerry, faChevronLeft, faBacteria, faHandLizard, faNotdef, faDisease, faBriefcaseMedical, faGenderless, faChevronRight, faRetweet, faCarRear, faCarAlt, faPumpSoap, faVideoSlash, faBatteryQuarter, faBattery2, faRadio, faBabyCarriage, faCarriageBaby, faTrafficLight, faThermometer, faVrCardboard, faHandMiddleFinger, faPercent, faPercentage, faTruckMoving, faGlassWaterDroplet, faDisplay, faFaceSmile, faSmile, faThumbtack, faThumbTack, faTrophy, faPersonPraying, faPray, faHammer, faHandPeace, faRotate, faSyncAlt, faSpinner, faRobot, faPeace, faGears, faCogs, faWarehouse, faArrowUpRightDots, faSplotch, faFaceGrinHearts, faGrinHearts, faDiceFour, faSimCard, faTransgender, faTransgenderAlt, faMercury, faArrowTurnDown, faLevelDown, faPersonFallingBurst, faAward, faTicketSimple, faTicketAlt, faBuilding, faAnglesLeft, faAngleDoubleLeft, faQrcode, faClockRotateLeft, faHistory, faFaceGrinBeamSweat, faGrinBeamSweat, faFileExport, faArrowRightFromFile, faShield, faShieldBlank, faArrowUpShortWide, faSortAmountUpAlt, faHouseMedical, faGolfBallTee, faGolfBall, faCircleChevronLeft, faChevronCircleLeft, faHouseChimneyWindow, faPenNib, faTentArrowTurnLeft, faTents, faWandMagic, faMagic, faDog, faCarrot, faMoon, faWineGlassEmpty, faWineGlassAlt, faCheese, faYinYang, faMusic, faCodeCommit, faTemperatureLow, faPersonBiking, faBiking, faBroom, faShieldHeart, faGopuram, faEarthOceania, faGlobeOceania, faSquareXmark, faTimesSquare, faXmarkSquare, faHashtag, faUpRightAndDownLeftFromCenter, faExpandAlt, faOilCan, faT, faHippo, faChartColumn, faInfinity, faVialCircleCheck, faPersonArrowDownToLine, faVoicemail, faFan, faPersonWalkingLuggage, faUpDown, faArrowsAltV, faCloudMoonRain, faCalendar, faTrailer, faBahai, faHaykal, faSdCard, faDragon, faShoePrints, faCirclePlus, faPlusCircle, faFaceGrinTongueWink, faGrinTongueWink, faHandHolding, faPlugCircleExclamation, faLinkSlash, faChainBroken, faChainSlash, faUnlink, faClone, faPersonWalkingArrowLoopLeft, faArrowUpZA, faSortAlphaUpAlt, faFireFlameCurved, faFireAlt, faTornado, faFileCirclePlus, faBookQuran, faQuran, faAnchor, faBorderAll, faFaceAngry, faAngry, faCookieBite, faArrowTrendDown, faRss, faFeed, faDrawPolygon, faScaleBalanced, faBalanceScale, faGaugeSimpleHigh, faTachometer, faTachometerFast, faShower, faDesktop, faDesktopAlt, faM, faTableList, faThList, faCommentSms, faSms, faBook, faUserPlus, faCheck, faBatteryThreeQuarters, faBattery4, faHouseCircleCheck, faAngleLeft, faDiagramSuccessor, faTruckArrowRight, faArrowsSplitUpAndLeft, faHandFist, faFistRaised, faCloudMoon, faBriefcase, faPersonFalling, faImagePortrait, faPortrait, faUserTag, faRug, faEarthEurope, faGlobeEurope, faCartFlatbedSuitcase, faLuggageCart, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faBahtSign, faBookOpen, faBookJournalWhills, faJournalWhills, faHandcuffs, faTriangleExclamation, faExclamationTriangle, faWarning, faDatabase, faShare, faMailForward, faBottleDroplet, faMaskFace, faHillRockslide, faRightLeft, faExchangeAlt, faPaperPlane, faRoadCircleExclamation, faDungeon, faAlignRight, faMoneyBill1Wave, faMoneyBillWaveAlt, faLifeRing, faHands, faSignLanguage, faSigning, faCalendarDay, faWaterLadder, faLadderWater, faSwimmingPool, faArrowsUpDown, faArrowsV, faFaceGrimace, faGrimace, faWheelchairMove, faWheelchairAlt, faTurnDown, faLevelDownAlt, faPersonWalkingArrowRight, faSquareEnvelope, faEnvelopeSquare, faDice, faBowlingBall, faBrain, faBandage, faBandAid, faCalendarMinus, faCircleXmark, faTimesCircle, faXmarkCircle, faGifts, faHotel, faEarthAsia, faGlobeAsia, faIdCardClip, faIdCardAlt, faMagnifyingGlassPlus, faSearchPlus, faThumbsUp, faUserClock, faHandDots, faAllergies, faFileInvoice, faWindowMinimize, faMugSaucer, faCoffee, faBrush, faMask, faMagnifyingGlassMinus, faSearchMinus, faRulerVertical, faUserLarge, faUserAlt, faTrainTram, faUserNurse, faSyringe, faCloudSun, faStopwatch20, faSquareFull, faMagnet, faJar, faNoteSticky, faStickyNote, faBugSlash, faArrowUpFromWaterPump, faBone, faUserInjured, faFaceSadTear, faSadTear, faPlane, faTentArrowsDown, faExclamation, faArrowsSpin, faPrint, faTurkishLiraSign, faTry, faTurkishLira, faDollarSign, faDollar, faUsd, faX, faMagnifyingGlassDollar, faSearchDollar, faUsersGear, faUsersCog, faPersonMilitaryPointing, faBuildingColumns, faBank, faInstitution, faMuseum, faUniversity, faUmbrella, faTrowel, faD, faStapler, faMasksTheater, faTheaterMasks, faKipSign, faHandPointLeft, faHandshakeSimple, faHandshakeAlt, faJetFighter, faFighterJet, faSquareShareNodes, faShareAltSquare, faBarcode, faPlusMinus, faVideo, faVideoCamera, faGraduationCap, faMortarBoard, faHandHoldingMedical, faPersonCircleCheck, faTurnUp, faLevelUpAlt };\n","import React, { useEffect, useState } from 'react'\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\n\r\nconst AuthenticateImage = () => {\r\n const [authenticateImage, setAuthenticateImage] = useState([]);\r\n const [isloading, setIsLoading] = useState(false);\r\n const getAuthenticateImage = () => {\r\n \r\n let getRes = (res) => {\r\n // localStorage.setItem(\"userData\", res?.data?.user);\r\n setAuthenticateImage(res.appImage);\r\n // console.log(res.socialMediaLinks)\r\n };\r\n \r\n callApi(\"GET\", routes.authenticateAppImage, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n \r\n getAuthenticateImage();\r\n }, []);\r\n return (\r\n <>\r\n\r\n
\r\n \"Login\r\n
\r\n

Welcome to Your Personalized Fitness Journey!

\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam varius vehicula malesuada. Proin vehicula erat massa, vitae dictum ex bibendum ut. Aenean aliquam hendrerit dui a varius.

\r\n
\r\n {/*
\r\n \"\"\r\n
\r\n
\r\n \"\"\r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default AuthenticateImage","import React, { useEffect, useState } from \"react\";\r\nimport \"./login.css\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faEye, faEyeSlash } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Link, useNavigate } from \"react-router-dom\";\r\nimport AuthenticateImage from \"./AuthenticateImage\";\r\nimport { callApi } from \"../../Api/ApiCaller\";\r\nimport routes from \"../../Api/routes\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { FacebookLogin } from \"facebook-login-react\";\r\nconst Login = ({ setuserlogged }) => {\r\n const [email, setEmail] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [isloading, setisloading] = useState(false);\r\n\r\n const navigate = useNavigate();\r\n\r\n const handleChangeemail = (e) => {\r\n setEmail(e.target.value);\r\n };\r\n const handleChangePassword = (e) => {\r\n setPassword(e.target.value);\r\n };\r\n const togglePasswordVisibility = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n // const handlelogin = (e) => {\r\n // e.preventDefault();\r\n\r\n \r\n // if (email === \"user\" && password === \"user\") {\r\n // localStorage.setItem(\"loggedInUser\", \"user\");\r\n // setuserlogged(\"user\");\r\n // navigate(\"/\");\r\n // } else if (email === \"instructor\" && password === \"instructor\") {\r\n // localStorage.setItem(\"loggedInUser\", \"instructor\");\r\n // setuserlogged(\"instructor\");\r\n // navigate(\"/instructorhome\");\r\n // } else if (email === \"trainer\" && password === \"trainer\") {\r\n // localStorage.setItem(\"loggedInUser\", \"trainer\");\r\n // setuserlogged(\"trainer\");\r\n // navigate(\"/trainerhome\");\r\n // } else {\r\n // alert(\"Invalid username or password\");\r\n // }\r\n // };\r\n const handleLogin = (e) => {\r\n e.preventDefault();\r\n setisloading(true);\r\n\r\n let getRes = (res) => {\r\n setisloading(false);\r\n console.log('Response received:', res);\r\n if (res.statusCode === 200) {\r\n localStorage.setItem(\"userData\", JSON.stringify(res?.data?.user));\r\n localStorage.setItem(\"accessToken\", res?.token);\r\n localStorage.setItem(\"refreshToken\", res?.refreshToken);\r\n \r\n let userData = JSON.parse(localStorage.getItem('userData'));\r\n if (userData) {\r\n if (userData.role === 'instructor') {\r\n localStorage.setItem(\"loggedInUser\", \"instructor\");\r\n setuserlogged(\"instructor\");\r\n toast.success(\"Logged in Successfully\", {\r\n autoClose: 1500,\r\n onClose: () => navigate('/instructorhome')\r\n });\r\n } else if (userData.role === 'trainer') {\r\n localStorage.setItem(\"loggedInUser\", \"trainer\");\r\n setuserlogged(\"trainer\");\r\n toast.success(\"Logged in Successfully\", {\r\n autoClose: 1500,\r\n onClose: () => navigate('/trainerhome')\r\n });\r\n } else if (userData.role === 'student') {\r\n localStorage.setItem(\"loggedInUser\", \"student\");\r\n setuserlogged(\"student\");\r\n toast.success(\"Logged in Successfully\", {\r\n autoClose: 1500,\r\n onClose: () => navigate('/')\r\n });\r\n }\r\n }\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n });\r\n }\r\n };\r\n\r\n let body = {\r\n email: email,\r\n password: password,\r\n };\r\n callApi(\"POST\", routes.signIn, body, setisloading, getRes, (error) => {\r\n setisloading(false);\r\n console.log(\"error\", error);\r\n toast.error(\"An error occurred\", {\r\n autoClose: 1500\r\n });\r\n });\r\n };\r\n\r\n const handleLoginSuccess = (email) => {\r\n const body = { email };\r\n\r\n const getRes = (res) => {\r\n if (res.statusCode === 200) {\r\n localStorage.setItem(\"userData\", JSON.stringify(res?.data?.user));\r\n localStorage.setItem(\"accessToken\", res?.data?.token);\r\n localStorage.setItem(\"refreshToken\", res?.data?.refreshToken);\r\n \r\n const userData = JSON.parse(localStorage.getItem('userData'));\r\n\r\n toast.success(\"Logged in Successfully\", {\r\n autoClose: 1500,\r\n onClose: () => {\r\n if (userData && userData.role === 'admin') {\r\n localStorage.setItem(\"loggedInUser\", \"admin\");\r\n setuserlogged(\"admin\");\r\n navigate('/sellerdashboard');\r\n } else if (userData && userData.role === 'student') {\r\n localStorage.setItem(\"loggedInUser\", \"student\");\r\n setuserlogged(\"user\");\r\n navigate('/');\r\n }\r\n }\r\n });\r\n } else {\r\n toast.error(res.message, { autoClose: 1500 });\r\n }\r\n };\r\n\r\n callApi(\"POST\", '/your-api-endpoint', body, setisloading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n\r\n // useEffect(() => {\r\n // /* global google */\r\n // google.accounts.id.initialize({\r\n // client_id: '292085223830.apps.googleusercontent.com',\r\n // callback: handleCredentialResponse\r\n // });\r\n // }, []);\r\n\r\n const handleCredentialResponse = (response) => {\r\n const decodedJwt = parseJwt(response.credential);\r\n console.log('Logged in user email:', decodedJwt.email);\r\n };\r\n\r\n const parseJwt = (token) => {\r\n try {\r\n return JSON.parse(atob(token.split('.')[1]));\r\n } catch (e) {\r\n return null;\r\n }\r\n };\r\n\r\n // const handleGoogleSignIn = () => {\r\n // google.accounts.id.prompt(); // This will show the Google Sign-In prompt\r\n // };\r\n const responseFacebook = (response) => {\r\n console.log(response); // Logs the Facebook response object to the console\r\n };\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Powering Your Platform\r\n \r\n
\r\n
\r\n
\r\n

Welcome Back!

\r\n

\r\n Login and manage your ECHO account.\r\n

\r\n\r\n
\r\n \r\n Email\r\n \r\n
\r\n \r\n {email === \"\" && (\r\n \r\n {/* Email */}{\" \"}\r\n {\" \"}\r\n Email\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n Password\r\n \r\n
\r\n \r\n {password === \"\" && (\r\n \r\n {\" \"}\r\n Password\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Remember me\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n Forgot password?\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n Don't have an account?{\" \"}\r\n \r\n Sign Up\r\n \r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Or Continue with
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n e.preventDefault();\r\n // handleGoogleSignIn(); \r\n }}\r\n >\r\n \"\"\r\n Continue with Google\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n (\r\n \r\n \r\n \r\n Continue with Facebook\r\n \r\n \r\n )}\r\n />\r\n
\r\n\r\n\r\n
\r\n handleLogin(e)}\r\n style={{\r\n backgroundColor: \"#1D191C\",\r\n color: \"white\",\r\n }}\r\n >\r\n Login\r\n \r\n
\r\n {isloading && (\r\n
\r\n
\r\n
\r\n )}\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Login;\r\n","import React, { useState } from \"react\";\r\nimport \"./login.css\";\r\nimport { Link, useNavigate } from \"react-router-dom\";\r\nimport AuthenticateImage from \"./AuthenticateImage\";\r\nimport { callApi } from \"../../Api/ApiCaller\";\r\nimport routes from \"../../Api/routes\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst ForgotPassword = () => {\r\n const [email, setEmail] = useState(\"\");\r\n const navigate = useNavigate();\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const handlecontinue = () => {\r\n \r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n\r\n toast.success(res.message, {\r\n autoClose: 1500,\r\n onClose: () => {\r\n\t\t\t\t\tnavigate(`/forgotpasswordotp?otpemail=${email}`)\r\n\t\t\t\t }\r\n });\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n let body = {\r\n email: email,\r\n \r\n };\r\n callApi(\"POST\", routes.forgotPassword, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const handleChangeemail = (e) => {\r\n setEmail(e.target.value);\r\n };\r\n // const handlecontinue = () => {\r\n // navigate(\"/forgotpasswordotp\");\r\n // };\r\n\r\n return (\r\n <>\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Powering Your Platform\r\n \r\n
\r\n \r\n
\r\n

Reset Your Password

\r\n
\r\n

\r\n Please enter the email associated with your this app\r\n account. We’ll send you an OTP code to reset your\r\n password.\r\n

\r\n
\r\n
\r\n \r\n Email\r\n \r\n
\r\n \r\n {email === \"\" && (\r\n \r\n {\" \"}\r\n Email\r\n \r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Continue\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ForgotPassword;\r\n","import React from 'react';\n\ntype AllowedInputTypes = 'password' | 'text' | 'number' | 'tel';\n\ntype InputProps = Required<\n Pick<\n React.InputHTMLAttributes,\n | 'value'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'onKeyDown'\n | 'onPaste'\n | 'aria-label'\n | 'autoComplete'\n | 'style'\n | 'inputMode'\n | 'onInput'\n > & {\n ref: React.RefCallback;\n placeholder: string | undefined;\n className: string | undefined;\n type: AllowedInputTypes;\n }\n>;\n\ninterface OTPInputProps {\n /** Value of the OTP input */\n value?: string;\n /** Number of OTP inputs to be rendered */\n numInputs?: number;\n /** Callback to be called when the OTP value changes */\n onChange: (otp: string) => void;\n /** Callback to be called when pasting content into the component */\n onPaste?: (event: React.ClipboardEvent) => void;\n /** Function to render the input */\n renderInput: (inputProps: InputProps, index: number) => React.ReactNode;\n /** Whether the first input should be auto focused */\n shouldAutoFocus?: boolean;\n /** Placeholder for the inputs */\n placeholder?: string;\n /** Function to render the separator */\n renderSeparator?: ((index: number) => React.ReactNode) | React.ReactNode;\n /** Style for the container */\n containerStyle?: React.CSSProperties | string;\n /** Style for the input */\n inputStyle?: React.CSSProperties | string;\n /** The type that will be passed to the input being rendered */\n inputType?: AllowedInputTypes;\n /** Do not apply the default styles to the inputs, will be removed in future versions */\n skipDefaultStyles?: boolean; // TODO: Remove in next major release\n}\n\nconst isStyleObject = (obj: unknown) => typeof obj === 'object' && obj !== null;\n\nconst OTPInput = ({\n value = '',\n numInputs = 4,\n onChange,\n onPaste,\n renderInput,\n shouldAutoFocus = false,\n inputType = 'text',\n renderSeparator,\n placeholder,\n containerStyle,\n inputStyle,\n skipDefaultStyles = false,\n}: OTPInputProps) => {\n const [activeInput, setActiveInput] = React.useState(0);\n const inputRefs = React.useRef>([]);\n\n const getOTPValue = () => (value ? value.toString().split('') : []);\n\n const isInputNum = inputType === 'number' || inputType === 'tel';\n\n React.useEffect(() => {\n inputRefs.current = inputRefs.current.slice(0, numInputs);\n }, [numInputs]);\n\n React.useEffect(() => {\n if (shouldAutoFocus) {\n inputRefs.current[0]?.focus();\n }\n }, [shouldAutoFocus]);\n\n const getPlaceholderValue = () => {\n if (typeof placeholder === 'string') {\n if (placeholder.length === numInputs) {\n return placeholder;\n }\n\n if (placeholder.length > 0) {\n console.error('Length of the placeholder should be equal to the number of inputs.');\n }\n }\n return undefined;\n };\n\n const isInputValueValid = (value: string) => {\n const isTypeValid = isInputNum ? !isNaN(Number(value)) : typeof value === 'string';\n return isTypeValid && value.trim().length === 1;\n };\n\n const handleChange = (event: React.ChangeEvent) => {\n const { value } = event.target;\n\n if (isInputValueValid(value)) {\n changeCodeAtFocus(value);\n focusInput(activeInput + 1);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent) => {\n const { nativeEvent } = event;\n const value = event.target.value;\n\n if (!isInputValueValid(value)) {\n // Pasting from the native autofill suggestion on a mobile device can pass\n // the pasted string as one long input to one of the cells. This ensures\n // that we handle the full input and not just the first character.\n if (value.length === numInputs) {\n const hasInvalidInput = value.split('').some((cellInput) => !isInputValueValid(cellInput));\n if (!hasInvalidInput) {\n handleOTPChange(value.split(''));\n focusInput(numInputs - 1);\n }\n }\n\n // @ts-expect-error - This was added previously to handle and edge case\n // for dealing with keyCode \"229 Unidentified\" on Android. Check if this is\n // still needed.\n if (nativeEvent.data === null && nativeEvent.inputType === 'deleteContentBackward') {\n event.preventDefault();\n changeCodeAtFocus('');\n focusInput(activeInput - 1);\n }\n\n // Clear the input if it's not valid value because firefox allows\n // pasting non-numeric characters in a number type input\n event.target.value = '';\n }\n };\n\n const handleFocus = (event: React.FocusEvent) => (index: number) => {\n setActiveInput(index);\n event.target.select();\n };\n\n const handleBlur = () => {\n setActiveInput(activeInput - 1);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const otp = getOTPValue();\n if ([event.code, event.key].includes('Backspace')) {\n event.preventDefault();\n changeCodeAtFocus('');\n focusInput(activeInput - 1);\n } else if (event.code === 'Delete') {\n event.preventDefault();\n changeCodeAtFocus('');\n } else if (event.code === 'ArrowLeft') {\n event.preventDefault();\n focusInput(activeInput - 1);\n } else if (event.code === 'ArrowRight') {\n event.preventDefault();\n focusInput(activeInput + 1);\n }\n // React does not trigger onChange when the same value is entered\n // again. So we need to focus the next input manually in this case.\n else if (event.key === otp[activeInput]) {\n event.preventDefault();\n focusInput(activeInput + 1);\n } else if (\n event.code === 'Spacebar' ||\n event.code === 'Space' ||\n event.code === 'ArrowUp' ||\n event.code === 'ArrowDown'\n ) {\n event.preventDefault();\n }\n };\n\n const focusInput = (index: number) => {\n const activeInput = Math.max(Math.min(numInputs - 1, index), 0);\n\n if (inputRefs.current[activeInput]) {\n inputRefs.current[activeInput]?.focus();\n inputRefs.current[activeInput]?.select();\n setActiveInput(activeInput);\n }\n };\n\n const changeCodeAtFocus = (value: string) => {\n const otp = getOTPValue();\n otp[activeInput] = value[0];\n handleOTPChange(otp);\n };\n\n const handleOTPChange = (otp: Array) => {\n const otpValue = otp.join('');\n onChange(otpValue);\n };\n\n const handlePaste = (event: React.ClipboardEvent) => {\n event.preventDefault();\n\n const otp = getOTPValue();\n let nextActiveInput = activeInput;\n\n // Get pastedData in an array of max size (num of inputs - current position)\n const pastedData = event.clipboardData\n .getData('text/plain')\n .slice(0, numInputs - activeInput)\n .split('');\n\n // Prevent pasting if the clipboard data contains non-numeric values for number inputs\n if (isInputNum && pastedData.some((value) => isNaN(Number(value)))) {\n return;\n }\n\n // Paste data from focused input onwards\n for (let pos = 0; pos < numInputs; ++pos) {\n if (pos >= activeInput && pastedData.length > 0) {\n otp[pos] = pastedData.shift() ?? '';\n nextActiveInput++;\n }\n }\n\n focusInput(nextActiveInput);\n handleOTPChange(otp);\n };\n\n return (\n \n {Array.from({ length: numInputs }, (_, index) => index).map((index) => (\n \n {renderInput(\n {\n value: getOTPValue()[index] ?? '',\n placeholder: getPlaceholderValue()?.[index] ?? undefined,\n ref: (element) => (inputRefs.current[index] = element),\n onChange: handleChange,\n onFocus: (event) => handleFocus(event)(index),\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onPaste: handlePaste,\n autoComplete: 'off',\n 'aria-label': `Please enter OTP character ${index + 1}`,\n style: Object.assign(\n !skipDefaultStyles ? ({ width: '1em', textAlign: 'center' } as const) : {},\n isStyleObject(inputStyle) ? inputStyle : {}\n ),\n className: typeof inputStyle === 'string' ? inputStyle : undefined,\n type: inputType,\n inputMode: isInputNum ? 'numeric' : 'text',\n onInput: handleInputChange,\n },\n index\n )}\n {index < numInputs - 1 && (typeof renderSeparator === 'function' ? renderSeparator(index) : renderSeparator)}\n \n ))}\n \n );\n};\n\nexport type { OTPInputProps, InputProps, AllowedInputTypes };\nexport default OTPInput;\n","import React, { useEffect, useState } from \"react\";\r\nimport OtpInput from \"react-otp-input\";\r\nimport AuthenticateImage from \"./AuthenticateImage\";\r\nimport { useLocation, useNavigate } from \"react-router-dom\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { callApi } from \"../../Api/ApiCaller\";\r\nimport routes from \"../../Api/routes\";\r\nconst ForgotPasswordOtp = () => {\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const email = queryParams.get(\"otpemail\");\r\n const [otp, setOtp] = useState(\"\");\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const [inputStyle, setInputStyle] = useState({\r\n width: \"90px\",\r\n height: \"72px\",\r\n fontSize: \"24px\",\r\n margin: \"0 10px\",\r\n textAlign: \"center\",\r\n borderRadius: \"8px\",\r\n border: \"1px solid #E2E2E2\",\r\n backgroundColor: \"#FAFAFA\",\r\n color: \"#1D191C\",\r\n fontWeight: \"700\",\r\n });\r\n const navigate = useNavigate();\r\n\r\n // const handleContinue = () => {\r\n // navigate(\"/forgotnewpassword\");\r\n // };\r\n \r\n\r\n const handleContinue = (e) => {\r\n e.preventDefault();\r\n\r\n let getRes = (res) => {\r\n console.log('Response received:', res)\r\n if (res.statusCode == 200) {\r\n \r\n\r\n \r\n\r\n toast.success(\"Otp Verified\", {\r\n autoClose: 1500,\r\n onClose: () => navigate(`/forgotnewpassword?otpemail=${email}`)\r\n });\r\n \r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n });\r\n }\r\n};\r\n let body = {\r\n email: email,\r\n otp: otp,\r\n };\r\n callApi(\"POST\", routes.verifyForgotPasswordOtp, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n \r\n\r\n };\r\n useEffect(() => {\r\n const handleResize = () => {\r\n const width = window.innerWidth;\r\n if (width <= 768) {\r\n setInputStyle({\r\n width: \"70px\",\r\n height: \"52px\",\r\n fontSize: \"18px\",\r\n margin: \"0 5px\",\r\n textAlign: \"center\",\r\n borderRadius: \"8px\",\r\n border: \"1px solid #E2E2E2\",\r\n backgroundColor: \"#FAFAFA\",\r\n color: \"#1D191C\",\r\n fontWeight: \"700\",\r\n });\r\n } else if (width <= 576) {\r\n setInputStyle({\r\n width: \"50px\",\r\n height: \"40px\",\r\n fontSize: \"14px\",\r\n margin: \"0 3px\",\r\n textAlign: \"center\",\r\n borderRadius: \"8px\",\r\n border: \"1px solid #E2E2E2\",\r\n backgroundColor: \"#FAFAFA\",\r\n color: \"#1D191C\",\r\n fontWeight: \"700\",\r\n });\r\n } else {\r\n setInputStyle({\r\n width: \"90px\",\r\n height: \"72px\",\r\n fontSize: \"24px\",\r\n margin: \"0 10px\",\r\n textAlign: \"center\",\r\n borderRadius: \"8px\",\r\n border: \"1px solid #E2E2E2\",\r\n backgroundColor: \"#FAFAFA\",\r\n color: \"#1D191C\",\r\n fontWeight: \"700\",\r\n });\r\n }\r\n };\r\n\r\n handleResize();\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n const handleChange = (otp) => {\r\n setOtp(otp);\r\n };\r\n const [countdown, setCountdown] = useState(60);\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n\r\n useEffect(() => {\r\n if (countdown === 0) {\r\n setIsDisabled(false);\r\n return;\r\n }\r\n\r\n const timer = setInterval(() => {\r\n setCountdown(prevCountdown => prevCountdown - 1);\r\n }, 1000);\r\n\r\n return () => clearInterval(timer);\r\n }, [countdown]);\r\n\r\n const handleResendCode = (e) => {\r\n e.preventDefault();\r\n\r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n\r\n toast.success(res.message, {\r\n autoClose: 1500,\r\n \r\n });\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n let body = {\r\n email: email,\r\n \r\n };\r\n callApi(\"POST\", routes.resendOtp, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n\r\n // Restart the countdown\r\n setCountdown(60);\r\n setIsDisabled(true);\r\n };\r\n return (\r\n <>\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Powering Your Platform\r\n \r\n
\r\n \r\n
\r\n

Enter OTP Code

\r\n
\r\n

\r\n Check your email inbox for the OTP code we sent you.\r\n Please enter it below to proceed.\r\n

\r\n
\r\n
\r\n }\r\n />\r\n\r\n
\r\n
\r\n
\r\n

\r\n You can resend the code in {countdown} seconds\r\n

\r\n
\r\n
\r\n \r\n Resend code\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Continue\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ForgotPasswordOtp;\r\n","import React, { useState } from \"react\";\r\nimport \"./login.css\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faEye, faEyeSlash } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Link, useLocation, useNavigate } from \"react-router-dom\";\r\nimport AuthenticateImage from \"./AuthenticateImage\";\r\nimport { useEffect } from \"react\";\r\nimport { callApi } from \"../../Api/ApiCaller\";\r\nimport routes from \"../../Api/routes\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst ForgotNewPassword = () => {\r\n const [newpassword, setnewPassword] = useState(\"\");\r\n const [shownewPassword, setShownewPassword] = useState(false);\r\n const [confirmnewpassword, setconfirmnewPassword] = useState(\"\");\r\n const [showconfirmnewPassword, setShowconfirmnewPassword] = useState(false);\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const email = queryParams.get(\"otpemail\");\r\n const navigate = useNavigate();\r\n const [isloading, setIsLoading] = useState(false);\r\n const handleChangenewPassword = (e) => {\r\n setnewPassword(e.target.value);\r\n };\r\n const togglenewPasswordVisibility = () => {\r\n setShownewPassword(!shownewPassword);\r\n };\r\n const handleChangeconfirmnewPassword = (e) => {\r\n setconfirmnewPassword(e.target.value);\r\n };\r\n const toggleconfirmnewPasswordVisibility = () => {\r\n setShowconfirmnewPassword(!showconfirmnewPassword);\r\n };\r\n const handlePasswordSuccessful = () => {\r\n let getRes = (res) => {\r\n console.log('Response received:', res)\r\n if (res.statusCode == 200) {\r\n setShowModal(true);\r\n\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n });\r\n }\r\n};\r\n let body = {\r\n email: email,\r\n password: newpassword \r\n };\r\n callApi(\"POST\", routes.resetPasswords, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n \r\n };\r\n const handleContinue = () => {\r\n if (newpassword === confirmnewpassword ) {\r\n // setShowModal(true);\r\n handlePasswordSuccessful();\r\n } else {\r\n alert(\"Passwords do not match. Please try again.\");\r\n }\r\n \r\n };\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n useEffect(() => {\r\n let timer;\r\n if (showModal) {\r\n timer = setTimeout(() => {\r\n navigate(\"/login\");\r\n }, 2000);\r\n }\r\n return () => clearTimeout(timer);\r\n }, [showModal]);\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Powering Your Platform\r\n \r\n
\r\n \r\n
\r\n

Secure Your Account

\r\n
\r\n

\r\n Almost there! Create a new password for your ECHO\r\n Account to keep it secure. Remember to choose a strong\r\n and unique password.\r\n

\r\n
\r\n
\r\n
\r\n \r\n New Password\r\n \r\n
\r\n \r\n {newpassword === \"\" && (\r\n \r\n \r\n New Password\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Confirm new password\r\n \r\n
\r\n \r\n {confirmnewpassword === \"\" && (\r\n \r\n {\" \"}\r\n Password\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {\r\n e.preventDefault();\r\n handleContinue();\r\n }}\r\n style={{\r\n backgroundColor: \"#1D191C\",\r\n color: \"white\",\r\n }}\r\n >\r\n Save New Password\r\n \r\n
\r\n
\r\n
\r\n
\r\n {showModal && (\r\n \r\n
\r\n
\r\n
\r\n \r\n

\r\n Reset Password Successfuly!\r\n

\r\n
\r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat\r\n porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ForgotNewPassword;\r\n","import React, { useState } from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faEye, faEyeSlash } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Link, useNavigate } from \"react-router-dom\";\r\nimport AuthenticateImage from \"../AuthenticateImage\";\r\nimport { callApi } from \"../../../Api/ApiCaller\";\r\nimport routes from \"../../../Api/routes\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst SignUp = () => {\r\n const [email, setEmail] = useState(\"\");\r\n const [newpassword, setnewPassword] = useState(\"\");\r\n const [shownewPassword, setShownewPassword] = useState(false);\r\n const [confirmnewpassword, setconfirmnewPassword] = useState(\"\");\r\n const [showconfirmnewPassword, setShowconfirmnewPassword] = useState(false);\r\n const [isloading, setIsLoading] = useState(false);\r\n const navigate = useNavigate();\r\nconst handleSignUp = () => {\r\n \r\n let getRes = (res) => {\r\n if (res.statusCode == 201) {\r\n\r\n toast.success(res.message, {\r\n autoClose: 1500,\r\n onClose: () => {\r\n\t\t\t\t\tnavigate(`/signupotp?otpemail=${email}`)\r\n\t\t\t\t }\r\n });\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n let body = {\r\n email: email,\r\n password: newpassword,\r\n };\r\n callApi(\"POST\", routes.signUp, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const handlesignup = (e) => {\r\n e.preventDefault();\r\n if (newpassword !== confirmnewpassword) {\r\n alert(\"Passwords do not match\");\r\n } else {\r\n handleSignUp()\r\n // navigate(\"/signupotp\");\r\n console.log(email);\r\n console.log(newpassword);\r\n }\r\n };\r\n const handleChangeemail = (e) => {\r\n setEmail(e.target.value);\r\n };\r\n const handleChangenewPassword = (e) => {\r\n setnewPassword(e.target.value);\r\n };\r\n const togglenewPasswordVisibility = () => {\r\n setShownewPassword(!shownewPassword);\r\n };\r\n const handleChangeconfirmnewPassword = (e) => {\r\n setconfirmnewPassword(e.target.value);\r\n };\r\n const toggleconfirmnewPasswordVisibility = () => {\r\n setShowconfirmnewPassword(!showconfirmnewPassword);\r\n };\r\n return (\r\n <>\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Powering Your Platform\r\n \r\n
\r\n
\r\n
\r\n

Create Your Account

\r\n

\r\n Elevate your ECHO account with this App.\r\n

\r\n
\r\n \r\n Email\r\n \r\n
\r\n \r\n {email === \"\" && (\r\n \r\n {/* Email */}{\" \"}\r\n {\" \"}\r\n Email\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n New Password\r\n \r\n
\r\n \r\n {newpassword === \"\" && (\r\n \r\n \r\n New Password\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Re-Enter Password\r\n \r\n
\r\n \r\n {confirmnewpassword === \"\" && (\r\n \r\n {\" \"}\r\n Password\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n Already have an account?{\" \"}\r\n \r\n Login\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Or Continue with
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n Sign Up\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SignUp;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport OtpInput from \"react-otp-input\";\r\nimport { useLocation, useNavigate } from \"react-router-dom\";\r\nimport AuthenticateImage from \"../AuthenticateImage\";\r\nimport routes from \"../../../Api/routes\";\r\nimport { callApi } from \"../../../Api/ApiCaller\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst SignUpOtp = () => {\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const email = queryParams.get(\"otpemail\");\r\n const [otp, setOtp] = useState(\"\");\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const [inputStyle, setInputStyle] = useState({\r\n width: \"90px\",\r\n height: \"72px\",\r\n fontSize: \"24px\",\r\n margin: \"0 10px\",\r\n textAlign: \"center\",\r\n borderRadius: \"8px\",\r\n border: \"1px solid #E2E2E2\",\r\n backgroundColor: \"#FAFAFA\",\r\n color: \"#1D191C\",\r\n fontWeight: \"700\",\r\n });\r\n const navigate = useNavigate();\r\n\r\n const handleContinue = (e) => {\r\n e.preventDefault();\r\n\r\n let getRes = (res) => {\r\n console.log('Response received:', res)\r\n if (res.statusCode == 200) {\r\n localStorage.setItem(\"userData\", JSON.stringify(res?.data?.user));\r\n localStorage.setItem(\"accessToken\", res?.token);\r\n localStorage.setItem(\"refreshToken\", res?.refreshToken);\r\n \r\n let userData = JSON.parse(localStorage.getItem('userData'));\r\n // if (userData) {\r\n // console.log(userData.role); // Now it should log the object correctly\r\n // }\r\n\r\n if (userData) {\r\n\r\n toast.success(\"Otp Verified\", {\r\n autoClose: 1500,\r\n onClose: () => navigate(`/signupaccounttype?otpemail=${email}`)\r\n });\r\n \r\n }\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n });\r\n }\r\n};\r\n let body = {\r\n email: email,\r\n otp: otp,\r\n };\r\n callApi(\"POST\", routes.verifyOTP, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n \r\n\r\n };\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n const width = window.innerWidth;\r\n if (width <= 768) {\r\n setInputStyle({\r\n width: \"70px\",\r\n height: \"52px\",\r\n fontSize: \"18px\",\r\n margin: \"0 5px\",\r\n textAlign: \"center\",\r\n borderRadius: \"8px\",\r\n border: \"1px solid #E2E2E2\",\r\n backgroundColor: \"#FAFAFA\",\r\n color: \"#1D191C\",\r\n fontWeight: \"700\",\r\n });\r\n } else if (width <= 576) {\r\n setInputStyle({\r\n width: \"50px\",\r\n height: \"40px\",\r\n fontSize: \"14px\",\r\n margin: \"0 3px\",\r\n textAlign: \"center\",\r\n borderRadius: \"8px\",\r\n border: \"1px solid #E2E2E2\",\r\n backgroundColor: \"#FAFAFA\",\r\n color: \"#1D191C\",\r\n fontWeight: \"700\",\r\n });\r\n } else {\r\n setInputStyle({\r\n width: \"90px\",\r\n height: \"72px\",\r\n fontSize: \"24px\",\r\n margin: \"0 10px\",\r\n textAlign: \"center\",\r\n borderRadius: \"8px\",\r\n border: \"1px solid #E2E2E2\",\r\n backgroundColor: \"#FAFAFA\",\r\n color: \"#1D191C\",\r\n fontWeight: \"700\",\r\n });\r\n }\r\n };\r\n\r\n handleResize();\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n const handleChange = (otp) => {\r\n setOtp(otp);\r\n };\r\n const [countdown, setCountdown] = useState(60);\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n\r\n useEffect(() => {\r\n if (countdown === 0) {\r\n setIsDisabled(false);\r\n return;\r\n }\r\n\r\n const timer = setInterval(() => {\r\n setCountdown(prevCountdown => prevCountdown - 1);\r\n }, 1000);\r\n\r\n return () => clearInterval(timer);\r\n }, [countdown]);\r\n\r\n const handleResendCode = (e) => {\r\n e.preventDefault();\r\n\r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n\r\n toast.success(res.message, {\r\n autoClose: 1500,\r\n \r\n });\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n let body = {\r\n email: email,\r\n \r\n };\r\n callApi(\"POST\", routes.resendOtp, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n\r\n // Restart the countdown\r\n setCountdown(60);\r\n setIsDisabled(true);\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Powering Your Platform\r\n \r\n
\r\n \r\n
\r\n

Enter OTP Code

\r\n
\r\n

\r\n Check your email inbox for the OTP code we sent you.\r\n Please enter it below to proceed.\r\n

\r\n
\r\n
\r\n }\r\n />\r\n\r\n
\r\n
\r\n
\r\n

\r\n You can resend the code in {countdown} seconds\r\n

\r\n
\r\n
\r\n \r\n Resend code\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Continue\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SignUpOtp;\r\n","import React, { useState } from \"react\";\r\nimport { Link, useLocation, useNavigate } from \"react-router-dom\";\r\nimport AuthenticateImage from \"../AuthenticateImage\";\r\nimport { callApi } from \"../../../Api/ApiCaller\";\r\nimport routes from \"../../../Api/routes\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst SignUpAccountType = ({ setuserlogged }) => {\r\n const [selectedAccountType, setSelectedAccountType] = useState(null);\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const email = queryParams.get(\"otpemail\");\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const handleContinue = async (e) => {\r\n e.preventDefault();\r\n let getRes = (res) => {\r\n if (res.statusCode === 200 ) {\r\n\r\n // toast.success(\"Profile Updated Successfully\", {\r\n // autoClose: 1500,\r\n // });\r\n\r\n switch (selectedAccountType) {\r\n case \"student\":\r\n localStorage.setItem(\"loggedInUser\", \"student\");\r\n setuserlogged(\"student\");\r\n localStorage.setItem(\"accountType\", \"student\");\r\n navigate(`/usersignupprofile1?role=${selectedAccountType}`);\r\n break;\r\n case \"instructor\":\r\n localStorage.setItem(\"loggedInUser\", \"instructor\");\r\n setuserlogged(\"instructor\");\r\n localStorage.setItem(\"accountType\", \"instructor\");\r\n navigate(`/usersignupprofile1?role=${selectedAccountType}`);\r\n break;\r\n case \"trainer\":\r\n localStorage.setItem(\"loggedInUser\", \"trainer\");\r\n setuserlogged(\"trainer\");\r\n localStorage.setItem(\"accountType\", \"trainer\");\r\n navigate(`/usersignupprofile1?role=${selectedAccountType}`);\r\n break;\r\n default:\r\n // Handle default case or error\r\n break;\r\n }\r\n\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n // setShowModal(false);\r\n };\r\n let body = {\r\n role: selectedAccountType,\r\n };\r\n\r\n callApi(\r\n \"PATCH\",\r\n routes.editUser,\r\n body,\r\n setIsLoading,\r\n getRes,\r\n (error) => {\r\n console.log(\"error\", error);\r\n }\r\n );\r\n };\r\n\r\n const handleAccountTypeSelect = (accountType) => {\r\n setSelectedAccountType(accountType);\r\n\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Powering Your Platform\r\n \r\n
\r\n \r\n
\r\n

\r\n Choose Your Account Type\r\n

\r\n
\r\n

\r\n Check your email inbox for the OTP code we sent you.\r\n Please enter it below to proceed.\r\n

\r\n
\r\n handleAccountTypeSelect(\"student\")}\r\n style={{\r\n cursor: \"pointer\",\r\n opacity: selectedAccountType === \"student\" ? 1 : 0.5,\r\n }}\r\n >\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n I am User\r\n

\r\n\r\n \r\n Lorem ipsum dolor sit amet, consectetur adipi\r\n elit eclipe\r\n \r\n
\r\n
\r\n
\r\n
\r\n handleAccountTypeSelect(\"instructor\")}\r\n style={{\r\n cursor: \"pointer\",\r\n opacity:\r\n selectedAccountType === \"instructor\" ? 1 : 0.5,\r\n }}\r\n >\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n I am Instructor\r\n

\r\n\r\n \r\n Lorem ipsum dolor sit amet, consectetur adipi\r\n elit eclipe\r\n \r\n
\r\n
\r\n
\r\n
\r\n handleAccountTypeSelect(\"trainer\")}\r\n style={{\r\n cursor: \"pointer\",\r\n opacity: selectedAccountType === \"trainer\" ? 1 : 0.5,\r\n }}\r\n >\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n I am Trainer\r\n

\r\n\r\n \r\n Lorem ipsum dolor sit amet, consectetur adipi\r\n elit eclipe\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Continue\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SignUpAccountType;\r\n","import React, { useState } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport AuthenticateImage from \"../AuthenticateImage\";\r\nimport { S3 } from \"aws-sdk\";\r\nimport routes from \"../../../Api/routes\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { callApi } from \"../../../Api/ApiCaller\";\r\nconst UserSignUpProfile1 = () => {\r\n const [fullName, setFullName] = useState(\"\");\r\n const [location, setLocation] = useState(\"\");\r\n const [description, setDescription] = useState(\"\");\r\n const [avatar, setAvatar] = useState(null);\r\n const [accounttype, setaccounttype] = useState(\r\n localStorage.getItem(\"accountType\")\r\n );\r\n\r\n const navigate = useNavigate();\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const handleFileInputChange = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n const fileUrl = await uploadImageOnS3(file);\r\n setAvatar(fileUrl)\r\n }\r\n };\r\n const uploadImageOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n setAvatar(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n\r\n // const handleFileSelect = () => {\r\n // fileInputRef.current.click();\r\n // };\r\n\r\n // const handleContinue = async (e) => {\r\n // // const file = event.target.files[0];\r\n // e.preventDefault();\r\n // if (avatar) {\r\n // console.log('Selected file:', avatar);\r\n\r\n // let getRes = (res) => {\r\n // if (res.statusCode == 200) {\r\n \r\n // if (fullName && location && description && avatar) {\r\n // switch (accounttype) {\r\n // case \"user\":\r\n // navigate(\"/usersignupprofile2\");\r\n // break;\r\n // case \"instructor\":\r\n // navigate(\"/instructorsignupprofile2\");\r\n // break;\r\n // case \"trainer\":\r\n // navigate(\"/trainersignupprofile2\");\r\n // break;\r\n // default:\r\n // // Handle default case or error\r\n // break;\r\n // }\r\n // }\r\n // } else {\r\n // toast.error(res.message, {\r\n // autoClose: 1500\r\n // })\r\n // }\r\n // };\r\n // const fileUrl = avatar;\r\n // let body = {\r\n // fullName: fullName,\r\n // avatar: fileUrl,\r\n // location: {\r\n // type: \"Point\",\r\n // coordinates: [72.343361, 31.04668],\r\n // address: location,\r\n // // description: \"Burewala\"\r\n // },\r\n // // description: description,\r\n // };\r\n // console.log(body)\r\n // callApi(\"POST\", routes.completeProfile, body, setIsLoading, getRes, getRes);\r\n // }\r\n // };\r\n const handleContinue = () => {\r\n const fileUrl = avatar;\r\n \r\n if (fullName && location && avatar) {\r\n switch (accounttype) {\r\n case \"student\":\r\n let studentdetail = {\r\n fullName: fullName,\r\n avatar: fileUrl,\r\n location: location\r\n };\r\n navigate(\"/usersignupprofile2\", { state: { detail: studentdetail } });\r\n break;\r\n case \"instructor\":\r\n let instructordetail = {\r\n fullName: fullName,\r\n avatar: fileUrl,\r\n location: location,\r\n description: description,\r\n };\r\n navigate(\"/instructorsignupprofile2\", { state: { detail: instructordetail } });\r\n break;\r\n case \"trainer\":\r\n let trainerdetail = {\r\n fullName: fullName,\r\n avatar: fileUrl,\r\n location: location,\r\n description: description,\r\n };\r\n navigate(\"/trainersignupprofile2\", { state: { detail: trainerdetail } });\r\n break;\r\n default:\r\n // Handle default case or error\r\n break;\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n <>\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Powering Your Platform\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Profile Picture\r\n \r\n
\r\n
\r\n \r\n Full Name\r\n \r\n setFullName(e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n Location\r\n \r\n
\r\n setLocation(e.target.value)}\r\n />\r\n \r\n \r\n \r\n
\r\n
\r\n {accounttype === 'student'?<>:
\r\n \r\n Description\r\n \r\n setDescription(e.target.value)}\r\n >\r\n
}\r\n
\r\n \r\n Continue\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserSignUpProfile1;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useLocation, useNavigate } from \"react-router-dom\";\r\nimport AuthenticateImage from \"../AuthenticateImage\";\r\nimport \"./signup.css\";\r\nimport { callApi } from \"../../../Api/ApiCaller\";\r\nimport routes from \"../../../Api/routes\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst UserSignUpProfile2 = () => {\r\n const [email, setEmail] = useState(\"\");\r\n const [interests, setinterests] = useState([])\r\n const [selectedInterest, setSelectedInterest] = useState(\"\");\r\n const [selectedInterestId, setSelectedInterestId] = useState(\"\");\r\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\r\n const [selectedgender, setSelectedgender] = useState(\"\");\r\n const [selectedLevel, setSelectedLevel] = useState(\"\");\r\n const [isDropdownLevelOpen, setIsDropdownLevelOpen] = useState(false);\r\n const [isDropdowngenderOpen, setIsDropdowngenderOpen] = useState(false);\r\n const [goals, setgoals] = useState([])\r\n const [selectedgoal, setSelectedgoal] = useState(\"\");\r\n const [selectedgoalId, setSelectedgoalId] = useState(\"\");\r\n const [isDropdowngoalOpen, setIsDropdowngoalOpen] = useState(false);\r\n const [age, setage] = useState('');\r\n const [weight, setweight] = useState('100');\r\n const [height, setheight] = useState('5');\r\n const [accounttype, setaccounttype] = useState(\r\n localStorage.getItem(\"accountType\")\r\n );\r\n // const [activityLevel, setactivityLevel] = useState('');\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const { detail } = location.state || {};\r\n\r\n const getInterests = () => {\r\n let getRes = (res) => {\r\n setinterests(res.data.docs);\r\n };\r\n\r\n callApi(\"GET\", routes.interests, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const getGoals = () => {\r\n let getRes = (res) => {\r\n setgoals(res.data.docs);\r\n };\r\n\r\n callApi(\"GET\", routes.goals, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n // console.log(detail);\r\n getInterests()\r\n getGoals();\r\n }, [])\r\n \r\n const [isloading, setIsLoading] = useState(false);\r\n const handleChangeEmail = (e) => {\r\n setEmail(e.target.value);\r\n };\r\n\r\n const handleInterestChange = (id) => {\r\n setSelectedInterest((prevSelectedInterests) => {\r\n if (prevSelectedInterests.includes(id)) {\r\n // Remove the ID if it's already in the array\r\n return prevSelectedInterests.filter((interestId) => interestId !== id);\r\n } else {\r\n // Add the ID if it's not in the array\r\n return [...prevSelectedInterests, id];\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n console.log(\"Selected Interest IDs:\", selectedInterest);\r\n }, [selectedInterest]);\r\n\r\n const getSelectedInterestNames = () => {\r\n return interests\r\n .filter(interest => selectedInterest.includes(interest._id))\r\n .map(interest => interest.name)\r\n .join(\", \");\r\n };\r\n\r\n\r\n const handleContinue = () => {\r\n navigate(\"/forgotpasswordotp\");\r\n };\r\n\r\n const toggleDropdown = () => {\r\n setIsDropdownOpen(!isDropdownOpen);\r\n };\r\n const handlegenderChange = (value) => {\r\n setSelectedgender(value);\r\n setIsDropdowngenderOpen(false);\r\n };\r\n const toggleDropdowngender = () => {\r\n setIsDropdowngenderOpen(!isDropdowngenderOpen);\r\n };\r\n const handleLevelChange = (value) => {\r\n setSelectedLevel(value);\r\n setIsDropdownLevelOpen(false);\r\n };\r\n const toggleDropdownLevel = () => {\r\n setIsDropdownLevelOpen(!isDropdownLevelOpen);\r\n };\r\n const handlegoalChange = (goal) => {\r\n setSelectedgoal((prevSelectedGoals) => {\r\n if (prevSelectedGoals.includes(goal._id)) {\r\n // Remove the goal ID if it's already in the array\r\n return prevSelectedGoals.filter((goalId) => goalId !== goal._id);\r\n } else {\r\n // Add the goal ID if it's not in the array\r\n return [...prevSelectedGoals, goal._id];\r\n }\r\n });\r\n };\r\n\r\n const getSelectedGoalNames = () => {\r\n return goals\r\n .filter((goal) => selectedgoal.includes(goal._id))\r\n .map((goal) => goal.name)\r\n .join(\", \");\r\n };\r\n\r\n useEffect(() => {\r\n console.log(selectedgoal);\r\n }, [selectedgoal])\r\n const toggleDropdowngoal = () => {\r\n setIsDropdowngoalOpen(!isDropdowngoalOpen);\r\n };\r\n const [selectedweight, setSelectedweight] = useState(\"lb\");\r\n\r\n const handleweightClick = (item, e) => {\r\n e.preventDefault();\r\n setSelectedweight(item);\r\n };\r\n const [selectedheight, setSelectedheight] = useState(\"ft\");\r\n\r\n const handleheightClick = (item, e) => {\r\n e.preventDefault();\r\n setSelectedheight(item);\r\n };\r\n\r\n const handleAccountSuccessful = () => {\r\n \r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n\r\n setShowModal(true);\r\n \r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n // const fileUrl = avatar;\r\n let body = {\r\n fullName: detail.fullName,\r\n avatar: detail.avatar,\r\n location: {\r\n type: \"Point\",\r\n coordinates: [72.343361, 31.04668],\r\n address: detail.location,\r\n // description: \"Burewala\"\r\n },\r\n interests: selectedInterest,\r\n gender: selectedgender,\r\n age: age,\r\n weight: {\r\n value: weight,\r\n unit: selectedweight,\r\n },\r\n height: {\r\n value: height,\r\n unit: selectedheight,\r\n },\r\n \r\n goals: selectedgoal,\r\n activityLevel: selectedLevel,\r\n\r\n // description: description,\r\n };\r\n console.log(body)\r\n callApi(\"POST\", routes.completeProfile, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n \r\n console.log(detail.fullName);\r\n console.log(detail.avatar);\r\n console.log(detail.location);\r\n console.log(selectedInterest);\r\n console.log(selectedgender);\r\n console.log(age);\r\n console.log(weight);\r\n console.log(selectedweight);\r\n console.log(height);\r\n console.log(selectedheight);\r\n console.log(selectedgoal);\r\n console.log(selectedLevel);\r\n\r\n\r\n };\r\n\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n useEffect(() => {\r\n let timer;\r\n if (showModal) {\r\n timer = setTimeout(() => {\r\n setShowModal(false);\r\n navigate(\"/\");\r\n }, 2000);\r\n }\r\n return () => clearTimeout(timer);\r\n }, [showModal]);\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Powering Your Platform\r\n \r\n
\r\n
\r\n
\r\n

Build Your Profile

\r\n
\r\n

\r\n Check your email inbox for the OTP code we sent you.\r\n Please enter it below to proceed.\r\n

\r\n
\r\n
\r\n \r\n Select Your Interest\r\n \r\n
\r\n
\r\n \r\n

\r\n {selectedInterest.length > 0\r\n ? {getSelectedInterestNames()}\r\n : Dropdown to select}\r\n

\r\n \r\n \r\n \r\n
\r\n {isDropdownOpen && (\r\n
\r\n
\r\n {interests && interests.map((interest) => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Select Your Gender\r\n \r\n
\r\n
\r\n \r\n {selectedgender\r\n ? selectedgender\r\n : Dropdown to select}\r\n \r\n \r\n \r\n
\r\n {isDropdowngenderOpen && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Enter Your Age\r\n \r\n
\r\n setage(e.target.value)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Your Weight\r\n \r\n
\r\n
\r\n
\r\n setweight(e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n {selectedweight}\r\n \r\n
    \r\n
  • \r\n handleweightClick(\"t \", e)}\r\n >\r\n t\r\n \r\n
  • \r\n
  • \r\n handleweightClick(\"kg \", e)}\r\n >\r\n kg\r\n \r\n
  • \r\n
  • \r\n handleweightClick(\"g \", e)}\r\n >\r\n g\r\n \r\n
  • \r\n
  • \r\n handleweightClick(\"mg \", e)}\r\n >\r\n mg\r\n \r\n
  • \r\n
  • \r\n handleweightClick(\"lb \", e)}\r\n >\r\n lb\r\n \r\n
  • \r\n
  • \r\n handleweightClick(\"oz \", e)}\r\n >\r\n oz\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Your Height\r\n \r\n
\r\n
\r\n
\r\n setheight(e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n {selectedheight}\r\n \r\n
    \r\n
  • \r\n handleheightClick(\"m \", e)}\r\n >\r\n m\r\n \r\n
  • \r\n
  • \r\n handleheightClick(\"yd \", e)}\r\n >\r\n yd\r\n \r\n
  • \r\n
  • \r\n handleheightClick(\"ft \", e)}\r\n >\r\n ft\r\n \r\n
  • \r\n
  • \r\n handleheightClick(\"in \", e)}\r\n >\r\n in\r\n \r\n
  • \r\n
  • \r\n handleheightClick(\"cm \", e)}\r\n >\r\n cm\r\n \r\n
  • \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Select Your Goals\r\n \r\n
\r\n
\r\n \r\n

\r\n {selectedgoal.length > 0\r\n ? {getSelectedGoalNames()}\r\n : Dropdown to select}\r\n

\r\n \r\n \r\n \r\n
\r\n {isDropdowngoalOpen && (\r\n
\r\n
\r\n {goals.map((goal) => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Physical Activity Level\r\n \r\n
\r\n
\r\n \r\n {selectedLevel\r\n ? selectedLevel\r\n : Dropdown to select}\r\n \r\n \r\n \r\n
\r\n {isDropdownLevelOpen && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n {/*
\r\n \r\n Physical Activity Level\r\n \r\n
\r\n setactivityLevel(e.target.value)}\r\n />\r\n
\r\n
*/}\r\n
\r\n
\r\n
\r\n
\r\n {\r\n e.preventDefault();\r\n handleAccountSuccessful();\r\n }}\r\n style={{\r\n backgroundColor: \"#1D191C\",\r\n color: \"white\",\r\n }}\r\n >\r\n Continue\r\n \r\n
\r\n
\r\n
\r\n \r\n {showModal && (\r\n \r\n \r\n
\r\n
\r\n \r\n

\r\n Account Setup Successfully!\r\n

\r\n
\r\n Lorem ipsum dolor sit amet, consectetur\r\n adipiscing elit. Pellentesque vulputate placerat\r\n porta. Ut commodo nulla vitae eleifend sodales.\r\n Fusce ornare.\r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default UserSignUpProfile2;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport routes from '../../Api/routes';\r\nimport { callApi } from '../../Api/ApiCaller';\r\n\r\nconst ProgressTrackingCourseOngoing = () => {\r\n const [ongoingCourses, setongoingCourses] = useState([]);\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const getCourses = () => {\r\n \r\n let getRes = (res) => {\r\n // localStorage.setItem(\"userData\", res?.data?.user);\r\n setongoingCourses(res.onGoingCoursesInfo);\r\n // console.log(res.onGoingCoursesInfo)\r\n };\r\n \r\n callApi(\"GET\", routes.ongoingCourses, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n \r\n getCourses();\r\n }, []);\r\n return (\r\n <>\r\n\r\n
\r\n
\r\n {ongoingCourses && ongoingCourses.map((course, index) => (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
{course?.progressDoc?.course?.title}
\r\n \r\n
\r\n \r\n {course?.progressDoc?.course?.level}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* 70% */}\r\n
\r\n
\r\n {course?.watchedVideos}/{course?.totalVideos}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
))}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProgressTrackingCourseOngoing","import React, { useEffect, useState } from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\n\r\nconst ProgressTrackingCourseCompleted = () => {\r\n const [completeCourses, setcompleteCourses] = useState([]);\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const getCourses = () => {\r\n \r\n let getRes = (res) => {\r\n // localStorage.setItem(\"userData\", res?.data?.user);\r\n setcompleteCourses(res.progress);\r\n // console.log(res.progress)\r\n };\r\n \r\n callApi(\"GET\", routes.completeCourses, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n \r\n getCourses();\r\n }, []);\r\n return (\r\n <>\r\n\r\n
\r\n
\r\n {completeCourses && completeCourses.map((course, index) => (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
{course?.course?.title}
\r\n \r\n
\r\n \r\n {course?.course?.level}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* 70% */}\r\n
\r\n
\r\n {course?.videos?.length}/{course?.videos?.length}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
))}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProgressTrackingCourseCompleted","import React, { useEffect, useState } from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\n\r\nconst ProgressTrackingWorkoutOngoing = () => {\r\n const [ongoingWorkouts, setongoingWorkouts] = useState([]);\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const getWorkouts = () => {\r\n \r\n let getRes = (res) => {\r\n // localStorage.setItem(\"userData\", res?.data?.user);\r\n setongoingWorkouts(res.onGoingWorkoutsInfo);\r\n // console.log(res.onGoingCoursesInfo)\r\n };\r\n \r\n callApi(\"GET\", routes.ongoingWorkouts, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n \r\n getWorkouts();\r\n }, []);\r\n return (\r\n <>\r\n\r\n
\r\n
\r\n {ongoingWorkouts && ongoingWorkouts.map((workout, index) => (
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {/* \r\n
{workout?.progressDoc?.workout?.workoutTitle}
\r\n */}\r\n \r\n
{workout?.progressDoc?.workout?.workoutTitle}
\r\n \r\n \r\n

{workout?.progressDoc?.workout?.workoutDuration}

\r\n
\r\n
\r\n
\r\n {/* 70% */}\r\n
\r\n
\r\n {workout?.watchedVideos}/{workout?.totalVideos}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
))}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProgressTrackingWorkoutOngoing","import React, { useEffect, useState } from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport routes from '../../Api/routes';\r\nimport { callApi } from '../../Api/ApiCaller';\r\n\r\nconst ProgressTrackingWorkoutCompleted = () => {\r\n const [completeWorkouts, setcompletegWorkouts] = useState([]);\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const getWorkouts = () => {\r\n \r\n let getRes = (res) => {\r\n // localStorage.setItem(\"userData\", res?.data?.user);\r\n setcompletegWorkouts(res.progress);\r\n // console.log(res.onGoingCoursesInfo)\r\n };\r\n \r\n callApi(\"GET\", routes.completeWorkouts, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n \r\n getWorkouts();\r\n }, []);\r\n return (\r\n <>\r\n\r\n
\r\n
\r\n {completeWorkouts && completeWorkouts.map((workout, index) => (
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
{workout?.workout?.workoutTitle}
\r\n \r\n \r\n \r\n

{workout?.workout?.workoutDuration}

\r\n
\r\n
\r\n
\r\n {/* 70% */}\r\n
\r\n
\r\n {workout?.workout?.totalWorkouts}/{workout?.workout?.totalWorkouts}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
))}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProgressTrackingWorkoutCompleted","import React, { useState } from \"react\";\r\nimport \"./progresstracking.css\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ProgressTrackingCourseOngoing from \"./ProgressTrackingCourseOngoing\";\r\nimport ProgressTrackingCourseCompleted from \"./ProgressTrackingCourseCompleted\";\r\nimport ProgressTrackingWorkoutOngoing from \"./ProgressTrackingWorkoutOngoing\";\r\nimport ProgressTrackingWorkoutCompleted from \"./ProgressTrackingWorkoutCompleted\";\r\nconst ProgressTracking = () => {\r\n const [activeButton, setActiveButton] = useState(\"ongoing\");\r\n\r\n const handleButtonClick = (type) => {\r\n setActiveButton(type);\r\n };\r\n const [activecourseButton, setActivecourseButton] = useState(\"course\");\r\n\r\n const handlecourseButtonClick = (type) => {\r\n setActivecourseButton(type);\r\n };\r\n return (\r\n <>\r\n
\r\n
\r\n

Progress Tracking

\r\n
\r\n
\r\n
\r\n

\r\n Stay motivated and on track with our comprehensive progress tracking feature. Monitor your achievements as you complete courses and workouts. Use this tool to gain insights into your learning and fitness journey, ensuring you stay focused and achieve your objectives!\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n handlecourseButtonClick(\"course\")}\r\n style={{ height: \"48px\", width: \"150px\" }}\r\n >\r\n {\" \"}\r\n Course\r\n \r\n\r\n handlecourseButtonClick(\"workout\")}\r\n style={{ height: \"48px\", width: \"150px\" }}\r\n >\r\n Workout Sessions\r\n \r\n
\r\n
\r\n handleButtonClick(\"ongoing\")}\r\n >\r\n Ongoing\r\n \r\n\r\n handleButtonClick(\"completed\")}\r\n >\r\n Completed\r\n \r\n
\r\n {activecourseButton === \"course\" ? (\r\n <>\r\n
\r\n {activeButton === \"ongoing\" && (\r\n <>\r\n \r\n \r\n )}\r\n {activeButton === \"completed\" && (\r\n <>\r\n \r\n \r\n )}\r\n
\r\n \r\n ) : (\r\n <>\r\n
\r\n {activeButton === \"ongoing\" && }\r\n {activeButton === \"completed\" && (\r\n \r\n )}\r\n
\r\n \r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProgressTracking;\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport ReactPlayer from 'react-player';\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst ProgressTrackingCourseContent = () => {\r\n \r\n const [showVideoModal, setShowVideoModal] = useState(false);\r\n const [currentVideoUrl, setCurrentVideoUrl] = useState('');\r\n const [showVideodoneModal, setShowVideodoneModal] = useState(false);\r\n const [duration, setDuration] = useState(0);\r\n const [watchedTime, setWatchedTime] = useState(0);\r\n const playerRef = useRef(null);\r\n const [showuploadModal, setShowuploadModal] = useState(false);\r\n const [fileSelected, setFileSelected] = useState(false);\r\n const [showAssignmentdoneModal, setShowAssignmentdoneModal] = useState(false);\r\n const [showQuizStartModal, setShowQuizStartModal] = useState(false);\r\n const [QuizCorrectAnswer, setQuizCorrectAnswer] = useState('');\r\n const [QuizCorrectAnswerValue, setQuizCorrectAnswerValue] = useState('How');\r\n const [QuizWrongAnswer, setQuizWrongAnswer] = useState('');\r\n const [QuizAnswerValue, setQuizAnswerValue] = useState('UnSelected');\r\n const [Quiznext, setQuiznext] = useState(false);\r\n const [isFigmaChecked, setIsFigmaChecked] = useState(false);\r\n const [isloading, setIsLoading] = useState(false);\r\n const [coursedetail, setcoursedetail] = useState([]);\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const courseId = queryParams.get(\"courseId\");\r\n const [openCourseId, setopenCourseId] = useState(0);\r\n const [completeCourse, setCompleteCourse] = useState(null);\r\n \r\n\r\n \r\n const [ongoingCourses, setongoingCourses] = useState([]);\r\n const getCourses = () => {\r\n \r\n let getRes = (res) => {\r\n // localStorage.setItem(\"userData\", res?.data?.user);\r\n setongoingCourses(res.courseProgress);\r\n setopenCourseId(res.courseProgress.course._id)\r\n setCompleteCourse(res)\r\n // console.log(res.onGoingCoursesInfo)\r\n };\r\n \r\n callApi(\"GET\", routes.getOneOngoingCourses+'/'+courseId, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n if (courseId) {\r\n getCourses();\r\n }\r\n }, [courseId]);\r\n const handleVideoDoneButton = () => {\r\n navigate(-1);\r\n };\r\n const handleQuizAnswerValue = (e) => {\r\n const clickedValue = e.target.value;\r\n setQuiznext(true);\r\n // Check if the clicked answer is correct\r\n if (clickedValue === QuizCorrectAnswerValue) {\r\n // If correct, set the correct answer and value to highlight success\r\n setQuizCorrectAnswer(clickedValue);\r\n setQuizAnswerValue(clickedValue);\r\n \r\n } else {\r\n // If wrong, set the clicked answer as the wrong answer\r\n setQuizWrongAnswer(clickedValue);\r\n // Highlight the clicked answer as wrong\r\n setQuizAnswerValue(clickedValue);\r\n \r\n }\r\n };\r\n const handlecourseSuccessful = () => {\r\n setShowcourseSuccessfulModal(true);\r\n // Perform payment processing logic here\r\n setShowQuizStartModal(false);\r\n };\r\n \r\n const [showcourseSuccessfulModal, setShowcourseSuccessfulModal] = useState(false);\r\n \r\n // const handleQuizAnswer = () => {\r\n // setFileSelected(true);\r\n // };\r\n const [selectedDocumentFileName, setSelectedDocumentFileName] = useState(null);\r\n const handleFileSelect = (event) => {\r\n const file = event.target.files[0];\r\n setSelectedDocumentFileName(file.name);\r\n setFileSelected(true);\r\n };\r\n const [vedioId, setvedioId] = useState('')\r\n const startVideo = (url, id) => {\r\n setCurrentVideoUrl(url);\r\n setShowVideoModal(true);\r\n setvedioId(id); \r\n };\r\n const handleVideodoneSuccessful = () => {\r\n setShowVideodoneModal(true);\r\n setShowVideoModal(false);\r\n let watchvedio = Math.round(watchedTime / 60);\r\n let totalvedio = Math.round(duration / 60)\r\n console.log(`Total video time: ${Math.round(duration / 60)} minutes`);\r\n console.log(`Watched time: ${Math.round(watchedTime / 60)} minutes`);\r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n toast.success(res.message, {\r\n autoClose: 1500\r\n })\r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n let body = {\r\n watchedDuration: watchvedio,\r\n videoDuration: totalvedio,\r\n };\r\n\r\n callApi(\"POST\", routes.markVideoComplete+'/'+openCourseId+'/'+vedioId ,body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const handleDuration = (duration) => {\r\n setDuration(duration);\r\n };\r\n\r\n const handleProgress = (state) => {\r\n setWatchedTime(state.playedSeconds);\r\n };\r\n const isVideoCompleted = (videoId) => {\r\n if (!ongoingCourses?.videos) return false;\r\n const video = ongoingCourses.videos.find(video => video?.content === videoId);\r\n return video ? video?.completed : false;\r\n getCourses();\r\n };\r\n const checkIfCourseCompleted = () => {\r\n if (completeCourse && completeCourse.totalVideos === completeCourse.watchedVideos) {\r\n // console.log(\"Workout is completed\");\r\n\r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n toast.success(res.message, {\r\n autoClose: 1500\r\n })\r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n \r\n callApi(\"POST\", routes.markCourseComplete+'/'+openCourseId, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n \r\n }\r\n };\r\n\r\n useEffect(() => {\r\n checkIfCourseCompleted();\r\n }, [completeCourse]);\r\n const closeModal = () => {\r\n setShowVideodoneModal(false);\r\n };\r\n\r\n const handleuploadModal = () => {\r\n setShowuploadModal(true);\r\n setShowAssignmentdoneModal(false);\r\n // Perform payment processing logic here\r\n };\r\n const handleAssignmentdone = () => {\r\n setShowAssignmentdoneModal(true);\r\n setShowuploadModal(false);\r\n // Perform payment processing logic here\r\n };\r\n const handleQuizStart = () => {\r\n // setShowAssignmentdoneModal(false);\r\n setShowQuizStartModal(true);\r\n };\r\n useEffect(() => {\r\n let timer;\r\n if (showVideodoneModal ) {\r\n timer = setTimeout(() => {\r\n setShowVideodoneModal(false);\r\n // setShowuploadModal(true);\r\n setShowcourseSuccessfulModal(false);\r\n }, 2000);\r\n }\r\n if ( showcourseSuccessfulModal) {\r\n setIsFigmaChecked(true);\r\n timer = setTimeout(() => {\r\n setShowcourseSuccessfulModal(false);\r\n }, 2000);\r\n }\r\n return () => clearTimeout(timer);\r\n }, [showVideodoneModal, showcourseSuccessfulModal]);\r\n \r\n return (\r\n <>\r\n
\r\n
\r\n

Progress Tracking

\r\n
\r\n
\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, consectetur adipiscing elit, consectetur adipiscing elit, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore consectetur adipiscing elit,sed do eiusmod tempor incididunt ut labore

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Course Content\r\n {ongoingCourses?.course?.content && ongoingCourses?.course?.content.map((content, index) => (
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{content?.contentTitle}

\r\n
\r\n
\r\n {isVideoCompleted(content?._id)?: startVideo(content?.contentUrl, content?._id)}>}\r\n
\r\n
\r\n
\r\n
))}\r\n{/*
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

Why Using Figma

\r\n
\r\n
\r\n startvedio()}>\r\n
\r\n
\r\n
\r\n \r\n
*/}\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n View Assignments\r\n \r\n
\r\n
\r\n \r\n View Quizes\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n{showVideoModal && (\r\n
\r\n
\r\n
\r\n {/*
\r\n
Payment Successful
\r\n \r\n
*/}\r\n
\r\n \r\n \r\n\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n {showVideodoneModal && (\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n

Video Completed Successfully

\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n {showuploadModal && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"Upload\r\n {selectedDocumentFileName ? selectedDocumentFileName :'Upload Document'}\r\n
\r\n \r\n
\r\n
\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n\r\n {fileSelected && (\r\n <>\r\n
\r\n \r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )}\r\n{showAssignmentdoneModal && (\r\n
\r\n
\r\n
\r\n {/*
\r\n
Payment Successful
\r\n \r\n
*/}\r\n
\r\n \r\n \"\"\r\n

Submit Assignment

\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n \r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n {showQuizStartModal && (\r\n
\r\n
\r\n
\r\n {/*
\r\n
Payment Successful
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n
\r\n 1/10\r\n
\r\n
\r\n Quiz\r\n
\r\n
\r\n\r\n
\r\n
\r\n {/* 70% */}\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
........ lorem ipsum dolor set amet?
\r\n
\r\n \r\n \r\n How\r\n\r\n\r\n\r\n What\r\n\r\n\r\n\r\n Which\r\n\r\n\r\n\r\n Where\r\n \r\n\r\n {Quiznext ? <>\r\n

Correct Answer is: {QuizCorrectAnswerValue}

\r\n \r\n :}\r\n\r\n
\r\n\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n\r\n{showcourseSuccessfulModal && (\r\n
\r\n
\r\n
\r\n {/*
\r\n
Payment Successful
\r\n \r\n
*/}\r\n
\r\n \r\n \"\"\r\n

Congratulation! Course Completed Successfully!

\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ProgressTrackingCourseContent","import React, { useEffect, useState } from 'react';\r\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst ProgressTrackingWorkoutContent = () => {\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const workoutId = queryParams.get(\"workoutId\");\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [ongoingWorkout, setOngoingWorkout] = useState([]);\r\n const [completeWorkout, setCompleteWorkout] = useState(null);\r\n const [openWorkoutId, setopenWorkoutId] = useState(0);\r\n\r\n const getWorkout = () => {\r\n callApi(\"GET\", routes.getOneOngoingWorkout+'/'+workoutId, null, setIsLoading, handleGetWorkoutResponse, handleError);\r\n };\r\n\r\n const handleGetWorkoutResponse = (res) => {\r\n setCompleteWorkout(res);\r\n setOngoingWorkout(res.progressWorkout);\r\n setopenWorkoutId(res?.progressWorkout?.workout?._id)\r\n };\r\n\r\n const handleError = (error) => {\r\n console.log(\"Error fetching workout:\", error);\r\n };\r\n\r\n useEffect(() => {\r\n if (workoutId) {\r\n getWorkout();\r\n }\r\n }, [workoutId]);\r\n\r\n const isVideoCompleted = (videoId) => {\r\n if (!ongoingWorkout?.workoutVideos) return false;\r\n const video = ongoingWorkout.workoutVideos.find(video => video?.video === videoId);\r\n return video ? video.completed : false;\r\n };\r\n\r\n const checkIfWorkoutCompleted = () => {\r\n if (completeWorkout && completeWorkout.totalVideos === completeWorkout.watchedVideos) {\r\n // console.log(\"Workout is completed\");\r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n toast.success(res.message, {\r\n autoClose: 1500\r\n })\r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n \r\n callApi(\"POST\", routes.markWorkoutComplete+'/'+openWorkoutId, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n checkIfWorkoutCompleted();\r\n }, [completeWorkout]);\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n

Progress Tracking

\r\n
\r\n
\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {ongoingWorkout && ongoingWorkout?.workout?.workoutActivity.map((workout, index) => (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"Workout\"\r\n
\r\n
\r\n
\r\n \r\n
{workout?.title}
\r\n \r\n

{workout?.activityDuration.duration} {workout?.activityDuration.unit}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProgressTrackingWorkoutContent;\r\n","import React from 'react';\r\n\r\nconst Notifications = () => {\r\n return (\r\n
\r\n
\r\n

Notification

\r\n
\r\n
\r\n
\r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, consectetur adipiscing elit, consectetur adipiscing elit, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore consectetur adipiscing elit,sed do eiusmod tempor incididunt ut labore\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Notification

\r\n
\r\n {/* Render 5 notifications */}\r\n {[...Array(5)].map((index) => (\r\n
\r\n
\r\n
\r\n \r\n \"avatar\"\r\n \r\n
\r\n
\r\n
\r\n

Title

\r\n

02 min ago

\r\n
\r\n Lorem Ipsum is simply dummy text of the printing and typesetting industry.Loremb Ipsum has been the industrsccsy's...\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Notifications;\r\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n","export const EMPTY_OBJ = {};\r\nexport const EMPTY_ARR = [];\r\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\r\n","import { EMPTY_ARR } from \"./constants\";\r\n\r\n/**\r\n * Assign properties from `props` to `obj`\r\n * @template O, P The obj and props types\r\n * @param {O} obj The object to copy properties to\r\n * @param {P} props The object to copy properties from\r\n * @returns {O & P}\r\n */\r\nexport function assign(obj, props) {\r\n\t// @ts-ignore We change the type of `obj` to be `O & P`\r\n\tfor (let i in props) obj[i] = props[i];\r\n\treturn /** @type {O & P} */ (obj);\r\n}\r\n\r\n/**\r\n * Remove a child node from its parent if attached. This is a workaround for\r\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\r\n * is smaller than including a dedicated polyfill.\r\n * @param {Node} node The node to remove\r\n */\r\nexport function removeNode(node) {\r\n\tlet parentNode = node.parentNode;\r\n\tif (parentNode) parentNode.removeChild(node);\r\n}\r\n\r\nexport const slice = EMPTY_ARR.slice;\r\n","import { _catchError } from './diff/catch-error';\r\n\r\n/**\r\n * The `option` object can potentially contain callback functions\r\n * that are called during various stages of our renderer. This is the\r\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\r\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\r\n * for a full list of available option hooks (most editors/IDEs allow you to\r\n * ctrl+click or cmd+click on mac the type definition below).\r\n * @type {import('./internal').Options}\r\n */\r\nconst options = {\r\n\t_catchError\r\n};\r\n\r\nexport default options;\r\n","import { slice } from './util';\r\nimport options from './options';\r\n\r\nlet vnodeId = 0;\r\n\r\n/**\r\n * Create an virtual node (used for JSX)\r\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\r\n * constructor for this virtual node\r\n * @param {object | null | undefined} [props] The properties of the virtual node\r\n * @param {Array} [children] The children of the virtual node\r\n * @returns {import('./internal').VNode}\r\n */\r\nexport function createElement(type, props, children) {\r\n\tlet normalizedProps = {},\r\n\t\tkey,\r\n\t\tref,\r\n\t\ti;\r\n\tfor (i in props) {\r\n\t\tif (i == 'key') key = props[i];\r\n\t\telse if (i == 'ref') ref = props[i];\r\n\t\telse normalizedProps[i] = props[i];\r\n\t}\r\n\r\n\tif (arguments.length > 2) {\r\n\t\tnormalizedProps.children =\r\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\r\n\t}\r\n\r\n\t// If a Component VNode, check for and apply defaultProps\r\n\t// Note: type may be undefined in development, must never error here.\r\n\tif (typeof type == 'function' && type.defaultProps != null) {\r\n\t\tfor (i in type.defaultProps) {\r\n\t\t\tif (normalizedProps[i] === undefined) {\r\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn createVNode(type, normalizedProps, key, ref, null);\r\n}\r\n\r\n/**\r\n * Create a VNode (used internally by Preact)\r\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\r\n * Constructor for this virtual node\r\n * @param {object | string | number | null} props The properties of this virtual node.\r\n * If this virtual node represents a text node, this is the text of the node (string or number).\r\n * @param {string | number | null} key The key for this virtual node, used when\r\n * diffing it against its children\r\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\r\n * receive a reference to its created child\r\n * @returns {import('./internal').VNode}\r\n */\r\nexport function createVNode(type, props, key, ref, original) {\r\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\r\n\t// Do not inline into createElement and coerceToVNode!\r\n\tconst vnode = {\r\n\t\ttype,\r\n\t\tprops,\r\n\t\tkey,\r\n\t\tref,\r\n\t\t_children: null,\r\n\t\t_parent: null,\r\n\t\t_depth: 0,\r\n\t\t_dom: null,\r\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\r\n\t\t// be set to dom.nextSibling which can return `null` and it is important\r\n\t\t// to be able to distinguish between an uninitialized _nextDom and\r\n\t\t// a _nextDom that has been set to `null`\r\n\t\t_nextDom: undefined,\r\n\t\t_component: null,\r\n\t\t_hydrating: null,\r\n\t\tconstructor: undefined,\r\n\t\t_original: original == null ? ++vnodeId : original\r\n\t};\r\n\r\n\t// Only invoke the vnode hook if this was *not* a direct copy:\r\n\tif (original == null && options.vnode != null) options.vnode(vnode);\r\n\r\n\treturn vnode;\r\n}\r\n\r\nexport function createRef() {\r\n\treturn { current: null };\r\n}\r\n\r\nexport function Fragment(props) {\r\n\treturn props.children;\r\n}\r\n\r\n/**\r\n * Check if a the argument is a valid Preact VNode.\r\n * @param {*} vnode\r\n * @returns {vnode is import('./internal').VNode}\r\n */\r\nexport const isValidElement = vnode =>\r\n\tvnode != null && vnode.constructor === undefined;\r\n","import { assign } from './util';\r\nimport { diff, commitRoot } from './diff/index';\r\nimport options from './options';\r\nimport { Fragment } from './create-element';\r\n\r\n/**\r\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\r\n * trigger rendering\r\n * @param {object} props The initial component props\r\n * @param {object} context The initial context from parent components'\r\n * getChildContext\r\n */\r\nexport function Component(props, context) {\r\n\tthis.props = props;\r\n\tthis.context = context;\r\n}\r\n\r\n/**\r\n * Update component state and schedule a re-render.\r\n * @this {import('./internal').Component}\r\n * @param {object | ((s: object, p: object) => object)} update A hash of state\r\n * properties to update with new values or a function that given the current\r\n * state and props returns a new partial state\r\n * @param {() => void} [callback] A function to be called once component state is\r\n * updated\r\n */\r\nComponent.prototype.setState = function(update, callback) {\r\n\t// only clone state when copying to nextState the first time.\r\n\tlet s;\r\n\tif (this._nextState != null && this._nextState !== this.state) {\r\n\t\ts = this._nextState;\r\n\t} else {\r\n\t\ts = this._nextState = assign({}, this.state);\r\n\t}\r\n\r\n\tif (typeof update == 'function') {\r\n\t\t// Some libraries like `immer` mark the current state as readonly,\r\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\r\n\t\tupdate = update(assign({}, s), this.props);\r\n\t}\r\n\r\n\tif (update) {\r\n\t\tassign(s, update);\r\n\t}\r\n\r\n\t// Skip update if updater function returned null\r\n\tif (update == null) return;\r\n\r\n\tif (this._vnode) {\r\n\t\tif (callback) this._renderCallbacks.push(callback);\r\n\t\tenqueueRender(this);\r\n\t}\r\n};\r\n\r\n/**\r\n * Immediately perform a synchronous re-render of the component\r\n * @this {import('./internal').Component}\r\n * @param {() => void} [callback] A function to be called after component is\r\n * re-rendered\r\n */\r\nComponent.prototype.forceUpdate = function(callback) {\r\n\tif (this._vnode) {\r\n\t\t// Set render mode so that we can differentiate where the render request\r\n\t\t// is coming from. We need this because forceUpdate should never call\r\n\t\t// shouldComponentUpdate\r\n\t\tthis._force = true;\r\n\t\tif (callback) this._renderCallbacks.push(callback);\r\n\t\tenqueueRender(this);\r\n\t}\r\n};\r\n\r\n/**\r\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\r\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\r\n * @param {object} props Props (eg: JSX attributes) received from parent\r\n * element/component\r\n * @param {object} state The component's current state\r\n * @param {object} context Context object, as returned by the nearest\r\n * ancestor's `getChildContext()`\r\n * @returns {import('./index').ComponentChildren | void}\r\n */\r\nComponent.prototype.render = Fragment;\r\n\r\n/**\r\n * @param {import('./internal').VNode} vnode\r\n * @param {number | null} [childIndex]\r\n */\r\nexport function getDomSibling(vnode, childIndex) {\r\n\tif (childIndex == null) {\r\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\r\n\t\treturn vnode._parent\r\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\r\n\t\t\t: null;\r\n\t}\r\n\r\n\tlet sibling;\r\n\tfor (; childIndex < vnode._children.length; childIndex++) {\r\n\t\tsibling = vnode._children[childIndex];\r\n\r\n\t\tif (sibling != null && sibling._dom != null) {\r\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\r\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\r\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\r\n\t\t\treturn sibling._dom;\r\n\t\t}\r\n\t}\r\n\r\n\t// If we get here, we have not found a DOM node in this vnode's children.\r\n\t// We must resume from this vnode's sibling (in it's parent _children array)\r\n\t// Only climb up and search the parent if we aren't searching through a DOM\r\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\r\n\t// the search)\r\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\r\n}\r\n\r\n/**\r\n * Trigger in-place re-rendering of a component.\r\n * @param {import('./internal').Component} component The component to rerender\r\n */\r\nfunction renderComponent(component) {\r\n\tlet vnode = component._vnode,\r\n\t\toldDom = vnode._dom,\r\n\t\tparentDom = component._parentDom;\r\n\r\n\tif (parentDom) {\r\n\t\tlet commitQueue = [];\r\n\t\tconst oldVNode = assign({}, vnode);\r\n\t\toldVNode._original = vnode._original + 1;\r\n\r\n\t\tdiff(\r\n\t\t\tparentDom,\r\n\t\t\tvnode,\r\n\t\t\toldVNode,\r\n\t\t\tcomponent._globalContext,\r\n\t\t\tparentDom.ownerSVGElement !== undefined,\r\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\r\n\t\t\tcommitQueue,\r\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\r\n\t\t\tvnode._hydrating\r\n\t\t);\r\n\t\tcommitRoot(commitQueue, vnode);\r\n\r\n\t\tif (vnode._dom != oldDom) {\r\n\t\t\tupdateParentDomPointers(vnode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {import('./internal').VNode} vnode\r\n */\r\nfunction updateParentDomPointers(vnode) {\r\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\r\n\t\tvnode._dom = vnode._component.base = null;\r\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\r\n\t\t\tlet child = vnode._children[i];\r\n\t\t\tif (child != null && child._dom != null) {\r\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn updateParentDomPointers(vnode);\r\n\t}\r\n}\r\n\r\n/**\r\n * The render queue\r\n * @type {Array}\r\n */\r\nlet rerenderQueue = [];\r\n\r\n/**\r\n * Asynchronously schedule a callback\r\n * @type {(cb: () => void) => void}\r\n */\r\n/* istanbul ignore next */\r\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\r\nconst defer =\r\n\ttypeof Promise == 'function'\r\n\t\t? Promise.prototype.then.bind(Promise.resolve())\r\n\t\t: setTimeout;\r\n\r\n/*\r\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\r\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\r\n * do, and when their effects will be applied. See the links below for some further reading on designing\r\n * asynchronous APIs.\r\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\r\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\r\n */\r\n\r\nlet prevDebounce;\r\n\r\n/**\r\n * Enqueue a rerender of a component\r\n * @param {import('./internal').Component} c The component to rerender\r\n */\r\nexport function enqueueRender(c) {\r\n\tif (\r\n\t\t(!c._dirty &&\r\n\t\t\t(c._dirty = true) &&\r\n\t\t\trerenderQueue.push(c) &&\r\n\t\t\t!process._rerenderCount++) ||\r\n\t\tprevDebounce !== options.debounceRendering\r\n\t) {\r\n\t\tprevDebounce = options.debounceRendering;\r\n\t\t(prevDebounce || defer)(process);\r\n\t}\r\n}\r\n\r\n/** Flush the render queue by rerendering all queued components */\r\nfunction process() {\r\n\tlet queue;\r\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\r\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\r\n\t\trerenderQueue = [];\r\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\r\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\r\n\t\tqueue.some(c => {\r\n\t\t\tif (c._dirty) renderComponent(c);\r\n\t\t});\r\n\t}\r\n}\r\nprocess._rerenderCount = 0;\r\n","import { diff, unmount, applyRef } from './index';\r\nimport { createVNode, Fragment } from '../create-element';\r\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\r\nimport { getDomSibling } from '../component';\r\n\r\n/**\r\n * Diff the children of a virtual node\r\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\r\n * children are being diffed\r\n * @param {import('../internal').ComponentChildren[]} renderResult\r\n * @param {import('../internal').VNode} newParentVNode The new virtual\r\n * node whose children should be diff'ed against oldParentVNode\r\n * @param {import('../internal').VNode} oldParentVNode The old virtual\r\n * node whose children should be diff'ed against newParentVNode\r\n * @param {object} globalContext The current context object - modified by getChildContext\r\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\r\n * @param {Array} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\r\n * element any new dom elements should be placed around. Likely `null` on first\r\n * render (except when hydrating). Can be a sibling DOM element when diffing\r\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\r\n * @param {boolean} isHydrating Whether or not we are in hydration\r\n */\r\nexport function diffChildren(\r\n\tparentDom,\r\n\trenderResult,\r\n\tnewParentVNode,\r\n\toldParentVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\toldDom,\r\n\tisHydrating\r\n) {\r\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\r\n\r\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\r\n\t// as EMPTY_OBJ._children should be `undefined`.\r\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\r\n\r\n\tlet oldChildrenLength = oldChildren.length;\r\n\r\n\tnewParentVNode._children = [];\r\n\tfor (i = 0; i < renderResult.length; i++) {\r\n\t\tchildVNode = renderResult[i];\r\n\r\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\r\n\t\t\tchildVNode = newParentVNode._children[i] = null;\r\n\t\t}\r\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\r\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\r\n\t\t// it's own DOM & etc. pointers\r\n\t\telse if (\r\n\t\t\ttypeof childVNode == 'string' ||\r\n\t\t\ttypeof childVNode == 'number' ||\r\n\t\t\t// eslint-disable-next-line valid-typeof\r\n\t\t\ttypeof childVNode == 'bigint'\r\n\t\t) {\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode\r\n\t\t\t);\r\n\t\t} else if (Array.isArray(childVNode)) {\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tFragment,\r\n\t\t\t\t{ children: childVNode },\r\n\t\t\t\tnull,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull\r\n\t\t\t);\r\n\t\t} else if (childVNode._depth > 0) {\r\n\t\t\t// VNode is already in use, clone it. This can happen in the following\r\n\t\t\t// scenario:\r\n\t\t\t// const reuse =
\r\n\t\t\t//
{reuse}{reuse}
\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tchildVNode.type,\r\n\t\t\t\tchildVNode.props,\r\n\t\t\t\tchildVNode.key,\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode._original\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\r\n\t\t}\r\n\r\n\t\t// Terser removes the `continue` here and wraps the loop body\r\n\t\t// in a `if (childVNode) { ... } condition\r\n\t\tif (childVNode == null) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tchildVNode._parent = newParentVNode;\r\n\t\tchildVNode._depth = newParentVNode._depth + 1;\r\n\r\n\t\t// Check if we find a corresponding element in oldChildren.\r\n\t\t// If found, delete the array item by setting to `undefined`.\r\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\r\n\t\t// (holes).\r\n\t\toldVNode = oldChildren[i];\r\n\r\n\t\tif (\r\n\t\t\toldVNode === null ||\r\n\t\t\t(oldVNode &&\r\n\t\t\t\tchildVNode.key == oldVNode.key &&\r\n\t\t\t\tchildVNode.type === oldVNode.type)\r\n\t\t) {\r\n\t\t\toldChildren[i] = undefined;\r\n\t\t} else {\r\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\r\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\r\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\r\n\t\t\t\toldVNode = oldChildren[j];\r\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\r\n\t\t\t\t// We always match by type (in either case).\r\n\t\t\t\tif (\r\n\t\t\t\t\toldVNode &&\r\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\r\n\t\t\t\t\tchildVNode.type === oldVNode.type\r\n\t\t\t\t) {\r\n\t\t\t\t\toldChildren[j] = undefined;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\toldVNode = null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\toldVNode = oldVNode || EMPTY_OBJ;\r\n\r\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\r\n\t\tdiff(\r\n\t\t\tparentDom,\r\n\t\t\tchildVNode,\r\n\t\t\toldVNode,\r\n\t\t\tglobalContext,\r\n\t\t\tisSvg,\r\n\t\t\texcessDomChildren,\r\n\t\t\tcommitQueue,\r\n\t\t\toldDom,\r\n\t\t\tisHydrating\r\n\t\t);\r\n\r\n\t\tnewDom = childVNode._dom;\r\n\r\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\r\n\t\t\tif (!refs) refs = [];\r\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\r\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\r\n\t\t}\r\n\r\n\t\tif (newDom != null) {\r\n\t\t\tif (firstChildDom == null) {\r\n\t\t\t\tfirstChildDom = newDom;\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\ttypeof childVNode.type == 'function' &&\r\n\t\t\t\tchildVNode._children === oldVNode._children\r\n\t\t\t) {\r\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\r\n\t\t\t\t\tchildVNode,\r\n\t\t\t\t\toldDom,\r\n\t\t\t\t\tparentDom\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\toldDom = placeChild(\r\n\t\t\t\t\tparentDom,\r\n\t\t\t\t\tchildVNode,\r\n\t\t\t\t\toldVNode,\r\n\t\t\t\t\toldChildren,\r\n\t\t\t\t\tnewDom,\r\n\t\t\t\t\toldDom\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof newParentVNode.type == 'function') {\r\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\r\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\r\n\t\t\t\t//\r\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\r\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\r\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\r\n\t\t\t\t// node's nextSibling.\r\n\t\t\t\tnewParentVNode._nextDom = oldDom;\r\n\t\t\t}\r\n\t\t} else if (\r\n\t\t\toldDom &&\r\n\t\t\toldVNode._dom == oldDom &&\r\n\t\t\toldDom.parentNode != parentDom\r\n\t\t) {\r\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\r\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\r\n\t\t\toldDom = getDomSibling(oldVNode);\r\n\t\t}\r\n\t}\r\n\r\n\tnewParentVNode._dom = firstChildDom;\r\n\r\n\t// Remove remaining oldChildren if there are any.\r\n\tfor (i = oldChildrenLength; i--; ) {\r\n\t\tif (oldChildren[i] != null) {\r\n\t\t\tif (\r\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\r\n\t\t\t\toldChildren[i]._dom != null &&\r\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\r\n\t\t\t) {\r\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\r\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\r\n\t\t\t\t// _nextDom to it\r\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\r\n\t\t\t}\r\n\r\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\r\n\t\t}\r\n\t}\r\n\r\n\t// Set refs only after unmount\r\n\tif (refs) {\r\n\t\tfor (i = 0; i < refs.length; i++) {\r\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction reorderChildren(childVNode, oldDom, parentDom) {\r\n\t// Note: VNodes in nested suspended trees may be missing _children.\r\n\tlet c = childVNode._children;\r\n\tlet tmp = 0;\r\n\tfor (; c && tmp < c.length; tmp++) {\r\n\t\tlet vnode = c[tmp];\r\n\t\tif (vnode) {\r\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\r\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\r\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\r\n\t\t\t// (childVNode here).\r\n\t\t\tvnode._parent = childVNode;\r\n\r\n\t\t\tif (typeof vnode.type == 'function') {\r\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\r\n\t\t\t} else {\r\n\t\t\t\toldDom = placeChild(\r\n\t\t\t\t\tparentDom,\r\n\t\t\t\t\tvnode,\r\n\t\t\t\t\tvnode,\r\n\t\t\t\t\tc,\r\n\t\t\t\t\tvnode._dom,\r\n\t\t\t\t\toldDom\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn oldDom;\r\n}\r\n\r\n/**\r\n * Flatten and loop through the children of a virtual node\r\n * @param {import('../index').ComponentChildren} children The unflattened\r\n * children of a virtual node\r\n * @returns {import('../internal').VNode[]}\r\n */\r\nexport function toChildArray(children, out) {\r\n\tout = out || [];\r\n\tif (children == null || typeof children == 'boolean') {\r\n\t} else if (Array.isArray(children)) {\r\n\t\tchildren.some(child => {\r\n\t\t\ttoChildArray(child, out);\r\n\t\t});\r\n\t} else {\r\n\t\tout.push(children);\r\n\t}\r\n\treturn out;\r\n}\r\n\r\nfunction placeChild(\r\n\tparentDom,\r\n\tchildVNode,\r\n\toldVNode,\r\n\toldChildren,\r\n\tnewDom,\r\n\toldDom\r\n) {\r\n\tlet nextDom;\r\n\tif (childVNode._nextDom !== undefined) {\r\n\t\t// Only Fragments or components that return Fragment like VNodes will\r\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\r\n\t\t// of last DOM child of this child VNode\r\n\t\tnextDom = childVNode._nextDom;\r\n\r\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\r\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\r\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\r\n\t\t// can clean up the property\r\n\t\tchildVNode._nextDom = undefined;\r\n\t} else if (\r\n\t\toldVNode == null ||\r\n\t\tnewDom != oldDom ||\r\n\t\tnewDom.parentNode == null\r\n\t) {\r\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\r\n\t\t\tparentDom.appendChild(newDom);\r\n\t\t\tnextDom = null;\r\n\t\t} else {\r\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\r\n\t\t\t// - className --> class\r\n\t\t\tname = name.replace(/xlink[H:h]/, 'h').replace(/sName$/, 's');\r\n\t\t} else if (\r\n\t\t\tname !== 'href' &&\r\n\t\t\tname !== 'list' &&\r\n\t\t\tname !== 'form' &&\r\n\t\t\t// Default value in browsers is `-1` and an empty string is\r\n\t\t\t// cast to `0` instead\r\n\t\t\tname !== 'tabIndex' &&\r\n\t\t\tname !== 'download' &&\r\n\t\t\tname in dom\r\n\t\t) {\r\n\t\t\ttry {\r\n\t\t\t\tdom[name] = value == null ? '' : value;\r\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\r\n\t\t\t\tbreak o;\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\t// ARIA-attributes have a different notion of boolean values.\r\n\t\t// The value `false` is different from the attribute not\r\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\r\n\t\t// ARIA-attributes we could treat false as a removal, but the\r\n\t\t// amount of exceptions would cost us too many bytes. On top of\r\n\t\t// that other VDOM frameworks also always stringify `false`.\r\n\r\n\t\tif (typeof value === 'function') {\r\n\t\t\t// never serialize functions as attribute values\r\n\t\t} else if (\r\n\t\t\tvalue != null &&\r\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\r\n\t\t) {\r\n\t\t\tdom.setAttribute(name, value);\r\n\t\t} else {\r\n\t\t\tdom.removeAttribute(name);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Proxy an event to hooked event handlers\r\n * @param {Event} e The event object from the browser\r\n * @private\r\n */\r\nfunction eventProxy(e) {\r\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\r\n}\r\n\r\nfunction eventProxyCapture(e) {\r\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\r\n}\r\n","import { EMPTY_OBJ } from '../constants';\r\nimport { Component, getDomSibling } from '../component';\r\nimport { Fragment } from '../create-element';\r\nimport { diffChildren } from './children';\r\nimport { diffProps, setProperty } from './props';\r\nimport { assign, removeNode, slice } from '../util';\r\nimport options from '../options';\r\n\r\n/**\r\n * Diff two virtual nodes and apply proper changes to the DOM\r\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\r\n * @param {import('../internal').VNode} newVNode The new virtual node\r\n * @param {import('../internal').VNode} oldVNode The old virtual node\r\n * @param {object} globalContext The current context object. Modified by getChildContext\r\n * @param {boolean} isSvg Whether or not this element is an SVG node\r\n * @param {Array} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\r\n * element any new dom elements should be placed around. Likely `null` on first\r\n * render (except when hydrating). Can be a sibling DOM element when diffing\r\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\r\n * @param {boolean} [isHydrating] Whether or not we are in hydration\r\n */\r\nexport function diff(\r\n\tparentDom,\r\n\tnewVNode,\r\n\toldVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\toldDom,\r\n\tisHydrating\r\n) {\r\n\tlet tmp,\r\n\t\tnewType = newVNode.type;\r\n\r\n\t// When passing through createElement it assigns the object\r\n\t// constructor as undefined. This to prevent JSON-injection.\r\n\tif (newVNode.constructor !== undefined) return null;\r\n\r\n\t// If the previous diff bailed out, resume creating/hydrating.\r\n\tif (oldVNode._hydrating != null) {\r\n\t\tisHydrating = oldVNode._hydrating;\r\n\t\toldDom = newVNode._dom = oldVNode._dom;\r\n\t\t// if we resume, we want the tree to be \"unlocked\"\r\n\t\tnewVNode._hydrating = null;\r\n\t\texcessDomChildren = [oldDom];\r\n\t}\r\n\r\n\tif ((tmp = options._diff)) tmp(newVNode);\r\n\r\n\ttry {\r\n\t\touter: if (typeof newType == 'function') {\r\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\r\n\t\t\tlet newProps = newVNode.props;\r\n\r\n\t\t\t// Necessary for createContext api. Setting this property will pass\r\n\t\t\t// the context value as `this.context` just for this component.\r\n\t\t\ttmp = newType.contextType;\r\n\t\t\tlet provider = tmp && globalContext[tmp._id];\r\n\t\t\tlet componentContext = tmp\r\n\t\t\t\t? provider\r\n\t\t\t\t\t? provider.props.value\r\n\t\t\t\t\t: tmp._defaultValue\r\n\t\t\t\t: globalContext;\r\n\r\n\t\t\t// Get component and set it to `c`\r\n\t\t\tif (oldVNode._component) {\r\n\t\t\t\tc = newVNode._component = oldVNode._component;\r\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\r\n\t\t\t} else {\r\n\t\t\t\t// Instantiate the new component\r\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\r\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\r\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\r\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\r\n\t\t\t\t\tc.constructor = newType;\r\n\t\t\t\t\tc.render = doRender;\r\n\t\t\t\t}\r\n\t\t\t\tif (provider) provider.sub(c);\r\n\r\n\t\t\t\tc.props = newProps;\r\n\t\t\t\tif (!c.state) c.state = {};\r\n\t\t\t\tc.context = componentContext;\r\n\t\t\t\tc._globalContext = globalContext;\r\n\t\t\t\tisNew = c._dirty = true;\r\n\t\t\t\tc._renderCallbacks = [];\r\n\t\t\t}\r\n\r\n\t\t\t// Invoke getDerivedStateFromProps\r\n\t\t\tif (c._nextState == null) {\r\n\t\t\t\tc._nextState = c.state;\r\n\t\t\t}\r\n\t\t\tif (newType.getDerivedStateFromProps != null) {\r\n\t\t\t\tif (c._nextState == c.state) {\r\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tassign(\r\n\t\t\t\t\tc._nextState,\r\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\toldProps = c.props;\r\n\t\t\toldState = c.state;\r\n\r\n\t\t\t// Invoke pre-render lifecycle methods\r\n\t\t\tif (isNew) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\r\n\t\t\t\t\tc.componentWillMount != null\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.componentWillMount();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentDidMount != null) {\r\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (\r\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\r\n\t\t\t\t\tnewProps !== oldProps &&\r\n\t\t\t\t\tc.componentWillReceiveProps != null\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\t(!c._force &&\r\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\r\n\t\t\t\t\t\tc.shouldComponentUpdate(\r\n\t\t\t\t\t\t\tnewProps,\r\n\t\t\t\t\t\t\tc._nextState,\r\n\t\t\t\t\t\t\tcomponentContext\r\n\t\t\t\t\t\t) === false) ||\r\n\t\t\t\t\tnewVNode._original === oldVNode._original\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.props = newProps;\r\n\t\t\t\t\tc.state = c._nextState;\r\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\r\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\r\n\t\t\t\t\tc._vnode = newVNode;\r\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\r\n\t\t\t\t\tnewVNode._children = oldVNode._children;\r\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\r\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (c._renderCallbacks.length) {\r\n\t\t\t\t\t\tcommitQueue.push(c);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak outer;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentWillUpdate != null) {\r\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentDidUpdate != null) {\r\n\t\t\t\t\tc._renderCallbacks.push(() => {\r\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tc.context = componentContext;\r\n\t\t\tc.props = newProps;\r\n\t\t\tc.state = c._nextState;\r\n\r\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\r\n\r\n\t\t\tc._dirty = false;\r\n\t\t\tc._vnode = newVNode;\r\n\t\t\tc._parentDom = parentDom;\r\n\r\n\t\t\ttmp = c.render(c.props, c.state, c.context);\r\n\r\n\t\t\t// Handle setState called in render, see #2553\r\n\t\t\tc.state = c._nextState;\r\n\r\n\t\t\tif (c.getChildContext != null) {\r\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\r\n\t\t\t}\r\n\r\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\r\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\r\n\t\t\t}\r\n\r\n\t\t\tlet isTopLevelFragment =\r\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\r\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\r\n\r\n\t\t\tdiffChildren(\r\n\t\t\t\tparentDom,\r\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg,\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\toldDom,\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\r\n\t\t\tc.base = newVNode._dom;\r\n\r\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\r\n\t\t\tnewVNode._hydrating = null;\r\n\r\n\t\t\tif (c._renderCallbacks.length) {\r\n\t\t\t\tcommitQueue.push(c);\r\n\t\t\t}\r\n\r\n\t\t\tif (clearProcessingException) {\r\n\t\t\t\tc._pendingError = c._processingException = null;\r\n\t\t\t}\r\n\r\n\t\t\tc._force = false;\r\n\t\t} else if (\r\n\t\t\texcessDomChildren == null &&\r\n\t\t\tnewVNode._original === oldVNode._original\r\n\t\t) {\r\n\t\t\tnewVNode._children = oldVNode._children;\r\n\t\t\tnewVNode._dom = oldVNode._dom;\r\n\t\t} else {\r\n\t\t\tnewVNode._dom = diffElementNodes(\r\n\t\t\t\toldVNode._dom,\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg,\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\r\n\t} catch (e) {\r\n\t\tnewVNode._original = null;\r\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\r\n\t\tif (isHydrating || excessDomChildren != null) {\r\n\t\t\tnewVNode._dom = oldDom;\r\n\t\t\tnewVNode._hydrating = !!isHydrating;\r\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\r\n\t\t\t// ^ could possibly be simplified to:\r\n\t\t\t// excessDomChildren.length = 0;\r\n\t\t}\r\n\t\toptions._catchError(e, newVNode, oldVNode);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').VNode} root\r\n */\r\nexport function commitRoot(commitQueue, root) {\r\n\tif (options._commit) options._commit(root, commitQueue);\r\n\r\n\tcommitQueue.some(c => {\r\n\t\ttry {\r\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\r\n\t\t\tcommitQueue = c._renderCallbacks;\r\n\t\t\tc._renderCallbacks = [];\r\n\t\t\tcommitQueue.some(cb => {\r\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\r\n\t\t\t\tcb.call(c);\r\n\t\t\t});\r\n\t\t} catch (e) {\r\n\t\t\toptions._catchError(e, c._vnode);\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Diff two virtual nodes representing DOM element\r\n * @param {import('../internal').PreactElement} dom The DOM element representing\r\n * the virtual nodes being diffed\r\n * @param {import('../internal').VNode} newVNode The new virtual node\r\n * @param {import('../internal').VNode} oldVNode The old virtual node\r\n * @param {object} globalContext The current context object\r\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\r\n * @param {*} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {boolean} isHydrating Whether or not we are in hydration\r\n * @returns {import('../internal').PreactElement}\r\n */\r\nfunction diffElementNodes(\r\n\tdom,\r\n\tnewVNode,\r\n\toldVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\tisHydrating\r\n) {\r\n\tlet oldProps = oldVNode.props;\r\n\tlet newProps = newVNode.props;\r\n\tlet nodeType = newVNode.type;\r\n\tlet i = 0;\r\n\r\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\r\n\tif (nodeType === 'svg') isSvg = true;\r\n\r\n\tif (excessDomChildren != null) {\r\n\t\tfor (; i < excessDomChildren.length; i++) {\r\n\t\t\tconst child = excessDomChildren[i];\r\n\r\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\r\n\t\t\t// argument matches an element in excessDomChildren, remove it from\r\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\r\n\t\t\tif (\r\n\t\t\t\tchild &&\r\n\t\t\t\t'setAttribute' in child === !!nodeType &&\r\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\r\n\t\t\t) {\r\n\t\t\t\tdom = child;\r\n\t\t\t\texcessDomChildren[i] = null;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (dom == null) {\r\n\t\tif (nodeType === null) {\r\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\r\n\t\t\treturn document.createTextNode(newProps);\r\n\t\t}\r\n\r\n\t\tif (isSvg) {\r\n\t\t\tdom = document.createElementNS(\r\n\t\t\t\t'http://www.w3.org/2000/svg',\r\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\r\n\t\t\t\tnodeType\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tdom = document.createElement(\r\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\r\n\t\t\t\tnodeType,\r\n\t\t\t\tnewProps.is && newProps\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// we created a new parent, so none of the previously attached children can be reused:\r\n\t\texcessDomChildren = null;\r\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\r\n\t\tisHydrating = false;\r\n\t}\r\n\r\n\tif (nodeType === null) {\r\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\r\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\r\n\t\t\tdom.data = newProps;\r\n\t\t}\r\n\t} else {\r\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\r\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\r\n\r\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\r\n\r\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\r\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\r\n\r\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\r\n\t\t// @TODO we should warn in debug mode when props don't match here.\r\n\t\tif (!isHydrating) {\r\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\r\n\t\t\t// we should read the existing DOM attributes to diff them\r\n\t\t\tif (excessDomChildren != null) {\r\n\t\t\t\toldProps = {};\r\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\r\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (newHtml || oldHtml) {\r\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\r\n\t\t\t\tif (\r\n\t\t\t\t\t!newHtml ||\r\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\r\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\r\n\t\t\t\t) {\r\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\r\n\r\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\r\n\t\tif (newHtml) {\r\n\t\t\tnewVNode._children = [];\r\n\t\t} else {\r\n\t\t\ti = newVNode.props.children;\r\n\t\t\tdiffChildren(\r\n\t\t\t\tdom,\r\n\t\t\t\tArray.isArray(i) ? i : [i],\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\texcessDomChildren\r\n\t\t\t\t\t? excessDomChildren[0]\r\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\r\n\t\t\t// Remove children that are not part of any vnode.\r\n\t\t\tif (excessDomChildren != null) {\r\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\r\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// (as above, don't diff props during hydration)\r\n\t\tif (!isHydrating) {\r\n\t\t\tif (\r\n\t\t\t\t'value' in newProps &&\r\n\t\t\t\t(i = newProps.value) !== undefined &&\r\n\t\t\t\t// #2756 For the -element the initial value is 0,\r\n\t\t\t\t// despite the attribute not being present. When the attribute\r\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\r\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\r\n\t\t\t\t(i !== oldProps.value ||\r\n\t\t\t\t\ti !== dom.value ||\r\n\t\t\t\t\t(nodeType === 'progress' && !i))\r\n\t\t\t) {\r\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\r\n\t\t\t}\r\n\t\t\tif (\r\n\t\t\t\t'checked' in newProps &&\r\n\t\t\t\t(i = newProps.checked) !== undefined &&\r\n\t\t\t\ti !== dom.checked\r\n\t\t\t) {\r\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn dom;\r\n}\r\n\r\n/**\r\n * Invoke or update a ref, depending on whether it is a function or object ref.\r\n * @param {object|function} ref\r\n * @param {any} value\r\n * @param {import('../internal').VNode} vnode\r\n */\r\nexport function applyRef(ref, value, vnode) {\r\n\ttry {\r\n\t\tif (typeof ref == 'function') ref(value);\r\n\t\telse ref.current = value;\r\n\t} catch (e) {\r\n\t\toptions._catchError(e, vnode);\r\n\t}\r\n}\r\n\r\n/**\r\n * Unmount a virtual node from the tree and apply DOM changes\r\n * @param {import('../internal').VNode} vnode The virtual node to unmount\r\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\r\n * initiated the unmount\r\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\r\n * current element is already detached from the DOM.\r\n */\r\nexport function unmount(vnode, parentVNode, skipRemove) {\r\n\tlet r;\r\n\tif (options.unmount) options.unmount(vnode);\r\n\r\n\tif ((r = vnode.ref)) {\r\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\r\n\t}\r\n\r\n\tif ((r = vnode._component) != null) {\r\n\t\tif (r.componentWillUnmount) {\r\n\t\t\ttry {\r\n\t\t\t\tr.componentWillUnmount();\r\n\t\t\t} catch (e) {\r\n\t\t\t\toptions._catchError(e, parentVNode);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tr.base = r._parentDom = null;\r\n\t}\r\n\r\n\tif ((r = vnode._children)) {\r\n\t\tfor (let i = 0; i < r.length; i++) {\r\n\t\t\tif (r[i]) {\r\n\t\t\t\tunmount(r[i], parentVNode, typeof vnode.type != 'function');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (!skipRemove && vnode._dom != null) removeNode(vnode._dom);\r\n\r\n\t// Must be set to `undefined` to properly clean up `_nextDom`\r\n\t// for which `null` is a valid value. See comment in `create-element.js`\r\n\tvnode._dom = vnode._nextDom = undefined;\r\n}\r\n\r\n/** The `.render()` method for a PFC backing instance. */\r\nfunction doRender(props, state, context) {\r\n\treturn this.constructor(props, context);\r\n}\r\n","import { EMPTY_OBJ } from './constants';\r\nimport { commitRoot, diff } from './diff/index';\r\nimport { createElement, Fragment } from './create-element';\r\nimport options from './options';\r\nimport { slice } from './util';\r\n\r\n/**\r\n * Render a Preact virtual node into a DOM element\r\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\r\n * @param {import('./internal').PreactElement} parentDom The DOM element to\r\n * render into\r\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\r\n * existing DOM tree rooted at `replaceNode`\r\n */\r\nexport function render(vnode, parentDom, replaceNode) {\r\n\tif (options._root) options._root(vnode, parentDom);\r\n\r\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\r\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\r\n\t// element..\r\n\tlet isHydrating = typeof replaceNode === 'function';\r\n\r\n\t// To be able to support calling `render()` multiple times on the same\r\n\t// DOM node, we need to obtain a reference to the previous tree. We do\r\n\t// this by assigning a new `_children` property to DOM nodes which points\r\n\t// to the last rendered tree. By default this property is not present, which\r\n\t// means that we are mounting a new tree for the first time.\r\n\tlet oldVNode = isHydrating\r\n\t\t? null\r\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\r\n\r\n\tvnode = (\r\n\t\t(!isHydrating && replaceNode) ||\r\n\t\tparentDom\r\n\t)._children = createElement(Fragment, null, [vnode]);\r\n\r\n\t// List of effects that need to be called after diffing.\r\n\tlet commitQueue = [];\r\n\tdiff(\r\n\t\tparentDom,\r\n\t\t// Determine the new vnode tree and store it on the DOM element on\r\n\t\t// our custom `_children` property.\r\n\t\tvnode,\r\n\t\toldVNode || EMPTY_OBJ,\r\n\t\tEMPTY_OBJ,\r\n\t\tparentDom.ownerSVGElement !== undefined,\r\n\t\t!isHydrating && replaceNode\r\n\t\t\t? [replaceNode]\r\n\t\t\t: oldVNode\r\n\t\t\t? null\r\n\t\t\t: parentDom.firstChild\r\n\t\t\t? slice.call(parentDom.childNodes)\r\n\t\t\t: null,\r\n\t\tcommitQueue,\r\n\t\t!isHydrating && replaceNode\r\n\t\t\t? replaceNode\r\n\t\t\t: oldVNode\r\n\t\t\t? oldVNode._dom\r\n\t\t\t: parentDom.firstChild,\r\n\t\tisHydrating\r\n\t);\r\n\r\n\t// Flush all queued effects\r\n\tcommitRoot(commitQueue, vnode);\r\n}\r\n\r\n/**\r\n * Update an existing DOM element with data from a Preact virtual node\r\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\r\n * @param {import('./internal').PreactElement} parentDom The DOM element to\r\n * update\r\n */\r\nexport function hydrate(vnode, parentDom) {\r\n\trender(vnode, parentDom, hydrate);\r\n}\r\n","/**\r\n * Find the closest error boundary to a thrown error and call it\r\n * @param {object} error The thrown value\r\n * @param {import('../internal').VNode} vnode The vnode that threw\r\n * the error that was caught (except for unmounting when this parameter\r\n * is the highest parent that was being unmounted)\r\n */\r\nexport function _catchError(error, vnode) {\r\n\t/** @type {import('../internal').Component} */\r\n\tlet component, ctor, handled;\r\n\r\n\tfor (; (vnode = vnode._parent); ) {\r\n\t\tif ((component = vnode._component) && !component._processingException) {\r\n\t\t\ttry {\r\n\t\t\t\tctor = component.constructor;\r\n\r\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\r\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\r\n\t\t\t\t\thandled = component._dirty;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (component.componentDidCatch != null) {\r\n\t\t\t\t\tcomponent.componentDidCatch(error);\r\n\t\t\t\t\thandled = component._dirty;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\r\n\t\t\t\tif (handled) {\r\n\t\t\t\t\treturn (component._pendingError = component);\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\terror = e;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tthrow error;\r\n}\r\n","import { options, Fragment } from 'preact';\r\n\r\n/** @typedef {import('preact').VNode} VNode */\r\n\r\nlet vnodeId = 0;\r\n\r\n/**\r\n * @fileoverview\r\n * This file exports various methods that implement Babel's \"automatic\" JSX runtime API:\r\n * - jsx(type, props, key)\r\n * - jsxs(type, props, key)\r\n * - jsxDEV(type, props, key, __source, __self)\r\n *\r\n * The implementation of createVNode here is optimized for performance.\r\n * Benchmarks: https://esbench.com/bench/5f6b54a0b4632100a7dcd2b3\r\n */\r\n\r\n/**\r\n * JSX.Element factory used by Babel's {runtime:\"automatic\"} JSX transform\r\n * @param {VNode['type']} type\r\n * @param {VNode['props']} props\r\n * @param {VNode['key']} [key]\r\n * @param {string} [__source]\r\n * @param {string} [__self]\r\n */\r\nfunction createVNode(type, props, key, __source, __self) {\r\n\t// We'll want to preserve `ref` in props to get rid of the need for\r\n\t// forwardRef components in the future, but that should happen via\r\n\t// a separate PR.\r\n\tlet normalizedProps = {},\r\n\t\tref,\r\n\t\ti;\r\n\tfor (i in props) {\r\n\t\tif (i == 'ref') {\r\n\t\t\tref = props[i];\r\n\t\t} else {\r\n\t\t\tnormalizedProps[i] = props[i];\r\n\t\t}\r\n\t}\r\n\r\n\tconst vnode = {\r\n\t\ttype,\r\n\t\tprops: normalizedProps,\r\n\t\tkey,\r\n\t\tref,\r\n\t\t_children: null,\r\n\t\t_parent: null,\r\n\t\t_depth: 0,\r\n\t\t_dom: null,\r\n\t\t_nextDom: undefined,\r\n\t\t_component: null,\r\n\t\t_hydrating: null,\r\n\t\tconstructor: undefined,\r\n\t\t_original: --vnodeId,\r\n\t\t__source,\r\n\t\t__self\r\n\t};\r\n\r\n\t// If a Component VNode, check for and apply defaultProps.\r\n\t// Note: `type` is often a String, and can be `undefined` in development.\r\n\tif (typeof type === 'function' && (ref = type.defaultProps)) {\r\n\t\tfor (i in ref)\r\n\t\t\tif (typeof normalizedProps[i] === 'undefined') {\r\n\t\t\t\tnormalizedProps[i] = ref[i];\r\n\t\t\t}\r\n\t}\r\n\r\n\tif (options.vnode) options.vnode(vnode);\r\n\treturn vnode;\r\n}\r\n\r\nexport {\r\n\tcreateVNode as jsx,\r\n\tcreateVNode as jsxs,\r\n\tcreateVNode as jsxDEV,\r\n\tFragment\r\n};\r\n","function set(key: string, value: string) {\n try {\n window.localStorage[`emoji-mart.${key}`] = JSON.stringify(value)\n } catch (error) {}\n}\n\nfunction get(key: string): any {\n try {\n const value = window.localStorage[`emoji-mart.${key}`]\n\n if (value) {\n return JSON.parse(value)\n }\n } catch (error) {}\n}\n\nexport default { set, get }\n","const CACHE = new Map()\nconst VERSIONS = [\n { v: 14, emoji: '🫠' },\n { v: 13.1, emoji: '😶‍🌫️' },\n { v: 13, emoji: '🥸' },\n { v: 12.1, emoji: '🧑‍🦰' },\n { v: 12, emoji: '🥱' },\n { v: 11, emoji: '🥰' },\n { v: 5, emoji: '🤩' },\n { v: 4, emoji: '👱‍♀️' },\n { v: 3, emoji: '🤣' },\n { v: 2, emoji: '👋🏻' },\n { v: 1, emoji: '🙃' },\n]\n\nfunction latestVersion() {\n for (const { v, emoji } of VERSIONS) {\n if (isSupported(emoji)) {\n return v\n }\n }\n}\n\nfunction noCountryFlags() {\n if (isSupported('🇨🇦')) {\n return false\n }\n\n return true\n}\n\nfunction isSupported(emoji) {\n if (CACHE.has(emoji)) {\n return CACHE.get(emoji)\n }\n\n const supported = isEmojiSupported(emoji)\n CACHE.set(emoji, supported)\n\n return supported\n}\n\n// https://github.com/koala-interactive/is-emoji-supported\nconst isEmojiSupported = (() => {\n let ctx = null\n try {\n if (!navigator.userAgent.includes('jsdom')) {\n ctx = document\n .createElement('canvas')\n .getContext('2d', { willReadFrequently: true })\n }\n } catch {}\n\n // Not in browser env\n if (!ctx) {\n return () => false\n }\n\n const CANVAS_HEIGHT = 25\n const CANVAS_WIDTH = 20\n const textSize = Math.floor(CANVAS_HEIGHT / 2)\n\n // Initialize convas context\n ctx.font = textSize + 'px Arial, Sans-Serif'\n ctx.textBaseline = 'top'\n ctx.canvas.width = CANVAS_WIDTH * 2\n ctx.canvas.height = CANVAS_HEIGHT\n\n return (unicode) => {\n ctx.clearRect(0, 0, CANVAS_WIDTH * 2, CANVAS_HEIGHT)\n\n // Draw in red on the left\n ctx.fillStyle = '#FF0000'\n ctx.fillText(unicode, 0, 22)\n\n // Draw in blue on right\n ctx.fillStyle = '#0000FF'\n ctx.fillText(unicode, CANVAS_WIDTH, 22)\n\n const a = ctx.getImageData(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT).data\n const count = a.length\n let i = 0\n\n // Search the first visible pixel\n for (; i < count && !a[i + 3]; i += 4);\n\n // No visible pixel\n if (i >= count) {\n return false\n }\n\n // Emoji has immutable color, so we check the color of the emoji in two different colors\n // the result show be the same.\n const x = CANVAS_WIDTH + ((i / 4) % CANVAS_WIDTH)\n const y = Math.floor(i / 4 / CANVAS_WIDTH)\n const b = ctx.getImageData(x, y, 1, 1).data\n\n if (a[i] !== b[0] || a[i + 2] !== b[2]) {\n return false\n }\n\n // Some emojis are a contraction of different ones, so if it's not\n // supported, it will show multiple characters\n if (ctx.measureText(unicode).width >= CANVAS_WIDTH) {\n return false\n }\n\n // Supported\n return true\n }\n})()\n\nexport default { latestVersion, noCountryFlags }\n","// @ts-nocheck\nimport { Store } from '../helpers'\n\nconst DEFAULTS = [\n '+1',\n 'grinning',\n 'kissing_heart',\n 'heart_eyes',\n 'laughing',\n 'stuck_out_tongue_winking_eye',\n 'sweat_smile',\n 'joy',\n 'scream',\n 'disappointed',\n 'unamused',\n 'weary',\n 'sob',\n 'sunglasses',\n 'heart',\n]\n\nlet Index: any | null = null\n\nfunction add(emoji: { id: string }) {\n Index || (Index = Store.get('frequently') || {})\n\n const emojiId = emoji.id || emoji\n if (!emojiId) return\n\n Index[emojiId] || (Index[emojiId] = 0)\n Index[emojiId] += 1\n\n Store.set('last', emojiId)\n Store.set('frequently', Index)\n}\n\nfunction get({ maxFrequentRows, perLine }) {\n if (!maxFrequentRows) return []\n\n Index || (Index = Store.get('frequently'))\n let emojiIds = []\n\n if (!Index) {\n Index = {}\n\n for (let i in DEFAULTS.slice(0, perLine)) {\n const emojiId = DEFAULTS[i]\n\n Index[emojiId] = perLine - i\n emojiIds.push(emojiId)\n }\n\n return emojiIds\n }\n\n const max = maxFrequentRows * perLine\n const last = Store.get('last')\n\n for (let emojiId in Index) {\n emojiIds.push(emojiId)\n }\n\n emojiIds.sort((a, b) => {\n const aScore = Index[b]\n const bScore = Index[a]\n\n if (aScore == bScore) {\n return a.localeCompare(b)\n }\n\n return aScore - bScore\n })\n\n if (emojiIds.length > max) {\n const removedIds = emojiIds.slice(max)\n emojiIds = emojiIds.slice(0, max)\n\n for (let removedId of removedIds) {\n if (removedId == last) continue\n delete Index[removedId]\n }\n\n if (last && emojiIds.indexOf(last) == -1) {\n delete Index[emojiIds[emojiIds.length - 1]]\n emojiIds.splice(-1, 1, last)\n }\n\n Store.set('frequently', Index)\n }\n\n return emojiIds\n}\n\nexport default { add, get, DEFAULTS }\n","{\n \"search\": \"Search\",\n \"search_no_results_1\": \"Oh no!\",\n \"search_no_results_2\": \"That emoji couldn’t be found\",\n \"pick\": \"Pick an emoji…\",\n \"add_custom\": \"Add custom emoji\",\n \"categories\": {\n \"activity\": \"Activity\",\n \"custom\": \"Custom\",\n \"flags\": \"Flags\",\n \"foods\": \"Food & Drink\",\n \"frequent\": \"Frequently used\",\n \"nature\": \"Animals & Nature\",\n \"objects\": \"Objects\",\n \"people\": \"Smileys & People\",\n \"places\": \"Travel & Places\",\n \"search\": \"Search Results\",\n \"symbols\": \"Symbols\"\n },\n \"skins\": {\n \"choose\": \"Choose default skin tone\",\n \"1\": \"Default\",\n \"2\": \"Light\",\n \"3\": \"Medium-Light\",\n \"4\": \"Medium\",\n \"5\": \"Medium-Dark\",\n \"6\": \"Dark\"\n }\n}\n","export default {\n autoFocus: {\n value: false,\n },\n dynamicWidth: {\n value: false,\n },\n emojiButtonColors: {\n value: null,\n },\n emojiButtonRadius: {\n value: '100%',\n },\n emojiButtonSize: {\n value: 36,\n },\n emojiSize: {\n value: 24,\n },\n emojiVersion: {\n value: 14,\n choices: [1, 2, 3, 4, 5, 11, 12, 12.1, 13, 13.1, 14],\n },\n exceptEmojis: {\n value: [],\n },\n icons: {\n value: 'auto',\n choices: ['auto', 'outline', 'solid'],\n },\n locale: {\n value: 'en',\n choices: [\n 'en',\n 'ar',\n 'be',\n 'cs',\n 'de',\n 'es',\n 'fa',\n 'fi',\n 'fr',\n 'hi',\n 'it',\n 'ja',\n 'kr',\n 'nl',\n 'pl',\n 'pt',\n 'ru',\n 'sa',\n 'tr',\n 'uk',\n 'vi',\n 'zh',\n ],\n },\n maxFrequentRows: {\n value: 4,\n },\n navPosition: {\n value: 'top',\n choices: ['top', 'bottom', 'none'],\n },\n noCountryFlags: {\n value: false,\n },\n noResultsEmoji: {\n value: null,\n },\n perLine: {\n value: 9,\n },\n previewEmoji: {\n value: null,\n },\n previewPosition: {\n value: 'bottom',\n choices: ['top', 'bottom', 'none'],\n },\n searchPosition: {\n value: 'sticky',\n choices: ['sticky', 'static', 'none'],\n },\n set: {\n value: 'native',\n choices: ['native', 'apple', 'facebook', 'google', 'twitter'],\n },\n skin: {\n value: 1,\n choices: [1, 2, 3, 4, 5, 6],\n },\n skinTonePosition: {\n value: 'preview',\n choices: ['preview', 'search', 'none'],\n },\n theme: {\n value: 'auto',\n choices: ['auto', 'light', 'dark'],\n },\n\n // Data\n categories: null,\n categoryIcons: null,\n custom: null,\n data: null,\n i18n: null,\n\n // Callbacks\n getImageURL: null,\n getSpritesheetURL: null,\n onAddCustomEmoji: null,\n onClickOutside: null,\n onEmojiSelect: null,\n\n // Deprecated\n stickySearch: {\n deprecated: true,\n value: true,\n },\n}\n","// @ts-nocheck\nimport i18n_en from '@emoji-mart/data/i18n/en.json'\nimport PickerProps from './components/Picker/PickerProps'\nimport {\n FrequentlyUsed,\n NativeSupport,\n SafeFlags,\n SearchIndex,\n} from './helpers'\n\nexport let I18n = null\nexport let Data = null\n\nconst fetchCache = {}\nasync function fetchJSON(src) {\n if (fetchCache[src]) {\n return fetchCache[src]\n }\n\n const response = await fetch(src)\n const json = await response.json()\n\n fetchCache[src] = json\n return json\n}\n\nlet promise: Promise | null = null\nlet initiated = false\nlet initCallback = null\nlet initialized = false\n\nexport function init(options, { caller } = {}) {\n promise ||\n (promise = new Promise((resolve) => {\n initCallback = resolve\n }))\n\n if (options) {\n _init(options)\n } else if (caller && !initialized) {\n console.warn(\n `\\`${caller}\\` requires data to be initialized first. Promise will be pending until \\`init\\` is called.`,\n )\n }\n\n return promise\n}\n\nasync function _init(props) {\n initialized = true\n\n let { emojiVersion, set, locale } = props\n emojiVersion || (emojiVersion = PickerProps.emojiVersion.value)\n set || (set = PickerProps.set.value)\n locale || (locale = PickerProps.locale.value)\n\n if (!Data) {\n Data =\n (typeof props.data === 'function' ? await props.data() : props.data) ||\n (await fetchJSON(\n `https://cdn.jsdelivr.net/npm/@emoji-mart/data@latest/sets/${emojiVersion}/${set}.json`,\n ))\n\n Data.emoticons = {}\n Data.natives = {}\n\n Data.categories.unshift({\n id: 'frequent',\n emojis: [],\n })\n\n for (const alias in Data.aliases) {\n const emojiId = Data.aliases[alias]\n const emoji = Data.emojis[emojiId]\n if (!emoji) continue\n\n emoji.aliases || (emoji.aliases = [])\n emoji.aliases.push(alias)\n }\n\n Data.originalCategories = Data.categories\n } else {\n Data.categories = Data.categories.filter((c) => {\n const isCustom = !!c.name\n if (!isCustom) return true\n\n return false\n })\n }\n\n I18n =\n (typeof props.i18n === 'function' ? await props.i18n() : props.i18n) ||\n (locale == 'en'\n ? i18n_en\n : await fetchJSON(\n `https://cdn.jsdelivr.net/npm/@emoji-mart/data@latest/i18n/${locale}.json`,\n ))\n\n if (props.custom) {\n for (let i in props.custom) {\n i = parseInt(i)\n const category = props.custom[i]\n const prevCategory = props.custom[i - 1]\n\n if (!category.emojis || !category.emojis.length) continue\n\n category.id || (category.id = `custom_${i + 1}`)\n category.name || (category.name = I18n.categories.custom)\n\n if (prevCategory && !category.icon) {\n category.target = prevCategory.target || prevCategory\n }\n\n Data.categories.push(category)\n\n for (const emoji of category.emojis) {\n Data.emojis[emoji.id] = emoji\n }\n }\n }\n\n if (props.categories) {\n Data.categories = Data.originalCategories\n .filter((c) => {\n return props.categories.indexOf(c.id) != -1\n })\n .sort((c1, c2) => {\n const i1 = props.categories.indexOf(c1.id)\n const i2 = props.categories.indexOf(c2.id)\n\n return i1 - i2\n })\n }\n\n let latestVersionSupport = null\n let noCountryFlags = null\n if (set == 'native') {\n latestVersionSupport = NativeSupport.latestVersion()\n noCountryFlags = props.noCountryFlags || NativeSupport.noCountryFlags()\n }\n\n let categoryIndex = Data.categories.length\n let resetSearchIndex = false\n while (categoryIndex--) {\n const category = Data.categories[categoryIndex]\n\n if (category.id == 'frequent') {\n let { maxFrequentRows, perLine } = props\n\n maxFrequentRows =\n maxFrequentRows >= 0\n ? maxFrequentRows\n : PickerProps.maxFrequentRows.value\n perLine || (perLine = PickerProps.perLine.value)\n\n category.emojis = FrequentlyUsed.get({ maxFrequentRows, perLine })\n }\n\n if (!category.emojis || !category.emojis.length) {\n Data.categories.splice(categoryIndex, 1)\n continue\n }\n\n const { categoryIcons } = props\n if (categoryIcons) {\n const icon = categoryIcons[category.id]\n if (icon && !category.icon) {\n category.icon = icon\n }\n }\n\n let emojiIndex = category.emojis.length\n while (emojiIndex--) {\n const emojiId = category.emojis[emojiIndex]\n const emoji = emojiId.id ? emojiId : Data.emojis[emojiId]\n\n const ignore = () => {\n category.emojis.splice(emojiIndex, 1)\n }\n\n if (\n !emoji ||\n (props.exceptEmojis && props.exceptEmojis.includes(emoji.id))\n ) {\n ignore()\n continue\n }\n\n if (latestVersionSupport && emoji.version > latestVersionSupport) {\n ignore()\n continue\n }\n\n if (noCountryFlags && category.id == 'flags') {\n if (!SafeFlags.includes(emoji.id)) {\n ignore()\n continue\n }\n }\n\n if (!emoji.search) {\n resetSearchIndex = true\n emoji.search =\n ',' +\n [\n [emoji.id, false],\n [emoji.name, true],\n [emoji.keywords, false],\n [emoji.emoticons, false],\n ]\n .map(([strings, split]) => {\n if (!strings) return\n return (Array.isArray(strings) ? strings : [strings])\n .map((string) => {\n return (split ? string.split(/[-|_|\\s]+/) : [string]).map(\n (s) => s.toLowerCase(),\n )\n })\n .flat()\n })\n .flat()\n .filter((a) => a && a.trim())\n .join(',')\n\n if (emoji.emoticons) {\n for (const emoticon of emoji.emoticons) {\n if (Data.emoticons[emoticon]) continue\n Data.emoticons[emoticon] = emoji.id\n }\n }\n\n let skinIndex = 0\n for (const skin of emoji.skins) {\n if (!skin) continue\n skinIndex++\n\n const { native } = skin\n if (native) {\n Data.natives[native] = emoji.id\n emoji.search += `,${native}`\n }\n\n const skinShortcodes =\n skinIndex == 1 ? '' : `:skin-tone-${skinIndex}:`\n skin.shortcodes = `:${emoji.id}:${skinShortcodes}`\n }\n }\n }\n }\n\n if (resetSearchIndex) {\n SearchIndex.reset()\n }\n\n initCallback()\n}\n\nexport function getProps(props, defaultProps, element) {\n props || (props = {})\n\n const _props = {}\n for (let k in defaultProps) {\n _props[k] = getProp(k, props, defaultProps, element)\n }\n\n return _props\n}\n\nexport function getProp(propName, props, defaultProps, element) {\n const defaults = defaultProps[propName]\n let value =\n (element && element.getAttribute(propName)) ||\n (props[propName] != null && props[propName] != undefined\n ? props[propName]\n : null)\n\n if (!defaults) {\n return value\n }\n\n if (\n value != null &&\n defaults.value &&\n typeof defaults.value != typeof value\n ) {\n if (typeof defaults.value == 'boolean') {\n value = value == 'false' ? false : true\n } else {\n value = defaults.value.constructor(value)\n }\n }\n\n if (defaults.transform && value) {\n value = defaults.transform(value)\n }\n\n if (\n value == null ||\n (defaults.choices && defaults.choices.indexOf(value) == -1)\n ) {\n value = defaults.value\n }\n\n return value\n}\n","// @ts-nocheck\nimport { init, Data } from '../config'\n\nconst SHORTCODES_REGEX = /^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/\nlet Pool = null\n\nfunction get(emojiId) {\n if (emojiId.id) {\n return emojiId\n }\n\n return (\n Data.emojis[emojiId] ||\n Data.emojis[Data.aliases[emojiId]] ||\n Data.emojis[Data.natives[emojiId]]\n )\n}\n\nfunction reset() {\n Pool = null\n}\n\nasync function search(value, { maxResults, caller } = {}) {\n if (!value || !value.trim().length) return null\n maxResults || (maxResults = 90)\n\n await init(null, { caller: caller || 'SearchIndex.search' })\n\n const values = value\n .toLowerCase()\n .replace(/(\\w)-/, '$1 ')\n .split(/[\\s|,]+/)\n .filter((word, i, words) => {\n return word.trim() && words.indexOf(word) == i\n })\n\n if (!values.length) return\n\n let pool = Pool || (Pool = Object.values(Data.emojis))\n let results, scores\n\n for (const value of values) {\n if (!pool.length) break\n\n results = []\n scores = {}\n\n for (const emoji of pool) {\n if (!emoji.search) continue\n const score = emoji.search.indexOf(`,${value}`)\n if (score == -1) continue\n\n results.push(emoji)\n scores[emoji.id] || (scores[emoji.id] = 0)\n scores[emoji.id] += emoji.id == value ? 0 : score + 1\n }\n\n pool = results\n }\n\n if (results.length < 2) {\n return results\n }\n\n results.sort((a, b) => {\n const aScore = scores[a.id]\n const bScore = scores[b.id]\n\n if (aScore == bScore) {\n return a.id.localeCompare(b.id)\n }\n\n return aScore - bScore\n })\n\n if (results.length > maxResults) {\n results = results.slice(0, maxResults)\n }\n\n return results\n}\n\nexport default { search, get, reset, SHORTCODES_REGEX }\n","export { default as Store } from './store'\n\nexport { default as NativeSupport } from './native-support'\nexport { default as FrequentlyUsed } from './frequently-used'\nexport { default as SearchIndex } from './search-index'\n\nexport const SafeFlags = [\n 'checkered_flag',\n 'crossed_flags',\n 'pirate_flag',\n 'rainbow-flag',\n 'transgender_flag',\n 'triangular_flag_on_post',\n 'waving_black_flag',\n 'waving_white_flag',\n]\n","import { SearchIndex } from './helpers'\n\nexport function deepEqual(a: any, b: any): boolean {\n return (\n Array.isArray(a) &&\n Array.isArray(b) &&\n a.length === b.length &&\n a.every((val, index) => val == b[index])\n )\n}\n\nexport async function sleep(frames = 1) {\n for (let _ in [...Array(frames).keys()]) {\n await new Promise(requestAnimationFrame)\n }\n}\n\nexport function getEmojiData(emoji, { skinIndex = 0 } = {}) {\n const skin =\n emoji.skins[skinIndex] ||\n (() => {\n skinIndex = 0\n return emoji.skins[skinIndex]\n })()\n\n const emojiData: any = {\n id: emoji.id,\n name: emoji.name,\n native: skin.native,\n unified: skin.unified,\n keywords: emoji.keywords,\n shortcodes: skin.shortcodes || emoji.shortcodes,\n }\n\n if (emoji.skins.length > 1) {\n emojiData.skin = skinIndex + 1\n }\n\n if (skin.src) {\n emojiData.src = skin.src\n }\n\n if (emoji.aliases && emoji.aliases.length) {\n emojiData.aliases = emoji.aliases\n }\n\n if (emoji.emoticons && emoji.emoticons.length) {\n emojiData.emoticons = emoji.emoticons\n }\n\n return emojiData\n}\n\nexport async function getEmojiDataFromNative(nativeString) {\n const results = await SearchIndex.search(nativeString, {\n maxResults: 1,\n caller: 'getEmojiDataFromNative',\n })\n if (!results || !results.length) return null\n\n const emoji = results[0]\n let skinIndex = 0\n\n for (let skin of emoji.skins) {\n if (skin.native == nativeString) {\n break\n }\n\n skinIndex++\n }\n\n return getEmojiData(emoji, { skinIndex })\n}\n","const categories = {\n activity: {\n outline: (\n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n custom: (\n \n \n \n ),\n\n flags: {\n outline: (\n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n foods: {\n outline: (\n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n frequent: {\n outline: (\n \n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n nature: {\n outline: (\n \n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n objects: {\n outline: (\n \n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n people: {\n outline: (\n \n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n places: {\n outline: (\n \n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n symbols: {\n outline: (\n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n}\n\nconst search = {\n loupe: (\n \n \n \n ),\n\n delete: (\n \n \n \n ),\n}\n\nexport default { categories, search }\n","import { Data } from '../../config'\nimport { SearchIndex } from '../../helpers'\n\nexport default function Emoji(props) {\n let { id, skin, emoji } = props\n\n if (props.shortcodes) {\n const matches = props.shortcodes.match(SearchIndex.SHORTCODES_REGEX)\n\n if (matches) {\n id = matches[1]\n\n if (matches[2]) {\n skin = matches[2]\n }\n }\n }\n\n emoji || (emoji = SearchIndex.get(id || props.native))\n if (!emoji) return props.fallback\n\n const emojiSkin = emoji.skins[skin - 1] || emoji.skins[0]\n\n const imageSrc =\n emojiSkin.src ||\n (props.set != 'native' && !props.spritesheet\n ? typeof props.getImageURL === 'function'\n ? props.getImageURL(props.set, emojiSkin.unified)\n : `https://cdn.jsdelivr.net/npm/emoji-datasource-${props.set}@14.0.0/img/${props.set}/64/${emojiSkin.unified}.png`\n : undefined)\n\n const spritesheetSrc =\n typeof props.getSpritesheetURL === 'function'\n ? props.getSpritesheetURL(props.set)\n : `https://cdn.jsdelivr.net/npm/emoji-datasource-${props.set}@14.0.0/img/${props.set}/sheets-256/64.png`\n\n return (\n \n {imageSrc ? (\n \n ) : props.set == 'native' ? (\n \n {emojiSkin.native}\n \n ) : (\n \n )}\n \n )\n}\n","// @ts-nocheck\nimport { getProp } from '../../config'\n\nconst WindowHTMLElement =\n typeof window !== 'undefined' && window.HTMLElement\n ? window.HTMLElement\n : Object\n\nexport default class HTMLElement extends WindowHTMLElement {\n static get observedAttributes() {\n return Object.keys(this.Props)\n }\n\n constructor(props = {}) {\n super()\n this.props = props\n\n if (props.parent || props.ref) {\n let ref = null\n const parent = props.parent || (ref = props.ref && props.ref.current)\n\n if (ref) ref.innerHTML = ''\n if (parent) parent.appendChild(this)\n }\n }\n\n update(props = {}) {\n for (let k in props) {\n this.attributeChangedCallback(k, null, props[k])\n }\n }\n\n attributeChangedCallback(attr, _, newValue) {\n if (!this.component) return\n\n const value = getProp(\n attr,\n { [attr]: newValue },\n this.constructor.Props,\n this,\n )\n\n if (this.component.componentWillReceiveProps) {\n this.component.componentWillReceiveProps({ [attr]: value })\n } else {\n this.component.props[attr] = value\n this.component.forceUpdate()\n }\n }\n\n disconnectedCallback() {\n this.disconnected = true\n\n if (this.component && this.component.unregister) {\n this.component.unregister()\n }\n }\n}\n","// @ts-nocheck\nimport { HTMLElement } from '.'\n\nexport default class ShadowElement extends HTMLElement {\n constructor(props, { styles } = {}) {\n super(props)\n\n this.setShadow()\n this.injectStyles(styles)\n }\n\n setShadow() {\n this.attachShadow({ mode: 'open' })\n }\n\n injectStyles(styles) {\n if (!styles) return\n\n const style = document.createElement('style')\n style.textContent = styles\n\n this.shadowRoot.insertBefore(style, this.shadowRoot.firstChild)\n }\n}\n","import PickerProps from '../Picker/PickerProps'\n\nexport default {\n fallback: '',\n id: '',\n native: '',\n shortcodes: '',\n size: {\n value: '',\n transform: (value) => {\n // If the value is a number, then we assume it’s a pixel value.\n if (!/\\D/.test(value)) {\n return `${value}px`\n }\n\n return value\n },\n },\n\n // Shared\n set: PickerProps.set,\n skin: PickerProps.skin,\n}\n","import { render } from 'preact'\n\nimport { init, getProps } from '../../config'\nimport { HTMLElement } from '../HTMLElement'\nimport { Emoji } from '.'\nimport EmojiProps from './EmojiProps'\n\nexport default class EmojiElement extends HTMLElement {\n static Props = EmojiProps\n\n constructor(props) {\n super(props)\n }\n\n async connectedCallback() {\n const props = getProps(this.props, EmojiProps, this)\n props.element = this\n props.ref = (component) => {\n this.component = component\n }\n\n await init()\n if (this.disconnected) return\n\n render(, this)\n }\n}\n\nif (typeof customElements !== 'undefined' && !customElements.get('em-emoji')) {\n customElements.define('em-emoji', EmojiElement)\n}\n","import { options } from 'preact';\r\n\r\n/** @type {number} */\r\nlet currentIndex;\r\n\r\n/** @type {import('./internal').Component} */\r\nlet currentComponent;\r\n\r\n/** @type {number} */\r\nlet currentHook = 0;\r\n\r\n/** @type {Array} */\r\nlet afterPaintEffects = [];\r\n\r\nlet oldBeforeDiff = options._diff;\r\nlet oldBeforeRender = options._render;\r\nlet oldAfterDiff = options.diffed;\r\nlet oldCommit = options._commit;\r\nlet oldBeforeUnmount = options.unmount;\r\n\r\nconst RAF_TIMEOUT = 100;\r\nlet prevRaf;\r\n\r\noptions._diff = vnode => {\r\n\tcurrentComponent = null;\r\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\r\n};\r\n\r\noptions._render = vnode => {\r\n\tif (oldBeforeRender) oldBeforeRender(vnode);\r\n\r\n\tcurrentComponent = vnode._component;\r\n\tcurrentIndex = 0;\r\n\r\n\tconst hooks = currentComponent.__hooks;\r\n\tif (hooks) {\r\n\t\thooks._pendingEffects.forEach(invokeCleanup);\r\n\t\thooks._pendingEffects.forEach(invokeEffect);\r\n\t\thooks._pendingEffects = [];\r\n\t}\r\n};\r\n\r\noptions.diffed = vnode => {\r\n\tif (oldAfterDiff) oldAfterDiff(vnode);\r\n\r\n\tconst c = vnode._component;\r\n\tif (c && c.__hooks && c.__hooks._pendingEffects.length) {\r\n\t\tafterPaint(afterPaintEffects.push(c));\r\n\t}\r\n\tcurrentComponent = null;\r\n};\r\n\r\noptions._commit = (vnode, commitQueue) => {\r\n\tcommitQueue.some(component => {\r\n\t\ttry {\r\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\r\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\r\n\t\t\t\tcb._value ? invokeEffect(cb) : true\r\n\t\t\t);\r\n\t\t} catch (e) {\r\n\t\t\tcommitQueue.some(c => {\r\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\r\n\t\t\t});\r\n\t\t\tcommitQueue = [];\r\n\t\t\toptions._catchError(e, component._vnode);\r\n\t\t}\r\n\t});\r\n\r\n\tif (oldCommit) oldCommit(vnode, commitQueue);\r\n};\r\n\r\noptions.unmount = vnode => {\r\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\r\n\r\n\tconst c = vnode._component;\r\n\tif (c && c.__hooks) {\r\n\t\tlet hasErrored;\r\n\t\tc.__hooks._list.forEach(s => {\r\n\t\t\ttry {\r\n\t\t\t\tinvokeCleanup(s);\r\n\t\t\t} catch (e) {\r\n\t\t\t\thasErrored = e;\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\r\n\t}\r\n};\r\n\r\n/**\r\n * Get a hook's state from the currentComponent\r\n * @param {number} index The index of the hook to get\r\n * @param {number} type The index of the hook to get\r\n * @returns {any}\r\n */\r\nfunction getHookState(index, type) {\r\n\tif (options._hook) {\r\n\t\toptions._hook(currentComponent, index, currentHook || type);\r\n\t}\r\n\tcurrentHook = 0;\r\n\r\n\t// Largely inspired by:\r\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\r\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\r\n\t// Other implementations to look at:\r\n\t// * https://codesandbox.io/s/mnox05qp8\r\n\tconst hooks =\r\n\t\tcurrentComponent.__hooks ||\r\n\t\t(currentComponent.__hooks = {\r\n\t\t\t_list: [],\r\n\t\t\t_pendingEffects: []\r\n\t\t});\r\n\r\n\tif (index >= hooks._list.length) {\r\n\t\thooks._list.push({});\r\n\t}\r\n\treturn hooks._list[index];\r\n}\r\n\r\n/**\r\n * @param {import('./index').StateUpdater} [initialState]\r\n */\r\nexport function useState(initialState) {\r\n\tcurrentHook = 1;\r\n\treturn useReducer(invokeOrReturn, initialState);\r\n}\r\n\r\n/**\r\n * @param {import('./index').Reducer} reducer\r\n * @param {import('./index').StateUpdater} initialState\r\n * @param {(initialState: any) => void} [init]\r\n * @returns {[ any, (state: any) => void ]}\r\n */\r\nexport function useReducer(reducer, initialState, init) {\r\n\t/** @type {import('./internal').ReducerHookState} */\r\n\tconst hookState = getHookState(currentIndex++, 2);\r\n\thookState._reducer = reducer;\r\n\tif (!hookState._component) {\r\n\t\thookState._value = [\r\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\r\n\r\n\t\t\taction => {\r\n\t\t\t\tconst nextValue = hookState._reducer(hookState._value[0], action);\r\n\t\t\t\tif (hookState._value[0] !== nextValue) {\r\n\t\t\t\t\thookState._value = [nextValue, hookState._value[1]];\r\n\t\t\t\t\thookState._component.setState({});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\thookState._component = currentComponent;\r\n\t}\r\n\r\n\treturn hookState._value;\r\n}\r\n\r\n/**\r\n * @param {import('./internal').Effect} callback\r\n * @param {any[]} args\r\n */\r\nexport function useEffect(callback, args) {\r\n\t/** @type {import('./internal').EffectHookState} */\r\n\tconst state = getHookState(currentIndex++, 3);\r\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\r\n\t\tstate._value = callback;\r\n\t\tstate._args = args;\r\n\r\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {import('./internal').Effect} callback\r\n * @param {any[]} args\r\n */\r\nexport function useLayoutEffect(callback, args) {\r\n\t/** @type {import('./internal').EffectHookState} */\r\n\tconst state = getHookState(currentIndex++, 4);\r\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\r\n\t\tstate._value = callback;\r\n\t\tstate._args = args;\r\n\r\n\t\tcurrentComponent._renderCallbacks.push(state);\r\n\t}\r\n}\r\n\r\nexport function useRef(initialValue) {\r\n\tcurrentHook = 5;\r\n\treturn useMemo(() => ({ current: initialValue }), []);\r\n}\r\n\r\n/**\r\n * @param {object} ref\r\n * @param {() => object} createHandle\r\n * @param {any[]} args\r\n */\r\nexport function useImperativeHandle(ref, createHandle, args) {\r\n\tcurrentHook = 6;\r\n\tuseLayoutEffect(\r\n\t\t() => {\r\n\t\t\tif (typeof ref == 'function') ref(createHandle());\r\n\t\t\telse if (ref) ref.current = createHandle();\r\n\t\t},\r\n\t\targs == null ? args : args.concat(ref)\r\n\t);\r\n}\r\n\r\n/**\r\n * @param {() => any} factory\r\n * @param {any[]} args\r\n */\r\nexport function useMemo(factory, args) {\r\n\t/** @type {import('./internal').MemoHookState} */\r\n\tconst state = getHookState(currentIndex++, 7);\r\n\tif (argsChanged(state._args, args)) {\r\n\t\tstate._value = factory();\r\n\t\tstate._args = args;\r\n\t\tstate._factory = factory;\r\n\t}\r\n\r\n\treturn state._value;\r\n}\r\n\r\n/**\r\n * @param {() => void} callback\r\n * @param {any[]} args\r\n */\r\nexport function useCallback(callback, args) {\r\n\tcurrentHook = 8;\r\n\treturn useMemo(() => callback, args);\r\n}\r\n\r\n/**\r\n * @param {import('./internal').PreactContext} context\r\n */\r\nexport function useContext(context) {\r\n\tconst provider = currentComponent.context[context._id];\r\n\t// We could skip this call here, but than we'd not call\r\n\t// `options._hook`. We need to do that in order to make\r\n\t// the devtools aware of this hook.\r\n\t/** @type {import('./internal').ContextHookState} */\r\n\tconst state = getHookState(currentIndex++, 9);\r\n\t// The devtools needs access to the context object to\r\n\t// be able to pull of the default value when no provider\r\n\t// is present in the tree.\r\n\tstate._context = context;\r\n\tif (!provider) return context._defaultValue;\r\n\t// This is probably not safe to convert to \"!\"\r\n\tif (state._value == null) {\r\n\t\tstate._value = true;\r\n\t\tprovider.sub(currentComponent);\r\n\t}\r\n\treturn provider.props.value;\r\n}\r\n\r\n/**\r\n * Display a custom label for a custom hook for the devtools panel\r\n * @type {(value: T, cb?: (value: T) => string | number) => void}\r\n */\r\nexport function useDebugValue(value, formatter) {\r\n\tif (options.useDebugValue) {\r\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {(error: any) => void} cb\r\n */\r\nexport function useErrorBoundary(cb) {\r\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\r\n\tconst state = getHookState(currentIndex++, 10);\r\n\tconst errState = useState();\r\n\tstate._value = cb;\r\n\tif (!currentComponent.componentDidCatch) {\r\n\t\tcurrentComponent.componentDidCatch = err => {\r\n\t\t\tif (state._value) state._value(err);\r\n\t\t\terrState[1](err);\r\n\t\t};\r\n\t}\r\n\treturn [\r\n\t\terrState[0],\r\n\t\t() => {\r\n\t\t\terrState[1](undefined);\r\n\t\t}\r\n\t];\r\n}\r\n\r\n/**\r\n * After paint effects consumer.\r\n */\r\nfunction flushAfterPaintEffects() {\r\n\tlet component;\r\n\t// sort the queue by depth (outermost to innermost)\r\n\tafterPaintEffects.sort((a, b) => a._vnode._depth - b._vnode._depth);\r\n\twhile (component = afterPaintEffects.pop()) {\r\n\t\tif (!component._parentDom) continue;\r\n\t\ttry {\r\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\r\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\r\n\t\t\tcomponent.__hooks._pendingEffects = [];\r\n\t\t} catch (e) {\r\n\t\t\tcomponent.__hooks._pendingEffects = [];\r\n\t\t\toptions._catchError(e, component._vnode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\r\n\r\n/**\r\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\r\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\r\n * the next browser frame.\r\n *\r\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\r\n * even if RAF doesn't fire (for example if the browser tab is not visible)\r\n *\r\n * @param {() => void} callback\r\n */\r\nfunction afterNextFrame(callback) {\r\n\tconst done = () => {\r\n\t\tclearTimeout(timeout);\r\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\r\n\t\tsetTimeout(callback);\r\n\t};\r\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\r\n\r\n\tlet raf;\r\n\tif (HAS_RAF) {\r\n\t\traf = requestAnimationFrame(done);\r\n\t}\r\n}\r\n\r\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\r\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\r\n// Perhaps this is not such a big deal.\r\n/**\r\n * Schedule afterPaintEffects flush after the browser paints\r\n * @param {number} newQueueLength\r\n */\r\nfunction afterPaint(newQueueLength) {\r\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\r\n\t\tprevRaf = options.requestAnimationFrame;\r\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {import('./internal').EffectHookState} hook\r\n */\r\nfunction invokeCleanup(hook) {\r\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\r\n\t// and move the currentComponent away.\r\n\tconst comp = currentComponent;\r\n\tlet cleanup = hook._cleanup;\r\n\tif (typeof cleanup == 'function') {\r\n\t\thook._cleanup = undefined;\r\n\t\tcleanup();\r\n\t}\r\n\tcurrentComponent = comp;\r\n}\r\n\r\n/**\r\n * Invoke a Hook's effect\r\n * @param {import('./internal').EffectHookState} hook\r\n */\r\nfunction invokeEffect(hook) {\r\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\r\n\t// and move the currentComponent away.\r\n\tconst comp = currentComponent;\r\n\thook._cleanup = hook._value();\r\n\tcurrentComponent = comp;\r\n}\r\n\r\n/**\r\n * @param {any[]} oldArgs\r\n * @param {any[]} newArgs\r\n */\r\nfunction argsChanged(oldArgs, newArgs) {\r\n\treturn (\r\n\t\t!oldArgs ||\r\n\t\toldArgs.length !== newArgs.length ||\r\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\r\n\t);\r\n}\r\n\r\nfunction invokeOrReturn(arg, f) {\r\n\treturn typeof f == 'function' ? f(arg) : f;\r\n}\r\n","/**\r\n * Assign properties from `props` to `obj`\r\n * @template O, P The obj and props types\r\n * @param {O} obj The object to copy properties to\r\n * @param {P} props The object to copy properties from\r\n * @returns {O & P}\r\n */\r\nexport function assign(obj, props) {\r\n\tfor (let i in props) obj[i] = props[i];\r\n\treturn /** @type {O & P} */ (obj);\r\n}\r\n\r\n/**\r\n * Check if two objects have a different shape\r\n * @param {object} a\r\n * @param {object} b\r\n * @returns {boolean}\r\n */\r\nexport function shallowDiffers(a, b) {\r\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\r\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\r\n\treturn false;\r\n}\r\n\r\nexport function removeNode(node) {\r\n\tlet parentNode = node.parentNode;\r\n\tif (parentNode) parentNode.removeChild(node);\r\n}\r\n","import { Component } from 'preact';\r\nimport { shallowDiffers } from './util';\r\n\r\n/**\r\n * Component class with a predefined `shouldComponentUpdate` implementation\r\n */\r\nexport function PureComponent(p) {\r\n\tthis.props = p;\r\n}\r\nPureComponent.prototype = new Component();\r\n// Some third-party libraries check if this property is present\r\nPureComponent.prototype.isPureReactComponent = true;\r\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\r\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\r\n};\r\n","import { options } from 'preact';\r\nimport { assign } from './util';\r\n\r\nlet oldDiffHook = options._diff;\r\noptions._diff = vnode => {\r\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\r\n\t\tvnode.props.ref = vnode.ref;\r\n\t\tvnode.ref = null;\r\n\t}\r\n\tif (oldDiffHook) oldDiffHook(vnode);\r\n};\r\n\r\nexport const REACT_FORWARD_SYMBOL =\r\n\t(typeof Symbol != 'undefined' &&\r\n\t\tSymbol.for &&\r\n\t\tSymbol.for('react.forward_ref')) ||\r\n\t0xf47;\r\n\r\n/**\r\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\r\n * wrap components. Using `forwardRef` there is an easy way to get a reference\r\n * of the wrapped component instead of one of the wrapper itself.\r\n * @param {import('./index').ForwardFn} fn\r\n * @returns {import('./internal').FunctionComponent}\r\n */\r\nexport function forwardRef(fn) {\r\n\t// We always have ref in props.ref, except for\r\n\t// mobx-react. It will call this function directly\r\n\t// and always pass ref as the second argument.\r\n\tfunction Forwarded(props, ref) {\r\n\t\tlet clone = assign({}, props);\r\n\t\tdelete clone.ref;\r\n\t\tref = props.ref || ref;\r\n\t\treturn fn(\r\n\t\t\tclone,\r\n\t\t\t!ref || (typeof ref === 'object' && !('current' in ref)) ? null : ref\r\n\t\t);\r\n\t}\r\n\r\n\t// mobx-react checks for this being present\r\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\r\n\t// mobx-react heavily relies on implementation details.\r\n\t// It expects an object here with a `render` property,\r\n\t// and prototype.render will fail. Without this\r\n\t// mobx-react throws.\r\n\tForwarded.render = Forwarded;\r\n\r\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\r\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\r\n\treturn Forwarded;\r\n}\r\n","import { Component, createElement, options, Fragment } from 'preact';\r\nimport { assign } from './util';\r\n\r\nconst oldCatchError = options._catchError;\r\noptions._catchError = function(error, newVNode, oldVNode) {\r\n\tif (error.then) {\r\n\t\t/** @type {import('./internal').Component} */\r\n\t\tlet component;\r\n\t\tlet vnode = newVNode;\r\n\r\n\t\tfor (; (vnode = vnode._parent); ) {\r\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\r\n\t\t\t\tif (newVNode._dom == null) {\r\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\r\n\t\t\t\t\tnewVNode._children = oldVNode._children;\r\n\t\t\t\t}\r\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\r\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\toldCatchError(error, newVNode, oldVNode);\r\n};\r\n\r\nconst oldUnmount = options.unmount;\r\noptions.unmount = function(vnode) {\r\n\t/** @type {import('./internal').Component} */\r\n\tconst component = vnode._component;\r\n\tif (component && component._onResolve) {\r\n\t\tcomponent._onResolve();\r\n\t}\r\n\r\n\t// if the component is still hydrating\r\n\t// most likely it is because the component is suspended\r\n\t// we set the vnode.type as `null` so that it is not a typeof function\r\n\t// so the unmount will remove the vnode._dom\r\n\tif (component && vnode._hydrating === true) {\r\n\t\tvnode.type = null;\r\n\t}\r\n\r\n\tif (oldUnmount) oldUnmount(vnode);\r\n};\r\n\r\nfunction detachedClone(vnode, detachedParent, parentDom) {\r\n\tif (vnode) {\r\n\t\tif (vnode._component && vnode._component.__hooks) {\r\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\r\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\r\n\t\t\t});\r\n\r\n\t\t\tvnode._component.__hooks = null;\r\n\t\t}\r\n\r\n\t\tvnode = assign({}, vnode);\r\n\t\tif (vnode._component != null) {\r\n\t\t\tif (vnode._component._parentDom === parentDom) {\r\n\t\t\t\tvnode._component._parentDom = detachedParent;\r\n\t\t\t}\r\n\t\t\tvnode._component = null;\r\n\t\t}\r\n\r\n\t\tvnode._children =\r\n\t\t\tvnode._children &&\r\n\t\t\tvnode._children.map(child =>\r\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\r\n\t\t\t);\r\n\t}\r\n\r\n\treturn vnode;\r\n}\r\n\r\nfunction removeOriginal(vnode, detachedParent, originalParent) {\r\n\tif (vnode) {\r\n\t\tvnode._original = null;\r\n\t\tvnode._children =\r\n\t\t\tvnode._children &&\r\n\t\t\tvnode._children.map(child =>\r\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\r\n\t\t\t);\r\n\r\n\t\tif (vnode._component) {\r\n\t\t\tif (vnode._component._parentDom === detachedParent) {\r\n\t\t\t\tif (vnode._dom) {\r\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\r\n\t\t\t\t}\r\n\t\t\t\tvnode._component._force = true;\r\n\t\t\t\tvnode._component._parentDom = originalParent;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn vnode;\r\n}\r\n\r\n// having custom inheritance instead of a class here saves a lot of bytes\r\nexport function Suspense() {\r\n\t// we do not call super here to golf some bytes...\r\n\tthis._pendingSuspensionCount = 0;\r\n\tthis._suspenders = null;\r\n\tthis._detachOnNextRender = null;\r\n}\r\n\r\n// Things we do here to save some bytes but are not proper JS inheritance:\r\n// - call `new Component()` as the prototype\r\n// - do not set `Suspense.prototype.constructor` to `Suspense`\r\nSuspense.prototype = new Component();\r\n\r\n/**\r\n * @this {import('./internal').SuspenseComponent}\r\n * @param {Promise} promise The thrown promise\r\n * @param {import('./internal').VNode} suspendingVNode The suspending component\r\n */\r\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\r\n\tconst suspendingComponent = suspendingVNode._component;\r\n\r\n\t/** @type {import('./internal').SuspenseComponent} */\r\n\tconst c = this;\r\n\r\n\tif (c._suspenders == null) {\r\n\t\tc._suspenders = [];\r\n\t}\r\n\tc._suspenders.push(suspendingComponent);\r\n\r\n\tconst resolve = suspended(c._vnode);\r\n\r\n\tlet resolved = false;\r\n\tconst onResolved = () => {\r\n\t\tif (resolved) return;\r\n\r\n\t\tresolved = true;\r\n\t\tsuspendingComponent._onResolve = null;\r\n\r\n\t\tif (resolve) {\r\n\t\t\tresolve(onSuspensionComplete);\r\n\t\t} else {\r\n\t\t\tonSuspensionComplete();\r\n\t\t}\r\n\t};\r\n\r\n\tsuspendingComponent._onResolve = onResolved;\r\n\r\n\tconst onSuspensionComplete = () => {\r\n\t\tif (!--c._pendingSuspensionCount) {\r\n\t\t\t// If the suspension was during hydration we don't need to restore the\r\n\t\t\t// suspended children into the _children array\r\n\t\t\tif (c.state._suspended) {\r\n\t\t\t\tconst suspendedVNode = c.state._suspended;\r\n\t\t\t\tc._vnode._children[0] = removeOriginal(\r\n\t\t\t\t\tsuspendedVNode,\r\n\t\t\t\t\tsuspendedVNode._component._parentDom,\r\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\r\n\r\n\t\t\tlet suspended;\r\n\t\t\twhile ((suspended = c._suspenders.pop())) {\r\n\t\t\t\tsuspended.forceUpdate();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * We do not set `suspended: true` during hydration because we want the actual markup\r\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\r\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\r\n\t */\r\n\tconst wasHydrating = suspendingVNode._hydrating === true;\r\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\r\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\r\n\t}\r\n\tpromise.then(onResolved, onResolved);\r\n};\r\n\r\nSuspense.prototype.componentWillUnmount = function() {\r\n\tthis._suspenders = [];\r\n};\r\n\r\n/**\r\n * @this {import('./internal').SuspenseComponent}\r\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\r\n * @param {import('./internal').SuspenseState} state\r\n */\r\nSuspense.prototype.render = function(props, state) {\r\n\tif (this._detachOnNextRender) {\r\n\t\t// When the Suspense's _vnode was created by a call to createVNode\r\n\t\t// (i.e. due to a setState further up in the tree)\r\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\r\n\t\tif (this._vnode._children) {\r\n\t\t\tconst detachedParent = document.createElement('div');\r\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\r\n\t\t\tthis._vnode._children[0] = detachedClone(\r\n\t\t\t\tthis._detachOnNextRender,\r\n\t\t\t\tdetachedParent,\r\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tthis._detachOnNextRender = null;\r\n\t}\r\n\r\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\r\n\t/** @type {import('./internal').VNode} */\r\n\tconst fallback =\r\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\r\n\tif (fallback) fallback._hydrating = null;\r\n\r\n\treturn [\r\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\r\n\t\tfallback\r\n\t];\r\n};\r\n\r\n/**\r\n * Checks and calls the parent component's _suspended method, passing in the\r\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\r\n * that one of its children/descendants suspended.\r\n *\r\n * The parent MAY return a callback. The callback will get called when the\r\n * suspension resolves, notifying the parent of the fact.\r\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\r\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\r\n * This is a way for the parent to delay unsuspending.\r\n *\r\n * If the parent does not return a callback then the resolved vnode\r\n * gets unsuspended immediately when it resolves.\r\n *\r\n * @param {import('./internal').VNode} vnode\r\n * @returns {((unsuspend: () => void) => void)?}\r\n */\r\nexport function suspended(vnode) {\r\n\t/** @type {import('./internal').Component} */\r\n\tlet component = vnode._parent._component;\r\n\treturn component && component._suspended && component._suspended(vnode);\r\n}\r\n\r\nexport function lazy(loader) {\r\n\tlet prom;\r\n\tlet component;\r\n\tlet error;\r\n\r\n\tfunction Lazy(props) {\r\n\t\tif (!prom) {\r\n\t\t\tprom = loader();\r\n\t\t\tprom.then(\r\n\t\t\t\texports => {\r\n\t\t\t\t\tcomponent = exports.default || exports;\r\n\t\t\t\t},\r\n\t\t\t\te => {\r\n\t\t\t\t\terror = e;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (error) {\r\n\t\t\tthrow error;\r\n\t\t}\r\n\r\n\t\tif (!component) {\r\n\t\t\tthrow prom;\r\n\t\t}\r\n\r\n\t\treturn createElement(component, props);\r\n\t}\r\n\r\n\tLazy.displayName = 'Lazy';\r\n\tLazy._forwarded = true;\r\n\treturn Lazy;\r\n}\r\n","import { Component, toChildArray } from 'preact';\r\nimport { suspended } from './suspense.js';\r\n\r\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\r\nconst SUSPENDED_COUNT = 0;\r\nconst RESOLVED_COUNT = 1;\r\nconst NEXT_NODE = 2;\r\n\r\n// Having custom inheritance instead of a class here saves a lot of bytes.\r\nexport function SuspenseList() {\r\n\tthis._next = null;\r\n\tthis._map = null;\r\n}\r\n\r\n// Mark one of child's earlier suspensions as resolved.\r\n// Some pending callbacks may become callable due to this\r\n// (e.g. the last suspended descendant gets resolved when\r\n// revealOrder === 'together'). Process those callbacks as well.\r\nconst resolve = (list, child, node) => {\r\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\r\n\t\t// The number a child (or any of its descendants) has been suspended\r\n\t\t// matches the number of times it's been resolved. Therefore we\r\n\t\t// mark the child as completely resolved by deleting it from ._map.\r\n\t\t// This is used to figure out when *all* children have been completely\r\n\t\t// resolved when revealOrder is 'together'.\r\n\t\tlist._map.delete(child);\r\n\t}\r\n\r\n\t// If revealOrder is falsy then we can do an early exit, as the\r\n\t// callbacks won't get queued in the node anyway.\r\n\t// If revealOrder is 'together' then also do an early exit\r\n\t// if all suspended descendants have not yet been resolved.\r\n\tif (\r\n\t\t!list.props.revealOrder ||\r\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\r\n\t) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Walk the currently suspended children in order, calling their\r\n\t// stored callbacks on the way. Stop if we encounter a child that\r\n\t// has not been completely resolved yet.\r\n\tnode = list._next;\r\n\twhile (node) {\r\n\t\twhile (node.length > 3) {\r\n\t\t\tnode.pop()();\r\n\t\t}\r\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tlist._next = node = node[NEXT_NODE];\r\n\t}\r\n};\r\n\r\n// Things we do here to save some bytes but are not proper JS inheritance:\r\n// - call `new Component()` as the prototype\r\n// - do not set `Suspense.prototype.constructor` to `Suspense`\r\nSuspenseList.prototype = new Component();\r\n\r\nSuspenseList.prototype._suspended = function(child) {\r\n\tconst list = this;\r\n\tconst delegated = suspended(list._vnode);\r\n\r\n\tlet node = list._map.get(child);\r\n\tnode[SUSPENDED_COUNT]++;\r\n\r\n\treturn unsuspend => {\r\n\t\tconst wrappedUnsuspend = () => {\r\n\t\t\tif (!list.props.revealOrder) {\r\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\r\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\r\n\t\t\t\tunsuspend();\r\n\t\t\t} else {\r\n\t\t\t\tnode.push(unsuspend);\r\n\t\t\t\tresolve(list, child, node);\r\n\t\t\t}\r\n\t\t};\r\n\t\tif (delegated) {\r\n\t\t\tdelegated(wrappedUnsuspend);\r\n\t\t} else {\r\n\t\t\twrappedUnsuspend();\r\n\t\t}\r\n\t};\r\n};\r\n\r\nSuspenseList.prototype.render = function(props) {\r\n\tthis._next = null;\r\n\tthis._map = new Map();\r\n\r\n\tconst children = toChildArray(props.children);\r\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\r\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\r\n\t\t// then flip the child list around so that the last child will be\r\n\t\t// the first in the linked list.\r\n\t\tchildren.reverse();\r\n\t}\r\n\t// Build the linked list. Iterate through the children in reverse order\r\n\t// so that `_next` points to the first linked list node to be resolved.\r\n\tfor (let i = children.length; i--; ) {\r\n\t\t// Create a new linked list node as an array of form:\r\n\t\t// \t[suspended_count, resolved_count, next_node]\r\n\t\t// where suspended_count and resolved_count are numeric counters for\r\n\t\t// keeping track how many times a node has been suspended and resolved.\r\n\t\t//\r\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\r\n\t\t// processing callbacks until componentDidMount has been called. In a sense\r\n\t\t// node is suspended at least until componentDidMount gets called!\r\n\t\t//\r\n\t\t// Pending callbacks are added to the end of the node:\r\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\r\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\r\n\t}\r\n\treturn props.children;\r\n};\r\n\r\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\r\n\t// Iterate through all children after mounting for two reasons:\r\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\r\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\r\n\t// The nodes can now be completely consumed from the linked list.\r\n\t// 2. Handle nodes that might have gotten resolved between render and\r\n\t// componentDidMount.\r\n\tthis._map.forEach((node, child) => {\r\n\t\tresolve(this, child, node);\r\n\t});\r\n};\r\n","import {\r\n\trender as preactRender,\r\n\thydrate as preactHydrate,\r\n\toptions,\r\n\ttoChildArray,\r\n\tComponent\r\n} from 'preact';\r\n\r\nexport const REACT_ELEMENT_TYPE =\r\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\r\n\t0xeac7;\r\n\r\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\r\n\r\nconst IS_DOM = typeof document !== 'undefined';\r\n\r\n// Input types for which onchange should not be converted to oninput.\r\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\r\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\r\nconst onChangeInputType = type =>\r\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\r\n\t\t? /fil|che|rad/i\r\n\t\t: /fil|che|ra/i\r\n\t).test(type);\r\n\r\n// Some libraries like `react-virtualized` explicitly check for this.\r\nComponent.prototype.isReactComponent = {};\r\n\r\n// `UNSAFE_*` lifecycle hooks\r\n// Preact only ever invokes the unprefixed methods.\r\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\r\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\r\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\r\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\r\n// See https://github.com/preactjs/preact/issues/1941\r\n[\r\n\t'componentWillMount',\r\n\t'componentWillReceiveProps',\r\n\t'componentWillUpdate'\r\n].forEach(key => {\r\n\tObject.defineProperty(Component.prototype, key, {\r\n\t\tconfigurable: true,\r\n\t\tget() {\r\n\t\t\treturn this['UNSAFE_' + key];\r\n\t\t},\r\n\t\tset(v) {\r\n\t\t\tObject.defineProperty(this, key, {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\twritable: true,\r\n\t\t\t\tvalue: v\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n});\r\n\r\n/**\r\n * Proxy render() since React returns a Component reference.\r\n * @param {import('./internal').VNode} vnode VNode tree to render\r\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\r\n * @param {() => void} [callback] Optional callback that will be called after rendering\r\n * @returns {import('./internal').Component | null} The root component reference or null\r\n */\r\nexport function render(vnode, parent, callback) {\r\n\t// React destroys any existing DOM nodes, see #1727\r\n\t// ...but only on the first render, see #1828\r\n\tif (parent._children == null) {\r\n\t\tparent.textContent = '';\r\n\t}\r\n\r\n\tpreactRender(vnode, parent);\r\n\tif (typeof callback == 'function') callback();\r\n\r\n\treturn vnode ? vnode._component : null;\r\n}\r\n\r\nexport function hydrate(vnode, parent, callback) {\r\n\tpreactHydrate(vnode, parent);\r\n\tif (typeof callback == 'function') callback();\r\n\r\n\treturn vnode ? vnode._component : null;\r\n}\r\n\r\nlet oldEventHook = options.event;\r\noptions.event = e => {\r\n\tif (oldEventHook) e = oldEventHook(e);\r\n\te.persist = empty;\r\n\te.isPropagationStopped = isPropagationStopped;\r\n\te.isDefaultPrevented = isDefaultPrevented;\r\n\treturn (e.nativeEvent = e);\r\n};\r\n\r\nfunction empty() {}\r\n\r\nfunction isPropagationStopped() {\r\n\treturn this.cancelBubble;\r\n}\r\n\r\nfunction isDefaultPrevented() {\r\n\treturn this.defaultPrevented;\r\n}\r\n\r\nlet classNameDescriptor = {\r\n\tconfigurable: true,\r\n\tget() {\r\n\t\treturn this.class;\r\n\t}\r\n};\r\n\r\nlet oldVNodeHook = options.vnode;\r\noptions.vnode = vnode => {\r\n\tlet type = vnode.type;\r\n\tlet props = vnode.props;\r\n\tlet normalizedProps = props;\r\n\r\n\t// only normalize props on Element nodes\r\n\tif (typeof type === 'string') {\r\n\t\tconst nonCustomElement = type.indexOf('-') === -1;\r\n\t\tnormalizedProps = {};\r\n\r\n\t\tfor (let i in props) {\r\n\t\t\tlet value = props[i];\r\n\r\n\t\t\tif (IS_DOM && i === 'children' && type === 'noscript') {\r\n\t\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\telse if (i === 'value' && 'defaultValue' in props && value == null) {\r\n\t\t\t\t// Skip applying value if it is null/undefined and we already set\r\n\t\t\t\t// a default value\r\n\t\t\t\tcontinue;\r\n\t\t\t} else if (\r\n\t\t\t\ti === 'defaultValue' &&\r\n\t\t\t\t'value' in props &&\r\n\t\t\t\tprops.value == null\r\n\t\t\t) {\r\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\r\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\r\n\t\t\t\ti = 'value';\r\n\t\t\t} else if (i === 'download' && value === true) {\r\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\r\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\r\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\r\n\t\t\t\t// value will be used as the file name and the file will be called\r\n\t\t\t\t// \"true\" upon downloading it.\r\n\t\t\t\tvalue = '';\r\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\r\n\t\t\t\ti = 'ondblclick';\r\n\t\t\t} else if (\r\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\r\n\t\t\t\t!onChangeInputType(props.type)\r\n\t\t\t) {\r\n\t\t\t\ti = 'oninput';\r\n\t\t\t} else if (/^onfocus$/i.test(i)) {\r\n\t\t\t\ti = 'onfocusin';\r\n\t\t\t} else if (/^onblur$/i.test(i)) {\r\n\t\t\t\ti = 'onfocusout';\r\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp)/.test(i)) {\r\n\t\t\t\ti = i.toLowerCase();\r\n\t\t\t} else if (nonCustomElement && CAMEL_PROPS.test(i)) {\r\n\t\t\t\ti = i.replace(/[A-Z0-9]/, '-$&').toLowerCase();\r\n\t\t\t} else if (value === null) {\r\n\t\t\t\tvalue = undefined;\r\n\t\t\t}\r\n\r\n\t\t\tnormalizedProps[i] = value;\r\n\t\t}\r\n\r\n\t\t// Add support for array select values: \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n {chatHeads && chatHeads.map((chat) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Connecting...\"\r\n
\r\n
\r\n {activeChatDetails?.fullName}\r\n {activeChatDetails?.isOnline ?
Active Now
: \r\n
Offline
}\r\n
\r\n
\r\n {/* */}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {chatHistory && chatHistory.slice().reverse().map((msg, index) => (\r\n
\r\n
\r\n \"User\"\r\n
\r\n
\r\n {msg.type === 'photo' ? (\r\n \"Sent\"\r\n ) : msg.type === 'file' ? (\r\n \r\n \r\n \r\n ) : msg.type === 'video' ? (\r\n \r\n ) : (\r\n
\r\n {msg.message}\r\n
\r\n )}\r\n
\r\n {formatTime(msg.createdAt)} {msg?.seen ? \"\" : null}\r\n
\r\n
\r\n
\r\n ))}\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \"\"\r\n
\r\n {/* {showSend ? (\r\n
\r\n \"\"\r\n
\r\n ) : (\r\n
\r\n \"\"\r\n
\r\n )} */}\r\n
\r\n
\r\n {showPicker && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Inbox;\r\n","import React, { useEffect, useState } from 'react'\r\nimport './termsandcondition.css';\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\nconst TermsAndCondition = () => {\r\n const [terms, setTerms] = useState('');\r\n const [isloading, setIsLoading] = useState(false);\r\n const getTerms = () => {\r\n let getRes = (res) => {\r\n setTerms(res?.terms);\r\n };\r\n \r\n callApi(\"GET\", routes.terms, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n // console.log(detail);\r\n\r\n getTerms();\r\n }, []);\r\n function decodeHtml(html) {\r\n const txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value;\r\n }\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n

Terms of Use

\r\n
\r\n
\r\n {/*
saying about us
*/}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {terms &&

}\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default TermsAndCondition","import React, { useEffect, useState } from 'react'\r\nimport routes from '../../Api/routes';\r\nimport { callApi } from '../../Api/ApiCaller';\r\n\r\nconst PrivacyPolicy = () => {\r\n const [policy, setPolicy] = useState('');\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const getPolicy = () => {\r\n let getRes = (res) => {\r\n setPolicy(res?.policy);\r\n };\r\n \r\n callApi(\"GET\", routes.policy, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n // console.log(detail);\r\n\r\n getPolicy();\r\n }, []);\r\n function decodeHtml(html) {\r\n const txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value;\r\n }\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n

Privacy Policy

\r\n
\r\n
\r\n {/*
saying about us
*/}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {policy &&

}\r\n \r\n\r\n\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default PrivacyPolicy","import React, { useEffect, useState } from 'react'\r\nimport './userprofile.css'\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons';\r\nimport OtpInput from 'react-otp-input';\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\nimport { S3 } from \"aws-sdk\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst EditProfile = ({ setuserlogged }) => {\r\n const [profile, setProfile] = useState('');\r\n const [selectedgender, setSelectedgender] = useState('');\r\n const [isDropdowngenderOpen, setIsDropdowngenderOpen] = useState(false);\r\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\r\n const [selectedgoal, setSelectedgoal] = useState('');\r\n const [isDropdowngoalOpen, setIsDropdowngoalOpen] = useState(false);\r\n const [selectedLevel, setSelectedLevel] = useState(\"\");\r\n const [isDropdownLevelOpen, setIsDropdownLevelOpen] = useState(false);\r\n const [currentpassword, setcurrentPassword] = useState('');\r\n const [showcurrentPassword, setShowcurrentPassword] = useState(false);\r\n const [deleteaccountpassword, setdeleteaccountPassword] = useState('');\r\n const [showdeleteaccountPassword, setShowdeleteaccountPassword] = useState(false);\r\n const [newpassword, setnewPassword] = useState('');\r\n const [shownewPassword, setShownewPassword] = useState(false);\r\n const [confirmnewpassword, setconfirmnewPassword] = useState('');\r\n const [showconfirmnewPassword, setShowconfirmnewPassword] = useState(false);\r\n const [deleteaccountotp, setdeleteaccountotp] = useState(false);\r\n const [avatar, setAvatar] = useState(null);\r\n const [goals, setgoals] = useState([])\r\n const storedUserData = localStorage.getItem('userData');\r\n const [userData, setUserData] = useState(storedUserData ? JSON.parse(storedUserData) : null);\r\n const [newName, setNewName] = useState('');\r\n const [newAddress, setNewAddress] = useState('');\r\n const [newAge, setNewAge] = useState('');\r\n const [newWeight, setNewWeight] = useState('');\r\n const [newHeight, setNewHeight] = useState('');\r\n const [isNotifications, setIsNotifications] = useState(false);\r\n\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const getProfile = () => {\r\n let getRes = (res) => {\r\n setProfile(res?.data?.doc);\r\n setNewName(res?.data?.doc?.fullName);\r\n setNewAddress(res?.data?.doc?.location?.address);\r\n setSelectedgender(res?.data?.doc?.gender);\r\n setNewAge(res?.data?.doc?.age);\r\n setNewWeight(res?.data?.doc?.weight?.value);\r\n setSelectedweight(res?.data?.doc?.weight?.unit);\r\n setNewHeight(res?.data?.doc?.height?.value);\r\n setSelectedheight(res?.data?.doc?.height?.unit);\r\n setSelectedgoal(res?.data?.doc?.goals);\r\n setSelectedLevel(res?.data?.doc?.activityLevel);\r\n setAvatar(res?.data?.doc?.avatar);\r\n setIsNotifications(res?.data?.doc?.isNotifications);\r\n\r\n };\r\n \r\n callApi(\"GET\", routes.profile, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const getGoals = () => {\r\n let getRes = (res) => {\r\n setgoals(res?.data?.docs);\r\n };\r\n \r\n callApi(\"GET\", routes.goals, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n // console.log(detail);\r\n getProfile();\r\n getGoals();\r\n }, []);\r\n const handleSwitchChange = (event) => {\r\n const newValue = event.target.checked;\r\n setIsNotifications(newValue);\r\n // console.log(\"isNotifications:\", newValue);\r\n };\r\n const updateProfile = async () => {\r\n if (!newName) {\r\n alert(\"Please put title\");\r\n return;\r\n }\r\n \r\n if (!newWeight) {\r\n alert(\"Please put Weight\");\r\n return;\r\n }\r\n \r\n if (!newHeight) {\r\n alert(\"Please put height\");\r\n return;\r\n }\r\n if (!selectedgoal) {\r\n alert(\"Please Select Goals\");\r\n return;\r\n }\r\n if (!newAddress) {\r\n alert(\"Please add Address\");\r\n return;\r\n }\r\n \r\n let getRes = (res) => {\r\n if (res.statusCode === 200 ) {\r\n getProfile();\r\n toast.success(\"Profile Updated Successfully\", {\r\n autoClose: 1500,\r\n });\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n // setShowModal(false);\r\n };\r\n // console.log(avatar);\r\n let body = {\r\n fullName: newName,\r\n avatar: avatar,\r\n location: {\r\n type: \"Point\",\r\n coordinates: [72.343361, 31.04668],\r\n address: newAddress,\r\n // description: \"Burewala\"\r\n },\r\n gender: selectedgender,\r\n age: newAge,\r\n weight: {\r\n value: newWeight,\r\n unit: selectedweight,\r\n },\r\n height: {\r\n value: newHeight,\r\n unit: selectedheight,\r\n },\r\n goals: selectedgoal,\r\n activityLevel: selectedLevel,\r\n isNotifications: isNotifications,\r\n };\r\n \r\n callApi(\"PATCH\",routes.editProfile,body,setIsLoading,getRes,(error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const handleNameChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewName(newValue); \r\n };\r\n const handleAddressChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewAddress(newValue); \r\n};\r\nconst handleAgeChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewAge(newValue); \r\n};\r\nconst handleWeightChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewWeight(newValue); \r\n};\r\nconst handleHeightChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewHeight(newValue); \r\n};\r\n // const handleFileInputChange = (e) => {\r\n // const file = e.target.files[0];\r\n // if (file) {\r\n // const reader = new FileReader();\r\n // reader.onloadend = () => {\r\n // setAvatar(reader.result);\r\n // };\r\n // reader.readAsDataURL(file);\r\n // }\r\n // };\r\n const handleFileInputChange = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n const fileUrl = await uploadImageOnS3(file);\r\n setAvatar(fileUrl)\r\n // console.log(fileUrl)\r\n }\r\n };\r\n const uploadImageOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setAvatar(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n const handledeleteaccountotp = () =>{\r\n setdeleteaccountotp(true);\r\n setDeleteAccount(false);\r\n }\r\n const navigate = useNavigate();\r\n const handleChangedeleteaccountPassword = (e) => {\r\n setdeleteaccountPassword(e.target.value);\r\n };\r\n const toggledeleteaccountPasswordVisibility = () => {\r\n setShowdeleteaccountPassword(!showdeleteaccountPassword);\r\n };\r\n const handleChangecurrentPassword = (e) => {\r\n setcurrentPassword(e.target.value);\r\n };\r\n const togglecurrentPasswordVisibility = () => {\r\n setShowcurrentPassword(!showcurrentPassword);\r\n };\r\n const handleChangenewPassword = (e) => {\r\n setnewPassword(e.target.value);\r\n };\r\n const togglenewPasswordVisibility = () => {\r\n setShownewPassword(!shownewPassword);\r\n };\r\n const handleChangeconfirmnewPassword = (e) => {\r\n setconfirmnewPassword(e.target.value);\r\n };\r\n const toggleconfirmnewPasswordVisibility = () => {\r\n setShowconfirmnewPassword(!showconfirmnewPassword);\r\n };\r\n const updatePassword = async () => {\r\n \r\n \r\n \r\n let getRes = (res) => {\r\n if (res.statusCode === 200 ) {\r\n setShowModal(true);\r\n localStorage.setItem(\"userData\", null);\r\n localStorage.setItem(\"accessToken\", \"\");\r\n localStorage.setItem(\"refreshToken\", \"\");\r\n setUserData([]);\r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n // setShowModal(false);\r\n };\r\n let body = {\r\n currentPassword: currentpassword,\r\n newPassword: newpassword,\r\n }\r\n \r\n callApi(\"PATCH\",routes.changePassword,body,setIsLoading,getRes,(error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const handlePasswordSuccessful = () => {\r\n if (newpassword === confirmnewpassword && newpassword!== currentpassword) {\r\n // setShowModal(true);\r\n updatePassword();\r\n } else {\r\n alert(\"Passwords do not match or choose another password. Please try again.\");\r\n }\r\n };\r\n \r\n \r\n const [showModal, setShowModal] = useState(false);\r\n const [otp, setOtp] = useState('');\r\n const [inputStyle, setInputStyle] = useState({\r\n width: '90px',\r\n height: '72px',\r\n fontSize: '24px',\r\n margin: '0 10px',\r\n textAlign: 'center',\r\n borderRadius: '8px',\r\n border: '1px solid #E2E2E2',\r\n backgroundColor: '#FAFAFA',\r\n color: '#1D191C',\r\n fontWeight: '700'\r\n });\r\n \r\n\r\n\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n const width = window.innerWidth;\r\n if (width <= 768) {\r\n setInputStyle({\r\n width: '70px',\r\n height: '52px',\r\n fontSize: '18px',\r\n margin: '0 5px',\r\n textAlign: 'center',\r\n borderRadius: '8px',\r\n border: '1px solid #E2E2E2',\r\n backgroundColor: '#FAFAFA',\r\n color: '#1D191C',\r\n fontWeight: '700'\r\n });\r\n } else if (width <= 576) {\r\n setInputStyle({\r\n width: '50px',\r\n height: '40px',\r\n fontSize: '14px',\r\n margin: '0 3px',\r\n textAlign: 'center',\r\n borderRadius: '8px',\r\n border: '1px solid #E2E2E2',\r\n backgroundColor: '#FAFAFA',\r\n color: '#1D191C',\r\n fontWeight: '700'\r\n });\r\n } else {\r\n setInputStyle({\r\n width: '90px',\r\n height: '72px',\r\n fontSize: '24px',\r\n margin: '0 10px',\r\n textAlign: 'center',\r\n borderRadius: '8px',\r\n border: '1px solid #E2E2E2',\r\n backgroundColor: '#FAFAFA',\r\n color: '#1D191C',\r\n fontWeight: '700'\r\n });\r\n }\r\n };\r\n \r\n handleResize();\r\n window.addEventListener('resize', handleResize);\r\n \r\n let timer;\r\n if (showModal) {\r\n timer = setTimeout(() => {\r\n setShowModal(false);\r\n navigate('/login');\r\n setuserlogged(false);\r\n }, 2000);\r\n }\r\n \r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n clearTimeout(timer);\r\n };\r\n }, [showModal, setInputStyle]); // Make sure to add setInputStyle as a dependency if it's coming from props or state\r\n \r\n const handleChange = (otp) => {\r\n setOtp(otp);\r\n };\r\nconst [EditProfile, setEditProfile] = useState(true);\r\nconst [Notification, setNotification] = useState(false);\r\nconst [ChangePassword, setChangePassword] = useState(false);\r\nconst [DeleteAccount, setDeleteAccount] = useState(false);\r\nconst handleeditprofile = () =>{\r\n setEditProfile(true);\r\n setNotification(false);\r\n setChangePassword(false);\r\n setDeleteAccount(false);\r\n setdeleteaccountotp(false);\r\n}\r\nconst handlenotification = () =>{\r\n setEditProfile(false);\r\n setNotification(true);\r\n setChangePassword(false);\r\n setDeleteAccount(false);\r\n setdeleteaccountotp(false);\r\n\r\n}\r\nconst handlechangepassword = () =>{\r\n setEditProfile(false);\r\n setNotification(false);\r\n setChangePassword(true);\r\n setdeleteaccountotp(false);\r\n setDeleteAccount(false);\r\n}\r\nconst handledeleteaccount = () =>{\r\n setEditProfile(false);\r\n setNotification(false);\r\n setChangePassword(false);\r\n setdeleteaccountotp(false);\r\n setDeleteAccount(true);\r\n}\r\n const toggleDropdown = () => {\r\n setIsDropdownOpen(!isDropdownOpen);\r\n };\r\n const handlegenderChange = (value) => {\r\n setSelectedgender(value);\r\n setIsDropdowngenderOpen(false);\r\n };\r\n const toggleDropdowngender = () => {\r\n setIsDropdowngenderOpen(!isDropdowngenderOpen);\r\n };\r\n const handlegoalChange = (goal) => {\r\n setSelectedgoal((prevSelectedGoals) => {\r\n if (prevSelectedGoals.includes(goal._id)) {\r\n // Remove the goal ID if it's already in the array\r\n return prevSelectedGoals.filter((goalId) => goalId !== goal._id);\r\n } else {\r\n // Add the goal ID if it's not in the array\r\n return [...prevSelectedGoals, goal._id];\r\n }\r\n });\r\n };\r\n\r\n const getSelectedGoalNames = () => {\r\n return goals.filter((goal) => selectedgoal.includes(goal._id))\r\n .map((goal) => goal.name)\r\n .join(\", \");\r\n };\r\n\r\n useEffect(() => {\r\n console.log(selectedgoal);\r\n }, [selectedgoal])\r\n const toggleDropdowngoal = () => {\r\n setIsDropdowngoalOpen(!isDropdowngoalOpen);\r\n };\r\n const [selectedweight, setSelectedweight] = useState('kg');\r\n\r\n const handleweightClick = (item, e) => {\r\n e.preventDefault();\r\n setSelectedweight(item);\r\n };\r\n const [selectedheight, setSelectedheight] = useState('cm');\r\n\r\n const handleheightClick = (item, e) => {\r\n e.preventDefault();\r\n setSelectedheight(item);\r\n };\r\n const handleLevelChange = (value) => {\r\n setSelectedLevel(value);\r\n setIsDropdownLevelOpen(false);\r\n };\r\n const toggleDropdownLevel = () => {\r\n setIsDropdownLevelOpen(!isDropdownLevelOpen);\r\n };\r\n const handleContinue = () => {\r\n navigate('/');\r\n };\r\n return (\r\n <> \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Edit Profile

\r\n
\r\n
\r\n {/*
saying about us
*/}\r\n
\r\n
\r\n
\r\n

Update your personal information to keep your account current and enhance your experience. Make sure your profile reflects your goals and interests so we can better support your learning and fitness journey!

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"avatar\"\r\n
{profile?.fullName}
\r\n

{profile?.email}

\r\n
\r\n
\r\n
\r\n
\r\n
Edit Profile
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
Notification
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Change Password
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
Delete Account
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*
\r\n \"avatar\"\r\n
Profile Picture
\r\n
*/}\r\n
\r\n
\r\n \r\n
\r\n { EditProfile &&
\r\n
\r\n \"avatar\"\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Profile Picture\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {selectedgender ? selectedgender : 'Dropdown to select'}\r\n \r\n \"\"\r\n \r\n
\r\n {isDropdowngenderOpen && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n)}\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
    \r\n
  • \r\n handleweightClick(\"t \", e)}\r\n >\r\n t\r\n \r\n
  • \r\n
  • \r\n handleweightClick(\"kg \", e)}\r\n >\r\n kg\r\n \r\n
  • \r\n
  • \r\n handleweightClick(\"g \", e)}\r\n >\r\n g\r\n \r\n
  • \r\n
  • \r\n handleweightClick(\"mg \", e)}\r\n >\r\n mg\r\n \r\n
  • \r\n
  • \r\n handleweightClick(\"lb \", e)}\r\n >\r\n lb\r\n \r\n
  • \r\n
  • \r\n handleweightClick(\"oz \", e)}\r\n >\r\n oz\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
    \r\n
  • \r\n handleheightClick(\"m \", e)}\r\n >\r\n m\r\n \r\n
  • \r\n
  • \r\n handleheightClick(\"yd \", e)}\r\n >\r\n yd\r\n \r\n
  • \r\n
  • \r\n handleheightClick(\"ft \", e)}\r\n >\r\n ft\r\n \r\n
  • \r\n
  • \r\n handleheightClick(\"in \", e)}\r\n >\r\n in\r\n \r\n
  • \r\n
  • \r\n handleheightClick(\"cm \", e)}\r\n >\r\n cm\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Select Your Goals\r\n \r\n
\r\n
\r\n \r\n

\r\n {selectedgoal?.length > 0\r\n ? {getSelectedGoalNames()}\r\n : Dropdown to select}\r\n

\r\n \r\n \r\n \r\n
\r\n {isDropdowngoalOpen && (\r\n
\r\n
\r\n {goals && goals.map((goal) => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Physical Activity Level\r\n \r\n
\r\n
\r\n \r\n {selectedLevel\r\n ? selectedLevel\r\n : Dropdown to select}\r\n \r\n \r\n \r\n
\r\n {isDropdownLevelOpen && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n {/*
\r\n \r\n \r\n
*/}\r\n
\r\n \r\n
\r\n \r\n\r\n }\r\n {/* {Notification && <>\r\n
\r\n
Notification
\r\n
\r\n\r\n } */}\r\n {ChangePassword && <>\r\n
\r\n
Change Password
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas pulvinar bibendum magna Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas pulvinar bibendum magna. consectetur adipiscing elit. Maecenas pulvinar bibendum magna

\r\n
\r\n \r\n
\r\n \r\n {currentpassword === '' && (\r\n \"\"Current password\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {newpassword === '' && (\r\n \"\"New password\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {confirmnewpassword === '' && (\r\n \"\" Password\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n }\r\n {showModal && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \"\"\r\n

Password Change Successful!

\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )}\r\n {DeleteAccount && <>\r\n
\r\n
Delete Account
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n

Delete your account will:

\r\n
\r\n
\r\n

We're sorry to see you go. If you're sure you want to delete your ECHO App account, please be aware that this action is permanent and cannot be undone. All of your personal information, including your information and settings, will be permanently deleted.

\r\n

If you're having trouble with your account or have concerns, please reach out to us at [contact email or support page] before proceeding with the account deletion. We'd love to help you resolve any issues and keep you as a valued ECHO App user.

\r\n
\r\n \r\n
\r\n \r\n {deleteaccountpassword === '' && (\r\n \"\"Password\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n

To delete your account, please enter your password in the field below and confirm your decision by clicking the 'Delete My Account' button.

\r\n
\r\n \r\n
\r\n
\r\n\r\n }\r\n {deleteaccountotp &&<>\r\n
\r\n
Delete Account
\r\n

For added security, we'll send an OTP code to your registered mobile number. Please enter the code in the field below to confirm your account deletion.

\r\n
\r\n
\r\n \r\n
\r\n \r\n }\r\n />\r\n \r\n
\r\n
\r\n
\r\n

You can resend the code in 56 seconds

\r\n
\r\n
\r\n

Resend code

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n }\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default EditProfile","import React, { useEffect, useState } from 'react';\r\nimport AuthenticateImage from '../User/AuthenticateImage';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst InstructorSignUpProfile2 = () => {\r\n const navigate = useNavigate();\r\n const [showModal, setShowModal] = useState(false);\r\n const location = useLocation();\r\n const { detail } = location.state || {};\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n // State variable for social media links\r\n const [socialMediaLinks, setSocialMediaLinks] = useState({\r\n whatsApp: \"\",\r\n facebook: \"\",\r\n twitter: \"\",\r\n instagram: \"\",\r\n website: \"\"\r\n });\r\n \r\n const handleInputChange = (field, value) => {\r\n setSocialMediaLinks(prevLinks => ({\r\n ...prevLinks,\r\n [field]: value\r\n }));\r\n };\r\n \r\n // const handleInputChange = (index, value) => {\r\n // setSocialMediaLinks((prevLinks) => {\r\n // const newLinks = [...prevLinks];\r\n // newLinks[index] = value;\r\n // return newLinks;\r\n // });\r\n // };\r\n const handleAccount = () => {\r\n \r\n console.log(socialMediaLinks);\r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n \r\n setShowModal(true);\r\n \r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n // const fileUrl = avatar;\r\n let body = {\r\n fullName: detail.fullName,\r\n avatar: detail.avatar,\r\n location: {\r\n type: \"Point\",\r\n coordinates: [72.343361, 31.04668],\r\n address: detail.location,\r\n // description: \"Burewala\"\r\n },\r\n description: detail.description,\r\n socialMediaLinks: socialMediaLinks,\r\n };\r\n console.log(body)\r\n callApi(\"POST\", routes.completeProfile, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n \r\n \r\n };\r\n const handleAccountSuccessful = (e) => {\r\n e.preventDefault();\r\n \r\n // Check if at least one link is provided\r\n // const hasAtLeastOneLink = socialMediaLinks.some(link => link.trim() !== \"\");\r\n \r\n if (socialMediaLinks.whatsApp !== \"\" && socialMediaLinks.facebook !== \"\" &&socialMediaLinks.twitter !== \"\" &&socialMediaLinks.instagram !== \"\") {\r\n console.log('Social Media Links:', socialMediaLinks);\r\n handleAccount();\r\n } else {\r\n alert('Please provide social media links.');\r\n \r\n }\r\n };\r\n\r\n useEffect(() => {\r\n let timer;\r\n if (showModal) {\r\n timer = setTimeout(() => {\r\n setShowModal(false);\r\n navigate('/instructorhome');\r\n }, 2000);\r\n }\r\n return () => clearTimeout(timer);\r\n }, [showModal]);\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n Powering Your Platform\r\n
\r\n
\r\n
\r\n

Choose Your Account Type

\r\n
\r\n

Check your email inbox for the OTP code we sent you. Please enter it below to proceed.

\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n handleInputChange('whatsApp', e.target.value)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n handleInputChange('facebook', e.target.value)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n handleInputChange('twitter', e.target.value)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n handleInputChange('instagram', e.target.value)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n handleInputChange('website', e.target.value)}\r\n />\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {showModal && (\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n

Account Setup Successfully!

\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default InstructorSignUpProfile2;\r\n","import React, { useEffect, useState } from 'react';\r\nimport AuthenticateImage from '../User/AuthenticateImage';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst TrainerSignUpProfile2 = () => {\r\n const navigate = useNavigate();\r\n const [showModal, setShowModal] = useState(false);\r\n const [expertise, setExpertise] = useState([]);\r\n const [selectedexpertise, setSelectedExpertise] = useState([]);\r\n const location = useLocation();\r\n const { detail } = location.state || {};\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const getExpertise = () => {\r\n let getRes = (res) => {\r\n setExpertise(res.data.docs);\r\n };\r\n \r\n callApi(\"GET\", routes.expertise, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const handleAccount = () => {\r\n \r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n \r\n setShowModal(true);\r\n \r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n // const fileUrl = avatar;\r\n let body = {\r\n fullName: detail.fullName,\r\n avatar: detail.avatar,\r\n location: {\r\n type: \"Point\",\r\n coordinates: [72.343361, 31.04668],\r\n address: detail.location,\r\n // description: \"Burewala\"\r\n },\r\n description: detail.description,\r\n expertise: selectedexpertise,\r\n };\r\n console.log(body)\r\n callApi(\"POST\", routes.completeProfile, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n \r\n \r\n };\r\n const handleAccountSuccessful = (e) => {\r\n e.preventDefault();\r\n \r\n // Check if at least one link is provided\r\n const hasAtLeastOneExpertise = selectedexpertise.some(expertise => expertise.trim() !== \"\");\r\n \r\n if (hasAtLeastOneExpertise) {\r\n console.log('Expertise:', selectedexpertise);\r\n handleAccount();\r\n } else {\r\n alert('Please provide at least one social media link.');\r\n \r\n }\r\n };\r\n useEffect(() => {\r\n getExpertise();\r\n }, [])\r\n const handleExpertiseChange = (id) => {\r\n setSelectedExpertise((prevSelectedExpertise) => {\r\n if (prevSelectedExpertise.includes(id)) {\r\n \r\n return prevSelectedExpertise.filter((expertiseId) => expertiseId !== id);\r\n } else {\r\n \r\n return [...prevSelectedExpertise, id];\r\n }\r\n });\r\n \r\n };\r\n // useEffect(() => {\r\n // console.log(\"Selected Expertise IDs:\", selectedexpertise);\r\n // }, [selectedexpertise]);\r\n useEffect(() => {\r\n let timer;\r\n if (showModal) {\r\n timer = setTimeout(() => {\r\n setShowModal(false);\r\n navigate('/trainerhome');\r\n }, 2000);\r\n }\r\n return () => clearTimeout(timer);\r\n }, [showModal, navigate]);\r\n\r\n // const accountTypes = [\r\n // 'Affective Exercise',\r\n // 'Fitness Testing',\r\n // 'Flexibility',\r\n // 'Fitness',\r\n // 'Fitness Testing',\r\n // 'Flexibility',\r\n // 'Arij',\r\n // 'Amish',\r\n // 'Fitness Testing'\r\n // ];\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n Powering Your Platform\r\n
\r\n
\r\n
\r\n

Select Expertise

\r\n
\r\n

Check your email inbox for the OTP code we sent you. Please enter it below to proceed.

\r\n
\r\n
\r\n {expertise && expertise.map((expertise, index) => (\r\n
\r\n
\r\n

{expertise?.name}

\r\n
\r\n
\r\n handleExpertiseChange(expertise._id)} id={`defaultCheck${index + 1}`} />\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {showModal && (\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n

Account Setup Successfully!

\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default TrainerSignUpProfile2;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst InstructorSidebar = () => {\r\n const location = useLocation();\r\n const [currentURL, setCurrentURL] = useState(location.pathname);\r\n const [userlogged, setuserlogged] = useState(localStorage.getItem('loggedInUser'))\r\n const navigate = useNavigate();\r\n const [isloading, setIsLoading] = useState(false);\r\n const storedUserData = localStorage.getItem('userData');\r\n const [userData, setUserData] = useState(storedUserData ? JSON.parse(storedUserData) : null);\r\n \r\n useEffect(() => {\r\n setCurrentURL(location.pathname);\r\n }, [location.pathname]);\r\n // const [activeLink, setActiveLink] = useState(null);\r\n\r\n // const handleLinkClick = (event) => {\r\n // setActiveLink(currentURL);\r\n // };\r\n // const handleLinkClickProgress = (event) => {\r\n // setActiveLink(event.target.innerText);\r\n // };\r\n // const handleLinkClickSettings = (event) => {\r\n // setActiveLink(event.target.innerText);\r\n // };\r\n const handleLogout = () => {\r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n\r\n localStorage.setItem(\"userData\", null);\r\n localStorage.setItem(\"accessToken\", \"\");\r\n localStorage.setItem(\"refreshToken\", \"\");\r\n setUserData([]);\r\n setShowModal(true);\r\n \r\n } \r\n // else {\r\n // localStorage.setItem(\"userData\", null);\r\n // localStorage.setItem(\"accessToken\", \"\");\r\n // localStorage.setItem(\"refreshToken\", \"\");\r\n // setUserData([]);\r\n // toast.error(\"Logged out Successfully\", {\r\n // autoClose: 1500,\r\n // onClose: () => {\r\n // localStorage.removeItem('loggedInUser');\r\n // // Update the userlogged state to false\r\n // setuserlogged(false);\r\n // navigate('/');\r\n // }\r\n // })\r\n // }\r\n };\r\n\r\n callApi(\"POST\", routes.logOut,null, setIsLoading, getRes, getRes);\r\n }\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n useEffect(() => {\r\n let timer;\r\n if (showModal) {\r\n timer = setTimeout(() => {\r\n localStorage.removeItem('loggedInUser');\r\n navigate(\"/\");\r\n }, 2000);\r\n }\r\n return () => clearTimeout(timer);\r\n }, [showModal]);\r\n // const handleLogout = () => {\r\n // // Remove data of 'loggedInUser' from localStorage\r\n // localStorage.removeItem('loggedInUser');\r\n // // Update the userlogged state to false\r\n // setuserlogged(false);\r\n // navigate('/');\r\n // };\r\n return (\r\n <>\r\n {/* */}\r\n\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
    \r\n
  • \r\n {userlogged === 'instructor'? <> \r\n
    \r\n
    \r\n {currentURL === '/instructorhome'|| currentURL ==='/instructorcreatecourse' || currentURL ==='/instructorcoursedetails' || currentURL ==='/instructorcreatecoursedetails' ? \"\":\"\"}\r\n
    \r\n
    \r\n Home\r\n
    \r\n
    \r\n : <> \r\n
    \r\n
    \r\n {currentURL === '/trainerhome'|| currentURL ==='/trainercreateworkout' || currentURL ==='/trainercoursedetails' || currentURL ==='/trainercreateworkoutdetails' ? \"\":\"\"}\r\n
    \r\n
    \r\n Home\r\n
    \r\n
    \r\n }\r\n
  • \r\n
  • \r\n {userlogged === 'instructor'? \r\n
    \r\n
    \r\n {currentURL === '/instructorprogresstracking' ?\"\":\"\"}\r\n
    \r\n
    \r\n Progress Tracking\r\n
    \r\n
    \r\n : \r\n
    \r\n
    \r\n {currentURL === '/trainerprogresstracking' ?\"\":\"\"}\r\n
    \r\n
    \r\n Progress Tracking\r\n
    \r\n
    \r\n }\r\n
  • \r\n
  • \r\n \r\n
    \r\n
    \r\n {currentURL === '/instructorsettings' ?\"\":\"\"/}\r\n
    \r\n
    \r\n Settings\r\n
    \r\n
    \r\n \r\n
  • \r\n \r\n \r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n
  • \r\n
\r\n {/*
\r\n \r\n \"\"\r\n mdo\r\n \r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n {showModal && (\r\n \r\n
\r\n
\r\n
\r\n \r\n

\r\n Logged Out Successfuly!\r\n

\r\n
\r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat\r\n porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default InstructorSidebar","import React, { useEffect, useState } from 'react';\r\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\r\n\r\nconst InstructoreHeader = ({ handleSearch }) => {\r\n const [searchQuery, setSearchQuery] = useState('');\r\n\r\n const handleChange = (e) => {\r\n const query = e.target.value;\r\n setSearchQuery(query);\r\n handleSearch(query);\r\n };\r\n const storedUserData = localStorage.getItem('userData');\r\n const [userData, setUserData] = useState(storedUserData ? JSON.parse(storedUserData) : null);\r\n const [userlogged, setuserlogged] = useState(localStorage.getItem('loggedInUser'))\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const [currentURL, setCurrentURL] = useState(location.pathname);\r\n useEffect(() => {\r\n setCurrentURL(location.pathname);\r\n }, [location.pathname]);\r\n\r\n\r\n const handlenotification =() =>{\r\n navigate('/instructornotifications')\r\n }\r\n const handleinbox =() =>{\r\n navigate('/instructorinbox')\r\n }\r\n\r\n const handleLogout = () => {\r\n // Remove data of 'loggedInUser' from localStorage\r\n localStorage.removeItem('loggedInUser');\r\n // Update the userlogged state to false\r\n setuserlogged(false);\r\n navigate('/login');\r\n };\r\n return (\r\n <>\r\n \r\n \r\n )\r\n}\r\n\r\nexport default InstructoreHeader","import React, { useEffect, useState } from 'react';\r\nimport { Link, useNavigate } from 'react-router-dom';\r\nimport './instructorhome.css';\r\nimport InstructorSidebar from './InstructorSidebar';\r\nimport InstructoreHeader from './InstructoreHeader';\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst InstructorHome = () => {\r\n\r\n const [myCourses, setmyCourses] = useState('')\r\n const [isloading, setIsLoading] = useState(false);\r\n const navigate = useNavigate();\r\n const getmyCourses = () => {\r\n let getRes = (res) => {\r\n setmyCourses(res?.data?.courses);\r\n };\r\n\r\n callApi(\"GET\", routes.myCourses, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const checkBankInfo = () => {\r\n let getRes = (res) => {\r\n if (res.isBankAdded) {\r\n navigate('/instructorcreatecourse');\r\n // toast.success(res.message, {\r\n // autoClose: 1500,\r\n // onClose: () => { \r\n // navigate('/instructorcreatecourse');\r\n // }\r\n // })\r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n\r\n callApi(\"GET\", routes.checkBankInfo, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n // const deleteCourse = (courseId) => {\r\n // let getRes = (res) => {\r\n // if (res.statusCode === 200 ) {\r\n // getmyCourses();\r\n // toast.success(res.message, {\r\n // autoClose: 1500\r\n // })\r\n \r\n // } else {\r\n // toast.error(res.message, {\r\n // autoClose: 1500\r\n // })\r\n // }\r\n // };\r\n\r\n // callApi(\"DELETE\", routes.deleteCourse+'/'+courseId, null, setIsLoading, getRes, (error) => {\r\n // console.log(\"error\", error);\r\n // });\r\n // };\r\n useEffect(() => {\r\n // console.log(detail);\r\n getmyCourses()\r\n }, [])\r\n const [filteredProducts, setFilteredProducts] = useState([]);\r\n\r\n useEffect(() => {\r\n setFilteredProducts(myCourses);\r\n }, [myCourses]);\r\n const handleSearch = (query) => {\r\n if (query.trim() === '') {\r\n // If search query is empty, show all products\r\n setFilteredProducts(myCourses);\r\n } else {\r\n // Otherwise, filter products based on the search query\r\n const filtered = myCourses.filter(course =>\r\n course?.title?.toLowerCase().includes(query.toLowerCase())\r\n );\r\n setFilteredProducts(filtered);\r\n }\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

My Courses

\r\n
\r\n {filteredProducts && filteredProducts.map((course, index) => (
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
{course?.title}
\r\n \r\n
\r\n
\r\n \r\n {course?.level} \r\n \r\n
\r\n
\r\n \r\n
    \r\n
  • \"\" Edit
  • \r\n {/*
  • */}\r\n
  • \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n ${course?.price}\r\n 3 Month Course\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
))}\r\n
\r\n
\r\n
\r\n \"plus\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default InstructorHome;\r\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","/*!\n * @kurkle/color v0.3.2\n * https://github.com/kurkle/color#readme\n * (c) 2023 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/**\n * @namespace Chart.helpers\n */\n\nimport type {AnyObject} from '../types/basic.js';\nimport type {ActiveDataPoint, ChartEvent} from '../types/index.js';\n\n/**\n * An empty function that can be used, for example, for optional callback.\n */\nexport function noop() {\n /* noop */\n}\n\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */\nexport const uid = (() => {\n let id = 0;\n return () => id++;\n})();\n\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isNullOrUndef(value: unknown): value is null | undefined {\n return value === null || typeof value === 'undefined';\n}\n\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */\nexport function isArray(value: unknown): value is T[] {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isObject(value: unknown): value is AnyObject {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */\nfunction isNumberFinite(value: unknown): value is number {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\nexport {\n isNumberFinite as isFinite,\n};\n\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */\nexport function finiteOrDefault(value: unknown, defaultValue: number) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */\nexport function valueOrDefault(value: T | undefined, defaultValue: T) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nexport const toPercentage = (value: number | string, dimension: number) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : +value / dimension;\n\nexport const toDimension = (value: number | string, dimension: number) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\n\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */\nexport function callback R, TA, R>(\n fn: T | undefined,\n args: unknown[],\n thisArg?: TA\n): R | undefined {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\n/**\n * Note(SB) for performance sake, this method should only be used when loopable type\n * is unknown or in none intensive code (not called often and small loopable). Else\n * it's preferable to use a regular for() loop and save extra function calls.\n * @param loopable - The object or array to be iterated.\n * @param fn - The function to call for each item.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n * @param [reverse] - If true, iterates backward on the loopable.\n */\nexport function each(\n loopable: Record,\n fn: (this: TA, v: T, i: string) => void,\n thisArg?: TA,\n reverse?: boolean\n): void;\nexport function each(\n loopable: T[],\n fn: (this: TA, v: T, i: number) => void,\n thisArg?: TA,\n reverse?: boolean\n): void;\nexport function each(\n loopable: T[] | Record,\n fn: (this: TA, v: T, i: any) => void,\n thisArg?: TA,\n reverse?: boolean\n) {\n let i: number, len: number, keys: string[];\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */\nexport function _elementsEqual(a0: ActiveDataPoint[], a1: ActiveDataPoint[]) {\n let i: number, ilen: number, v0: ActiveDataPoint, v1: ActiveDataPoint;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */\nexport function clone(source: T): T {\n if (isArray(source)) {\n return source.map(clone) as unknown as T;\n }\n\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key: string) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */\nexport function _merger(key: string, target: AnyObject, source: AnyObject, options: AnyObject) {\n if (!isValidKey(key)) {\n return;\n }\n\n const tval = target[key];\n const sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\n\nexport interface MergeOptions {\n merger?: (key: string, target: AnyObject, source: AnyObject, options?: AnyObject) => void;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` with the given `options`.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @param [options] - Merging options:\n * @param [options.merger] - The merge method (key, target, source, options)\n * @returns The `target` object.\n */\nexport function merge(target: T, source: [], options?: MergeOptions): T;\nexport function merge(target: T, source: S1, options?: MergeOptions): T & S1;\nexport function merge(target: T, source: [S1], options?: MergeOptions): T & S1;\nexport function merge(target: T, source: [S1, S2], options?: MergeOptions): T & S1 & S2;\nexport function merge(target: T, source: [S1, S2, S3], options?: MergeOptions): T & S1 & S2 & S3;\nexport function merge(\n target: T,\n source: [S1, S2, S3, S4],\n options?: MergeOptions\n): T & S1 & S2 & S3 & S4;\nexport function merge(target: T, source: AnyObject[], options?: MergeOptions): AnyObject;\nexport function merge(target: T, source: AnyObject[], options?: MergeOptions): AnyObject {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n\n if (!isObject(target)) {\n return target as AnyObject;\n }\n\n options = options || {};\n const merger = options.merger || _merger;\n let current: AnyObject;\n\n for (let i = 0; i < ilen; ++i) {\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n\n const keys = Object.keys(current);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, current, options as AnyObject);\n }\n }\n\n return target;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @returns The `target` object.\n */\nexport function mergeIf(target: T, source: []): T;\nexport function mergeIf(target: T, source: S1): T & S1;\nexport function mergeIf(target: T, source: [S1]): T & S1;\nexport function mergeIf(target: T, source: [S1, S2]): T & S1 & S2;\nexport function mergeIf(target: T, source: [S1, S2, S3]): T & S1 & S2 & S3;\nexport function mergeIf(target: T, source: [S1, S2, S3, S4]): T & S1 & S2 & S3 & S4;\nexport function mergeIf(target: T, source: AnyObject[]): AnyObject;\nexport function mergeIf(target: T, source: AnyObject[]): AnyObject {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {merger: _mergerIf});\n}\n\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */\nexport function _mergerIf(key: string, target: AnyObject, source: AnyObject) {\n if (!isValidKey(key)) {\n return;\n }\n\n const tval = target[key];\n const sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n\n/**\n * @private\n */\nexport function _deprecated(scope: string, value: unknown, previous: string, current: string) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': v => v,\n // default resolvers\n x: o => o.x,\n y: o => o.y\n};\n\n/**\n * @private\n */\nexport function _splitKey(key: string) {\n const parts = key.split('.');\n const keys: string[] = [];\n let tmp = '';\n for (const part of parts) {\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\n\nfunction _getKeyResolver(key: string) {\n const keys = _splitKey(key);\n return obj => {\n for (const k of keys) {\n if (k === '') {\n // For backward compatibility:\n // Chart.helpers.core resolveObjectKey should break at empty key\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\n\nexport function resolveObjectKey(obj: AnyObject, key: string): any {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n\n/**\n * @private\n */\nexport function _capitalize(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\n\nexport const defined = (value: unknown) => typeof value !== 'undefined';\n\nexport const isFunction = (value: unknown): value is (...args: any[]) => any => typeof value === 'function';\n\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nexport const setsEqual = (a: Set, b: Set) => {\n if (a.size !== b.size) {\n return false;\n }\n\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * @param e - The event\n * @private\n */\nexport function _isClickEvent(e: ChartEvent) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n","import type {Point} from '../types/geometric.js';\nimport {isFinite as isFiniteNumber} from './helpers.core.js';\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\n\nexport const PI = Math.PI;\nexport const TAU = 2 * PI;\nexport const PITAU = TAU + PI;\nexport const INFINITY = Number.POSITIVE_INFINITY;\nexport const RAD_PER_DEG = PI / 180;\nexport const HALF_PI = PI / 2;\nexport const QUARTER_PI = PI / 4;\nexport const TWO_THIRDS_PI = PI * 2 / 3;\n\nexport const log10 = Math.log10;\nexport const sign = Math.sign;\n\nexport function almostEquals(x: number, y: number, epsilon: number) {\n return Math.abs(x - y) < epsilon;\n}\n\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */\nexport function niceNum(range: number) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */\nexport function _factorize(value: number) {\n const result: number[] = [];\n const sqrt = Math.sqrt(value);\n let i: number;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) { // if value is a square number\n result.push(sqrt);\n }\n\n result.sort((a, b) => a - b).pop();\n return result;\n}\n\nexport function isNumber(n: unknown): n is number {\n return !isNaN(parseFloat(n as string)) && isFinite(n as number);\n}\n\nexport function almostWhole(x: number, epsilon: number) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\n\n/**\n * @private\n */\nexport function _setMinAndMaxByKey(\n array: Record[],\n target: { min: number, max: number },\n property: string\n) {\n let i: number, ilen: number, value: number;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nexport function toRadians(degrees: number) {\n return degrees * (PI / 180);\n}\n\nexport function toDegrees(radians: number) {\n return radians * (180 / PI);\n}\n\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */\nexport function _decimalPlaces(x: number) {\n if (!isFiniteNumber(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\n\n// Gets the angle from vertical upright to the point about a centre.\nexport function getAngleFromPoint(\n centrePoint: Point,\n anglePoint: Point\n) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < (-0.5 * PI)) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\n\nexport function distanceBetweenPoints(pt1: Point, pt2: Point) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */\nexport function _angleDiff(a: number, b: number) {\n return (a - b + PITAU) % TAU - PI;\n}\n\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */\nexport function _normalizeAngle(a: number) {\n return (a % TAU + TAU) % TAU;\n}\n\n/**\n * @private\n */\nexport function _angleBetween(angle: number, start: number, end: number, sameAngleIsFullCircle?: boolean) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\n\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */\nexport function _limitValue(value: number, min: number, max: number) {\n return Math.max(min, Math.min(max, value));\n}\n\n/**\n * @param {number} value\n * @private\n */\nexport function _int16Range(value: number) {\n return _limitValue(value, -32768, 32767);\n}\n\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */\nexport function _isBetween(value: number, start: number, end: number, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n","import {_capitalize} from './helpers.core.js';\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param value - value to find\n * @param cmp\n * @private\n */\nexport function _lookup(\n table: number[],\n value: number,\n cmp?: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup(\n table: T[],\n value: number,\n cmp: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup(\n table: unknown[],\n value: number,\n cmp?: (value: number) => boolean\n) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid: number;\n\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {lo, hi};\n}\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */\nexport const _lookupByKey = (\n table: Record[],\n key: string,\n value: number,\n last?: boolean\n) =>\n _lookup(table, value, last\n ? index => {\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n }\n : index => table[index][key] < value);\n\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */\nexport const _rlookupByKey = (\n table: Record[],\n key: string,\n value: number\n) =>\n _lookup(table, value, index => table[index][key] >= value);\n\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */\nexport function _filterBetween(values: number[], min: number, max: number) {\n let start = 0;\n let end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\n\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'] as const;\n\nexport interface ArrayListener {\n _onDataPush?(...item: T[]): void;\n _onDataPop?(): void;\n _onDataShift?(): void;\n _onDataSplice?(index: number, deleteCount: number, ...items: T[]): void;\n _onDataUnshift?(...item: T[]): void;\n}\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the '_onData*' callbacks (e.g. _onDataPush, etc.) with same arguments.\n */\nexport function listenArrayEvents(array: T[], listener: ArrayListener): void;\nexport function listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nexport function unlistenArrayEvents(array: T[], listener: ArrayListener): void;\nexport function unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n\n delete array._chartjs;\n}\n\n/**\n * @param items\n */\nexport function _arrayUnique(items: T[]) {\n const set = new Set(items);\n\n if (set.size === items.length) {\n return items;\n }\n\n return Array.from(set);\n}\n","import type {ChartMeta, PointElement} from '../types/index.js';\n\nimport {_limitValue} from './helpers.math.js';\nimport {_lookupByKey} from './helpers.collection.js';\n\nexport function fontString(pixelSize: number, fontStyle: string, fontFamily: string) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\n/**\n* Request animation polyfill\n*/\nexport const requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\n\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */\nexport function throttled>(\n fn: (...args: TArgs) => void,\n thisArg: any,\n) {\n let argsToUse = [] as TArgs;\n let ticking = false;\n\n return function(...args: TArgs) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n\n/**\n * Debounces calling `fn` for `delay` ms\n */\nexport function debounce>(fn: (...args: TArgs) => void, delay: number) {\n let timeout;\n return function(...args: TArgs) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */\nexport const _toLeftRightCenter = (align: 'start' | 'end' | 'center') => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */\nexport const _alignStartEnd = (align: 'start' | 'end' | 'center', start: number, end: number) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */\nexport const _textX = (align: 'left' | 'right' | 'center', left: number, right: number, rtl: boolean) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\n/**\n * Return start and count of visible points.\n * @private\n */\nexport function _getStartAndCountOfVisiblePoints(meta: ChartMeta<'line' | 'scatter'>, points: PointElement[], animationsDisabled: boolean) {\n const pointCount = points.length;\n\n let start = 0;\n let count = pointCount;\n\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n\n if (minDefined) {\n start = _limitValue(Math.min(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n\n return {start, count};\n}\n\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */\nexport function _scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n","import {PI, TAU, HALF_PI} from './helpers.math.js';\n\nconst atEdge = (t: number) => t === 0 || t === 1;\nconst elasticIn = (t: number, s: number, p: number) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t: number, s: number, p: number) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */\nconst effects = {\n linear: (t: number) => t,\n\n easeInQuad: (t: number) => t * t,\n\n easeOutQuad: (t: number) => -t * (t - 2),\n\n easeInOutQuad: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n\n easeInCubic: (t: number) => t * t * t,\n\n easeOutCubic: (t: number) => (t -= 1) * t * t + 1,\n\n easeInOutCubic: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n\n easeInQuart: (t: number) => t * t * t * t,\n\n easeOutQuart: (t: number) => -((t -= 1) * t * t * t - 1),\n\n easeInOutQuart: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n\n easeInQuint: (t: number) => t * t * t * t * t,\n\n easeOutQuint: (t: number) => (t -= 1) * t * t * t * t + 1,\n\n easeInOutQuint: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n\n easeInSine: (t: number) => -Math.cos(t * HALF_PI) + 1,\n\n easeOutSine: (t: number) => Math.sin(t * HALF_PI),\n\n easeInOutSine: (t: number) => -0.5 * (Math.cos(PI * t) - 1),\n\n easeInExpo: (t: number) => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n\n easeOutExpo: (t: number) => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n\n easeInOutExpo: (t: number) => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n\n easeInCirc: (t: number) => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n\n easeOutCirc: (t: number) => Math.sqrt(1 - (t -= 1) * t),\n\n easeInOutCirc: (t: number) => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n\n easeInElastic: (t: number) => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n\n easeOutElastic: (t: number) => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n\n easeInOutElastic(t: number) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n\n easeInBack(t: number) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n\n easeOutBack(t: number) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n\n easeInOutBack(t: number) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n\n easeInBounce: (t: number) => 1 - effects.easeOutBounce(1 - t),\n\n easeOutBounce(t: number) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n\n easeInOutBounce: (t: number) => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n} as const;\n\nexport type EasingFunction = keyof typeof effects\n\nexport default effects;\n","import {Color} from '@kurkle/color';\n\nexport function isPatternOrGradient(value: unknown): value is CanvasPattern | CanvasGradient {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n\n return false;\n}\n\nexport function color(value: CanvasGradient): CanvasGradient;\nexport function color(value: CanvasPattern): CanvasPattern;\nexport function color(\n value:\n | string\n | { r: number; g: number; b: number; a: number }\n | [number, number, number]\n | [number, number, number, number]\n): Color;\nexport function color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\n\nexport function getHoverColor(value: CanvasGradient): CanvasGradient;\nexport function getHoverColor(value: CanvasPattern): CanvasPattern;\nexport function getHoverColor(value: string): string;\nexport function getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n","const numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\n\nexport function applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n });\n\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n });\n\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n });\n\n defaults.describe('animations', {\n _fallback: 'animation',\n });\n\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0 // show immediately\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0 // for keeping the dataset visible all the way through the animation\n },\n }\n }\n });\n}\n","\nconst intlCache = new Map();\n\nfunction getNumberFormat(locale: string, options?: Intl.NumberFormatOptions) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\n\nexport function formatNumber(num: number, locale: string, options?: Intl.NumberFormatOptions) {\n return getNumberFormat(locale, options).format(num);\n}\n","import {isArray} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {log10} from '../helpers/helpers.math.js';\n\n/**\n * Namespace to hold formatters for different types of ticks\n * @namespace Chart.Ticks.formatters\n */\nconst formatters = {\n /**\n * Formatter for value labels\n * @method Chart.Ticks.formatters.values\n * @param value the value to display\n * @return {string|string[]} the label to display\n */\n values(value) {\n return isArray(value) ? /** @type {string[]} */ (value) : '' + value;\n },\n\n /**\n * Formatter for numeric ticks\n * @method Chart.Ticks.formatters.numeric\n * @param tickValue {number} the value to be formatted\n * @param index {number} the position of the tickValue parameter in the ticks array\n * @param ticks {object[]} the list of ticks being converted\n * @return {string} string representation of the tickValue parameter\n */\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0'; // never show decimal places for 0\n }\n\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue; // This is used when there are less than 2 ticks as the tick interval.\n\n if (ticks.length > 1) {\n // all ticks are small or there huge numbers; use scientific notation\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n\n delta = calculateDelta(tickValue, ticks);\n }\n\n const logDelta = log10(Math.abs(delta));\n\n // When datasets have values approaching Number.MAX_VALUE, the tick calculations might result in\n // infinity and eventually NaN. Passing NaN for minimumFractionDigits or maximumFractionDigits\n // will make the number formatter throw. So instead we check for isNaN and use a fallback value.\n //\n // toFixed has a max of 20 decimal places\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n\n return formatNumber(tickValue, locale, options);\n },\n\n\n /**\n * Formatter for logarithmic ticks\n * @method Chart.Ticks.formatters.logarithmic\n * @param tickValue {number} the value to be formatted\n * @param index {number} the position of the tickValue parameter in the ticks array\n * @param ticks {object[]} the list of ticks being converted\n * @return {string} string representation of the tickValue parameter\n */\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || (tickValue / (Math.pow(10, Math.floor(log10(tickValue)))));\n if ([1, 2, 3, 5, 10, 15].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n\n};\n\n\nfunction calculateDelta(tickValue, ticks) {\n // Figure out how many digits to show\n // The space between the first two ticks might be smaller than normal spacing\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n\n // If we have a number like 2.5 as the delta, figure out how many decimal places we need\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n // not an integer\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nexport default {formatters};\n","import {getHoverColor} from '../helpers/helpers.color.js';\nimport {isObject, merge, valueOrDefault} from '../helpers/helpers.core.js';\nimport {applyAnimationsDefaults} from './core.animations.defaults.js';\nimport {applyLayoutsDefaults} from './core.layouts.defaults.js';\nimport {applyScaleDefaults} from './core.scale.defaults.js';\n\nexport const overrides = Object.create(null);\nexport const descriptors = Object.create(null);\n\n/**\n * @param {object} node\n * @param {string} key\n * @return {object}\n */\nfunction getScope(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\n\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope(root, scope), values);\n }\n return merge(getScope(root, ''), scope);\n}\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is exported for typedoc\n */\nexport class Defaults {\n constructor(_descriptors, _appliers) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n\n /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n set(scope, values) {\n return set(this, scope, values);\n }\n\n /**\n\t * @param {string} scope\n\t */\n get(scope) {\n return getScope(this, scope);\n }\n\n /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n\n override(scope, values) {\n return set(overrides, scope, values);\n }\n\n /**\n\t * Routes the named defaults to fallback to another scope/name.\n\t * This routing is useful when those target values, like defaults.color, are changed runtime.\n\t * If the values would be copied, the runtime change would not take effect. By routing, the\n\t * fallback is evaluated at each access, so its always up to date.\n\t *\n\t * Example:\n\t *\n\t * \tdefaults.route('elements.arc', 'backgroundColor', '', 'color')\n\t * - reads the backgroundColor from defaults.color when undefined locally\n\t *\n\t * @param {string} scope Scope this route applies to.\n\t * @param {string} name Property name that should be routed to different namespace when not defined here.\n\t * @param {string} targetScope The namespace where those properties should be routed to.\n\t * Empty string ('') is the root of defaults.\n\t * @param {string} targetName The target name in the target scope the property should be routed to.\n\t */\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope(this, scope);\n const targetScopeObject = getScope(this, targetScope);\n const privateName = '_' + name;\n\n Object.defineProperties(scopeObject, {\n // A private property is defined to hold the actual value, when this property is set in its scope (set in the setter)\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n // The actual property is defined as getter/setter so we can do the routing when value is not locally set.\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n\n apply(appliers) {\n appliers.forEach((apply) => apply(this));\n }\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n}, [applyAnimationsDefaults, applyLayoutsDefaults, applyScaleDefaults]);\n","export function applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n","import Ticks from './core.ticks.js';\n\nexport function applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n\n /**\n * Scale boundary strategy (bypassed by min/max time options)\n * - `data`: make sure data are fully visible, ticks outside are removed\n * - `ticks`: make sure ticks are fully visible, data outside are truncated\n * @see https://github.com/chartjs/Chart.js/pull/4556\n * @since 3.0.0\n */\n bounds: 'ticks',\n\n clip: true,\n\n /**\n * Addition grace added to max and reduced from min data value.\n * @since 3.0.0\n */\n grace: 0,\n\n // grid line settings\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n },\n\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n\n // scale title\n title: {\n // display property\n display: false,\n\n // actual label\n text: '',\n\n // top/bottom padding\n padding: {\n top: 4,\n bottom: 4\n }\n },\n\n // label settings\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n // We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n });\n\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash',\n });\n\n defaults.describe('scales', {\n _fallback: 'scale',\n });\n\n defaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n });\n}\n","import type {\n Chart,\n Point,\n FontSpec,\n CanvasFontSpec,\n PointStyle,\n RenderTextOpts,\n BackdropOptions\n} from '../types/index.js';\nimport type {\n TRBL,\n SplinePoint,\n RoundedRect,\n TRBLCorners\n} from '../types/geometric.js';\nimport {isArray, isNullOrUndef} from './helpers.core.js';\nimport {PI, TAU, HALF_PI, QUARTER_PI, TWO_THIRDS_PI, RAD_PER_DEG} from './helpers.math.js';\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nexport function toFontString(font: FontSpec) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @private\n */\nexport function _measureText(\n ctx: CanvasRenderingContext2D,\n data: Record,\n gc: string[],\n longest: number,\n string: string\n) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n\ntype Thing = string | undefined | null\ntype Things = (Thing | Thing[])[]\n\n/**\n * @private\n */\n// eslint-disable-next-line complexity\nexport function _longestText(\n ctx: CanvasRenderingContext2D,\n font: string,\n arrayOfThings: Things,\n cache?: {data?: Record, garbageCollect?: string[], font?: string}\n) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i: number, j: number, jlen: number, thing: Thing | Thing[], nestedThing: Thing | Thing[];\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */\nexport function _alignPixel(chart: Chart, pixel: number, width: number) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\n/**\n * Clears the entire canvas.\n */\nexport function clearCanvas(canvas: HTMLCanvasElement, ctx?: CanvasRenderingContext2D) {\n ctx = ctx || canvas.getContext('2d');\n\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\n\nexport interface DrawPointOptions {\n pointStyle: PointStyle;\n rotation?: number;\n radius: number;\n borderWidth: number;\n}\n\nexport function drawPoint(\n ctx: CanvasRenderingContext2D,\n options: DrawPointOptions,\n x: number,\n y: number\n) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n\n// eslint-disable-next-line complexity\nexport function drawPointLegend(\n ctx: CanvasRenderingContext2D,\n options: DrawPointOptions,\n x: number,\n y: number,\n w: number\n) {\n let type: string, xOffset: number, yOffset: number, size: number, cornerRadius: number, width: number, xOffsetW: number, yOffsetW: number;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */\n case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */\n case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */\nexport function _isPointInArea(\n point: Point,\n area: TRBL,\n margin?: number\n) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\n\nexport function clipArea(ctx: CanvasRenderingContext2D, area: TRBL) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\n\nexport function unclipArea(ctx: CanvasRenderingContext2D) {\n ctx.restore();\n}\n\n/**\n * @private\n */\nexport function _steppedLineTo(\n ctx: CanvasRenderingContext2D,\n previous: Point,\n target: Point,\n flip?: boolean,\n mode?: string\n) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n\n/**\n * @private\n */\nexport function _bezierCurveTo(\n ctx: CanvasRenderingContext2D,\n previous: SplinePoint,\n target: SplinePoint,\n flip?: boolean\n) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\n\nfunction setRenderOpts(ctx: CanvasRenderingContext2D, opts: RenderTextOpts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\n\nfunction decorateText(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n line: string,\n opts: RenderTextOpts\n) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\n\nfunction drawBackdrop(ctx: CanvasRenderingContext2D, opts: BackdropOptions) {\n const oldColor = ctx.fillStyle;\n\n ctx.fillStyle = opts.color as string;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n\n/**\n * Render text onto the canvas\n */\nexport function renderText(\n ctx: CanvasRenderingContext2D,\n text: string | string[],\n x: number,\n y: number,\n font: CanvasFontSpec,\n opts: RenderTextOpts = {}\n) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i: number, line: string;\n\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n\n y += Number(font.lineHeight);\n }\n\n ctx.restore();\n}\n\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */\nexport function addRoundedRectPath(\n ctx: CanvasRenderingContext2D,\n rect: RoundedRect & { radius: TRBLCorners }\n) {\n const {x, y, w, h, radius} = rect;\n\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n","import defaults from '../core/core.defaults.js';\nimport {isArray, isObject, toDimension, valueOrDefault} from './helpers.core.js';\nimport {toFontString} from './helpers.canvas.js';\nimport type {ChartArea, FontSpec, Point} from '../types/index.js';\nimport type {TRBL, TRBLCorners} from '../types/geometric.js';\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\n/**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */\nexport function toLineHeight(value: number | string, size: number): number {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n default:\n break;\n }\n\n return size * value;\n}\n\nconst numberOrZero = (v: unknown) => +v || 0;\n\n/**\n * @param value\n * @param props\n */\nexport function _readValueToProps(value: number | Record, props: K[]): Record;\nexport function _readValueToProps(value: number | Record, props: Record): Record;\nexport function _readValueToProps(value: number | Record, props: string[] | Record) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */\nexport function toTRBL(value: number | TRBL | Point) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\n\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */\nexport function toTRBLCorners(value: number | TRBLCorners) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */\nexport function toPadding(value?: number | TRBL): ChartArea {\n const obj = toTRBL(value) as ChartArea;\n\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n\n return obj;\n}\n\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */\n\nexport function toFont(options: Partial, fallback?: Partial) {\n options = options || {};\n fallback = fallback || defaults.font as FontSpec;\n\n let size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n\n font.string = toFontString(font);\n return font;\n}\n\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */\nexport function resolve(inputs: Array, context?: object, index?: number, info?: { cacheable: boolean }) {\n let cacheable = true;\n let i: number, ilen: number, value: unknown;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */\nexport function _addGrace(minmax: { min: number; max: number; }, grace: number | string, beginAtZero: boolean) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value: number, add: number) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\n\n/**\n * Create a context inheriting parentContext\n * @param parentContext\n * @param context\n * @returns\n */\nexport function createContext(parentContext: null, context: T): T;\nexport function createContext(parentContext: P, context: T): P & T;\nexport function createContext(parentContext: object, context: object) {\n return Object.assign(Object.create(parentContext), context);\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport type {AnyObject} from '../types/basic.js';\nimport type {ChartMeta} from '../types/index.js';\nimport type {\n ResolverObjectKey,\n ResolverCache,\n ResolverProxy,\n DescriptorDefaults,\n Descriptor,\n ContextCache,\n ContextProxy\n} from './helpers.config.types.js';\nimport {isArray, isFunction, isObject, resolveObjectKey, _capitalize} from './helpers.core.js';\n\nexport * from './helpers.config.types.js';\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */\nexport function _createResolver<\n T extends AnyObject[] = AnyObject[],\n R extends AnyObject[] = T\n>(\n scopes: T,\n prefixes = [''],\n rootScopes?: R,\n fallback?: ResolverObjectKey,\n getTarget = () => scopes[0]\n) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache: ResolverCache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope: AnyObject) => _createResolver([scope, ...scopes], prefixes, finalRootScopes, fallback),\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */\n deleteProperty(target, prop: string) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n\n /**\n * A trap for getting property values.\n */\n get(target, prop: string) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n\n /**\n * A trap for Object.getPrototypeOf.\n */\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n\n /**\n * A trap for the in operator.\n */\n has(target, prop: string) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n\n /**\n * A trap for setting property values.\n */\n set(target, prop: string, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n }) as ResolverProxy;\n}\n\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */\nexport function _attachContext<\n T extends AnyObject[] = AnyObject[],\n R extends AnyObject[] = T\n>(\n proxy: ResolverProxy,\n context: AnyObject,\n subProxy?: ResolverProxy,\n descriptorDefaults?: DescriptorDefaults\n) {\n const cache: ContextCache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx: AnyObject) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope: AnyObject) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */\n deleteProperty(target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n\n /**\n * A trap for getting property values.\n */\n get(target, prop: string, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n\n /**\n * A trap for Object.getPrototypeOf.\n */\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n\n /**\n * A trap for the in operator.\n */\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n\n /**\n * A trap for setting property values.\n */\n set(target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n }) as ContextProxy;\n}\n\n/**\n * @private\n */\nexport function _descriptors(\n proxy: ResolverCache,\n defaults: DescriptorDefaults = {scriptable: true, indexable: true}\n): Descriptor {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\n\nconst readKey = (prefix: string, name: string) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop: string, value: unknown) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\n\nfunction _cached(\n target: AnyObject,\n prop: string,\n resolve: () => unknown\n) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\n\nfunction _resolveWithContext(\n target: ContextCache,\n prop: string,\n receiver: AnyObject\n) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop]; // resolve from proxy\n\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\n\nfunction _resolveScriptable(\n prop: string,\n getValue: (ctx: AnyObject, sub: AnyObject) => unknown,\n target: ContextCache,\n receiver: AnyObject\n) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\n\nfunction _resolveArray(\n prop: string,\n value: unknown[],\n target: ContextCache,\n isIndexable: (key: string) => boolean\n) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\n\nfunction resolveFallback(\n fallback: ResolverObjectKey | ((prop: ResolverObjectKey, value: unknown) => ResolverObjectKey),\n prop: ResolverObjectKey,\n value: unknown\n) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nconst getScope = (key: ResolverObjectKey, parent: AnyObject) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n\nfunction addScopes(\n set: Set,\n parentScopes: AnyObject[],\n key: ResolverObjectKey,\n parentFallback: ResolverObjectKey,\n value: unknown\n) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\n\nfunction createSubResolver(\n parentScopes: AnyObject[],\n resolver: ResolverCache,\n prop: ResolverObjectKey,\n value: unknown\n) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop as string, value));\n}\n\nfunction addScopesFromKey(\n set: Set,\n allScopes: AnyObject[],\n key: ResolverObjectKey,\n fallback: ResolverObjectKey,\n item: unknown\n) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\n\nfunction subGetTarget(\n resolver: ResolverCache,\n prop: string,\n value: unknown\n) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\n\nfunction _resolveWithPrefixes(\n prop: string,\n prefixes: string[],\n scopes: AnyObject[],\n proxy: ResolverProxy\n) {\n let value: unknown;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\n\nfunction _resolve(key: string, scopes: AnyObject[]) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\n\nfunction getKeysFromAllScopes(target: ResolverCache) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes: AnyObject[]) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\n\nexport function _parseObjectDataRadialScale(\n meta: ChartMeta<'line' | 'scatter'>,\n data: AnyObject[],\n start: number,\n count: number\n) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array<{r: unknown}>(count);\n let i: number, ilen: number, index: number, item: AnyObject;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n","import {almostEquals, distanceBetweenPoints, sign} from './helpers.math.js';\nimport {_isPointInArea} from './helpers.canvas.js';\nimport type {ChartArea} from '../types/index.js';\nimport type {SplinePoint} from '../types/geometric.js';\n\nconst EPSILON = Number.EPSILON || 1e-14;\n\ntype OptionalSplinePoint = SplinePoint | false\nconst getPoint = (points: SplinePoint[], i: number): OptionalSplinePoint => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis: 'x' | 'y') => indexAxis === 'x' ? 'y' : 'x';\n\nexport function splineCurve(\n firstPoint: SplinePoint,\n middlePoint: SplinePoint,\n afterPoint: SplinePoint,\n t: number\n): {\n previous: SplinePoint\n next: SplinePoint\n } {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n // This function must also respect \"skipped\" points\n\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n\n/**\n * Adjust tangents to ensure monotonic properties\n */\nfunction monotoneAdjust(points: SplinePoint[], deltaK: number[], mK: number[]) {\n const pointsLen = points.length;\n\n let alphaK: number, betaK: number, tauK: number, squaredMagnitude: number, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points: SplinePoint[], mK: number[], indexAxis: 'x' | 'y' = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta: number, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */\nexport function splineCurveMonotone(points: SplinePoint[], indexAxis: 'x' | 'y' = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK: number[] = Array(pointsLen).fill(0);\n const mK: number[] = Array(pointsLen);\n\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n\n monotoneAdjust(points, deltaK, mK);\n\n monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt: number, min: number, max: number) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points: SplinePoint[], area: ChartArea) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n\n/**\n * @private\n */\nexport function _updateBezierControlPoints(\n points: SplinePoint[],\n options,\n area: ChartArea,\n loop: boolean,\n indexAxis: 'x' | 'y'\n) {\n let i: number, ilen: number, point: SplinePoint, controlPoints: ReturnType;\n\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n","import type {ChartArea, Scale} from '../types/index.js';\nimport type Chart from '../core/core.controller.js';\nimport type {ChartEvent} from '../types.js';\nimport {INFINITY} from './helpers.math.js';\n\n/**\n * Note: typedefs are auto-exported, so use a made-up `dom` namespace where\n * necessary to avoid duplicates with `export * from './helpers`; see\n * https://github.com/microsoft/TypeScript/issues/46011\n * @typedef { import('../core/core.controller.js').default } dom.Chart\n * @typedef { import('../../types').ChartEvent } ChartEvent\n */\n\n/**\n * @private\n */\nexport function _isDomSupported(): boolean {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * @private\n */\nexport function _getParentNode(domNode: HTMLCanvasElement): HTMLCanvasElement {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = (parent as ShadowRoot).host;\n }\n return parent as HTMLCanvasElement;\n}\n\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */\n\nfunction parseMaxStyle(styleValue: string | number, node: HTMLElement, parentProperty: string) {\n let valueInPixels: number;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = (valueInPixels / 100) * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nconst getComputedStyle = (element: HTMLElement): CSSStyleDeclaration =>\n element.ownerDocument.defaultView.getComputedStyle(element, null);\n\nexport function getStyle(el: HTMLElement, property: string): string {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles: CSSStyleDeclaration, style: string, suffix?: string): ChartArea {\n const result = {} as ChartArea;\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nconst useOffsetPos = (x: number, y: number, target: HTMLElement | EventTarget) =>\n (x > 0 || y > 0) && (!target || !(target as HTMLElement).shadowRoot);\n\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */\nfunction getCanvasPosition(\n e: Event | TouchEvent | MouseEvent,\n canvas: HTMLCanvasElement\n): {\n x: number;\n y: number;\n box: boolean;\n } {\n const touches = (e as TouchEvent).touches;\n const source = (touches && touches.length ? touches[0] : e) as MouseEvent;\n const {offsetX, offsetY} = source as MouseEvent;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\n\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */\n\nexport function getRelativePosition(\n event: Event | ChartEvent | TouchEvent | MouseEvent,\n chart: Chart\n): { x: number; y: number } {\n if ('native' in event) {\n return event;\n }\n\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\n\nfunction getContainerSize(canvas: HTMLCanvasElement, width: number, height: number): Partial {\n let maxWidth: number, maxHeight: number;\n\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nconst round1 = (v: number) => Math.round(v * 10) / 10;\n\n// eslint-disable-next-line complexity\nexport function getMaximumSize(\n canvas: HTMLCanvasElement,\n bbWidth?: number,\n bbHeight?: number,\n aspectRatio?: number\n): { width: number; height: number } {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n\n return {width, height};\n}\n\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */\nexport function retinaScale(\n chart: Chart,\n forceRatio: number,\n forceStyle?: boolean\n): boolean | void {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n\n chart.height = Math.floor(chart.height);\n chart.width = Math.floor(chart.width);\n\n const canvas = chart.canvas;\n\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nexport const supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() { // This function will be called when the browser attempts to access the passive property.\n passiveSupported = true;\n return false;\n }\n } as EventListenerOptions;\n\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}());\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */\n\nexport function readUsedSize(\n element: HTMLElement,\n property: 'width' | 'height'\n): number | undefined {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n","import type {Point, SplinePoint} from '../types/geometric.js';\n\n/**\n * @private\n */\nexport function _pointInLine(p1: Point, p2: Point, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n\n/**\n * @private\n */\nexport function _steppedInterpolation(\n p1: Point,\n p2: Point,\n t: number, mode: 'middle' | 'after' | unknown\n) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\n\n/**\n * @private\n */\nexport function _bezierInterpolation(p1: SplinePoint, p2: SplinePoint, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n","export interface RTLAdapter {\n x(x: number): number;\n setWidth(w: number): void;\n textAlign(align: 'center' | 'left' | 'right'): 'center' | 'left' | 'right';\n xPlus(x: number, value: number): number;\n leftForLtr(x: number, itemWidth: number): number;\n}\n\nconst getRightToLeftAdapter = function(rectX: number, width: number): RTLAdapter {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\n\nconst getLeftToRightAdapter = function(): RTLAdapter {\n return {\n x(x) {\n return x;\n },\n setWidth(w) { // eslint-disable-line no-unused-vars\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) { // eslint-disable-line @typescript-eslint/no-unused-vars\n return x;\n },\n };\n};\n\nexport function getRtlAdapter(rtl: boolean, rectX: number, width: number) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nexport function overrideTextDirection(ctx: CanvasRenderingContext2D, direction: 'ltr' | 'rtl') {\n let style: CSSStyleDeclaration, original: [string, string];\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n\n style.setProperty('direction', direction, 'important');\n (ctx as { prevTextDirection?: [string, string] }).prevTextDirection = original;\n }\n}\n\nexport function restoreTextDirection(ctx: CanvasRenderingContext2D, original?: [string, string]) {\n if (original !== undefined) {\n delete (ctx as { prevTextDirection?: [string, string] }).prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n","import {_angleBetween, _angleDiff, _isBetween, _normalizeAngle} from './helpers.math.js';\nimport {createContext} from './helpers.options.js';\nimport {isPatternOrGradient} from './helpers.color.js';\n\n/**\n * @typedef { import('../elements/element.line.js').default } LineElement\n * @typedef { import('../elements/element.point.js').default } PointElement\n * @typedef {{start: number, end: number, loop: boolean, style?: any}} Segment\n */\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\n\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n // eslint-disable-next-line prefer-const\n let {start, end, loop} = segment;\n let i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\n\n/**\n * Returns the sub-segment(s) of a line segment that fall in the given bounds\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} [segment.style] - segment style\n * @param {PointElement[]} points - the points that this segment refers to\n * @param {object} [bounds]\n * @param {string} bounds.property - the property of a `PointElement` we are bounding. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the property\n * @param {number} bounds.end - end value of the property\n * @private\n **/\nexport function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n\n if (value === prevValue) {\n continue;\n }\n\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n\n return result;\n}\n\n\n/**\n * Returns the segments of the line that are inside given bounds\n * @param {LineElement} line\n * @param {object} [bounds]\n * @param {string} bounds.property - the property we are bounding with. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the `property`\n * @param {number} bounds.end - end value of the `property`\n * @private\n */\nexport function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n\n/**\n * Find start and end index of a line.\n */\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n\n if (loop && !spanGaps) {\n // loop and not spanning gaps, first find a gap to start from\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n // find first non skipped point (after the first gap possibly)\n while (start < count && points[start].skip) {\n start++;\n }\n\n // if we looped to count, start needs to be 0\n start %= count;\n\n if (loop) {\n // loop will go past count, if start > 0\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n // end could be more than count, normalize\n end %= count;\n\n return {start, end};\n}\n\n/**\n * Compute solid segments from Points, when spanGaps === false\n * @param {PointElement[]} points - the points\n * @param {number} start - start index\n * @param {number} max - max index (can go past count on a loop)\n * @param {boolean} loop - boolean indicating that this would be a loop if no gaps are found\n */\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n // @ts-ignore\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n\n return result;\n}\n\n/**\n * Compute the continuous segments that define the whole line\n * There can be skipped points within a segment, if spanGaps is true.\n * @param {LineElement} line\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n * @private\n */\nexport function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n\n if (!count) {\n return [];\n }\n\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\n/**\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n\n/**\n * @param {LineElement} line\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n // Style can not start/end on a skipped point, adjust indices accordingly\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n\n return result;\n}\n\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\n\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n","import {requestAnimFrame} from '../helpers/helpers.extras.js';\n\n/**\n * @typedef { import('./core.animation.js').default } Animation\n * @typedef { import('./core.controller.js').default } Chart\n */\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is export for typedoc\n */\nexport class Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n\n /**\n\t * @private\n\t */\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n\n /**\n\t * @private\n\t */\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n\n if (this._running) {\n this._refresh();\n }\n });\n }\n\n /**\n\t * @private\n\t */\n _update(date = Date.now()) {\n let remaining = 0;\n\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n\n for (; i >= 0; --i) {\n item = items[i];\n\n if (item._active) {\n if (item._total > anims.duration) {\n // if the animation has been updated and its duration prolonged,\n // update to total duration of current animations run (for progress event)\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n // Remove the item by replacing it with last item and removing the last\n // A lot faster than splice.\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n\n remaining += items.length;\n });\n\n this._lastDate = date;\n\n if (remaining === 0) {\n this._running = false;\n }\n }\n\n /**\n\t * @private\n\t */\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n\n /**\n\t * @param {Chart} chart\n\t * @param {string} event - event name\n\t * @param {Function} cb - callback\n\t */\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n\n /**\n\t * Add animations\n\t * @param {Chart} chart\n\t * @param {Animation[]} items - animations\n\t */\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n\n /**\n\t * Counts number of active animations for the chart\n\t * @param {Chart} chart\n\t */\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n\n /**\n\t * Start animating (all charts)\n\t * @param {Chart} chart\n\t */\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n\n /**\n\t * Stop all animations for the chart\n\t * @param {Chart} chart\n\t */\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n\n /**\n\t * Remove chart from Animator\n\t * @param {Chart} chart\n\t */\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Animator();\n","import effects from '../helpers/helpers.easing.js';\nimport {resolve} from '../helpers/helpers.options.js';\nimport {color as helpersColor} from '../helpers/helpers.color.js';\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n /**\n * @param {string} from\n * @param {string} to\n * @param {number} factor\n */\n color(from, to, factor) {\n const c0 = helpersColor(from || transparent);\n const c1 = c0.valid && helpersColor(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\n\nexport default class Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n\n active() {\n return this._active;\n }\n\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n\n cancel() {\n if (this._active) {\n // update current evaluated value, for smoother animations\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n\n this._active = from !== to && (loop || (elapsed < duration));\n\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n\n this._target[prop] = this._fn(from, to, factor);\n }\n\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n","import animator from './core.animator.js';\nimport Animation from './core.animation.js';\nimport defaults from './core.defaults.js';\nimport {isArray, isObject} from '../helpers/helpers.core.js';\n\nexport default class Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n\n /**\n\t * Utility to handle animation of `options`.\n\t * @private\n\t */\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n // Going to shared options:\n // After all animations are done, assign the shared options object to the element\n // So any new updates to the shared options are observed\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n // rejected, noop\n });\n }\n\n return animations;\n }\n\n /**\n\t * @private\n\t */\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n\n if (animation) {\n if (cfg && animation.active()) {\n // There is an existing active animation, let's update that\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n // not animated, set directly to new value\n target[prop] = value;\n continue;\n }\n\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n\n\n /**\n\t * Update `target` properties to new values, using configured animations\n\t * @param {object} target - object to update\n\t * @param {object} values - new target properties\n\t * @returns {boolean|undefined} - `true` if animations were started\n\t **/\n update(target, values) {\n if (this._properties.size === 0) {\n // Nothing is animated, just apply the new values.\n Object.assign(target, values);\n return;\n }\n\n const animations = this._createAnimations(target, values);\n\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\n\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n // @ts-ignore\n return Promise.all(running);\n}\n\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n // Going from shared options to distinct one:\n // Create new options object containing the old shared values and start updating that.\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n","import Animations from './core.animations.js';\nimport defaults from './core.defaults.js';\nimport {isArray, isFinite, isObject, valueOrDefault, resolveObjectKey, defined} from '../helpers/helpers.core.js';\nimport {listenArrayEvents, unlistenArrayEvents} from '../helpers/helpers.collection.js';\nimport {createContext, sign} from '../helpers/index.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('./core.scale.js').default } Scale\n */\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\n\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\n\nfunction toClip(value) {\n let t, r, b, l;\n\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\n\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\n\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n\n if (value === null) {\n return;\n }\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\n\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\n\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\n\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\n\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\n\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\n\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n\n return null;\n}\n\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {}); // map structure is {stackKey: {datasetIndex: value}}\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\n\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\n\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\n\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\n\nfunction clearStacks(meta, items) {\n // Not using meta.index here, because it might be already updated if the dataset changed location\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\n\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\n\nexport default class DatasetController {\n\n /**\n * @type {any}\n */\n static defaults = {};\n\n /**\n * Element type used to generate a meta dataset (e.g. Chart.element.LineElement).\n */\n static datasetElementType = null;\n\n /**\n * Element type used to generate a meta data (e.g. Chart.element.PointElement).\n */\n static dataElementType = null;\n\n /**\n\t * @param {Chart} chart\n\t * @param {number} datasetIndex\n\t */\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n /** @type {boolean | object} */\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n\n this.initialize();\n }\n\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n\n /**\n\t * @param {string} scaleID\n\t * @return {Scale}\n\t */\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n\n /**\n\t * @private\n\t */\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n\n reset() {\n this._update('reset');\n }\n\n /**\n\t * @private\n\t */\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n\n /**\n\t * @private\n\t */\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n\n // In order to correctly handle data addition/deletion animation (and thus simulate\n // real-time charts), we need to monitor these data modifications and synchronize\n // the internal metadata accordingly.\n\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n // This case happens when the user replaced the data array instance.\n unlistenArrayEvents(_data, this);\n // Discard old parsed data and stacks\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n\n addElements() {\n const meta = this._cachedMeta;\n\n this._dataCheck();\n\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n\n this._dataCheck();\n\n // make sure cached _stacked status is current\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n\n // detect change in stack option\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n // remove values from old stack\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n\n // Re-sync meta data in case the user replaced the data array or if we missed\n // any updates and so make sure that we handle number of datapoints changing.\n this._resyncElements(resetNewElements);\n\n // if stack changed, update stack values for the whole dataset\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n\n /**\n\t * Merges user-supplied and default dataset-level options\n\t * @private\n\t */\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n\n /**\n\t * @param {number} start\n\t * @param {number} count\n\t */\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n\n /**\n\t * Parse array of primitive values\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [1,3,4]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id.\n\t * Example: {xScale0: 0, yScale0: 1}\n\t * @protected\n\t */\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n\n /**\n\t * Parse array of arrays\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [[1,2],[3,4]]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id.\n\t * Example: {x: 0, y: 1}\n\t * @protected\n\t */\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n\n /**\n\t * Parse array of objects\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [{x:1, y:5}, {x:2, y:10}]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id. _custom is optional\n\t * Example: {xScale0: 0, yScale0: 1, _custom: {r: 10, foo: 'bar'}}\n\t * @protected\n\t */\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n\n /**\n\t * @protected\n\t */\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n\n /**\n\t * @protected\n\t */\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n\n /**\n\t * @protected\n\t */\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n\n /**\n\t * @protected\n\t */\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n\n /**\n\t * @protected\n\t */\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n // if the data is sorted, we don't need to check further from this end of array\n break;\n }\n }\n if (sorted) {\n // in the sorted case, find first non-skipped value from other end of array\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n\n /**\n\t * @return {number|boolean}\n\t * @protected\n\t */\n getMaxOverflow() {\n return false;\n }\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n\n /**\n\t * @private\n\t */\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n\n /**\n\t * @param {string} mode\n\t */\n update(mode) {} // eslint-disable-line no-unused-vars\n\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n\n /**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @param {boolean} [active] - true if hover\n\t * @return {object} style object\n\t */\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n\n /**\n\t * @protected\n\t */\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n\n /**\n\t * @param {string} [mode]\n\t * @protected\n\t */\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n\n /**\n\t * @param {number} index\n\t * @param {string} [mode]\n\t * @protected\n\t */\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n\n /**\n\t * @private\n\t */\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n // context is provided as a function, and is called only if needed,\n // so we don't create a context for each element if not needed.\n const context = () => this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n\n if (values.$shared) {\n // `$shared` indicates this set of options can be shared between multiple elements.\n // Sharing is used to reduce number of properties to change during animation.\n values.$shared = sharing;\n\n // We cache options by `mode`, which can be 'active' for example. This enables us\n // to have the 'active' element options and 'default' options to switch between\n // when interacting.\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n\n return values;\n }\n\n\n /**\n\t * @private\n\t */\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n\n /**\n\t * Utility for getting the options object shared between elements\n\t * @protected\n\t */\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n\n /**\n\t * Utility for determining if `options` should be included in the updated properties\n\t * @protected\n\t */\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n\n /**\n * @todo v4, rename to getSharedOptions and remove excess functions\n */\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {sharedOptions, includeOptions};\n }\n\n /**\n\t * Utility for updating an element with new properties, using animations when appropriate.\n\t * @protected\n\t */\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n\n /**\n\t * Utility to animate the shared options, that are potentially affecting multiple elements.\n\t * @protected\n\t */\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n\n /**\n\t * @private\n\t */\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n // When going from active to inactive, we need to update to the shared options.\n // This way the once hovered element will end up with the same original shared options instance, after animation.\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n\n /**\n\t * @private\n\t */\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n\n /**\n\t * @private\n\t */\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n\n /**\n\t * @private\n\t */\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n\n // Apply changes detected through array listeners\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n\n if (count) {\n // TODO: It is not optimal to always parse the old data\n // This is done because we are not detecting direct assignments:\n // chart.data.datasets[0].data[5] = 10;\n // chart.data.datasets[0].data[5].y = 10;\n this.parse(0, count);\n }\n\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n\n /**\n\t * @private\n\t */\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n\n updateElements(element, start, count, mode) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * @private\n\t */\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n\n /**\n\t * @private\n */\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {\n _arrayUnique, isArray, isNullOrUndef,\n valueOrDefault, resolveObjectKey, sign, defined\n} from '../helpers/index.js';\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n // Ignore truncated pixels\n return;\n }\n if (defined(prev)) {\n // curr - prev === 0 is ignored\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n\n return min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n // When bar thickness is enforced, category and bar percentages are ignored.\n // Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n // and deprecate barPercentage since this value is ignored when thickness is absolute.\n size = thickness * stackCount;\n ratio = 1;\n }\n\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n\n if (prev === null) {\n // first data: its size is double based on the next point or,\n // if it's also the last data, we use the scale size.\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n\n if (next === null) {\n // last data: its size is also double based on the previous point.\n next = curr + curr - prev;\n }\n\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\n\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n\n // Store `barEnd` (furthest away from origin) as parsed value,\n // to make stacking straight forward\n item[vScale.axis] = barEnd;\n\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\n\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\n\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\n\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\n\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\n\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\n\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n\n if (edge === true) {\n properties.borderSkipped = {top: true, right: true, bottom: true, left: true};\n return;\n }\n\n const {start, end, reverse, top, bottom} = borderProps(properties);\n\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\n\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\n\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\n\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\n\nexport default class BarController extends DatasetController {\n\n static id = 'bar';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n };\n\n\n /**\n\t * Overriding primitive data parsing since we support mixed primitive/array\n\t * data for float bars\n\t * @protected\n\t */\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n\n /**\n\t * Overriding array data parsing since we support mixed primitive/array\n\t * data for float bars\n\t * @protected\n\t */\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n\n /**\n\t * Overriding object data parsing since we support mixed primitive/array\n\t * value-scale data for float bars\n\t * @protected\n\t */\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n\n /**\n\t * @protected\n\t */\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n // float bar: only one end of the bar is considered by `super`\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n\n /**\n\t * @return {number|boolean}\n\t * @protected\n\t */\n getMaxOverflow() {\n return 0;\n }\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n\n initialize() {\n this.enableOptionSharing = true;\n\n super.initialize();\n\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n\n /**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @param {number} [dataIndex] - The data index of the ruler\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n _getStacks(last, dataIndex) {\n const {iScale} = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type)\n .filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n\n const skipNull = (meta) => {\n const parsed = meta.controller.getParsed(dataIndex);\n const val = parsed && parsed[meta.vScale.axis];\n\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n\n // stacked | meta.stack\n // | found | not found | undefined\n // false | x | x | x\n // true | | x |\n // undefined | | x | x\n if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n\n // No stacks? that means there is no visible data. Let's still initialize an `undefined`\n // stack where possible invisible bars will be located.\n // https://github.com/chartjs/Chart.js/issues/6368\n if (!stacks.length) {\n stacks.push(undefined);\n }\n\n return stacks;\n }\n\n /**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n\n /**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n * @param {number} [dataIndex]\n\t * @returns {number} The stack index\n\t * @private\n\t */\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1; // indexOf returns -1 if element is not present\n\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n\n /**\n\t * @private\n\t */\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n // bar thickness ratio used for non-grouped bars\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n\n /**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked, index: datasetIndex}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n\n if (length !== value) {\n start = length - value;\n length = value;\n }\n\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n // bars crossing origin are not stacked\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n // When not visible, no height\n head = base;\n }\n\n size = head - base;\n\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n\n if (_stacked && !floating) {\n // visual data coordinates after applying minBarLength\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n\n /**\n\t * @private\n\t */\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n // For non-grouped bar charts, exact pixel values are used\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {valueOrDefault} from '../helpers/helpers.core.js';\n\nexport default class BubbleController extends DatasetController {\n\n static id = 'bubble';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n\n /**\n\t * Parse array of primitive values\n\t * @protected\n\t */\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n\n /**\n\t * Parse array of arrays\n\t * @protected\n\t */\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n\n /**\n\t * Parse array of objects\n\t * @protected\n\t */\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n\n /**\n\t * @protected\n\t */\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n\n update(mode) {\n const points = this._cachedMeta.data;\n\n // Update Points\n this.updateElements(points, 0, points.length, mode);\n }\n\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n\n if (reset) {\n properties.options.radius = 0;\n }\n }\n\n this.updateElement(point, i, properties, mode);\n }\n }\n\n /**\n\t * @param {number} index\n\t * @param {string} [mode]\n\t * @protected\n\t */\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n\n // In case values were cached (and thus frozen), we need to clone the values\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n\n // Custom radius resolution\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n\n return values;\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {isObject, resolveObjectKey, toPercentage, toDimension, valueOrDefault} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {toRadians, PI, TAU, HALF_PI, _angleBetween} from '../helpers/helpers.math.js';\n\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n // If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\n\nexport default class DoughnutController extends DatasetController {\n\n static id = 'doughnut';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n // Boolean - Whether we animate the rotation of the Doughnut\n animateRotate: true,\n // Boolean - Whether we animate scaling the Doughnut from the centre\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n // The percentage of the chart that we cut out of the middle.\n cutout: '50%',\n\n // The rotation of the chart, where the first data arc begins.\n rotation: 0,\n\n // The total circumference of the chart.\n circumference: 360,\n\n // The outer radius of the chart\n radius: '100%',\n\n // Spacing between arcs\n spacing: 0,\n\n indexAxis: 'r',\n };\n\n static descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash'),\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n aspectRatio: 1,\n\n // Need to override these to give a nice default\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle, color}} = chart.legend.options;\n\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n return [];\n }\n },\n\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n\n linkScales() {}\n\n /**\n\t * Override data parsing, since we are not using scales\n\t */\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n\n /**\n\t * @private\n\t */\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n\n /**\n\t * @private\n\t */\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n\n /**\n\t * Get the maximal rotation & circumference extents\n\t * across all visible datasets.\n\t */\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n\n /**\n\t * @param {string} mode\n\t */\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n\n // Compute the maximal rotation & circumference limits.\n // If we only consider our dataset, this can cause problems when two datasets\n // are both less than a circle with different rotations (starting angles)\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n\n meta.total = this.calculateTotal();\n\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n\n /**\n * @private\n */\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n\n this.updateElement(arc, i, properties, mode);\n }\n }\n\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n\n return total;\n }\n\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n\n return {\n label: labels[index] || '',\n value,\n };\n }\n\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n\n if (!arcs) {\n // Find the outmost visible dataset\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n\n if (!arcs) {\n return 0;\n }\n\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n\n getMaxOffset(arcs) {\n let max = 0;\n\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n\n /**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n\n return ringWeightOffset;\n }\n\n /**\n\t * @private\n\t */\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n\n /**\n\t * Returns the sum of all visible data set weights.\n\t * @private\n\t */\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {isNullOrUndef} from '../helpers/index.js';\nimport {isNumber} from '../helpers/helpers.math.js';\nimport {_getStartAndCountOfVisiblePoints, _scaleRangesChanged} from '../helpers/helpers.extras.js';\n\nexport default class LineController extends DatasetController {\n\n static id = 'line';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n\n showLine: true,\n spanGaps: false,\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n };\n\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n // @ts-ignore\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n\n this._drawStart = start;\n this._drawCount = count;\n\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n // Update Line\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n\n // Update Points\n this.updateElements(points, start, count, mode);\n }\n\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n\n for (let i = 0; i < pointsCount; ++i) {\n const point = points[i];\n const properties = directUpdate ? point : {};\n\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n }\n\n /**\n\t * @protected\n\t */\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {toRadians, PI, formatNumber, _parseObjectDataRadialScale} from '../helpers/index.js';\n\nexport default class PolarAreaController extends DatasetController {\n\n static id = 'polarArea';\n\n /**\n * @type {any}\n */\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n aspectRatio: 1,\n\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle, color}} = chart.legend.options;\n\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n return [];\n }\n },\n\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n\n return {\n label: labels[index] || '',\n value,\n };\n }\n\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n\n update(mode) {\n const arcs = this._cachedMeta.data;\n\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n\n /**\n * @protected\n */\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n\n return range;\n }\n\n /**\n\t * @private\n\t */\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n\n const defaultAngle = 360 / this.countVisibleElements();\n\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n\n this.updateElement(arc, i, properties, mode);\n }\n }\n\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n\n return count;\n }\n\n /**\n\t * @private\n\t */\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\n","import DoughnutController from './controller.doughnut.js';\n\n// Pie charts are Doughnut chart with different defaults\nexport default class PieController extends DoughnutController {\n\n static id = 'pie';\n\n /**\n * @type {any}\n */\n static defaults = {\n // The percentage of the chart that we cut out of the middle.\n cutout: 0,\n\n // The rotation of the chart, where the first data arc begins.\n rotation: 0,\n\n // The total circumference of the chart.\n circumference: 360,\n\n // The outer radius of the chart\n radius: '100%'\n };\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {_parseObjectDataRadialScale} from '../helpers/index.js';\n\nexport default class RadarController extends DatasetController {\n\n static id = 'radar';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n aspectRatio: 1,\n\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n };\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n\n // Update Line\n line.points = points;\n // In resize mode only point locations change, so no need to set the points or options.\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n\n this.updateElement(line, undefined, properties, mode);\n }\n\n // Update Points\n this.updateElements(points, 0, points.length, mode);\n }\n\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {isNullOrUndef} from '../helpers/index.js';\nimport {isNumber} from '../helpers/helpers.math.js';\nimport {_getStartAndCountOfVisiblePoints, _scaleRangesChanged} from '../helpers/helpers.extras.js';\n\nexport default class ScatterController extends DatasetController {\n\n static id = 'scatter';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n\n interaction: {\n mode: 'point'\n },\n\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n const {data: points = []} = meta;\n // @ts-ignore\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n\n this._drawStart = start;\n this._drawCount = count;\n\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n if (this.options.showLine) {\n\n // https://github.com/chartjs/Chart.js/issues/11333\n if (!this.datasetElementType) {\n this.addElements();\n }\n const {dataset: line, _dataset} = meta;\n\n // Update Line\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n } else if (this.datasetElementType) {\n // https://github.com/chartjs/Chart.js/issues/11333\n delete meta.dataset;\n this.datasetElementType = false;\n }\n\n // Update Points\n this.updateElements(points, start, count, mode);\n }\n\n addElements() {\n const {showLine} = this.options;\n\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n\n super.addElements();\n }\n\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n\n /**\n\t * @protected\n\t */\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n\n if (!this.options.showLine) {\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n\n if (!data.length) {\n return border;\n }\n\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n","/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */\n\nimport type {AnyObject} from '../types/basic.js';\nimport type {ChartOptions} from '../types/index.js';\n\nexport type TimeUnit = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';\n\nexport interface DateAdapter {\n readonly options: T;\n /**\n * Will called with chart options after adapter creation.\n */\n init(this: DateAdapter, chartOptions: ChartOptions): void;\n /**\n * Returns a map of time formats for the supported formatting units defined\n * in Unit as well as 'datetime' representing a detailed date/time string.\n */\n formats(this: DateAdapter): Record;\n /**\n * Parses the given `value` and return the associated timestamp.\n * @param value - the value to parse (usually comes from the data)\n * @param [format] - the expected data format\n */\n parse(this: DateAdapter, value: unknown, format?: TimeUnit): number | null;\n /**\n * Returns the formatted date in the specified `format` for a given `timestamp`.\n * @param timestamp - the timestamp to format\n * @param format - the date/time token\n */\n format(this: DateAdapter, timestamp: number, format: TimeUnit): string;\n /**\n * Adds the specified `amount` of `unit` to the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param amount - the amount to add\n * @param unit - the unit as string\n */\n add(this: DateAdapter, timestamp: number, amount: number, unit: TimeUnit): number;\n /**\n * Returns the number of `unit` between the given timestamps.\n * @param a - the input timestamp (reference)\n * @param b - the timestamp to subtract\n * @param unit - the unit as string\n */\n diff(this: DateAdapter, a: number, b: number, unit: TimeUnit): number;\n /**\n * Returns start of `unit` for the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param unit - the unit as string\n * @param [weekday] - the ISO day of the week with 1 being Monday\n * and 7 being Sunday (only needed if param *unit* is `isoWeek`).\n */\n startOf(this: DateAdapter, timestamp: number, unit: TimeUnit | 'isoWeek', weekday?: number): number;\n /**\n * Returns end of `unit` for the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param unit - the unit as string\n */\n endOf(this: DateAdapter, timestamp: number, unit: TimeUnit | 'isoWeek'): number;\n}\n\nfunction abstract(): T {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */\nclass DateAdapterBase implements DateAdapter {\n\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */\n static override(\n members: Partial, 'options'>>\n ) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n\n readonly options: AnyObject;\n\n constructor(options: AnyObject) {\n this.options = options || {};\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n\n formats(): Record {\n return abstract();\n }\n\n parse(): number | null {\n return abstract();\n }\n\n format(): string {\n return abstract();\n }\n\n add(): number {\n return abstract();\n }\n\n diff(): number {\n return abstract();\n }\n\n startOf(): number {\n return abstract();\n }\n\n endOf(): number {\n return abstract();\n }\n}\n\nexport default {\n _date: DateAdapterBase\n};\n","import {_lookupByKey, _rlookupByKey} from '../helpers/helpers.collection.js';\nimport {getRelativePosition} from '../helpers/helpers.dom.js';\nimport {_angleBetween, getAngleFromPoint} from '../helpers/helpers.math.js';\nimport {_isPointInArea} from '../helpers/index.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef {{axis?: string, intersect?: boolean, includeInvisible?: boolean}} InteractionOptions\n * @typedef {{datasetIndex: number, index: number, element: import('./core.element.js').default}} InteractionItem\n * @typedef { import('../types/index.js').Point } Point\n */\n\n/**\n * Helper function to do binary search when possible\n * @param {object} metaset - the dataset meta\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {number} value - the value to find\n * @param {boolean} [intersect] - should the element intersect\n * @returns {{lo:number, hi:number}} indices to search data array between\n */\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n // _sharedOptions indicates that each element has equal options -> equal proportions\n // So we can do a ranged binary search based on the range of first element and\n // be confident to get the full range of indices that can intersect with the value.\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n // Default to all elements, when binary search can not be used.\n return {lo: 0, hi: data.length - 1};\n}\n\n/**\n * Helper function to select candidate elements for interaction\n * @param {Chart} chart - the chart\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {function} handler - the callback to execute for each visible item\n * @param {boolean} [intersect] - consider intersecting items\n */\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy|r\n */\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {Chart} chart - the chart\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position for a radial chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position for a cartesian chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n // Can have multiple items at the same distance in which case we sort by size\n items.push({element, datasetIndex, index});\n }\n }\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in the chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n\n/**\n * Helper function to get the items matching along the given X or Y axis\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axis to match\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @return {InteractionItem[]} the nearest items\n */\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n\n // If we want to trigger on an intersect and we don't have any items\n // that intersect the position, return nothing\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nexport default {\n // Part of the public API to facilitate developers creating their own modes\n evaluateInteractionItems,\n\n // Helper function for different modes\n modes: {\n /**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n // Default axis for index mode is 'x' to match old behaviour\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n\n if (!items.length) {\n return [];\n }\n\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n\n // don't count items that are skipped (null data)\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n\n return elements;\n },\n\n /**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n\n return items;\n },\n\n /**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n\n /**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n\n /**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n\n /**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n","import {defined, each, isObject} from '../helpers/helpers.core.js';\nimport {toPadding} from '../helpers/helpers.options.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n */\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\n\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\n\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\n\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\n\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\n\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n\n/**\n * store dimensions used instead of available chartArea in fitBoxes\n **/\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\n\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\n\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n\n // dynamically placed boxes size is not considered\n if (!isObject(pos)) {\n if (layout.size) {\n // this layout was already counted for, lets first reduce old size\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n\n // return booleans on the changes per direction\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\n\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n\n // Dimensions changed and there were non full width boxes before this\n // -> we have to refit those\n refit |= same && refitBoxes.length;\n\n // Chart area changed in the opposite direction\n changed = changed || other;\n\n if (!box.fullSize) { // fullSize boxes don't need to be re-fitted in any case\n refitBoxes.push(layout);\n }\n }\n\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\n\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\n\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n\n chartArea.x = x;\n chartArea.y = y;\n}\n\n/**\n * @interface LayoutItem\n * @typedef {object} LayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullSize - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} draw - Draws the element\n * @prop {function} [getPadding] - Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nexport default {\n\n /**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {LayoutItem} item - the item to add to be laid out\n\t */\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n\n // initialize item with default values\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n // @ts-ignore\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n\n chart.boxes.push(item);\n },\n\n /**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {LayoutItem} layoutItem - the item to remove from the layout\n\t */\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n\n /**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {LayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n\n /**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n * @param {number} minPadding - minimum padding required for each side of chart area\n\t */\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n\n // Before any changes are made, notify boxes that an update is about to being\n // This is used to clear any cached data (e.g. scale limits)\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n\n // Essentially we now have any number of boxes on each of the 4 sides.\n // Our canvas looks like the following.\n // The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n // B1 is the bottom axis\n // There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n // These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n // an error will be thrown.\n //\n // |----------------------------------------------------|\n // | T1 (Full Width) |\n // |----------------------------------------------------|\n // | | | T2 | |\n // | |----|-------------------------------------|----|\n // | | | C1 | | C2 | |\n // | | |----| |----| |\n // | | | | |\n // | L1 | L2 | ChartArea (C0) | R1 |\n // | | | | |\n // | | |----| |----| |\n // | | | C3 | | C4 | |\n // | |----|-------------------------------------|----|\n // | | | B1 | |\n // |----------------------------------------------------|\n // | B2 (Full Width) |\n // |----------------------------------------------------|\n //\n\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n // First fit the fullSize boxes, to reduce probability of re-fitting.\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n\n // Then fit vertical boxes\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n\n // Then fit horizontal boxes\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n // if the area changed, re-fit vertical boxes\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n\n handleMaxPadding(chartArea);\n\n // Finally place the boxes to correct coordinates\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n\n // Move to opposite side of chart\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n\n // Finally update boxes in chartArea (radial scale for example)\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n","\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\n/**\n * Abstract class that allows abstracting platform dependencies away from the chart.\n */\nexport default class BasePlatform {\n /**\n\t * Called at chart construction time, returns a context2d instance implementing\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n\t * @param {HTMLCanvasElement} canvas - The canvas from which to acquire context (platform specific)\n\t * @param {number} [aspectRatio] - The chart options\n\t */\n acquireContext(canvas, aspectRatio) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Called at chart destruction time, releases any resources associated to the context\n\t * previously returned by the acquireContext() method.\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\n\t * @returns {boolean} true if the method succeeded, else false\n\t */\n releaseContext(context) { // eslint-disable-line no-unused-vars\n return false;\n }\n\n /**\n\t * Registers the specified listener on the given chart.\n\t * @param {Chart} chart - Chart from which to listen for event\n\t * @param {string} type - The ({@link ChartEvent}) type to listen for\n\t * @param {function} listener - Receives a notification (an object that implements\n\t * the {@link ChartEvent} interface) when an event of the specified type occurs.\n\t */\n addEventListener(chart, type, listener) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Removes the specified listener previously registered with addEventListener.\n\t * @param {Chart} chart - Chart from which to remove the listener\n\t * @param {string} type - The ({@link ChartEvent}) type to remove\n\t * @param {function} listener - The listener function to remove from the event target.\n\t */\n removeEventListener(chart, type, listener) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * @returns {number} the current devicePixelRatio of the device this platform is connected to.\n\t */\n getDevicePixelRatio() {\n return 1;\n }\n\n /**\n\t * Returns the maximum size in pixels of given canvas element.\n\t * @param {HTMLCanvasElement} element\n\t * @param {number} [width] - content width of parent element\n\t * @param {number} [height] - content height of parent element\n\t * @param {number} [aspectRatio] - aspect ratio to maintain\n\t */\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @returns {boolean} true if the canvas is attached to the platform, false if not.\n\t */\n isAttached(canvas) { // eslint-disable-line no-unused-vars\n return true;\n }\n\n /**\n * Updates config with platform specific requirements\n * @param {import('../core/core.config.js').default} config\n */\n updateConfig(config) { // eslint-disable-line no-unused-vars\n // no-op\n }\n}\n","/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nimport BasePlatform from './platform.base.js';\n\n/**\n * Platform class for charts without access to the DOM or to many element properties\n * This platform is used by default for any chart passed an OffscreenCanvas.\n * @extends BasePlatform\n */\nexport default class BasicPlatform extends BasePlatform {\n acquireContext(item) {\n // To prevent canvas fingerprinting, some add-ons undefine the getContext\n // method, for example: https://github.com/kkapsner/CanvasBlocker\n // https://github.com/chartjs/Chart.js/issues/2807\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n","/**\n * Chart.Platform implementation for targeting a web browser\n */\n\nimport BasePlatform from './platform.base.js';\nimport {_getParentNode, getRelativePosition, supportsEventListenerOptions, readUsedSize, getMaximumSize} from '../helpers/helpers.dom.js';\nimport {throttled} from '../helpers/helpers.extras.js';\nimport {isNullOrUndef} from '../helpers/helpers.core.js';\n\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\nconst EXPANDO_KEY = '$chartjs';\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\n\nconst isNullOrEmpty = value => value === null || value === '';\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n * @param {HTMLCanvasElement} canvas\n * @param {number} [aspectRatio]\n */\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n\n // NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n // returns null or '' if no explicit value has been set to the canvas attribute.\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n\n // Chart.js modifies some canvas values that we want to restore on destroy\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n\n // Force canvas to display as block to avoid extra space caused by inline\n // elements, which would interfere with the responsive resize process.\n // https://github.com/chartjs/Chart.js/issues/2538\n style.display = style.display || 'block';\n // Include possible borders in the size\n style.boxSizing = style.boxSizing || 'border-box';\n\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n // If no explicit render height and style height, let's apply the aspect ratio,\n // which one can be specified by the user but also by charts as default option\n // (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n\n return canvas;\n}\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\n\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\n\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\n\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\n\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\n\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\n\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\n\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\n\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\n\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\n\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n // If the container size shrank during chart resize, let's assume\n // scrollbar appeared. So we resize again with the scrollbar visible -\n // effectively making chart smaller and the scrollbar hidden again.\n // Because we are inside `throttled`, and currently `ticking`, scroll\n // events are ignored during this whole 2 resize process.\n // If we assumed wrong and something else happened, we are resizing\n // twice in a frame (potential performance issue)\n listener();\n }\n }, window);\n\n // @ts-ignore until https://github.com/microsoft/TypeScript/issues/37861 implemented\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n // When its container's display is set to 'none' the callback will be called with a\n // size of (0, 0), which will cause the chart to lose its original height, so skip\n // resizing in such case.\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n\n return observer;\n}\n\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\n\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n // This case can occur if the chart is destroyed while waiting\n // for the throttled function to occur. We prevent crashes by checking\n // for a destroyed chart\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n\n addListener(canvas, type, proxy);\n\n return proxy;\n}\n\n/**\n * Platform class for charts that can access the DOM and global window/document properties\n * @extends BasePlatform\n */\nexport default class DomPlatform extends BasePlatform {\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @param {number} [aspectRatio]\n\t * @return {CanvasRenderingContext2D|null}\n\t */\n acquireContext(canvas, aspectRatio) {\n // To prevent canvas fingerprinting, some add-ons undefine the getContext\n // method, for example: https://github.com/kkapsner/CanvasBlocker\n // https://github.com/chartjs/Chart.js/issues/2807\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n\n // `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the canvas is\n // inside an iframe or when running in a protected environment. We could guess the\n // types from their toString() value but let's keep things flexible and assume it's\n // a sufficient condition if the canvas has a context2D which has canvas as `canvas`.\n // https://github.com/chartjs/Chart.js/issues/3887\n // https://github.com/chartjs/Chart.js/issues/4102\n // https://github.com/chartjs/Chart.js/issues/4152\n if (context && context.canvas === canvas) {\n // Load platform resources on first chart creation, to make it possible to\n // import the library before setting platform options.\n initCanvas(canvas, aspectRatio);\n return context;\n }\n\n return null;\n }\n\n /**\n\t * @param {CanvasRenderingContext2D} context\n\t */\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n\n // The canvas render size might have been changed (and thus the state stack discarded),\n // we can't use save() and restore() to restore the initial state. So make sure that at\n // least the canvas context is reset to the default state by setting the canvas width.\n // https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n // eslint-disable-next-line no-self-assign\n canvas.width = canvas.width;\n\n delete canvas[EXPANDO_KEY];\n return true;\n }\n\n /**\n\t *\n\t * @param {Chart} chart\n\t * @param {string} type\n\t * @param {function} listener\n\t */\n addEventListener(chart, type, listener) {\n // Can have only one listener per type, so make sure previous is removed\n this.removeEventListener(chart, type);\n\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n\n\n /**\n\t * @param {Chart} chart\n\t * @param {string} type\n\t */\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n\n if (!proxy) {\n return;\n }\n\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @param {number} [width] - content width of parent element\n\t * @param {number} [height] - content height of parent element\n\t * @param {number} [aspectRatio] - aspect ratio to maintain\n\t */\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t */\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n","import type {AnyObject} from '../types/basic.js';\nimport type {Point} from '../types/geometric.js';\nimport type {Animation} from '../types/animation.js';\nimport {isNumber} from '../helpers/helpers.math.js';\n\nexport default class Element {\n\n static defaults = {};\n static defaultRoutes = undefined;\n\n x: number;\n y: number;\n active = false;\n options: O;\n $animations: Record;\n\n tooltipPosition(useFinalPosition: boolean): Point {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y} as Point;\n }\n\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n\n /**\n * Gets the current or final value of each prop. Can return extra properties (whole object).\n * @param props - properties to get\n * @param [final] - get the final value (animation target)\n */\n getProps

(props: P, final?: boolean): Pick;\n getProps

(props: P[], final?: boolean): Partial>;\n getProps(props: string[], final?: boolean): Partial> {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this as Record;\n }\n const ret: Record = {};\n props.forEach((prop) => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop as string];\n });\n return ret;\n }\n}\n","import {isNullOrUndef, valueOrDefault} from '../helpers/helpers.core.js';\nimport {_factorize} from '../helpers/helpers.math.js';\n\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef {{value:number | string, label?:string, major?:boolean, $context?:any}} Tick\n */\n\n/**\n * Returns a subset of ticks to be plotted to avoid overlapping labels.\n * @param {import('./core.scale.js').default} scale\n * @param {Tick[]} ticks\n * @return {Tick[]}\n * @private\n */\nexport function autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n\n // If there are too many major ticks to display them all\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\n\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n\n/**\n * @param {number[]} majorIndices\n * @param {Tick[]} ticks\n * @param {number} ticksLimit\n */\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n\n // If the major ticks are evenly spaced apart, place the minor ticks\n // so that they divide the major ticks into even chunks\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n\n/**\n * @param {Tick[]} ticks\n */\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n\n/**\n * @param {Tick[]} ticks\n * @param {Tick[]} newTicks\n * @param {number[]} majorIndices\n * @param {number} spacing\n */\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n\n/**\n * @param {Tick[]} ticks\n * @param {Tick[]} newTicks\n * @param {number} spacing\n * @param {number} [majorStart]\n * @param {number} [majorEnd]\n */\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n\n next = start;\n\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n\n\n/**\n * @param {number[]} arr\n */\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n\n if (len < 2) {\n return false;\n }\n\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n","import Element from './core.element.js';\nimport {_alignPixel, _measureText, renderText, clipArea, unclipArea} from '../helpers/helpers.canvas.js';\nimport {callback as call, each, finiteOrDefault, isArray, isFinite, isNullOrUndef, isObject, valueOrDefault} from '../helpers/helpers.core.js';\nimport {toDegrees, toRadians, _int16Range, _limitValue, HALF_PI} from '../helpers/helpers.math.js';\nimport {_alignStartEnd, _toLeftRightCenter} from '../helpers/helpers.extras.js';\nimport {createContext, toFont, toPadding, _addGrace} from '../helpers/helpers.options.js';\nimport {autoSkip} from './core.scale.autoskip.js';\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit) => Math.min(maxTicksLimit || ticksLength, ticksLength);\n\n/**\n * @typedef { import('../types/index.js').Chart } Chart\n * @typedef {{value:number | string, label?:string, major?:boolean, $context?:any}} Tick\n */\n\n/**\n * Returns a new array containing numItems from arr\n * @param {any[]} arr\n * @param {number} numItems\n */\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n\n/**\n * @param {Scale} scale\n * @param {number} index\n * @param {boolean} offsetGridLines\n */\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n\n // Return undefined if the pixel is out of the range\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n\n/**\n * @param {object} caches\n * @param {number} length\n */\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n\n/**\n * @param {object} options\n */\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n\n/**\n * @param {object} options\n */\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n\n return (lines * font.lineHeight) + padding.height;\n}\n\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\n\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\n\nfunction titleAlign(align, position, reverse) {\n /** @type {CanvasTextAlign} */\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\n\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\n\nexport default class Scale extends Element {\n\n // eslint-disable-next-line max-statements\n constructor(cfg) {\n super();\n\n /** @type {string} */\n this.id = cfg.id;\n /** @type {string} */\n this.type = cfg.type;\n /** @type {any} */\n this.options = undefined;\n /** @type {CanvasRenderingContext2D} */\n this.ctx = cfg.ctx;\n /** @type {Chart} */\n this.chart = cfg.chart;\n\n // implements box\n /** @type {number} */\n this.top = undefined;\n /** @type {number} */\n this.bottom = undefined;\n /** @type {number} */\n this.left = undefined;\n /** @type {number} */\n this.right = undefined;\n /** @type {number} */\n this.width = undefined;\n /** @type {number} */\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n /** @type {number} */\n this.maxWidth = undefined;\n /** @type {number} */\n this.maxHeight = undefined;\n /** @type {number} */\n this.paddingTop = undefined;\n /** @type {number} */\n this.paddingBottom = undefined;\n /** @type {number} */\n this.paddingLeft = undefined;\n /** @type {number} */\n this.paddingRight = undefined;\n\n // scale-specific properties\n /** @type {string=} */\n this.axis = undefined;\n /** @type {number=} */\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n /** @type {Tick[]} */\n this.ticks = [];\n /** @type {object[]|null} */\n this._gridLineItems = null;\n /** @type {object[]|null} */\n this._labelItems = null;\n /** @type {object|null} */\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n /** @type {number} */\n this._startPixel = undefined;\n /** @type {number} */\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n\n /**\n\t * @param {any} options\n\t * @since 3.0\n\t */\n init(options) {\n this.options = options.setContext(this.getContext());\n\n this.axis = options.axis;\n\n // parse min/max value, so we can properly determine min/max for other scales\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n\n /**\n\t * Parse a supported input value to internal representation.\n\t * @param {*} raw\n\t * @param {number} [index]\n\t * @since 3.0\n\t */\n parse(raw, index) { // eslint-disable-line no-unused-vars\n return raw;\n }\n\n /**\n\t * @return {{min: number, max: number, minDefined: boolean, maxDefined: boolean}}\n\t * @protected\n\t * @since 3.0\n\t */\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isFinite(_userMin),\n maxDefined: isFinite(_userMax)\n };\n }\n\n /**\n\t * @param {boolean} canStack\n\t * @return {{min: number, max: number}}\n\t * @protected\n\t * @since 3.0\n\t */\n getMinMax(canStack) {\n // eslint-disable-next-line prefer-const\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n\n if (minDefined && maxDefined) {\n return {min, max};\n }\n\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n\n // Make sure min <= max when only min or max is defined by user and the data is outside that range\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n\n /**\n\t * Get the padding needed for the scale\n\t * @return {{top: number, left: number, bottom: number, right: number}} the necessary padding\n\t * @private\n\t */\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n\n /**\n\t * Returns the scale tick objects\n\t * @return {Tick[]}\n\t * @since 2.7\n\t */\n getTicks() {\n return this.ticks;\n }\n\n /**\n\t * @return {string[]}\n\t */\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n\n /**\n * @return {import('../types.js').LabelItem[]}\n */\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n\n // When a new layout is created, reset the data limits cache\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n\n // These methods are ordered by lifecycle. Utilities then follow.\n // Any function defined here is inherited by all scale types.\n // Any function can be extended by the scale type\n\n beforeUpdate() {\n call(this.options.beforeUpdate, [this]);\n }\n\n /**\n\t * @param {number} maxWidth - the max width in pixels\n\t * @param {number} maxHeight - the max height in pixels\n\t * @param {{top: number, left: number, bottom: number, right: number}} margins - the space between the edge of the other scales and edge of the chart\n\t * This space comes from two sources:\n\t * - padding - space that's required to show the labels at the edges of the scale\n\t * - thickness of scales or legends in another orientation\n\t */\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n\n // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n this.beforeUpdate();\n\n // Absorb the master measurements\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n\n // Dimensions\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n\n // Data min/max\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n\n this.beforeBuildTicks();\n\n this.ticks = this.buildTicks() || [];\n\n // Allow modification of ticks in callback.\n this.afterBuildTicks();\n\n // Compute tick rotation and fit using a sampled subset of labels\n // We generally don't need to compute the size of every single label for determining scale size\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n\n // configure is called twice, once here, once from core.controller.updateLayout.\n // Here we haven't been positioned yet, but dimensions are correct.\n // Variables set in configure are needed for calculateLabelRotation, and\n // it's ok that coordinates are not correct there, only dimensions matter.\n this.configure();\n\n // Tick Rotation\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation(); // Preconditions: number of ticks and sizes of largest labels must be calculated beforehand\n this.afterCalculateLabelRotation();\n\n // Auto-skip\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n\n if (samplingEnabled) {\n // Generate labels using all non-skipped ticks\n this._convertTicksToLabels(this.ticks);\n }\n\n this.beforeFit();\n this.fit(); // Preconditions: label rotation and label sizes must be calculated beforehand\n this.afterFit();\n\n // IMPORTANT: after this point, we consider that `this.ticks` will NEVER change!\n\n this.afterUpdate();\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n // by default vertical scales are from bottom to top, so pixels are reversed\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n\n afterUpdate() {\n call(this.options.afterUpdate, [this]);\n }\n\n //\n\n beforeSetDimensions() {\n call(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n // Set the unconstrained dimension before label rotation\n if (this.isHorizontal()) {\n // Reset position before calculating rotation\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n\n // Reset position before calculating rotation\n this.top = 0;\n this.bottom = this.height;\n }\n\n // Reset padding\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n call(this.options.afterSetDimensions, [this]);\n }\n\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n call(this.options[name], [this]);\n }\n\n // Data limits\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n\n //\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n /**\n\t * @return {object[]} the ticks\n\t */\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n\n beforeTickToLabelConversion() {\n call(this.options.beforeTickToLabelConversion, [this]);\n }\n /**\n\t * Convert ticks to label strings\n\t * @param {Tick[]} ticks\n\t */\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = call(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n call(this.options.afterTickToLabelConversion, [this]);\n }\n\n //\n\n beforeCalculateLabelRotation() {\n call(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n\n // Estimate the width of each grid based on the canvas width, the maximum\n // label width and the number of tick intervals\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n // Allow 3 pixels x2 padding either side for label readability\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n call(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n\n //\n\n beforeFit() {\n call(this.options.beforeFit, [this]);\n }\n fit() {\n // Reset\n const minSize = {\n width: 0,\n height: 0\n };\n\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight; // fill all the height\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n\n // Don't bother fitting the ticks if we are not showing the labels\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n\n if (isHorizontal) {\n // A horizontal axis is more constrained by the height.\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n // A vertical axis is more constrained by the width. Labels are the\n // dominant factor here, so get that length first and account for padding\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n\n this._handleMargins();\n\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n\n // Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n // which means that the right padding is dominated by the font height\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n\n // Adjust padding taking into account changes in offsets\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n\n /**\n\t * Handle margins and padding interactions\n\t * @private\n\t */\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n\n afterFit() {\n call(this.options.afterFit, [this]);\n }\n\n // Shared Methods\n /**\n\t * @return {boolean}\n\t */\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n /**\n\t * @return {boolean}\n\t */\n isFullSize() {\n return this.options.fullSize;\n }\n\n /**\n\t * @param {Tick[]} ticks\n\t * @private\n\t */\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n\n this.generateTickLabels(ticks);\n\n // Ticks should be skipped when callback returns null or undef, so lets remove those.\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n\n this.afterTickToLabelConversion();\n }\n\n /**\n\t * @return {{ first: object, last: object, widest: object, highest: object, widths: Array, heights: array }}\n\t * @private\n\t */\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n\n return labelSizes;\n }\n\n /**\n\t * Returns {width, height, offset} objects for the first, last, widest, highest tick\n\t * labels where offset indicates the anchor point offset from the top in pixels.\n\t * @return {{ first: object, last: object, widest: object, highest: object, widths: Array, heights: array }}\n\t * @private\n\t */\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n\n for (i = 0; i < length; i += increment) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n // Undefined labels and arrays should not be measured\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n // if it is an array let's measure each element\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = /** @type {string} */ (label[j]);\n // Undefined labels and arrays should not be measured\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n\n /**\n\t * Used to get the label to display in the tooltip for the given value\n\t * @param {*} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n return value;\n }\n\n /**\n\t * Returns the location of the given data point. Value can either be an index or a numerical value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {*} value\n\t * @param {number} [index]\n\t * @return {number}\n\t */\n getPixelForValue(value, index) { // eslint-disable-line no-unused-vars\n return NaN;\n }\n\n /**\n\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} pixel\n\t * @return {*}\n\t */\n getValueForPixel(pixel) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Returns the location of the tick at the given index\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} index\n\t * @return {number}\n\t */\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n\n /**\n\t * Utility for getting the pixel location of a percentage of scale\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} decimal\n\t * @return {number}\n\t */\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n\n /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n\n /**\n\t * Returns the pixel for the minimum chart value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @return {number}\n\t */\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n\n /**\n\t * @return {number}\n\t */\n getBaseValue() {\n const {min, max} = this;\n\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n\n /**\n\t * @protected\n\t */\n getContext(index) {\n const ticks = this.ticks || [];\n\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n\n /**\n\t * @return {number}\n\t * @private\n\t */\n _tickSize() {\n const optionTicks = this.options.ticks;\n\n // Calculate space needed by label in axis direction.\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n\n // Calculate space needed for 1 tick in axis direction.\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n\n /**\n\t * @return {boolean}\n\t * @private\n\t */\n _isVisible() {\n const display = this.options.display;\n\n if (display !== 'auto') {\n return !!display;\n }\n\n return this.getMatchingVisibleMetas().length > 0;\n }\n\n /**\n\t * @private\n\t */\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position, border} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n\n lineValue = getPixelForGridLine(this, i, offset);\n\n // Skip if the pixel is out of the range\n if (lineValue === undefined) {\n continue;\n }\n\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n\n return items;\n }\n\n /**\n\t * @private\n\t */\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n\n if (isHorizontal) {\n x = pixel;\n\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n // eslint-disable-next-line no-lonely-if\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += (lineHeight / 2) * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n\n let backdrop;\n\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n default:\n break;\n }\n\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n default:\n break;\n }\n\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n\n color: optsAtIndex.backdropColor,\n };\n }\n\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n }\n });\n }\n\n return items;\n }\n\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n\n let align = 'center';\n\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n\n return align;\n }\n\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n\n let textAlign;\n let x;\n\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n\n return {textAlign, x};\n }\n\n /**\n\t * @private\n\t */\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n\n const chart = this.chart;\n const position = this.options.position;\n\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n\n /**\n * @protected\n */\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n\n /**\n\t * @protected\n\t */\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n\n /**\n\t * @protected\n\t */\n drawBorder() {\n const {chart, ctx, options: {border, grid}} = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n\n ctx.restore();\n }\n\n /**\n\t * @protected\n\t */\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n\n if (!optionTicks.display) {\n return;\n }\n\n const ctx = this.ctx;\n\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n\n const items = this.getLabelItems(chartArea);\n for (const item of items) {\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n\n if (area) {\n unclipArea(ctx);\n }\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n\n if (!title.display) {\n return;\n }\n\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n\n /**\n\t * @return {object[]}\n\t * @private\n\t */\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n // backward compatibility: draw has been overridden by custom scale\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: bz,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n\n /**\n\t * Returns visible dataset metas that are attached to this scale\n\t * @param {string} [type] - if specified, also filter by dataset type\n\t * @return {object[]}\n\t */\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n\n /**\n\t * @param {number} index\n\t * @return {object}\n\t * @protected\n \t */\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n\n /**\n * @protected\n */\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n","import {merge} from '../helpers/index.js';\nimport defaults, {overrides} from './core.defaults.js';\n\n/**\n * @typedef {{id: string, defaults: any, overrides?: any, defaultRoutes: any}} IChartComponent\n */\n\nexport default class TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n\n /**\n\t * @param {IChartComponent} item\n\t * @returns {string} The scope where items defaults were registered to.\n\t */\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n\n if (isIChartComponent(proto)) {\n // Make sure the parent is registered and note the scope where its defaults are.\n parentScope = this.register(proto);\n }\n\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n\n if (id in items) {\n // already registered\n return scope;\n }\n\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n\n return scope;\n }\n\n /**\n\t * @param {string} id\n\t * @returns {object?}\n\t */\n get(id) {\n return this.items[id];\n }\n\n /**\n\t * @param {IChartComponent} item\n\t */\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n\n if (id in items) {\n delete items[id];\n }\n\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\n\nfunction registerDefaults(item, scope, parentScope) {\n // Inherit the parent's defaults and keep existing defaults\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n\n defaults.set(scope, itemDefaults);\n\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\n\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\n\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n","import DatasetController from './core.datasetController.js';\nimport Element from './core.element.js';\nimport Scale from './core.scale.js';\nimport TypedRegistry from './core.typedRegistry.js';\nimport {each, callback as call, _capitalize} from '../helpers/helpers.core.js';\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is exported for typedoc\n */\nexport class Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n // Order is important, Scale has Element in prototype chain,\n // so Scales must be before Elements. Plugins are a fallback, so not listed here.\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n\n /**\n\t * @param {...any} args\n\t */\n add(...args) {\n this._each('register', args);\n }\n\n remove(...args) {\n this._each('unregister', args);\n }\n\n /**\n\t * @param {...typeof DatasetController} args\n\t */\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n\n /**\n\t * @param {...typeof Element} args\n\t */\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n\n /**\n\t * @param {...any} args\n\t */\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n\n /**\n\t * @param {...typeof Scale} args\n\t */\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof DatasetController}\n\t */\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof Element}\n\t */\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {object}\n\t */\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof Scale}\n\t */\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n\n /**\n\t * @param {...typeof DatasetController} args\n\t */\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n\n /**\n\t * @param {...typeof Element} args\n\t */\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n\n /**\n\t * @param {...any} args\n\t */\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n\n /**\n\t * @param {...typeof Scale} args\n\t */\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n\n /**\n\t * @private\n\t */\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n // Handle loopable args\n // Use case:\n // import * as plugins from './plugins.js';\n // Chart.register(plugins);\n each(arg, item => {\n // If there are mixed types in the loopable, make sure those are\n // registered in correct registry\n // Use case: (treemap exporting controller, elements etc)\n // import * as treemap from 'chartjs-chart-treemap.js';\n // Chart.register(treemap);\n\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n\n /**\n\t * @private\n\t */\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n call(component['before' + camelMethod], [], component); // beforeRegister / beforeUnregister\n registry[method](component);\n call(component['after' + camelMethod], [], component); // afterRegister / afterUnregister\n }\n\n /**\n\t * @private\n\t */\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n // plugins is the fallback registry\n return this.plugins;\n }\n\n /**\n\t * @private\n\t */\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Registry();\n","import registry from './core.registry.js';\nimport {callback as callCallback, isNullOrUndef, valueOrDefault} from '../helpers/helpers.core.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../plugins/plugin.tooltip.js').default } Tooltip\n */\n\n/**\n * @callback filterCallback\n * @param {{plugin: object, options: object}} value\n * @param {number} [index]\n * @param {array} [array]\n * @param {object} [thisArg]\n * @return {boolean}\n */\n\n\nexport default class PluginService {\n constructor() {\n this._init = [];\n }\n\n /**\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {Chart} chart - The chart instance for which plugins should be called.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {object} [args] - Extra arguments to apply to the hook call.\n * @param {filterCallback} [filter] - Filtering function for limiting which plugins are notified\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n\n /**\n\t * @private\n\t */\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callCallback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n\n return true;\n }\n\n invalidate() {\n // When plugins are registered, there is the possibility of a double\n // invalidate situation. In this case, we only want to invalidate once.\n // If we invalidate multiple times, the `_oldCache` is lost and all of the\n // plugins are restarted without being correctly stopped.\n // See https://github.com/chartjs/Chart.js/issues/8147\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n\n /**\n\t * @param {Chart} chart\n\t * @private\n\t */\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n\n const descriptors = this._cache = this._createDescriptors(chart);\n\n this._notifyStateChanges(chart);\n\n return descriptors;\n }\n\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n // options === false => all plugins are disabled\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n\n /**\n\t * @param {Chart} chart\n\t * @private\n\t */\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n\n/**\n * @param {import('./core.config.js').default} config\n */\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n\n return {plugins, localIds};\n}\n\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\n\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n const result = [];\n const context = chart.getContext();\n\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n });\n }\n\n return result;\n}\n\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n // make sure plugin defaults are in scopes for local (not registered) plugins\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n // These are just defaults that plugins can override\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n","import defaults, {overrides, descriptors} from './core.defaults.js';\nimport {mergeIf, resolveObjectKey, isArray, isFunction, valueOrDefault, isObject} from '../helpers/helpers.core.js';\nimport {_attachContext, _createResolver, _descriptors} from '../helpers/helpers.config.js';\n\nexport function getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\n\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\n\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\n\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\n\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\n\nexport function determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions) {\n const axis = opts.axis\n || axisFromPosition(opts.position)\n || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\n\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {axis};\n }\n}\n\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d) => d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\n\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n\n // First figure out first scale id's per axis.\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n\n // Then merge dataset defaults to scale configs\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n\n // apply scale defaults, if not overridden by dataset defaults\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n\n return scales;\n}\n\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\n\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\n\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n\n initOptions(config);\n\n return config;\n}\n\nconst keyCache = new Map();\nconst keysCached = new Set();\n\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\n\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\n\nexport default class Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n\n get platform() {\n return this._config.platform;\n }\n\n get type() {\n return this._config.type;\n }\n\n set type(type) {\n this._config.type = type;\n }\n\n get data() {\n return this._config.data;\n }\n\n set data(data) {\n this._config.data = initData(data);\n }\n\n get options() {\n return this._config.options;\n }\n\n set options(options) {\n this._config.options = options;\n }\n\n get plugins() {\n return this._config.plugins;\n }\n\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n\n /**\n * Returns the option scope keys for resolving dataset options.\n * These keys do not include the dataset itself, because it is not under options.\n * @param {string} datasetType\n * @return {string[][]}\n */\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n\n /**\n * Returns the option scope keys for resolving dataset animation options.\n * These keys do not include the dataset itself, because it is not under options.\n * @param {string} datasetType\n * @param {string} transition\n * @return {string[][]}\n */\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n // The following are used for looking up the `animations` and `animation` keys\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n\n /**\n * Returns the options scope keys for resolving element options that belong\n * to an dataset. These keys do not include the dataset itself, because it\n * is not under options.\n * @param {string} datasetType\n * @param {string} elementType\n * @return {string[][]}\n */\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n\n /**\n * Returns the options scope keys for resolving plugin options.\n * @param {{id: string, additionalOptionScopes?: string[]}} plugin\n * @return {string[][]}\n */\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n\n /**\n * @private\n */\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n\n /**\n * Resolves the objects from options and defaults for option value resolution.\n * @param {object} mainScope - The main scope object for options\n * @param {string[][]} keyLists - The arrays of keys in resolution order\n * @param {boolean} [resetCache] - reset the cache for this mainScope\n */\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n\n const scopes = new Set();\n\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n\n /**\n * Returns the option scopes for resolving chart options\n * @return {object[]}\n */\n chartOptionScopes() {\n const {options, type} = this;\n\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {}, // https://github.com/chartjs/Chart.js/issues/8531\n {type},\n defaults,\n descriptors\n ];\n }\n\n /**\n * @param {object[]} scopes\n * @param {string[]} names\n * @param {function|object} context\n * @param {string[]} [prefixes]\n * @return {object}\n */\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n // subResolver is passed to scriptable options. It should not resolve to hover options.\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n\n /**\n * @param {object[]} scopes\n * @param {object} [context]\n * @param {string[]} [prefixes]\n * @param {{scriptable: boolean, indexable: boolean, allKeys?: boolean}} [descriptorDefaults]\n */\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\n\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\n\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).some((key) => isFunction(value[key]));\n\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n","import animator from './core.animator.js';\nimport defaults, {overrides} from './core.defaults.js';\nimport Interaction from './core.interaction.js';\nimport layouts from './core.layouts.js';\nimport {_detectPlatform} from '../platform/index.js';\nimport PluginService from './core.plugins.js';\nimport registry from './core.registry.js';\nimport Config, {determineAxis, getIndexAxis} from './core.config.js';\nimport {retinaScale, _isDomSupported} from '../helpers/helpers.dom.js';\nimport {each, callback as callCallback, uid, valueOrDefault, _elementsEqual, isNullOrUndef, setsEqual, defined, isFunction, _isClickEvent} from '../helpers/helpers.core.js';\nimport {clearCanvas, clipArea, createContext, unclipArea, _isPointInArea} from '../helpers/index.js';\n// @ts-ignore\nimport {version} from '../../package.json';\nimport {debounce} from '../helpers/helpers.extras.js';\n\n/**\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../types/index.js').Point } Point\n */\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\n\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\n\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n\n chart.notifyPlugins('afterRender');\n callCallback(animationOptions && animationOptions.onComplete, [context], chart);\n}\n\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callCallback(animationOptions && animationOptions.onProgress, [context], chart);\n}\n\n/**\n * Chart.js can take a string id of a canvas element, a 2d context, or a canvas element itself.\n * Attempt to unwrap the item passed into the chart constructor so that it is a canvas element (if possible).\n */\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n // Support for array based queries (such as jQuery)\n item = item[0];\n }\n\n if (item && item.canvas) {\n // Support for any object associated to a canvas (including a context2d)\n item = item.canvas;\n }\n return item;\n}\n\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\n\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n\n/**\n * @param {ChartEvent} e\n * @param {ChartEvent|null} lastEvent\n * @param {boolean} inChartArea\n * @param {boolean} isClick\n * @returns {ChartEvent|null}\n */\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\n\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\n\nfunction getDatasetArea(meta, chartArea) {\n const {xScale, yScale} = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\n\nclass Chart {\n\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n\n // eslint-disable-next-line max-statements\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n );\n }\n\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n // Store the previously used aspect ratio to determine if a resize\n // is needed during updates. Do this after _options is set since\n // aspectRatio uses a getter\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n /** @type {?{attach?: function, detach?: function, resize?: function}} */\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n\n // Add the chart instance to the global namespace\n instances[this.id] = this;\n\n if (!context || !canvas) {\n // The given item is not a compatible context2d element, let's return before finalizing\n // the chart initialization but after setting basic chart / controller properties that\n // can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n // https://github.com/chartjs/Chart.js/issues/2807\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n // If aspectRatio is defined in options, use that.\n return aspectRatio;\n }\n\n if (maintainAspectRatio && _aspectRatio) {\n // If maintainAspectRatio is truthly and we had previously determined _aspectRatio, use that\n return _aspectRatio;\n }\n\n // Calculate\n return height ? width / height : null;\n }\n\n get data() {\n return this.config.data;\n }\n\n set data(data) {\n this.config.data = data;\n }\n\n get options() {\n return this._options;\n }\n\n set options(options) {\n this.config.options = options;\n }\n\n get registry() {\n return registry;\n }\n\n /**\n\t * @private\n\t */\n _initialize() {\n // Before init plugin notification\n this.notifyPlugins('beforeInit');\n\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n\n this.bindEvents();\n\n // After init plugin notification\n this.notifyPlugins('afterInit');\n\n return this;\n }\n\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n\n stop() {\n animator.stop(this);\n return this;\n }\n\n /**\n\t * Resize the chart to its container or to explicit dimensions.\n\t * @param {number} [width]\n\t * @param {number} [height]\n\t */\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n\n this.notifyPlugins('resize', {size: newSize});\n\n callCallback(options.onResize, [this, newSize], this);\n\n if (this.attached) {\n if (this._doResize(mode)) {\n // The resize update is delayed, only draw without updating.\n this.render();\n }\n }\n }\n\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n\n /**\n\t * Builds a map of scale ID to scale object for future lookup.\n\t */\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n\n scale.init(scaleOptions, options);\n });\n // clear up discarded scales\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n\n /**\n\t * @private\n\t */\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n\n /**\n\t * @private\n\t */\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n\n this._removeUnreferencedMetasets();\n\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n\n this._updateMetasets();\n return newControllers;\n }\n\n /**\n\t * Reset the elements of all datasets\n\t * @private\n\t */\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n\n /**\n\t* Resets the chart back to its state before the initial animation\n\t*/\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n\n update(mode) {\n const config = this.config;\n\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n\n // plugins options references might have change, let's invalidate the cache\n // https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n this._plugins.invalidate();\n\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n\n // Make sure dataset controllers are updated and new controllers are reset\n const newControllers = this.buildOrUpdateControllers();\n\n this.notifyPlugins('beforeElementsUpdate');\n\n // Make sure all dataset controllers have correct meta data counts\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n // New controllers will be reset after the layout pass, so we only want to modify\n // elements added to new datasets\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n\n // Only reset the controllers if we have animations\n if (!animsDisabled) {\n // Can only reset the new controllers after the scales have been updated\n // Reset is done to get the starting point for the initial animation\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n\n this._updateDatasets(mode);\n\n // Do this before render so that any plugins that need final scale updates can use it\n this.notifyPlugins('afterUpdate', {mode});\n\n this._layers.sort(compare2Level('z', '_idx'));\n\n // Replay last event from before update, or set hover styles on active elements\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n\n this.render();\n }\n\n /**\n * @private\n */\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n\n /**\n * @private\n */\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n // The configured events have changed. Rebind.\n this.unbindEvents();\n this.bindEvents();\n }\n }\n\n /**\n * @private\n */\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n\n /**\n * @private\n */\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n\n /**\n\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n\t * hook, in which case, plugins will not be called on `afterLayout`.\n\t * @private\n\t */\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n\n layouts.update(this, this.width, this.height, minPadding);\n\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n // Skip drawing and configuring chartArea boxes when chartArea is zero or negative\n return;\n }\n\n // configure is called twice, once in core.scale.update and once here.\n // Here the boxes are fully updated and at their final positions.\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n\n this.notifyPlugins('afterLayout');\n }\n\n /**\n\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n\t * @private\n\t */\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n\n /**\n\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n\t * @private\n\t */\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n\n meta.controller._update(mode);\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n\n // Because of plugin hooks (before/afterDatasetsDraw), datasets can't\n // currently be part of layers. Instead, we draw\n // layers <= 0 before(default, backward compat), and the rest after\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this._drawDatasets();\n\n // Rest of layers\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this.notifyPlugins('afterDraw');\n }\n\n /**\n\t * @private\n\t */\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n\n return result;\n }\n\n /**\n\t * Gets the visible dataset metas in drawing order\n\t * @return {object[]}\n\t */\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n\n /**\n\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n\t * @private\n\t */\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n\n this.notifyPlugins('afterDatasetsDraw');\n }\n\n /**\n\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n\t * @private\n\t */\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = getDatasetArea(meta, this.chartArea);\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n\n meta.controller.draw();\n\n if (useClip) {\n unclipArea(ctx);\n }\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n\n /**\n * Checks whether the given point is in the chart area.\n * @param {Point} point - in relative coordinates (see, e.g., getRelativePosition)\n * @returns {boolean}\n */\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n\n return [];\n }\n\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\t\t\t// See isDatasetVisible() comment\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n\n return meta;\n }\n\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n\n const meta = this.getDatasetMeta(datasetIndex);\n\n // meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n // the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n\n /**\n\t * @private\n\t */\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n // Animate visible state, so hide animation can be seen. This could be handled better if update / updateDataset returned a Promise.\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n\n /**\n\t * @private\n\t */\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n\n this._stop();\n this.config.clearCache();\n\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n\n delete instances[this.id];\n\n this.notifyPlugins('afterDestroy');\n }\n\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n\n /**\n\t * @private\n\t */\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n\n /**\n * @private\n */\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n\n each(this.options.events, (type) => _add(type, listener));\n }\n\n /**\n * @private\n */\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n\n let detached; // eslint-disable-line prefer-const\n const attached = () => {\n _remove('attach', attached);\n\n this.attached = true;\n this.resize();\n\n _add('resize', listener);\n _add('detach', detached);\n };\n\n detached = () => {\n this.attached = false;\n\n _remove('resize', listener);\n\n // Stop animating and remove metasets, so when re-attached, the animations start from beginning.\n this._stop();\n this._resize(0, 0);\n\n _add('attach', attached);\n };\n\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n\n /**\n\t * @private\n\t */\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n\n /**\n\t * Get active (hovered) elements\n\t * @returns array\n\t */\n getActiveElements() {\n return this._active || [];\n }\n\n /**\n\t * Set active (hovered) elements\n\t * @param {array} activeElements New active data points\n\t */\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n\n if (changed) {\n this._active = active;\n // Make sure we don't use the previous mouse event to override the active elements in update.\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n\n /**\n\t * Calls enabled plugins on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {Object} [args] - Extra arguments to apply to the hook call.\n * @param {import('./core.plugins.js').filterCallback} [filter] - Filtering function for limiting which plugins are notified\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n\n /**\n * Check if a plugin with the specific ID is registered and enabled\n * @param {string} pluginId - The ID of the plugin of which to check if it is enabled\n * @returns {boolean}\n */\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter(p => p.plugin.id === pluginId).length === 1;\n }\n\n /**\n\t * @private\n\t */\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n\n /**\n\t * @private\n\t */\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n\n const changed = this._handleEvent(e, replay, args.inChartArea);\n\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n\n if (changed || args.changed) {\n this.render();\n }\n\n return this;\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e the event to handle\n\t * @param {boolean} [replay] - true if the event was replayed by `update`\n * @param {boolean} [inChartArea] - true if the event is inside chartArea\n\t * @return {boolean} true if the chart needs to re-render\n\t * @private\n\t */\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n\n // If the event is replayed from `update`, we should evaluate with the final positions.\n //\n // The `replay`:\n // It's the last event (excluding click) that has occurred before `update`.\n // So mouse has not moved. It's also over the chart, because there is a `replay`.\n //\n // The why:\n // If animations are active, the elements haven't moved yet compared to state before update.\n // But if they will, we are activating the elements that would be active, if this check\n // was done after the animations have completed. => \"final positions\".\n // If there is no animations, the \"final\" and \"current\" positions are equal.\n // This is done so we do not have to evaluate the active elements each animation frame\n // - it would be expensive.\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n\n if (inChartArea) {\n // Set _lastEvent to null while we are processing the event handlers.\n // This prevents recursion if the handler calls chart.update()\n this._lastEvent = null;\n\n // Invoke onHover hook\n callCallback(options.onHover, [e, active, this], this);\n\n if (isClick) {\n callCallback(options.onClick, [e, active, this], this);\n }\n }\n\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n\n this._lastEvent = lastEvent;\n\n return changed;\n }\n\n /**\n * @param {ChartEvent} e - The event\n * @param {import('../types/index.js').ActiveElement[]} lastActive - Previously active elements\n * @param {boolean} inChartArea - Is the envent inside chartArea\n * @param {boolean} useFinalPosition - Should the evaluation be done with current or final (after animation) element positions\n * @returns {import('../types/index.js').ActiveElement[]} - The active elements\n * @pravate\n */\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n\n if (!inChartArea) {\n // Let user control the active elements outside chartArea. Eg. using Legend.\n return lastActive;\n }\n\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\n\n// @ts-ignore\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart) => chart._plugins.invalidate());\n}\n\nexport default Chart;\n","import {_isDomSupported} from '../helpers/index.js';\nimport BasePlatform from './platform.base.js';\nimport BasicPlatform from './platform.basic.js';\nimport DomPlatform from './platform.dom.js';\n\nexport function _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nexport {BasePlatform, BasicPlatform, DomPlatform};\n","import Element from '../core/core.element.js';\nimport {_angleBetween, getAngleFromPoint, TAU, HALF_PI, valueOrDefault} from '../helpers/index.js';\nimport {PI, _isBetween, _limitValue} from '../helpers/helpers.math.js';\nimport {_readValueToProps} from '../helpers/helpers.options.js';\nimport type {ArcOptions, Point} from '../types/index.js';\n\n\nfunction clipArc(ctx: CanvasRenderingContext2D, element: ArcElement, endAngle: number) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\n\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\n\n/**\n * Parse border radius from the provided options\n */\nfunction parseBorderRadius(arc: ArcElement, innerRadius: number, outerRadius: number, angleDelta: number) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\n\n/**\n * Convert (r, 𝜃) to (x, y)\n */\nfunction rThetaToXY(r: number, theta: number, x: number, y: number) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\n\n\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */\nfunction pathArc(\n ctx: CanvasRenderingContext2D,\n element: ArcElement,\n offset: number,\n spacing: number,\n end: number,\n circular: boolean,\n) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n\n let spacingOffset = 0;\n const alpha = end - start;\n\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius(element, innerRadius, outerRadius, endAngle - startAngle);\n\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n\n ctx.beginPath();\n\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = ((endAngle - (innerEnd / innerRadius)) + (startAngle + (innerStart / innerRadius))) / 2;\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + (innerStart / innerRadius), true);\n\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n\n ctx.closePath();\n}\n\nfunction drawArc(\n ctx: CanvasRenderingContext2D,\n element: ArcElement,\n offset: number,\n spacing: number,\n circular: boolean,\n) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\n\nfunction drawBorder(\n ctx: CanvasRenderingContext2D,\n element: ArcElement,\n offset: number,\n spacing: number,\n circular: boolean,\n) {\n const {fullCircles, startAngle, circumference, options} = element;\n const {borderWidth, borderJoinStyle, borderDash, borderDashOffset} = options;\n const inner = options.borderAlign === 'inner';\n\n if (!borderWidth) {\n return;\n }\n\n ctx.setLineDash(borderDash || []);\n ctx.lineDashOffset = borderDashOffset;\n\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\n\nexport interface ArcProps extends Point {\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n outerRadius: number;\n circumference: number;\n}\n\nexport default class ArcElement extends Element {\n\n static id = 'arc';\n\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n };\n\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n\n static descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash'\n };\n\n circumference: number;\n endAngle: number;\n fullCircles: number;\n innerRadius: number;\n outerRadius: number;\n pixelMargin: number;\n startAngle: number;\n\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n inRange(chartX: number, chartY: number, useFinalPosition: boolean) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n\n return (betweenAngles && withinRadius);\n }\n\n getCenterPoint(useFinalPosition: boolean) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n\n tooltipPosition(useFinalPosition: boolean) {\n return this.getCenterPoint(useFinalPosition);\n }\n\n draw(ctx: CanvasRenderingContext2D) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n\n ctx.save();\n\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n\n ctx.restore();\n }\n}\n","import Element from '../core/core.element.js';\nimport {_bezierInterpolation, _pointInLine, _steppedInterpolation} from '../helpers/helpers.interpolation.js';\nimport {_computeSegments, _boundSegments} from '../helpers/helpers.segment.js';\nimport {_steppedLineTo, _bezierCurveTo} from '../helpers/helpers.canvas.js';\nimport {_updateBezierControlPoints} from '../helpers/helpers.curve.js';\nimport {valueOrDefault} from '../helpers/index.js';\n\n/**\n * @typedef { import('./element.point.js').default } PointElement\n */\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\n\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n\n/**\n * @returns {any}\n */\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n\n return lineTo;\n}\n\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n\n/**\n * Create path from points, grouping by truncated x-coordinate\n * Points need to be in order by x-coordinate for this to work efficiently\n * @param {CanvasRenderingContext2D|Path2D} ctx - Context\n * @param {LineElement} line\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} params\n * @param {boolean} params.move - move to starting point (vs line to it)\n * @param {boolean} params.reverse - path the segment from end to start\n * @param {number} params.start - limit segment to points starting from `start` index\n * @param {number} params.end - limit segment to points ending at `start` + `count` index\n */\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n // eslint-disable-next-line prefer-const\n let {move = true, reverse} = params || {};\n let i, point, prev;\n\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n\n if (point.skip) {\n // If there is a skipped point inside a segment, spanGaps must be true\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n prev = point;\n }\n\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n return !!loop;\n}\n\n/**\n * Create path from points, grouping by truncated x-coordinate\n * Points need to be in order by x-coordinate for this to work efficiently\n * @param {CanvasRenderingContext2D|Path2D} ctx - Context\n * @param {LineElement} line\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} params\n * @param {boolean} params.move - move to starting point (vs line to it)\n * @param {boolean} params.reverse - path the segment from end to start\n * @param {number} params.start - limit segment to points starting from `start` index\n * @param {number} params.end - limit segment to points ending at `start` + `count` index\n */\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n // Draw line to maxY and minY, using the average x-coordinate\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n // Line to y-value of last point in group. So the line continues\n // from correct position. Not using move, to have solid path.\n ctx.lineTo(avgX, lastY);\n }\n };\n\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n\n if (point.skip) {\n // If there is a skipped point inside a segment, spanGaps must be true\n continue;\n }\n\n const x = point.x;\n const y = point.y;\n const truncX = x | 0; // truncated x-coordinate\n\n if (truncX === prevX) {\n // Determine `minY` / `maxY` and `avgX` while we stay within same x-position\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n // For first point in group, countX is `0`, so average will be `x` / 1.\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n // Draw line to next x-position, using the first (or only)\n // y-value in that group\n ctx.lineTo(x, y);\n\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n // Keep track of the last y-value in group\n lastY = y;\n }\n drawX();\n}\n\n/**\n * @param {LineElement} line - the line\n * @returns {function}\n * @private\n */\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n\n/**\n * @private\n */\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n\n return _pointInLine;\n}\n\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\n\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\n\nconst usePath2D = typeof Path2D === 'function';\n\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\n\nexport default class LineElement extends Element {\n\n static id = 'line';\n\n /**\n * @type {any}\n */\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n\n static descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n };\n\n\n constructor(cfg) {\n super();\n\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n\n get points() {\n return this._points;\n }\n\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n\n /**\n\t * First non-skipped point on this line\n\t * @returns {PointElement|undefined}\n\t */\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n\n /**\n\t * Last non-skipped point on this line\n\t * @returns {PointElement|undefined}\n\t */\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n\n /**\n\t * Interpolate a point in this line at the same value on `property` as\n\t * the reference `point` provided\n\t * @param {PointElement} point - the reference point\n\t * @param {string} property - the property to match on\n\t * @returns {PointElement|undefined}\n\t */\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n\n if (!segments.length) {\n return;\n }\n\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n\n /**\n\t * Append a segment of this line to current path.\n\t * @param {CanvasRenderingContext2D} ctx\n\t * @param {object} segment\n\t * @param {number} segment.start - start index of the segment, referring the points array\n \t * @param {number} segment.end - end index of the segment, referring the points array\n \t * @param {boolean} segment.loop - indicates that the segment is a loop\n\t * @param {object} params\n\t * @param {boolean} params.move - move to starting point (vs line to it)\n\t * @param {boolean} params.reverse - path the segment from end to start\n\t * @param {number} params.start - limit segment to points starting from `start` index\n\t * @param {number} params.end - limit segment to points ending at `start` + `count` index\n\t * @returns {undefined|boolean} - true if the segment is a full loop (path should be closed)\n\t */\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n\n /**\n\t * Append all segments of this line to current path.\n\t * @param {CanvasRenderingContext2D|Path2D} ctx\n\t * @param {number} [start]\n\t * @param {number} [count]\n\t * @returns {undefined|boolean} - true if line is a full loop (path should be closed)\n\t */\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n\n start = start || 0;\n count = count || (this.points.length - start);\n\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n\n /**\n\t * Draw\n\t * @param {CanvasRenderingContext2D} ctx\n\t * @param {object} chartArea\n\t * @param {number} [start]\n\t * @param {number} [count]\n\t */\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n\n if (points.length && options.borderWidth) {\n ctx.save();\n\n draw(ctx, this, start, count);\n\n ctx.restore();\n }\n\n if (this.animated) {\n // When line is animated, the control points and path are not cached.\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n","import Element from '../core/core.element.js';\nimport {drawPoint, _isPointInArea} from '../helpers/helpers.canvas.js';\nimport type {\n CartesianParsedData,\n ChartArea,\n Point,\n PointHoverOptions,\n PointOptions,\n} from '../types/index.js';\n\nfunction inRange(el: PointElement, pos: number, axis: 'x' | 'y', useFinalPosition?: boolean) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\n\nexport type PointProps = Point\n\nexport default class PointElement extends Element {\n\n static id = 'point';\n\n parsed: CartesianParsedData;\n skip?: boolean;\n stop?: boolean;\n\n /**\n * @type {any}\n */\n static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n inRange(mouseX: number, mouseY: number, useFinalPosition?: boolean) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n\n inXRange(mouseX: number, useFinalPosition?: boolean) {\n return inRange(this, mouseX, 'x', useFinalPosition);\n }\n\n inYRange(mouseY: number, useFinalPosition?: boolean) {\n return inRange(this, mouseY, 'y', useFinalPosition);\n }\n\n getCenterPoint(useFinalPosition?: boolean) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n\n size(options?: Partial) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n\n draw(ctx: CanvasRenderingContext2D, area: ChartArea) {\n const options = this.options;\n\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n","import Element from '../core/core.element.js';\nimport {isObject, _isBetween, _limitValue} from '../helpers/index.js';\nimport {addRoundedRectPath} from '../helpers/helpers.canvas.js';\nimport {toTRBL, toTRBLCorners} from '../helpers/helpers.options.js';\n\n/** @typedef {{ x: number, y: number, base: number, horizontal: boolean, width: number, height: number }} BarProps */\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param {BarElement} bar the bar\n * @param {boolean} [useFinalPosition]\n * @return {object} bounds of the bar\n * @private\n */\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = /** @type {BarProps} */ (bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition));\n\n let left, right, top, bottom, half;\n\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n\n return {left, top, right, bottom};\n}\n\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\n\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\n\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n\n // If the value is an object, assume the user knows what they are doing\n // and apply as directed.\n const enableBorder = enableBorderRadius || isObject(value);\n\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\n\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\n\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\n\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n\n/**\n * Add a path of a rectangle to the current sub-path\n * @param {CanvasRenderingContext2D} ctx Context\n * @param {*} rect Bounding rect\n */\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\n\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\n\nexport default class BarElement extends Element {\n\n static id = 'bar';\n\n /**\n * @type {any}\n */\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n\n ctx.save();\n\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n\n ctx.restore();\n }\n\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = /** @type {BarProps} */ (this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition));\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n","import {DoughnutController, PolarAreaController} from '../index.js';\nimport type {Chart, ChartDataset} from '../types.js';\n\nexport interface ColorsPluginOptions {\n enabled?: boolean;\n forceOverride?: boolean;\n}\n\ninterface ColorsDescriptor {\n backgroundColor?: unknown;\n borderColor?: unknown;\n}\n\nconst BORDER_COLORS = [\n 'rgb(54, 162, 235)', // blue\n 'rgb(255, 99, 132)', // red\n 'rgb(255, 159, 64)', // orange\n 'rgb(255, 205, 86)', // yellow\n 'rgb(75, 192, 192)', // green\n 'rgb(153, 102, 255)', // purple\n 'rgb(201, 203, 207)' // grey\n];\n\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map(color => color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\n\nfunction getBorderColor(i: number) {\n return BORDER_COLORS[i % BORDER_COLORS.length];\n}\n\nfunction getBackgroundColor(i: number) {\n return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\n\nfunction colorizeDefaultDataset(dataset: ChartDataset, i: number) {\n dataset.borderColor = getBorderColor(i);\n dataset.backgroundColor = getBackgroundColor(i);\n\n return ++i;\n}\n\nfunction colorizeDoughnutDataset(dataset: ChartDataset, i: number) {\n dataset.backgroundColor = dataset.data.map(() => getBorderColor(i++));\n\n return i;\n}\n\nfunction colorizePolarAreaDataset(dataset: ChartDataset, i: number) {\n dataset.backgroundColor = dataset.data.map(() => getBackgroundColor(i++));\n\n return i;\n}\n\nfunction getColorizer(chart: Chart) {\n let i = 0;\n\n return (dataset: ChartDataset, datasetIndex: number) => {\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n\n if (controller instanceof DoughnutController) {\n i = colorizeDoughnutDataset(dataset, i);\n } else if (controller instanceof PolarAreaController) {\n i = colorizePolarAreaDataset(dataset, i);\n } else if (controller) {\n i = colorizeDefaultDataset(dataset, i);\n }\n };\n}\n\nfunction containsColorsDefinitions(\n descriptors: ColorsDescriptor[] | Record\n) {\n let k: number | string;\n\n for (k in descriptors) {\n if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction containsColorsDefinition(\n descriptor: ColorsDescriptor\n) {\n return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\n\nexport default {\n id: 'colors',\n\n defaults: {\n enabled: true,\n forceOverride: false\n } as ColorsPluginOptions,\n\n beforeLayout(chart: Chart, _args, options: ColorsPluginOptions) {\n if (!options.enabled) {\n return;\n }\n\n const {\n data: {datasets},\n options: chartOptions\n } = chart.config;\n const {elements} = chartOptions;\n\n if (!options.forceOverride && (containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || (elements && containsColorsDefinitions(elements)))) {\n return;\n }\n\n const colorizer = getColorizer(chart);\n\n datasets.forEach(colorizer);\n }\n};\n","import {_limitValue, _lookupByKey, isNullOrUndef, resolve} from '../helpers/index.js';\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n /**\n * Implementation of the Largest Triangle Three Buckets algorithm.\n *\n * This implementation is based on the original implementation by Sveinn Steinarsson\n * in https://github.com/sveinn-steinarsson/flot-downsample/blob/master/jquery.flot.downsample.js\n *\n * The original implementation is MIT licensed.\n */\n const samples = options.samples || availableWidth;\n // There are less points than the threshold, returning the whole array\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n\n const decimated = [];\n\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n // Starting from offset\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n\n decimated[sampledIndex++] = data[a];\n\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n\n // Adding offset\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n\n // Adding offset\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n\n // Note that this is changed from the original algorithm which initializes these\n // values to 1. The reason for this change is that if the area is small, nextA\n // would never be set and thus a crash would occur in the next loop as `a` would become\n // `undefined`. Since the area is always positive, but could be 0 in the case of a flat trace,\n // initializing with a negative number is the correct solution.\n maxArea = area = -1;\n\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n\n // Include the last point\n decimated[sampledIndex++] = data[endIndex];\n\n return decimated;\n}\n\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n\n if (truncX === prevX) {\n // Determine `minY` / `maxY` and `avgX` while we stay within same x-position\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n // For first point in group, countX is `0`, so average will be `x` / 1.\n // Use point.x here because we're computing the average data `x` value\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n // Push up to 4 points, 3 for the last interval and the first point for this interval\n const lastIndex = i - 1;\n\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n // The interval is defined by 4 points: start, min, max, end.\n // The starting point is already considered at this point, so we need to determine which\n // of the other points to add. We need to sort these points to ensure the decimated data\n // is still sorted and then ensure there are no duplicates.\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n\n // lastIndex === startIndex will occur when a range has only 1 point which could\n // happen with very uneven data\n if (i > 0 && lastIndex !== startIndex) {\n // Last point in the previous interval\n decimated.push(data[lastIndex]);\n }\n\n // Start of the new interval\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n\n return decimated;\n}\n\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: data,\n });\n }\n}\n\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\n\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n\n let start = 0;\n let count;\n\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n\n return {start, count};\n}\n\nexport default {\n id: 'decimation',\n\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n // The decimation plugin may have been previously enabled. Need to remove old `dataset._data` handlers\n cleanDecimatedData(chart);\n return;\n }\n\n // Assume the entire chart is available to show a few more points than needed\n const availableWidth = chart.width;\n\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n // Decimation is only supported for lines that have an X indexAxis\n return;\n }\n\n if (!meta.controller.supportsDecimation) {\n // Only line datasets are supported\n return;\n }\n\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n // Only linear interpolation is supported\n return;\n }\n\n if (chart.options.parsing) {\n // Plugin only supports data that does not need parsing\n return;\n }\n\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n // No decimation is required until we are above this threshold\n cleanDecimatedDataset(dataset);\n return;\n }\n\n if (isNullOrUndef(_data)) {\n // First time we are seeing this dataset\n // We override the 'data' property with a setter that stores the\n // raw data in _data, but reads the decimated data from _decimated\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n\n // Point the chart to the decimated data\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n\n dataset._decimated = decimated;\n });\n },\n\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n","import {_boundSegment, _boundSegments, _normalizeAngle} from '../../helpers/index.js';\n\nexport function _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n\n for (const segment of segments) {\n let {start, end} = segment;\n end = _findSegmentEnd(start, end, points);\n\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n\n if (!target.segments) {\n // Special case for boundary not supporting `segments` (simpleArc)\n // Bounds are provided as `target` for partial circle, or undefined for full circle\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n\n // Get all segments from `target` that intersect the bounds of current segment of `line`\n const targetSegments = _boundSegments(target, bounds);\n\n for (const tgt of targetSegments) {\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\n\nexport function _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\n\nexport function _pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\n\nexport function _findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\n\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n","/**\n * @typedef { import('../../core/core.controller.js').default } Chart\n * @typedef { import('../../core/core.scale.js').default } Scale\n * @typedef { import('../../elements/element.point.js').default } PointElement\n */\n\nimport {LineElement} from '../../elements/index.js';\nimport {isArray} from '../../helpers/index.js';\nimport {_pointsFromSegments} from './filler.segment.js';\n\n/**\n * @param {PointElement[] | { x: number; y: number; }} boundary\n * @param {LineElement} line\n * @return {LineElement?}\n */\nexport function _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n\n if (isArray(boundary)) {\n _loop = true;\n // @ts-ignore\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\n\nexport function _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n","import {isObject, isFinite, valueOrDefault} from '../../helpers/helpers.core.js';\n\n/**\n * @typedef { import('../../core/core.scale.js').default } Scale\n * @typedef { import('../../elements/element.line.js').default } LineElement\n * @typedef { import('../../types/index.js').FillTarget } FillTarget\n * @typedef { import('../../types/index.js').ComplexFillTarget } ComplexFillTarget\n */\n\nexport function _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n\n if (!propagate) {\n return fill;\n }\n\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isFinite(fill)) {\n return fill;\n }\n\n target = sources[fill];\n if (!target) {\n return false;\n }\n\n if (target.visible) {\n return fill;\n }\n\n visited.push(fill);\n fill = target.fill;\n }\n\n return false;\n}\n\n/**\n * @param {LineElement} line\n * @param {number} index\n * @param {number} count\n */\nexport function _decodeFill(line, index, count) {\n /** @type {string | {value: number}} */\n const fill = parseFillOption(line);\n\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n\n let target = parseFloat(fill);\n\n if (isFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\n\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n\n return target;\n}\n\n/**\n * @param {FillTarget | ComplexFillTarget} fill\n * @param {Scale} scale\n * @returns {number | null}\n */\nexport function _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n // @ts-ignore\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\n\n/**\n * @param {FillTarget | ComplexFillTarget} fill\n * @param {Scale} scale\n * @param {number} startValue\n * @returns {number | undefined}\n */\nexport function _getTargetValue(fill, scale, startValue) {\n let value;\n\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n // @ts-ignore\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\n\n/**\n * @param {LineElement} line\n */\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n\n if (fill === false || fill === null) {\n return false;\n }\n\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n","/**\n * @typedef { import('../../core/core.controller.js').default } Chart\n * @typedef { import('../../core/core.scale.js').default } Scale\n * @typedef { import('../../elements/element.point.js').default } PointElement\n */\n\nimport {LineElement} from '../../elements/index.js';\nimport {_isBetween} from '../../helpers/index.js';\nimport {_createBoundaryLine} from './filler.helper.js';\n\n/**\n * @param {{ chart: Chart; scale: Scale; index: number; line: LineElement; }} source\n * @return {LineElement}\n */\nexport function _buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({x: null, y: scale.bottom}, line));\n\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\n\n/**\n * @param {Scale} scale\n * @param {number} index\n * @return {LineElement[]}\n */\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\n\n/**\n * @param {PointElement[]} points\n * @param {PointElement} sourcePoint\n * @param {LineElement[]} linesBelow\n */\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n // First point of an segment -> need to add another point before this,\n // from next line below.\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n // In the middle of an segment, no need to add more points.\n break;\n }\n }\n }\n points.push(...postponed);\n}\n\n/**\n * @param {LineElement} line\n * @param {PointElement} sourcePoint\n * @param {string} property\n * @returns {{point?: PointElement, first?: boolean, last?: boolean}}\n */\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\n","import {TAU} from '../../helpers/index.js';\n\n// TODO: use elements.ArcElement instead\nexport class simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n","import {isFinite} from '../../helpers/index.js';\nimport {_createBoundaryLine} from './filler.helper.js';\nimport {_getTargetPixel, _getTargetValue} from './filler.options.js';\nimport {_buildStackLine} from './filler.target.stack.js';\nimport {simpleArc} from './simpleArc.js';\n\n/**\n * @typedef { import('../../core/core.controller.js').default } Chart\n * @typedef { import('../../core/core.scale.js').default } Scale\n * @typedef { import('../../elements/element.point.js').default } PointElement\n */\n\nexport function _getTarget(source) {\n const {chart, fill, line} = source;\n\n if (isFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n\n if (fill === 'shape') {\n return true;\n }\n\n const boundary = computeBoundary(source);\n\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n\n return _createBoundaryLine(boundary, line);\n}\n\n/**\n * @param {Chart} chart\n * @param {number} index\n */\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\n\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\n\n\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n const pixel = _getTargetPixel(fill, scale);\n\n if (isFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n\n return null;\n}\n\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n\n for (let i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\n","import {clipArea, unclipArea} from '../../helpers/index.js';\nimport {_findSegmentEnd, _getBounds, _segments} from './filler.segment.js';\nimport {_getTarget} from './filler.target.js';\n\nexport function _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\n\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n\n ctx.save();\n\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {line, target, color: below, scale, property});\n\n ctx.restore();\n}\n\nfunction clipVertical(ctx, target, clipY) {\n const {segments, points} = target;\n let first = true;\n let lineLoop = false;\n\n ctx.beginPath();\n for (const segment of segments) {\n const {start, end} = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\n\nfunction fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n\n ctx.save();\n ctx.fillStyle = backgroundColor;\n\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n\n ctx.beginPath();\n\n const lineLoop = !!line.pathSegment(ctx, src);\n\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n\n ctx.restore();\n }\n}\n\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\n\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\n","/**\n * Plugin based on discussion from the following Chart.js issues:\n * @see https://github.com/chartjs/Chart.js/issues/2380#issuecomment-279961569\n * @see https://github.com/chartjs/Chart.js/issues/2440#issuecomment-256461897\n */\n\nimport LineElement from '../../elements/element.line.js';\nimport {_drawfill} from './filler.drawing.js';\nimport {_shouldApplyFill} from './filler.helper.js';\nimport {_decodeFill, _resolveTarget} from './filler.options.js';\n\nexport default {\n id: 'filler',\n\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n\n meta.$filler = source;\n sources.push(source);\n }\n\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n","import defaults from '../core/core.defaults.js';\nimport Element from '../core/core.element.js';\nimport layouts from '../core/core.layouts.js';\nimport {addRoundedRectPath, drawPointLegend, renderText} from '../helpers/helpers.canvas.js';\nimport {\n _isBetween,\n callback as call,\n clipArea,\n getRtlAdapter,\n overrideTextDirection,\n restoreTextDirection,\n toFont,\n toPadding,\n unclipArea,\n valueOrDefault,\n} from '../helpers/index.js';\nimport {_alignStartEnd, _textX, _toLeftRightCenter} from '../helpers/helpers.extras.js';\nimport {toTRBLCorners} from '../helpers/helpers.options.js';\n\n/**\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n */\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\n\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\n\nexport class Legend extends Element {\n\n /**\n\t * @param {{ ctx: any; options: any; chart: any; }} config\n\t */\n constructor(config) {\n super();\n\n this._added = false;\n\n // Contains hit boxes for each dataset (in dataset order)\n this.legendHitBoxes = [];\n\n /**\n \t\t * @private\n \t\t */\n this._hoveredItem = null;\n\n // Are we in doughnut mode which has a different data type\n this.doughnutMode = false;\n\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = call(labelOpts.generateLabels, [this.chart], this) || [];\n\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n\n if (this.options.reverse) {\n legendItems.reverse();\n }\n\n this.legendItems = legendItems;\n }\n\n fit() {\n const {options, ctx} = this;\n\n // The legend may not be displayed for a variety of reasons including\n // the fact that the defaults got set to `false`.\n // When the legend is not displayed, there are no guarantees that the options\n // are correctly formatted so we need to bail out as early as possible.\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n\n let width, height;\n\n ctx.font = labelFont.string;\n\n if (this.isHorizontal()) {\n width = this.maxWidth; // fill all the width\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight; // fill all the height\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n\n /**\n\t * @private\n\t */\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n // Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n\n return totalHeight;\n }\n\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n\n let left = 0;\n let col = 0;\n\n this.legendItems.forEach((legendItem, i) => {\n const {itemWidth, itemHeight} = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n\n // If too tall, go to new column\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight}); // previous column size\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n\n // Store the hitbox width and height here. Final position will be updated in `draw`\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n\n // Get max width\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight}); // previous column size\n\n return totalWidth;\n }\n\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n\n this._draw();\n\n unclipArea(ctx);\n }\n }\n\n /**\n\t * @private\n\t */\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n\n this.drawTitle();\n\n // Canvas setup\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n\n // current position\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n\n // Set the ctx for the box\n ctx.save();\n\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n\n if (labelOpts.usePointStyle) {\n // Recalculate x and y for drawPoint() because its expecting\n // x and y to be center of figure (instead of top left)\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n\n // Draw pointStyle as legend symbol\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n // Draw box as legend symbol\n // Adjust position when boxHeight < fontSize (want it centered)\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n\n ctx.beginPath();\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n\n ctx.restore();\n };\n\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n\n // Horizontal\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n\n overrideTextDirection(this.ctx, opts.textDirection);\n\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor; // for strikethrough effect\n ctx.fillStyle = legendItem.fontColor; // render in correct colour\n\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n\n rtlHelper.setWidth(this.width);\n\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n\n const realX = rtlHelper.x(x);\n\n drawLegendBox(realX, y, legendItem);\n\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n\n // Fill the actual label\n fillText(rtlHelper.x(x), y, legendItem);\n\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n\n if (!titleOpts.display) {\n return;\n }\n\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n\n // These defaults are used when the legend is vertical.\n // When horizontal, they are computed below.\n let left = this.left;\n let maxWidth = this.width;\n\n if (this.isHorizontal()) {\n // Move left / right so that the title is above the legend lines\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n // Move down so that the title is above the legend stack in every alignment\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n\n // Now that we know the left edge of the inner legend box, compute the correct\n // X coordinate from the title alignment\n const x = _alignStartEnd(position, left, left + maxWidth);\n\n // Canvas setup\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n\n /**\n\t * @private\n\t */\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n\n /**\n\t * @private\n\t */\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n // See if we are touching one of the dataset boxes\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n // Touching an element\n return this.legendItems[i];\n }\n }\n }\n\n return null;\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e - The event to handle\n\t */\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n\n // Chart event already has relative position in it\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n call(opts.onLeave, [e, previous, this], this);\n }\n\n this._hoveredItem = hoveredItem;\n\n if (hoveredItem && !sameItem) {\n call(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n call(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\n\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {itemWidth, itemHeight};\n}\n\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b) => a.length > b.length ? a : b);\n }\n return boxWidth + (labelFont.size / 2) + ctx.measureText(legendItemText).width;\n}\n\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\n\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\n\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\n\nexport default {\n id: 'legend',\n\n /**\n\t * For tests\n\t * @private\n\t */\n _element: Legend,\n\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n\n // During the beforeUpdate step, the layout configuration needs to run\n // This ensures that if the legend position changes (via an option update)\n // the layout system respects the change. See https://github.com/chartjs/Chart.js/issues/7527\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n\n // The labels need to be built after datasets are updated to ensure that colors\n // and other styling are correct. See https://github.com/chartjs/Chart.js/issues/6968\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n\n\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n\n // a callback that will handle\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n\n onHover: null,\n onLeave: null,\n\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n // Generates labels shown in the legend\n // Valid properties to return:\n // text : text to display\n // fillStyle : fill of coloured box\n // strokeStyle: stroke of coloured box\n // hidden : if this legend item refers to a hidden item\n // lineCap : cap style for line\n // lineDash\n // lineDashOffset :\n // lineJoin :\n // lineWidth :\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color, useBorderRadius, borderRadius}} = chart.legend.options;\n\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n\n // Below is extra data used for toggling the datasets\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n","import Element from '../core/core.element.js';\nimport layouts from '../core/core.layouts.js';\nimport {PI, isArray, toPadding, toFont} from '../helpers/index.js';\nimport {_toLeftRightCenter, _alignStartEnd} from '../helpers/helpers.extras.js';\nimport {renderText} from '../helpers/helpers.canvas.js';\n\nexport class Title extends Element {\n /**\n\t * @param {{ ctx: any; options: any; chart: any; }} config\n\t */\n constructor(config) {\n super();\n\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n\n update(maxWidth, maxHeight) {\n const opts = this.options;\n\n this.left = 0;\n this.top = 0;\n\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n\n if (!opts.display) {\n return;\n }\n\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\n\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\n\nexport default {\n id: 'title',\n\n /**\n\t * For tests\n\t * @private\n\t */\n _element: Title,\n\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000 // by default greater than legend (1000) to be above\n },\n\n defaultRoutes: {\n color: 'color'\n },\n\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n","import {Title} from './plugin.title.js';\nimport layouts from '../core/core.layouts.js';\n\nconst map = new WeakMap();\n\nexport default {\n id: 'subtitle',\n\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500 // by default greater than legend (1000) and smaller than title (2000)\n },\n\n defaultRoutes: {\n color: 'color'\n },\n\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n","import Animations from '../core/core.animations.js';\nimport Element from '../core/core.element.js';\nimport {addRoundedRectPath} from '../helpers/helpers.canvas.js';\nimport {each, noop, isNullOrUndef, isArray, _elementsEqual, isObject} from '../helpers/helpers.core.js';\nimport {toFont, toPadding, toTRBLCorners} from '../helpers/helpers.options.js';\nimport {getRtlAdapter, overrideTextDirection, restoreTextDirection} from '../helpers/helpers.rtl.js';\nimport {distanceBetweenPoints, _limitValue} from '../helpers/helpers.math.js';\nimport {createContext, drawPoint} from '../helpers/index.js';\n\n/**\n * @typedef { import('../platform/platform.base.js').Chart } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../types/index.js').ActiveElement } ActiveElement\n * @typedef { import('../core/core.interaction.js').InteractionItem } InteractionItem\n */\n\nconst positioners = {\n /**\n\t * Average mode places the tooltip at the average position of the elements shown\n\t */\n average(items) {\n if (!items.length) {\n return false;\n }\n\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n\n const xAverage = [...xSet].reduce((a, b) => a + b) / xSet.size;\n\n return {\n x: xAverage,\n y: y / count\n };\n },\n\n /**\n\t * Gets the tooltip position nearest of the item nearest to the event position\n\t */\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n\n return {\n x,\n y\n };\n }\n};\n\n// Helper to push or concat based on if the 2nd parameter is an array or not\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n // base = base.concat(toPush);\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n\n return base;\n}\n\n/**\n * Returns array of strings split by newline\n * @param {*} str - The value to split by newline.\n * @returns {string|string[]} value if newline present - Returned from String split() method\n * @function\n */\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n\n\n/**\n * Private helper to create a tooltip item model\n * @param {Chart} chart\n * @param {ActiveElement} item - {element, index, datasetIndex} to create the tooltip item for\n * @return new tooltip item\n */\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n\n/**\n * Get the size of the tooltip\n */\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n\n // Count of all lines in the body\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n // Body lines may include some extra height depending on boxHeight\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n\n // Title width\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n\n ctx.save();\n\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n\n // Body width\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n\n // Body lines may include some extra width due to the color box\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n\n // Reset back to 0\n widthPadding = 0;\n\n // Footer width\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n\n ctx.restore();\n\n // Add padding\n width += padding.width;\n\n return {width, height};\n}\n\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\n\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\n\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n\n return xAlign;\n}\n\n/**\n * Helper to get the alignment of a tooltip given the size\n */\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\n\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\n\nfunction alignY(size, yAlign, paddingAndSize) {\n // eslint-disable-next-line prefer-const\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\n\n/**\n * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n */\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\n\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\n\n/**\n * Helper to build before and after body lines\n */\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\n\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\n\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\n\nconst defaultCallbacks = {\n // Args are: (tooltipItems, data)\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n\n return '';\n },\n afterTitle: noop,\n\n // Args are: (tooltipItems, data)\n beforeBody: noop,\n\n // Args are: (tooltipItem, data)\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n\n let label = tooltipItem.dataset.label || '';\n\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n\n // Args are: (tooltipItems, data)\n afterBody: noop,\n\n // Args are: (tooltipItems, data)\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n\n/**\n * Invoke callback from object with context and arguments.\n * If callback returns `undefined`, then will be invoked default callback.\n * @param {Record} callbacks\n * @param {keyof typeof defaultCallbacks} name\n * @param {*} ctx\n * @param {*} arg\n * @returns {any}\n */\nfunction invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n\n return result;\n}\n\nexport class Tooltip extends Element {\n\n /**\n * @namespace Chart.Tooltip.positioners\n */\n static positioners = positioners;\n\n constructor(config) {\n super();\n\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n // TODO: V4, make this private, rename to `_labelStyles`, and combine with `labelPointStyles`\n // and `labelTextColors` to create a single variable\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n\n /**\n\t * @private\n\t */\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n\n if (cached) {\n return cached;\n }\n\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n\n return animations;\n }\n\n /**\n\t * @protected\n\t */\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n\n getTitle(context, options) {\n const {callbacks} = options;\n\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n\n return lines;\n }\n\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(\n invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems)\n );\n }\n\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n\n bodyItems.push(bodyItem);\n });\n\n return bodyItems;\n }\n\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(\n invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems)\n );\n }\n\n // Get the footer and beforeFooter and afterFooter lines\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n\n return lines;\n }\n\n /**\n\t * @private\n\t */\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n\n // If the user provided a filter function, use it to modify the tooltip items\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n\n // If the user provided a sorting function, use it to modify the tooltip items\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n\n // Determine colors for boxes\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n\n // Left draws bottom -> top, this y1 is on the bottom\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n\n // Right draws top -> bottom, thus y1 is on the top\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n\n // Top draws left -> right, thus x1 is on the left\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n\n // Bottom draws right -> left, thus x1 is on the right\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n pt.x = getAlignedX(this, options.titleAlign, options);\n\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing; // Line Height and spacing\n\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n }\n }\n }\n }\n\n /**\n\t * @private\n\t */\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2, // fit the circle in the box\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n // Recalculate x and y for drawPoint() because its expecting\n // x and y to be center of figure (instead of top left)\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n\n // Fill the point with white so that colours merge nicely if the opacity is < 1\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n\n // Draw the point\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n // Border\n ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : (labelColor.borderWidth || 1); // TODO, v4 remove fallback\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n\n // Fill a white rect so that colours merge nicely if the opacity is < 1\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColor.borderRadius);\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n\n // Inner square\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n // Normal rect\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n // Inner square\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n\n // restore fillStyle\n ctx.fillStyle = this.labelTextColors[i];\n }\n\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n\n // Before body lines\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n\n // Draw body lines now\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n\n lines = bodyItem.lines;\n // Draw Legend-like boxes if needed\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n // Reset for any lines that don't include colorbox\n bodyLineHeight = bodyFont.lineHeight;\n }\n\n each(bodyItem.after, fillLineOfText);\n }\n\n // Reset back to 0 for after body\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n\n // After body lines\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing; // Remove last body spacing\n }\n\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n\n footerFont = toFont(options.footerFont);\n\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n\n /**\n\t * Update x/y animation targets when _active elements are animating too\n\t * @private\n\t */\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n\n /**\n * Determine if the tooltip will draw anything\n * @returns {boolean} True if the tooltip will render\n */\n _willRender() {\n return !!this.opacity;\n }\n\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n\n if (!opacity) {\n return;\n }\n\n this._updateAnimationTarget(options);\n\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n\n // IE11/Edge does not like very small opacities, so snap to 0\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n\n const padding = toPadding(options.padding);\n\n // Truthy/falsey value for empty tooltip\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n\n // Draw Background\n this.drawBackground(pt, ctx, tooltipSize, options);\n\n overrideTextDirection(ctx, options.textDirection);\n\n pt.y += padding.top;\n\n // Titles\n this.drawTitle(pt, ctx, options);\n\n // Body\n this.drawBody(pt, ctx, options);\n\n // Footer\n this.drawFooter(pt, ctx, options);\n\n restoreTextDirection(ctx, options.textDirection);\n\n ctx.restore();\n }\n }\n\n /**\n\t * Get active elements in the tooltip\n\t * @returns {Array} Array of elements that are active in the tooltip\n\t */\n getActiveElements() {\n return this._active || [];\n }\n\n /**\n\t * Set active elements in the tooltip\n\t * @param {array} activeElements Array of active datasetIndex/index pairs.\n\t * @param {object} eventPosition Synthetic event position used in positioning\n\t */\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e - The event to handle\n\t * @param {boolean} [replay] - This is a replayed event (from update)\n\t * @param {boolean} [inChartArea] - The event is inside chartArea\n\t * @returns {boolean} true if the tooltip changed\n\t */\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n\n // When there are multiple items shown, but the tooltip position is nearest mode\n // an update may need to be made because our position may have changed even though\n // the items are the same as before.\n const positionChanged = this._positionChanged(active, e);\n\n // Remember Last Actives\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n\n // Only handle target event on tooltip change\n if (changed) {\n this._active = active;\n\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n\n this.update(true, replay);\n }\n }\n\n return changed;\n }\n\n /**\n\t * Helper for determining the active elements for event\n\t * @param {ChartEvent} e - The event to handle\n\t * @param {InteractionItem[]} lastActive - Previously active elements\n\t * @param {boolean} [replay] - This is a replayed event (from update)\n\t * @param {boolean} [inChartArea] - The event is inside chartArea\n\t * @returns {InteractionItem[]} - Active elements\n\t * @private\n\t */\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n\n if (e.type === 'mouseout') {\n return [];\n }\n\n if (!inChartArea) {\n // Let user control the active elements outside chartArea. Eg. using Legend.\n // But make sure that active elements are still valid.\n return lastActive.filter(i =>\n this.chart.data.datasets[i.datasetIndex] &&\n this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined\n );\n }\n\n // Find Active Elements for tooltips\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n\n if (options.reverse) {\n active.reverse();\n }\n\n return active;\n }\n\n /**\n\t * Determine if the active elements + event combination changes the\n\t * tooltip position\n\t * @param {array} active - Active elements\n\t * @param {ChartEvent} e - Event that triggered the position change\n\t * @returns {boolean} True if the position has changed\n\t */\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\n\nexport default {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n\n if (chart.notifyPlugins('beforeTooltipDraw', {...args, cancelable: true}) === false) {\n return;\n }\n\n tooltip.draw(chart.ctx);\n\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n\n afterEvent(chart, args) {\n if (chart.tooltip) {\n // If the event is replayed from `update`, we should evaluate with the final positions.\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n // notify chart about the change, so it will render\n args.changed = true;\n }\n }\n },\n\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n\n // Resolve additionally from `interaction` options and defaults.\n additionalOptionScopes: ['interaction']\n};\n","import Scale from '../core/core.scale.js';\nimport {isNullOrUndef, valueOrDefault, _limitValue} from '../helpers/index.js';\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\n\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\n\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\n\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\n\nexport default class CategoryScale extends Scale {\n\n static id = 'category';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n\n this.min = min;\n this.max = max;\n }\n\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n\n // If we are viewing some subset of labels, slice the original array\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n super.configure();\n\n if (!this.isHorizontal()) {\n // For backward compatibility, vertical category scale reverse is inverted.\n this._reversePixels = !this._reversePixels;\n }\n }\n\n // Used to get data value locations. Value can either be an index or a numerical value\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n\n // Must override base implementation because it calls getPixelForValue\n // and category scale can have duplicate values\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n\n getBasePixel() {\n return this.bottom;\n }\n}\n","import {isNullOrUndef} from '../helpers/helpers.core.js';\nimport {almostEquals, almostWhole, niceNum, _decimalPlaces, _setMinAndMaxByKey, sign, toRadians} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\n\n/**\n * Generate a set of linear ticks for an axis\n * 1. If generationOptions.min, generationOptions.max, and generationOptions.step are defined:\n * if (max - min) / step is an integer, ticks are generated as [min, min + step, ..., max]\n * Note that the generationOptions.maxCount setting is respected in this scenario\n *\n * 2. If generationOptions.min, generationOptions.max, and generationOptions.count is defined\n * spacing = (max - min) / count\n * Ticks are generated as [min, min + spacing, ..., max]\n *\n * 3. If generationOptions.count is defined\n * spacing = (niceMax - niceMin) / count\n *\n * 4. Compute optimal spacing of ticks using niceNum algorithm\n *\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {object[]} array of tick objects\n */\nfunction generateTicks(generationOptions, dataRange) {\n const ticks = [];\n // To get a \"nice\" value for the tick spacing, we will use the appropriately named\n // \"nice number\" algorithm. See https://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n // for details.\n\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n\n // Beyond MIN_SPACING floating point numbers being to lose precision\n // such that we can't do the math necessary to generate ticks\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n // If the calculated num of spaces exceeds maxNumSpaces, recalculate it\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n\n if (!isNullOrUndef(precision)) {\n // If the user specified a precision, round to that number of decimal places\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n // Case 1: If min, max and stepSize are set and they make an evenly spaced scale use it.\n // spacing = step;\n // numSpaces = (max - min) / spacing;\n // Note that we round here to handle the case where almostWhole translated an FP error\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n // Cases 2 & 3, we have a count specified. Handle optional user defined edges to the range.\n // Sometimes these are no-ops, but it makes the code a lot clearer\n // and when a user defined range is specified, we want the correct ticks\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n // Case 4\n numSpaces = (niceMax - niceMin) / spacing;\n\n // If very close to our rounded value, use it.\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n\n // The spacing will have changed in cases 1, 2, and 3 so the factor cannot be computed\n // until this point\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n\n if (niceMin < min) {\n j++; // Skip niceMin\n }\n // If the next nice tick is close to min, skip it\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n\n for (; j < numSpaces; ++j) {\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({value: tickValue});\n }\n\n if (maxDefined && includeBounds && niceMax !== max) {\n // If the previous tick is too close to max, replace it with max, else add max\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n\n return ticks;\n}\n\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\n\nexport default class LinearScaleBase extends Scale {\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.start = undefined;\n /** @type {number} */\n this.end = undefined;\n /** @type {number} */\n this._startValue = undefined;\n /** @type {number} */\n this._endValue = undefined;\n this._valueRange = 0;\n }\n\n parse(raw, index) { // eslint-disable-line no-unused-vars\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n\n return +raw;\n }\n\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n\n setMax(max + offset);\n\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n\n getTickLimit() {\n const tickOpts = this.options.ticks;\n // eslint-disable-next-line prefer-const\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n\n return maxTicks;\n }\n\n /**\n\t * @protected\n\t */\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n\n // Figure out what the max number of ticks we can support it is based on the size of\n // the axis area. For now, we say that the minimum tick spacing in pixels must be 40\n // We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n // the graph. Make sure we always have at least 2 ticks\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks(numericGeneratorOptions, dataRange);\n\n // At this point, we need to update our max and min given the tick values,\n // since we probably have expanded the range of the scale\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n\n super.configure();\n\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n","import {isFinite} from '../helpers/helpers.core.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\nimport {toRadians} from '../helpers/index.js';\n\nexport default class LinearScale extends LinearScaleBase {\n\n static id = 'linear';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n\n this.min = isFinite(min) ? min : 0;\n this.max = isFinite(max) ? max : 1;\n\n // Common base implementation to handle min, max, beginAtZero\n this.handleTickRangeOptions();\n }\n\n /**\n\t * Returns the maximum number of ticks based on the scale dimension\n\t * @protected\n \t */\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n\n // Utils\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n","import {finiteOrDefault, isFinite} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {_setMinAndMaxByKey, log10} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\n\nconst log10Floor = v => Math.floor(log10(v));\nconst changeExponent = (v, m) => Math.pow(10, log10Floor(v) + m);\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, log10Floor(tickVal)));\n return remain === 1;\n}\n\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\n\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while (steps(min, max, rangeExp) > 10) {\n rangeExp++;\n }\n while (steps(min, max, rangeExp) < 10) {\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n\n\n/**\n * Generate a set of logarithmic ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {object[]} array of tick objects\n */\nfunction generateTicks(generationOptions, {min, max}) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while (value < max) {\n ticks.push({value, major: isMajor(value), significand});\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({value: lastTick, major: isMajor(lastTick), significand});\n\n return ticks;\n}\n\nexport default class LogarithmicScale extends Scale {\n\n static id = 'logarithmic';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.start = undefined;\n /** @type {number} */\n this.end = undefined;\n /** @type {number} */\n this._startValue = undefined;\n this._valueRange = 0;\n }\n\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isFinite(value) && value > 0 ? value : null;\n }\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n\n this.min = isFinite(min) ? Math.max(0, min) : null;\n this.max = isFinite(max) ? Math.max(0, max) : null;\n\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n\n // if data has `0` in it or `beginAtZero` is true, min (non zero) value is at bottom\n // of scale, and it does not equal suggestedMin, lower the min bound by one exp.\n if (this._zero && this.min !== this._suggestedMin && !isFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n\n this.handleTickRangeOptions();\n }\n\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n\n if (min === max) {\n if (min <= 0) { // includes null\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n\n setMax(changeExponent(min, +1));\n }\n\n this.min = min;\n this.max = max;\n }\n\n buildTicks() {\n const opts = this.options;\n\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n\n // At this point, we need to update our max and min given the tick values,\n // since we probably have expanded the range of the scale\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n\n /**\n\t * @param {number} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n const start = this.min;\n\n super.configure();\n\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n","import defaults from '../core/core.defaults.js';\nimport {_longestText, addRoundedRectPath, renderText, _isPointInArea} from '../helpers/helpers.canvas.js';\nimport {HALF_PI, TAU, toDegrees, toRadians, _normalizeAngle, PI} from '../helpers/helpers.math.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\nimport {valueOrDefault, isArray, isFinite, callback as callCallback, isNullOrUndef} from '../helpers/helpers.core.js';\nimport {createContext, toFont, toPadding, toTRBLCorners} from '../helpers/helpers.options.js';\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\n\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n\n return {\n start: pos,\n end: pos + size\n };\n}\n\n/**\n * Helper function to fit a radial linear scale with point labels\n */\nfunction fitWithPointLabels(scale) {\n\n // Right, this is really confusing and there is a lot of maths going on here\n // The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n //\n // Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n //\n // Solution:\n //\n // We assume the radius of the polygon is half the size of the canvas at first\n // at each index we check if the text overlaps.\n //\n // Where it does, we store that angle and that index.\n //\n // After finding the largest index and angle we calculate how much we need to remove\n // from the shape radius to move the point inwards by that x.\n //\n // We average the left and right distances to get the maximum shape radius that can fit in the box\n // along with labels.\n //\n // Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n // on each side, removing that from the size, halving it and adding the left x protrusion width.\n //\n // This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n // and position it in the most space efficient manner\n //\n // https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\n // Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n // Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n\n // Now that text size is determined, compute the full positions\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\n\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\n\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const {extra, additionalAngle, padding, size} = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n // if to draw or overlapped\n visible: true,\n\n // Text position\n x: pointLabelPosition.x,\n y,\n\n // Text rendering data\n textAlign,\n\n // Bounding box\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\n\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const {left, top, right, bottom} = item;\n const apexesInArea = _isPointInArea({x: left, y: top}, area) || _isPointInArea({x: left, y: bottom}, area) ||\n _isPointInArea({x: right, y: top}, area) || _isPointInArea({x: right, y: bottom}, area);\n return !apexesInArea;\n}\n\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const {centerPointLabels, display} = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? PI / valueCount : 0\n };\n let area;\n\n for (let i = 0; i < valueCount; i++) {\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\n\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n\n return 'right';\n}\n\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\n\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\n\nfunction drawPointLabelBox(ctx, opts, item) {\n const {left, top, right, bottom} = item;\n const {backdropColor} = opts;\n\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(opts.borderRadius);\n const padding = toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\n\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n\n for (let i = labelCount - 1; i >= 0; i--) {\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n // overlapping\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign} = item;\n\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\n\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n // Draw circular arcs between the points\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n // Draw straight lines connecting each index\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n\n const {color, lineWidth} = gridLineOpts;\n\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash);\n ctx.lineDashOffset = borderOpts.dashOffset;\n\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\n\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\n\nexport default class RadialLinearScale extends LinearScaleBase {\n\n static id = 'radialLinear';\n\n /**\n * @type {any}\n */\n static defaults = {\n display: true,\n\n // Boolean - Whether to animate scaling the chart from the centre\n animate: true,\n position: 'chartArea',\n\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n\n grid: {\n circular: false\n },\n\n startAngle: 0,\n\n // label settings\n ticks: {\n // Boolean - Show a backdrop to the scale label\n showLabelBackdrop: true,\n\n callback: Ticks.formatters.numeric\n },\n\n pointLabels: {\n backdropColor: undefined,\n\n // Number - The backdrop padding above & below the label in pixels\n backdropPadding: 2,\n\n // Boolean - if true, show point labels\n display: true,\n\n // Number - Point label font size in pixels\n font: {\n size: 10\n },\n\n // Function - Used to convert point labels\n callback(label) {\n return label;\n },\n\n // Number - Additionl padding between scale and pointLabel\n padding: 5,\n\n // Boolean - if true, center point labels to slices in polar chart\n centerPointLabels: false\n }\n };\n\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.xCenter = undefined;\n /** @type {number} */\n this.yCenter = undefined;\n /** @type {number} */\n this.drawingArea = undefined;\n /** @type {string[]} */\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n\n setDimensions() {\n // Set the unconstrained dimension before label rotation\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n\n this.min = isFinite(min) && !isNaN(min) ? min : 0;\n this.max = isFinite(max) && !isNaN(max) ? max : 0;\n\n // Common base implementation to handle min, max, beginAtZero\n this.handleTickRangeOptions();\n }\n\n /**\n\t * Returns the maximum number of ticks based on the scale dimension\n\t * @protected\n\t */\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n\n // Point labels\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callCallback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n\n fit() {\n const opts = this.options;\n\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n\n // Take into account half font size + the yPadding of the top value\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n\n /**\n\t * @protected\n\t */\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n\n /**\n\t * @protected\n\t */\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid, border} = opts;\n const labelCount = this._pointLabels.length;\n\n let i, offset, position;\n\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0 || (index === 0 && this.min < 0)) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n\n if (angleLines.display) {\n ctx.save();\n\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n\n if (!lineWidth || !color) {\n continue;\n }\n\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n\n ctx.restore();\n }\n }\n\n /**\n\t * @protected\n\t */\n drawBorder() {}\n\n /**\n\t * @protected\n\t */\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n\n if (!tickOpts.display) {\n return;\n }\n\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n this.ticks.forEach((tick, index) => {\n if ((index === 0 && this.min >= 0) && !opts.reverse) {\n return;\n }\n\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth,\n });\n });\n\n ctx.restore();\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {}\n}\n","import adapters from '../core/core.adapters.js';\nimport {callback as call, isFinite, isNullOrUndef, mergeIf, valueOrDefault} from '../helpers/helpers.core.js';\nimport {toRadians, isNumber, _limitValue} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport {_arrayUnique, _filterBetween, _lookup} from '../helpers/helpers.collection.js';\n\n/**\n * @typedef { import('../core/core.adapters.js').TimeUnit } Unit\n * @typedef {{common: boolean, size: number, steps?: number}} Interval\n * @typedef { import('../core/core.adapters.js').DateAdapter } DateAdapter\n */\n\n/**\n * @type {Object}\n */\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\n\n/**\n * @type {Unit[]}\n */\nconst UNITS = /** @type Unit[] */ /* #__PURE__ */ (Object.keys(INTERVALS));\n\n/**\n * @param {number} a\n * @param {number} b\n */\nfunction sorter(a, b) {\n return a - b;\n}\n\n/**\n * @param {TimeScale} scale\n * @param {*} input\n * @return {number}\n */\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n\n if (typeof parser === 'function') {\n value = parser(value);\n }\n\n // Only parse if it's not a timestamp already\n if (!isFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, /** @type {Unit} */ (parser))\n : adapter.parse(value);\n }\n\n if (value === null) {\n return null;\n }\n\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n\n return +value;\n}\n\n/**\n * Figures out what unit results in an appropriate number of auto-generated ticks\n * @param {Unit} minUnit\n * @param {number} min\n * @param {number} max\n * @param {number} capacity\n * @return {object}\n */\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n\n return UNITS[ilen - 1];\n}\n\n/**\n * Figures out what unit to format a set of ticks with\n * @param {TimeScale} scale\n * @param {number} numTicks\n * @param {Unit} minUnit\n * @param {number} min\n * @param {number} max\n * @return {Unit}\n */\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\n/**\n * @param {Unit} unit\n * @return {object}\n */\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n\n/**\n * @param {object} ticks\n * @param {number} time\n * @param {number[]} [timestamps] - if defined, snap to these timestamps\n */\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n\n/**\n * @param {TimeScale} scale\n * @param {object[]} ticks\n * @param {object} map\n * @param {Unit} majorUnit\n * @return {object[]}\n */\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n\n/**\n * @param {TimeScale} scale\n * @param {number[]} values\n * @param {Unit|undefined} [majorUnit]\n * @return {object[]}\n */\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n /** @type {Object} */\n const map = {};\n const ilen = values.length;\n let i, value;\n\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n\n ticks.push({\n value,\n major: false\n });\n }\n\n // We set the major ticks separately from the above loop because calling startOf for every tick\n // is expensive when there is a large number of ticks\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nexport default class TimeScale extends Scale {\n\n static id = 'time';\n\n /**\n * @type {any}\n */\n static defaults = {\n /**\n * Scale boundary strategy (bypassed by min/max time options)\n * - `data`: make sure data are fully visible, ticks outside are removed\n * - `ticks`: make sure ticks are fully visible, data outside are truncated\n * @see https://github.com/chartjs/Chart.js/pull/4556\n * @since 2.7.0\n */\n bounds: 'data',\n\n adapters: {},\n time: {\n parser: false, // false == a pattern string from or a custom callback that converts its argument to a timestamp\n unit: false, // false == automatic or override with week, month, year, etc.\n round: false, // none, or override with week, month, year, etc.\n isoWeekday: false, // override week start day\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n /**\n * Ticks generation input values:\n * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n * - 'labels': generates ticks from user given `data.labels` values ONLY.\n * @see https://github.com/chartjs/Chart.js/pull/4507\n * @since 2.7.0\n */\n source: 'auto',\n\n callback: false,\n\n major: {\n enabled: false\n }\n }\n };\n\n /**\n\t * @param {object} props\n\t */\n constructor(props) {\n super(props);\n\n /** @type {{data: number[], labels: number[], all: number[]}} */\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n\n /** @type {Unit} */\n this._unit = 'day';\n /** @type {Unit=} */\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n /** @type {DateAdapter} */\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n\n adapter.init(opts);\n\n // Backward compatibility: before introducing adapter, `displayFormats` was\n // supposed to contain *all* unit/string pairs but this can't be resolved\n // when loading the scale (adapters are loaded afterward), so let's populate\n // missing formats on update\n mergeIf(time.displayFormats, adapter.formats());\n\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n\n super.init(scaleOpts);\n\n this._normalized = opts.normalized;\n }\n\n /**\n\t * @param {*} raw\n\t * @param {number?} [index]\n\t * @return {number}\n\t */\n parse(raw, index) { // eslint-disable-line no-unused-vars\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n // eslint-disable-next-line prefer-const\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n\n /**\n\t\t * @param {object} bounds\n\t\t */\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n\n // If we have user provided `min` and `max` labels / data bounds can be ignored\n if (!minDefined || !maxDefined) {\n // Labels are always considered, when user did not force bounds\n _applyBounds(this._getLabelBounds());\n\n // If `bounds` is `'ticks'` and `ticks.source` is `'labels'`,\n // data bounds are ignored (and don't need to be determined)\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n\n min = isFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n\n // Make sure that max is strictly higher than min (required by the timeseries lookup table)\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n\n /**\n\t * @private\n\t */\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n\n /**\n\t * @return {object[]}\n\t */\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n\n const min = this.min;\n const max = this.max;\n\n const ticks = _filterBetween(timestamps, min, max);\n\n // PRIVATE\n // determineUnitForFormatting relies on the number of ticks so we don't use it when\n // autoSkip is enabled because we don't yet know what the final number of ticks will be\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n\n if (options.reverse) {\n ticks.reverse();\n }\n\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n\n afterAutoSkip() {\n // Offsets for bar charts need to be handled with the auto skipped\n // ticks. Once ticks have been skipped, we re-compute the offsets.\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n\n /**\n\t * Returns the start and end offsets from edges in the form of {start, end}\n\t * where each value is a relative width to the scale and ranges between 0 and 1.\n\t * They add extra margins on the both sides by scaling down the original scale.\n\t * Offsets are added when the `offset` option is true.\n\t * @param {number[]} timestamps\n\t * @protected\n\t */\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n\n /**\n\t * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n\t * `minor` unit using the given scale time `options`.\n\t * Important: this method can return ticks outside the min and max range, it's the\n\t * responsibility of the calling code to clamp values if needed.\n\t * @protected\n\t */\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n // @ts-ignore\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n\n // For 'week' unit, handle the first day of week option\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n\n // Align first ticks on unit\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n\n // Prevent browser from freezing in case user options request millions of milliseconds\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n\n // @ts-ignore\n return Object.keys(ticks).sort(sorter).map(x => +x);\n }\n\n /**\n\t * @param {number} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n\n /**\n\t * @param {number} value\n\t * @param {string|undefined} format\n\t * @return {string}\n\t */\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n\n /**\n\t * Function to format an individual tick mark\n\t * @param {number} time\n\t * @param {number} index\n\t * @param {object[]} ticks\n\t * @param {string|undefined} [format]\n\t * @return {string}\n\t * @private\n\t */\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n\n if (formatter) {\n return call(formatter, [time, index, ticks], this);\n }\n\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n\n /**\n\t * @param {object[]} ticks\n\t */\n generateTickLabels(ticks) {\n let i, ilen, tick;\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n\n /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n\n /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n\n /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n\n /**\n\t * @param {string} label\n\t * @return {{w:number, h:number}}\n\t * @private\n\t */\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n\n /**\n\t * @param {number} exampleTime\n\t * @return {number}\n\t * @private\n\t */\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n\n // pick the longest format (milliseconds) for guesstimation\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n // subtract 1 - if offset then there's one less label than tick\n // if not offset then one half label padding is added to each end leaving room for one less label\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n\n /**\n\t * @protected\n\t */\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n const metas = this.getMatchingVisibleMetas();\n\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n\n return (this._cache.data = this.normalize(timestamps));\n }\n\n /**\n\t * @protected\n\t */\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n\n /**\n\t * @param {number[]} values\n\t * @protected\n\t */\n normalize(values) {\n // It seems to be somewhat faster to do sorting first\n return _arrayUnique(values.sort(sorter));\n }\n}\n","import TimeScale from './scale.time.js';\nimport {_lookupByKey} from '../helpers/helpers.collection.js';\n\n/**\n * Linearly interpolates the given source `val` using the table. If value is out of bounds, values\n * at edges are used for the interpolation.\n * @param {object} table\n * @param {number} val\n * @param {boolean} [reverse] lookup time based on position instead of vice versa\n * @return {object}\n */\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\n\nclass TimeSeriesScale extends TimeScale {\n\n static id = 'timeseries';\n\n /**\n * @type {any}\n */\n static defaults = TimeScale.defaults;\n\n /**\n\t * @param {object} props\n\t */\n constructor(props) {\n super(props);\n\n /** @type {object[]} */\n this._table = [];\n /** @type {number} */\n this._minPos = undefined;\n /** @type {number} */\n this._tableRange = undefined;\n }\n\n /**\n\t * @protected\n\t */\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n\n /**\n\t * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\n\t * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\n\t * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\n\t * extremity (left + width or top + height). Note that it would be more optimized to directly\n\t * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\n\t * to create the lookup table. The table ALWAYS contains at least two items: min and max.\n\t * @param {number[]} timestamps\n\t * @return {object[]}\n\t * @protected\n\t */\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n\n if (items.length < 2) {\n // In case there is less that 2 timestamps between min and max, the scale is defined by min and max\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n\n // only add points that breaks the scale linearity\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n\n /**\n * Generates all timestamps defined in the data.\n * Important: this method can return ticks outside the min and max range, it's the\n * responsibility of the calling code to clamp values if needed.\n * @protected\n */\n _generate() {\n const min = this.min;\n const max = this.max;\n let timestamps = super.getDataTimestamps();\n if (!timestamps.includes(min) || !timestamps.length) {\n timestamps.splice(0, 0, min);\n }\n if (!timestamps.includes(max) || timestamps.length === 1) {\n timestamps.push(max);\n }\n return timestamps.sort((a, b) => a - b);\n }\n\n /**\n\t * Returns all timestamps\n\t * @return {number[]}\n\t * @private\n\t */\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n\n if (timestamps.length) {\n return timestamps;\n }\n\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n // If combining labels and data (data might not contain all labels),\n // we need to recheck uniqueness and sort\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n\n return timestamps;\n }\n\n /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n\n /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nexport default TimeSeriesScale;\n","export * from './controllers/index.js';\nexport * from './core/index.js';\nexport * from './elements/index.js';\nexport * from './platform/index.js';\nexport * from './plugins/index.js';\nexport * from './scales/index.js';\n\nimport * as controllers from './controllers/index.js';\nimport * as elements from './elements/index.js';\nimport * as plugins from './plugins/index.js';\nimport * as scales from './scales/index.js';\n\nexport {\n controllers,\n elements,\n plugins,\n scales,\n};\n\nexport const registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n","import type { MouseEvent } from 'react';\nimport type {\n ChartType,\n ChartData,\n DefaultDataPoint,\n ChartDataset,\n ChartOptions,\n Chart,\n} from 'chart.js';\n\nimport type { ForwardedRef } from './types.js';\n\nconst defaultDatasetIdKey = 'label';\n\nexport function reforwardRef(ref: ForwardedRef, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nexport function setOptions<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(chart: Chart, nextOptions: ChartOptions) {\n const options = chart.options;\n\n if (options && nextOptions) {\n Object.assign(options, nextOptions);\n }\n}\n\nexport function setLabels<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextLabels: TLabel[] | undefined\n) {\n currentData.labels = nextLabels;\n}\n\nexport function setDatasets<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextDatasets: ChartDataset[],\n datasetIdKey = defaultDatasetIdKey\n) {\n const addedDatasets: ChartDataset[] = [];\n\n currentData.datasets = nextDatasets.map(\n (nextDataset: Record) => {\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find(\n (dataset: Record) =>\n dataset[datasetIdKey] === nextDataset[datasetIdKey]\n );\n\n // There is no original to update, so simply add new one\n if (\n !currentDataset ||\n !nextDataset.data ||\n addedDatasets.includes(currentDataset)\n ) {\n return { ...nextDataset } as ChartDataset;\n }\n\n addedDatasets.push(currentDataset);\n\n Object.assign(currentDataset, nextDataset);\n\n return currentDataset;\n }\n );\n}\n\nexport function cloneData<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(data: ChartData, datasetIdKey = defaultDatasetIdKey) {\n const nextData: ChartData = {\n labels: [],\n datasets: [],\n };\n\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n\n return nextData;\n}\n\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getDatasetAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'dataset',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'nearest',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementsAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'index',\n { intersect: true },\n false\n );\n}\n","import React, { useEffect, useRef, forwardRef } from 'react';\nimport { Chart as ChartJS } from 'chart.js';\nimport type { ChartType, DefaultDataPoint } from 'chart.js';\n\nimport type { ForwardedRef, ChartProps, BaseChartComponent } from './types.js';\nimport {\n reforwardRef,\n cloneData,\n setOptions,\n setLabels,\n setDatasets,\n} from './utils.js';\n\nfunction ChartComponent<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n props: ChartProps,\n ref: ForwardedRef>\n) {\n const {\n height = 150,\n width = 300,\n redraw = false,\n datasetIdKey,\n type,\n data,\n options,\n plugins = [],\n fallbackContent,\n updateMode,\n ...canvasProps\n } = props as ChartProps;\n const canvasRef = useRef(null);\n const chartRef = useRef();\n\n const renderChart = () => {\n if (!canvasRef.current) return;\n\n chartRef.current = new ChartJS(canvasRef.current, {\n type,\n data: cloneData(data, datasetIdKey),\n options: options && { ...options },\n plugins,\n });\n\n reforwardRef(ref, chartRef.current);\n };\n\n const destroyChart = () => {\n reforwardRef(ref, null);\n\n if (chartRef.current) {\n chartRef.current.destroy();\n chartRef.current = null;\n }\n };\n\n useEffect(() => {\n if (!redraw && chartRef.current && options) {\n setOptions(chartRef.current, options);\n }\n }, [redraw, options]);\n\n useEffect(() => {\n if (!redraw && chartRef.current) {\n setLabels(chartRef.current.config.data, data.labels);\n }\n }, [redraw, data.labels]);\n\n useEffect(() => {\n if (!redraw && chartRef.current && data.datasets) {\n setDatasets(chartRef.current.config.data, data.datasets, datasetIdKey);\n }\n }, [redraw, data.datasets]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n if (redraw) {\n destroyChart();\n setTimeout(renderChart);\n } else {\n chartRef.current.update(updateMode);\n }\n }, [redraw, options, data.labels, data.datasets, updateMode]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n destroyChart();\n setTimeout(renderChart);\n }, [type]);\n\n useEffect(() => {\n renderChart();\n\n return () => destroyChart();\n }, []);\n\n return (\n \n {fallbackContent}\n \n );\n}\n\nexport const Chart = forwardRef(ChartComponent) as BaseChartComponent;\n","import React, { forwardRef } from 'react';\nimport {\n Chart as ChartJS,\n LineController,\n BarController,\n RadarController,\n DoughnutController,\n PolarAreaController,\n BubbleController,\n PieController,\n ScatterController,\n} from 'chart.js';\nimport type { ChartType, ChartComponentLike } from 'chart.js';\n\nimport type {\n ChartProps,\n ChartJSOrUndefined,\n TypedChartComponent,\n} from './types.js';\nimport { Chart } from './chart.js';\n\nfunction createTypedChart(\n type: T,\n registerables: ChartComponentLike\n) {\n ChartJS.register(registerables);\n\n return forwardRef, Omit, 'type'>>(\n (props, ref) => \n ) as TypedChartComponent;\n}\n\nexport const Line = /* #__PURE__ */ createTypedChart('line', LineController);\n\nexport const Bar = /* #__PURE__ */ createTypedChart('bar', BarController);\n\nexport const Radar = /* #__PURE__ */ createTypedChart('radar', RadarController);\n\nexport const Doughnut = /* #__PURE__ */ createTypedChart(\n 'doughnut',\n DoughnutController\n);\n\nexport const PolarArea = /* #__PURE__ */ createTypedChart(\n 'polarArea',\n PolarAreaController\n);\n\nexport const Bubble = /* #__PURE__ */ createTypedChart(\n 'bubble',\n BubbleController\n);\n\nexport const Pie = /* #__PURE__ */ createTypedChart('pie', PieController);\n\nexport const Scatter = /* #__PURE__ */ createTypedChart(\n 'scatter',\n ScatterController\n);\n","import React, { useEffect, useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport './instructorhome.css';\r\nimport InstructorSidebar from './InstructorSidebar';\r\nimport InstructoreHeader from './InstructoreHeader';\r\nimport { Line } from \"react-chartjs-2\";\r\nimport { Chart, registerables } from \"chart.js\";\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\nChart.register(...registerables);\r\n\r\nconst InstructorProgressTracking = () => {\r\n const [isloading, setIsLoading] = useState(false);\r\n \r\n const [myCourses, setmyCourses] = useState('')\r\n const [myProgress, setmyProgress] = useState('')\r\n\r\n const getmyCourses = () => {\r\n let getRes = (res) => {\r\n setmyCourses(res?.data?.courses);\r\n };\r\n\r\n callApi(\"GET\", routes.myCourses, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const getMyProgress = () => {\r\n callApi(\"GET\", routes.getallprogress, null, setIsLoading, (res) => {\r\n if (res?.data) {\r\n const response = res.data;\r\n const months = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'];\r\n const transformedData = {\r\n labels: months,\r\n datasets: [\r\n {\r\n label: 'Total Course',\r\n data: months.map(month => response.coursesPerMonth[month]),\r\n borderColor: '#007BFF',\r\n backgroundColor: '#007BFF',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n {\r\n label: 'Total Students Enroll',\r\n data: months.map(month => response.enrollmentsPerMonth[month]),\r\n borderColor: '#292D30',\r\n backgroundColor: '#292D30',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n ],\r\n };\r\n setData(transformedData);\r\n setmyProgress(response);\r\n }\r\n }, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n getmyCourses();\r\n getMyProgress();\r\n }, []);\r\n // Default data and options\r\n const defaultData = {\r\n labels: ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL'],\r\n datasets: [\r\n {\r\n label: 'Total Course',\r\n data: [4, 6, 4, 11, 8, 9, 5, 6],\r\n borderColor: '#007BFF',\r\n backgroundColor: '#007BFF',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n {\r\n label: 'Total Students Enroll',\r\n data: [8, 7, 9, 5, 7, 5, 7],\r\n borderColor: '#292D30',\r\n backgroundColor: '#292D30',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n ],\r\n };\r\n const plugin = {\r\n beforeInit(chart) {\r\n \r\n const originalFit = chart.legend.fit;\r\n chart.legend.fit = function fit() {\r\n originalFit.bind(chart.legend)();\r\n this.height += 20;\r\n };\r\n }\r\n };\r\n const defaultOptions = {\r\n \r\n scales: {\r\n \r\n y: {\r\n beginAtZero: true,\r\n \r\n },\r\n \r\n },\r\n plugins: {\r\n legend: {\r\n position: 'top',\r\n align: 'start',\r\n labels: {\r\n color: '#7E7E7E',\r\n font: {\r\n size: 13,\r\n \r\n },\r\n useBorderRadius: true,\r\n borderRadius: 3,\r\n boxWidth: 13,\r\n \r\n },\r\n },\r\n },\r\n \r\n };\r\n\r\n // Options for the dropdown\r\n const selectOptions = ['Year', 'Month', 'Week'];\r\n\r\n // State to manage selected option and data\r\n const [selectedOption, setSelectedOption] = useState('Month');\r\n const [data, setData] = useState(defaultData);\r\n const [options, setOptions] = useState(defaultOptions);\r\n\r\n // Function to handle option selection\r\n const handleOptionSelect = (option) => {\r\n setSelectedOption(option);\r\n\r\n // Update data and options based on the selected option\r\n switch (option) {\r\n case 'Year':\r\n setData({\r\n labels: ['2015', '2016', '2017', '2018', '2019', '2020', '2021','2022','2023','2024'],\r\n datasets: [\r\n {\r\n label: 'Total Course',\r\n data: [20, 10, 30, 3, 9, 15, 50,34,22,42],\r\n borderColor: '#007BFF',\r\n backgroundColor: '#007BFF',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n {\r\n label: 'Total Students Enroll',\r\n data: [35, 40,50,34,22,42,10, 30, 3,25],\r\n borderColor: '#292D30',\r\n backgroundColor: '#292D30',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n ],\r\n });\r\n break;\r\n case 'Month':\r\n setData(defaultData); // Set back to default data\r\n break;\r\n case 'Week':\r\n setData({\r\n labels: ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'],\r\n datasets: [\r\n {\r\n label: 'Total Course',\r\n data: [10, 17, 4, 6, 11, 2, 20],\r\n borderColor: '#007BFF',\r\n backgroundColor: '#007BFF',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n {\r\n label: 'Total Students Enroll',\r\n data: [15, 6, 11, 2, 20, 7,10],\r\n borderColor: '#292D30',\r\n backgroundColor: '#292D30',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n ],\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return (\r\n <>\r\n

\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

Progress Tracking

\r\n
\r\n
\r\n {myCourses && myCourses.slice(0, 5).map((course, index) => (
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
{course?.title}
\r\n \r\n
\r\n \r\n {course?.level}\r\n \r\n
\r\n
\r\n
\r\n ${course?.price} \r\n 3 Month Course\r\n
\r\n
\r\n
\r\n
\r\n
))}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{myProgress?.totalCourses}
\r\n
Total Course
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{myProgress?.totalStudents}
\r\n
Total Students Enroll
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*
\r\n \r\n \r\n
*/}\r\n
\r\n
Activities
\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default InstructorProgressTracking;\r\n","import { Link, useNavigate } from 'react-router-dom';\r\nimport './instructorhome.css';\r\nimport InstructorSidebar from './InstructorSidebar';\r\nimport InstructoreHeader from './InstructoreHeader';\r\nimport React, { useEffect, useState } from 'react'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons';\r\nimport OtpInput from 'react-otp-input';\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\nimport { S3 } from \"aws-sdk\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst countryCode = {\r\n Australia: \"AU\",\r\n Austria: \"AT\",\r\n Belgium: \"BE\",\r\n Brazil: \"BR\",\r\n Bulgaria: \"BG\",\r\n Canada: \"CA\",\r\n Croatia: \"HR\",\r\n Cyprus: \"CY\",\r\n \"Czech Republic\": \"CZ\",\r\n Denmark: \"DK\",\r\n Estonia: \"EE\",\r\n Finland: \"FI\",\r\n France: \"FR\",\r\n Germany: \"DE\",\r\n Greece: \"GR\",\r\n \"Hong Kong\": \"HK\",\r\n Hungary: \"HU\",\r\n Ireland: \"IE\",\r\n Italy: \"IT\",\r\n Japan: \"JP\",\r\n Latvia: \"LV\",\r\n Lithuania: \"LT\",\r\n Luxembourg: \"LU\",\r\n Malta: \"MT\",\r\n Mexico: \"MX\",\r\n Netherlands: \"NL\",\r\n \"New Zealand\": \"NZ\",\r\n Norway: \"NO\",\r\n Poland: \"PL\",\r\n Portugal: \"PT\",\r\n Romania: \"RO\",\r\n Singapore: \"SG\",\r\n Slovakia: \"SK\",\r\n Slovenia: \"SI\",\r\n Spain: \"ES\",\r\n Sweden: \"SE\",\r\n Switzerland: \"CH\",\r\n Thailand: \"TH\",\r\n \"United Kingdom\": \"GB\",\r\n \"United States\": \"US\"\r\n};\r\nconst InstructorSettings = ({ setuserlogged }) => {\r\n const [profile, setProfile] = useState('');\r\n \r\n\r\n const loggedInUser = localStorage.getItem('loggedInUser');\r\n const storedUserData = localStorage.getItem('userData');\r\n const [userData, setUserData] = useState(storedUserData ? JSON.parse(storedUserData) : null);\r\n const [newName, setNewName] = useState('');\r\n const [newAddress, setNewAddress] = useState('');\r\n const [newDescription, setNewDescription] = useState('');\r\n const [newWhatsApp, setNewWhatsApp] = useState('');\r\n const [newFacebook, setNewFacebook] = useState('');\r\n const [newTwitter, setNewTwitter] = useState('');\r\n const [newInstagram, setNewInstagram] = useState('');\r\n const [newWebsite, setNewWebsite] = useState('');\r\n const [profileCountry, setProfileCountry] = useState('');\r\n\r\n \r\n\r\n const [isloading, setIsLoading] = useState(false);\r\n const [currentpassword, setcurrentPassword] = useState('');\r\n const [showcurrentPassword, setShowcurrentPassword] = useState(false);\r\n const [deleteaccountpassword, setdeleteaccountPassword] = useState('');\r\n const [showdeleteaccountPassword, setShowdeleteaccountPassword] = useState(false);\r\n const [newpassword, setnewPassword] = useState('');\r\n const [shownewPassword, setShownewPassword] = useState(false);\r\n const [confirmnewpassword, setconfirmnewPassword] = useState('');\r\n const [showconfirmnewPassword, setShowconfirmnewPassword] = useState(false);\r\n const [terms, setTerms] = useState('');\r\n const [about, setAbout] = useState('');\r\n const [policy, setPolicy] = useState('');\r\n const [addBank, setAddBank] = useState('');\r\n\r\n const [deleteaccountotp, setdeleteaccountotp] = useState(false)\r\n // const [userlogged, setuserlogged] = useState(localStorage.getItem('loggedInUser'))\r\n const [avatar, setAvatar] = useState(null);\r\n const [isNotifications, setIsNotifications] = useState(false);\r\n const getProfile = () => {\r\n let getRes = (res) => {\r\n setProfile(res?.data?.doc);\r\n setNewName(res?.data?.doc?.fullName);\r\n setNewAddress(res?.data?.doc?.location?.address);\r\n setNewDescription(res?.data?.doc?.description)\r\n setAvatar(res?.data?.doc?.avatar);\r\n setNewWhatsApp(res?.data?.doc?.socialMediaLinks?.[0]?.whatsApp);\r\n setNewFacebook(res?.data?.doc?.socialMediaLinks?.[0]?.facebook);\r\n setNewTwitter(res?.data?.doc?.socialMediaLinks?.[0]?.twitter);\r\n setNewInstagram(res?.data?.doc?.socialMediaLinks?.[0]?.instagram);\r\n setNewWebsite(res?.data?.doc?.socialMediaLinks?.[0]?.website);\r\n setIsNotifications(res?.data?.doc?.isNotifications);\r\n setSelectedCountry(res?.data?.doc?.country);\r\n setProfileCountry(res?.data?.doc?.country);\r\n\r\n };\r\n \r\n callApi(\"GET\", routes.profile, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const getTerms = () => {\r\n let getRes = (res) => {\r\n setTerms(res?.data?.docs);\r\n };\r\n \r\n callApi(\"GET\", routes.terms, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const getAboutUS = () => {\r\n let getRes = (res) => {\r\n setAbout(res?.data?.docs);\r\n };\r\n \r\n callApi(\"GET\", routes.aboutUs, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const getPolicy = () => {\r\n let getRes = (res) => {\r\n setPolicy(res?.data?.docs);\r\n };\r\n \r\n callApi(\"GET\", routes.policy, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n\r\n const getAddBank = () => {\r\n let getRes = (res) => {\r\n setAddBank(res);\r\n console.log(res);\r\n if (res.status === 'success' && res.data && res.data.accountUrl) {\r\n window.location.href = res.data.accountUrl.url;\r\n }\r\n };\r\n \r\n callApi(\"GET\", routes.addBankDetails, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n // console.log(detail);\r\n getProfile();\r\n getTerms();\r\n getAboutUS();\r\n getPolicy();\r\n }, []);\r\n const handleNameChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewName(newValue); \r\n };\r\n const handleAddressChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewAddress(newValue); \r\n};\r\nconst handleDescriptionChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewDescription(newValue); \r\n};\r\nconst handleWhatsAppChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewWhatsApp(newValue); \r\n};\r\nconst handleFacebookChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewFacebook(newValue); \r\n};\r\nconst handleTwitterChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewTwitter(newValue); \r\n};\r\nconst handleInstagramChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewInstagram(newValue); \r\n};\r\nconst handleWebsiteChange = (e) => {\r\n const newValue = e.target.value;\r\n setNewWebsite(newValue); \r\n};\r\nconst handleFileInputChange = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n const fileUrl = await uploadImageOnS3(file);\r\n setAvatar(fileUrl)\r\n console.log(fileUrl)\r\n }\r\n};\r\nconst uploadImageOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setAvatar(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n};\r\nconst handleSwitchChange = (event) => {\r\n const newValue = event.target.checked;\r\n setIsNotifications(newValue);\r\n // console.log(\"isNotifications:\", newValue);\r\n};\r\nconst updateInstructorProfile = async () => {\r\n if (!newName) {\r\n alert(\"Please put Name\");\r\n return;\r\n }\r\n\r\n if (!newWhatsApp) {\r\n alert(\"Please put Whatsapp Link\");\r\n return;\r\n }\r\n\r\n if (!newFacebook) {\r\n alert(\"Please put Facebook Link\");\r\n return;\r\n }\r\n if (!newTwitter) {\r\n alert(\"Please put Twitter Link\");\r\n return;\r\n }\r\n if (!newInstagram) {\r\n alert(\"Please put Instagram Link\");\r\n return;\r\n }\r\n if (!newAddress) {\r\n alert(\"Please add Address\");\r\n return;\r\n }\r\n if (!selectedCountry) {\r\n alert(\"Please add Country\");\r\n return;\r\n }\r\n let getRes = (res) => {\r\n if (res.statusCode === 200 ) {\r\n getProfile();\r\n toast.success(\"Profile Updated Successfully\", {\r\n autoClose: 1500\r\n });\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n // setShowModal(false);\r\n };\r\n // console.log(avatar);\r\n let body = {\r\n fullName: newName,\r\n avatar: avatar,\r\n location: {\r\n type: \"Point\",\r\n coordinates: [72.343361, 31.04668],\r\n address: newAddress,\r\n // description: \"Burewala\"\r\n },\r\n description: newDescription,\r\n socialMediaLinks: [{\r\n whatsApp: newWhatsApp,\r\n facebook: newFacebook,\r\n twitter: newTwitter,\r\n instagram: newInstagram,\r\n website: newWebsite\r\n }],\r\n isNotifications: isNotifications,\r\n country: selectedCountry,\r\n };\r\nconsole.log(body);\r\n callApi(\"PATCH\",routes.editProfile,body,setIsLoading,getRes,(error) => {\r\n console.log(\"error\", error);\r\n });\r\n};\r\nconst updateTrainerProfile = async () => {\r\n if (!newName) {\r\n alert(\"Please put Name\");\r\n return;\r\n }\r\n\r\n if (!newAddress) {\r\n alert(\"Please add Address\");\r\n return;\r\n }\r\n\r\n let getRes = (res) => {\r\n if (res.statusCode === 200 ) {\r\n getProfile();\r\n toast.success(\"Profile Updated Successfully\", {\r\n autoClose: 1500\r\n });\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n // setShowModal(false);\r\n };\r\n // console.log(avatar);\r\n let body = {\r\n fullName: newName,\r\n avatar: avatar,\r\n location: {\r\n type: \"Point\",\r\n coordinates: [72.343361, 31.04668],\r\n address: newAddress,\r\n // description: \"Burewala\"\r\n },\r\n description: newDescription,\r\n \r\n isNotifications: isNotifications,\r\n };\r\nconsole.log(body);\r\n callApi(\"PATCH\",routes.editProfile,body,setIsLoading,getRes,(error) => {\r\n console.log(\"error\", error);\r\n });\r\n};\r\n // const handleFileInputChange = (e) => {\r\n // const file = e.target.files[0];\r\n // if (file) {\r\n // const reader = new FileReader();\r\n // reader.onloadend = () => {\r\n // setAvatar(reader.result);\r\n // };\r\n // reader.readAsDataURL(file);\r\n // }\r\n // };\r\n const handleDeleteAccountSendOtp = () => {\r\n \r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n\r\n toast.success(res.message, {\r\n autoClose: 1500,\r\n onClose: () => {\r\n setdeleteaccountotp(true);\r\n setDeleteAccount(false);\r\n\t\t\t\t }\r\n });\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n let body = {\r\n password: deleteaccountpassword,\r\n };\r\n callApi(\"POST\", routes.otpForDeletedMe, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const handledeleteaccountotp = (e) =>{\r\n e.preventDefault();\r\n handleDeleteAccountSendOtp()\r\n }\r\n const navigate = useNavigate();\r\n const handleChangedeleteaccountPassword = (e) => {\r\n setdeleteaccountPassword(e.target.value);\r\n };\r\n const toggledeleteaccountPasswordVisibility = () => {\r\n setShowdeleteaccountPassword(!showdeleteaccountPassword);\r\n };\r\n const handleChangecurrentPassword = (e) => {\r\n setcurrentPassword(e.target.value);\r\n };\r\n const togglecurrentPasswordVisibility = () => {\r\n setShowcurrentPassword(!showcurrentPassword);\r\n };\r\n const handleChangenewPassword = (e) => {\r\n setnewPassword(e.target.value);\r\n };\r\n const togglenewPasswordVisibility = () => {\r\n setShownewPassword(!shownewPassword);\r\n };\r\n const handleChangeconfirmnewPassword = (e) => {\r\n setconfirmnewPassword(e.target.value);\r\n };\r\n const toggleconfirmnewPasswordVisibility = () => {\r\n setShowconfirmnewPassword(!showconfirmnewPassword);\r\n };\r\n const updatePassword = async () => {\r\n \r\n let getRes = (res) => {\r\n if (res.statusCode === 200 ) {\r\n setShowModal(true);\r\n localStorage.setItem(\"userData\", null);\r\n localStorage.setItem(\"accessToken\", \"\");\r\n localStorage.setItem(\"refreshToken\", \"\");\r\n setUserData([]);\r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n // setShowModal(false);\r\n };\r\n let body = {\r\n currentPassword: currentpassword,\r\n newPassword: newpassword,\r\n }\r\n \r\n callApi(\"PATCH\",routes.changePassword,body,setIsLoading,getRes,(error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const handlePasswordSuccessful = () => {\r\n if (newpassword === confirmnewpassword && newpassword!== currentpassword) {\r\n // setShowModal(true);\r\n updatePassword();\r\n } else {\r\n alert(\"Passwords do not match or choose another password. Please try again.\");\r\n }\r\n };\r\n \r\n \r\n const [showModal, setShowModal] = useState(false);\r\n const [otp, setOtp] = useState('');\r\n const [inputStyle, setInputStyle] = useState({\r\n width: '90px',\r\n height: '72px',\r\n fontSize: '24px',\r\n margin: '0 10px',\r\n textAlign: 'center',\r\n borderRadius: '8px',\r\n border: '1px solid #E2E2E2',\r\n backgroundColor: '#FAFAFA',\r\n color: '#1D191C',\r\n fontWeight: '700'\r\n });\r\n \r\n\r\n\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n const width = window.innerWidth;\r\n if (width <= 768) {\r\n setInputStyle({\r\n width: '70px',\r\n height: '52px',\r\n fontSize: '18px',\r\n margin: '0 5px',\r\n textAlign: 'center',\r\n borderRadius: '8px',\r\n border: '1px solid #E2E2E2',\r\n backgroundColor: '#FAFAFA',\r\n color: '#1D191C',\r\n fontWeight: '700'\r\n });\r\n } else if (width <= 576) {\r\n setInputStyle({\r\n width: '50px',\r\n height: '40px',\r\n fontSize: '14px',\r\n margin: '0 3px',\r\n textAlign: 'center',\r\n borderRadius: '8px',\r\n border: '1px solid #E2E2E2',\r\n backgroundColor: '#FAFAFA',\r\n color: '#1D191C',\r\n fontWeight: '700'\r\n });\r\n } else {\r\n setInputStyle({\r\n width: '90px',\r\n height: '72px',\r\n fontSize: '24px',\r\n margin: '0 10px',\r\n textAlign: 'center',\r\n borderRadius: '8px',\r\n border: '1px solid #E2E2E2',\r\n backgroundColor: '#FAFAFA',\r\n color: '#1D191C',\r\n fontWeight: '700'\r\n });\r\n }\r\n };\r\n \r\n handleResize();\r\n window.addEventListener('resize', handleResize);\r\n \r\n let timer;\r\n if (showModal) {\r\n timer = setTimeout(() => {\r\n setShowModal(false);\r\n navigate('/login');\r\n setuserlogged(false);\r\n }, 2000);\r\n }\r\n \r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n clearTimeout(timer);\r\n };\r\n }, [showModal, setInputStyle]); // Make sure to add setInputStyle as a dependency if it's coming from props or state\r\n \r\n const handleChange = (otp) => {\r\n setOtp(otp);\r\n };\r\n const [countdown, setCountdown] = useState(60);\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n\r\n useEffect(() => {\r\n if (countdown === 0) {\r\n setIsDisabled(false);\r\n return;\r\n }\r\n\r\n const timer = setInterval(() => {\r\n setCountdown(prevCountdown => prevCountdown - 1);\r\n }, 1000);\r\n\r\n return () => clearInterval(timer);\r\n }, [countdown]);\r\n\r\n const handleResendCode = (e) => {\r\n e.preventDefault();\r\n\r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n\r\n toast.success(res.message, {\r\n autoClose: 1500,\r\n \r\n });\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n let body = {\r\n email: profile?.email,\r\n \r\n };\r\n callApi(\"POST\", routes.resendOtp, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n\r\n // Restart the countdown\r\n setCountdown(60);\r\n setIsDisabled(true);\r\n };\r\n const [showModalDeleteAccount, setShowModalDeleteAccount] = useState(false);\r\n const handleDeleteAccountSuccessful = async () => {\r\n \r\n let getRes = (res) => {\r\n if (res.statusCode === 200 ) {\r\n setShowModalDeleteAccount(true);\r\n localStorage.setItem(\"userData\", null);\r\n localStorage.setItem(\"accessToken\", \"\");\r\n localStorage.setItem(\"refreshToken\", \"\");\r\n setUserData([]);\r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n // setShowModal(false);\r\n };\r\n let body = {\r\n otp: otp,\r\n \r\n }\r\n\r\n callApi(\"DELETE\",routes.deleteMe,body,setIsLoading,getRes,(error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n let timer;\r\n if (showModalDeleteAccount) {\r\n timer = setTimeout(() => {\r\n handleContinue();\r\n }, 2000);\r\n }\r\n return () => clearTimeout(timer);\r\n }, [showModalDeleteAccount]);\r\nconst [EditProfile, setEditProfile] = useState(true);\r\nconst [Notification, setNotification] = useState(false);\r\nconst [ChangePassword, setChangePassword] = useState(false);\r\nconst [TermsService, setTermsService] = useState(false);\r\nconst [AboutUs, setAboutUs] = useState(false);\r\nconst [PrivacyPolicy, setPrivacyPolicy] = useState(false);\r\nconst [ContactUs, setContactUs] = useState(false);\r\nconst [DeleteAccount, setDeleteAccount] = useState(false);\r\nconst handleeditprofile = () =>{\r\n setEditProfile(true);\r\n setNotification(false);\r\n setChangePassword(false);\r\n setTermsService(false);\r\n setAboutUs(false);\r\n setPrivacyPolicy(false);\r\n setContactUs(false);\r\n setDeleteAccount(false);\r\n setdeleteaccountotp(false);\r\n}\r\nconst handlenotification = () =>{\r\n setEditProfile(false);\r\n setNotification(true);\r\n setChangePassword(false);\r\n setTermsService(false);\r\n setAboutUs(false);\r\n setPrivacyPolicy(false);\r\n setContactUs(false);\r\n setDeleteAccount(false);\r\n setdeleteaccountotp(false);\r\n\r\n}\r\nconst handlechangepassword = () =>{\r\n setEditProfile(false);\r\n setNotification(false);\r\n setChangePassword(true);\r\n setTermsService(false);\r\n setAboutUs(false);\r\n setPrivacyPolicy(false);\r\n setContactUs(false);\r\n setdeleteaccountotp(false);\r\n setDeleteAccount(false);\r\n}\r\nconst handleTermsService = () =>{\r\n setEditProfile(false);\r\n setNotification(false);\r\n setChangePassword(false);\r\n setTermsService(true);\r\n setAboutUs(false);\r\n setPrivacyPolicy(false);\r\n setContactUs(false);\r\n setdeleteaccountotp(false);\r\n setDeleteAccount(false);\r\n \r\n}\r\nconst handleAboutUs = () =>{\r\n setEditProfile(false);\r\n setNotification(false);\r\n setChangePassword(false);\r\n setTermsService(false);\r\n setAboutUs(true);\r\n setPrivacyPolicy(false);\r\n setContactUs(false);\r\n setdeleteaccountotp(false);\r\n setDeleteAccount(false);\r\n \r\n}\r\nconst handlePrivacyPolicy = () =>{\r\n setEditProfile(false);\r\n setNotification(false);\r\n setChangePassword(false);\r\n setTermsService(false);\r\n setAboutUs(false);\r\n setPrivacyPolicy(true);\r\n setContactUs(false);\r\n setdeleteaccountotp(false);\r\n setDeleteAccount(false);\r\n \r\n}\r\nconst handleContactUs = () =>{\r\n setEditProfile(false);\r\n setNotification(false);\r\n setChangePassword(false);\r\n setTermsService(false);\r\n setAboutUs(false);\r\n setPrivacyPolicy(false);\r\n setContactUs(true);\r\n setdeleteaccountotp(false);\r\n setDeleteAccount(false);\r\n \r\n}\r\nconst handledeleteaccount = () =>{\r\n setEditProfile(false);\r\n setNotification(false);\r\n setChangePassword(false);\r\n setTermsService(false);\r\n setAboutUs(false);\r\n setPrivacyPolicy(false);\r\n setContactUs(false);\r\n setdeleteaccountotp(false);\r\n setDeleteAccount(true);\r\n}\r\n \r\n const handleContinue = () => {\r\n navigate('/');\r\n };\r\n const [selectedCountry, setSelectedCountry] = useState(\"\");\r\n\r\n const handleChangeCountry = (event) => {\r\n const selected = event.target.value;\r\n setSelectedCountry(selected);\r\n console.log(selected);\r\n };\r\n const handleAddBankDetails = () => {\r\n if (!profileCountry) {\r\n alert(\"Please add your country details\");\r\n } else {\r\n getAddBank();\r\n // Proceed with the rest of your logic\r\n // console.log(\"Proceed with adding bank details\");\r\n }\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

Settings

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"avatar\"\r\n
{profile?.fullName}
\r\n

{profile?.email}

\r\n
\r\n
\r\n
\r\n
\r\n
Edit Profile
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
Notification
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Change Password
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
Terms of Service
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
About Us
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
Privacy Policy
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
Contact Us
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
Delete Account
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*
\r\n \"avatar\"\r\n
Profile Picture
\r\n
*/}\r\n
\r\n
\r\n \r\n
\r\n { EditProfile &&
\r\n
\r\n \"avatar\"\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Profile Picture\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {/* \r\n \"\"\r\n */}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {profile?.role === 'instructor' &&
\r\n \r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
}\r\n {/*
\r\n \r\n \r\n
*/}\r\n {profile?.role === 'instructor' ?
\r\n \r\n
:
\r\n \r\n
}\r\n
\r\n\r\n }\r\n {/* {Notification && <>\r\n
\r\n
Notification
\r\n
\r\n\r\n } */}\r\n {ChangePassword && <>\r\n
\r\n
Change Password
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas pulvinar bibendum magna Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas pulvinar bibendum magna. consectetur adipiscing elit. Maecenas pulvinar bibendum magna

\r\n
\r\n \r\n
\r\n \r\n {currentpassword === '' && (\r\n \"\"Current password\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {newpassword === '' && (\r\n \"\"New password\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {confirmnewpassword === '' && (\r\n \"\" Password\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n }\r\n {TermsService && <>\r\n
\r\n
Terms of Use
\r\n {terms && terms.map((term, index) => (

{term?.content}

))}\r\n \r\n \r\n
\r\n\r\n }\r\n {AboutUs && <>\r\n
\r\n
About Us
\r\n {about && about.map((about, index) => (

{about?.content}

))}\r\n \r\n
\r\n\r\n }\r\n {PrivacyPolicy && <>\r\n
\r\n
Privacy Policy
\r\n {policy && policy.map((policy, index) => (

{policy?.content}

))}\r\n \r\n
\r\n\r\n }\r\n {ContactUs && <>\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n Chat to us\r\n
\r\n
\r\n Our friendly team is here to help.\r\n
\r\n
\r\n {profile?.email}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n Phone\r\n
\r\n
\r\n Lorem ipsum dolor sit amet.\r\n
\r\n
\r\n +1(555) 000-0000\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \"\"\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n }\r\n {showModal && (\r\n
\r\n
\r\n
\r\n {/*
\r\n
Payment Successful
\r\n \r\n
*/}\r\n
\r\n \r\n \"\"\r\n

Password Change Successful!

\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n {DeleteAccount && <>\r\n
\r\n
Delete Account
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n

Delete your account will:

\r\n
\r\n
\r\n

We're sorry to see you go. If you're sure you want to delete your ECHO App account, please be aware that this action is permanent and cannot be undone. All of your personal information, including your information and settings, will be permanently deleted.

\r\n

If you're having trouble with your account or have concerns, please reach out to us at [contact email or support page] before proceeding with the account deletion. We'd love to help you resolve any issues and keep you as a valued ECHO App user.

\r\n
\r\n \r\n
\r\n \r\n {deleteaccountpassword === '' && (\r\n \"\"Password\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n

To delete your account, please enter your password in the field below and confirm your decision by clicking the 'Delete My Account' button.

\r\n
\r\n \r\n
\r\n
\r\n\r\n }\r\n {deleteaccountotp &&<>\r\n
\r\n
Delete Account
\r\n

For added security, we'll send an OTP code to your registered mobile number. Please enter the code in the field below to confirm your account deletion.

\r\n
\r\n
\r\n \r\n
\r\n \r\n }\r\n />\r\n \r\n
\r\n
\r\n
\r\n

\r\n You can resend the code in {countdown} seconds\r\n

\r\n
\r\n
\r\n \r\n Resend code\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {showModalDeleteAccount && (\r\n
\r\n
\r\n
\r\n {/*
\r\n
Payment Successful
\r\n \r\n
*/}\r\n
\r\n \r\n \"\"\r\n

Account Deleted Successfully!

\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n
\r\n\r\n }\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default InstructorSettings","import React, { useEffect, useState } from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport './instructorhome.css';\r\nimport InstructorSidebar from './InstructorSidebar';\r\nimport InstructoreHeader from './InstructoreHeader';\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\nconst InstructorCourseDetails = () => {\r\n const [isloading, setIsLoading] = useState(false);\r\n const [coursedetail, setcoursedetail] = useState([]);\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const courseId = queryParams.get(\"courseId\");\r\n const getCourseDetail = () => {\r\n \r\n let getRes = (res) => {\r\n // localStorage.setItem(\"userData\", res?.data?.user);\r\n setcoursedetail(res.courseInfo);\r\n // setproducts(res.data.data.products);\r\n // console.log(productId)\r\n };\r\n \r\n callApi(\"GET\", routes.coursedetails+'/'+courseId, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n if (courseId) {\r\n getCourseDetail();\r\n }\r\n }, [courseId]);\r\n const [myCourses, setmyCourses] = useState('')\r\n const getmyCourses = () => {\r\n let getRes = (res) => {\r\n setmyCourses(res?.data?.courses);\r\n };\r\n\r\n callApi(\"GET\", routes.myCourses, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n function decodeHtml(html) {\r\n const txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value;\r\n }\r\n useEffect(() => {\r\n // console.log(detail);\r\n getmyCourses()\r\n }, [])\r\n \r\n return (\r\n <>\r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

My Courses

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n {myCourses && myCourses.slice(0, 10).map((course, index) => (
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
{course?.title}
\r\n \r\n
\r\n \r\n {course?.level}\r\n \r\n
\r\n
\r\n
\r\n ${course?.price} \r\n {/* $60 */}\r\n {course?.courseDuration}\r\n
\r\n
\r\n
\r\n
\r\n
))}\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"First\r\n
\r\n
{coursedetail?.title}\r\n
\r\n\r\n{coursedetail?.level}\r\n \r\n
\r\n
\r\n
${coursedetail?.price}{coursedetail?.courseDuration}
\r\n
\r\n
\r\n
\r\n \r\n

course Students

\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{coursedetail?.courseDuration}

\r\n
\r\n
\r\n
\r\n
\r\n
Course Description
\r\n

\r\n
\r\n
\r\n
Course Objective
\r\n

\r\n
\r\n
\r\n
Digital Book
\r\n {coursedetail?.books && coursedetail?.books.map((book, index) => (
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n
\r\n
\r\n
\r\n

\r\n {book?.bookTitle}\r\n

\r\n
\r\n ${book?.bookPrice}\r\n
\r\n
\r\n
\r\n \r\n
))}\r\n\r\n
\r\n
\r\n \r\n
\r\n
Course Assignment
\r\n {coursedetail?.assignment && coursedetail?.assignment.map((assignment, index) => (
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n \r\n

\r\n Assignment {index + 1}\r\n

\r\n \r\n
\r\n \r\n
))}\r\n\r\n
\r\n
\r\n
Course Quiz
\r\n
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n \r\n

\r\n {coursedetail?.title}\r\n

\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
Course Content
\r\n {coursedetail?.content && coursedetail?.content.map((content, index) => (
\r\n
\r\n
\r\n

{content?.contentTitle}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
))}\r\n\r\n\r\n\r\n\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default InstructorCourseDetails","import React, { useEffect, useState } from 'react';\r\nimport { Link, useNavigate } from 'react-router-dom';\r\nimport './instructorhome.css';\r\nimport InstructorSidebar from './InstructorSidebar';\r\nimport InstructoreHeader from './InstructoreHeader';\r\nimport { S3 } from \"aws-sdk\";\r\nimport 'react-quill/dist/quill.snow.css'; // Import React Quill styles\r\nimport ReactQuill from 'react-quill';\r\nconst InstructorCreateCourse = () => {\r\n const [courseTitle, setCourseTitle] = useState(\"\");\r\n const [courseDescription, setCourseDescription] = useState(\"\");\r\n const [courseObjective, setCourseObjective] = useState(\"\");\r\n const [totalCourseDuration, setTotalCourseDuration] = useState(\"\");\r\n\r\n const [coursePrice, setCoursePrice] = useState(\"\");\r\n\r\n const [selectedLevel, setSelectedLevel] = useState(\"\");\r\n const [isDropdownLevelOpen, setIsDropdownLevelOpen] = useState(false);\r\n const [imageURL, setImageURL] = useState(null);\r\n const [showDropZone, setShowDropZone] = useState(true);\r\n const [uploadedFileName, setUploadedFileName] = useState('');\r\n const [uploadedBookCover, setUploadedBookCover] = useState('');\r\n const [bookAvatar, setBookAvatar] = useState('');\r\n const [uploadedAssignmentCover, setUploadedAssignmentCover] = useState('');\r\n const [assignmentAvatar, setAssignmentAvatar] = useState('');\r\n\r\n const [videoURL, setVideoURL] = useState('');\r\n const [videos, setVideos] = useState([]);\r\n const [currentTitle, setCurrentTitle] = useState('');\r\n // const [currentVideoURL, setCurrentVideoURL] = useState('');\r\n const [showUploader, setShowUploader] = useState(true);\r\n const [selectedassignmentFileName, setSelectedassignmentFileName] = useState(null);\r\n const [selectedquizFileName, setSelectedquizFileName] = useState(null);\r\n const [bookTitle, setBookTitle] = useState('');\r\n const [bookUrl, setBookUrl] = useState('');\r\n const [bookPrice, setBookPrice] = useState('');\r\n const [books, setBooks] = useState([]);\r\n const [assignments, setAssignments] = useState([]);\r\n const [currentAssignmentURL, setCurrentAssignmentURL] = useState('');\r\n const navigate = useNavigate();\r\n const [CompleteCourse, setCompleteCourse] = useState('');\r\n\r\n const handleDescriptionChange = (value) => {\r\n setCourseDescription(value);\r\n };\r\n const handleObjectiveChange = (value) => {\r\n setCourseObjective(value);\r\n };\r\n const handleLevelChange = (value) => {\r\n setSelectedLevel(value);\r\n setIsDropdownLevelOpen(false);\r\n };\r\n\r\n const toggleDropdownLevel = () => {\r\n setIsDropdownLevelOpen(!isDropdownLevelOpen);\r\n };\r\n\r\n \r\n const handleFileSelect = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n const fileUrl = await uploadImageOnS3(file);\r\n setImageURL(fileUrl);\r\n setShowDropZone(false);\r\n // console.log(fileUrl);\r\n }\r\n };\r\n const uploadImageOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setImageURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n // const handleFileUpload = (event) => {\r\n // const uploadedFile = event.target.files[0];\r\n // if (uploadedFile) {\r\n // setUploadedFileName(uploadedFile.name);\r\n // }\r\n // };\r\n const handleBookCoverUpload = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n setUploadedBookCover(file.name);\r\n const fileUrl = await uploadbookcoverOnS3(file);\r\n setBookAvatar(fileUrl);\r\n // setShowDropZone(false);\r\n // console.log(fileUrl);\r\n }\r\n };\r\n const uploadbookcoverOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setImageURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n const handleFileUpload = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n setUploadedFileName(file.name);\r\n const fileUrl = await uploadbookOnS3(file);\r\n setBookUrl(fileUrl);\r\n // setShowDropZone(false);\r\n // console.log(fileUrl);\r\n }\r\n };\r\n const uploadbookOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setImageURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n const handleAssignmentCoverUpload = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n setUploadedAssignmentCover(file.name);\r\n const fileUrl = await uploadAssignmentcoverOnS3(file);\r\n setAssignmentAvatar(fileUrl);\r\n // setShowDropZone(false);\r\n // console.log(fileUrl);\r\n }\r\n };\r\n const uploadAssignmentcoverOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setImageURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n // const handleVideoUpload = (event) => {\r\n // const file = event.target.files[0];\r\n // const videoURL = URL.createObjectURL(file);\r\n // setVideoURL(videoURL);\r\n // setShowUploader(false);\r\n // };\r\n const handleVideoUpload = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n const fileUrl = await uploadVideoOnS3(file);\r\n setVideoURL(fileUrl);\r\n setShowUploader(false);\r\n // console.log(fileUrl);\r\n }\r\n };\r\n const uploadVideoOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setVideoURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n // const handleassignmentFileSelect = (event) => {\r\n // const file = event.target.files[0];\r\n // setSelectedassignmentFileName(file.name);\r\n // const assignmentURL = URL.createObjectURL(file);\r\n // setCurrentAssignmentURL(assignmentURL);\r\n // };\r\n const handleassignmentFileSelect = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n setSelectedassignmentFileName(file.name);\r\n const fileUrl = await uploadAssignmentOnS3(file);\r\n setCurrentAssignmentURL(fileUrl);\r\n // setShowDropZone(false);\r\n console.log(fileUrl);\r\n }\r\n };\r\n const uploadAssignmentOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setCurrentAssignmentURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n const handleAssignmentFileRemove = () => {\r\n setSelectedassignmentFileName('');\r\n setCurrentAssignmentURL('');\r\n };\r\n\r\n const handlequizFileSelect = (event) => {\r\n const file = event.target.files[0];\r\n setSelectedquizFileName(file.name);\r\n };\r\n\r\n const handlequizFileRemove = () => {\r\n setSelectedquizFileName(null);\r\n };\r\n\r\n const handleAddBook = () => {\r\n if (bookTitle && bookUrl && bookPrice && bookAvatar) {\r\n setBooks([...books, { bookTitle, bookUrl, bookPrice, bookAvatar }]);\r\n setBookTitle('');\r\n setBookUrl('');\r\n setBookPrice('');\r\n setBookAvatar('');\r\n } else {\r\n alert('Please fill in all fields');\r\n }\r\n };\r\n const handleAddVideo = () => {\r\n if (currentTitle && videoURL) {\r\n setVideos([...videos, { contentTitle: currentTitle, contentUrl: videoURL }]);\r\n setCurrentTitle('');\r\n setVideoURL('');\r\n setShowUploader(true);\r\n } else {\r\n alert('Please provide a title or wait to upload a video');\r\n }\r\n };\r\n\r\n const handleDeleteVideo = (index) => {\r\n const newVideos = [...videos];\r\n newVideos.splice(index, 1);\r\n setVideos(newVideos);\r\n };\r\n const handleAddAssignment = () => {\r\n if (currentAssignmentURL && assignmentAvatar) {\r\n setAssignments([...assignments, { assignmentUrl: currentAssignmentURL, assignmentFileName: selectedassignmentFileName, assignmentAvatar: assignmentAvatar }]);\r\n setSelectedassignmentFileName('');\r\n setCurrentAssignmentURL('');\r\n setAssignmentAvatar('');\r\n } else {\r\n alert('Please upload an assignment and Cover');\r\n }\r\n };\r\n\r\n const handleDeleteAssignment = (index) => {\r\n const newAssignments = [...assignments];\r\n newAssignments.splice(index, 1);\r\n setAssignments(newAssignments);\r\n };\r\n const [quizzes, setQuizzes] = useState([]);\r\n const [currentQuiz, setCurrentQuiz] = useState([]);\r\n const [currentQuestion, setCurrentQuestion] = useState({ text: '', options: [{ option: '', isOptionCorrect: false }, { option: '', isOptionCorrect: false }] });\r\n\r\n const handleQuestionChange = (e) => {\r\n setCurrentQuestion({ ...currentQuestion, text: e.target.value });\r\n };\r\n\r\n const handleOptionChange = (index, value) => {\r\n const newOptions = currentQuestion.options.map((option, i) => (i === index ? { ...option, option: value } : option));\r\n setCurrentQuestion({ ...currentQuestion, options: newOptions });\r\n };\r\n\r\n const handleCorrectOptionChange = (index) => {\r\n const newOptions = currentQuestion.options.map((option, i) => ({\r\n ...option,\r\n isOptionCorrect: i === index ? !option.isOptionCorrect : false,\r\n }));\r\n setCurrentQuestion({ ...currentQuestion, options: newOptions });\r\n };\r\n\r\n const handleAddOption = () => {\r\n if (currentQuestion.options.length < 5) {\r\n setCurrentQuestion({ ...currentQuestion, options: [...currentQuestion.options, { option: '', isOptionCorrect: false }] });\r\n }\r\n };\r\n\r\n const handleAddQuestion = () => {\r\n if (currentQuestion.text && currentQuestion.options.every(opt => opt.option)) {\r\n if (currentQuestion.options.some(opt => opt.isOptionCorrect)) {\r\n setCurrentQuiz([...currentQuiz, currentQuestion]);\r\n setCurrentQuestion({ text: '', options: [{ option: '', isOptionCorrect: false }, { option: '', isOptionCorrect: false }] });\r\n } else {\r\n alert('Please mark at least one option as correct.');\r\n }\r\n } else {\r\n alert('Please provide a question and at least two options.');\r\n }\r\n };\r\n\r\n const handleCreateQuiz = () => {\r\n if (currentQuiz.length > 0) {\r\n setQuizzes([...quizzes, { questions: currentQuiz }]);\r\n setCurrentQuiz([]);\r\n } else {\r\n alert('Please add at least one question to the quiz.');\r\n }\r\n };\r\n\r\n const handleDeleteQuiz = (index) => {\r\n const updatedQuizzes = quizzes.filter((quiz, i) => i !== index);\r\n setQuizzes(updatedQuizzes);\r\n };\r\n const handlecontinue = () => {\r\n const completeCourseData = {\r\n thumbnail: imageURL,\r\n title: courseTitle,\r\n description: courseDescription,\r\n objective: courseObjective,\r\n level: selectedLevel,\r\n books: books,\r\n content: videos,\r\n price: coursePrice,\r\n quiz: quizzes,\r\n assignment: assignments,\r\n courseDuration: totalCourseDuration,\r\n };\r\n if (!imageURL || !courseTitle || !courseDescription || !courseObjective || !selectedLevel || !coursePrice) {\r\n alert('Please fill in all the required details.');\r\n \r\n }\r\n else{\r\n setCompleteCourse(completeCourseData);\r\n console.log(completeCourseData);\r\n navigate('/instructorcreatecoursedetails' , { state: { courseDetail: completeCourseData } });\r\n }\r\n // setCompleteCourse(completeCourseData);\r\n // console.log(completeCourseData);\r\n };\r\n // const handlecontinue = () => {\r\n // handleAddBook();\r\n // handleAddVideo();\r\n // handleAddAssignment();\r\n // };\r\n\r\n // useEffect(() => {\r\n // if (books.length > 0 || videos.length > 0 || assignments.length > 0) {\r\n // console.log('Books:', books);\r\n // console.log('Videos:', videos);\r\n // console.log('Assignments:', assignments);\r\n // // navigate('/instructorcreatecoursedetails');\r\n // }\r\n // }, [books, videos, assignments]);\r\n return (\r\n <>\r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

Create Course

\r\n
\r\n
\r\n
\r\n
\r\n {showDropZone && (\r\n
\r\n
\r\n \"Upload\r\n Upload Image\r\n
\r\n \r\n
\r\n )}\r\n {imageURL && !showDropZone && (\r\n <>\r\n \r\n
\r\n
\r\n \"Uploaded\"\r\n
\r\n \r\n \"\"\r\n \r\n
\r\n {/* Uncomment the following input field if needed */}\r\n {/* */}\r\n
\r\n
\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n setCourseTitle(e.target.value)} placeholder=\"Course Title\" style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n
\r\n \r\n Course Level\r\n \r\n
\r\n
\r\n \r\n {selectedLevel\r\n ? selectedLevel\r\n : Dropdown to select}\r\n \r\n \r\n \r\n
\r\n {isDropdownLevelOpen && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n setTotalCourseDuration(e.target.value)} placeholder=\"Total Course Duration\" style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n
Course Books
\r\n
\r\n \r\n setBookTitle(e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n setBookPrice(e.target.value)}\r\n />\r\n
\r\n \r\n
\r\n \"\"\r\n \r\n
\r\n
\r\n
Upload Book
\r\n\r\n
\r\n {books.length > 0 && (\r\n
\r\n

Added Books

\r\n
    \r\n {books.map((book, index) => (\r\n
  • \r\n

    Title: {book.bookTitle}

    \r\n {/*

    URL: {book.bookUrl}

    */}\r\n

    Price: ${book.bookPrice}

    \r\n
  • \r\n ))}\r\n
\r\n
\r\n )}\r\n
Course Content
\r\n {videos.map((video, index) => (\r\n
\r\n \r\n
\r\n
\r\n {index + 1}\r\n
\r\n
\r\n \r\n handleDeleteVideo(index)}\r\n style={{ cursor: 'pointer' }}\r\n />\r\n
\r\n
\r\n
\r\n ))}\r\n\r\n
\r\n \r\n setCurrentTitle(e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n
\r\n {showUploader ? (\r\n
\r\n
\r\n \"Upload\r\n Upload Video\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n \r\n
\r\n \r\n {/* */}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \"\"\r\n \r\n
\r\n
\r\n
Upload Content
\r\n\r\n
\r\n
\r\n \r\n setCoursePrice(e.target.value)} placeholder=\"Course Price\" style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \"Upload\r\n {selectedassignmentFileName ? selectedassignmentFileName : 'Upload Assignment'}\r\n
\r\n {selectedassignmentFileName ? (\r\n <>\r\n \"\"\r\n
\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {assignments.map((assignment, index) => (\r\n
\r\n
{assignment.assignmentFileName}
\r\n \"Delete\" handleDeleteAssignment(index)} className=\"ml-2\" style={{ cursor: 'pointer' }} />\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n \"\"\r\n \r\n
\r\n
\r\n
Upload Assignment
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {currentQuestion.options.map((option, index) => (\r\n
\r\n \r\n handleOptionChange(index, e.target.value)}\r\n placeholder={`Enter option ${index + 1}`}\r\n style={{ backgroundColor: '#FAFAFA', height: '52px' }}\r\n />\r\n handleCorrectOptionChange(index)}\r\n />\r\n {/* Correct */}\r\n
\r\n ))}\r\n {currentQuestion.options.length < 5 && (\r\n \r\n )}\r\n \r\n \r\n

Quizzes

\r\n {quizzes.map((quiz, index) => (\r\n
\r\n

Quiz {index + 1}

\r\n {quiz.questions.map((question, qIndex) => (\r\n
\r\n

{question.text}

\r\n
    \r\n {question.options.map((opt, oIndex) => (\r\n
  • \r\n {opt.option}\r\n
  • \r\n ))}\r\n
\r\n
\r\n ))}\r\n \r\n
\r\n ))}\r\n\r\n
\r\n{/*
\r\n \"\"\r\n \r\n
\r\n
\r\n
Add more
\r\n\r\n
*/}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default InstructorCreateCourse","import React, { useEffect, useState } from 'react';\r\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\r\nimport './instructorhome.css';\r\nimport InstructorSidebar from './InstructorSidebar';\r\nimport InstructoreHeader from './InstructoreHeader';\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst InstructorCreateCourseDetails = () => {\r\n const location = useLocation();\r\n const { courseDetail } = location.state || {};\r\n const navigate = useNavigate();\r\n const [isloading, setIsLoading] = useState(false);\r\n\r\n const handleContinue =() =>{\r\n navigate('/instructorhome')\r\n }\r\n const handleCourseCreateSuccessful = () => {\r\n let getRes = (res) => {\r\n console.log('Response received:', res)\r\n if (res.statusCode == 201) {\r\n setShowModal(true);\r\n\r\n // toast.success(\"Logged in Successfully\", {\r\n // autoClose: 1500,\r\n // onClose: () => navigate('/instructorhome')\r\n // });\r\n\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n });\r\n }\r\n };\r\n let body = {\r\n thumbnail: courseDetail.thumbnail,\r\n title: courseDetail.title,\r\n description: courseDetail.description,\r\n objective: courseDetail.objective,\r\n level: courseDetail.level,\r\n books: courseDetail.books,\r\n content: courseDetail.content,\r\n price: courseDetail.price,\r\n quiz: courseDetail.quiz,\r\n assignment: courseDetail.assignment,\r\n courseDuration: courseDetail.courseDuration,\r\n };\r\n console.log(body);\r\n callApi(\"POST\", routes.createCourse, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const handleCourseEditSuccessful = () => {\r\n let getRes = (res) => {\r\n console.log('Response received:', res)\r\n if (res.statusCode == 200) {\r\n setShowModal(true);\r\n\r\n // toast.success(\"Logged in Successfully\", {\r\n // autoClose: 1500,\r\n // onClose: () => navigate('/instructorhome')\r\n // });\r\n\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n });\r\n }\r\n };\r\n let body = {\r\n thumbnail: courseDetail.thumbnail,\r\n title: courseDetail.title,\r\n description: courseDetail.description,\r\n objective: courseDetail.objective,\r\n level: courseDetail.level,\r\n books: courseDetail.books,\r\n content: courseDetail.content,\r\n price: courseDetail.price,\r\n quiz: courseDetail.quiz,\r\n assignment: courseDetail.assignment,\r\n courseDuration: courseDetail.courseDuration,\r\n };\r\n console.log(body);\r\n callApi(\"PATCH\", routes.editCourse+'/'+courseDetail.courseId, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n useEffect(() => {\r\n let timer;\r\n if (showModal) {\r\n timer = setTimeout(() => {\r\n handleContinue();\r\n }, 2000);\r\n }\r\n return () => clearTimeout(timer);\r\n }, [showModal]);\r\n \r\n return (\r\n <>\r\n \r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

Create Course

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"First\r\n
\r\n
{courseDetail?.title}\r\n
\r\n\r\n {courseDetail?.level}\r\n \r\n
\r\n
\r\n
${courseDetail?.price}{courseDetail?.courseDuration} Course
\r\n
\r\n
\r\n
\r\n \r\n

8,289 Students

\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{courseDetail.courseDuration} Course

\r\n
\r\n
\r\n
\r\n
\r\n
Course Description
\r\n

\r\n
\r\n
\r\n
Course Objective
\r\n

\r\n
\r\n
\r\n
Digital Book
\r\n {courseDetail?.books && courseDetail?.books.map((book, index) => (
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n
\r\n
\r\n
\r\n

\r\n {book?.bookTitle}\r\n

\r\n
\r\n ${book?.bookPrice}\r\n
\r\n
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
))}\r\n\r\n
\r\n
\r\n \r\n
\r\n
Course Assignment
\r\n {courseDetail?.assignment && courseDetail?.assignment.map((assignment, index) => (
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n \r\n

\r\n Assignment {index + 1}\r\n

\r\n \r\n
\r\n \r\n
))}\r\n\r\n
\r\n
\r\n
Course Quiz
\r\n {courseDetail?.quiz && courseDetail?.quiz.map((quiz, index) => (
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n \r\n

\r\n Quiz {index + 1}\r\n

\r\n \r\n
\r\n \r\n
))}\r\n\r\n
\r\n
\r\n
Course Content
\r\n {courseDetail?.content && courseDetail?.content.map((content, index) => (
\r\n
\r\n
\r\n

{content?.contentTitle}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
))}\r\n \r\n\r\n\r\n\r\n\r\n
\r\n {courseDetail?.courseId ? \r\n
\r\n \r\n
\r\n :
\r\n \r\n
}\r\n {showModal && (\r\n
\r\n
\r\n
\r\n {/*
\r\n
Payment Successful
\r\n \r\n
*/}\r\n
\r\n \r\n \"\"\r\n

{courseDetail?.courseId ?Course Edit Successfully!:Course Created Successfully!}

\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default InstructorCreateCourseDetails","import React, { useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport '../Dashboard/instructorhome.css';\r\nimport InstructorSidebar from '../Dashboard/InstructorSidebar';\r\nimport InstructoreHeader from '../Dashboard/InstructoreHeader';\r\n\r\n\r\nconst InstructorNotifications = () => {\r\n return (\r\n <>\r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

Notification

\r\n
\r\n {/* Render 5 notifications */}\r\n {[...Array(5)].map((index) => (\r\n
\r\n
\r\n
\r\n \r\n \"avatar\"\r\n \r\n
\r\n
\r\n
\r\n

Title

\r\n

02 min ago

\r\n
\r\n
\r\n Lorem Ipsum is simply dummy text of the printing and typesetting industry.Lorem Ipsum been the industrscedcs Ipsum has been Ipsum has been the industrsccsy's...\r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default InstructorNotifications","import React, { useEffect, useState } from 'react';\r\n// import { useSelector } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport Picker from '@emoji-mart/react';\r\nimport socketIO from 'socket.io-client';\r\nimport InstructorSidebar from '../Dashboard/InstructorSidebar';\r\nimport InstructoreHeader from '../Dashboard/InstructoreHeader';\r\nimport '../Dashboard/instructorhome.css';\r\nimport '../../Inbox/inbox.css';\r\nimport { useSocket } from '../../Context/SocketContext';\r\nimport { S3 } from \"aws-sdk\";\r\nimport ReactPlayer from 'react-player';\r\n\r\n// const socket = socketIO('http://ec2-13-59-83-138.us-east-2.compute.amazonaws.com');\r\n\r\nconst InstructorInbox = () => {\r\n\tconst socket = useSocket();\r\n\tconst storedUserData = localStorage.getItem('userData');\r\n const [user, setUser] = useState(storedUserData ? JSON.parse(storedUserData) : null);\r\n // const user = useSelector((e) => e.userDataSlice.userData);\r\n const [message, setMessage] = useState('');\r\n const [showPicker, setShowPicker] = useState(false);\r\n const [perLine, setPerLine] = useState(25);\r\n const [selectedFile, setSelectedFile] = useState(null);\r\n const [showSend, setShowSend] = useState(false);\r\n const [chatHeads, setChatHeads] = useState([]);\r\n const [activeChat, setActiveChat] = useState(null);\r\n const [activeChatDetails, setActiveChatDetails] = useState(null);\r\n\r\n const [chatHistory, setChatHistory] = useState([]);\r\n const [messageType, setmessageType] = useState('text');\r\n const [uploadedFileName, setUploadedFileName] = useState('');\r\n\r\nconst test= [\r\n\t'Amish', \"Massab\",'Humais'\r\n]\r\n\r\nconst formatTime = (timestamp) => {\r\n const date = new Date(timestamp);\r\n const options = { hour: 'numeric', minute: 'numeric', hour12: true };\r\n let formattedTime = new Intl.DateTimeFormat('en-US', options).format(date);\r\n formattedTime = formattedTime.replace('AM', 'am').replace('PM', 'pm');\r\n return formattedTime;\r\n};\r\n useEffect(() => {\r\n if (user) {\r\n\t\t\t// console.log(user);\r\n socket.emit('user-enter', user );\r\n\r\n socket.emit('get-inboxes', user );\r\n socket.on('inboxes', (data) => {\r\n\t\t\t\t// console.log( data)\r\n setChatHeads(data?.inboxes);\r\n });\r\n\r\n // return () => {\r\n // socket.off('inboxes');\r\n // if (activeChat) {\r\n // socket.emit('leave-room', user, activeChat );\r\n // }\r\n // };\r\n }\r\n }, [user]);\r\n\r\n const handleFileChange = async (e) => {\r\n const validFileTypes = [\r\n 'application/pdf',\r\n 'text/plain',\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'application/rtf',\r\n 'application/vnd.oasis.opendocument.text',\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'application/vnd.ms-powerpoint',\r\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation'\r\n ];\r\n const file = e.target.files[0];\r\n if (file && validFileTypes.includes(file.type)) {\r\n setUploadedFileName(file.name);\r\n const fileUrl = await uploadFileOnS3(file);\r\n // setImageURL(fileUrl);\r\n setMessage(fileUrl);\r\n // console.log(fileUrl);\r\n setmessageType('file');\r\n setShowSend(e.target.value.trim() !== '');\r\n\r\n } else {\r\n alert('Please select a valid file.');\r\n }\r\n \r\n };\r\n const uploadFileOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n \r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setImageURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n \r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n\r\n const handleImageChange = async (e) => {\r\n const file = e.target.files[0];\r\n if (file && file.type.startsWith('image/')) {\r\n const fileUrl = await uploadImageOnS3(file);\r\n // setImageURL(fileUrl);\r\n setMessage(fileUrl);\r\n // console.log(fileUrl);\r\n setmessageType('photo');\r\n setShowSend(e.target.value.trim() !== '');\r\n\r\n }\r\n else if(file && file.type.startsWith('video/')){\r\n \r\n const fileUrl = await uploadImageOnS3(file);\r\n // setImageURL(fileUrl);\r\n setMessage(fileUrl);\r\n // console.log(fileUrl);\r\n setmessageType('video');\r\n setShowSend(e.target.value.trim() !== '');\r\n }\r\n \r\n else {\r\n alert('Please select a valid image or video file.');\r\n }\r\n };\r\n const uploadImageOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n \r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setImageURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n \r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n setMessage(e.target.value);\r\n setShowSend(e.target.value.trim() !== '');\r\n\t\tsetmessageType('text')\r\n };\r\n\r\n const handleEmojiClick = (emoji) => {\r\n setMessage(message + emoji.native);\r\n };\r\n\r\n const togglePicker = () => {\r\n setShowPicker(!showPicker);\r\n };\r\n\r\n const handleSend = () => {\r\n if (message.trim() !== '' && activeChat) {\r\n // const newMessage = {\r\n // user,\r\n // to: activeChat,\r\n // message,\r\n // messageType: 'text',\r\n // };\r\n socket.emit('send-message', user, activeChat,message,messageType);\r\n \r\n setMessage('');\r\n }\r\n };\r\n\r\n const truncateText = (text, maxLength) => {\r\n if (text?.length > maxLength) {\r\n return text.substring(0, maxLength) + '....';\r\n }\r\n return text;\r\n };\r\n\r\n const enterChat = (chat) => {\r\n\t\tconst endUser = chat?.users?.[0]?._id === chat?._id ? chat?.users?.[1] : chat?.users?.[0]\r\n\t\tconsole.log(endUser);\r\n\t\tconsole.log(chat);\r\n setActiveChatDetails(endUser);\r\n setActiveChat(endUser?._id);\r\n socket.emit('join-chat', user, endUser?._id );\r\n socket.on('messages', (data) => {\r\n setChatHistory(data?.messages);\r\n console.log(data?.messages);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const scrollToBottom = () => {\r\n const chatContainer = document.querySelector('.chat-messages');\r\n if (chatContainer) {\r\n chatContainer.scrollTop = chatContainer.scrollHeight;\r\n }\r\n };\r\n\r\n scrollToBottom(); // Scroll to bottom on component mount and when messages change\r\n\r\n const calculatePerLine = () => {\r\n const emojiPickerWrapper = document.querySelector('.emoji-picker-wrapper');\r\n if (emojiPickerWrapper) {\r\n const wrapperWidth = emojiPickerWrapper.clientWidth;\r\n const emojisPerLine = Math.floor(wrapperWidth / 36); // Assuming each emoji button is 36px wide\r\n setPerLine(emojisPerLine);\r\n }\r\n };\r\n\r\n calculatePerLine();\r\n\r\n window.addEventListener('resize', calculatePerLine);\r\n\r\n return () => {\r\n window.removeEventListener('resize', calculatePerLine);\r\n };\r\n }, [chatHistory]);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

Inbox

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n {chatHeads && chatHeads.map((chat) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Connecting...\"\r\n
\r\n
\r\n {activeChatDetails?.fullName}\r\n {activeChatDetails?.isOnline ?
Active Now
: \r\n
Offline
}\r\n
\r\n
\r\n {/* */}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {chatHistory && chatHistory.slice().reverse().map((msg, index) => (\r\n
\r\n
\r\n \"User\"\r\n
\r\n
\r\n {msg.type === 'photo' ? (\r\n \"Sent\"\r\n ) : msg.type === 'file' ? (\r\n \r\n \r\n \r\n ) : msg.type === 'video' ? (\r\n \r\n ) : (\r\n
\r\n {msg.message}\r\n
\r\n )}\r\n
\r\n {formatTime(msg.createdAt)} {msg?.seen ? \"\" : null}\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n setShowPicker(false)}\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \"\"\r\n
\r\n {/* {showSend ? (\r\n
\r\n \"\"\r\n
\r\n ) : (\r\n
\r\n \"\"\r\n
\r\n )} */}\r\n
\r\n
\r\n {showPicker && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default InstructorInbox;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Link, useNavigate } from 'react-router-dom';\r\nimport '../../CourseInstructor/Dashboard/instructorhome.css';\r\nimport InstructorSidebar from '../../CourseInstructor/Dashboard/InstructorSidebar';\r\nimport InstructoreHeader from '../../CourseInstructor/Dashboard/InstructoreHeader';\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst TrainerHome = () => {\r\n const [myWorkouts, setmyWorkouts] = useState('')\r\n const [isloading, setIsLoading] = useState(false);\r\n const navigate = useNavigate();\r\n const getmyWorkouts = () => {\r\n let getRes = (res) => {\r\n setmyWorkouts(res?.workouts);\r\n };\r\n\r\n callApi(\"GET\", routes.myWorkouts, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n \r\n useEffect(() => {\r\n // console.log(detail);\r\n getmyWorkouts()\r\n }, [])\r\n const checkBankInfo = () => {\r\n let getRes = (res) => {\r\n if (res.isBankAdded) {\r\n navigate('/trainercreateworkout');\r\n // toast.success(res.message, {\r\n // autoClose: 1500,\r\n // onClose: () => { \r\n // navigate('/instructorcreatecourse');\r\n // }\r\n // })\r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n\r\n callApi(\"GET\", routes.checkBankInfo, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n const [filteredProducts, setFilteredProducts] = useState([]);\r\n\r\n useEffect(() => {\r\n setFilteredProducts(myWorkouts);\r\n }, [myWorkouts]);\r\n const handleSearch = (query) => {\r\n if (query.trim() === '') {\r\n // If search query is empty, show all products\r\n setFilteredProducts(myWorkouts);\r\n } else {\r\n // Otherwise, filter products based on the search query\r\n const filtered = myWorkouts.filter(course =>\r\n course?.workoutTitle?.toLowerCase().includes(query.toLowerCase())\r\n );\r\n setFilteredProducts(filtered);\r\n }\r\n };\r\n return (\r\n <>\r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

My Workouts

\r\n
\r\n {filteredProducts && filteredProducts.map((workout, index) => (
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
{workout?.workoutTitle}
\r\n \r\n \r\n
\r\n
\r\n {workout?.workoutDuration} | {workout?.workoutLevel}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
))}\r\n {/* {[...Array(6)].map((_, index) => (
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
Squat Management Exercise
\r\n \r\n \r\n
\r\n
\r\n 12 minutes | Intermediate\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n \r\n

\r\n John Duo\r\n

\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
))} */}\r\n
\r\n
\r\n
\r\n \"plus\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default TrainerHome","import React, { useEffect, useState } from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport InstructorSidebar from '../../CourseInstructor/Dashboard/InstructorSidebar';\r\nimport InstructoreHeader from '../../CourseInstructor/Dashboard/InstructoreHeader';\r\nimport '../../CourseInstructor/Dashboard/instructorhome.css';\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\n\r\nconst TrainerCourseDetails = () => {\r\n const [isloading, setIsLoading] = useState(false);\r\n const [workoutdetail, setworkoutdetail] = useState([]);\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const workoutId = queryParams.get(\"workoutId\");\r\n const getWorkoutDetail = () => {\r\n \r\n let getRes = (res) => {\r\n // localStorage.setItem(\"userData\", res?.data?.user);\r\n setworkoutdetail(res.workoutInfo);\r\n // setproducts(res.data.data.products);\r\n // console.log(productId)\r\n };\r\n \r\n callApi(\"GET\", routes.workoutdetails+'/'+workoutId, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n if (workoutId) {\r\n getWorkoutDetail();\r\n }\r\n }, [workoutId]);\r\n const [myWorkouts, setmyWorkouts] = useState('')\r\n const getmyWorkouts = () => {\r\n let getRes = (res) => {\r\n setmyWorkouts(res?.workouts);\r\n };\r\n\r\n callApi(\"GET\", routes.myWorkouts, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n \r\n useEffect(() => {\r\n // console.log(detail);\r\n getmyWorkouts()\r\n }, [])\r\n return (\r\n <>\r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

My Workouts

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {workoutdetail?.trainer?.workouts && workoutdetail?.trainer?.workouts.map((workout, index) => (\r\n
\r\n
\r\n {/*
City
*/}\r\n
\r\n

{workout?.workoutTitle}

\r\n

{workout?.workoutDuration} | {workout?.workoutLevel}

\r\n
\r\n {/* \"User\" */}\r\n \r\n
\r\n
\r\n))}\r\n\r\n \r\n
\r\n {/*
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
Squat Management Exercise
\r\n \r\n \r\n
\r\n
\r\n 12 minutes | Intermediate\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \"avatar\"\r\n\r\n \r\n \r\n

\r\n John Duo\r\n

\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
*/}\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{workoutdetail?.workoutTitle}
\r\n\r\n
\r\n
${workoutdetail?.workoutPrice}
\r\n
\r\n
\r\n
\r\n\r\n {workoutdetail?.workoutLevel}\r\n \r\n
\r\n
\r\n\r\n {workoutdetail?.totalWorkouts} workout\r\n \r\n
\r\n
\r\n\r\n {workoutdetail?.workoutDuration}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {workoutdetail?.workoutActivity && workoutdetail?.workoutActivity.map((workout, index) => (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
{workout?.title}
\r\n \r\n \r\n \r\n

{workout?.activityDuration?.duration} {workout?.activityDuration?.unit}

\r\n
\r\n
\r\n
\r\n
\r\n
))}\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n {/*
\r\n \"avatar\"\r\n
John Duo
\r\n

Time Square NYC, Ney York USA.

\r\n
\r\n
\r\n
\r\n

Personal Info

\r\n
\r\n
\r\n
\r\n

Gender

\r\n

Male

\r\n
\r\n
\r\n

Weight

\r\n

72kg

\r\n
\r\n
\r\n

Goal

\r\n

Build Muscles, Improve Fitness

\r\n
\r\n
\r\n
\r\n
\r\n

Age

\r\n

27 years

\r\n
\r\n
\r\n

Height

\r\n

172 cm

\r\n
\r\n
\r\n

Physical Activity Level

\r\n

Intermediate

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
*/}\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default TrainerCourseDetails","import React, { useState } from 'react';\r\nimport { Link, useNavigate } from 'react-router-dom';\r\nimport '../../CourseInstructor/Dashboard/instructorhome.css';\r\nimport InstructorSidebar from '../../CourseInstructor/Dashboard/InstructorSidebar';\r\nimport InstructoreHeader from '../../CourseInstructor/Dashboard/InstructoreHeader';\r\nimport { S3 } from \"aws-sdk\";\r\n\r\nconst TrainerCreateWorkout = () => {\r\n const [workoutTitle, setWorkoutTitle] = useState(\"\");\r\n const [workoutObjective, setWorkoutObjective] = useState(\"\");\r\n const [totalWorkoutDuration, setTotalWorkoutDuration] = useState(\"\");\r\n const [totalWorkoutCalories, setTotalWorkoutCalories] = useState(\"\");\r\n\r\n const [workoutPrice, setWorkoutPrice] = useState(\"\");\r\n const [workoutDuration, setWorkoutDuration] = useState(\"\");\r\n const [workoutExerciseDuration, setWorkoutExerciseDuration] = useState(\"\");\r\n\r\n const [selectedLevel, setSelectedLevel] = useState(\"\");\r\n const [isDropdownLevelOpen, setIsDropdownLevelOpen] = useState(false);\r\n const [selectedDurationUnit, setSelectedDurationUnit] = useState(\"\");\r\n const [isDropdownDurationUnitOpen, setIsDropdownDurationUnitOpen] = useState(false);\r\n const [selectedExerciseDurationUnit, setSelectedExerciseDurationUnit] = useState(\"\");\r\n const [isDropdownExerciseDurationUnitOpen, setIsDropdownExerciseDurationUnitOpen] = useState(false);\r\n const handleLevelChange = (value) => {\r\n setSelectedLevel(value);\r\n setIsDropdownLevelOpen(false);\r\n };\r\n\r\n const toggleDropdownLevel = () => {\r\n setIsDropdownLevelOpen(!isDropdownLevelOpen);\r\n };\r\n const handleDurationUnitChange = (value) => {\r\n setSelectedDurationUnit(value);\r\n setIsDropdownDurationUnitOpen(false);\r\n };\r\n\r\n const toggleDropdownDurationUnit = () => {\r\n \r\n setIsDropdownDurationUnitOpen(!isDropdownDurationUnitOpen);\r\n };\r\n const handleExerciseDurationUnitChange = (value) => {\r\n setSelectedExerciseDurationUnit(value);\r\n setIsDropdownExerciseDurationUnitOpen(false);\r\n };\r\n\r\n const toggleDropdownExerciseDurationUnit = () => {\r\n \r\n setIsDropdownExerciseDurationUnitOpen(!isDropdownExerciseDurationUnitOpen);\r\n };\r\n const navigate = useNavigate();\r\n // const handlecontinue =() =>{\r\n // navigate('/trainercreateworkoutdetails')\r\n \r\n // }\r\n const [completeWorkout, setCompleteWorkout] = useState('');\r\n\r\n const handlecontinue = () => {\r\n // console.log('Videos:', videos);\r\n const completeWorkoutData = {\r\n workoutThumbnail: imageURL,\r\n workoutTitle: workoutTitle,\r\n workoutLevel: selectedLevel,\r\n workoutActivity: videos,\r\n workoutPrice: workoutPrice,\r\n workoutDuration: totalWorkoutDuration,\r\n calories: totalWorkoutCalories,\r\n };\r\n if (!imageURL || !workoutTitle || !selectedLevel || !workoutPrice) {\r\n alert('Please fill in all the required details.');\r\n \r\n }\r\n else{\r\n setCompleteWorkout(completeWorkoutData);\r\n console.log(completeWorkoutData);\r\n navigate('/trainercreateworkoutdetails' , { state: { workoutDetail: completeWorkoutData } });\r\n }\r\n // setCompleteWorkout(completeWorkoutData);\r\n // console.log(completeWorkoutData);\r\n };\r\n const [imageURL, setImageURL] = useState(null);\r\n const [showDropZone, setShowDropZone] = useState(true);\r\n\r\n const handleFileSelect = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n const fileUrl = await uploadImageOnS3(file);\r\n setImageURL(fileUrl);\r\n setShowDropZone(false);\r\n console.log(fileUrl);\r\n }\r\n };\r\n const uploadImageOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setImageURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n const [videoURL, setVideoURL] = useState('');\r\n const [showUploader, setShowUploader] = useState(true);\r\n const [videos, setVideos] = useState([]);\r\n const [currentTitle, setCurrentTitle] = useState('');\r\n \r\n const handleVideoUpload = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n const fileUrl = await uploadVideoOnS3(file);\r\n setVideoURL(fileUrl);\r\n setShowUploader(false);\r\n console.log(fileUrl);\r\n }\r\n };\r\n const uploadVideoOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n \r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setVideoURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n \r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n const handleAddVideo = () => {\r\n if (currentTitle && videoURL && workoutDuration && selectedDurationUnit) {\r\n setVideos([...videos, { title: currentTitle, url: videoURL, \r\n activityDuration: {\r\n duration: workoutDuration,\r\n unit: selectedDurationUnit,\r\n },\r\n exerciseDuration: {\r\n duration: workoutExerciseDuration,\r\n unit: selectedExerciseDurationUnit,\r\n },\r\n \r\n }]);\r\n setCurrentTitle('');\r\n setVideoURL('');\r\n setWorkoutDuration('');\r\n setWorkoutExerciseDuration('');\r\n setSelectedDurationUnit('');\r\n setShowUploader(true);\r\n } else {\r\n alert('Please provide a details or wait to upload a video');\r\n }\r\n };\r\n \r\n const handleDeleteVideo = (index) => {\r\n const newVideos = [...videos];\r\n newVideos.splice(index, 1);\r\n setVideos(newVideos);\r\n };\r\n return (\r\n <>\r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

Create Workout Plan

\r\n
\r\n
\r\n
\r\n
\r\n {showDropZone && (\r\n
\r\n
\r\n \"Upload\r\n Upload Image\r\n
\r\n \r\n
\r\n )}\r\n {imageURL && !showDropZone && (\r\n <>\r\n \r\n
\r\n
\r\n \"Uploaded\"\r\n
\r\n \r\n \"\"\r\n \r\n
\r\n {/* Uncomment the following input field if needed */}\r\n {/* */}\r\n
\r\n
\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n setWorkoutTitle(e.target.value)} style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n \r\n {selectedLevel\r\n ? selectedLevel\r\n : Dropdown to select}\r\n \r\n \r\n \r\n
\r\n {isDropdownLevelOpen && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n setTotalWorkoutDuration(e.target.value)} placeholder=\"Total Workout Duration\" style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n
\r\n \r\n setTotalWorkoutCalories(e.target.value)} placeholder=\"Total Workout Calories\" style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n \r\n
Workout Activity
\r\n
\r\n \r\n
\r\n \r\n setCurrentTitle(e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n setWorkoutDuration(e.target.value)} style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n \r\n {selectedDurationUnit\r\n ? selectedDurationUnit\r\n : Dropdown to select}\r\n \r\n \r\n \r\n
\r\n {isDropdownDurationUnitOpen && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n setWorkoutExerciseDuration(e.target.value)} style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n \r\n {selectedExerciseDurationUnit\r\n ? selectedExerciseDurationUnit\r\n : Dropdown to select}\r\n \r\n \r\n \r\n
\r\n {isDropdownExerciseDurationUnitOpen && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {/*
\r\n \r\n
*/}\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {videos.map((video, index) => (\r\n
\r\n \r\n
\r\n
\r\n {index + 1}\r\n
\r\n
\r\n \r\n handleDeleteVideo(index)}\r\n style={{ cursor: 'pointer' }}\r\n />\r\n
\r\n
\r\n
\r\n ))}\r\n\r\n {/*
\r\n \r\n setCurrentTitle(e.target.value)}\r\n />\r\n
*/}\r\n
\r\n \r\n
\r\n {showUploader ? (\r\n
\r\n
\r\n \"Upload\r\n Upload Video\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n \r\n
\r\n \r\n {/* */}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \"\"\r\n \r\n
\r\n
\r\n
Upload Video
\r\n\r\n
\r\n
\r\n \r\n setWorkoutPrice(e.target.value)} style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default TrainerCreateWorkout","import React, { useEffect, useState } from 'react';\r\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\r\nimport '../../CourseInstructor/Dashboard/instructorhome.css';\r\nimport InstructoreHeader from '../../CourseInstructor/Dashboard/InstructoreHeader'\r\nimport InstructorSidebar from '../../CourseInstructor/Dashboard/InstructorSidebar'\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst TrainerCreateWorkoutDetails = () => {\r\n const location = useLocation();\r\n const { workoutDetail } = location.state || {};\r\n const navigate = useNavigate();\r\n const [isloading, setIsLoading] = useState(false);\r\n const totalDuration = workoutDetail?.workoutActivity?.reduce((acc, activity) => {\r\n return acc + (activity?.activityDuration?.duration || 0);\r\n }, 0);\r\n const handleContinue =() =>{\r\n navigate('/trainerhome')\r\n }\r\n const handleCourseCreateSuccessful = () => {\r\n let getRes = (res) => {\r\n console.log('Response received:', res)\r\n if (res.statusCode == 201) {\r\n setShowModal(true);\r\n \r\n // toast.success(\"Logged in Successfully\", {\r\n // autoClose: 1500,\r\n // onClose: () => navigate('/instructorhome')\r\n // });\r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n });\r\n }\r\n };\r\n let body = {\r\n workoutThumbnail: workoutDetail.workoutThumbnail,\r\n workoutTitle: workoutDetail.workoutTitle,\r\n workoutLevel: workoutDetail.workoutLevel,\r\n workoutActivity: workoutDetail.workoutActivity,\r\n workoutPrice: workoutDetail.workoutPrice,\r\n workoutDuration: workoutDetail.workoutDuration,\r\n calories: workoutDetail.calories,\r\n };\r\n console.log(body);\r\n callApi(\"POST\", routes.createWorkout, body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n \r\n const [showModal, setShowModal] = useState(false);\r\n\r\n useEffect(() => {\r\n let timer;\r\n if (showModal) {\r\n timer = setTimeout(() => {\r\n handleContinue();\r\n }, 2000);\r\n }\r\n return () => clearTimeout(timer);\r\n }, [showModal]);\r\n return (\r\n <>\r\n \r\n\r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

Create Workout Plan

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"First\r\n
\r\n
\r\n
{workoutDetail?.workoutTitle}
\r\n\r\n
\r\n
${workoutDetail?.workoutPrice}.00
\r\n
\r\n
\r\n
\r\n\r\n {workoutDetail?.workoutLevel}\r\n \r\n
\r\n
\r\n\r\n {workoutDetail?.workoutActivity.length} workout\r\n \r\n
\r\n
\r\n\r\n {workoutDetail?.workoutDuration}\r\n \r\n
\r\n
\r\n \r\n \r\n {workoutDetail?.workoutActivity && workoutDetail?.workoutActivity.map((workout, index) => (
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
{workout?.title}
\r\n \r\n \r\n \r\n

{workout?.activityDuration?.duration} {workout?.activityDuration?.unit}

\r\n
\r\n
\r\n
\r\n
\r\n
))}\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n {showModal && (\r\n
\r\n
\r\n
\r\n {/*
\r\n
Payment Successful
\r\n \r\n
*/}\r\n
\r\n \r\n \"\"\r\n

Course Created Successful!

\r\n
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate placerat porta. Ut commodo nulla vitae eleifend sodales. Fusce ornare.
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default TrainerCreateWorkoutDetails","import React, { useEffect, useState } from 'react';\r\nimport { Link, useNavigate } from 'react-router-dom';\r\nimport '../../CourseInstructor/Dashboard/instructorhome.css';\r\nimport InstructoreHeader from '../../CourseInstructor/Dashboard/InstructoreHeader'\r\nimport InstructorSidebar from '../../CourseInstructor/Dashboard/InstructorSidebar'\r\nimport { Line } from \"react-chartjs-2\";\r\nimport { Chart, registerables } from \"chart.js\";\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\nChart.register(...registerables);\r\nconst TrainerProgressTracking = () => {\r\n const [isloading, setIsLoading] = useState(false);\r\n const [myProgress, setmyProgress] = useState('')\r\n const getMyProgress = () => {\r\n callApi(\"GET\", routes.getallprogress, null, setIsLoading, (res) => {\r\n if (res?.data) {\r\n const response = res.data;\r\n const months = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'];\r\n const transformedData = {\r\n labels: months,\r\n datasets: [\r\n {\r\n label: 'Total Course',\r\n data: months.map(month => response.coursesPerMonth[month]),\r\n borderColor: '#007BFF',\r\n backgroundColor: '#007BFF',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n {\r\n label: 'Total Students Enroll',\r\n data: months.map(month => response.enrollmentsPerMonth[month]),\r\n borderColor: '#292D30',\r\n backgroundColor: '#292D30',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n ],\r\n };\r\n setData(transformedData);\r\n setmyProgress(response);\r\n }\r\n }, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n \r\n getMyProgress();\r\n }, []);\r\n const defaultData = {\r\n labels: ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL'],\r\n datasets: [\r\n {\r\n label: 'Total Course',\r\n data: [4, 6, 4, 11, 8, 9, 5, 6],\r\n borderColor: '#007BFF',\r\n backgroundColor: '#007BFF',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n {\r\n label: 'Total Students Enroll',\r\n data: [8, 7, 9, 5, 7, 5, 7],\r\n borderColor: '#292D30',\r\n backgroundColor: '#292D30',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n ],\r\n };\r\n const plugin = {\r\n beforeInit(chart) {\r\n \r\n const originalFit = chart.legend.fit;\r\n chart.legend.fit = function fit() {\r\n originalFit.bind(chart.legend)();\r\n this.height += 20;\r\n };\r\n }\r\n };\r\n const defaultOptions = {\r\n \r\n scales: {\r\n \r\n y: {\r\n beginAtZero: true,\r\n \r\n },\r\n \r\n },\r\n plugins: {\r\n legend: {\r\n position: 'top',\r\n align: 'start',\r\n labels: {\r\n color: '#7E7E7E',\r\n font: {\r\n size: 13,\r\n \r\n },\r\n useBorderRadius: true,\r\n borderRadius: 3,\r\n boxWidth: 13,\r\n \r\n },\r\n },\r\n },\r\n \r\n };\r\n \r\n // Options for the dropdown\r\n const selectOptions = ['Year', 'Month', 'Week'];\r\n \r\n // State to manage selected option and data\r\n const [selectedOption, setSelectedOption] = useState('Month');\r\n const [data, setData] = useState(defaultData);\r\n const [options, setOptions] = useState(defaultOptions);\r\n \r\n // Function to handle option selection\r\n const handleOptionSelect = (option) => {\r\n setSelectedOption(option);\r\n \r\n // Update data and options based on the selected option\r\n switch (option) {\r\n case 'Year':\r\n setData({\r\n labels: ['2015', '2016', '2017', '2018', '2019', '2020', '2021','2022','2023','2024'],\r\n datasets: [\r\n {\r\n label: 'Total Course',\r\n data: [20, 10, 30, 3, 9, 15, 50,34,22,42],\r\n borderColor: '#007BFF',\r\n backgroundColor: '#007BFF',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n {\r\n label: 'Total Students Enroll',\r\n data: [35, 40,50,34,22,42,10, 30, 3,25],\r\n borderColor: '#292D30',\r\n backgroundColor: '#292D30',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n ],\r\n });\r\n break;\r\n case 'Month':\r\n setData(defaultData); // Set back to default data\r\n break;\r\n case 'Week':\r\n setData({\r\n labels: ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'],\r\n datasets: [\r\n {\r\n label: 'Total Course',\r\n data: [10, 17, 4, 6, 11, 2, 20],\r\n borderColor: '#007BFF',\r\n backgroundColor: '#007BFF',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n {\r\n label: 'Total Students Enroll',\r\n data: [15, 6, 11, 2, 20, 7,10],\r\n borderColor: '#292D30',\r\n backgroundColor: '#292D30',\r\n tension: 0.3,\r\n borderWidth: 4,\r\n },\r\n ],\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n const [myWorkouts, setmyWorkouts] = useState('')\r\n const getmyWorkouts = () => {\r\n let getRes = (res) => {\r\n setmyWorkouts(res?.workouts);\r\n };\r\n \r\n callApi(\"GET\", routes.myWorkouts, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n \r\n useEffect(() => {\r\n // console.log(detail);\r\n getmyWorkouts()\r\n }, [])\r\n return (\r\n <>\r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

Progress Tracking

\r\n
\r\n
\r\n {myWorkouts && myWorkouts.slice(0, 5).map((workout, index) => (\r\n
\r\n
\r\n {/*
City
*/}\r\n
\r\n

{workout?.workoutTitle}

\r\n

{workout?.workoutDuration} | {workout?.workoutLevel}

\r\n
\r\n {/* \"User\" */}\r\n \r\n
\r\n
\r\n))}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{myProgress?.totalCourses}
\r\n
Total Course
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{myProgress?.totalStudents}
\r\n
Total Students Enroll
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*
\r\n \r\n \r\n
*/}\r\n
\r\n
Activities
\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default TrainerProgressTracking","import React, { useEffect, useRef, useState } from 'react';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { S3 } from 'aws-sdk';\r\n\r\nconst ProgressTrackingAssignments = () => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [ongoingCourses, setOngoingCourses] = useState([]);\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const courseId = queryParams.get(\"courseId\");\r\n const fileInputRef = useRef(null);\r\n\r\n const getCourses = () => {\r\n let getRes = (res) => {\r\n setOngoingCourses(res.courseProgress);\r\n };\r\n\r\n callApi(\"GET\", `${routes.getOneOngoingCourses}/${courseId}`, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (courseId) {\r\n getCourses();\r\n }\r\n }, [courseId]);\r\n\r\n const handleBackButton = () => {\r\n navigate(-1);\r\n };\r\n\r\n const uploadImageOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n\r\n const handleFileSelect = () => {\r\n fileInputRef.current.click();\r\n };\r\n\r\n const handleFileChange = async (event) => {\r\n const file = event.target.files[0];\r\n if (file) {\r\n console.log('Selected file:', file);\r\n\r\n try {\r\n const fileUrl = await uploadImageOnS3(file);\r\n\r\n const requestBody = {\r\n assignment: fileUrl,\r\n };\r\n\r\n const response = await fetch(`${routes.uploadCourseAssignment}/${ongoingCourses?.course?._id}`, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': `Bearer ${localStorage.getItem('accessToken') ?? ''}`,\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(requestBody),\r\n });\r\n\r\n const res = await response.json();\r\n\r\n if (res.statusCode === 200) {\r\n toast.success(res.message, {\r\n autoClose: 1500,\r\n });\r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500,\r\n });\r\n }\r\n } catch (error) {\r\n console.error('Error uploading file:', error);\r\n toast.error('Error uploading file', {\r\n autoClose: 1500,\r\n });\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n

Progress Tracking

\r\n
\r\n
\r\n
\r\n

\r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, consectetur adipiscing elit, consectetur adipiscing elit, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Course Content\r\n {ongoingCourses?.course?.assignment && ongoingCourses?.course?.assignment.map((assignment, index) => (\r\n
\r\n
\r\n
\r\n
\r\n

Assignment {index + 1}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default ProgressTrackingAssignments;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useNavigate, useLocation } from 'react-router-dom';\r\nimport { callApi } from '../../Api/ApiCaller';\r\nimport routes from '../../Api/routes';\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nconst ProgressTrackingQuizes = () => {\r\n const [showQuizStartModal, setShowQuizStartModal] = useState(false);\r\n const [QuizCorrectAnswer, setQuizCorrectAnswer] = useState('');\r\n const [QuizCorrectAnswerValue, setQuizCorrectAnswerValue] = useState('');\r\n const [QuizWrongAnswer, setQuizWrongAnswer] = useState('');\r\n const [QuizAnswerValue, setQuizAnswerValue] = useState('UnSelected');\r\n const [Quiznext, setQuiznext] = useState(false);\r\n const [isloading, setIsLoading] = useState(false);\r\n const [coursedetail, setcoursedetail] = useState([]);\r\n const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0);\r\n const [currentQuizIndex, setCurrentQuizIndex] = useState(0);\r\n const [showcourseSuccessfulModal, setShowcourseSuccessfulModal] = useState(false);\r\n const [correctAnswersCount, setCorrectAnswersCount] = useState(0);\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const progressId = queryParams.get(\"progressId\");\r\n const courseId = queryParams.get(\"courseId\");\r\n const [ongoingCourses, setongoingCourses] = useState([]);\r\n\r\n const getCourses = () => {\r\n const getRes = (res) => {\r\n setongoingCourses(res.courseProgress);\r\n };\r\n\r\n callApi(\"GET\", routes.getOneOngoingCourses + '/' + progressId, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (progressId) {\r\n getCourses();\r\n }\r\n }, [progressId]);\r\n\r\n const handleVideoDoneButton = () => {\r\n navigate(-1);\r\n };\r\n const [quizId, setquizId] = useState('')\r\n const startQuiz = (index, id) => {\r\n setShowQuizStartModal(true);\r\n setCurrentQuizIndex(index);\r\n setCurrentQuestionIndex(0);\r\n setCorrectAnswersCount(0); // Reset count when starting a new quiz\r\n resetQuizState();\r\n setquizId(id);\r\n };\r\n\r\n const isQuizCompleted = (quizId) => {\r\n if (!ongoingCourses?.quiz) return false;\r\n const quiz = ongoingCourses.quiz.find(quiz => quiz?.quizId === quizId);\r\n return quiz ? quiz?.completed : false;\r\n getCourses();\r\n };\r\n\r\n const handleQuizAnswerValue = (e) => {\r\n const clickedValue = e.target.value;\r\n setQuiznext(true);\r\n \r\n // Find the correct answer for the current question\r\n const correctOption = ongoingCourses.course.quiz[currentQuizIndex].questions[currentQuestionIndex].options.find(option => option.isOptionCorrect);\r\n \r\n if (clickedValue === correctOption.option) {\r\n setQuizCorrectAnswer(clickedValue);\r\n setQuizAnswerValue(clickedValue);\r\n setCorrectAnswersCount(prevCount => prevCount + 1); // Increment only if correct\r\n } else {\r\n setQuizWrongAnswer(clickedValue);\r\n setQuizAnswerValue(clickedValue);\r\n }\r\n \r\n setQuizCorrectAnswerValue(correctOption.option);\r\n };\r\n \r\n\r\n const handlecourseSuccessful = () => {\r\n console.log(`Total Correct Answers: ${correctAnswersCount}`);\r\n \r\n setShowQuizStartModal(false);\r\n \r\n let getRes = (res) => {\r\n if (res.statusCode == 200) {\r\n setShowcourseSuccessfulModal(true);\r\n \r\n } else {\r\n toast.error(res.message, {\r\n autoClose: 1500\r\n })\r\n }\r\n };\r\n let body = {\r\n correctAnswers: correctAnswersCount,\r\n \r\n };\r\n\r\n callApi(\"POST\", routes.markQuizComplete+'/'+courseId+'/'+quizId ,body, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n\r\n const handleQuizContinue = () => {\r\n if (currentQuestionIndex < ongoingCourses.course.quiz[currentQuizIndex].questions.length - 1) {\r\n setCurrentQuestionIndex(currentQuestionIndex + 1);\r\n resetQuizState(); // Reset for the next question\r\n } else {\r\n handlecourseSuccessful(); // If the quiz is completed\r\n }\r\n };\r\n \r\n\r\n const resetQuizState = () => {\r\n setQuizCorrectAnswer('');\r\n setQuizWrongAnswer('');\r\n setQuizAnswerValue('UnSelected');\r\n setQuiznext(false);\r\n \r\n // Set the correct answer for the new question\r\n const correctOption = ongoingCourses.course.quiz[currentQuizIndex].questions[currentQuestionIndex].options.find(option => option.isOptionCorrect);\r\n setQuizCorrectAnswerValue(correctOption.option);\r\n };\r\n \r\n\r\n useEffect(() => {\r\n if (showcourseSuccessfulModal) {\r\n const timer = setTimeout(() => {\r\n setShowcourseSuccessfulModal(false);\r\n getCourses();\r\n }, 2000);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [showcourseSuccessfulModal]);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n

Progress Tracking

\r\n
\r\n
\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit...

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Course Content\r\n {ongoingCourses?.course?.quiz && ongoingCourses?.course?.quiz.map((quiz, index) => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Quiz {index + 1}

\r\n
\r\n
\r\n {isQuizCompleted(quiz?._id)?: startQuiz(index, quiz?._id)}>}\r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n\r\n {showQuizStartModal && (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {currentQuestionIndex + 1}/{ongoingCourses.course.quiz[currentQuizIndex].questions.length}\r\n
\r\n
\r\n Quiz\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
{ongoingCourses.course.quiz[currentQuizIndex].questions[currentQuestionIndex].text}
\r\n
\r\n {ongoingCourses.course.quiz[currentQuizIndex].questions[currentQuestionIndex].options.map((option, idx) => (\r\n \r\n {option.option}\r\n \r\n \r\n ))}\r\n {Quiznext && (\r\n <>\r\n

Correct Answer is: {QuizCorrectAnswerValue}

\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {showcourseSuccessfulModal && (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n

Congratulations!

\r\n

You have successfully completed the Quiz.

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProgressTrackingQuizes;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\r\nimport './instructorhome.css';\r\nimport InstructorSidebar from './InstructorSidebar';\r\nimport InstructoreHeader from './InstructoreHeader';\r\nimport { S3 } from \"aws-sdk\";\r\nimport { callApi } from '../../../Api/ApiCaller';\r\nimport routes from '../../../Api/routes';\r\nimport 'react-quill/dist/quill.snow.css'; // Import React Quill styles\r\nimport ReactQuill from 'react-quill';\r\nconst InstructorEditCourse = () => {\r\n const [courseTitle, setCourseTitle] = useState(\"\");\r\n const [courseDescription, setCourseDescription] = useState(\"\");\r\n const [courseObjective, setCourseObjective] = useState(\"\");\r\n const [totalCourseDuration, setTotalCourseDuration] = useState(\"\");\r\n\r\n const [coursePrice, setCoursePrice] = useState(\"\");\r\n\r\n const [selectedLevel, setSelectedLevel] = useState(\"\");\r\n const [isDropdownLevelOpen, setIsDropdownLevelOpen] = useState(false);\r\n const [imageURL, setImageURL] = useState(null);\r\n const [showDropZone, setShowDropZone] = useState(false);\r\n const [uploadedFileName, setUploadedFileName] = useState('');\r\n const [videoURL, setVideoURL] = useState('');\r\n const [videos, setVideos] = useState([]);\r\n const [currentTitle, setCurrentTitle] = useState('');\r\n // const [currentVideoURL, setCurrentVideoURL] = useState('');\r\n const [uploadedBookCover, setUploadedBookCover] = useState('');\r\n const [bookAvatar, setBookAvatar] = useState('');\r\n const [uploadedAssignmentCover, setUploadedAssignmentCover] = useState('');\r\n const [assignmentAvatar, setAssignmentAvatar] = useState('');\r\n const [showUploader, setShowUploader] = useState(true);\r\n const [selectedassignmentFileName, setSelectedassignmentFileName] = useState(null);\r\n const [selectedquizFileName, setSelectedquizFileName] = useState(null);\r\n const [bookTitle, setBookTitle] = useState('');\r\n const [bookUrl, setBookUrl] = useState('');\r\n const [bookPrice, setBookPrice] = useState('');\r\n const [books, setBooks] = useState([]);\r\n const [assignments, setAssignments] = useState([]);\r\n const [currentAssignmentURL, setCurrentAssignmentURL] = useState('');\r\n const navigate = useNavigate();\r\n const [CompleteCourse, setCompleteCourse] = useState('');\r\n const handleDescriptionChange = (value) => {\r\n setCourseDescription(value);\r\n };\r\n const handleObjectiveChange = (value) => {\r\n setCourseObjective(value);\r\n };\r\n function decodeHtml(html) {\r\n const txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value;\r\n }\r\n// Edit the Course Setting\r\nconst [isloading, setIsLoading] = useState(false);\r\n const [coursedetail, setcoursedetail] = useState([]);\r\n const location = useLocation();\r\n const queryParams = new URLSearchParams(location.search);\r\n const courseId = queryParams.get(\"courseId\");\r\n const getCourseDetail = () => {\r\n \r\n let getRes = (res) => {\r\n // localStorage.setItem(\"userData\", res?.data?.user);\r\n setcoursedetail(res.courseInfo);\r\n setImageURL(res.courseInfo.thumbnail);\r\n setCourseTitle(res.courseInfo.title);\r\n setSelectedLevel(res.courseInfo.level);\r\n setCourseDescription(decodeHtml(res.courseInfo.description));\r\n setCourseObjective(decodeHtml(res.courseInfo.objective));\r\n setTotalCourseDuration(res.courseInfo.courseDuration);\r\n setBooks(res.courseInfo.books);\r\n setVideos(res.courseInfo.content);\r\n setCoursePrice(res.courseInfo.price);\r\n setQuizzes(res.courseInfo.quiz);\r\n setAssignments(res.courseInfo.assignment);\r\n // setQuizzes(res.courseInfo.quiz);\r\n\r\n\r\n\r\n // setproducts(res.data.data.products);\r\n // console.log(productId)\r\n };\r\n \r\n callApi(\"GET\", routes.coursedetails+'/'+courseId, null, setIsLoading, getRes, (error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n useEffect(() => {\r\n if (courseId) {\r\n getCourseDetail();\r\n }\r\n }, [courseId]);\r\n\r\n const handleLevelChange = (value) => {\r\n setSelectedLevel(value);\r\n setIsDropdownLevelOpen(false);\r\n };\r\n\r\n const toggleDropdownLevel = () => {\r\n setIsDropdownLevelOpen(!isDropdownLevelOpen);\r\n };\r\n\r\n \r\n const handleFileSelect = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n const fileUrl = await uploadImageOnS3(file);\r\n setImageURL(fileUrl);\r\n setShowDropZone(false);\r\n // console.log(fileUrl);\r\n }\r\n };\r\n const uploadImageOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setImageURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n // const handleFileUpload = (event) => {\r\n // const uploadedFile = event.target.files[0];\r\n // if (uploadedFile) {\r\n // setUploadedFileName(uploadedFile.name);\r\n // }\r\n // };\r\n const handleFileUpload = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n setUploadedFileName(file.name);\r\n const fileUrl = await uploadbookOnS3(file);\r\n setBookUrl(fileUrl);\r\n // setShowDropZone(false);\r\n // console.log(fileUrl);\r\n }\r\n };\r\n const uploadbookOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setImageURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n const handleBookCoverUpload = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n setUploadedBookCover(file.name);\r\n const fileUrl = await uploadbookcoverOnS3(file);\r\n setBookAvatar(fileUrl);\r\n // setShowDropZone(false);\r\n // console.log(fileUrl);\r\n }\r\n };\r\n const uploadbookcoverOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setImageURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n // const handleVideoUpload = (event) => {\r\n // const file = event.target.files[0];\r\n // const videoURL = URL.createObjectURL(file);\r\n // setVideoURL(videoURL);\r\n // setShowUploader(false);\r\n // };\r\n const handleVideoUpload = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n const fileUrl = await uploadVideoOnS3(file);\r\n setVideoURL(fileUrl);\r\n setShowUploader(false);\r\n // console.log(fileUrl);\r\n }\r\n };\r\n const uploadVideoOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setVideoURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n const handleAssignmentCoverUpload = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n setUploadedAssignmentCover(file.name);\r\n const fileUrl = await uploadAssignmentcoverOnS3(file);\r\n setAssignmentAvatar(fileUrl);\r\n // setShowDropZone(false);\r\n // console.log(fileUrl);\r\n }\r\n };\r\n const uploadAssignmentcoverOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setImageURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n // const handleassignmentFileSelect = (event) => {\r\n // const file = event.target.files[0];\r\n // setSelectedassignmentFileName(file.name);\r\n // const assignmentURL = URL.createObjectURL(file);\r\n // setCurrentAssignmentURL(assignmentURL);\r\n // };\r\n const handleassignmentFileSelect = async (e) => {\r\n const file = e.target.files[0];\r\n if (file) {\r\n setSelectedassignmentFileName(file.name);\r\n const fileUrl = await uploadAssignmentOnS3(file);\r\n setCurrentAssignmentURL(fileUrl);\r\n // setShowDropZone(false);\r\n console.log(fileUrl);\r\n }\r\n };\r\n const uploadAssignmentOnS3 = async (file) => {\r\n const s3bucket = new S3({\r\n region: 'us-east-2',\r\n accessKeyId: 'AKIA3FLDYE3EDGM6EQUB',\r\n secretAccessKey: '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',\r\n signatureVersion: 'v4',\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const arrayBuffer = reader.result;\r\n // setCurrentAssignmentURL(reader.result);\r\n const params = {\r\n Bucket: 's3echobucket',\r\n Key: file.name,\r\n Body: arrayBuffer,\r\n ContentDisposition: `inline;filename=\"${file.name}\"`,\r\n ContentType: file.type,\r\n };\r\n\r\n s3bucket.upload(params, (err, data) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(data.Location);\r\n }\r\n });\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n };\r\n const handleAssignmentFileRemove = () => {\r\n setSelectedassignmentFileName('');\r\n setCurrentAssignmentURL('');\r\n };\r\n\r\n const handlequizFileSelect = (event) => {\r\n const file = event.target.files[0];\r\n setSelectedquizFileName(file.name);\r\n };\r\n\r\n const handlequizFileRemove = () => {\r\n setSelectedquizFileName(null);\r\n };\r\n\r\n const handleAddBook = () => {\r\n if (bookTitle && bookUrl && bookPrice && bookAvatar) {\r\n setBooks([...books, { bookTitle, bookUrl, bookPrice, bookAvatar }]);\r\n setBookTitle('');\r\n setBookUrl('');\r\n setBookPrice('');\r\n setBookAvatar('');\r\n } else {\r\n alert('Please fill in all fields');\r\n }\r\n };\r\n const handleAddVideo = () => {\r\n if (currentTitle && videoURL) {\r\n setVideos([...videos, { contentTitle: currentTitle, contentUrl: videoURL }]);\r\n setCurrentTitle('');\r\n setVideoURL('');\r\n setShowUploader(true);\r\n } else {\r\n alert('Please provide a title or wait to upload a video');\r\n }\r\n };\r\n\r\n const handleDeleteVideo = (index) => {\r\n const newVideos = [...videos];\r\n newVideos.splice(index, 1);\r\n setVideos(newVideos);\r\n };\r\n const handleAddAssignment = () => {\r\n if (currentAssignmentURL && assignmentAvatar) {\r\n setAssignments([...assignments, { assignmentUrl: currentAssignmentURL, assignmentFileName: selectedassignmentFileName, assignmentAvatar: assignmentAvatar }]);\r\n setSelectedassignmentFileName('');\r\n setCurrentAssignmentURL('');\r\n setAssignmentAvatar('');\r\n } else {\r\n alert('Please upload an assignment and Cover');\r\n }\r\n };\r\n\r\n const handleDeleteAssignment = (index) => {\r\n const newAssignments = [...assignments];\r\n newAssignments.splice(index, 1);\r\n setAssignments(newAssignments);\r\n };\r\n const [quizzes, setQuizzes] = useState([]);\r\n const [currentQuiz, setCurrentQuiz] = useState([]);\r\n const [currentQuestion, setCurrentQuestion] = useState({ text: '', options: [{ option: '', isOptionCorrect: false }, { option: '', isOptionCorrect: false }] });\r\n\r\n const handleQuestionChange = (e) => {\r\n setCurrentQuestion({ ...currentQuestion, text: e.target.value });\r\n };\r\n\r\n const handleOptionChange = (index, value) => {\r\n const newOptions = currentQuestion.options.map((option, i) => (i === index ? { ...option, option: value } : option));\r\n setCurrentQuestion({ ...currentQuestion, options: newOptions });\r\n };\r\n\r\n const handleCorrectOptionChange = (index) => {\r\n const newOptions = currentQuestion.options.map((option, i) => ({\r\n ...option,\r\n isOptionCorrect: i === index ? !option.isOptionCorrect : false,\r\n }));\r\n setCurrentQuestion({ ...currentQuestion, options: newOptions });\r\n };\r\n\r\n const handleAddOption = () => {\r\n if (currentQuestion.options.length < 5) {\r\n setCurrentQuestion({ ...currentQuestion, options: [...currentQuestion.options, { option: '', isOptionCorrect: false }] });\r\n }\r\n };\r\n\r\n const handleAddQuestion = () => {\r\n if (currentQuestion.text && currentQuestion.options.every(opt => opt.option)) {\r\n if (currentQuestion.options.some(opt => opt.isOptionCorrect)) {\r\n setCurrentQuiz([...currentQuiz, currentQuestion]);\r\n setCurrentQuestion({ text: '', options: [{ option: '', isOptionCorrect: false }, { option: '', isOptionCorrect: false }] });\r\n } else {\r\n alert('Please mark at least one option as correct.');\r\n }\r\n } else {\r\n alert('Please provide a question and at least two options.');\r\n }\r\n };\r\n\r\n const handleCreateQuiz = () => {\r\n if (currentQuiz.length > 0) {\r\n setQuizzes([...quizzes, { questions: currentQuiz }]);\r\n setCurrentQuiz([]);\r\n } else {\r\n alert('Please add at least one question to the quiz.');\r\n }\r\n };\r\n\r\n const handleDeleteQuiz = (index) => {\r\n const updatedQuizzes = quizzes.filter((quiz, i) => i !== index);\r\n setQuizzes(updatedQuizzes);\r\n };\r\n const handlecontinue = () => {\r\n const completeCourseData = {\r\n courseId: courseId, \r\n thumbnail: imageURL,\r\n title: courseTitle,\r\n description: courseDescription,\r\n objective: courseObjective,\r\n level: selectedLevel,\r\n books: books,\r\n content: videos,\r\n price: coursePrice,\r\n quiz: quizzes,\r\n assignment: assignments,\r\n courseDuration: totalCourseDuration,\r\n };\r\n if (!imageURL || !courseTitle || !courseDescription || !courseObjective || !selectedLevel || !coursePrice) {\r\n alert('Please fill in all the required details.');\r\n \r\n }\r\n else{\r\n setCompleteCourse(completeCourseData);\r\n console.log(completeCourseData);\r\n navigate('/instructorcreatecoursedetails' , { state: { courseDetail: completeCourseData } });\r\n }\r\n // setCompleteCourse(completeCourseData);\r\n // console.log(completeCourseData);\r\n };\r\n // const handlecontinue = () => {\r\n // handleAddBook();\r\n // handleAddVideo();\r\n // handleAddAssignment();\r\n // };\r\n\r\n // useEffect(() => {\r\n // if (books.length > 0 || videos.length > 0 || assignments.length > 0) {\r\n // console.log('Books:', books);\r\n // console.log('Videos:', videos);\r\n // console.log('Assignments:', assignments);\r\n // // navigate('/instructorcreatecoursedetails');\r\n // }\r\n // }, [books, videos, assignments]);\r\n return (\r\n <>\r\n
\r\n
\r\n {/* Sidebar */}\r\n \r\n {/* Main Content */}\r\n
\r\n \r\n
\r\n

Create Course

\r\n
\r\n
\r\n
\r\n
\r\n {showDropZone && (\r\n
\r\n
\r\n \"Upload\r\n Upload Image\r\n
\r\n \r\n
\r\n )}\r\n {imageURL && !showDropZone && (\r\n <>\r\n \r\n
\r\n
\r\n \"Uploaded\"\r\n
\r\n \r\n \"\"\r\n \r\n
\r\n {/* Uncomment the following input field if needed */}\r\n {/* */}\r\n
\r\n
\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n setCourseTitle(e.target.value)} placeholder=\"Course Title\" style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n
\r\n \r\n Course Level\r\n \r\n
\r\n
\r\n \r\n {selectedLevel\r\n ? selectedLevel\r\n : Dropdown to select}\r\n \r\n \r\n \r\n
\r\n {isDropdownLevelOpen && (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n setTotalCourseDuration(e.target.value)} placeholder=\"Total Course Duration\" style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n
Course Books
\r\n
\r\n \r\n setBookTitle(e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n setBookPrice(e.target.value)}\r\n />\r\n
\r\n \r\n
\r\n \"\"\r\n \r\n
\r\n
\r\n
Upload Book
\r\n\r\n
\r\n {books.length > 0 && (\r\n
\r\n

Added Books

\r\n
    \r\n {books.map((book, index) => (\r\n
  • \r\n

    Title: {book.bookTitle}

    \r\n {/*

    URL: {book.bookUrl}

    */}\r\n

    Price: ${book.bookPrice}

    \r\n
  • \r\n ))}\r\n
\r\n
\r\n )}\r\n
Course Content
\r\n {videos.map((video, index) => (\r\n
\r\n \r\n
\r\n
\r\n {index + 1}\r\n
\r\n
\r\n \r\n handleDeleteVideo(index)}\r\n style={{ cursor: 'pointer' }}\r\n />\r\n
\r\n
\r\n
\r\n ))}\r\n\r\n
\r\n \r\n setCurrentTitle(e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n
\r\n {showUploader ? (\r\n
\r\n
\r\n \"Upload\r\n Upload Video\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n \r\n
\r\n \r\n {/* */}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \"\"\r\n \r\n
\r\n
\r\n
Upload Content
\r\n\r\n
\r\n
\r\n \r\n setCoursePrice(e.target.value)} placeholder=\"Course Price\" style={{ backgroundColor: '#FAFAFA', height: '52px' }} />\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \"Upload\r\n {selectedassignmentFileName ? selectedassignmentFileName : 'Upload Assignment'}\r\n
\r\n {selectedassignmentFileName ? (\r\n <>\r\n \"\"\r\n
\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {assignments.map((assignment, index) => (\r\n
\r\n
{assignment.assignmentFileName ? assignment.assignmentFileName: <>Assignment {index+1}}
\r\n \"Delete\" handleDeleteAssignment(index)} className=\"ml-2\" style={{ cursor: 'pointer' }} />\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n \"\"\r\n \r\n
\r\n
\r\n
Upload Assignment
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {currentQuestion.options.map((option, index) => (\r\n
\r\n \r\n handleOptionChange(index, e.target.value)}\r\n placeholder={`Enter option ${index + 1}`}\r\n style={{ backgroundColor: '#FAFAFA', height: '52px' }}\r\n />\r\n handleCorrectOptionChange(index)}\r\n />\r\n {/* Correct */}\r\n
\r\n ))}\r\n {currentQuestion.options.length < 5 && (\r\n \r\n )}\r\n \r\n \r\n

Quizzes

\r\n {quizzes.map((quiz, index) => (\r\n
\r\n

Quiz {index + 1}

\r\n {quiz.questions.map((question, qIndex) => (\r\n
\r\n

{question.text}

\r\n
    \r\n {question.options.map((opt, oIndex) => (\r\n
  • \r\n {opt.option}\r\n
  • \r\n ))}\r\n
\r\n
\r\n ))}\r\n \r\n
\r\n ))}\r\n\r\n
\r\n{/*
\r\n \"\"\r\n \r\n
\r\n
\r\n
Add more
\r\n\r\n
*/}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default InstructorEditCourse","import './App.css';\r\nimport { BrowserRouter as Router, Route, Routes, Outlet } from \"react-router-dom\";\r\nimport AboutUs from './Components/AboutUs/AboutUs';\r\nimport Home from './Components/Home/Home';\r\nimport Header from './Components/Header/Header';\r\nimport Footer from './Components/Footer/Footer';\r\nimport Courses from './Components/Courses/Courses';\r\nimport ContactUs from './Components/ContactUs/ContactUs';\r\nimport CourseDetails from './Components/Courses/CourseDetails';\r\nimport WorkoutDetails from './Components/Courses/WorkoutDetails';\r\nimport CoursePayment from './Components/Courses/CoursePayment';\r\nimport WorkoutStart from './Components/Courses/WorkoutStart';\r\nimport Login from './Components/User/Login';\r\nimport ForgotPassword from './Components/User/ForgotPassword';\r\nimport ForgotPasswordOtp from './Components/User/ForgotPasswordOtp';\r\nimport ForgotNewPassword from './Components/User/ForgotNewPassword';\r\nimport SignUp from './Components/User/SignUp/SignUp';\r\nimport SignUpOtp from './Components/User/SignUp/SignUpOtp';\r\nimport SignUpAccountType from './Components/User/SignUp/SignUpAccountType';\r\nimport UserSignUpProfile1 from './Components/User/SignUp/UserSignUpProfile1';\r\nimport UserSignUpProfile2 from './Components/User/SignUp/UserSignUpProfile2';\r\nimport ProgressTracking from './Components/Progress Tracking/ProgressTracking';\r\nimport ProgressTrackingCourseContent from './Components/Progress Tracking/ProgressTrackingCourseContent';\r\nimport ProgressTrackingWorkoutContent from './Components/Progress Tracking/ProgressTrackingWorkoutContent';\r\nimport Notifications from './Components/Inbox/Notifications';\r\nimport Inbox from './Components/Inbox/Inbox';\r\nimport TermsAndCondition from './Components/TermsAndCondition/TermsAndCondition';\r\nimport PrivacyPolicy from './Components/TermsAndCondition/PrivacyPolicy';\r\nimport EditProfile from './Components/User/Profile/EditProfile';\r\nimport InstructorSignUpProfile2 from './Components/CourseInstructor/InstructorSignUpProfile2';\r\nimport TrainerSignUpProfile2 from './Components/WorkoutTrainer/TrainerSignUpProfile2';\r\nimport InstructorHome from './Components/CourseInstructor/Dashboard/InstructorHome';\r\nimport InstructorProgressTracking from './Components/CourseInstructor/Dashboard/InstructorProgressTracking';\r\nimport InstructorSettings from './Components/CourseInstructor/Dashboard/InstructorSettings';\r\nimport InstructorCourseDetails from './Components/CourseInstructor/Dashboard/InstructorCourseDetails';\r\nimport InstructorCreateCourse from './Components/CourseInstructor/Dashboard/InstructorCreateCourse';\r\nimport InstructorCreateCourseDetails from './Components/CourseInstructor/Dashboard/InstructorCreateCourseDetails';\r\nimport InstructorNotifications from './Components/CourseInstructor/Inbox/InstructorNotifications';\r\nimport InstructorInbox from './Components/CourseInstructor/Inbox/InstructorInbox';\r\nimport TrainerHome from './Components/WorkoutTrainer/Dashboard/TrainerHome';\r\nimport TrainerCourseDetails from './Components/WorkoutTrainer/Dashboard/TrainerCourseDetails';\r\nimport TrainerCreateWorkout from './Components/WorkoutTrainer/Dashboard/TrainerCreateWorkout';\r\nimport TrainerCreateWorkoutDetails from './Components/WorkoutTrainer/Dashboard/TrainerCreateWorkoutDetails';\r\nimport TrainerProgressTracking from './Components/WorkoutTrainer/Dashboard/TrainerProgressTracking';\r\nimport { useState } from 'react';\r\nimport CheckoutForm from './Components/Courses/CheckoutForm';\r\nimport ProgressTrackingAssignments from './Components/Progress Tracking/ProgressTrackingAssignments';\r\nimport ProgressTrackingQuizes from './Components/Progress Tracking/ProgressTrackingQuizes';\r\nimport socketIO from 'socket.io-client';\r\nimport { SocketProvider } from './Components/Context/SocketContext';\r\nimport InstructorEditCourse from './Components/CourseInstructor/Dashboard/InstructorEditCourse';\r\n\r\nfunction App() {\r\n const [userlogged, setuserlogged] = useState(localStorage.getItem('loggedInUser'));\r\n console.log(userlogged);\r\n // const socket = socketIO('http://ec2-13-59-83-138.us-east-2.compute.amazonaws.com');\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n