{"version":3,"file":"barselsfonden.func.bundle.js","mappings":";2DAAA,cACA,QAEAA,SAASC,iBAAiB,oBAAoB,KAC1CC,EAAAA,KAAKC,uCCJT,iBACA,aACA,aACA,aACA,8DAEA,EAAAC,EAAAA,SAAKC,EAAAA,UACL,EAAAC,EAAAA,SAAUD,EAAAA,SAEVE,EAAAA,IAAIC,qBAAuBA,EAAAA,uGCT3B,gDAEA,MAAMC,EAAW,CACbC,QAAS,CACLC,SAAS,GAEbC,WAAW,EACXC,MAAO,CACHC,MAAO,CACHC,WAAY,uBAEhBC,OAAQC,OAAOC,YAAc,IAAM,IAAM,KACzCC,UAAW,GACXC,YAAa,GACbC,gBAAiB,cACjBC,OAAQ,CACJC,OAAQ,WACJ,IAAIV,EAAQW,KACRC,EAASZ,EAAMa,OAAO,GAAGC,cACX,EAAAC,EAAAA,SAAEf,EAAMgB,WAAWC,QAAQ,yBAAyBC,KAAK,0BAE/DC,IAAI,CACZC,IAAKpB,EAAMqB,MAAM,GAAGC,SAAS,GAC7BC,KAAMvB,EAAMwB,MAAM,GAAGF,SAAS,GAAKV,IAGnCa,EAAYC,QACZC,EAAO3B,EAAOyB,MAK9BG,MAAO,CACHC,KAAM,MAEVC,OAAQ,CACJhC,SAAS,GAEbiC,QAAS,CACLjC,SAAS,EACTkC,QAAQ,EACRxB,gBAAiB,KACjByB,YAAa,EACbC,QAAQ,EACRC,SAAS,EACTC,WAAY,SAAUC,EAAUC,EAAWC,GACvC,MAAO,CAAEC,EAAGD,EAAME,MAAQJ,EAAW,EAAI,GAAIK,GAAI,OAGzDC,YAAa,CACTC,OAAQ,CACJC,OAAQ,UACRC,SAAU,SACVC,cAAe,GACfC,WAAY,EACZvC,OAAQ,CACJwC,MAmLhB,SAAmBC,GACO,IAAlBA,EAAMX,MAAMC,IACZ,EAAAzB,EAAAA,SAAE,wBAAwBG,KAAK,iCAAiCiC,SAAS,2BACzE,EAAApC,EAAAA,SAAE,wBAAwBG,KAAK,iCAAiCiC,SAAS,4BAEzE,EAAApC,EAAAA,SAAEmC,EAAMX,MAAMa,QAAQC,SAASF,SAAS,0BAG5CG,GAAW,EAAAvC,EAAAA,SAAE,iCAAmCmC,EAAMX,MAAMC,IAE5D,EAAAzB,EAAAA,SAAEJ,KAAKX,MAAMgB,WAAWmC,SAAS,uBACjC,MAAMI,EAAeC,SAASF,EAASnC,IAAI,YAAa,IAElDsC,EAAe9C,KAAKX,MAAM0D,QAEhC,IAAIlB,EAAIU,EAAMX,MAAMoB,UAAUnB,EAAIiB,EAAajB,EAE3CA,EADAU,EAAMX,MAAMqB,OAASV,EAAMX,MAAM1B,OAAOgD,KAAKnC,OAAS,EAClDc,EAAIU,EAAMX,MAAMoB,UAAUG,MALlB,EAORtB,EAAIe,EAPI,EAWhB,GADAL,EAAMa,kBACF3D,OAAOC,YAAc,IACrBiD,EAASU,YAAY,QAAQ7C,IAAI,CAC7B2C,MAAO,OACPG,SAAU,OACV7C,IAAK,IACLG,KAAM,QAEP,CACH+B,EAASU,YAAY,QAErB,IAAI5C,EAAM8B,EAAMX,MAAMoB,UAAUjB,EAAIe,EAAaf,EAAIY,EAASY,cAAgB,EAE1E9D,OAAOC,YAAc,MACrBe,GAAY,KAGhBkC,EAASnC,IAAI,CACTC,IAAKA,EACLG,KAAMiB,OA1NN2B,OAAQ,CACJC,MAAO,CACHvB,OAAQ,WAEZwB,OAAQ,CACJC,MAAO,KACPC,YAAa,QAIzBC,KAAM,CACFC,qBAAqB,EACrBC,OAAQ,CACJ5E,SAAS,GAEb6E,UAAW,aAGnBC,eAAgB,EAChBpD,MAAO,CACHI,MAAO,CACHC,KAAM,KACNgD,MAAO,OACPjE,OAAQ,EACRkE,SAAU,EACVtC,EAAG,GACHE,EAAG,EACHzC,MAAO,CACH8E,WAAY,OACZT,MAAO,UACPU,SAAU,OACVC,SAAU,YAGlBC,WAAY,GACZC,UAAW,UACXC,OAAQ,CACJtF,SAAS,EACTqC,SAAS,EACTkD,cAAc,EACdpF,MAAO,CACHgF,SAAU,YAGlBK,UAAW,eAEfjE,MAAO,CACHkE,IAAK,EACL3D,MAAO,CACHC,KAAM,MACNgD,MAAO,OACPjE,OAAQ,EACRkE,SAAU,EACVpC,GAAI,GACJF,GAAI,GACJL,SAAS,EACTlC,MAAO,CACH8E,WAAY,OACZT,MAAO,UACPU,SAAU,OACVlB,MAAO,OACPmB,SAAU,WAGlBG,OAAQ,CACJI,UAAW,WACP,OAAQ,GAAK7E,KAAK8E,OAAOC,QAAQ,4BAA4B,SAAUC,GACnE,OAAOA,EAAK,QAGpB1F,MAAO,CACH8E,WAAY,OACZC,SAAU,SAGlBY,cAAe,UACfC,UAAW,EACXV,UAAW,WAEftE,OAAQ,CACJ,CACIiF,GAAI,SACJC,KAAM,SACNC,KAAM,aACN1B,MAAO,UACPT,KAAM,IAEV,CACIiC,GAAI,aACJC,KAAM,SACNC,KAAM,aACN1B,MAAO,UACPT,KAAM,IAEV,CACIiC,GAAI,WACJC,KAAM,SACNC,KAAM,oBACN1B,MAAO,UACPT,KAAM,IAEV,CACIiC,GAAI,MACJC,KAAM,OACNC,KAAM,uBACN1B,MAAO,UACPT,KAAM,IAEV,CACIiC,GAAI,OACJC,KAAM,OACNC,KAAM,uBACN1B,MAAO,UACPT,KAAM,KAGdoC,WAAY,CACRC,MAAO,CACH,CACIC,UAAW,CACPlC,SAAU,KAEdmC,aAAc,CACVpG,MAAO,CACH8D,MAAO,UAQ/B,IAAIuC,EAAQ,KACR/C,EAAW,KAEf,SAASgD,EAAYD,EAAOrG,IACxB,EAAAe,EAAAA,SAAEsF,GAAOrC,YAAY,WAsCzB,MAAMuC,EAAOF,IAAU,EAAAtF,EAAAA,SAAEsF,GAAOnF,KAAK,+BAA+BsF,aAiDpE,IAAIC,EAAe,GACfhF,EAAc,GAElB,SAASiF,EAAkBtB,GACnBA,EAAO1D,QACP0D,EAAOuB,SAASC,GAASA,EAAKC,YAGlCJ,EAAe,GAgBnB,SAAS9E,EAAO3B,EAAO6D,IACnB,EAAA9C,EAAAA,SAAEf,EAAMgB,WAAWE,KAAK,mDAAmDiC,SAAS,QAEpFuD,EAAkBD,GAClBhF,EAAcoC,EAEd,IAAK,IAAIiD,EAAI,EAAGA,EAAIjD,EAAKnC,OAAQoF,IAAK,CAClC,MAAMC,EAAmB,GACnBC,EAAa,GACbC,EAAc,EACdC,EAAiB,EACjBC,EAAInH,EAAMoH,YAAc,GAAKF,EACnC,IAAI1C,EACA6C,EACAxF,EACAyF,EACAC,EACAjD,EAAQ,OAEW,IAAnBT,EAAKiD,GAAGpF,QACR4F,EAAYzD,EAAKiD,GAAG,GACpBS,EAAU1D,EAAKiD,GAAG,GAClBjF,EAAOgC,EAAKiD,GAAG,KAEfQ,EAAYzD,EAAKiD,GAAG,GACpBS,EAAU1D,EAAKiD,GAAG,GAClBjF,EAAOgC,EAAKiD,GAAG,GACfxC,EAAQ,eAGZ,MAAMkD,EAAShI,WAAWiI,OAAO,GAAGjG,MAAM,GAAGF,SAASgG,EAAYP,GAC5DW,EAAOlI,WAAWiI,OAAO,GAAGjG,MAAM,GAAGF,SAASiG,EAAUR,GAEzDlF,EAAK8F,SAAS,YAQfnD,EAAOxE,EAAM4H,SACRhB,KAAK,CAAC,IAAKY,EAAQL,EAAG,IAAKK,EAAQL,EAAIF,EAAa,IAAKS,EAAOV,EAAYG,EAAIF,IAChFY,KAAK,CAAE,eAAgB,EAAGC,OAAQxD,IAClCyD,MACLV,EAAOrH,EAAM4H,SACRhB,KAAK,CAAC,IAAKc,EAAOV,EAAYG,EAAIF,EAAa,IAAKS,EAAMP,EAAIF,IAC9DY,KAAK,CAAE,eAAgB,EAAGC,OAAQxD,EAAO0D,UAAW,QACpDD,MAELtB,EAAawB,KAAKzD,GAClBiC,EAAawB,KAAKZ,KAjBlB7C,EAAOxE,EAAM4H,SACRhB,KAAK,CAAC,IAAKY,EAAQL,EAAG,IAAKK,EAAQL,EAAIF,EAAa,IAAKS,EAAMP,EAAIF,EAAa,IAAKS,EAAMP,IAC3FU,KAAK,CAAE,eAAgB,EAAGC,OAAQxD,IAClCyD,MAELtB,EAAawB,KAAKzD,IAetB,MAAM0D,EAAQ1D,EAAK2D,UACbC,EAAYpI,EAAM4H,SACnB/F,KAAK,yCAA2CA,EAAO,UAAW,EAAG,GAAG,GACxEgG,KAAK,CACFvD,MAAO,QACP+D,KAAM,YAETN,MAECO,EAAMF,EAAUD,UACtBC,EAAUP,KAAK,CAAErF,EAAG0F,EAAM1F,EAAI0F,EAAMpE,MAAQ,EAAIwE,EAAIxE,MAAQ,EAAGpB,EAAGyE,EAAID,EAAiBoB,EAAInI,OAAS,IACpGsG,EAAawB,KAAKG,IAI1B,SAASG,EAAelC,EAAOrG,GAC3B,IAAIwI,GAAO,EAAAzH,EAAAA,SAAEsF,GAAOnF,KAAK,iBACrBuH,EAAS,EACTC,EAAU,EAwCd,SAASC,EAAKC,EAAKJ,GACf,IAAIK,EAAUL,EAAKM,QAAO,WACtB,OAAO,EAAA/H,EAAAA,SAAEJ,MAAMkD,KAAK,aAAe+E,KAGvC,GAAmC,MAA/BC,EAAQhF,KAAK,eACT2E,EAAK9G,OAASkH,EAEdD,IADAC,EACUJ,IAEV,EAAAzH,EAAAA,SAAE,0BAA0BgI,QAAQ,cAIxC,GADAF,EAAQG,SAC8B,KAAlCH,EAAQhF,KAAK,uBAA6DoF,IAAlCJ,EAAQhF,KAAK,iBAAgC,CACrF,MAAMqF,EAAU1F,SAASqF,EAAQhF,KAAK,iBAAkB,IAClDA,EAAO7D,EAAMa,OAAOqI,GAASrF,KAC7BsF,EAAYN,EAAQ3H,KAAK,yBAAyBgD,cAAgB,EAClEkF,EAAU,GAChB,IAAIC,EAAWR,EAAQhF,KAAK,YAE5B,GAAIwF,EAAW,GAAKA,EAAWxF,EAAKnC,OAChC,OACO2H,GAAYxF,EAAKnC,SACxB2H,EAAWxF,EAAKnC,OAAS,GAG7B,IAAI4H,EAAUzF,EAAKwF,GAAUE,OAC7B,MAAMC,EAAU3F,EAAKwF,GAAU7G,EAE3B0G,EAAU,IACVI,EAAUzF,EAAKwF,GAAU3G,GAGzB2G,GAAY,GACZR,EAAQ3H,KAAK,yBAAyBC,IAAI,CACtCC,IAAKpB,EAAMqB,MAAM,GAAGC,SAASgI,IAAYH,EAAY,GAAK,KAC1D5H,KAAMvB,EAAMwB,MAAM,GAAGF,SAASkI,GAAWJ,EAAU,QA3ElEZ,EAAK9G,SAGN8G,EAAKiB,MAAK,YACN,EAAA1I,EAAAA,SAAEJ,MAAMkD,KAAK,WAAY6E,GACzBA,QAIR,EAAA3H,EAAAA,SAAEsF,GAAOnF,KAAK,uCAAuCyH,OAErDH,EAAKkB,GAAG,QAAS,0BAA0B,SAAUC,GACjDA,EAAEC,kBAEF,EAAA7I,EAAAA,SAAEsF,GAAOnF,KAAK,uCAAuCyH,OACrDH,EAAKiB,MAAK,YACN,EAAA1I,EAAAA,SAAEJ,MAAMkJ,gBAIhBrB,EAAKkB,GAAG,QAAS,yBAAyB,SAAUC,GAChDA,EAAEC,iBA6DN,SAAchB,EAAKJ,GACfA,EAAKM,QAAO,WACR,OAAO,EAAA/H,EAAAA,SAAEJ,MAAMkD,KAAK,aAAe+E,KACpCiB,UA9DHC,CAAKrB,EAAQD,GAEbG,IADAF,EACaD,OAGjB,EAAAzH,EAAAA,SAAEsF,GACGnF,KAAK,uCACLwI,GAAG,SAAS,SAAUC,GACnBA,EAAEC,kBAEF,EAAA7I,EAAAA,SAAEJ,MAAMmJ,OAERnB,EADAF,EAAS,EACID,OAsDzB,MAAM7I,EAAuB,CACzBC,WACAN,KAjRJ,SAAcyK,GAA4B,IAAhBC,EAAgB,uDAAJ,GAClC,IAAIC,EAAUlJ,EAAAA,QAAEmJ,QAAO,EAAMF,EAAWpK,GACxCyG,EAAQ0D,EAER,MAAM3C,GAAc,EAAArG,EAAAA,SAAEsF,GAAOwB,KAAK,qBAC9BT,IACA6C,EAAQjK,MAAMG,OAASiH,IAG3B,EAAArG,EAAAA,SAAEsF,GACGnF,KAAK,+BACLsF,WAAWyD,GAAUjK,IAClBsG,EAAYD,GAEZ8D,YAAW,YACP,EAAApJ,EAAAA,SAAEX,QAAQ2I,QAAQ,YACnB,GAEHR,EAAewB,EAAY/J,IAE3B,EAAAe,EAAAA,SAAEX,QAAQgK,QAAO,WACbpK,EAAMU,YAGV4C,GAAW,EAAAvC,EAAAA,SAAEsF,GAAOnF,KAAK,wBACzB,EAAAH,EAAAA,SAAEX,OAAQjB,UAAUuK,GAAG,iBAAiB,WACpCpG,GAAW,EAAAvC,EAAAA,SAAEsF,GAAOnF,KAAK,uBACzBoC,EAASH,SAAS,SAElB,EAAApC,EAAAA,SAAE,2BAA2BiD,YAAY,2BACzC,EAAAjD,EAAAA,SAAEf,EAAMgB,WAAWgD,YAAY,8BAoP3CuC,MACAM,QA/OaR,GAAUE,EAAIF,GAAOQ,UAgPlCwD,OArLJ,SAAgBxJ,GACZE,EAAAA,QAAE0I,KAAK5I,GAAQ,CAACiF,EAAIjC,KAChB0C,EAAIF,GAAOiE,IAAIxE,GAAIyE,QAAQ1G,GAAM,MAGjCpC,IACAA,EAAc,GACdiF,EAAkBD,IAGtBF,EAAIF,GAAO3F,UA4KXiB,SACA4G,kBAGJ5I,EAAqBL,KAAK,2BAEXK,0GChef,QACA,QAEA,iBACA,aACA,WAEA,UACA,QACA,QACA,QAEA,IA0CW6K,EA1CX,aACA,aAEA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,aAEA,GADA,WACA,YACA,aACA,aACA,aACA,gEAEAC,EAAAA,EAAOC,UAAYtK,OAAOsK,UAAY,CAAEC,SAAAA,EAAAA,QAAUC,IAAAA,EAAAA,SAClDxK,OAAOyK,SAAWzK,OAAO0K,OAAS,IAAIC,EAAAA,QAAO,CACzC3F,OAAQ,CACJ4F,GAAI,KACJC,OAAQ,cAGhB7K,OAAO8K,MAAQ,IAAIC,EAAAA,QACnB/K,OAAOgL,MAAQ,IAAIC,EAAAA,QAEfC,EAAAA,QAAIC,eAEJC,QAAQC,IACH,cAAaH,EAAAA,QAAII,WAClB,gHACA,qHAKGlB,EAERrL,SAASwM,iBADLC,UAAYpB,EAAGoB,UAAUlG,QAAQ,QAAS,UAG1C,MAAMrG,EAAO,CAEhBC,KAAM,YACF,EAAAuM,EAAAA,WAEAC,EAAAA,QAAIxM,KAAK,CACLyM,MAAM,EACNnL,OAAQ,IACRoL,SAAU,MAGdtM,EAAAA,IAAIuM,OAAO3M,OAEX4M,EAAAA,QAAS5M,OACT6M,EAAAA,QAAK7M,OACL8M,EAAAA,QAAU9M,OACV+M,EAAAA,QAAS/M,OACTgN,EAAAA,QAAiBhN,OACjBiN,EAAAA,QAAUjN,OACVkN,EAAAA,QAAWlN,OACXmN,EAAAA,QAAcnN,OACdoN,EAAAA,QAAWpN,OACXqN,EAAAA,QAAarN,OACbsN,EAAAA,QAAYtN,OACZuN,EAAAA,QAAWvN,OAEXwN,EAAAA,QAAYxN,OAGRH,SAAS4N,cAAc,uBACvB,wDAA2CC,MAAMC,GAAW,IAAIA,EAAOC,UAGvE/N,SAAS4N,cAAc,iBACvB,+BAAoCC,MAAMC,GAAW,IAAIA,EAAOC,UAGhE/N,SAAS4N,cAAc,uBACvB,+BAA4CC,MAAMC,GAAW,IAAIA,EAAOC,UAIxE/N,SAASgO,eAAe,eACxB/M,OAAOhB,iBAAiB,qBAAqB,SAAUgO,GAC/CC,UAAUC,QAAQC,WAClB,wDAAwCP,MAAMC,GAAW,IAAIA,EAAOC,cAKhF,EAAAnM,EAAAA,SAAEX,QACGsJ,GAAG,cAAc,WAGdS,YAAW,WACP,IAAIqD,EAAaC,KAAKnD,IAAI,QACrB,EAAAvJ,EAAAA,SAAE,2BAA2B2M,GAAGF,GAAYG,SAAS,YACtD,EAAA5M,EAAAA,SAAE,2BAA2B2M,GAAGF,GAAYzE,QAAQ,SAGxD,IAAI6E,EAAmBH,KAAKnD,IAAI,cAE3B,EAAAvJ,EAAAA,SAAE,2CAA6C6M,EAAmB,MAC9D3M,QAAQ,cACR0M,SAAS,UAEd,EAAA5M,EAAAA,SAAE,2CAA6C6M,EAAmB,MAAM7E,QAAQ,WAErF,MAENW,GAAG,SAAS,SAAUC,IAEd,EAAA5I,EAAAA,SAAE4I,EAAEkE,QAAQF,SAAS,mCACrB,EAAA5M,EAAAA,SAAE4I,EAAEkE,QAAQ5M,QAAQ,mCAAmCS,SAExD,EAAAX,EAAAA,SAAE,oCAAoCiD,YAAY,WAK9D,IAAK,MAAM8J,IAAO,IAAI3O,SAAS4O,uBAAuB,QAElDD,EAAI1O,iBAAiB,SAAS,KAE1B,MAAM4O,EAAa,IAAI7O,SAAS8O,qBAAqB,UAAU/M,MAAM4F,GACjEA,EAAEoH,QAAQ,QAAQC,UAAUC,SAAS,WAErCJ,IACA,EAAAjN,EAAAA,SAAE,cAAcsN,QAAQ,CAAEC,WAAW,EAAAvN,EAAAA,SAAEiN,GAAYpN,SAASQ,IAAM,IAAM,+GClJ5F,mCAEA,MAAMmN,SACFC,cAWI,GAVA7N,KAAK8N,eAAiB,GACtB9N,KAAK+N,WAAa,GAClB/N,KAAKgO,oBAAqB,EAC1BhO,KAAKiO,sBAAwB,EAC7BjO,KAAKkO,4BAA6B,EAClClO,KAAKmO,uBAAyB,GAE9BnO,KAAK8N,eAAiBtP,SAAS4N,cAAc,wBAGzCpM,KAAK8N,eAAgB,CACrB,MAAMM,EAAIpO,KAAK8N,eAAeO,QAAQC,iBACtCtO,KAAKuO,0BAA0BH,GAC/B3O,OAAO+O,mBAAqB/O,OAAO+O,oBAAsB,IAAIC,MAC7DhP,OAAO+O,mBAAmBlH,KAAKtH,KAAK0O,oBAI5CC,gBAAgBC,EAAMC,EAAIC,EAAUC,GAChC,MAAMC,EAASjQ,KAAAA,IAAIkQ,UAInB,GAHAD,EAAOf,wBAEFY,IAAIG,EAAOhB,oBAAqB,GACjCgB,EAAOf,sBAAwB,EAAG,CAClC,GAAIe,EAAOhB,mBAEP,YADAvO,OAAOyP,SAASC,KAAOH,EAAOjB,YAGlCiB,EAAOI,mBAKfC,mBAAmBT,EAAMU,GACrB,MAAMN,EAASjQ,KAAAA,IAAIkQ,UACnBD,EAAOjB,WAAauB,EAEN9Q,SAASgO,eAAe,0BAC9BgB,UAAUpG,IAAI,QAEtB4H,EAAOO,eAAeX,GAEtB,IAAIY,EAAI/P,OAAO+O,oBACVgB,QAAiB,IAALA,GAAoBA,EAAEzO,OAAS,EAC5CiO,EAAOL,gBAAgBC,GAAM,EAAM,GAAI,6CAG3CI,EAAOf,sBAAwBuB,EAAEzO,OACjCiO,EAAOhB,oBAAqB,EAC5BwB,EAAExJ,SAAQ,SAAUyJ,GAAKA,EAAEb,EAAMI,EAAOL,qBAI5Ce,aAAaxM,EAAMoM,EAAKK,EAAYC,GAChCC,MAAMP,EAAK,CACPQ,OAAQ,OACRC,QAAS,CACL,eAAgB,qCAEpBC,KAAM9M,IACPmJ,MAAKyC,GAAYA,EAASmB,SAAQ5D,MAAK4D,IAClCA,EAAKpB,GACLc,EAAW,KAAMM,GAEjBL,EAAcK,EAAKC,QAASD,MAEjCE,OAAMC,IACLR,EAAcQ,EAAMC,YAK5Bd,eAAeX,GACX,MAAM0B,EAAa,GAAR1B,EAAY,aAAe,OAChC2B,GAAc,GAAT3B,EAAa,aAAe,OACjC4B,EAAIhS,SAASgO,eAAe,qBAC9BgE,GAAGA,EAAEhD,UAAUpG,IAAIkJ,GACvB,MAAMG,EAAIjS,SAASgO,eAAe,qBAC9BiE,GAAGA,EAAEjD,UAAUpG,IAAImJ,GAG3BnB,gBAAgBR,GACZ,MAAM4B,EAAIhS,SAASgO,eAAe,qBAC9BgE,IACAA,EAAEhD,UAAUkD,OAAO,cACnBF,EAAEhD,UAAUkD,OAAO,SAEvB,MAAMD,EAAIjS,SAASgO,eAAe,qBAC9BiE,IACAA,EAAEjD,UAAUkD,OAAO,cACnBD,EAAEjD,UAAUkD,OAAO,SAK3BhC,kBAAkBE,KAAM+B,UACpB,MAAM3B,OAASjQ,KAAAA,IAAIkQ,UACbK,IAAMN,OAAOb,uBAAuBmB,IAE1C,IAAa,GAATV,MAA4D,GAA9CI,OAAOb,uBAAuByC,aAAhD,CAKA,GAAI5B,OAAOb,uBAAuB0C,cAAe,CAC7C,MAAMC,EAAIC,KAAK/B,OAAOb,uBAAuB0C,eAC7C,IAAKC,EAED,YADAH,SAAS/B,MAAM,EAAO,GAAI,wBAKlC,IAAI1L,KAAO9C,EAAE4O,OAAOlB,gBAAgBkD,YACpChC,OAAOU,aAAaxM,KAAMoM,KAAM2B,GAAMlS,KAAAA,IAAIkQ,UAAUiC,0BAA0BP,SAAU/B,MAAM,EAAM,QAAQqC,GAAMlS,KAAAA,IAAIkQ,UAAUiC,0BAA0BP,SAAU/B,MAAM,EAAOqC,UAb7KlS,KAAAA,IAAIkQ,UAAUiC,0BAA0BP,UAAW,GAAG,EAAM,MAiBpEO,0BAA0BP,EAAU/B,EAAMC,EAAIsC,EAAKlB,GAC/C,IAAKpB,EAAI,CACL,IAAIuC,EAAU5S,SAASgO,eAAe,0BACpBhO,SAASgO,eAAe,uBAC9B6E,UAAYF,GAAO,GAC/BC,EAAQ5D,UAAUkD,OAAO,QAE7BC,EAAS/B,EAAMC,EAAIsC,GAGvB5C,0BAA0B+C,GACtB,MAAMC,EAAIC,KAAKC,MAAMH,GACfL,EAAIjR,KAAKmO,uBAEf8C,EAAE3B,IAAMiC,EAAEjC,KAAO,GACjB2B,EAAEJ,cAAgBU,EAAEV,eAAiB,GACrCI,EAAEL,aAAeW,EAAEX,eAAgB,GAI3C7R,KAAAA,IAAIkQ,UAAY,IAAIrB,sCC7IpB,cAEA7O,EAAAA,IAAIuM,OAAS,CACT3M,OACQH,SAASkT,iBAAiB,kDAAkD3Q,QAAQhC,EAAAA,IAAIuM,OAAOqG,OAC/FnT,SAASkT,iBAAiB,mBAAmB3Q,QAAQhC,EAAAA,IAAIuM,OAAOsG,WAChEpT,SAASkT,iBAAiB,8BAA8B3Q,QAAQhC,EAAAA,IAAIuM,OAAOuG,yBAC3ErT,SAASkT,iBAAiB,iBAAiB3Q,QAAQhC,EAAAA,IAAIuM,OAAOwG,UAEtEH,OACInT,SAASkT,iBAAiB,kDAAkD1L,SAAQ+L,IAChFA,EAAMC,OAAS,IAAIC,OAAOF,EAAO,CAC7BJ,MAAM,EACNO,YAAa,CAAC,IAAK,IAAK,KACxBC,UAAW,UAIvBP,WACIpT,SAASkT,iBAAiB,mBAAmB1L,SAAQ+L,IACjDA,EAAMC,OAAS,IAAIC,OAAOF,EAAO,CAC7BK,SAAS,EACTC,mBAAoB,IACpBF,UAAW,UAIvBN,yBACIrT,SAASkT,iBAAiB,8BAA8B1L,SAAQ+L,IAC5DA,EAAMC,OAAS,IAAIC,OAAOF,EAAO,CAC7BK,SAAS,EACTC,mBAAoB,IACpBF,UAAW,IACXG,oBAAqB,QAIjCR,SACItT,SAASkT,iBAAiB,iBAAiB1L,SAAQ+L,IAC/CA,EAAMC,OAAS,IAAIC,OAAOF,EAAO,CAC7BK,SAAS,EACTC,mBAAoB,IACpBF,UAAW,uCC1C3B,QAQApT,IAAIwT,iBAAmB,IAAI,WACvB,IAAIC,EAAOxS,KAmJX,SAASyS,EAAeC,GACpB,IAAIC,EAAID,EAAI5N,MAAMC,QAAQ,MAAO,IAAIA,QAAQ,KAAM,KAC/C6N,EAAKF,EAAIG,gBAAkBC,MAAMJ,EAAIG,eAAkBH,EAAIG,cAAgBE,OAAOJ,GAC7ED,EAAIG,cACb,OAAOD,EAUX,SAASI,EAAiBtQ,GACtB,IAAIuQ,EAAQ7S,EAAEsC,GACVwQ,EAAiBD,EAAM/P,KAAK,cAC5BiQ,EAAgBD,GAAkB,GAOtC,MAL8B,iBAAlBC,GAA8BD,IAAgBC,EAAgB3B,KAAKC,MAAMyB,IACjFD,EAAM,GAAGG,aAAa,SAAQD,EAAcvO,IAAM/B,SAASoQ,EAAM/L,KAAK,OAAQ,KAC9E+L,EAAM,GAAGG,aAAa,SAAQD,EAAcE,IAAMxQ,SAASoQ,EAAM/L,KAAK,OAAQ,KAClFiM,EAAcG,SAAWH,EAAcG,UAAaL,GAASA,EAAM/L,KAAK,YAEjEiM,EAIX,SAASI,EAAmB7Q,EAASiF,EAAK6L,GAChC9Q,aAAmB+Q,SAAS/Q,EAAUtC,EAAEsC,IAQlD,SAA+BgR,EAAM/L,EAAK6L,GAChCE,aAAgBD,SAClBC,EAAOtT,EAAEsT,IAGb,MAAMC,EAAQD,EAAKnG,QAAQ,UAKrBqG,EAJUD,EACXpT,KAAK,WACL4H,QAAO,CAAC0L,EAAKC,IAAW1T,EAAE0T,GAAQvG,QAAQ,UAAU5D,IAAI,GAAGoK,WAAWJ,EAAMhK,IAAI,MAE9DqK,QACvB,IAAIC,EAAcL,EAAO1Q,KAAK,eAC1BgR,EAAWN,EAAO1S,QACjB+S,GAAeC,IAChBN,EAAO1Q,KAAK,cAAegR,GAC3BD,EAAcC,GAElB,IAAIC,EAAOX,EAAkBE,EAAKxQ,KAAK,mBAAqBwQ,EAAKxQ,KAAK,iBACtE,GAAIyE,EAAK,EACaiM,EAAOQ,WAAWrT,OAAS6S,EAAOQ,WAAWzK,IAAI,GAAKiK,GAC9D1S,KAAOyG,OACd,GAAIwM,EAAM,CACb,IAAIhB,EAAgBH,EAAiBU,EAAK,IACtCzC,EAAI,WACJ,OArDgBoD,EAqDOlB,GArDhBmB,EAqDUH,GAnDlBG,EAAQvP,QAAQ,gBAAgB,SAAUwP,EAAIC,EAAIC,GAAM,OAAyB,MAAjBJ,EAAUI,GAAeJ,EAAUI,GAAMF,KAD3FD,EADzB,IAAmBA,EAASD,GAuDpBT,EAAO1S,KAAK+P,QACT,GAAIgD,EAAa,EACFL,EAAOQ,WAAWrT,OAAS6S,EAAOQ,WAAWzK,IAAI,GAAKiK,GAC9D1S,KAAO+S,GAnCrBS,CAAsBhS,EAASiF,EAAK6L,GACpC9Q,EAAQ6K,QAAQ,UAAUhN,KAAK,aAAayH,OAC5CtF,EAAQ6K,QAAQ,UAAU/K,SAAS,SAlLvCxC,KAAK2U,QAAU,GACf3U,KAAKrB,KAAO,SAAUiW,GAClBxU,EAAE,sBAAsB2I,GAAG,QAAQ,SAAU8L,GACrCrC,EAAKsC,WAAW9U,OAChBwS,EAAKuC,iBAAiB/U,SAE3B+I,GAAG,SAAS,SAAU8L,GACrBG,gBAAgBhV,SACjB+I,GAAG,SAAS,SAAU8L,GACrBrC,EAAKyC,mBAAmBJ,EAAM7U,UAItCA,KAAKkV,SAAWxC,GAA6B,OAArBA,EAAIyC,aAE5BnV,KAAKoV,mBAAqB,SAAUC,GAChC,IAAIxG,GAAK,EAQT,OAPAzO,EAAEiV,GAAgBvM,MAAK,SAAU7F,GACpB7C,EAAEJ,MACNwS,EAAKsC,WAAW9U,MAAM,KACvB6O,GAAK,MAINA,GAIX7O,KAAKsV,8BAAgC,SAAUD,GAC3C,IAAIxG,GAAK,EACL0G,EAAO,KAYX,OAXAnV,EAAEiV,GAAgBvM,MAAK,SAAU7F,GACxBuP,EAAKsC,WAAW9U,MAAM,KACnB6O,IAAI0G,EAAOvV,MACf6O,GAAK,MAIRA,GACD2D,EAAKgD,YAAYD,GAGd1G,GAGX7O,KAAKwV,YAAc,SAAS9C,GACxBtS,EAAE,cAAcsN,QAAQ,CAAEC,UAAWvN,EAAEsS,GAAKzS,SAASQ,IAAM,IAAM,MAGrET,KAAKyV,gBAAkB,CAACZ,EAAMa,IAAQV,gBAAgBU,GAEtD1V,KAAKiV,mBAAqB,SAAUJ,EAAMa,GACtC,IAAIvC,EAAgBH,EAAiB0C,GACjCC,GAAQ,EAEc,WAAtBxC,EAAc/N,OAAmBuQ,EAASd,EAAKe,MAAQ,IAAMf,EAAKe,MAAQ,IAC7D,UAAb5V,KAAKoF,MAA0C,UAAtB+N,EAAc/N,OAAkBuQ,GAAUd,EAAKe,MAAQ,IAAMf,EAAKe,MAAQ,KAAmB,KAAZf,EAAKgB,KAA0B,KAAZhB,EAAKgB,KAClIF,GAAOd,EAAK5L,kBAGpBjJ,KAAK+U,iBAAmB,SAAUrS,GAE9B,GAA0B,WADNsQ,EAAiBtQ,GACnB0C,KAAmB,CACjC,IAAIwN,EAAIH,EAAe/P,GAASoT,eAAe,MAC/CpT,EAAQoC,MAAQ8N,IAIxB5S,KAAK8U,WAAa,SAAUpS,EAASqT,GACrB3V,EAAEsC,GAAd,IACIoC,EAAQpC,EAAQoC,MAChBqO,EAAgBH,EAAiBtQ,GACrC,IAAKoC,EAAO,CACR,IAAIqO,EAAc6C,oBAAuBD,EAGrC,OAAO5C,EAAcG,SAAWC,EAAmB7Q,EAAS,IAAI,GAAQsS,gBAAgBtS,GAFxFoC,EAAQpC,EAAQoC,MAAQqO,EAAc6C,mBAM9C,GAAI7C,EAAc/N,KAAM,CACpB,GAA2B,SAAvB+N,EAAc/N,KAAiB,OAAO6Q,aAAavT,GACvD,GAA2B,UAAvByQ,EAAc/N,KAAkB,OAAO8Q,cAAcxT,GACzD,GAA2B,YAAvByQ,EAAc/N,KAAoB,OAAO+Q,gBAAgBzT,GAC7D,GAA2B,gBAAvByQ,EAAc/N,KAAwB,OAAOgR,oBAAoB1T,GACrE,GAA2B,kBAAvByQ,EAAc/N,KAA0B,OAAOiR,sBAAsB3T,GACzE,GAA2B,mCAAvByQ,EAAc/N,KAA2C,OAAOkR,0CAA0C5T,GAC9G,GAA2B,UAAvByQ,EAAc/N,KAAkB,OAAOmR,aAAa7T,GACxD,GAA2B,QAAvByQ,EAAc/N,KAAgB,OAAOoR,YAAY9T,GACrD,GAA2B,wBAAvByQ,EAAc/N,KAAgC,OAAOqR,4BAA4B/T,GACrF,GAA2B,QAAvByQ,EAAc/N,KAAgB,OAAOsR,YAAYhU,GAGzD,GAAqB,UAAjBA,EAAQ0C,MAA2C,UAAvB+N,EAAc/N,KAC1C,OAAO+N,EAAcG,SAAWqD,sBAAsBjU,GAAWkU,cAAclU,GAEnF,GAAqB,UAAjBA,EAAQ0C,MAA2C,UAAvB+N,EAAc/N,KAC1C,OAAO+N,EAAcG,SAAWuD,wBAAwBnU,GAAWoU,gBAAgBpU,GAGvF,GAAqB,SAAjBA,EAAQ0C,MAA0C,SAAvB+N,EAAc/N,KACzC,OAAO+N,EAAcG,SAAWyD,qBAAqBrU,EAASyQ,EAAcvO,IAAKuO,EAAcE,KAAO2D,aAAatU,EAASyQ,EAAcvO,IAAKuO,EAAcE,KAGjK,GAAqB,WAAjB3Q,EAAQ0C,MAA4C,YAAvB+N,EAAc/N,MAA6C,WAAvB+N,EAAc/N,MAAqB+N,EAAc8D,cAAe,CACjI,IAAIC,EAAMzE,EAAe/P,GACzB,GAAIoQ,MAAMoE,GACN,OAAO3D,EAAmB7Q,GAG9B,IAAKoQ,MAAMK,EAAcvO,MAAQsS,EAAM/D,EAAcvO,IAAK,CACtD,GAAkC,aAA9BuO,EAAcgE,aAGd,OAAO5D,EAAmB7Q,GAF1BA,EAAQoC,MAAQqO,EAAcvO,IAKtC,IAAKkO,MAAMK,EAAcE,MAAQ6D,EAAM/D,EAAcE,IAAK,CACtD,GAAkC,aAA9BF,EAAcgE,aAGd,OAAO5D,EAAmB7Q,GAF1BA,EAAQoC,MAAQqO,EAAcE,KAM1C,GAAqB,UAAjB3Q,EAAQ0C,MAA2C,UAAvB+N,EAAc/N,KAAkB,CAC5D,MAAMC,EAAO3C,EAAQ2C,KAGrB,IAFkB,IAAI7G,SAASkT,iBAAkB,SAAQrM,OACzB+R,MAAKC,GAAYA,EAASC,UAEtD,OAAO/D,EAAmB7Q,GAKlC,QAAoC4F,IAAhC6K,EAAc8D,cAA6B,CAC3C,IAAIrE,EAAIH,EAAe/P,GACvBA,EAAQoC,MAAQ8N,EAAE2E,QAAQpE,EAAc8D,eAAelS,QAAQ,IAAK,IAAIA,QAAQ,IAAK,KAChE,IAAjBrC,EAAQoC,QAAapC,EAAQoC,MAAQ8N,EAAE2E,QAAQpE,EAAc8D,gBAIrE,OADAjC,gBAAgBtS,IACT,6FCzJR,MAAM3D,EAAMU,OAAOV,KAAO,wCCAjC,QAEAA,IAAIyY,KAAO,8GCFX,gDACA,QACA,cAEO,MAAM/L,EAAY,CACrB9M,KAAM,SAAU+G,GACZA,EAAQA,EAAQA,EAAQ,IAAM,IAE9B,EAAAtF,EAAAA,SAAEsF,EAAQ,oCAAoCqD,GAAG,SAAS,WACtD,IAAIyJ,GAAO,EAAApS,EAAAA,SAAEJ,MACTyX,EAASjF,EAAKlS,QAAQ,eAE1B,EAAAF,EAAAA,SAAE,cAAcsX,IAAID,GAAQpU,YAAY,SACxC,EAAAjD,EAAAA,SAAE,cAAcsX,IAAID,GAAQlX,KAAK,sBAAsBoX,UAEvDF,EAAOG,YAAY,QACnBH,EAAOlX,KAAK,sBAAsBsX,aAAY,YAEtC,EAAAzX,EAAAA,SAAEqX,GAAQA,SAASzK,SAAS,6BAIhCF,KAAK1F,IAAI,CAAE,UAAaoL,EAAKtL,KAAK,QAAQnC,QAAQ,IAAK,MAEnD+S,gBACA,EAAA1X,EAAAA,SAAE,cAAcsN,QAAQ,CAAEC,UAAY8J,EAAOxX,SAASQ,IAAM+R,EAAKjP,cAAiB,MAAQ,MAE1F,EAAAnD,EAAAA,SAAE,cAAcsN,QAAQ,CAAEC,UAAY8J,EAAOxX,SAASQ,IAAM+R,EAAKjP,cAAiB,MAAQ,SAIlG,IAAK,IAAI4C,EAAI,EAAGA,EAAI1G,OAAOZ,WAAWiI,OAAO/F,OAAQoF,IACjD1G,OAAOZ,WAAWiI,OAAOX,GAAG4R,SAGhC,OAAO,KAGX,IAAI9K,EAAmBH,KAAKnD,IAAI,cAChC,EAAAvJ,EAAAA,SAAEsF,EAAQ,2CAA6CuH,EAAmB,MAAM7E,QAAQ,+BAIjFqD,cAEf1M,EAAAA,IAAIyY,KAAK/L,UAAYA,6GC7CrB,gDACA,QACA,cAEO,MAAMG,EAAY,CACrBjN,KAAM,WA0DF,SAASqZ,EAAmB3S,GACxB,OAAO4S,EAAuB5S,IAAS6S,aAAa7S,GAGxD,SAAS8S,EAAoBC,GACzB,OAAOH,EAAuBG,IAAUtB,gBAAgBsB,GAG5D,SAASH,EAAuBvE,GAC5B,IAAI2E,EAAY3E,EAAK4E,QAAQ,YAC7BD,EAAUlP,OACV,IAAIoP,EAAeF,EAAUlQ,OAAO,6BAEpC,OAAIoQ,EAAaxX,OAAS,IAAMuS,SAASI,IACrC6E,EAAavQ,QACN,IACAuQ,EAAaxX,OAAS,GAC7BwX,EAAapP,QAEV,GAGX,SAASqP,EAAwBC,GAC7B,IAAIC,EAAWnC,aAAakC,GACxBE,EAAWjC,YAAY+B,GAC3B,SAAIC,EAASD,MAAOE,KAChB3D,gBAAgByD,GACZC,EAASD,MAAQC,EAASE,WAC1BC,kBAAkBJ,IAEf,GAKf,SAASK,EAAoBC,EAAOC,GAChC,OAAyB1Q,MAArB0Q,GAAwD,WAAtBA,EAC3Bf,EAAuBc,IAAUnC,cAAcmC,GAE/CnC,cAAcmC,IAhG7B,EAAA3Y,EAAAA,SAAE,yBAAyB2I,GAAG,QAAS,MAAM,YACzC,EAAA3I,EAAAA,SAAE,4BAA4BiD,YAAY,WAE1C,EAAAjD,EAAAA,SAAEJ,MAAMwC,SAAS,UACjB,IAAI2C,GAAK,EAAA/E,EAAAA,SAAEJ,MAAMkD,KAAK,YACtB,EAAA9C,EAAAA,SAAE,oBAAoBuX,WAElB,EAAAvX,EAAAA,SAAE,mCAAmCW,QACrC,EAAAX,EAAAA,SAAE,oBAAsB+E,GAAI8T,aAE5B,EAAA7Y,EAAAA,SAAE,oBAAoBuX,WAGJ,EAAAvX,EAAAA,SAAE,6BAA6B4T,QACrCkF,IAAI,MACpB,EAAA9Y,EAAAA,SAAE,4BAA4BiD,YAAY,WACpB,EAAAjD,EAAAA,SAAE,6BAA6B4T,QACrCkF,IAAI,QAGxB,EAAA9Y,EAAAA,SAAE,yBAAyB2I,GAAG,QAAS,MAAM,YACzC,EAAA3I,EAAAA,SAAE,4BAA4BiD,YAAY,WAEpB,EAAAjD,EAAAA,SAAE,6BAA6B4T,QACrCkF,KAAI,EAAA9Y,EAAAA,SAAEJ,MAAMkD,KAAK,gBAEjC,EAAA9C,EAAAA,SAAEJ,MAAMwC,SAAS,cAyBrB,EAAApC,EAAAA,SAAE,gDAAgD2I,GAAG,QAAQ,SAAUxG,GAASyV,GAAmB,EAAA5X,EAAAA,SAAEmC,EAAM2K,aAC3G,EAAA9M,EAAAA,SAAE,+CAA+C2I,GAAG,QAAQ,SAAUxG,GAASiW,GAAwB,EAAApY,EAAAA,SAAEmC,EAAM2K,aAC/G,EAAA9M,EAAAA,SAAE,iDAAiD2I,GAAG,QAAQ,SAAUxG,GAAS4V,GAAoB,EAAA/X,EAAAA,SAAEmC,EAAM2K,aAC7G,EAAA9M,EAAAA,SAAE,iDAAiD2I,GAAG,QAAQ,SAAUxG,GAASuW,GAAoB,EAAA1Y,EAAAA,SAAEmC,EAAM2K,aAC7G,EAAA9M,EAAAA,SAAE,sDAAsD2I,GAAG,QAAQ,SAAUxG,GAAS4W,uBAAsB,EAAA/Y,EAAAA,SAAEmC,EAAM2K,aA6CpH,EAAA9M,EAAAA,SAAE,iCAAiCgZ,QAAO,WACtC,OAAO,MAEX,EAAAhZ,EAAAA,SAAE,2BAA2BkC,OAAM,SAAUC,GAEzC,IAAI8W,GAAQ,EAAAjZ,EAAAA,SAAE,WACV4Y,GAAoB,EAAA5Y,EAAAA,SAAEJ,MAAMkH,KAAK,SACjCoS,EA9ER,SAAwBD,EAAOL,GAC3B,IAAIM,GAAQ,EACRjU,EAAOgU,EAAM9Y,KAAK,kBAAkByT,QACpCyE,EAAMY,EAAM9Y,KAAK,iBAAiByT,QAClC+E,EAAQM,EAAM9Y,KAAK,mBAAmByT,QACtCoE,EAAQiB,EAAM9Y,KAAK,mBAAmByT,QACtCuF,EAAUF,EAAM9Y,KAAK,wBAAwByT,QAEjDsF,EAAQtB,EAAmB3S,GAC3BiU,EAAQH,sBAAsBI,IAAYD,EAC1CA,EAAQnB,EAAoBC,IAAUkB,EACtCA,EAAQd,EAAwBC,IAAQa,EACxCA,EAAQR,EAAoBC,EAAOC,IAAsBM,EAEzD,IAAIE,EAAYL,sBAAsBE,EAAM9Y,KAAK,+BAA+ByT,SAKhF,OAJAsF,EAAQE,GAAaF,EACjBE,IACAF,EAAQH,sBAAsBE,EAAM9Y,KAAK,+BAA+ByT,UAAYsF,GAEjFA,EA2DKG,CAAeJ,EAAOL,GAC9BU,EAAY,qBAAuBV,EACnCW,EAAWN,EAAMrI,YAAc0I,EAsBnC,OArBIJ,GACAlZ,EAAAA,QAAEwZ,KAAK,CACHtK,IAAK+J,EAAMnS,KAAK,UAChB9B,KAAMiU,EAAMnS,KAAK,UACjBhE,KAAMyW,IACPE,MAAK,SAAU3W,GACd,GAAIA,EAAK4W,QAAS,CACdT,EAAMjR,QAAQ,SACd,IAAI2R,EAASV,EAAMnW,KAAK,kBACpB8W,EAAUX,EAAMnW,KAAK,mBACzBgH,SAAS+P,MAAM,OAASF,EAAS,mBAAqBC,EAAU,kBAChE,EAAA5Z,EAAAA,SAAE,oBAAoBuX,WACtB,EAAAvX,EAAAA,SAAE,4BAA4BiD,YAAY,WAC1C,EAAAjD,EAAAA,SAAE,4BAA4BiD,YAAY,WAC1C,EAAAjD,EAAAA,SAAE,eAAeuX,eAEjBzN,SAAS+P,MAAO,eAAcZ,EAAMnW,KAAK,2CAA2CmW,EAAMnW,KAAK,qCAKpG,2BAKJ0I,cAEf7M,EAAAA,IAAIyY,KAAK5L,UAAYA,k+BCxHrB,SAASsO,EAAY/P,EAAQgQ,GACzB,OAAOhQ,EAAOuH,iBAAkB,aAAYyI,MAGhD,SAASC,EAAWjQ,EAAQgQ,GACxB,OAAOD,EAAY/P,EAAQgQ,GAAY,0JAWjCE,GACFra,KAAKsa,SAAL,GACInV,GAAI,SACJV,OAAQ,CACJ4F,GAAI,KACJC,OAAQ,WAET+P,cAIUA,EAAUE,GAC3B,MAAMtb,EAAW,EAAH,KACPsb,GACAF,GAGHra,KAAKwa,QAAQja,MAAM4J,GAAWA,EAAOhF,KAAOlG,EAASkG,OACrDlG,EAASkG,GAAM,GAAElG,EAASkG,MAAMnF,KAAKwa,QAAQzZ,UAGjD,MAAMoJ,EAAS3L,SAASic,cAAc,UA8BtC,OA7BAtQ,EAAOqD,UAAUpG,OACV,CACCmT,EAAepV,GACd,GAAEoV,EAAepV,MAAMlG,EAASmG,MAAQ,YACzCnG,EAASgM,WAAa,MACxB9C,QAAQuS,GAAoB,OAAVA,KAExBvQ,EAAOwQ,aAAa,KAAM1b,EAASkG,IACnCgF,EAAOwQ,aAAa,OAAQ,UAC5BxQ,EAAOkE,QAAQuM,UAAY5a,KAAK6a,gBAAkB,SAAW,YAE7D1Q,EAAO2Q,UAAa,8YAO0E7b,EAASwF,OAAO4F,oCAC9E,YAAlBpL,EAASmG,MAAwC,WAAlBnG,EAASmG,KAAoB,sFAClEnG,EAASwF,OAAO6F,OAChB,YAAc,6DAKtBtK,KAAKwa,QAAQlT,KAAK6C,GAClB3L,SAASwR,KAAK+K,YAAY5Q,GAEnBA,aAGEA,GACTnK,KAAKwa,QAAUxa,KAAKwa,QAAQrS,QAAQ6S,GAASA,IAAS7Q,IACtDA,EAAOuG,oBAGEvG,EAAQ8Q,GACjB9Q,EAAO1L,iBACH,SACC8D,IACG4H,EAAO+Q,cAAc,IAAIC,MAAM,WAC/B,EAAAnb,KAAA,UAAAA,KAAkBuC,EAAM2K,UAE5B,CAAE9B,MAAM,IAGZjB,EAAO1L,iBACH,WACC8D,IACqB,WAAdA,EAAMsT,MACNtT,EAAMa,kBACN+G,EAAO+Q,cAAc,IAAIC,MAAM,cAGvC,CAAE/P,MAAM,IAGZjB,EAAO1L,iBAAiB,UAAW8D,IAC3B0Y,GACA1Y,EAAM0G,oBAIdiR,EAAY/P,EAAQ,UAAUnE,SAASoV,GACnCA,EAAU3c,iBACN,SACA,KACI0L,EAAO+Q,cAAc,IAAIC,MAAM,aAEnC,CAAE/P,MAAM,iBAKPjB,EAAQkR,EAASJ,GAC1B,OAAO,IAAIK,GAASC,IAChBpR,EAAO1L,iBACH,SACCuK,IACGuS,GAAQ,KAEZ,CAAEnQ,MAAM,IAGZ8O,EAAY/P,EAAQ,UAAUnE,SAASwV,GACnCA,EAAU/c,iBACN,SACA,KACI,MAAMqG,GAAQuW,GAtJtC,SAAyBI,GACrB,MAAMC,EAAS,GAWf,OAVAD,EAASzV,SAAQ,CAAClB,EAAO+Q,KAChB8F,QAAQC,IAAIF,EAAQ7F,IAIpBpH,MAAMoN,QAAQH,EAAO7F,MACtB6F,EAAO7F,GAAO,CAAC6F,EAAO7F,KAE1B6F,EAAO7F,GAAKvO,KAAKxC,IANb4W,EAAO7F,GAAO/Q,KAQf4W,EA0IqCI,CAAgB,IAAIC,SAAS3B,EAAWjQ,EAAQ,UACxEoR,EAAQzW,KAEZ,CAAEsG,MAAM,eA1H5B,MAIIyC,cAA2B,IAAfwM,EAAe,uDAAJ,GAAI,mEAHjB,IAGiB,yBAFoB,mBAAtB2B,mBAGrB,EAAAhc,KAAA,UAAAA,KAAWqa,GA2Hf4B,OAAoB,IAAf5B,EAAe,uDAAJ,GACZ,MAAMlQ,EAAS,EAAAnK,KAAH,UAAGA,KAA0Bqa,EAAUra,KAAKsa,UAClDW,IAAUZ,EAASY,QAEnBiB,EAAgB9B,EAAWjQ,EAAQ,WACrCkQ,EAASnK,QACTgM,EAAcpB,UAAYT,EAASnK,SACP,IAArBmK,EAAS8B,SAA0C,OAArB9B,EAAS8B,SAAyC,KAArB9B,EAAS8B,SAC3ED,EAAcxL,SAGd2J,EAAS+B,WACThC,EAAWjQ,EAAQ,YAAY2Q,UAAYT,EAAS+B,UAGxD,MAAMC,EAAgBjC,EAAWjQ,EAAQ,WAErCkQ,EAAS8B,QACTE,EAAcvB,UAAYT,EAAS8B,SACP,IAArB9B,EAAS8B,SAA0C,OAArB9B,EAAS8B,SAAyC,KAArB9B,EAAS8B,SAC3EE,EAAc3L,SAGlB,EAAA1Q,KAAA,UAAAA,KAAkBmK,EAAQ8Q,GAE1B9Q,EAAOmS,YAEP,MAAMC,EA3Kd,SAAsBpS,GAClB,MAAO,IACAA,EAAOuH,iBACN,6FAwKc8K,CAAarS,GACzBsS,EAAgB,GAAGC,MAAMC,KAAKvC,EAAWjQ,EAAQ,YAAYyS,UAAUrc,MAAMmS,GAAQA,EAAIhP,SAQ/F,OANI+Y,GACAA,GAAe/Y,SAGnB6Y,EAAU,IAAIM,QAEP,EAAA7c,KAAP,UAAOA,KAAkBmK,EAAQsS,EAAexB,GAGpDhB,MAAM/J,GAAsB,IAAb4M,EAAa,uDAAJ,GACpB,OAAO9c,KAAKic,KAAL,GACH7W,KAAM,QACN8K,WACG4M,IAIX1M,MAAMF,GAAsB,IAAb4M,EAAa,uDAAJ,GACpB,OAAO9c,KAAKic,KAAL,GACH7W,KAAM,QACN8K,WACG4M,IAIXC,QAAQ7M,GAAsB,IAAb4M,EAAa,uDAAJ,GACtB,OAAO9c,KAAKic,KAAL,GACH7W,KAAM,UACN8K,WACG4M,IAIXE,OAAO9M,EAAS+M,GAA2B,IAAbH,EAAa,uDAAJ,GACnC,MAAMV,EAAY,oCACOlM,gEACyB+M,GAAgB,oBAAoBH,EAAOI,aAAe,6BAG5G,OAAOld,KAAKic,KAAL,GACH7W,KAAM,SACN8K,UACAkM,YACGU,IAIXK,QAAQjN,EAAS+M,GAA2B,IAAbH,EAAa,uDAAJ,GACpC,MAAMV,EAAY,kLAGHlM,GAAW,+BAG1B,OAAOlQ,KAAKic,KAAL,GACH7W,KAAM,UACND,GAAI,UACJ+K,QAAS,GACT+K,SAAS,EACTkB,SAAS,EACTC,YACGU,IAIXM,WAAWlN,GAAsB,IAAb4M,EAAa,uDAAJ,GACzB,MAAMV,EAAY,8PAGHlM,GAAW,+BAG1B,OAAOlQ,KAAKic,KAAL,GACH7W,KAAM,UACND,GAAI,UACJ+K,QAAS,GACT+K,SAAS,EACTkB,SAAS,EACTC,YACGU,IAIXO,OAAOnN,GAAsB,IAAb4M,EAAa,uDAAJ,GACrB,OAAO9c,KAAKic,KAAL,GACH7W,KAAM,SACN8K,UACA+K,SAAS,EACTkB,SAAS,EACTC,UAAU,GACPU,IAIXQ,WACItd,KAAKwa,QAAQxU,SAASmE,IAClBA,EAAOoT,WAIfA,MAAMpY,GACFnF,KAAKwa,QAAQja,MAAM4J,GAAWA,EAAOhF,KAAOA,KAAKoY,kLCnSlD,MAAMxS,EAAWyS,0BACjB,MAAM5S,GAAgBG,mCACDA,gBACJH,YAET,CACXG,WACAH,gBACA6S,aANwB1S,KAOxB2S,SANoB9S,6HCHxB,gDACA,QACA,cAEO,MAAMc,EAAW,CACpB/M,KAAM,YACF,EAAAyB,EAAAA,SAAE,4CAA4C2I,GAAG,SAAS,YACtD,EAAA3I,EAAAA,SAAE,6CAA6Cud,OAAOhG,UAEtD,IAAIiG,GAAS,EAAAxd,EAAAA,SAAE,mCAAmCG,KAAK,8BAA8B2Y,OAEjF,EAAA9Y,EAAAA,SAAEJ,MAAMgN,SAAS,oCACjB,EAAA5M,EAAAA,SAAE,oCAAoCud,OAAO9F,cACpB,mBAAdpY,OAAOoe,IACdpe,OAAOoe,GAAG,OAAQ,QAAS,SAAU,WAAY,WAAaD,MAGlE,EAAAxd,EAAAA,SAAE,mCAAmCud,OAAO9F,cACnB,mBAAdpY,OAAOoe,IACdpe,OAAOoe,GAAG,OAAQ,QAAS,SAAU,WAAY,WAAaD,QAK1E,EAAAxd,EAAAA,SAAE,mCAAmCgZ,QAAO,WACxC,IAAIC,GAAQ,EAAAjZ,EAAAA,SAAEJ,MAyBd,OAvBAI,EAAAA,QAAEwZ,KAAK,CACHtK,IAAK+J,EAAMnS,KAAK,UAChB9B,KAAMiU,EAAMnS,KAAK,UACjBhE,KAAMmW,EAAMrI,cACb6I,MAAK,WACJ,IAAI3M,EAASmM,EAAMnS,KAAK,yBACxB,EAAA9G,EAAAA,SAAE8M,GAAQyQ,OAAO9F,cACjBwB,EAAM9Y,KAAK,iDAAiD2Y,IAAI,KAChE,EAAA9Y,EAAAA,SAAE,gBAAgBuX,WAClB,EAAAvX,EAAAA,SAAE,cAAc6Y,YAChB,IAAI6E,EAAazE,EAAM9Y,KAAK,8BAA8B2Y,MAEzC,SADFG,EAAM9Y,KAAK,4BAA4B2Y,MAEzB,mBAAdzZ,OAAOoe,IACdpe,OAAOoe,GAAG,OAAQ,QAAS,SAAU,WAAY,6BAA+BC,GAG3D,mBAAdre,OAAOoe,IACdpe,OAAOoe,GAAG,OAAQ,QAAS,SAAU,WAAY,6BAA+BC,OAKrF,0BAMJpS,cAEf3M,EAAAA,IAAIyY,KAAK9L,SAAWA,gHC1DpB,QACA,cAEO,MAAMM,EAAe,CACxBrN,KAAM,WACEH,SAAS4N,cAAc,oBAAoB,wDAAwCC,MAAKC,GAAUA,EAAOC,QAAQ5N,kCAI9GqN,cAEfjN,EAAAA,IAAIyY,KAAKxL,aAAeA,0GCXxB,QACA,cAEO,MAAMV,EAAS,SAAUyS,EAAOC,GACnCD,EAAQA,GAAS,IACjBC,EAASA,GAAU,IAKnB,IAJA,IAAIC,EAAQje,KAAKke,WAAWD,MAAM,KAC9BE,EAAUF,EAAM,GAChBG,EAAUH,EAAMld,OAAS,EAAIid,EAASC,EAAM,GAAK,GACjDI,EAAM,eACHA,EAAIC,KAAKH,IACZA,EAAUA,EAAQpZ,QAAQsZ,EAAK,KAAON,EAAQ,MAElD,OAAOI,EAAUC,oBAGN9S,cAEfvM,EAAAA,IAAIyY,KAAKlM,OAASA,6GClBlB,iBACA,QACA,cACA,gEAEO,MAAMO,EAAa,CACtBlN,KAAM,YACF,EAAAyB,EAAAA,SAAE,qBAAqB0I,MAAK,WACxB,IAAI4J,GAAM,EAAAtS,EAAAA,SAAEJ,MACRue,GAAkB,EAAAne,EAAAA,SAAEsS,EAAIxL,KAAK,SAEjCwL,EAAI8L,SAASjT,EAAAA,QAASjC,QAAQoJ,EAAIxP,OAAQ,CACtCub,QAAS,EACTrZ,KAAM,SACNjC,MAAO,OACPlC,OAAO,EACPyd,UAAW,EACXC,WAAY,WACR,IAAIrP,EAAMtP,KAAKmP,KACVG,IACDA,GAAM,EAAAlP,EAAAA,SAAEJ,MAAMkD,KAAK,SAGvB,IAAI4J,EAAOwC,EAAIsP,UAAUtP,EAAIuP,QAAQ,MACrC7e,KAAKmP,KAAOrC,MAIpByR,EAAgBhe,KAAK,kBAAkBwI,GAAG,SAAS,SAAUC,GACzDA,EAAE8V,2BACF1e,EAAAA,QAAEoe,SAASjB,WAGfgB,EAAgBhe,KAAK,qBAAqBwI,GAAG,UAAU,WAC/CwV,EAAgBhe,KAAK,sCAAsCwe,GAAG,aAC9DR,EAAgBhe,KAAK,sCAAsC8C,YAAY,QACvEkb,EAAgBhe,KAAK,+CAA+Csc,SAEpE0B,EAAgBhe,KAAK,sCAAsCiC,SAAS,QAGxEpC,EAAAA,QAAEoe,SAASQ,iBAGf,EAAA5e,EAAAA,SAAE,qCAAqCgZ,QAAO,YAC1C,EAAAhZ,EAAAA,SAAE,sBAAsBwX,YAAY,cAAcqH,KAAK,YAAY,GAEnE,IAAI5F,GAAQ,EAAAjZ,EAAAA,SAAEJ,MACVkf,EAAO7F,EAAM9Y,KAAK,8BAA8B2Y,MAChDiG,EAAW9F,EAAM9Y,KAAK,+CAA+C2G,KAAK,MAC1EkY,EAAc/F,EAAM9Y,KAAK,+BAA+B2Y,MAsC5D,MApCyB,mBAAdzZ,OAAOoe,UACGvV,IAAb6W,EACiB,qBAAbA,EACIC,EAAYre,OAAS,EACrBtB,OAAOoe,GAAG,OAAQ,QAAS,QAAS,WAAY,UAAYsB,EAAW,iBAAmBD,GAE1Fzf,OAAOoe,GAAG,OAAQ,QAAS,QAAS,WAAY,UAAYsB,EAAW,kBAAoBD,GAG/Fzf,OAAOoe,GAAG,OAAQ,QAAS,QAAS,WAAY,UAAYsB,EAAW,IAAMD,GAGjFzf,OAAOoe,GAAG,OAAQ,QAAS,QAAS,WAAY,sBAAwBqB,IAIhF9e,EAAAA,QAAEwZ,KAAK,CACHtK,IAAK+J,EAAMnS,KAAK,UAChB9B,KAAMiU,EAAMnS,KAAK,UACjBhE,KAAMmW,EAAMrI,cACb6I,MAAK,SAAU3W,GACVA,EAAK2L,IACD3L,EAAKmc,gBACL,EAAAjf,EAAAA,SAAE,sBAAsB6e,KAAK,YAAY,IACzC,EAAA7e,EAAAA,SAAE,kBAAkBuX,WACpB,EAAAvX,EAAAA,SAAE,4BAA4B6Y,YAC9B7Y,EAAAA,QAAEoe,SAAS9U,SACXF,YAAW,WACPpJ,EAAAA,QAAEoe,SAASjB,QACX,IAAIjO,EAAM7O,IAAIyO,SAASoQ,SAAW,KAAO7e,IAAIyO,SAASqQ,SAAWrc,EAAKmc,aACtE5e,IAAIyO,SAASsQ,OAAOlQ,KACrB,UAKR,+BAMRzD,cAEf9M,EAAAA,IAAIyY,KAAK3L,WAAaA,+BChGtB,gDACA,UAEA,QACA,QACA,OACA,QACA,QACA,QACA,QAEA,QAGA/B,EAAAA,EAAO1J,EAAI0J,EAAAA,EAAO2J,OAAShU,OAAOW,EAAIX,OAAOgU,OAASrT,EAAAA,QACtD0J,EAAAA,EAAO/K,IAAMU,OAAOV,IAAMA,EAAAA,IAE1BU,OAAOggB,qBAAuB,CAACC,EAAUC,EAAQC,EAAO9a,IAAUrF,OAAOoe,GAAG,OAAQ,QAAS6B,EAAUC,EAAQC,EAAO9a,GACtHrF,OAAOggB,qBAAuB,CAACC,EAAUC,EAAQC,IAAUngB,OAAOoe,GAAG,OAAQ,QAAS6B,EAAUC,EAAQC,GAExGngB,OAAOqY,gBAAiB,EAExB1X,EAAAA,QAAEyf,GAAGC,aAAe,SAAUb,EAAM/F,GAChC,OAAOlZ,KAAKmI,QAAO,WACf,OAAO,EAAA/H,EAAAA,SAAEJ,MAAMkD,KAAK+b,IAAS/F,gHCxBrC,gDACA,UACA,QACA,cACA,QAEO,MAAM3N,EAAW,CACpB5M,KAAM,YACF,EAAAyB,EAAAA,SAAE5B,UAAUuK,GAAG,QAAS,WAAW,WAC/B,GAAI6B,EAAAA,eAQJ,OAAMnL,OAAOiN,WAAajN,OAAOiN,UAAUC,QAAQC,WAK/CmT,UAAUC,UAAUC,MAAM,YAC1B,EAAA7f,EAAAA,SAAEJ,MAAMkgB,OAAO,gFAAiF,EAAA9f,EAAAA,SAAEJ,MAAMkH,KAAK,QAAU,+CAGlG,mBAAdzH,OAAOoe,IACdpe,OAAOoe,GAAG,OAAQ,QAAS,QAAS,QAAQ,EAAAzd,EAAAA,SAAEJ,MAAMkH,KAAK,UAGzD6Y,UAAUC,UAAUC,MAAM,YAEnBxgB,OAAOiN,WAAajN,OAAOiN,UAAUC,QAAQC,WACpDxM,EAAAA,QAAEoe,SAAS,CACP,QAAW,EACX,MAAS,KACT,OAAU,IACV,MAAQ,EAAApe,EAAAA,SAAEJ,MAAMkH,KAAK,QACrB,KAAQ,SACRiZ,OAAQ,CACJC,SAAS,MAGV,QAXJ,KAdH3gB,OAAOiN,UAAU2T,SACV,OA4Bf,EAAAjgB,EAAAA,SAAE5B,UAAUuK,GAAG,QAAS,aAAa,WACjC,MAAMuX,EAAMA,EACZlgB,EAAAA,QAAEoe,SAASvC,MAAK,EAAA7b,EAAAA,SAAEJ,MAAOuL,EAASjC,QAAQgX,EAAK,CAC3C7B,QAAS,UAIjB,EAAAre,EAAAA,SAAE5B,UAAUuK,GAAG,QAAS,oBAAoB,WACxC,MAAMuX,GAAM,EAAAlgB,EAAAA,SAAEJ,MAAMkD,OACpB9C,EAAAA,QAAEoe,SAASvC,MAAK,EAAA7b,EAAAA,SAAEJ,MAAOuL,EAASjC,QAAQgX,EAAK,CAC3Cnd,MAAO,MACP3D,OAAQ,MACRif,QAAS,GACTrZ,KAAM,SACN+a,OAAQ,CACJI,UAAW,OACXH,SAAS,GAEbI,UAAU,SAIlB,EAAApgB,EAAAA,SAAE5B,UAAUuK,GAAG,QAAS,mBAAmB,WAEvC,MAAMuX,GAAM,EAAAlgB,EAAAA,SAAEJ,MAAMkD,OACpB9C,EAAAA,QAAEoe,SAASvC,MAAK,EAAA7b,EAAAA,SAAEJ,MAAOuL,EAASjC,QAAQgX,EAAK,CAC3Cnd,MAAO,MACP3D,OAAQ,OACRif,QAAS,EACTrZ,KAAM,SACN+a,OAAQ,CACJI,UAAW,OACXH,SAAS,GAEbI,UAAU,SAIlB,EAAApgB,EAAAA,SAAE5B,UAAUuK,GAAG,QAAS,kBAAkB,WACtC,MAAMuX,GAAM,EAAAlgB,EAAAA,SAAEJ,MAAMkD,OACpB9C,EAAAA,QAAEoe,SAASvC,MAAK,EAAA7b,EAAAA,SAAEJ,MAAOuL,EAASjC,QAAQgX,EAAK,CAC3Cnd,MAAO,IACP3D,OAAQ,IACRif,QAAS,GACTrZ,KAAM,OACNob,UAAU,SAIlB,EAAApgB,EAAAA,SAAE5B,UAAUuK,GAAG,QAAS,oBAAoB,WACxC,MAAMuX,GAAM,EAAAlgB,EAAAA,SAAEJ,MAAMkD,OACa,cAA7B,EAAA9C,EAAAA,SAAEJ,MAAMkH,KAAK,cACb9G,EAAAA,QAAEoe,SAASvC,MAAK,EAAA7b,EAAAA,SAAEJ,MAAOuL,EAASjC,QAAQgX,EAAK,CAC3C7B,QAAS,GACTrZ,KAAM,SACNnE,OAAO,EACPyd,UAAW,EACXC,WAAY,WACR,IAAIrP,EAAMtP,KAAKmP,KACVG,IACDA,GAAM,EAAAlP,EAAAA,SAAEJ,MAAMkD,KAAK,SAGvB,IAAI4J,EAAOwC,EAAIsP,UAAUtP,EAAIuP,QAAQ,MACrC7e,KAAKmP,KAAOrC,GAEhB2T,WAAY,WACRjiB,SAAS0c,cAAc,IAAIC,MAAM,8BAIzCpc,EAAAA,IAAIuM,OAAO3M,YAInB,EAAAyB,EAAAA,SAAE5B,UAAUuK,GAAG,QAAS,sBAAsB,WAC1C3I,EAAAA,QAAEoe,SAASjB,YAGnBjU,QAAS,SAAUoX,EAASzhB,GACbmB,EAAAA,QAAEmJ,OAAO,GAAItK,EAAUyhB,GAClC,OAAOtgB,EAAAA,QAAEmJ,OAAO,GAAItK,EAAUyhB,wBAIvBnV,cAEfxM,EAAAA,IAAIyY,KAAKjM,SAAWA,oHCtIpB,gDACA,QACA,cAEO,MAAMI,EAAmB,CAC5BhN,KAAM,YACF,EAAAyB,EAAAA,SAAE,iCACGgZ,QAAO,WACJ,IAAIC,GAAQ,EAAAjZ,EAAAA,SAAEJ,MACVoQ,GAAQ,EACR/K,EAAOgU,EAAM9Y,KAAK,kBAAkB,GACpCwY,EAAQM,EAAM9Y,KAAK,mBAAmB,GACtCogB,EAAgBtH,EAAM9Y,KAAK,2BAA2B,GACtDqgB,EAAcvH,EAAM9Y,KAAK,wBA2C7B,OAzCIqgB,EAAYlJ,IAAI,YAAY3W,SAAW6f,EAAY7f,QACnD6f,EAAYrT,QAAQ,UAAUhN,KAAK,aAAayH,OAChD4Y,EAAYrT,QAAQ,UAAU/K,SAAS,SACvC4N,GAAQ,IAER4E,gBAAgB4L,GAChBA,EAAYrT,QAAQ,UAAUhN,KAAK,aAAa4I,QAE/CwN,sBAAsBoC,GAIvB/D,gBAAgB+D,IAHhBxF,mBAAmBwF,GACnB3I,GAAQ,GAIPyQ,qBAAqBF,GAItB3L,gBAAgB2L,IAHhBpN,mBAAmBoN,GACnBvQ,GAAQ,IAIZA,GAAS8H,aAAa7S,IAAS+K,IAG3BhQ,EAAAA,QAAEwZ,KAAK,CACHtK,IAAK+J,EAAMnS,KAAK,UAChB9B,KAAMiU,EAAMnS,KAAK,UACjBhE,KAAMmW,EAAMrI,cACb6I,MAAK,SAAU3W,GACd,GAAIA,EAAK2L,GAAI,CACTwK,EAAMjR,QAAQ,SACd,IAAI2R,EAASV,EAAMnW,KAAK,kBACpB8W,EAAUX,EAAMnW,KAAK,mBACzBgH,SAAS+P,MAAM,OAASF,EAAS,mBAAqBC,EAAU,qBAC7D,CACH,IAAI8G,EAAoBzH,EAAMnW,KAAK,sBAC/B6d,EAAqB1H,EAAMnW,KAAK,uBACpCgH,SAAS+P,MAAM,OAAS6G,EAAoB,mBAAqBC,EAAqB,sBAK3F,kCAKRpV,cAEf5M,EAAAA,IAAIyY,KAAK7L,iBAAmBA,+GC/D5B,gDACA,QACA,cAEO,MAAMQ,EAAc,SAAUzG,GACjCA,EAAQA,EAAQA,EAAQ,IAAM,IAE9B,EAAAtF,EAAAA,SAAEsF,EAAQ,mBAAmBoD,MAAK,WAC9B,IAAIkY,GAAQ,EAAA5gB,EAAAA,SAAEJ,MACVihB,GAAO,EAAA7gB,EAAAA,SAAE4gB,EAAM9d,KAAK,WAExB+d,EAAKlY,GAAG,UAAU,SAAUC,GAExB,IAAIkY,EAAiBlY,EAAEkE,OAAOpI,MAAMC,QAAQ,MAAO,IAEnDic,EAAM9H,IAAIgI,GAAgBC,YAG9BH,EAAMI,YAAY,CACdC,UAAU,EACVC,OAAQ,aACRC,QAAS,SAAUC,EAAU1c,GASzB,GARImc,EAAKlgB,SACuB,UAAxBkgB,EAAKtX,IAAI,GAAG8X,QACZR,EAAK/H,IAAIpU,GAETmc,EAAK/f,KAAK4D,IAIdkc,EAAM9d,KAAK,kBAAmB,CAC9B,MAAM2c,EAAKpgB,OAAOuhB,EAAM9d,KAAK,mBACX,mBAAP2c,GACPA,EAAG6B,MAAM1hB,KAAM,CAACwhB,EAAU1c,IAKlC,IAAIvC,EAAQ,IAAI4Y,MAAM,SACtB6F,EAAMrX,IAAI,GAAGuR,cAAc3Y,IAE/Bof,WAAY,SAAUH,EAAU1c,GAC5B,GAAIkc,EAAM9d,KAAK,sBAAuB,CAClC,MAAM2c,EAAKpgB,OAAOuhB,EAAM9d,KAAK,uBACX,mBAAP2c,GACPA,EAAG6B,MAAM1hB,KAAM,CAACwhB,EAAU1c,IAKlC,IAAIvC,EAAQ,IAAI4Y,MAAM,aACtB6F,EAAMrX,IAAI,GAAGuR,cAAc3Y,SAOvB/D,SAASkT,iBAAiBhM,EAAQ,mBAC1CM,SAAS4b,IACU,IAAIC,gBAAgBC,IACvC,IAAK,MAAMC,KAASD,EAAS,CACqB,IAA5BC,EAAMC,YAAY7e,QAEhC,EAAA/C,EAAAA,SAAEwhB,GAAQR,kBAIPa,QAAQL,6BAIhB,CACXjjB,KAAMwN,eAGVpN,EAAAA,IAAIyY,KAAKrL,YAAcA,iHC5EvB,QAEO,MAAML,EAAgB,CACzBnN,KAAM,WACFyB,EAAE,eAAe0I,MAAK,WAClB,IAAI2D,EAAIrM,EAAEJ,MACLyM,EAAElM,KAAK,aAAaQ,SAIzB0L,EAAElM,KAAK,aAAawI,GAAG,SAAS,WAC5B3I,EAAEJ,MAAM4X,YAAY,QACpB,IAAIzS,EAAK,IAAM/E,EAAEJ,MAAMkD,KAAK,sBAC5BuJ,EAAElM,KAAK4E,GAAIyS,YAAY,cAG3BnL,EAAElM,KAAK,oBAAoBuI,MAAK,CAAC7F,EAAOyP,KACpCtS,EAAEsS,GAAKlQ,UAAUS,EAAQ,GAAK,GAAM,EAAI,UAAY,qCAMpElE,IAAIyY,KAAK1L,cAAgBA,QAEVA,0HCzBf,gDACA,QACA,cAEO,MAAMC,EAAa,CACtBpN,KAAM,WACFyB,EAAAA,QAAE8hB,UAAU,CAAEC,OAAO,IACrBniB,KAAKF,OAAO,8BAEhBA,OAAQ,SAAU4S,IACd,EAAAtS,EAAAA,SAAEsS,GAAK3J,GAAG,mBAAoB,wKAAwK,WAClM,IAAIqZ,GAAK,EAAAhiB,EAAAA,SAAEJ,MAaX,OAZAI,EAAAA,QAAEwZ,KAAK,CACHtK,IAAK8S,EAAGlb,KAAK,QACb9B,KAAM,QACPyU,MAAK,SAAU3W,GACd,IAAIgK,EAASkV,EAAG7U,QAAQ,iBAAiBhN,KAAK,iCAAiCD,QAAQ,8BACvF,EAAAF,EAAAA,SAAE8M,GAAQmV,YAAYnf,GACtB6I,EAAWuW,UAAU,6BACrBvW,EAAWjM,OAAO,8BAElB,EAAAM,EAAAA,SAAE5B,UAAU4J,QAAQ,4BAGjB,MAGX,EAAAhI,EAAAA,SAAEsS,GAAK3J,GAAG,oBAAqB,qBAAqB,WAChD,IAAIwZ,GAAK,EAAAniB,EAAAA,SAAEJ,MAcX,OAZAI,EAAAA,QAAEwZ,KAAK,CACHtK,IAAKiT,EAAGhiB,KAAK,aAAa2Y,MAC1B9T,KAAM,QACPyU,MAAK,SAAU3W,GACd,IAAIgK,EAASqV,EAAGhV,QAAQ,iBAAiBhN,KAAK,iCAAiCD,QAAQ,8BACvF,EAAAF,EAAAA,SAAE8M,GAAQmV,YAAYnf,GACtB6I,EAAWuW,UAAU,6BACrBvW,EAAWjM,OAAO,8BAElB,EAAAM,EAAAA,SAAE5B,UAAU4J,QAAQ,4BAGjB,MAGP,EAAAhI,EAAAA,SAAEsS,GAAKnS,KAAK,sBAAsBQ,SAClC,EAAAX,EAAAA,SAAEsS,GAAK3J,GAAG,0BAA2B,sBAAsB,SAAUC,GACjE,QAAI,EAAA5I,EAAAA,SAAEJ,MAAMgN,SAAS,qBACjBhE,EAAE8V,4BACK,OAOf,EAAA1e,EAAAA,SAAEsS,GAAKnS,KAAK,8BAA8BQ,SAC1C,EAAAX,EAAAA,SAAEsS,GAAK3J,GAAG,kCAAmC,8BAA8B,SAAUC,GAEjFA,EAAE8V,2BACF,MAAMpM,GAAM,EAAAtS,EAAAA,SAAEJ,MACRwiB,GAAc,EAAApiB,EAAAA,SAAEsS,GAAK+E,SAASvU,KAAK,gBACrB,EAAA9C,EAAAA,SAAEsS,GAAK+E,SAASvU,KAAK,eACzCzD,OAAOgjB,yBAAyBD,EAAa,GAAI,OACpC,EAAApiB,EAAAA,SAAEJ,MAAMuN,QAAQ,iBAAiBhN,KAAK,iCAAiCD,QAAQ,6BAG5F,OAFAud,GAAG,OAAQ,QAAS,QAAS,oBAAqB,kBAE3C,MAKX,EAAAzd,EAAAA,SAAEsS,GAAKnS,KAAK,4BAA4BQ,SACxC,EAAAX,EAAAA,SAAEsS,GAAK3J,GAAG,2BAA4B,4BAA4B,SAAUC,GACxE,QAAI,EAAA5I,EAAAA,SAAEJ,MAAMgN,SAAS,qBACjBhE,EAAE8V,4BACK,OAOf,EAAA1e,EAAAA,SAAEsS,GAAKnS,KAAK,oCAAoCQ,SAChD,EAAAX,EAAAA,SAAEsS,GAAK3J,GAAG,mCAAoC,oCAAoC,SAAUC,GAExFA,EAAE8V,2BACF/S,EAAW2W,eAAc,EAAAtiB,EAAAA,SAAEJ,OAC3B,IAAIkN,GAAS,EAAA9M,EAAAA,SAAEJ,MAAMuN,QAAQ,iBAAiBhN,KAAK,iCAAiCD,QAAQ,6BAM5F,OALA,EAAAF,EAAAA,SAAE8M,GAAQ3M,KAAK,oBAAoB6H,QAAQ,SAClB,mBAAd3I,OAAOoe,IACdpe,OAAOoe,GAAG,OAAQ,QAAS,QAAS,wBAAyB,kBAG1D,MAIX,EAAAzd,EAAAA,SAAEsS,GAAKnS,KAAK,8BAA8BQ,UAC1C,EAAAX,EAAAA,SAAEsS,GAAK3J,GAAG,kCAAmC,8BAA8B,SAAUC,IACjF,EAAA5I,EAAAA,SAAEJ,MAAMO,KAAK,UAAUoiB,WAAWC,SAClC,IACIC,EADKpjB,OAAOsgB,UAAUC,UACZnB,QAAQ,SAItB,GAHyB,mBAAdpf,OAAOoe,IACdpe,OAAOoe,GAAG,OAAQ,QAAS,QAAS,wBAAyB,yBAE7DgF,EAAO,GAAO9C,UAAUC,UAAUC,MAAM,oBAGxC,OAFAjX,EAAE8V,2BACFrf,OAAOwc,MAAK,EAAA7b,EAAAA,SAAEJ,MAAMyX,SAASvU,KAAK,aAC3B,EAEX8F,EAAE8V,2BACF/S,EAAW+W,wBAAuB,EAAA1iB,EAAAA,SAAEJ,OACpC,IAAIkN,GAAS,EAAA9M,EAAAA,SAAEJ,MAAMuN,QAAQ,iBAAiBhN,KAAK,iCAAiCD,QAAQ,6BAE5F,OADA,EAAAF,EAAAA,SAAE8M,GAAQ3M,KAAK,oBAAoB6H,QAAQ,UACpC,MAEX,EAAAhI,EAAAA,SAAEsS,GAAK3J,GAAG,gDAAiD,4CAA4C,SAAUC,IAE7G,EAAA5I,EAAAA,SAAEJ,MAAMO,KAAK,UAAUoiB,WAAWC,SAClC,IACIC,EADKpjB,OAAOsgB,UAAUC,UACZnB,QAAQ,SAItB,GAHyB,mBAAdpf,OAAOoe,IACdpe,OAAOoe,GAAG,OAAQ,QAAS,QAAS,wBAAyB,2BAE7DgF,EAAO,GAAO9C,UAAUC,UAAUC,MAAM,oBAGxC,OAFAjX,EAAE8V,2BACFrf,OAAOwc,MAAK,EAAA7b,EAAAA,SAAEJ,MAAMyX,SAASvU,KAAK,aAC3B,EAEX8F,EAAE8V,2BACF/S,EAAWgX,kCAAiC,EAAA3iB,EAAAA,SAAEJ,OAC9C,IAAIkN,GAAS,EAAA9M,EAAAA,SAAEJ,MAAMuN,QAAQ,iBAAiBhN,KAAK,iCAAiCD,QAAQ,6BAE5F,OADA,EAAAF,EAAAA,SAAE8M,GAAQ3M,KAAK,oBAAoB6H,QAAQ,UACpC,OAInBsa,cAAe,SAAUhQ,GACrB,IAAIsQ,EAAQlL,eAAiB,OAAS,KAClC0K,GAAc,EAAApiB,EAAAA,SAAEsS,GAAK+E,SAASvU,KAAK,eACnC+f,GAAU,EAAA7iB,EAAAA,SAAEsS,GAAK+E,SAASvU,KAAK,WAC/BggB,GAAc,EAAA9iB,EAAAA,SAAEsS,GAAK+E,SAASvU,KAAK,eAEvC9C,EAAAA,QAAEoe,SAASvC,KAAK,CACZ7W,KAAM,OACN+J,KAAM8T,EACNrJ,KAAM,CACFxU,KAAM,OACNlC,KAAM,CACFigB,sBAAuBX,EACvBU,YAAaA,IAGrB3C,UAAWyC,EACXvE,QAAS,GACT2E,OAAQ,MAGhBN,uBAAwB,SAAUpQ,GAC9B,IAAI8P,GAAc,EAAApiB,EAAAA,SAAEsS,GAAK+E,SAASvU,KAAK,eACnC+f,GAAU,EAAA7iB,EAAAA,SAAEsS,GAAK+E,SAASvU,KAAK,WAC/BggB,GAAc,EAAA9iB,EAAAA,SAAEsS,GAAK+E,SAASvU,KAAK,eAEvC9C,EAAAA,QAAEoe,SAASvC,KAAK,CACZ7W,KAAM,SACN+J,KAAM8T,EACNrJ,KAAM,CACFxU,KAAM,OACNlC,KAAM,CACFigB,sBAAuBX,EACvBU,YAAaA,IAGrBG,MAAO,CACH9C,UAAW,OACXH,SAAS,GAEbjd,MAAO,MACP3D,OAAQ,MACRif,QAAS,GACT+B,UAAU,KAGlBuC,iCAAkC,SAAUrQ,GACxC,IAAI4Q,GAAgB,EAAAljB,EAAAA,SAAEsS,GAAKxP,KAAK,iBAEhC9C,EAAAA,QAAEoe,SAASvC,KAAK,CACZ7W,KAAM,SACN+J,KAAMmU,EACN1J,KAAM,CACFxU,KAAM,QAEVie,MAAO,CACH9C,UAAW,OACXH,SAAS,GAEbjd,MAAO,MACP3D,OAAQ,MACRif,QAAS,GACT+B,UAAU,KAGlB8B,UAAW,SAAU5P,IACjB,EAAAtS,EAAAA,SAAEsS,GAAK6Q,IAAI,qBACX,EAAAnjB,EAAAA,SAAEsS,GAAK6Q,IAAI,sBACX,EAAAnjB,EAAAA,SAAEsS,GAAK6Q,IAAI,4BACX,EAAAnjB,EAAAA,SAAEsS,GAAK6Q,IAAI,6BACX,EAAAnjB,EAAAA,SAAEsS,GAAK6Q,IAAI,qCACX,EAAAnjB,EAAAA,SAAEsS,GAAK6Q,IAAI,oCACX,EAAAnjB,EAAAA,SAAEsS,GAAK6Q,IAAI,0DAIJxX,cAEfhN,EAAAA,IAAIyY,KAAKzL,WAAaA,+FCxNtB,MAAMyX,EAAY,UACZC,EAAU,UACVC,EAAW,cACXC,EAAa,8BAiFJ,CACXhlB,KAhFJ,WACIH,SAASC,iBAAiB,SAAS,SAAUuK,GACzC,MAAMtG,EAAUsG,EAAEkE,OAElB,SAAS0W,EAAWlhB,EAASmhB,GACzBnhB,EAAQuI,UAAYvI,EAAQuI,UAAUlG,QAAQ2e,EAAU,IAAMG,EAGlE,SAASC,EAASphB,GAGd,OAAOA,EAAQqhB,aAAa,cAAgBrhB,EAAQ2O,UAIxD,GAAyB,OAArB3O,EAAQshB,SACR,IACI,MAAMC,EAAKvhB,EAAQwhB,WAGbC,EAAQF,EAAGC,WAAWA,WAC5B,GAAIP,EAAWrF,KAAK6F,EAAMlZ,WAAY,CAClC,IAAImZ,EACJ,MAAMC,EAAQJ,EAAGK,MAGjB,IAAK,IAAIne,EAAI,EAAGA,EAAIke,EAAMtjB,OAAQoF,IAE1Bke,EAAMle,KAAOzD,EACb0hB,EAAcje,EAEdyd,EAAWS,EAAMle,GAAI,IAI7B,IAAI0d,EAAML,GAGoC,IAA1C9gB,EAAQuI,UAAU4T,QAAQ2E,KAC1BK,EAAMJ,GAGVG,EAAWlhB,EAASmhB,GAGpB,MAAMU,EAAWJ,EAAMK,QAAQ,GAGzBC,EAAO,GAAG/H,MAAMC,KAAK4H,EAASE,KAAM,GAEpCC,EAAUb,IAAQJ,EAGxBgB,EAAKE,MAAK,SAAUnU,EAAGC,GACnB,MAAM5O,EAAIiiB,GAAUY,EAAUlU,EAAIC,GAAG6T,MAAMF,IACrCriB,EAAI+hB,GAAUY,EAAUjU,EAAID,GAAG8T,MAAMF,IAG3C,OAAOtR,MAAMjR,EAAIE,GAAKF,EAAE+iB,cAAc7iB,GAAKF,EAAIE,KAInD,MAAM8iB,EAAaN,EAASO,YAG5B,KAAOL,EAAK1jB,QACR8jB,EAAW9J,YAAY0J,EAAKM,OAAO,EAAG,GAAG,IAI7CZ,EAAMa,aAAaH,EAAYN,IAErC,MAAOnU,2HC7ErB,gDACA,QACA,cAEO,MAAM5E,EAAO,CAChB7M,KAAM,WACFqB,KAAKilB,SACLjlB,KAAKklB,WAETD,OAAQ,SAAUvf,GAAyB,IAAlByf,EAAkB,uDAAH,EACpCzf,EAAQA,EAAQA,EAAQ,IAAM,GAE9B,IAAI0f,EAAetY,KAAKnD,IAAI,OA0B5B,SAAS0b,EAAYpiB,GAOjB,GANIA,EACA6J,KAAK1F,IAAI,CAAE,IAAOnE,IACX6J,KAAKnD,IAAI,QAChBmD,KAAK4D,OAAO,OAGS,mBAAdjR,OAAOoe,GAAmB,CACjC,IAAIyH,EAAe7lB,OAAOyP,SAASpC,KAEd,OAAjBwY,IACAA,EAAe,IAGnB,IAAIpW,EAAWzP,OAAOyP,SAASoQ,SAAW,KAAO7f,OAAOyP,SAASqQ,SAAW9f,OAAOyP,SAASqW,SAAW9lB,OAAOyP,SAASsW,OAASF,EAEvG,mBAAd7lB,OAAOoe,IACdpe,OAAOoe,GAAG,OAAQ,CACd,QAAW,WACX,KAAQ3O,KA5CnBiW,IACDA,EAAeC,GAA8B,IAGjD,EAAAhlB,EAAAA,SAAEsF,EAAQ,SAASoD,MAAK,WACpB,IAAI0J,GAAO,EAAApS,EAAAA,SAAEJ,MACbwS,EAAKjS,KAAK,qBAAqBwI,GAAG,SAAS,WACvC,IAAI9F,EAAQuP,EAAKjS,KAAK,qBAAqB0C,OAAM,EAAA7C,EAAAA,SAAEJ,OAUnD,OARAwS,EAAKjS,KAAK,qBAAqB8C,YAAY,WAC3C,EAAAjD,EAAAA,SAAEJ,MAAMwC,SAAS,UAEjBgQ,EAAKjS,KAAK,cAAc4I,OACxBqJ,EAAKjS,MAAK,EAAAH,EAAAA,SAAEJ,MAAMkH,KAAK,SAASc,OAEhCqd,EAAYpiB,IAEL,KAGPuP,EAAKjS,KAAK,qBAAqBQ,QAC/ByR,EAAKjS,KAAK,qBAAqBwM,GAAGoY,GAAc7iB,YA8B5D4iB,QAAS,SAAUxf,GACfA,EAAQA,EAAQA,EAAQ,IAAM,IAC9B,EAAAtF,EAAAA,SAAEsF,EAAQ,oBAAoBqD,GAAG,SAAS,YACtC,EAAA3I,EAAAA,SAAEsF,EAAQ,oBAAoBrC,YAAY,YAC1C,EAAAjD,EAAAA,SAAEJ,MAAMwC,SAAS,WAEjB,IAAIijB,GAAS,EAAArlB,EAAAA,SAAEJ,MAAMiD,QASrB,OAPA,EAAA7C,EAAAA,SAAEsF,EAAQ,gCAAgCrC,YAAY,YACtD,EAAAjD,EAAAA,SAAEsF,EAAQ,wCAAwCoD,MAAK,YACnD,EAAA1I,EAAAA,SAAEJ,MAAMO,KAAK,gBAAgBwM,GAAG0Y,GAAQjjB,SAAS,eAGrD,EAAApC,EAAAA,SAAEsF,EAAQ,gBAAgB0C,QAAQ,UAE3B,sBAKJoD,cAEfzM,EAAAA,IAAIyY,KAAKhM,KAAOA,w5CCpEN6O,GACFra,KAAKsa,SAAL,GACInV,GAAI,QACJkG,SAAU,IACVqa,cAAc,GACXrL,GAGP,MAAMsL,EAAoBnnB,SAASic,cAAc,OACjDkL,EAAkBnY,UAAUpG,IAAIpH,KAAKsa,SAASnV,GAAK,cACnD,EAAAnF,KAAA,EAAuBxB,SAASwR,KAAK+K,YAAY4K,eAGjC1mB,GAChB,MAAMwL,EAAQjM,SAASic,cAAc,kBA6BrC,OA5BAhQ,EAAM+C,UAAUpG,OAAO,CACnBnI,EAASkG,GACR,GAAElG,EAASkG,MAAMlG,EAASmG,MAAQ,YACnCnG,EAASgM,WAAa,QAClBhM,EAASuO,UAAYvO,EAASuO,UAAY,CAAC,MAC/C,qBACA,WACA,OACFrF,QAAQuS,GAAoB,OAAVA,KAEhB1a,KAAK4lB,OAAOrlB,MAAMkK,GAAUA,EAAMtF,KAAOlG,EAASkG,OAClDlG,EAASkG,GAAM,GAAElG,EAASkG,MAAMnF,KAAK4lB,OAAO7kB,UAGhD0J,EAAMkQ,aAAa,KAAM1b,EAASkG,IAClCsF,EAAMkQ,aAAa,OAAQ,SAC3BlQ,EAAM4D,QAAQuM,UAAY,QAE1BnQ,EAAMqQ,UAAa,4IAGT7b,EAAS4mB,SAAW,GAAK,wGAInC7lB,KAAK4lB,OAAOte,KAAKmD,MACjBzK,OAAA,qEAAqBf,EAASymB,aAAe,UAAY,eAAejb,GAEjEA,aAGCA,GACRzK,KAAK4lB,OAAS5lB,KAAK4lB,OAAOzd,QAAQ6S,GAASA,IAASvQ,IACpDA,EAAMiG,oBAGGjG,EAAO4P,GAChB5P,EAAMhM,iBAAiB,SAAU8D,IAC7BkI,EAAMyQ,cAAc,IAAIC,MAAM,WAC9B,EAAAnb,KAAA,UAAAA,KAAiBuC,EAAM2K,UACxB,CAAE9B,MAAM,IAEPiP,EAASwL,UACTpb,EAAMhM,iBAAiB,gBAAgB,KACnCgM,EAAMnL,MAAMwmB,eAAkB,GAAEzL,EAAShP,aACzCZ,EAAM+C,UAAUpG,IAAI,cACpBqD,EAAMhM,iBAAiB,gBAAgB,KACnCgM,EAAM+C,UAAUpG,IAAI,UACpBqD,EAAM8S,UACP,CAAEnS,MAAM,MACZ,CAAEA,MAAM,UA1EvB,MAKIyC,cAA2B,IAAfwM,EAAe,uDAAJ,aAAI,wDAJlB,IAIkB,yBAHoB,mBAAtB2B,qBAGE,mBAFT,UAES,qBACvB,EAAAhc,KAAA,UAAAA,KAAWqa,GAwEfrS,OAAoB,IAAfqS,EAAe,uDAAJ,GACZ,MAAMpb,EAAW,EAAH,GACV4mB,UAAU,EACVE,aAAa,GACV/lB,KAAKsa,UACLD,GAGD5P,EAAQ,EAAAzK,KAAH,UAAGA,KAAyBf,GAEjC+mB,EA5Fd,SAAoBvb,EAAO0P,GACvB,OALJ,SAAqB1P,EAAO0P,GACxB,OAAO1P,EAAMiH,iBAAkB,aAAYyI,MAIpCD,CAAYzP,EAAO0P,GAAY,GA2FbC,CAAW3P,EAAO,WAWvC,OAVI4P,EAASnK,QACT8V,EAAalL,UAAYT,EAASnK,SACN,IAArBmK,EAAS8B,SAA0C,OAArB9B,EAAS8B,SAAyC,KAArB9B,EAAS8B,SAC3E6J,EAAatV,SAGjB,EAAA1Q,KAAA,UAAAA,KAAkByK,EAAOxL,GAEzBwL,EAAMzC,OAECyC,EAGXqP,QAAQ5J,GAAsB,IAAb4M,EAAa,uDAAJ,GACtB,OAAO9c,KAAKgI,KAAL,GACH5C,KAAM,UACNoI,UAAW,CAAC,aAAc,cAC1B0C,WACG4M,IAIX1M,MAAMF,GAAsB,IAAb4M,EAAa,uDAAJ,GACpB,OAAO9c,KAAKgI,KAAL,GACH5C,KAAM,QACNoI,UAAW,CAAC,aAAc,aAC1B0C,WACG4M,IAIXmJ,QAAQ/V,GAAsB,IAAb4M,EAAa,uDAAJ,GACtB,OAAO9c,KAAKgI,KAAL,GACH5C,KAAM,UACNoI,UAAW,CAAC,cACZ0C,WACG4M,IAIXoJ,KAAKhW,GAAsB,IAAb4M,EAAa,uDAAJ,GACnB,OAAO9c,KAAKgI,KAAL,GACH5C,KAAM,OACNoI,UAAW,CAAC,WACZ0C,WACG4M,IAIXhS,IAAIoF,GAAsB,IAAb4M,EAAa,uDAAJ,GAClB,OAAO9c,KAAKgI,KAAL,GACH5C,KAAM,MACN8K,WACG4M,IAIXQ,WACItd,KAAK4lB,OAAO5f,SAASyE,IACjBA,EAAM8S,MAAM,YAIpBA,MAAMpY,GACFnF,KAAK4lB,OAAOrlB,MAAMkK,GAAUA,EAAMtF,KAAOA,KAAKoY,MAAM,+CClKxD9d,OAAO0mB,WAAaA,SAASC,UAAUpgB,UACvCmgB,SAASC,UAAUpgB,QAAUyI,MAAM2X,UAAUpgB,sCCDjD,QACA,QACA,gCCaI,aAAcvG,OAAO+S,UAIf,cAAehU,SAASic,cAAc,OACzCjc,SAAS6nB,mBAAqB,cAAe7nB,SAAS6nB,gBAAgB,6BAA8B,QAElG,SAAUC,GAIP,GAAM,YAAaA,EAAnB,CAEA,IAAIC,EAAgB,YAEhBC,EAAeF,EAAKG,QAAL,UACfC,EAASC,OACTC,EAAUC,OAAM,UAAYC,MAAQ,WACpC,OAAO9mB,KAAK+E,QAAQ,aAAc,KAElCgiB,EAAatY,MAAK,UAAYoQ,SAAW,SAAU7D,GAGnD,IAFA,IAAI7U,EAAI,EACJ6gB,EAAMhnB,KAAKe,OACRoF,EAAI6gB,EAAK7gB,IACZ,GAAIA,KAAKnG,MAAQA,KAAKmG,KAAO6U,EACzB,OAAO7U,EAGf,OAAQ,GAGR8gB,EAAQ,SAAU7hB,EAAM8K,GACxBlQ,KAAKqF,KAAOD,EACZpF,KAAKknB,KAAOC,aAAa/hB,GACzBpF,KAAKkQ,QAAUA,GAEfkX,EAAwB,SAAU5Z,EAAWkN,GAC7C,GAAc,KAAVA,EACA,MAAM,IAAIuM,EACN,aACA,8CAGR,GAAI,KAAK3I,KAAK5D,GACV,MAAM,IAAIuM,EACN,wBACA,wCAGR,OAAOF,EAAWpK,KAAKnP,EAAWkN,IAElC2M,EAAY,SAAU3T,GAKtB,IAJA,IAAI4T,EAAiBV,EAAQjK,KAAKjJ,EAAKqQ,aAAa,UAAY,IAC5DwD,EAAUD,EAAiBA,EAAerJ,MAAM,OAAS,GACzD9X,EAAI,EACJ6gB,EAAMO,EAAQxmB,OACXoF,EAAI6gB,EAAK7gB,IACZnG,KAAKsH,KAAKigB,EAAQphB,IAEtBnG,KAAKwnB,iBAAmB,WACpB9T,EAAKiH,aAAa,QAAS3a,KAAKke,cAGpCuJ,EAAiBJ,EAAS,UAAc,GACxCK,EAAkB,WAClB,OAAO,IAAIL,EAAUrnB,OA6EzB,GAzEAinB,EAAK,UAAcU,MAAK,UACxBF,EAAezM,KAAO,SAAU7U,GAC5B,OAAOnG,KAAKmG,IAAM,MAEtBshB,EAAeha,SAAW,SAAUiN,GAEhC,OAA+C,IAAxC0M,EAAsBpnB,KAD7B0a,GAAS,KAGb+M,EAAergB,IAAM,WACjB,IAGIsT,EAHAkN,EAASC,UACT1hB,EAAI,EACJ2hB,EAAIF,EAAO7mB,OAEXgnB,GAAU,EACd,GACIrN,EAAQkN,EAAOzhB,GAAK,IACwB,IAAxCihB,EAAsBpnB,KAAM0a,KAC5B1a,KAAKsH,KAAKoT,GACVqN,GAAU,WAGT5hB,EAAI2hB,GAETC,GACA/nB,KAAKwnB,oBAIbC,EAAe/W,OAAS,WACpB,IAGIgK,EAEAzX,EALA2kB,EAASC,UACT1hB,EAAI,EACJ2hB,EAAIF,EAAO7mB,OAEXgnB,GAAU,EAEd,GAGI,IAFArN,EAAQkN,EAAOzhB,GAAK,GACpBlD,EAAQmkB,EAAsBpnB,KAAM0a,IAClB,IAAXzX,GACHjD,KAAK+kB,OAAO9hB,EAAO,GACnB8kB,GAAU,EACV9kB,EAAQmkB,EAAsBpnB,KAAM0a,WAGnCvU,EAAI2hB,GAETC,GACA/nB,KAAKwnB,oBAGbC,EAAeO,OAAS,SAAUtN,EAAOuN,GACrCvN,GAAS,GAET,IAAIwN,EAASloB,KAAKyN,SAASiN,GACvB5K,EAASoY,GACC,IAAVD,GAAkB,UAER,IAAVA,GAAmB,MAMvB,OAJInY,GACA9P,KAAK8P,GAAQ4K,IAGH,IAAVuN,IAA4B,IAAVA,EACXA,GAECC,GAGhBT,EAAevJ,SAAW,WACtB,OAAOle,KAAKmoB,KAAK,MAGjBzB,EAAO0B,eAAgB,CACvB,IAAIC,EAAoB,CACpB1e,IAAK+d,EACLY,YAAY,EACZC,cAAc,GAElB,IACI7B,EAAO0B,eAAe5B,EAAcD,EAAe8B,GACrD,MAAOG,QAGalgB,IAAdkgB,EAAG1W,SAAuC,aAAf0W,EAAG1W,SAC9BuW,EAAkBC,YAAa,EAC/B5B,EAAO0B,eAAe5B,EAAcD,EAAe8B,UAGpD3B,EAAM,UAAY+B,kBACzBjC,EAAaiC,iBAAiBlC,EAAemB,IAxJpD,CA2JCjoB,OAAO+S,MAMZ,WAGG,IAAIkW,EAAclqB,SAASic,cAAc,KAMzC,GAJAiO,EAAYlb,UAAUpG,IAAI,KAAM,OAI3BshB,EAAYlb,UAAUC,SAAS,MAAO,CACvC,IAAIkb,EAAe,SAAU7Y,GACzB,IAAI8Y,EAAWC,aAAazC,UAAUtW,GAEtC+Y,aAAazC,UAAUtW,GAAU,SAAU4K,GACvC,IAAIvU,EACA6gB,EAAMa,UAAU9mB,OAEpB,IAAKoF,EAAI,EAAGA,EAAI6gB,EAAK7gB,IACjBuU,EAAQmN,UAAU1hB,GAClByiB,EAASjM,KAAK3c,KAAM0a,KAIhCiO,EAAa,OACbA,EAAa,UAOjB,GAJAD,EAAYlb,UAAUwa,OAAO,MAAM,GAI/BU,EAAYlb,UAAUC,SAAS,MAAO,CACtC,IAAIqb,EAAUD,aAAazC,UAAU4B,OAErCa,aAAazC,UAAU4B,OAAS,SAAUtN,EAAOuN,GAC7C,OAAI,KAAKJ,YAAc7nB,KAAKyN,SAASiN,KAAYuN,EACtCA,EAEAa,EAAQnM,KAAK3c,KAAM0a,IAMtCgO,EAAc,KA5CjB,2GCvLL,sDAEmB,CACf/pB,OACI,MAAMoqB,GAAO,EAAA3oB,EAAAA,SAAE,mBACT4oB,EAAiBD,EAAKxoB,KAAK,QAAQQ,OACnCkoB,EAAU,oBACVC,GAAc,EAAA9oB,EAAAA,SAAE,wBAiBtB,SAAS+oB,EAASC,EAAY1lB,GAC1BqlB,EAAKxoB,KAAKmD,GAAQgZ,MAAM,EAAG0M,GAAY/lB,YAAY,UAEnD,IAAIgmB,EAAmBN,EAAKxoB,KAAK,qBAAqBQ,OAEtDtB,OAAOyP,SAASpC,KAAQ,GAAEmc,KAAWI,IAEjCL,IAAmBK,GACnBH,EAAY/f,OAvBhB1J,OAAOyP,SAASpC,KAAKwc,SAASL,IAC9BE,EAAS1pB,OAAOyP,SAASpC,KAAKmR,MAAM,KAAK,GAAI,QAGjDiL,EAAYngB,GAAG,SAAS,WAQpB,OAPAmgB,EAAY1mB,SAAS,cAErBgH,YAAW,KACP0f,EAAY7lB,YAAY,cACxB8lB,EAASD,EAAYhmB,KAAK,cAAe,iBAC1C,MAEI,uCCpB4CoJ,EAAOid,QAC9D,WACN,aAEA,IAAIvgB,EAAI,oBAAsBvJ,OAASA,YAAS,IAAsB,EAAA+pB,EAAS,EAAAA,EAAS,oBAAsBhX,KAAOA,KAAO,GACxHvB,EAAI,sBACJwY,EAAIC,IACJla,EAAI,kBACJrJ,EAAI,aACJqK,EAAI,qBACJM,EAAI,aACJ6Y,EAAI,cACJvb,EAAIvL,SACJ8P,EAAI,iBAAmB3J,GAAKA,GAAKA,EAAE2d,SAAWA,QAAU3d,EACxD4gB,EAAI,iBAAmBpX,MAAQA,MAAQA,KAAKmU,SAAWA,QAAUnU,KACjEsV,EAAInV,GAAKiX,GAAKC,SAAS,cAATA,GACdpa,EAAIkX,OAAOP,UAAUlI,SACrB4L,EAAIC,KAAK1W,IACT2W,EAAID,KAAKnlB,IACT6L,EAAI,WACN,OAAOqX,EAAEmC,KAAKC,OAGhB,SAAStX,EAAE5J,EAAGygB,EAAGja,GACf,IAAIrJ,EACAqK,EACAM,EACA6Y,EACAvb,EACAuE,EACAiX,EAAI,EACJ9B,GAAI,EACJrY,GAAI,EACJmD,GAAI,EACR,GAAI,mBAAqB5J,EAAG,MAAM,IAAImhB,UAAUlZ,GAEhD,SAASlP,EAAEkP,GACT,IAAIwY,EAAItjB,EACJqJ,EAAIgB,EACR,OAAOrK,EAAIqK,OAAI,EAAQoZ,EAAI3Y,EAAG0Y,EAAI3gB,EAAE0Y,MAAMlS,EAAGia,GAG/C,SAASW,EAAEphB,GACT,IAAIiI,EAAIjI,EAAI2J,EACZ,YAAO,IAAWA,GAAK1B,GAAKwY,GAAKxY,EAAI,GAAKxB,GAAKzG,EAAI4gB,GAAK9Y,EAG1D,SAASuZ,IACP,IAAIrhB,EAAIyH,IACR,GAAI2Z,EAAEphB,GAAI,OAAOnH,EAAEmH,GACnBoF,EAAI5E,WAAW6gB,EAAG,SAAUrhB,GAC1B,IAAIiI,EAAIwY,GAAKzgB,EAAI2J,GACjB,OAAOlD,EAAIua,EAAE/Y,EAAGH,GAAK9H,EAAI4gB,IAAM3Y,EAFf,CAGhBjI,IAGJ,SAASnH,EAAEmH,GACT,OAAOoF,OAAI,EAAQwE,GAAKzM,EAAIpE,EAAEiH,IAAM7C,EAAIqK,OAAI,EAAQmZ,GAGtD,SAASW,IACP,IAAIthB,EAAIyH,IACJQ,EAAImZ,EAAEphB,GAEV,GAAI7C,EAAI0hB,UAAWrX,EAAIxQ,KAAM2S,EAAI3J,EAAGiI,EAAG,CACrC,QAAI,IAAW7C,EAAG,OAAO,SAAUpF,GACjC,OAAO4gB,EAAI5gB,EAAGoF,EAAI5E,WAAW6gB,EAAGZ,GAAI3B,EAAI/lB,EAAEiH,GAAK2gB,EADxB,CAEvBhX,GACF,GAAIlD,EAAG,OAAOrB,EAAI5E,WAAW6gB,EAAGZ,GAAI1nB,EAAE4Q,GAGxC,YAAO,IAAWvE,IAAMA,EAAI5E,WAAW6gB,EAAGZ,IAAKE,EAGjD,OAAOF,EAAIc,EAAEd,IAAM,EAAGD,EAAEha,KAAOsY,IAAMtY,EAAEgb,QAAS1Z,GAAKrB,EAAI,YAAaD,GAAKsa,EAAES,EAAE/a,EAAEib,UAAY,EAAGhB,GAAK3Y,EAAG8B,EAAI,aAAcpD,IAAMA,EAAEkb,SAAW9X,GAAI0X,EAAEK,OAAS,gBAC1J,IAAWvc,GAAKwc,aAAaxc,GAAIwb,EAAI,EAAGzjB,EAAIwM,EAAInC,EAAIpC,OAAI,GACvDkc,EAAEO,MAAQ,WACX,YAAO,IAAWzc,EAAIub,EAAI9nB,EAAE4O,MAC3B6Z,EAGL,SAASd,EAAExgB,GACT,IAAIiI,SAAWjI,EACf,QAASA,IAAM,UAAYiI,GAAK,YAAcA,GAGhD,SAASsZ,EAAEvhB,GACT,GAAI,iBAAmBA,EAAG,OAAOA,EACjC,GAAI,SAAUA,GACZ,MAAO,iBAAmBA,GAAK,SAAUA,GACvC,QAASA,GAAK,iBAAmBA,EADJ,CAE7BA,IAAMyG,EAAEkN,KAAK3T,IAAMwG,EAHnB,CAIFxG,GAAI,OAAOygB,EAEb,GAAID,EAAExgB,GAAI,CACR,IAAIiI,EAAI,mBAAqBjI,EAAE8hB,QAAU9hB,EAAE8hB,UAAY9hB,EACvDA,EAAIwgB,EAAEvY,GAAKA,EAAI,GAAKA,EAGtB,GAAI,iBAAmBjI,EAAG,OAAO,IAAMA,EAAIA,GAAKA,EAChDA,EAAIA,EAAEjE,QAAQoB,EAAG,IACjB,IAAIwM,EAAI7B,EAAEwN,KAAKtV,GACf,OAAO2J,GAAKgX,EAAErL,KAAKtV,GAAKoF,EAAEpF,EAAE0T,MAAM,GAAI/J,EAAI,EAAI,GAAKnC,EAAE8N,KAAKtV,GAAKygB,GAAKzgB,EAGtE,IAAIjH,EAAI,SAAUiH,EAAGygB,EAAGja,GACtB,IAAIrJ,GAAI,EACJqK,GAAI,EACR,GAAI,mBAAqBxH,EAAG,MAAM,IAAImhB,UAAUlZ,GAChD,OAAOuY,EAAEha,KAAOrJ,EAAI,YAAaqJ,IAAMA,EAAEgb,QAAUrkB,EAAGqK,EAAI,aAAchB,IAAMA,EAAEkb,SAAWla,GAAIoC,EAAE5J,EAAGygB,EAAG,CACrGe,QAASrkB,EACTskB,QAAShB,EACTiB,SAAUla,KAGV4Z,EAAI,sBACJC,EAAIX,IACJ7nB,EAAI,kBACJyoB,EAAI,aACJ/Y,EAAI,qBACJwZ,EAAI,aACJC,EAAI,cACJC,EAAIpoB,SACJqoB,EAAI,iBAAmBliB,GAAKA,GAAKA,EAAE2d,SAAWA,QAAU3d,EACxDmiB,EAAI,iBAAmB3Y,MAAQA,MAAQA,KAAKmU,SAAWA,QAAUnU,KACjE4Y,EAAIF,GAAKC,GAAKtB,SAAS,cAATA,GACdwB,EAAI1E,OAAOP,UAAUlI,SACrBoN,EAAIvB,KAAK1W,IACTkY,EAAIxB,KAAKnlB,IACT4mB,EAAI,WACN,OAAOJ,EAAEnB,KAAKC,OAGhB,SAASuB,EAAEziB,GACT,IAAIiI,SAAWjI,EACf,QAASA,IAAM,UAAYiI,GAAK,YAAcA,GAGhD,SAASya,EAAE1iB,GACT,GAAI,iBAAmBA,EAAG,OAAOA,EACjC,GAAI,SAAUA,GACZ,MAAO,iBAAmBA,GAAK,SAAUA,GACvC,QAASA,GAAK,iBAAmBA,EADJ,CAE7BA,IAAMqiB,EAAE1O,KAAK3T,IAAMnH,EAHnB,CAIFmH,GAAI,OAAOqhB,EAEb,GAAIoB,EAAEziB,GAAI,CACR,IAAIiI,EAAI,mBAAqBjI,EAAE8hB,QAAU9hB,EAAE8hB,UAAY9hB,EACvDA,EAAIyiB,EAAExa,GAAKA,EAAI,GAAKA,EAGtB,GAAI,iBAAmBjI,EAAG,OAAO,IAAMA,EAAIA,GAAKA,EAChDA,EAAIA,EAAEjE,QAAQulB,EAAG,IACjB,IAAIb,EAAIsB,EAAEzM,KAAKtV,GACf,OAAOygB,GAAKuB,EAAE1M,KAAKtV,GAAKiiB,EAAEjiB,EAAE0T,MAAM,GAAI+M,EAAI,EAAI,GAAKlY,EAAE+M,KAAKtV,GAAKqhB,GAAKrhB,EAGtE,IAAI5I,EAAI,SAAU4I,EAAGiI,EAAGwY,GACtB,IAAIja,EACArJ,EACAqK,EACAM,EACA6Y,EACAvb,EACAuE,EAAI,EACJiX,GAAI,EACJ9B,GAAI,EACJrY,GAAI,EACR,GAAI,mBAAqBzG,EAAG,MAAM,IAAImhB,UAAUC,GAEhD,SAASN,EAAE7Y,GACT,IAAIwY,EAAIja,EACJgB,EAAIrK,EACR,OAAOqJ,EAAIrJ,OAAI,EAAQwM,EAAI1B,EAAGH,EAAI9H,EAAE0Y,MAAMlR,EAAGiZ,GAG/C,SAASO,EAAEhhB,GACT,IAAIygB,EAAIzgB,EAAIoF,EACZ,YAAO,IAAWA,GAAKqb,GAAKxY,GAAKwY,EAAI,GAAK3B,GAAK9e,EAAI2J,GAAKnC,EAG1D,SAASC,IACP,IAAIzH,EAAIwiB,IACR,GAAIxB,EAAEhhB,GAAI,OAAO4J,EAAE5J,GACnB2gB,EAAIngB,WAAWiH,EAAG,SAAUzH,GAC1B,IAAIygB,EAAIxY,GAAKjI,EAAIoF,GACjB,OAAO0Z,EAAIyD,EAAE9B,EAAGjZ,GAAKxH,EAAI2J,IAAM8W,EAFf,CAGhBzgB,IAGJ,SAAS4J,EAAE5J,GACT,OAAO2gB,OAAI,EAAQla,GAAKD,EAAIsa,EAAE9gB,IAAMwG,EAAIrJ,OAAI,EAAQ2K,GAGtD,SAAS0Y,IACP,IAAIxgB,EAAIwiB,IACJ/B,EAAIO,EAAEhhB,GAEV,GAAIwG,EAAIqY,UAAW1hB,EAAInG,KAAMoO,EAAIpF,EAAGygB,EAAG,CACrC,QAAI,IAAWE,EAAG,OAAO,SAAU3gB,GACjC,OAAO2J,EAAI3J,EAAG2gB,EAAIngB,WAAWiH,EAAGQ,GAAI2Y,EAAIE,EAAE9gB,GAAK8H,EADxB,CAEvB1C,GACF,GAAI0Z,EAAG,OAAO6B,EAAIngB,WAAWiH,EAAGQ,GAAI6Y,EAAE1b,GAGxC,YAAO,IAAWub,IAAMA,EAAIngB,WAAWiH,EAAGQ,IAAKH,EAGjD,OAAOG,EAAIya,EAAEza,IAAM,EAAGwa,EAAEhC,KAAOG,IAAMH,EAAEe,QAASha,GAAKsX,EAAI,YAAa2B,GAAK6B,EAAEI,EAAEjC,EAAEgB,UAAY,EAAGxZ,GAAKT,EAAGf,EAAI,aAAcga,IAAMA,EAAEiB,SAAWjb,GAAI+Z,EAAEmB,OAAS,gBAC1J,IAAWhB,GAAKiB,aAAajB,GAAIhX,EAAI,EAAGnD,EAAIpB,EAAIjI,EAAIwjB,OAAI,GACvDH,EAAEqB,MAAQ,WACX,YAAO,IAAWlB,EAAI7Y,EAAI8B,EAAE4Y,MAC3BhC,GAEDmC,EAAI,aAER,SAASC,EAAE5iB,GACTA,GAAKA,EAAEhD,SAAQ,SAAUgD,GACvB,IAAIiI,EAAIxC,MAAM2X,UAAU1J,MAAMC,KAAK3T,EAAE6iB,YACjCpC,EAAIhb,MAAM2X,UAAU1J,MAAMC,KAAK3T,EAAE8iB,cACrC,GAAI,SAAS9iB,EAAEiI,GACb,IAAIwY,OAAI,EACJja,OAAI,EAER,IAAKia,EAAI,EAAGA,EAAIxY,EAAElQ,OAAQ0oB,GAAK,EAAG,CAChC,IAAKja,EAAIyB,EAAEwY,IAAIpb,SAAWmB,EAAEnB,QAAQlD,IAAK,OAAO,EAChD,GAAIqE,EAAE4E,UAAYpL,EAAEwG,EAAE4E,UAAW,OAAO,EAG1C,OAAO,EATL,CAUFnD,EAAE8a,OAAOtC,IAAK,OAAOkC,OAI3B,SAASnlB,IACP,OAAO/G,OAAOusB,kBAAoBvsB,OAAOwsB,wBAA0BxsB,OAAOysB,oBAG5E,IAAIzf,EAAI,CACN0f,YAAa,WACX,QAAS3lB,KAEX4lB,MAAO,SAAUpjB,EAAGiI,GAClB,IAAIwY,EAAIhqB,OAAOjB,SACXgR,EAAI,IAAKhJ,IAAL,CAAUolB,GAClBD,EAAI1a,EAAGzB,EAAEyS,QAAQwH,EAAEze,gBAAiB,CAClCqhB,WAAW,EACXC,SAAS,EACTR,cAAc,MAIhBS,EAAI,SAAUvjB,EAAGiI,GACnB,KAAMjI,aAAaiI,GAAI,MAAM,IAAIkZ,UAAU,sCAEzCqC,EAAI,WACN,SAASxjB,EAAEA,EAAGiI,GACZ,IAAK,IAAIwY,EAAI,EAAGA,EAAIxY,EAAElQ,OAAQ0oB,IAAK,CACjC,IAAIja,EAAIyB,EAAEwY,GACVja,EAAE8Y,WAAa9Y,EAAE8Y,aAAc,EAAI9Y,EAAE+Y,cAAe,EAAI,UAAW/Y,IAAMA,EAAEid,UAAW,GAAK9F,OAAOyB,eAAepf,EAAGwG,EAAEqG,IAAKrG,IAI/H,OAAO,SAAUyB,EAAGwY,EAAGja,GACrB,OAAOia,GAAKzgB,EAAEiI,EAAEmV,UAAWqD,GAAIja,GAAKxG,EAAEiI,EAAGzB,GAAIyB,GATzC,GAYJyb,EAAI/F,OAAOnH,QAAU,SAAUxW,GACjC,IAAK,IAAIiI,EAAI,EAAGA,EAAI4W,UAAU9mB,OAAQkQ,IAAK,CACzC,IAAIwY,EAAI5B,UAAU5W,GAElB,IAAK,IAAIzB,KAAKia,EAAG9C,OAAOP,UAAUuG,eAAehQ,KAAK8M,EAAGja,KAAOxG,EAAEwG,GAAKia,EAAEja,IAG3E,OAAOxG,GAEL4jB,EAAI,2TACJC,EAAI,0kDACJC,EAAI,sVACJC,EAAI,0kDAER,SAASC,IACP,OAAOjN,UAAUC,WAAaD,UAAUkN,QAAUxtB,OAAOytB,OAAS,GAGpE,IAAIC,EAAI,IAAK,WACX,SAASnkB,IACPujB,EAAEvsB,KAAMgJ,GAGV,OAAOwjB,EAAExjB,EAAG,CAAC,CACX6M,IAAK,QACL/Q,MAAO,WACL,IAAIkE,EAAIgkB,IACR,SAAUJ,EAAEtO,KAAKtV,KAAO6jB,EAAEvO,KAAKtV,EAAEokB,OAAO,EAAG,OAE5C,CACDvX,IAAK,SACL/Q,MAAO,WACL,IAAIkE,EAAIgkB,IACR,SAAUF,EAAExO,KAAKtV,KAAO+jB,EAAEzO,KAAKtV,EAAEokB,OAAO,EAAG,OAE5C,CACDvX,IAAK,SACL/Q,MAAO,WACL,OAAO9E,KAAKqtB,WAAartB,KAAKoY,UAE/B,CACDvC,IAAK,OACL/Q,MAAO,WACL,MAAO,qBAAsBtG,SAASwM,gBAAgB1L,OAAS,kBAAmBd,SAASwM,gBAAgB1L,UAE1G0J,EA3BK,IA6BRskB,EAAI,SAAUtkB,EAAGiI,GACnB,IAAIwY,OAAI,EACR,OAAO0D,EAAEI,QAAU9D,EAAIjrB,SAASgvB,YAAY,gBAAgBC,gBAAgBzkB,GAAG,GAAI,EAAI,CACrF0kB,OAAQzc,IACLwY,EAAI,IAAIkE,YAAY3kB,EAAG,CAC1B0kB,OAAQzc,IACNzS,SAAS0c,cAAcuO,IAEzBmE,EAAI,SAAU5kB,GAChB,OAAOA,EAAEhD,SAAQ,SAAUgD,EAAGiI,GAC5B,OAAO,SAAUjI,EAAGiI,GAClB,IAAIwY,EAAIzgB,EAAEM,QACNkG,EAAIxG,EAAEwY,SACNrb,EAAI6C,EAAE6kB,KACNrd,GAAKxH,EAAE9F,KAAM,WACf8F,EAAE8kB,WAAa,SAAU9kB,EAAGiI,GAC1BA,GAAKA,EAAEjL,SAAQ,SAAUiL,GACvB,OAAOjI,EAAEwE,UAAUkD,OAAOO,MAFf,CAIb9K,EAAGsjB,EAAEsE,oBAAqBT,EAAE,UAAWnnB,GAAI6C,EAAEM,QAAQnE,IAAMmoB,EAAE,UAAYtkB,EAAEM,QAAQnE,GAAIgB,GAAI6C,EAAE8kB,UAAW,KAE5GrE,EAAEuE,QAAU/c,GAAKzB,EAAEye,MAAQxE,EAAEre,KAAOoF,IAAMS,GAAKzB,EAAE0e,GAAKllB,EAAE8kB,WAAa,SAAU9kB,EAAGiI,GAChFA,GAAKA,EAAEjL,SAAQ,SAAUiL,GACvB,OAAOjI,EAAEwE,UAAUpG,IAAI6J,MAF0C,CAInE9K,EAAGsjB,EAAEsE,oBAAqBT,EAAE,SAAUnnB,GAAI6C,EAAEM,QAAQnE,IAAMmoB,EAAE,UAAYtkB,EAAEM,QAAQnE,GAAIgB,GAAI6C,EAAE8kB,UAAW,GAAM9kB,EAAE8kB,WAAarE,EAAEre,MAAQoF,IAfnI,CAgBLxH,EAAGvJ,OAAO0uB,iBAGZC,GAAI,SAAUplB,GAChB,IAAK,IAAIiI,EAAI,EAAGwY,EAAI,EAAGzgB,IAAM8J,MAAM9J,EAAEqlB,cAAgBvb,MAAM9J,EAAEslB,YAAard,GAAKjI,EAAEqlB,YAAc,QAAUrlB,EAAEyY,QAAUzY,EAAEulB,WAAa,GAAI9E,GAAKzgB,EAAEslB,WAAa,QAAUtlB,EAAEyY,QAAUzY,EAAE2E,UAAY,GAAI3E,EAAIA,EAAEmM,aAE1M,MAAO,CACL1U,IAAKgpB,EACL7oB,KAAMqQ,IAGNud,GAAK,SAAUxlB,EAAGiI,EAAGwY,GACvB,IAAIja,EAAIxG,EAAE+a,aAAa,YAAc9S,GAErC,QAAI,IAAWzB,EAAG,CAChB,GAAI,SAAWA,EAAG,OAAO,EACzB,GAAI,UAAYA,EAAG,OAAO,EAG5B,OAAOA,GAAKia,GAEVgF,GAAK,SAAUzlB,EAAGiI,GACpB,OAAOjI,EAAEhD,SAAQ,SAAUgD,EAAGygB,GAC5B,IAAIja,EAAIgf,GAAGxlB,EAAE6kB,KAAM,SAAU5c,EAAE+c,QAC3B7nB,EAAIqoB,GAAGxlB,EAAE6kB,KAAM,OAAQ5c,EAAE7F,MACzBoF,EAAIge,GAAGxlB,EAAE6kB,KAAM,MACf/c,EAAIG,EAAEyd,eAAiB1lB,EAAE6kB,KAAK9J,aAAa,YAC3C4F,EAAI,CAAC1Y,EAAE0d,mBAAmB5C,OAAOjb,EAAIA,EAAEmN,MAAM,KAAO,IAAI9V,QAAO,SAAUa,GAC3E,MAAO,iBAAmBA,KAE5BiI,EAAE2d,eAAiB5lB,EAAE6kB,KAAKrgB,UAAUpG,IAAI6J,EAAE2d,eAAgB5lB,EAAEwY,SAAW,CACrE0M,GAAI,SAAUllB,EAAGiI,EAAGwY,GAClB,IAAIja,EAAI/P,OAAOovB,YACX1oB,EAAIqoB,GAAGxlB,EAAG,UACVwH,EAAIge,GAAGxlB,EAAG,oBACV8H,EAAIiC,OAAOyb,GAAGxlB,EAAG,SAAUwH,EAAI,EAAIS,IACnC0Y,EAAInZ,GAAKiZ,EACTrb,EAAIpF,EACR7C,GAAK3H,SAASkT,iBAAiBvL,KAAOiI,EAAI5P,SAASkT,iBAAiBvL,GAAG,IACvE,IAAIwM,EAAIyb,GAAEhgB,GAAG3N,IAAM+O,EAEnB,OAAQma,GACN,IAAK,aACH,MAEF,IAAK,gBACHhX,GAAKvE,EAAE0gB,aAAe,EACtB,MAEF,IAAK,gBACHnc,GAAKvE,EAAE0gB,aACP,MAEF,IAAK,aACHnc,GAAKnD,EAAI,EACT,MAEF,IAAK,gBACHmD,GAAKnD,EAAI,EAAIpB,EAAE0gB,aAAe,EAC9B,MAEF,IAAK,gBACHnc,GAAKnD,EAAI,EAAIpB,EAAE0gB,aACf,MAEF,IAAK,UACHnc,GAAKnD,EACL,MAEF,IAAK,aACHmD,GAAKnD,EAAIpB,EAAE0gB,aACX,MAEF,IAAK,aACHnc,GAAKnD,EAAIpB,EAAE0gB,aAAe,EAG9B,OAAOnc,EAAI7B,EA9CT,CA+CF9H,EAAE6kB,KAAM5c,EAAEhR,OAAQgR,EAAE8d,iBACtBd,IAAKze,GAAK,SAAUxG,EAAGiI,GACrBxR,OAAOovB,YACP,IAAIpF,EAAI+E,GAAGxlB,EAAG,UACVwG,EAAIgf,GAAGxlB,EAAG,SAAUiI,GACpB9K,EAAI6C,EACR,OAAOygB,GAAKjrB,SAASkT,iBAAiB+X,KAAOtjB,EAAI3H,SAASkT,iBAAiB+X,GAAG,IAAK2E,GAAEjoB,GAAG1F,IAAM0F,EAAE2oB,aAAetf,EALvG,CAMRxG,EAAE6kB,KAAM5c,EAAEhR,SACX+I,EAAEM,QAAU,CACb8B,KAAMjF,EACN6nB,OAAQxe,EACRue,mBAAoBpE,EACpBxkB,GAAIqL,MAEJxH,GAEFgmB,GAAK,WACP,IAAIhmB,EAAIxK,SAASkT,iBAAiB,cAClC,OAAOjD,MAAM2X,UAAU6I,IAAItS,KAAK3T,GAAG,SAAUA,GAC3C,MAAO,CACL6kB,KAAM7kB,OAIRkmB,GAAK,GACLC,IAAK,EACLC,GAAK,CACPnvB,OAAQ,IACRovB,MAAO,EACPC,OAAQ,OACRjkB,SAAU,IACVkkB,SAAS,EACTnkB,MAAM,EACN4iB,QAAQ,EACRe,gBAAiB,aACjBS,WAAY,mBACZb,kBAAmB,cACnBC,cAAe,WACfF,eAAe,EACfe,yBAAyB,EACzBC,cAAe,GACfC,cAAe,IAEbC,GAAK,WACP,OAAOpxB,SAASqxB,MAAQpwB,OAAOqwB,MAE7BC,GAAK,WACPlI,UAAU9mB,OAAS,QAAK,IAAW8mB,UAAU,IAAMA,UAAU,KAAOsH,IAAK,GAAKA,KAAOD,GAAKT,GAAGS,GAAIE,IAAKxB,EAAEsB,IAAKzvB,OAAOhB,iBAAiB,SAAUsD,GAAE,WAC/I6rB,EAAEsB,GAAIE,GAAGhkB,QACRgkB,GAAGM,kBAEJM,GAAK,WACP,GAAId,GAAKF,KAAMiB,GAAGb,GAAGG,UAAYK,KAAM,OAAOM,KAC9CH,MAEEG,GAAK,WACPhB,GAAGlpB,SAAQ,SAAUgD,EAAGiI,GACtBjI,EAAE6kB,KAAKsC,gBAAgB,YAAannB,EAAE6kB,KAAKsC,gBAAgB,mBAAoBnnB,EAAE6kB,KAAKsC,gBAAgB,qBAAsBnnB,EAAE6kB,KAAKsC,gBAAgB,kBAAmBf,GAAGR,eAAiB5lB,EAAE6kB,KAAKrgB,UAAUkD,OAAO0e,GAAGR,eAAgBQ,GAAGT,mBAAqB3lB,EAAE6kB,KAAKrgB,UAAUkD,OAAO0e,GAAGT,uBAGxRsB,GAAK,SAAUjnB,GACjB,OAAO,IAAOA,GAAK,WAAaA,GAAKmkB,EAAEE,UAAY,UAAYrkB,GAAKmkB,EAAE/U,SAAW,WAAapP,GAAKmkB,EAAEiD,UAAY,mBAAqBpnB,IAAK,IAAOA,KAGpJ,MAAO,CACLrK,KAAM,SAAUqK,GACd,OAAOomB,GAAK1C,EAAE0C,GAAIpmB,GAAIkmB,GAAKF,KAAMI,GAAGK,yBAA2BhjB,EAAE0f,gBAAkBthB,QAAQqb,KAAK,qLAAsLkJ,GAAGK,yBAA0B,GAAKL,GAAGK,yBAA2BhjB,EAAE2f,MAAM,aAAc4D,IAAKC,GAAGb,GAAGG,UAAYK,KAAOM,MAAQ1xB,SAAS4N,cAAc,QAAQuO,aAAa,kBAAmByU,GAAGE,QAAS9wB,SAAS4N,cAAc,QAAQuO,aAAa,oBAAqByU,GAAG/jB,UAAW7M,SAAS4N,cAAc,QAAQuO,aAAa,iBAAkByU,GAAGC,QAAS,IAAM,CAAC,mBAAoB,QAAQxQ,QAAQuQ,GAAGI,YAAchxB,SAASC,iBAAiB2wB,GAAGI,YAAY,WACztBO,IAAG,MACAtwB,OAAOhB,iBAAiB,QAAQ,WACnCsxB,IAAG,MACD,qBAAuBX,GAAGI,YAAc,CAAC,WAAY,eAAe3Q,QAAQrgB,SAAS6xB,aAAe,GAAKN,IAAG,GAAKtwB,OAAOhB,iBAAiB,SAAU2B,EAAE2vB,GAAIX,GAAGO,eAAe,IAAMlwB,OAAOhB,iBAAiB,oBAAqB2B,EAAE2vB,GAAIX,GAAGO,eAAe,IAAMT,KAElQoB,QAASP,GACTQ,YAAaP,IA3e+D/e,yBCKf3E,EAAOid,QAC/D,SAAU3qB,EAAMqE,EAAOutB,EAAcC,GAC5C,aAEA,MAAMC,EAAwB1nB,GAAKA,GAAkB,iBAANA,GAAkB,YAAaA,EAAIA,EAAI,CACpFuD,QAASvD,GAGL2nB,EAA6BD,EAAsB9xB,GAEnDgyB,EAAqCF,EAAsBF,GAE3DK,EAA+BH,EAAsBD,GAarDK,EAAU,QAKhB,MAAMC,UAAsBF,EAAgBtkB,QAC1CsB,YAAYnL,EAASoa,GACnBkU,SACAtuB,EAAUO,EAAMmX,WAAW1X,MAM3B1C,KAAKixB,SAAWvuB,EAChB1C,KAAKkxB,QAAUlxB,KAAKmxB,WAAWrU,GAC/B6T,EAAcpkB,QAAQ6kB,IAAIpxB,KAAKixB,SAAUjxB,KAAK6N,YAAYwjB,SAAUrxB,OAItEsxB,UACEX,EAAcpkB,QAAQmE,OAAO1Q,KAAKixB,SAAUjxB,KAAK6N,YAAYwjB,UAC7DT,EAAsBrkB,QAAQgX,IAAIvjB,KAAKixB,SAAUjxB,KAAK6N,YAAY0jB,WAElE,IAAK,MAAMC,KAAgB7K,OAAO8K,oBAAoBzxB,MACpDA,KAAKwxB,GAAgB,KAIzBE,eAAe/gB,EAAUjO,EAASivB,GAAa,GAC7C1uB,EAAM2uB,uBAAuBjhB,EAAUjO,EAASivB,GAGlDR,WAAWrU,GAMT,OALAA,EAAS9c,KAAK6xB,gBAAgB/U,EAAQ9c,KAAKixB,UAC3CnU,EAAS9c,KAAK8xB,kBAAkBhV,GAEhC9c,KAAK+xB,iBAAiBjV,GAEfA,EAITkV,mBAAmBtvB,GACjB,OAAOiuB,EAAcpkB,QAAQ5C,IAAI1G,EAAMmX,WAAW1X,GAAU1C,KAAKqxB,UAGnEW,2BAA2BtvB,EAASoa,EAAS,IAC3C,OAAO9c,KAAKiyB,YAAYvvB,IAAY,IAAI1C,KAAK0C,EAA2B,iBAAXoa,EAAsBA,EAAS,MAGnFgU,qBACT,OAAOA,EAGEO,sBACT,MAAO,MAAMrxB,KAAKkyB,OAGTX,uBACT,MAAO,IAAIvxB,KAAKqxB,WAGlBW,iBAAiB3sB,GACf,MAAO,GAAGA,IAAOrF,KAAKuxB,aAK1B,OAAOR,EA9FyEoB,CAAQ,EAAQ,MAAe,EAAQ,MAAiB,EAAQ,MAAwB,EAAQ,6BCAjH7lB,EAAOid,QAC/D,SAAUtmB,EAAOutB,EAAc4B,EAAgBrB,GACtD,aAEA,MAAML,EAAwB1nB,GAAKA,GAAkB,iBAANA,GAAkB,YAAaA,EAAIA,EAAI,CACpFuD,QAASvD,GAGL4nB,EAAqCF,EAAsBF,GAE3D6B,EAAuC3B,EAAsB0B,GAE7DE,EAAsC5B,EAAsBK,GAa5DmB,EAAO,WAEPX,EAAY,eAEZgB,EAAa,OAAOhB,IACpBiB,EAAc,QAAQjB,IACtBkB,EAAa,OAAOlB,IACpBmB,EAAe,SAASnB,IACxBoB,EAAuB,QAAQpB,aAC/BqB,EAAkB,OAClBC,EAAsB,WACtBC,EAAwB,aACxBC,EAAuB,YACvBC,EAA6B,WAAWH,MAAwBA,IAChEI,EAAwB,sBACxBC,EAAQ,QACRC,EAAS,SACTC,EAAmB,uCACnBC,EAAuB,8BACvBC,EAAU,CACd7b,OAAQ,KACRuQ,QAAQ,GAEJuL,EAAc,CAClB9b,OAAQ,iBACRuQ,OAAQ,WAMV,MAAMhe,UAAiBsoB,EAAuB/lB,QAC5CsB,YAAYnL,EAASoa,GACnBkU,MAAMtuB,EAASoa,GACf9c,KAAKwzB,kBAAmB,EACxBxzB,KAAKyzB,cAAgB,GACrB,MAAMC,EAAarB,EAAwB9lB,QAAQhM,KAAK8yB,GAExD,IAAK,MAAM3f,KAAQggB,EAAY,CAC7B,MAAMC,EAAW1wB,EAAM2wB,uBAAuBlgB,GACxCmgB,EAAgBxB,EAAwB9lB,QAAQhM,KAAKozB,GAAUxrB,QAAO2rB,GAAgBA,IAAiB9zB,KAAKixB,WAEjG,OAAb0C,GAAqBE,EAAc9yB,QACrCf,KAAKyzB,cAAcnsB,KAAKoM,GAI5B1T,KAAK+zB,sBAEA/zB,KAAKkxB,QAAQzZ,QAChBzX,KAAKg0B,0BAA0Bh0B,KAAKyzB,cAAezzB,KAAKi0B,YAGtDj0B,KAAKkxB,QAAQlJ,QACfhoB,KAAKgoB,SAKEsL,qBACT,OAAOA,EAGEC,yBACT,OAAOA,EAGErB,kBACT,OAAOA,EAITlK,SACMhoB,KAAKi0B,WACPj0B,KAAKmJ,OAELnJ,KAAKgI,OAITA,OACE,GAAIhI,KAAKwzB,kBAAoBxzB,KAAKi0B,WAChC,OAGF,IAAIC,EAAiB,GAQrB,GANIl0B,KAAKkxB,QAAQzZ,SACfyc,EAAiBl0B,KAAKm0B,uBAAuBf,GAAkBjrB,QAAOzF,GAAWA,IAAY1C,KAAKixB,WAAUhC,KAAIvsB,GAAWsH,EAASoqB,oBAAoB1xB,EAAS,CAC/JslB,QAAQ,OAIRkM,EAAenzB,QAAUmzB,EAAe,GAAGV,iBAC7C,OAKF,GAFmB5C,EAAsBrkB,QAAQnE,QAAQpI,KAAKixB,SAAUsB,GAEzD8B,iBACb,OAGF,IAAK,MAAMC,KAAkBJ,EAC3BI,EAAenrB,OAGjB,MAAMorB,EAAYv0B,KAAKw0B,gBAEvBx0B,KAAKixB,SAASzjB,UAAUkD,OAAOmiB,GAE/B7yB,KAAKixB,SAASzjB,UAAUpG,IAAI0rB,GAE5B9yB,KAAKixB,SAAS3xB,MAAMi1B,GAAa,EAEjCv0B,KAAKg0B,0BAA0Bh0B,KAAKyzB,eAAe,GAEnDzzB,KAAKwzB,kBAAmB,EAExB,MAAMiB,EAAW,KACfz0B,KAAKwzB,kBAAmB,EAExBxzB,KAAKixB,SAASzjB,UAAUkD,OAAOoiB,GAE/B9yB,KAAKixB,SAASzjB,UAAUpG,IAAIyrB,EAAqBD,GAEjD5yB,KAAKixB,SAAS3xB,MAAMi1B,GAAa,GACjC3D,EAAsBrkB,QAAQnE,QAAQpI,KAAKixB,SAAUuB,IAIjDkC,EAAa,SADUH,EAAU,GAAGI,cAAgBJ,EAAU7X,MAAM,KAG1E1c,KAAK0xB,eAAe+C,EAAUz0B,KAAKixB,UAAU,GAE7CjxB,KAAKixB,SAAS3xB,MAAMi1B,GAAa,GAAGv0B,KAAKixB,SAASyD,OAGpDvrB,OACE,GAAInJ,KAAKwzB,mBAAqBxzB,KAAKi0B,WACjC,OAKF,GAFmBrD,EAAsBrkB,QAAQnE,QAAQpI,KAAKixB,SAAUwB,GAEzD4B,iBACb,OAGF,MAAME,EAAYv0B,KAAKw0B,gBAEvBx0B,KAAKixB,SAAS3xB,MAAMi1B,GAAa,GAAGv0B,KAAKixB,SAAS2D,wBAAwBL,OAC1EtxB,EAAM8U,OAAO/X,KAAKixB,UAElBjxB,KAAKixB,SAASzjB,UAAUpG,IAAI0rB,GAE5B9yB,KAAKixB,SAASzjB,UAAUkD,OAAOmiB,EAAqBD,GAEpD,IAAK,MAAMxqB,KAAWpI,KAAKyzB,cAAe,CACxC,MAAM/wB,EAAUO,EAAM4xB,uBAAuBzsB,GAEzC1F,IAAY1C,KAAKi0B,SAASvxB,IAC5B1C,KAAKg0B,0BAA0B,CAAC5rB,IAAU,GAI9CpI,KAAKwzB,kBAAmB,EAExB,MAAMiB,EAAW,KACfz0B,KAAKwzB,kBAAmB,EAExBxzB,KAAKixB,SAASzjB,UAAUkD,OAAOoiB,GAE/B9yB,KAAKixB,SAASzjB,UAAUpG,IAAIyrB,GAE5BjC,EAAsBrkB,QAAQnE,QAAQpI,KAAKixB,SAAUyB,IAGvD1yB,KAAKixB,SAAS3xB,MAAMi1B,GAAa,GAEjCv0B,KAAK0xB,eAAe+C,EAAUz0B,KAAKixB,UAAU,GAG/CgD,SAASvxB,EAAU1C,KAAKixB,UACtB,OAAOvuB,EAAQ8K,UAAUC,SAASmlB,GAIpCd,kBAAkBhV,GAIhB,OAHAA,EAAOkL,OAAS8M,QAAQhY,EAAOkL,QAE/BlL,EAAOrF,OAASxU,EAAMmX,WAAW0C,EAAOrF,QACjCqF,EAGT0X,gBACE,OAAOx0B,KAAKixB,SAASzjB,UAAUC,SAASwlB,GAAyBC,EAAQC,EAG3EY,sBACE,IAAK/zB,KAAKkxB,QAAQzZ,OAChB,OAGF,MAAMrD,EAAWpU,KAAKm0B,uBAAuBd,GAE7C,IAAK,MAAM3wB,KAAW0R,EAAU,CAC9B,MAAM2gB,EAAW9xB,EAAM4xB,uBAAuBnyB,GAE1CqyB,GACF/0B,KAAKg0B,0BAA0B,CAACtxB,GAAU1C,KAAKi0B,SAASc,KAK9DZ,uBAAuBR,GACrB,MAAMvf,EAAWie,EAAwB9lB,QAAQhM,KAAKyyB,EAA4BhzB,KAAKkxB,QAAQzZ,QAE/F,OAAO4a,EAAwB9lB,QAAQhM,KAAKozB,EAAU3zB,KAAKkxB,QAAQzZ,QAAQtP,QAAOzF,IAAY0R,EAASkV,SAAS5mB,KAGlHsxB,0BAA0BgB,EAAcC,GACtC,GAAKD,EAAaj0B,OAIlB,IAAK,MAAM2B,KAAWsyB,EACpBtyB,EAAQ8K,UAAUwa,OAAO+K,GAAuBkC,GAChDvyB,EAAQiY,aAAa,gBAAiBsa,GAK1CjD,uBAAuBlV,GACrB,MAAMoU,EAAU,GAMhB,MAJsB,iBAAXpU,GAAuB,YAAYwB,KAAKxB,KACjDoU,EAAQlJ,QAAS,GAGZhoB,KAAK8I,MAAK,WACf,MAAM5F,EAAO8G,EAASoqB,oBAAoBp0B,KAAMkxB,GAEhD,GAAsB,iBAAXpU,EAAqB,CAC9B,QAA4B,IAAjB5Z,EAAK4Z,GACd,MAAM,IAAIqN,UAAU,oBAAoBrN,MAG1C5Z,EAAK4Z,UA+Bb,OApBA8T,EAAsBrkB,QAAQxD,GAAGvK,SAAUm0B,EAAsBU,GAAsB,SAAU9wB,IAElE,MAAzBA,EAAM2K,OAAOuU,SAAmBlf,EAAM2yB,gBAAmD,MAAjC3yB,EAAM2yB,eAAezT,UAC/Elf,EAAM0G,iBAGR,MAAM0qB,EAAW1wB,EAAM2wB,uBAAuB5zB,MACxCm1B,EAAmB9C,EAAwB9lB,QAAQhM,KAAKozB,GAE9D,IAAK,MAAMjxB,KAAWyyB,EACpBnrB,EAASoqB,oBAAoB1xB,EAAS,CACpCslB,QAAQ,IACPA,YAOP/kB,EAAMmyB,mBAAmBprB,GAClBA,EAhTyEmoB,CAAQ,EAAQ,MAAiB,EAAQ,MAAwB,EAAQ,KAA0B,EAAQ,yBCA5H7lB,EAAOid,QAC/D,WACP,aAYA,MAAM8L,EAAa,IAAIC,IAyCvB,MAxCa,CACXlE,IAAI1uB,EAASmT,EAAK0f,GACXF,EAAWzZ,IAAIlZ,IAClB2yB,EAAWjE,IAAI1uB,EAAS,IAAI4yB,KAG9B,MAAME,EAAcH,EAAW1rB,IAAIjH,GAG9B8yB,EAAY5Z,IAAI/F,IAA6B,IAArB2f,EAAYC,KAMzCD,EAAYpE,IAAIvb,EAAK0f,GAJnB1qB,QAAQuF,MAAM,+EAA+E3B,MAAMinB,KAAKF,EAAYG,QAAQ,QAOhIhsB,IAAG,CAACjH,EAASmT,IACPwf,EAAWzZ,IAAIlZ,IACV2yB,EAAW1rB,IAAIjH,GAASiH,IAAIkM,IAG9B,KAGTnF,OAAOhO,EAASmT,GACd,IAAKwf,EAAWzZ,IAAIlZ,GAClB,OAGF,MAAM8yB,EAAcH,EAAW1rB,IAAIjH,GACnC8yB,EAAYI,OAAO/f,GAEM,IAArB2f,EAAYC,MACdJ,EAAWO,OAAOlzB,KAlDwDyvB,yBCAjB7lB,EAAOid,QAC/D,SAAUtmB,GACjB,aAYA,MAAM4yB,EAAiB,qBACjBC,EAAiB,OACjBC,EAAgB,SAChBC,EAAgB,GAEtB,IAAIC,EAAW,EACf,MAAMC,EAAe,CACnBC,WAAY,YACZC,WAAY,YAERC,EAAe,IAAIC,IAAI,CAAC,QAAS,WAAY,UAAW,YAAa,cAAe,aAAc,iBAAkB,YAAa,WAAY,YAAa,cAAe,YAAa,UAAW,WAAY,QAAS,oBAAqB,aAAc,YAAa,WAAY,cAAe,cAAe,cAAe,YAAa,eAAgB,gBAAiB,eAAgB,gBAAiB,aAAc,QAAS,OAAQ,SAAU,QAAS,SAAU,SAAU,UAAW,WAAY,OAAQ,SAAU,eAAgB,SAAU,OAAQ,mBAAoB,mBAAoB,QAAS,QAAS,WAK/lB,SAASC,EAAa7zB,EAAS8zB,GAC7B,OAAOA,GAAO,GAAGA,MAAQP,OAAgBvzB,EAAQuzB,UAAYA,IAG/D,SAASQ,EAAiB/zB,GACxB,MAAM8zB,EAAMD,EAAa7zB,GAGzB,OAFAA,EAAQuzB,SAAWO,EACnBR,EAAcQ,GAAOR,EAAcQ,IAAQ,GACpCR,EAAcQ,GAGvB,SAASE,EAAiBh0B,EAASmd,GACjC,OAAO,SAAS8W,EAAQp0B,GAStB,OARAq0B,EAAWr0B,EAAO,CAChB2yB,eAAgBxyB,IAGdi0B,EAAQE,QACVrG,EAAajN,IAAI7gB,EAASH,EAAM6C,KAAMya,GAGjCA,EAAG6B,MAAMhf,EAAS,CAACH,KAI9B,SAASu0B,EAA2Bp0B,EAASixB,EAAU9T,GACrD,OAAO,SAAS8W,EAAQp0B,GACtB,MAAMw0B,EAAcr0B,EAAQgP,iBAAiBiiB,GAE7C,IAAK,IAAI,OACPzmB,GACE3K,EAAO2K,GAAUA,IAAWlN,KAAMkN,EAASA,EAAOgX,WACpD,IAAK,MAAM8S,KAAcD,EACvB,GAAIC,IAAe9pB,EAYnB,OARA0pB,EAAWr0B,EAAO,CAChB2yB,eAAgBhoB,IAGdypB,EAAQE,QACVrG,EAAajN,IAAI7gB,EAASH,EAAM6C,KAAMuuB,EAAU9T,GAG3CA,EAAG6B,MAAMxU,EAAQ,CAAC3K,KAMjC,SAAS00B,EAAYn3B,EAAQo3B,EAAUC,EAAqB,MAC1D,OAAOxQ,OAAOyQ,OAAOt3B,GAAQS,MAAKgC,GAASA,EAAM20B,WAAaA,GAAY30B,EAAM40B,qBAAuBA,IAGzG,SAASE,EAAoBC,EAAmBX,EAASY,GACvD,MAAMC,EAAiC,iBAAZb,EAErBO,EAAWM,EAAcD,EAAqBZ,GAAWY,EAC/D,IAAIE,EAAYC,EAAaJ,GAM7B,OAJKjB,EAAaza,IAAI6b,KACpBA,EAAYH,GAGP,CAACE,EAAaN,EAAUO,GAGjC,SAASE,EAAWj1B,EAAS40B,EAAmBX,EAASY,EAAoBV,GAC3E,GAAiC,iBAAtBS,IAAmC50B,EAC5C,OAGF,IAAK80B,EAAaN,EAAUO,GAAaJ,EAAoBC,EAAmBX,EAASY,GAGzF,GAAID,KAAqBpB,EAAc,CACrC,MAAM0B,EAAe/X,GACZ,SAAUtd,GACf,IAAKA,EAAMs1B,eAAiBt1B,EAAMs1B,gBAAkBt1B,EAAM2yB,iBAAmB3yB,EAAM2yB,eAAeznB,SAASlL,EAAMs1B,eAC/G,OAAOhY,EAAGlD,KAAK3c,KAAMuC,IAK3B20B,EAAWU,EAAaV,GAG1B,MAAMp3B,EAAS22B,EAAiB/zB,GAC1Bo1B,EAAWh4B,EAAO23B,KAAe33B,EAAO23B,GAAa,IACrDM,EAAmBd,EAAYa,EAAUZ,EAAUM,EAAcb,EAAU,MAEjF,GAAIoB,EAEF,YADAA,EAAiBlB,OAASkB,EAAiBlB,QAAUA,GAIvD,MAAML,EAAMD,EAAaW,EAAUI,EAAkBvyB,QAAQ8wB,EAAgB,KACvEhW,EAAK2X,EAAcV,EAA2Bp0B,EAASi0B,EAASO,GAAYR,EAAiBh0B,EAASw0B,GAC5GrX,EAAGsX,mBAAqBK,EAAcb,EAAU,KAChD9W,EAAGqX,SAAWA,EACdrX,EAAGgX,OAASA,EACZhX,EAAGoW,SAAWO,EACdsB,EAAStB,GAAO3W,EAChBnd,EAAQjE,iBAAiBg5B,EAAW5X,EAAI2X,GAG1C,SAASQ,EAAct1B,EAAS5C,EAAQ23B,EAAWd,EAASQ,GAC1D,MAAMtX,EAAKoX,EAAYn3B,EAAO23B,GAAYd,EAASQ,GAE9CtX,IAILnd,EAAQu1B,oBAAoBR,EAAW5X,EAAIiV,QAAQqC,WAC5Cr3B,EAAO23B,GAAW5X,EAAGoW,WAG9B,SAASiC,EAAyBx1B,EAAS5C,EAAQ23B,EAAWU,GAC5D,MAAMC,EAAoBt4B,EAAO23B,IAAc,GAE/C,IAAK,MAAMY,KAAc1R,OAAOgP,KAAKyC,GACnC,GAAIC,EAAW/O,SAAS6O,GAAY,CAClC,MAAM51B,EAAQ61B,EAAkBC,GAChCL,EAAct1B,EAAS5C,EAAQ23B,EAAWl1B,EAAM20B,SAAU30B,EAAM40B,qBAKtE,SAASO,EAAan1B,GAGpB,OADAA,EAAQA,EAAMwC,QAAQ+wB,EAAgB,IAC/BI,EAAa3zB,IAAUA,EAGhC,MAAMiuB,EAAe,CACnBznB,GAAGrG,EAASH,EAAOo0B,EAASY,GAC1BI,EAAWj1B,EAASH,EAAOo0B,EAASY,GAAoB,IAG1De,IAAI51B,EAASH,EAAOo0B,EAASY,GAC3BI,EAAWj1B,EAASH,EAAOo0B,EAASY,GAAoB,IAG1DhU,IAAI7gB,EAAS40B,EAAmBX,EAASY,GACvC,GAAiC,iBAAtBD,IAAmC50B,EAC5C,OAGF,MAAO80B,EAAaN,EAAUO,GAAaJ,EAAoBC,EAAmBX,EAASY,GACrFgB,EAAcd,IAAcH,EAC5Bx3B,EAAS22B,EAAiB/zB,GAC1B01B,EAAoBt4B,EAAO23B,IAAc,GACzCe,EAAclB,EAAkBmB,WAAW,KAEjD,QAAwB,IAAbvB,EAAX,CAUA,GAAIsB,EACF,IAAK,MAAME,KAAgB/R,OAAOgP,KAAK71B,GACrCo4B,EAAyBx1B,EAAS5C,EAAQ44B,EAAcpB,EAAkB5a,MAAM,IAIpF,IAAK,MAAMic,KAAehS,OAAOgP,KAAKyC,GAAoB,CACxD,MAAMC,EAAaM,EAAY5zB,QAAQgxB,EAAe,IAEtD,IAAKwC,GAAejB,EAAkBhO,SAAS+O,GAAa,CAC1D,MAAM91B,EAAQ61B,EAAkBO,GAChCX,EAAct1B,EAAS5C,EAAQ23B,EAAWl1B,EAAM20B,SAAU30B,EAAM40B,0BArBpE,CAEE,IAAKxQ,OAAOgP,KAAKyC,GAAmBr3B,OAClC,OAGFi3B,EAAct1B,EAAS5C,EAAQ23B,EAAWP,EAAUM,EAAcb,EAAU,QAoBhFvuB,QAAQ1F,EAASH,EAAOq2B,GACtB,GAAqB,iBAAVr2B,IAAuBG,EAChC,OAAO,KAGT,MAAMtC,EAAI6C,EAAM41B,YAGhB,IAAIC,EAAc,KACdC,GAAU,EACVC,GAAiB,EACjB3E,GAAmB,EAJH9xB,IADFm1B,EAAan1B,IAOZnC,IACjB04B,EAAc14B,EAAE+a,MAAM5Y,EAAOq2B,GAC7Bx4B,EAAEsC,GAAS0F,QAAQ0wB,GACnBC,GAAWD,EAAYG,uBACvBD,GAAkBF,EAAYI,gCAC9B7E,EAAmByE,EAAYK,sBAGjC,IAAIC,EAAM,IAAIje,MAAM5Y,EAAO,CACzBw2B,UACAM,YAAY,IAgBd,OAdAD,EAAMxC,EAAWwC,EAAKR,GAElBvE,GACF+E,EAAInwB,iBAGF+vB,GACFt2B,EAAQwY,cAAcke,GAGpBA,EAAI/E,kBAAoByE,GAC1BA,EAAY7vB,iBAGPmwB,IAKX,SAASxC,EAAW0C,EAAKC,GACvB,IAAK,MAAO1jB,EAAK/Q,KAAU6hB,OAAO7E,QAAQyX,GAAQ,IAChD,IACED,EAAIzjB,GAAO/Q,EACX,MAAO00B,GACP7S,OAAOyB,eAAekR,EAAKzjB,EAAK,CAC9B0S,cAAc,EAEd5e,IAAG,IACM7E,IAOf,OAAOw0B,EAGT,OAAO9I,EAjRyE2B,CAAQ,EAAQ,yBCAjC7lB,EAAOid,QAC/D,WACP,aAQA,SAASkQ,EAAc30B,GACrB,GAAc,SAAVA,EACF,OAAO,EAGT,GAAc,UAAVA,EACF,OAAO,EAGT,GAAIA,IAAUiO,OAAOjO,GAAOoZ,WAC1B,OAAOnL,OAAOjO,GAGhB,GAAc,KAAVA,GAA0B,SAAVA,EAClB,OAAO,KAGT,GAAqB,iBAAVA,EACT,OAAOA,EAGT,IACE,OAAO0M,KAAKC,MAAMioB,mBAAmB50B,IACrC,MAAO00B,GACP,OAAO10B,GAIX,SAAS60B,EAAiB9jB,GACxB,OAAOA,EAAI9Q,QAAQ,UAAU60B,GAAO,IAAIA,EAAIC,kBAkC9C,MA/BoB,CAClBC,iBAAiBp3B,EAASmT,EAAK/Q,GAC7BpC,EAAQiY,aAAa,WAAWgf,EAAiB9jB,KAAQ/Q,IAG3Di1B,oBAAoBr3B,EAASmT,GAC3BnT,EAAQytB,gBAAgB,WAAWwJ,EAAiB9jB,OAGtDmkB,kBAAkBt3B,GAChB,IAAKA,EACH,MAAO,GAGT,MAAMu3B,EAAa,GACbC,EAASvT,OAAOgP,KAAKjzB,EAAQ2L,SAASlG,QAAO0N,GAAOA,EAAI4iB,WAAW,QAAU5iB,EAAI4iB,WAAW,cAElG,IAAK,MAAM5iB,KAAOqkB,EAAQ,CACxB,IAAIC,EAAUtkB,EAAI9Q,QAAQ,MAAO,IACjCo1B,EAAUA,EAAQC,OAAO,GAAGP,cAAgBM,EAAQzd,MAAM,EAAGyd,EAAQp5B,QACrEk5B,EAAWE,GAAWV,EAAc/2B,EAAQ2L,QAAQwH,IAGtD,OAAOokB,GAGTI,iBAAgB,CAAC33B,EAASmT,IACjB4jB,EAAc/2B,EAAQqhB,aAAa,WAAW4V,EAAiB9jB,QArEMsc,wBCAjB7lB,EAAOid,QAC/D,SAAUtmB,GACjB,aAwEA,MA5DuB,CACrB1C,KAAI,CAACozB,EAAUjxB,EAAUlE,SAASwM,kBACzB,GAAG+gB,UAAUtF,QAAQL,UAAU1U,iBAAiBiL,KAAKja,EAASixB,IAGvE2G,QAAO,CAAC3G,EAAUjxB,EAAUlE,SAASwM,kBAC5Byb,QAAQL,UAAUha,cAAcuQ,KAAKja,EAASixB,GAGvDvf,SAAQ,CAAC1R,EAASixB,IACT,GAAG5H,UAAUrpB,EAAQ0R,UAAUjM,QAAOoyB,GAASA,EAAMC,QAAQ7G,KAGtErzB,QAAQoC,EAASixB,GACf,MAAMrzB,EAAU,GAChB,IAAIm6B,EAAW/3B,EAAQwhB,WAAW3W,QAAQomB,GAE1C,KAAO8G,GACLn6B,EAAQgH,KAAKmzB,GACbA,EAAWA,EAASvW,WAAW3W,QAAQomB,GAGzC,OAAOrzB,GAGTo6B,KAAKh4B,EAASixB,GACZ,IAAIgH,EAAWj4B,EAAQk4B,uBAEvB,KAAOD,GAAU,CACf,GAAIA,EAASH,QAAQ7G,GACnB,MAAO,CAACgH,GAGVA,EAAWA,EAASC,uBAGtB,MAAO,IAITC,KAAKn4B,EAASixB,GACZ,IAAIkH,EAAOn4B,EAAQo4B,mBAEnB,KAAOD,GAAM,CACX,GAAIA,EAAKL,QAAQ7G,GACf,MAAO,CAACkH,GAGVA,EAAOA,EAAKC,mBAGd,MAAO,IAGTC,kBAAkBr4B,GAChB,MAAMs4B,EAAa,CAAC,IAAK,SAAU,QAAS,WAAY,SAAU,UAAW,aAAc,4BAA4B/L,KAAI0E,GAAY,GAAGA,2BAAiCxL,KAAK,KAChL,OAAOnoB,KAAKO,KAAKy6B,EAAYt4B,GAASyF,QAAO0B,IAAO5G,EAAMg4B,WAAWpxB,IAAO5G,EAAMi4B,UAAUrxB,OAtEhBsoB,CAAQ,EAAQ,6BCAjC7lB,EAAOid,QAC/D,SAAUtmB,EAAOutB,EAAc4B,EAAgBrB,GACtD,aAEA,MAAML,EAAwB1nB,GAAKA,GAAkB,iBAANA,GAAkB,YAAaA,EAAIA,EAAI,CACpFuD,QAASvD,GAGL4nB,EAAqCF,EAAsBF,GAE3D6B,EAAuC3B,EAAsB0B,GAE7DE,EAAsC5B,EAAsBK,GAa5DmB,EAAO,MAEPX,EAAY,UACZkB,EAAa,OAAOlB,IACpBmB,EAAe,SAASnB,IACxBgB,EAAa,OAAOhB,IACpBiB,EAAc,QAAQjB,IACtBoB,EAAuB,QAAQpB,IAC/B4J,EAAgB,UAAU5J,IAC1B6J,EAAsB,OAAO7J,IAC7B8J,EAAiB,YACjBC,EAAkB,aAClBC,EAAe,UACfC,EAAiB,YACjBC,EAAoB,SACpBC,EAAkB,OAClB9I,EAAkB,OAClB+I,EAAiB,WACjBC,EAA2B,mBAC3BC,EAAyB,iBACzBC,EAAyB,iBACzBC,EAA+B,yBAC/BC,EAAqB,sCACrBC,EAAiB,8BAEjB5I,EAAuB,2EAEvB6I,EAAsB,YAHOH,sBAAiDA,kBAA6CA,MAG/E1I,IAC5C8I,EAA8B,IAAIV,6BAA6CA,8BAA8CA,2BAKnI,MAAMxxB,UAAYqoB,EAAuB/lB,QACvCsB,YAAYnL,GACVsuB,MAAMtuB,GACN1C,KAAKo8B,QAAUp8B,KAAKixB,SAAS1jB,QAAQyuB,GAEhCh8B,KAAKo8B,UAMVp8B,KAAKq8B,sBAAsBr8B,KAAKo8B,QAASp8B,KAAKs8B,gBAE9C1L,EAAsBrkB,QAAQxD,GAAG/I,KAAKixB,SAAUkK,GAAe54B,GAASvC,KAAKu8B,SAASh6B,MAI7E2vB,kBACT,OAAOA,EAITlqB,OAEE,MAAMw0B,EAAYx8B,KAAKixB,SAEvB,GAAIjxB,KAAKy8B,cAAcD,GACrB,OAIF,MAAM10B,EAAS9H,KAAK08B,iBAEdC,EAAY70B,EAAS8oB,EAAsBrkB,QAAQnE,QAAQN,EAAQ2qB,EAAY,CACnFoF,cAAe2E,IACZ,KACa5L,EAAsBrkB,QAAQnE,QAAQo0B,EAAWjK,EAAY,CAC7EsF,cAAe/vB,IAGHusB,kBAAoBsI,GAAaA,EAAUtI,mBAIzDr0B,KAAK48B,YAAY90B,EAAQ00B,GAEzBx8B,KAAK68B,UAAUL,EAAW10B,IAI5B+0B,UAAUn6B,EAASo6B,GACjB,IAAKp6B,EACH,OAGFA,EAAQ8K,UAAUpG,IAAIq0B,GAEtBz7B,KAAK68B,UAAU55B,EAAM4xB,uBAAuBnyB,IAG5C,MAAM+xB,EAAW,KACsB,QAAjC/xB,EAAQqhB,aAAa,SAKzBrhB,EAAQma,QACRna,EAAQytB,gBAAgB,YACxBztB,EAAQiY,aAAa,iBAAiB,GAEtC3a,KAAK+8B,gBAAgBr6B,GAAS,GAE9BkuB,EAAsBrkB,QAAQnE,QAAQ1F,EAAS8vB,EAAa,CAC1DqF,cAAeiF,KAXfp6B,EAAQ8K,UAAUpG,IAAIwrB,IAe1B5yB,KAAK0xB,eAAe+C,EAAU/xB,EAASA,EAAQ8K,UAAUC,SAASiuB,IAGpEkB,YAAYl6B,EAASo6B,GACnB,IAAKp6B,EACH,OAGFA,EAAQ8K,UAAUkD,OAAO+qB,GACzB/4B,EAAQs6B,OAERh9B,KAAK48B,YAAY35B,EAAM4xB,uBAAuBnyB,IAG9C,MAAM+xB,EAAW,KACsB,QAAjC/xB,EAAQqhB,aAAa,SAKzBrhB,EAAQiY,aAAa,iBAAiB,GACtCjY,EAAQiY,aAAa,WAAY,MAEjC3a,KAAK+8B,gBAAgBr6B,GAAS,GAE9BkuB,EAAsBrkB,QAAQnE,QAAQ1F,EAASgwB,EAAc,CAC3DmF,cAAeiF,KAVfp6B,EAAQ8K,UAAUkD,OAAOkiB,IAc7B5yB,KAAK0xB,eAAe+C,EAAU/xB,EAASA,EAAQ8K,UAAUC,SAASiuB,IAGpEa,SAASh6B,GACP,IAAK,CAAC84B,EAAgBC,EAAiBC,EAAcC,GAAgBlS,SAAS/mB,EAAMsT,KAClF,OAGFtT,EAAMa,kBAENb,EAAM0G,iBACN,MAAMg0B,EAAS,CAAC3B,EAAiBE,GAAgBlS,SAAS/mB,EAAMsT,KAC1DqnB,EAAoBj6B,EAAMk6B,qBAAqBn9B,KAAKs8B,eAAen0B,QAAOzF,IAAYO,EAAMg4B,WAAWv4B,KAAWH,EAAM2K,OAAQ+vB,GAAQ,GAE1IC,GACFjzB,EAAImqB,oBAAoB8I,GAAmBl1B,OAI/Cs0B,eAEE,OAAOjK,EAAwB9lB,QAAQhM,KAAK27B,EAAqBl8B,KAAKo8B,SAGxEM,iBACE,OAAO18B,KAAKs8B,eAAe/7B,MAAKg6B,GAASv6B,KAAKy8B,cAAclC,MAAW,KAGzE8B,sBAAsB5kB,EAAQrD,GAC5BpU,KAAKo9B,yBAAyB3lB,EAAQ,OAAQ,WAE9C,IAAK,MAAM8iB,KAASnmB,EAClBpU,KAAKq9B,6BAA6B9C,GAItC8C,6BAA6B9C,GAC3BA,EAAQv6B,KAAKs9B,iBAAiB/C,GAE9B,MAAMgD,EAAWv9B,KAAKy8B,cAAclC,GAE9BiD,EAAYx9B,KAAKy9B,iBAAiBlD,GAExCA,EAAM5f,aAAa,gBAAiB4iB,GAEhCC,IAAcjD,GAChBv6B,KAAKo9B,yBAAyBI,EAAW,OAAQ,gBAG9CD,GACHhD,EAAM5f,aAAa,WAAY,MAGjC3a,KAAKo9B,yBAAyB7C,EAAO,OAAQ,OAG7Cv6B,KAAK09B,mCAAmCnD,GAG1CmD,mCAAmCnD,GACjC,MAAMrtB,EAASjK,EAAM4xB,uBAAuB0F,GAEvCrtB,IAILlN,KAAKo9B,yBAAyBlwB,EAAQ,OAAQ,YAE1CqtB,EAAMp1B,IACRnF,KAAKo9B,yBAAyBlwB,EAAQ,kBAAmB,IAAIqtB,EAAMp1B,OAIvE43B,gBAAgBr6B,EAASuZ,GACvB,MAAMuhB,EAAYx9B,KAAKy9B,iBAAiB/6B,GAExC,IAAK86B,EAAUhwB,UAAUC,SAASkuB,GAChC,OAGF,MAAM3T,EAAS,CAAC2L,EAAU1oB,KACxB,MAAMvI,EAAU2vB,EAAwB9lB,QAAQ+tB,QAAQ3G,EAAU6J,GAE9D96B,GACFA,EAAQ8K,UAAUwa,OAAO/c,EAAWgR,IAIxC+L,EAAO4T,EAA0BH,GACjCzT,EAAO6T,EAAwBjJ,GAC/B5K,EAAO8T,EAAwBL,GAC/B+B,EAAU7iB,aAAa,gBAAiBsB,GAG1CmhB,yBAAyB16B,EAASi7B,EAAW74B,GACtCpC,EAAQ0Q,aAAauqB,IACxBj7B,EAAQiY,aAAagjB,EAAW74B,GAIpC23B,cAAc/oB,GACZ,OAAOA,EAAKlG,UAAUC,SAASguB,GAIjC6B,iBAAiB5pB,GACf,OAAOA,EAAK8mB,QAAQ0B,GAAuBxoB,EAAO2e,EAAwB9lB,QAAQ+tB,QAAQ4B,EAAqBxoB,GAIjH+pB,iBAAiB/pB,GACf,OAAOA,EAAKnG,QAAQ0uB,IAAmBvoB,EAIzCse,uBAAuBlV,GACrB,OAAO9c,KAAK8I,MAAK,WACf,MAAM5F,EAAO+G,EAAImqB,oBAAoBp0B,MAErC,GAAsB,iBAAX8c,EAAX,CAIA,QAAqBxU,IAAjBpF,EAAK4Z,IAAyBA,EAAO2b,WAAW,MAAmB,gBAAX3b,EAC1D,MAAM,IAAIqN,UAAU,oBAAoBrN,MAG1C5Z,EAAK4Z,UAmCX,OAzBA8T,EAAsBrkB,QAAQxD,GAAGvK,SAAUm0B,EAAsBU,GAAsB,SAAU9wB,GAC3F,CAAC,IAAK,QAAQ+mB,SAAStpB,KAAKyhB,UAC9Blf,EAAM0G,iBAGJhG,EAAMg4B,WAAWj7B,OAIrBiK,EAAImqB,oBAAoBp0B,MAAMgI,UAMhC4oB,EAAsBrkB,QAAQxD,GAAGtJ,OAAQ27B,GAAqB,KAC5D,IAAK,MAAM14B,KAAW2vB,EAAwB9lB,QAAQhM,KAAK47B,GACzDlyB,EAAImqB,oBAAoB1xB,MAO5BO,EAAMmyB,mBAAmBnrB,GAClBA,EAvUyEkoB,CAAQ,EAAQ,MAAiB,EAAQ,MAAwB,EAAQ,KAA0B,EAAQ,6BCA5H7lB,EAAOid,QAC/D,SAAUtmB,EAAO26B,GACxB,aAEA,MAIMC,EAJwB70B,IAAKA,GAAkB,iBAANA,GAAkB,YAAaA,EAAIA,EAAI,CACpFuD,QAASvD,GAG+B0nB,CAAsBkN,GAahE,MAAMnN,EAEO6C,qBACT,MAAO,GAGEC,yBACT,MAAO,GAGErB,kBACT,MAAM,IAAIvK,MAAM,uEAGlBwJ,WAAWrU,GAMT,OALAA,EAAS9c,KAAK6xB,gBAAgB/U,GAC9BA,EAAS9c,KAAK8xB,kBAAkBhV,GAEhC9c,KAAK+xB,iBAAiBjV,GAEfA,EAGTgV,kBAAkBhV,GAChB,OAAOA,EAGT+U,gBAAgB/U,EAAQpa,GACtB,MAAMo7B,EAAa76B,EAAM86B,UAAUr7B,GAAWm7B,EAAqBtxB,QAAQ8tB,iBAAiB33B,EAAS,UAAY,GAEjH,MAAO,IAAK1C,KAAK6N,YAAYylB,WACD,iBAAfwK,EAA0BA,EAAa,MAC9C76B,EAAM86B,UAAUr7B,GAAWm7B,EAAqBtxB,QAAQytB,kBAAkBt3B,GAAW,MACnE,iBAAXoa,EAAsBA,EAAS,IAI9CiV,iBAAiBjV,EAAQkhB,EAAch+B,KAAK6N,YAAY0lB,aACtD,IAAK,MAAM0K,KAAYtX,OAAOgP,KAAKqI,GAAc,CAC/C,MAAME,EAAgBF,EAAYC,GAC5Bn5B,EAAQgY,EAAOmhB,GACfE,EAAYl7B,EAAM86B,UAAUj5B,GAAS,UAAY7B,EAAMm7B,OAAOt5B,GAEpE,IAAK,IAAIu5B,OAAOH,GAAe5f,KAAK6f,GAClC,MAAM,IAAIhU,UAAU,GAAGnqB,KAAK6N,YAAYqkB,KAAKyC,0BAA0BsJ,qBAA4BE,yBAAiCD,SAO5I,OAAOzN,EAxEyE0B,CAAQ,EAAQ,MAAY,EAAQ,4BCC7G,SAAU5I,GACjB,aAQA,MAAM+U,EAAU,IACVC,EAA0B,IAC1BC,EAAiB,gBAEjBJ,EAAS1iB,GACTA,QACK,GAAGA,IAGLiL,OAAOP,UAAUlI,SAASvB,KAAKjB,GAAQuE,MAAM,eAAe,GAAG4Z,cAOlE4E,EAASC,IACb,GACEA,GAAU3U,KAAK4U,MAAM5U,KAAK6U,SAAWN,SAC9B9/B,SAASgO,eAAekyB,IAEjC,OAAOA,GAGHG,EAAcn8B,IAClB,IAAIixB,EAAWjxB,EAAQqhB,aAAa,kBAEpC,IAAK4P,GAAyB,MAAbA,EAAkB,CACjC,IAAImL,EAAgBp8B,EAAQqhB,aAAa,QAKzC,IAAK+a,IAAkBA,EAAcxV,SAAS,OAASwV,EAAcrG,WAAW,KAC9E,OAAO,KAILqG,EAAcxV,SAAS,OAASwV,EAAcrG,WAAW,OAC3DqG,EAAgB,IAAIA,EAAc7gB,MAAM,KAAK,MAG/C0V,EAAWmL,GAAmC,MAAlBA,EAAwBA,EAAchY,OAAS,KAG7E,OAAO6M,GAGHC,EAAyBlxB,IAC7B,MAAMixB,EAAWkL,EAAYn8B,GAE7B,OAAIixB,GACKn1B,SAAS4N,cAAcunB,GAAYA,EAGrC,MAGHkB,EAAyBnyB,IAC7B,MAAMixB,EAAWkL,EAAYn8B,GAC7B,OAAOixB,EAAWn1B,SAAS4N,cAAcunB,GAAY,MAGjDoL,EAAmCr8B,IACvC,IAAKA,EACH,OAAO,EAIT,IAAI,mBACFs8B,EAAkB,gBAClBC,GACEx/B,OAAOy/B,iBAAiBx8B,GAC5B,MAAMy8B,EAA0BpsB,OAAOqsB,WAAWJ,GAC5CK,EAAuBtsB,OAAOqsB,WAAWH,GAE/C,OAAKE,GAA4BE,GAKjCL,EAAqBA,EAAmB/gB,MAAM,KAAK,GACnDghB,EAAkBA,EAAgBhhB,MAAM,KAAK,IACrClL,OAAOqsB,WAAWJ,GAAsBjsB,OAAOqsB,WAAWH,IAAoBV,GAN7E,GASLe,EAAuB58B,IAC3BA,EAAQwY,cAAc,IAAIC,MAAMqjB,KAG5BT,EAAYriB,MACXA,GAA4B,iBAAXA,UAIO,IAAlBA,EAAO6jB,SAChB7jB,EAASA,EAAO,SAGgB,IAApBA,EAAO8jB,UAGjBplB,EAAasB,GAEbqiB,EAAUriB,GACLA,EAAO6jB,OAAS7jB,EAAO,GAAKA,EAGf,iBAAXA,GAAuBA,EAAO3a,OAAS,EACzCvC,SAAS4N,cAAcsP,GAGzB,KAGHwf,EAAYx4B,IAChB,IAAKq7B,EAAUr7B,IAAgD,IAApCA,EAAQ+8B,iBAAiB1+B,OAClD,OAAO,EAGT,MAAM2+B,EAAgF,YAA7DR,iBAAiBx8B,GAASi9B,iBAAiB,cAE9DC,EAAgBl9B,EAAQ6K,QAAQ,uBAEtC,IAAKqyB,EACH,OAAOF,EAGT,GAAIE,IAAkBl9B,EAAS,CAC7B,MAAMm9B,EAAUn9B,EAAQ6K,QAAQ,WAEhC,GAAIsyB,GAAWA,EAAQ3b,aAAe0b,EACpC,OAAO,EAGT,GAAgB,OAAZC,EACF,OAAO,EAIX,OAAOH,GAGHzE,EAAav4B,IACZA,GAAWA,EAAQ88B,WAAaM,KAAKC,gBAItCr9B,EAAQ8K,UAAUC,SAAS,mBAIC,IAArB/K,EAAQs9B,SACVt9B,EAAQs9B,SAGVt9B,EAAQ0Q,aAAa,aAAoD,UAArC1Q,EAAQqhB,aAAa,aAG5Dkc,EAAiBv9B,IACrB,IAAKlE,SAASwM,gBAAgBk1B,aAC5B,OAAO,KAIT,GAAmC,mBAAxBx9B,EAAQy9B,YAA4B,CAC7C,MAAMC,EAAO19B,EAAQy9B,cACrB,OAAOC,aAAgBC,WAAaD,EAAO,KAG7C,OAAI19B,aAAmB29B,WACd39B,EAIJA,EAAQwhB,WAIN+b,EAAev9B,EAAQwhB,YAHrB,MAMLoc,EAAO,OAWPvoB,EAASrV,IACbA,EAAQosB,cAGJ+J,EAAY,IACZp5B,OAAOgU,SAAWjV,SAASwR,KAAKoD,aAAa,qBACxC3T,OAAOgU,OAGT,KAGH8sB,EAA4B,GAE5BC,EAAqB7vB,IACG,YAAxBnS,SAAS6xB,YAENkQ,EAA0Bx/B,QAC7BvC,SAASC,iBAAiB,oBAAoB,KAC5C,IAAK,MAAMkS,KAAY4vB,EACrB5vB,OAKN4vB,EAA0Bj5B,KAAKqJ,IAE/BA,KAIE8vB,EAAQ,IAAuC,QAAjCjiC,SAASwM,gBAAgB6Y,IAEvCuR,EAAqBsL,IACzBF,GAAmB,KACjB,MAAMpgC,EAAIy4B,IAGV,GAAIz4B,EAAG,CACL,MAAMiF,EAAOq7B,EAAOxO,KACdyO,EAAqBvgC,EAAEyf,GAAGxa,GAChCjF,EAAEyf,GAAGxa,GAAQq7B,EAAOE,gBACpBxgC,EAAEyf,GAAGxa,GAAMw7B,YAAcH,EAEzBtgC,EAAEyf,GAAGxa,GAAMy7B,WAAa,KACtB1gC,EAAEyf,GAAGxa,GAAQs7B,EACND,EAAOE,sBAMhBG,EAAUpwB,IACU,mBAAbA,GACTA,KAIEihB,EAAyB,CAACjhB,EAAUqwB,EAAmBC,GAAoB,KAC/E,IAAKA,EAEH,YADAF,EAAQpwB,GAIV,MAAMuwB,EAAkB,EAClBC,EAAmBpC,EAAiCiC,GAAqBE,EAC/E,IAAIE,GAAS,EAEb,MAAMzK,EAAU,EACdzpB,aAEIA,IAAW8zB,IAIfI,GAAS,EACTJ,EAAkB/I,oBAAoBuG,EAAgB7H,GACtDoK,EAAQpwB,KAGVqwB,EAAkBviC,iBAAiB+/B,EAAgB7H,GACnDntB,YAAW,KACJ43B,GACH9B,EAAqB0B,KAEtBG,IAaChE,EAAuB,CAACpU,EAAMsY,EAAeC,EAAeC,KAChE,MAAMC,EAAazY,EAAKhoB,OACxB,IAAIkC,EAAQ8lB,EAAKlK,QAAQwiB,GAGzB,OAAe,IAAXp+B,GACMq+B,GAAiBC,EAAiBxY,EAAKyY,EAAa,GAAKzY,EAAK,IAGxE9lB,GAASq+B,EAAgB,GAAK,EAE1BC,IACFt+B,GAASA,EAAQu+B,GAAcA,GAG1BzY,EAAKgB,KAAK1W,IAAI,EAAG0W,KAAKnlB,IAAI3B,EAAOu+B,EAAa,OAGvDjY,EAAQ6L,mBAAqBA,EAC7B7L,EAAQwX,QAAUA,EAClBxX,EAAQqI,uBAAyBA,EACjCrI,EAAQ0W,eAAiBA,EACzB1W,EAAQnP,WAAaA,EACrBmP,EAAQsL,uBAAyBA,EACjCtL,EAAQ4T,qBAAuBA,EAC/B5T,EAAQqK,uBAAyBA,EACjCrK,EAAQwV,iCAAmCA,EAC3CxV,EAAQkV,OAASA,EACjBlV,EAAQsP,UAAYA,EACpBtP,EAAQ0R,WAAaA,EACrB1R,EAAQwU,UAAYA,EACpBxU,EAAQkX,MAAQA,EAChBlX,EAAQ2R,UAAYA,EACpB3R,EAAQ+W,KAAOA,EACf/W,EAAQiX,mBAAqBA,EAC7BjX,EAAQxR,OAASA,EACjBwR,EAAQ6U,OAASA,EACjB7U,EAAQ+V,qBAAuBA,EAC/B3Y,OAAO8a,iBAAiBlY,EAAS,CAC/BmY,WAAY,CACV58B,OAAO,GAET,CAAC68B,OAAOC,aAAc,CACpB98B,MAAO,YAxVoDqtB,CAAQ5I,mBCNzE,EAAQ,MAER,EAAQ,MAER,EAAQ,MAER,EAAQ,MAER,EAAQ,MAER,EAAQ,MAER,EAAQ,MAER,EAAQ,MAER,IAAItjB,EAAO,EAAQ,MAEnBqG,EAAOid,QAAUtjB,EAAKqV,wBClBtB,IAAIumB,EAAa,EAAQ,MAErBC,EAAc,EAAQ,MAEtBC,EAAa5X,UAEjB7d,EAAOid,QAAU,SAAUyY,GACzB,GAAIH,EAAWG,GAAW,OAAOA,EACjC,MAAMD,EAAWD,EAAYE,GAAY,uCCR3C,IAAIC,EAAgB,EAAQ,MAExBH,EAAc,EAAQ,MAEtBC,EAAa5X,UAEjB7d,EAAOid,QAAU,SAAUyY,GACzB,GAAIC,EAAcD,GAAW,OAAOA,EACpC,MAAMD,EAAWD,EAAYE,GAAY,0CCR3C,IAAIH,EAAa,EAAQ,MAErBK,EAAUrb,OACVkb,EAAa5X,UAEjB7d,EAAOid,QAAU,SAAUyY,GACzB,GAAuB,iBAAZA,GAAwBH,EAAWG,GAAW,OAAOA,EAChE,MAAMD,EAAW,aAAeG,EAAQF,GAAY,oCCPtD,IAAIG,EAAkB,EAAQ,MAE1BC,EAAS,EAAQ,KAEjBha,EAAiB,SAEjBia,EAAcF,EAAgB,eAC9BG,EAAiB7zB,MAAM2X,UAGQ9d,MAA/Bg6B,EAAeD,IACjBja,EAAeka,EAAgBD,EAAa,CAC1C9Z,cAAc,EACdzjB,MAAOs9B,EAAO,QAKlB91B,EAAOid,QAAU,SAAU1T,GACzBysB,EAAeD,GAAaxsB,IAAO,mBCnBrC,IAAI0sB,EAAgB,EAAQ,MAExBR,EAAa5X,UAEjB7d,EAAOid,QAAU,SAAUiZ,EAAIC,GAC7B,GAAIF,EAAcE,EAAWD,GAAK,OAAOA,EACzC,MAAMT,EAAW,yCCNnB,IAAIW,EAAW,EAAQ,MAEnBR,EAAUrb,OACVkb,EAAa5X,UAEjB7d,EAAOid,QAAU,SAAUyY,GACzB,GAAIU,EAASV,GAAW,OAAOA,EAC/B,MAAMD,EAAWG,EAAQF,GAAY,sCCPvC,IAAIW,EAAkB,EAAQ,KAE1BC,EAAkB,EAAQ,MAE1BC,EAAoB,EAAQ,MAG5Bla,EAAe,SAAUma,GAC3B,OAAO,SAAU9hB,EAAOnX,EAAIk5B,GAC1B,IAGIj+B,EAHAwlB,EAAIqY,EAAgB3hB,GACpBjgB,EAAS8hC,EAAkBvY,GAC3BrnB,EAAQ2/B,EAAgBG,EAAWhiC,GAIvC,GAAI+hC,GAAej5B,GAAMA,GAAI,KAAO9I,EAASkC,GAG3C,IAFA6B,EAAQwlB,EAAErnB,OAEG6B,EAAO,OAAO,OACtB,KAAO/D,EAASkC,EAAOA,IAC5B,IAAK6/B,GAAe7/B,KAASqnB,IAAMA,EAAErnB,KAAW4G,EAAI,OAAOi5B,GAAe7/B,GAAS,EAErF,OAAQ6/B,IAAgB,IAI5Bx2B,EAAOid,QAAU,CAGfD,SAAUX,GAAa,GAGvB9J,QAAS8J,GAAa,oBChCxB,IAAIqa,EAAc,EAAQ,MAE1B12B,EAAOid,QAAUyZ,EAAY,GAAGtmB,uBCFhC,IAEIumB,EAFkB,EAAQ,KAEfd,CAAgB,YAC3Be,GAAe,EAEnB,IACE,IAAI9B,EAAS,EACT+B,EAAqB,CACvBtI,KAAM,WACJ,MAAO,CACLhhB,OAAQunB,MAGZ,OAAU,WACR8B,GAAe,IAInBC,EAAmBF,GAAY,WAC7B,OAAOjjC,MAITyO,MAAMinB,KAAKyN,GAAoB,WAC7B,MAAM,KAER,MAAO/yB,IAIT9D,EAAOid,QAAU,SAAU6Z,EAAMC,GAC/B,IAAKA,IAAiBH,EAAc,OAAO,EAC3C,IAAII,GAAoB,EAExB,IACE,IAAI5nB,EAAS,GAEbA,EAAOunB,GAAY,WACjB,MAAO,CACLpI,KAAM,WACJ,MAAO,CACLhhB,KAAMypB,GAAoB,MAMlCF,EAAK1nB,GACL,MAAOtL,IAIT,OAAOkzB,kBCpDT,IAAIN,EAAc,EAAQ,MAEtB9kB,EAAW8kB,EAAY,GAAG9kB,UAC1BqlB,EAAcP,EAAY,GAAGtmB,OAEjCpQ,EAAOid,QAAU,SAAUiZ,GACzB,OAAOe,EAAYrlB,EAASskB,GAAK,GAAI,oBCNvC,IAAIgB,EAAwB,EAAQ,MAEhC3B,EAAa,EAAQ,MAErB4B,EAAa,EAAQ,KAIrBC,EAFkB,EAAQ,KAEVvB,CAAgB,eAChCwB,EAAUhd,OAEVid,EAEI,aAFgBH,EAAW,WACjC,OAAO5b,UAD0B,IAanCvb,EAAOid,QAAUia,EAAwBC,EAAa,SAAUjB,GAC9D,IAAIlY,EAAGuZ,EAAK3b,EACZ,YAAc5f,IAAPk6B,EAAmB,YAAqB,OAAPA,EAAc,OACK,iBAAjDqB,EAZC,SAAUrB,EAAI3sB,GACzB,IACE,OAAO2sB,EAAG3sB,GACV,MAAOzF,KASO0zB,CAAOxZ,EAAIqZ,EAAQnB,GAAKkB,IAA8BG,EACpED,EAAoBH,EAAWnZ,GACH,WAA3BpC,EAASub,EAAWnZ,KAAmBuX,EAAWvX,EAAEyZ,QAAU,YAAc7b,mBC7BjF,IAAI8a,EAAc,EAAQ,MAEtBgB,EAASrc,MACT5iB,EAAUi+B,EAAY,GAAGj+B,SAEzBk/B,EACKpd,OAAOmd,EACd,UAD0BE,OAGxBC,EAA2B,uBAC3BC,EAAwBD,EAAyB7lB,KAAK2lB,GAE1D33B,EAAOid,QAAU,SAAU2a,EAAOG,GAChC,GAAID,GAAyC,iBAATF,IAAsBF,EAAOM,kBAC/D,KAAOD,KAAeH,EAAQn/B,EAAQm/B,EAAOC,EAA0B,IAGzE,OAAOD,mBCjBT,IAAIK,EAAS,EAAQ,KAEjBC,EAAU,EAAQ,KAElBC,EAAiC,EAAQ,MAEzCC,EAAuB,EAAQ,KAEnCp4B,EAAOid,QAAU,SAAUrc,EAAQy3B,EAAQC,GAKzC,IAJA,IAAIjP,EAAO6O,EAAQG,GACfvc,EAAiBsc,EAAqBj1B,EACtCo1B,EAA2BJ,EAA+Bh1B,EAErDtJ,EAAI,EAAGA,EAAIwvB,EAAK50B,OAAQoF,IAAK,CACpC,IAAI0P,EAAM8f,EAAKxvB,GAEVo+B,EAAOr3B,EAAQ2I,IAAU+uB,GAAcL,EAAOK,EAAY/uB,IAC7DuS,EAAelb,EAAQ2I,EAAKgvB,EAAyBF,EAAQ9uB,sBCjBnE,IAAIivB,EAAQ,EAAQ,MAEpBx4B,EAAOid,SAAWub,GAAM,WACtB,SAAStY,KAMT,OAFAA,EAAEpG,UAAUvY,YAAc,KAEnB8Y,OAAOoe,eAAe,IAAIvY,KAASA,EAAEpG,0CCP9C,IAAI4e,EAAoB,0BAEpB5C,EAAS,EAAQ,KAEjB6C,EAA2B,EAAQ,MAEnCC,EAAiB,EAAQ,MAEzBC,EAAY,EAAQ,MAEpBC,EAAa,WACf,OAAOplC,MAGTsM,EAAOid,QAAU,SAAU8b,EAAqBnT,EAAM2I,EAAMyK,GAC1D,IAAI5B,EAAgBxR,EAAO,YAM3B,OALAmT,EAAoBjf,UAAYgc,EAAO4C,EAAmB,CACxDnK,KAAMoK,IAA2BK,EAAiBzK,KAEpDqK,EAAeG,EAAqB3B,GAAe,GAAO,GAC1DyB,EAAUzB,GAAiB0B,EACpBC,mBCvBT,IAAIE,EAAc,EAAQ,MAEtBb,EAAuB,EAAQ,KAE/BO,EAA2B,EAAQ,MAEvC34B,EAAOid,QAAUgc,EAAc,SAAU7pB,EAAQ7F,EAAK/Q,GACpD,OAAO4/B,EAAqBj1B,EAAEiM,EAAQ7F,EAAKovB,EAAyB,EAAGngC,KACrE,SAAU4W,EAAQ7F,EAAK/Q,GAEzB,OADA4W,EAAO7F,GAAO/Q,EACP4W,aCVTpP,EAAOid,QAAU,SAAUic,EAAQ1gC,GACjC,MAAO,CACLwjB,aAAuB,EAATkd,GACdjd,eAAyB,EAATid,GAChB/Y,WAAqB,EAAT+Y,GACZ1gC,MAAOA,oBCLX,IAAI+8B,EAAa,EAAQ,MAErB6C,EAAuB,EAAQ,KAE/Be,EAAc,EAAQ,MAEtBC,EAAuB,EAAQ,MAEnCp5B,EAAOid,QAAU,SAAUe,EAAGzU,EAAK/Q,EAAOwE,GACnCA,IAASA,EAAU,IACxB,IAAIq8B,EAASr8B,EAAQgf,WACjBjjB,OAAwBiD,IAAjBgB,EAAQjE,KAAqBiE,EAAQjE,KAAOwQ,EAGvD,GAFIgsB,EAAW/8B,IAAQ2gC,EAAY3gC,EAAOO,EAAMiE,GAE5CA,EAAQQ,OACN67B,EAAQrb,EAAEzU,GAAO/Q,EAAW4gC,EAAqB7vB,EAAK/Q,OACrD,CACL,IACOwE,EAAQs8B,OAA+Btb,EAAEzU,KAAM8vB,GAAS,UAAjCrb,EAAEzU,GAC9B,MAAOzF,IAILu1B,EAAQrb,EAAEzU,GAAO/Q,EAAW4/B,EAAqBj1B,EAAE6a,EAAGzU,EAAK,CAC7D/Q,MAAOA,EACPwjB,YAAY,EACZC,cAAejf,EAAQu8B,gBACvBpZ,UAAWnjB,EAAQw8B,cAIvB,OAAOxb,mBC/BT,IAAIxgB,EAAS,EAAQ,MAGjBse,EAAiBzB,OAAOyB,eAE5B9b,EAAOid,QAAU,SAAU1T,EAAK/Q,GAC9B,IACEsjB,EAAete,EAAQ+L,EAAK,CAC1B/Q,MAAOA,EACPyjB,cAAc,EACdkE,UAAU,IAEZ,MAAOrc,GACPtG,EAAO+L,GAAO/Q,EAGhB,OAAOA,gCCdT,IAAI1E,EAAI,EAAQ,MAEZuc,EAAO,EAAQ,KAEfopB,EAAU,EAAQ,MAElBC,EAAe,EAAQ,MAEvBnE,EAAa,EAAQ,MAErBoE,EAA4B,EAAQ,MAEpClB,EAAiB,EAAQ,MAEzBmB,EAAiB,EAAQ,MAEzBhB,EAAiB,EAAQ,MAEzBiB,EAA8B,EAAQ,MAEtCC,EAAgB,EAAQ,MAExBjE,EAAkB,EAAQ,MAE1BgD,EAAY,EAAQ,MAEpBkB,EAAgB,EAAQ,MAExBC,EAAuBN,EAAaO,OACpCC,EAA6BR,EAAaS,aAC1CzB,EAAoBqB,EAAcrB,kBAClC0B,EAAyBL,EAAcK,uBACvCzD,EAAWd,EAAgB,YAC3BwE,EAAO,OACPC,EAAS,SACTC,EAAU,UAEVzB,EAAa,WACf,OAAOplC,MAGTsM,EAAOid,QAAU,SAAUud,EAAU5U,EAAMmT,EAAqBxK,EAAMkM,EAASC,EAAQC,GACrFhB,EAA0BZ,EAAqBnT,EAAM2I,GAErD,IAgCIqM,EAA0BC,EAASC,EAhCnCC,EAAqB,SAAUC,GACjC,GAAIA,IAASP,GAAWQ,EAAiB,OAAOA,EAChD,IAAKb,GAA0BY,KAAQE,EAAmB,OAAOA,EAAkBF,GAEnF,OAAQA,GACN,KAAKX,EAKL,KAAKC,EAKL,KAAKC,EACH,OAAO,WACL,OAAO,IAAIxB,EAAoBrlC,KAAMsnC,IAI3C,OAAO,WACL,OAAO,IAAIjC,EAAoBrlC,QAI/B0jC,EAAgBxR,EAAO,YACvBuV,GAAwB,EACxBD,EAAoBV,EAAS1gB,UAC7BshB,EAAiBF,EAAkBvE,IAAauE,EAAkB,eAAiBT,GAAWS,EAAkBT,GAChHQ,GAAmBb,GAA0BgB,GAAkBL,EAAmBN,GAClFY,EAA4B,SAARzV,GAAkBsV,EAAkB1lB,SAA4B4lB,EAmCxF,GAhCIC,IACFT,EAA2BnC,EAAe4C,EAAkBhrB,KAAK,IAAImqB,OAEpCngB,OAAOP,WAAa8gB,EAAyBrM,OACvEkL,GAAWhB,EAAemC,KAA8BlC,IACvDkB,EACFA,EAAegB,EAA0BlC,GAC/BnD,EAAWqF,EAAyBjE,KAC9CmD,EAAcc,EAA0BjE,EAAUmC,IAKtDF,EAAegC,EAA0BxD,GAAe,GAAM,GAC1DqC,IAASZ,EAAUzB,GAAiB0B,IAKxCkB,GAAwBS,GAAWH,GAAUc,GAAkBA,EAAeriC,OAASuhC,KACpFb,GAAWS,EACdL,EAA4BqB,EAAmB,OAAQZ,IAEvDa,GAAwB,EAExBF,EAAkB,WAChB,OAAO5qB,EAAK+qB,EAAgB1nC,SAM9B+mC,EAMF,GALAI,EAAU,CACR/P,OAAQiQ,EAAmBT,GAC3BjR,KAAMqR,EAASO,EAAkBF,EAAmBV,GACpD7kB,QAASulB,EAAmBR,IAE1BI,EAAQ,IAAKG,KAAOD,GAClBT,GAA0Be,KAA2BL,KAAOI,KAC9DpB,EAAcoB,EAAmBJ,EAAKD,EAAQC,SAE3ChnC,EAAE,CACP8M,OAAQglB,EACR0V,OAAO,EACPC,OAAQnB,GAA0Be,GACjCN,GAWL,OAPMpB,IAAWkB,GAAWO,EAAkBvE,KAAcsE,GAC1DnB,EAAcoB,EAAmBvE,EAAUsE,EAAiB,CAC1DliC,KAAM0hC,IAIV5B,EAAUjT,GAAQqV,EACXJ,mBCzIT,IAAIrC,EAAQ,EAAQ,MAGpBx4B,EAAOid,SAAWub,GAAM,WAEtB,OAIS,GAJFne,OAAOyB,eAAe,GAAI,EAAG,CAClCze,IAAK,WACH,OAAO,KAER,sBCTL,IAAIG,EAAS,EAAQ,MAEjB44B,EAAW,EAAQ,MAEnBlkC,EAAWsL,EAAOtL,SAElBspC,EAASpF,EAASlkC,IAAakkC,EAASlkC,EAASic,eAErDnO,EAAOid,QAAU,SAAUiZ,GACzB,OAAOsF,EAAStpC,EAASic,cAAc+nB,GAAM,cCT/Cl2B,EAAOid,QAA2B,iBAAV9pB,QAAqC,iBAARsoC,eCCrDz7B,EAAOid,QAAyB,iBAARwe,MAAoBA,MAA+B,iBAAhBA,KAAKC,uBCDhE,IAAIhoB,EAAY,EAAQ,MAEpBlW,EAAS,EAAQ,MAErBwC,EAAOid,QAAU,oBAAoBjL,KAAK0B,SAAgC1X,IAAlBwB,EAAOm+B,sBCJ/D,IAAIjoB,EAAY,EAAQ,MAExB1T,EAAOid,QAAU,qCAAqCjL,KAAK0B,mBCF3D,IAAIkoB,EAAU,EAAQ,KAElBp+B,EAAS,EAAQ,MAErBwC,EAAOid,QAAqC,WAA3B2e,EAAQp+B,EAAO0T,yBCJhC,IAAIwC,EAAY,EAAQ,MAExB1T,EAAOid,QAAU,qBAAqBjL,KAAK0B,mBCF3C,IAAImoB,EAAa,EAAQ,MAEzB77B,EAAOid,QAAU4e,EAAW,YAAa,cAAgB,mBCFzD,IAQIloB,EAAO+nB,EARPl+B,EAAS,EAAQ,MAEjBkW,EAAY,EAAQ,MAEpBxC,EAAU1T,EAAO0T,QACjBuqB,EAAOj+B,EAAOi+B,KACdK,EAAW5qB,GAAWA,EAAQ4qB,UAAYL,GAAQA,EAAKC,QACvDK,EAAKD,GAAYA,EAASC,GAG1BA,IAIFL,GAHA/nB,EAAQooB,EAAGpqB,MAAM,MAGD,GAAK,GAAKgC,EAAM,GAAK,EAAI,IAAMA,EAAM,GAAKA,EAAM,MAK7D+nB,GAAWhoB,MACdC,EAAQD,EAAUC,MAAM,iBAEVA,EAAM,IAAM,MACxBA,EAAQD,EAAUC,MAAM,oBACb+nB,GAAW/nB,EAAM,IAIhC3T,EAAOid,QAAUye,YC3BjB17B,EAAOid,QAAU,CAAC,cAAe,iBAAkB,gBAAiB,uBAAwB,iBAAkB,WAAY,2BCD1H,IAAIub,EAAQ,EAAQ,MAEhBG,EAA2B,EAAQ,MAEvC34B,EAAOid,SAAWub,GAAM,WACtB,IAAI10B,EAAQuX,MAAM,KAClB,QAAM,UAAWvX,KAEjBuW,OAAOyB,eAAehY,EAAO,QAAS60B,EAAyB,EAAG,IAC3C,IAAhB70B,EAAM8zB,0BCTf,IAAIp6B,EAAS,EAAQ,MAEjB+6B,EAA2B,UAE3BsB,EAA8B,EAAQ,MAEtCC,EAAgB,EAAQ,MAExBV,EAAuB,EAAQ,MAE/B4C,EAA4B,EAAQ,MAEpCC,EAAW,EAAQ,IAkBvBj8B,EAAOid,QAAU,SAAUjgB,EAASq7B,GAClC,IAGYz3B,EAAQ2I,EAAK2yB,EAAgBC,EAAgBC,EAHrDC,EAASr/B,EAAQ4D,OACjB07B,EAASt/B,EAAQQ,OACjB++B,EAASv/B,EAAQw/B,KAWrB,GAPE57B,EADE07B,EACO9+B,EACA++B,EACA/+B,EAAO6+B,IAAWjD,EAAqBiD,EAAQ,KAE9C7+B,EAAO6+B,IAAW,IAAIviB,UAGtB,IAAKvQ,KAAO8uB,EAAQ,CAU9B,GATA8D,EAAiB9D,EAAO9uB,GAItB2yB,EAFEl/B,EAAQy/B,gBACVL,EAAa7D,EAAyB33B,EAAQ2I,KACf6yB,EAAW5jC,MACpBoI,EAAO2I,IAEtB0yB,EAASK,EAAS/yB,EAAM8yB,GAAUE,EAAS,IAAM,KAAOhzB,EAAKvM,EAAQu+B,cAE5Cv/B,IAAnBkgC,EAA8B,CAC3C,UAAWC,UAAyBD,EAAgB,SACpDF,EAA0BG,EAAgBD,IAIxCl/B,EAAQ0/B,MAAQR,GAAkBA,EAAeQ,OACnD7C,EAA4BsC,EAAgB,QAAQ,GAGtDrC,EAAcl5B,EAAQ2I,EAAK4yB,EAAgBn/B,eChE/CgD,EAAOid,QAAU,SAAU6Z,GACzB,IACE,QAASA,IACT,MAAOhzB,GACP,OAAO,oBCJX,IAAI64B,EAAc,EAAQ,MAEtBC,EAAoBrf,SAASzD,UAC7B1E,EAAQwnB,EAAkBxnB,MAC1B/E,EAAOusB,EAAkBvsB,KAE7BrQ,EAAOid,QAA4B,iBAAX5N,SAAuBA,QAAQ+F,QAAUunB,EAActsB,EAAKwsB,KAAKznB,GAAS,WAChG,OAAO/E,EAAK+E,MAAMA,EAAOmG,4BCP3B,IAAImb,EAAc,EAAQ,MAEtBoG,EAAY,EAAQ,MAEpBH,EAAc,EAAQ,MAEtBE,EAAOnG,EAAYA,EAAYmG,MAEnC78B,EAAOid,QAAU,SAAU1J,EAAIwpB,GAE7B,OADAD,EAAUvpB,QACMvX,IAAT+gC,EAAqBxpB,EAAKopB,EAAcE,EAAKtpB,EAAIwpB,GAAQ,WAG9D,OAAOxpB,EAAG6B,MAAM2nB,EAAMxhB,6BCb1B,IAAIid,EAAQ,EAAQ,MAEpBx4B,EAAOid,SAAWub,GAAM,WAEtB,IAAIxmB,EAAO,aAET6qB,OAGF,MAAsB,mBAAR7qB,GAAsBA,EAAKqO,eAAe,+BCT1D,IAAIsc,EAAc,EAAQ,MAEtBtsB,EAAOkN,SAASzD,UAAUzJ,KAC9BrQ,EAAOid,QAAU0f,EAActsB,EAAKwsB,KAAKxsB,GAAQ,WAC/C,OAAOA,EAAK+E,MAAM/E,EAAMkL,4BCJ1B,IAAI0d,EAAc,EAAQ,MAEtBhB,EAAS,EAAQ,KAEjB2E,EAAoBrf,SAASzD,UAE7BkjB,EAAgB/D,GAAe5e,OAAOke,yBACtCiD,EAASvD,EAAO2E,EAAmB,QAEnC3C,EAASuB,GAEF,cAFY,aAErBziC,KAEEohC,EAAeqB,KAAYvC,GAAeA,GAAe+D,EAAcJ,EAAmB,QAAQ3gB,cACtGjc,EAAOid,QAAU,CACfue,OAAQA,EACRvB,OAAQA,EACRE,aAAcA,mBCjBhB,IAAIwC,EAAc,EAAQ,MAEtBC,EAAoBrf,SAASzD,UAC7B+iB,EAAOD,EAAkBC,KACzBxsB,EAAOusB,EAAkBvsB,KACzBqmB,EAAciG,GAAeE,EAAKA,KAAKxsB,EAAMA,GACjDrQ,EAAOid,QAAU0f,EAAc,SAAUppB,GACvC,OAAOA,GAAMmjB,EAAYnjB,IACvB,SAAUA,GACZ,OAAOA,GAAM,WACX,OAAOlD,EAAK+E,MAAM7B,EAAIgI,6BCV1B,IAAI/d,EAAS,EAAQ,MAEjB+3B,EAAa,EAAQ,MAErB0H,EAAY,SAAUvH,GACxB,OAAOH,EAAWG,GAAYA,OAAW15B,GAG3CgE,EAAOid,QAAU,SAAU4O,EAAWroB,GACpC,OAAO+X,UAAU9mB,OAAS,EAAIwoC,EAAUz/B,EAAOquB,IAAcruB,EAAOquB,IAAcruB,EAAOquB,GAAWroB,oBCTtG,IAAIo4B,EAAU,EAAQ,MAElBsB,EAAY,EAAQ,MAEpBrE,EAAY,EAAQ,MAIpBlC,EAFkB,EAAQ,KAEfd,CAAgB,YAE/B71B,EAAOid,QAAU,SAAUiZ,GACzB,GAAUl6B,MAANk6B,EAAiB,OAAOgH,EAAUhH,EAAIS,IAAauG,EAAUhH,EAAI,eAAiB2C,EAAU+C,EAAQ1F,qBCX1G,IAAI7lB,EAAO,EAAQ,KAEfysB,EAAY,EAAQ,MAEpBK,EAAW,EAAQ,MAEnB3H,EAAc,EAAQ,MAEtB4H,EAAoB,EAAQ,MAE5B3H,EAAa5X,UAEjB7d,EAAOid,QAAU,SAAUyY,EAAU2H,GACnC,IAAIC,EAAiB/hB,UAAU9mB,OAAS,EAAI2oC,EAAkB1H,GAAY2H,EAC1E,GAAIP,EAAUQ,GAAiB,OAAOH,EAAS9sB,EAAKitB,EAAgB5H,IACpE,MAAMD,EAAWD,EAAYE,GAAY,qCCf3C,IAAIoH,EAAY,EAAQ,MAIxB98B,EAAOid,QAAU,SAAU+D,EAAG1B,GAC5B,IAAIie,EAAOvc,EAAE1B,GACb,OAAe,MAARie,OAAevhC,EAAY8gC,EAAUS,oBCN9C,IAAIC,EAAQ,SAAUtH,GACpB,OAAOA,GAAMA,EAAGzY,MAAQA,MAAQyY,GAIlCl2B,EAAOid,QACPugB,EAA2B,iBAAdC,YAA0BA,aAAeD,EAAuB,iBAAVrqC,QAAsBA,SACzFqqC,EAAqB,iBAARt3B,MAAoBA,OAASs3B,EAAuB,iBAAV,EAAAtgB,GAAsB,EAAAA,IAC7E,WACE,OAAOxpB,KADT,IAEO6pB,SAAS,cAATA,kBCVP,IAAImZ,EAAc,EAAQ,MAEtBgH,EAAW,EAAQ,MAEnBrd,EAAiBqW,EAAY,GAAGrW,gBAIpCrgB,EAAOid,QAAU5C,OAAO4d,QAAU,SAAgB/B,EAAI3sB,GACpD,OAAO8W,EAAeqd,EAASxH,GAAK3sB,cCTtCvJ,EAAOid,QAAU,mBCAjB,IAAIzf,EAAS,EAAQ,MAErBwC,EAAOid,QAAU,SAAU/Y,EAAGC,GAC5B,IAAI5F,EAAUf,EAAOe,QAEjBA,GAAWA,EAAQuF,QACD,GAApByX,UAAU9mB,OAAc8J,EAAQuF,MAAMI,GAAK3F,EAAQuF,MAAMI,EAAGC,qBCNhE,IAAI03B,EAAa,EAAQ,MAEzB77B,EAAOid,QAAU4e,EAAW,WAAY,mCCFxC,IAAI5C,EAAc,EAAQ,MAEtBT,EAAQ,EAAQ,MAEhBrqB,EAAgB,EAAQ,MAG5BnO,EAAOid,SAAWgc,IAAgBT,GAAM,WAEtC,OAIQ,GAJDne,OAAOyB,eAAe3N,EAAc,OAAQ,IAAK,CACtD9Q,IAAK,WACH,OAAO,KAER6G,qBCbL,IAAIwyB,EAAc,EAAQ,MAEtB8B,EAAQ,EAAQ,MAEhBoD,EAAU,EAAQ,KAElBvE,EAAUhd,OACV1I,EAAQ+kB,EAAY,GAAG/kB,OAE3B3R,EAAOid,QAAUub,GAAM,WAGrB,OAAQnB,EAAQ,KAAKsG,qBAAqB,MACvC,SAAUzH,GACb,MAAsB,UAAf0F,EAAQ1F,GAAkBvkB,EAAMukB,EAAI,IAAMmB,EAAQnB,IACvDmB,kBCfJ,IAAIX,EAAc,EAAQ,MAEtBnB,EAAa,EAAQ,MAErBqI,EAAQ,EAAQ,MAEhBC,EAAmBnH,EAAYnZ,SAAS3L,UAEvC2jB,EAAWqI,EAAME,iBACpBF,EAAME,cAAgB,SAAU5H,GAC9B,OAAO2H,EAAiB3H,KAI5Bl2B,EAAOid,QAAU2gB,EAAME,8BCdvB,IAAI1H,EAAW,EAAQ,MAEnByD,EAA8B,EAAQ,MAI1C75B,EAAOid,QAAU,SAAUe,EAAGhhB,GACxBo5B,EAASp5B,IAAY,UAAWA,GAClC68B,EAA4B7b,EAAG,QAAShhB,EAAQ+gC,wBCRpD,IAqBIjZ,EAAKznB,EAAKiS,EArBV0uB,EAAkB,EAAQ,MAE1BxgC,EAAS,EAAQ,MAEjBk5B,EAAc,EAAQ,MAEtBN,EAAW,EAAQ,MAEnByD,EAA8B,EAAQ,MAEtC5B,EAAS,EAAQ,KAEjBljC,EAAS,EAAQ,MAEjBkpC,EAAY,EAAQ,MAEpBC,EAAa,EAAQ,MAErBC,EAA6B,6BAC7BtgB,EAAYrgB,EAAOqgB,UACnBugB,EAAU5gC,EAAO4gC,QAmBrB,GAAIJ,GAAmBjpC,EAAOspC,MAAO,CACnC,IAAIT,EAAQ7oC,EAAOspC,QAAUtpC,EAAOspC,MAAQ,IAAID,GAC5CE,EAAQ5H,EAAYkH,EAAMvgC,KAC1BkhC,EAAQ7H,EAAYkH,EAAMtuB,KAC1BkvB,EAAQ9H,EAAYkH,EAAM9Y,KAE9BA,EAAM,SAAUoR,EAAIuI,GAClB,GAAIF,EAAMX,EAAO1H,GAAK,MAAM,IAAIrY,EAAUsgB,GAG1C,OAFAM,EAASC,OAASxI,EAClBsI,EAAMZ,EAAO1H,EAAIuI,GACVA,GAGTphC,EAAM,SAAU64B,GACd,OAAOoI,EAAMV,EAAO1H,IAAO,IAG7B5mB,EAAM,SAAU4mB,GACd,OAAOqI,EAAMX,EAAO1H,QAEjB,CACL,IAAIyI,EAAQV,EAAU,SACtBC,EAAWS,IAAS,EAEpB7Z,EAAM,SAAUoR,EAAIuI,GAClB,GAAIxG,EAAO/B,EAAIyI,GAAQ,MAAM,IAAI9gB,EAAUsgB,GAG3C,OAFAM,EAASC,OAASxI,EAClB2D,EAA4B3D,EAAIyI,EAAOF,GAChCA,GAGTphC,EAAM,SAAU64B,GACd,OAAO+B,EAAO/B,EAAIyI,GAASzI,EAAGyI,GAAS,IAGzCrvB,EAAM,SAAU4mB,GACd,OAAO+B,EAAO/B,EAAIyI,IAItB3+B,EAAOid,QAAU,CACf6H,IAAKA,EACLznB,IAAKA,EACLiS,IAAKA,EACLsvB,QA5DY,SAAU1I,GACtB,OAAO5mB,EAAI4mB,GAAM74B,EAAI64B,GAAMpR,EAAIoR,EAAI,KA4DnC2I,UAzDc,SAAUC,GACxB,OAAO,SAAU5I,GACf,IAAImI,EAEJ,IAAKjI,EAASF,KAAQmI,EAAQhhC,EAAI64B,IAAKp9B,OAASgmC,EAC9C,MAAMjhB,EAAU,0BAA4BihB,EAAO,aAGrD,OAAOT,qBCnCX,IAAIxI,EAAkB,EAAQ,MAE1BgD,EAAY,EAAQ,MAEpBlC,EAAWd,EAAgB,YAC3BG,EAAiB7zB,MAAM2X,UAE3B9Z,EAAOid,QAAU,SAAUiZ,GACzB,YAAcl6B,IAAPk6B,IAAqB2C,EAAU12B,QAAU+zB,GAAMF,EAAeW,KAAcT,cCNrFl2B,EAAOid,QAAU,SAAUyY,GACzB,MAA0B,mBAAZA,mBCHhB,IAAIgB,EAAc,EAAQ,MAEtB8B,EAAQ,EAAQ,MAEhBjD,EAAa,EAAQ,MAErBqG,EAAU,EAAQ,MAElBC,EAAa,EAAQ,MAErBiC,EAAgB,EAAQ,MAExB9J,EAAO,aAIP+K,EAAQ,GACRC,EAAYnD,EAAW,UAAW,aAClCoD,EAAoB,2BACpBnI,EAAOJ,EAAYuI,EAAkBnI,MACrCoI,GAAuBD,EAAkBnI,KAAK9C,GAE9CmL,EAAsB,SAAuBzJ,GAC/C,IAAKH,EAAWG,GAAW,OAAO,EAElC,IAEE,OADAsJ,EAAUhL,EAAM+K,EAAOrJ,IAChB,EACP,MAAO5xB,GACP,OAAO,IAIPs7B,EAAsB,SAAuB1J,GAC/C,IAAKH,EAAWG,GAAW,OAAO,EAElC,OAAQkG,EAAQlG,IACd,IAAK,gBACL,IAAK,oBACL,IAAK,yBACH,OAAO,EAGX,IAIE,OAAOwJ,KAAyBpI,EAAKmI,EAAmBnB,EAAcpI,IACtE,MAAO5xB,GACP,OAAO,IAIXs7B,EAAoB1C,MAAO,EAG3B18B,EAAOid,SAAW+hB,GAAaxG,GAAM,WACnC,IAAI1D,EACJ,OAAOqK,EAAoBA,EAAoB9uB,QAAU8uB,EAAoB9kB,UAAY8kB,GAAoB,WAC3GrK,GAAS,MACLA,KACHsK,EAAsBD,gBC7D3B,IAAI3G,EAAQ,EAAQ,MAEhBjD,EAAa,EAAQ,MAErB8J,EAAc,kBAEdpD,EAAW,SAAUqD,EAASC,GAChC,IAAI/mC,EAAQ5B,EAAK4oC,EAAUF,IAC3B,OAAO9mC,GAASinC,GAAkBjnC,GAASknC,IAAiBnK,EAAWgK,GAAa/G,EAAM+G,KAAeA,IAGvGC,EAAYvD,EAASuD,UAAY,SAAUG,GAC7C,OAAOplB,OAAOolB,GAAQlnC,QAAQ4mC,EAAa,KAAK9R,eAG9C32B,EAAOqlC,EAASrlC,KAAO,GACvB8oC,EAASzD,EAASyD,OAAS,IAC3BD,EAAWxD,EAASwD,SAAW,IACnCz/B,EAAOid,QAAUgf,kBClBjB,IAAI1G,EAAa,EAAQ,MAEzBv1B,EAAOid,QAAU,SAAUiZ,GACzB,MAAoB,iBAANA,EAAwB,OAAPA,EAAcX,EAAWW,cCH1Dl2B,EAAOid,SAAU,kBCAjB,IAAI4e,EAAa,EAAQ,MAErBtG,EAAa,EAAQ,MAErBU,EAAgB,EAAQ,MAExB2J,EAAoB,EAAQ,KAE5BvI,EAAUhd,OACdra,EAAOid,QAAU2iB,EAAoB,SAAU1J,GAC7C,MAAoB,iBAANA,GACZ,SAAUA,GACZ,IAAI2J,EAAUhE,EAAW,UACzB,OAAOtG,EAAWsK,IAAY5J,EAAc4J,EAAQ/lB,UAAWud,EAAQnB,qBCbzE,IAAI2G,EAAO,EAAQ,KAEfxsB,EAAO,EAAQ,KAEf8sB,EAAW,EAAQ,MAEnB3H,EAAc,EAAQ,MAEtBsK,EAAwB,EAAQ,MAEhCvJ,EAAoB,EAAQ,MAE5BN,EAAgB,EAAQ,MAExB8J,EAAc,EAAQ,MAEtB3C,EAAoB,EAAQ,MAE5B4C,EAAgB,EAAQ,MAExBvK,EAAa5X,UAEboiB,EAAS,SAAUC,EAAStkB,GAC9BloB,KAAKwsC,QAAUA,EACfxsC,KAAKkoB,OAASA,GAGZukB,EAAkBF,EAAOnmB,UAE7B9Z,EAAOid,QAAU,SAAUmjB,EAAUC,EAAiBrjC,GACpD,IAMIsjC,EAAUC,EAAQ5pC,EAAOlC,EAAQmnB,EAAQ2S,EAAMjsB,EAN/Cy6B,EAAO//B,GAAWA,EAAQ+/B,KAC1ByD,KAAgBxjC,IAAWA,EAAQwjC,YACnCC,KAAezjC,IAAWA,EAAQyjC,WAClCC,KAAiB1jC,IAAWA,EAAQ0jC,aACpCC,KAAiB3jC,IAAWA,EAAQ2jC,aACpCptB,EAAKspB,EAAKwD,EAAiBtD,GAG3B1rB,EAAO,SAAUnY,GAEnB,OADIonC,GAAUN,EAAcM,EAAU,SAAUpnC,GACzC,IAAI+mC,GAAO,EAAM/mC,IAGtB0nC,EAAS,SAAUpoC,GACrB,OAAIgoC,GACFrD,EAAS3kC,GACFmoC,EAAcptB,EAAG/a,EAAM,GAAIA,EAAM,GAAI6Y,GAAQkC,EAAG/a,EAAM,GAAIA,EAAM,KAGlEmoC,EAAcptB,EAAG/a,EAAO6Y,GAAQkC,EAAG/a,IAG5C,GAAIioC,EACFH,EAAWF,EAASE,cACf,GAAII,EACTJ,EAAWF,MACN,CAEL,KADAG,EAASnD,EAAkBgD,IACd,MAAM3K,EAAWD,EAAY4K,GAAY,oBAEtD,GAAIN,EAAsBS,GAAS,CACjC,IAAK5pC,EAAQ,EAAGlC,EAAS8hC,EAAkB6J,GAAW3rC,EAASkC,EAAOA,IAEpE,IADAilB,EAASglB,EAAOR,EAASzpC,MACXs/B,EAAckK,EAAiBvkB,GAAS,OAAOA,EAG/D,OAAO,IAAIqkB,GAAO,GAGpBK,EAAWP,EAAYK,EAAUG,GAKnC,IAFAhS,EAAOkS,EAAYL,EAAS7R,KAAO+R,EAAS/R,OAEnCjsB,EAAO+N,EAAKke,EAAM+R,IAAW/yB,MAAM,CAC1C,IACEqO,EAASglB,EAAOt+B,EAAK9J,OACrB,MAAOsL,GACPk8B,EAAcM,EAAU,QAASx8B,GAGnC,GAAqB,iBAAV8X,GAAsBA,GAAUqa,EAAckK,EAAiBvkB,GAAS,OAAOA,EAG5F,OAAO,IAAIqkB,GAAO,oBCpFpB,IAAI5vB,EAAO,EAAQ,KAEf8sB,EAAW,EAAQ,MAEnBD,EAAY,EAAQ,MAExBl9B,EAAOid,QAAU,SAAUqjB,EAAUO,EAAMroC,GACzC,IAAIsoC,EAAaC,EACjB5D,EAASmD,GAET,IAGE,KAFAQ,EAAc5D,EAAUoD,EAAU,WAEhB,CAChB,GAAa,UAATO,EAAkB,MAAMroC,EAC5B,OAAOA,EAGTsoC,EAAczwB,EAAKywB,EAAaR,GAChC,MAAOx8B,GACPi9B,GAAa,EACbD,EAAch9B,EAGhB,GAAa,UAAT+8B,EAAkB,MAAMroC,EAC5B,GAAIuoC,EAAY,MAAMD,EAEtB,OADA3D,EAAS2D,GACFtoC,gCCzBT,IAkBIkgC,EAAmBsI,EAAmCC,EAlBtDzI,EAAQ,EAAQ,MAEhBjD,EAAa,EAAQ,MAErBO,EAAS,EAAQ,KAEjB2C,EAAiB,EAAQ,MAEzBqB,EAAgB,EAAQ,MAExBjE,EAAkB,EAAQ,MAE1B4D,EAAU,EAAQ,MAElB9C,EAAWd,EAAgB,YAC3BuE,GAAyB,EAMzB,GAAG/Q,OAGC,SAFN4X,EAAgB,GAAG5X,SAGjB2X,EAAoCvI,EAAeA,EAAewI,OACxB5mB,OAAOP,YAAW4e,EAAoBsI,GAFlD5G,GAAyB,GAMTp+B,MAArB08B,GAAkCF,GAAM,WACnE,IAAIxmB,EAAO,GAEX,OAAO0mB,EAAkB/B,GAAUtmB,KAAK2B,KAAUA,KAExB0mB,EAAoB,GAAYe,IAASf,EAAoB5C,EAAO4C,IAG3FnD,EAAWmD,EAAkB/B,KAChCmD,EAAcpB,EAAmB/B,GAAU,WACzC,OAAOjjC,QAIXsM,EAAOid,QAAU,CACfyb,kBAAmBA,EACnB0B,uBAAwBA,aChD1Bp6B,EAAOid,QAAU,mBCAjB,IAAIikB,EAAW,EAAQ,KAIvBlhC,EAAOid,QAAU,SAAU+P,GACzB,OAAOkU,EAASlU,EAAIv4B,yBCLtB,IAAI+jC,EAAQ,EAAQ,MAEhBjD,EAAa,EAAQ,MAErB0C,EAAS,EAAQ,KAEjBgB,EAAc,EAAQ,MAEtBiB,EAA6B,qBAE7B4D,EAAgB,EAAQ,MAExBqD,EAAsB,EAAQ,MAE9BC,EAAuBD,EAAoBvC,QAC3CyC,EAAmBF,EAAoB9jC,IAEvCye,EAAiBzB,OAAOyB,eACxBwlB,EAAsBrI,IAAgBT,GAAM,WAC9C,OAIc,IAJP1c,GAAe,cAEnB,SAAU,CACXtjB,MAAO,IACN/D,UAED8sC,EAAWhnB,OAAOA,QAAQ5I,MAAM,UAEhCwnB,EAAcn5B,EAAOid,QAAU,SAAUzkB,EAAOO,EAAMiE,GACvB,YAA7Bud,OAAOxhB,GAAMqX,MAAM,EAAG,KACxBrX,EAAO,IAAMwhB,OAAOxhB,GAAMN,QAAQ,qBAAsB,MAAQ,KAG9DuE,GAAWA,EAAQwkC,SAAQzoC,EAAO,OAASA,GAC3CiE,GAAWA,EAAQykC,SAAQ1oC,EAAO,OAASA,KAE1Ck/B,EAAOz/B,EAAO,SAAW0hC,GAA8B1hC,EAAMO,OAASA,KACrEkgC,EAAand,EAAetjB,EAAO,OAAQ,CAC7CA,MAAOO,EACPkjB,cAAc,IACRzjB,EAAMO,KAAOA,GAGnBuoC,GAAuBtkC,GAAWi7B,EAAOj7B,EAAS,UAAYxE,EAAM/D,SAAWuI,EAAQ0kC,OACzF5lB,EAAetjB,EAAO,SAAU,CAC9BA,MAAOwE,EAAQ0kC,QAInB,IACM1kC,GAAWi7B,EAAOj7B,EAAS,gBAAkBA,EAAQuE,YACnD03B,GAAand,EAAetjB,EAAO,YAAa,CAClD2nB,UAAU,IAEH3nB,EAAMshB,YAAWthB,EAAMshB,eAAY9d,GAC9C,MAAO8H,IAIT,IAAIu6B,EAAQ+C,EAAqB5oC,GAMjC,OAJKy/B,EAAOoG,EAAO,YACjBA,EAAMhG,OAASkJ,EAAS1lB,KAAoB,iBAAR9iB,EAAmBA,EAAO,KAGzDP,GAKT+kB,SAASzD,UAAUlI,SAAWunB,GAAY,WACxC,OAAO5D,EAAW7hC,OAAS2tC,EAAiB3tC,MAAM2kC,QAAUyF,EAAcpqC,QACzE,sBCvEH,IAAIiuC,EAAOlkB,KAAKkkB,KACZtP,EAAQ5U,KAAK4U,MAIjBryB,EAAOid,QAAUQ,KAAKmkB,OAAS,SAAersC,GAC5C,IAAI4nB,GAAK5nB,EACT,OAAQ4nB,EAAI,EAAIkV,EAAQsP,GAAMxkB,oBCPhC,IAuBIoB,EAAOsjB,EAAMC,EAAMC,EAAQrmB,EAAQ6F,EAAMygB,EAASjiC,EAvBlDvC,EAAS,EAAQ,MAEjBq/B,EAAO,EAAQ,KAEftE,EAA2B,UAE3B0J,EAAY,YAEZC,EAAS,EAAQ,KAEjBC,EAAgB,EAAQ,KAExBC,EAAkB,EAAQ,MAE1BC,EAAU,EAAQ,MAElB3iB,EAAmBliB,EAAOkiB,kBAAoBliB,EAAOmiB,uBACrDztB,EAAWsL,EAAOtL,SAClBgf,EAAU1T,EAAO0T,QACjBlC,EAAUxR,EAAOwR,QAEjBszB,EAA2B/J,EAAyB/6B,EAAQ,kBAC5D+kC,EAAiBD,GAA4BA,EAAyB9pC,MAGrE+pC,IACHhkB,EAAQ,WACN,IAAIpT,EAAQoI,EAGZ,IAFI8uB,IAAYl3B,EAAS+F,EAAQsxB,SAASr3B,EAAOs3B,OAE1CZ,GAAM,CACXtuB,EAAKsuB,EAAKtuB,GACVsuB,EAAOA,EAAKtT,KAEZ,IACEhb,IACA,MAAOzP,GAEP,MADI+9B,EAAME,IAAcD,OAAO9lC,EACzB8H,GAIVg+B,OAAO9lC,EACHmP,GAAQA,EAAOu3B,SAKhBR,GAAWG,GAAYD,IAAmB1iB,IAAoBxtB,GAWvDiwC,GAAiBnzB,GAAWA,EAAQC,UAE9C+yB,EAAUhzB,EAAQC,aAAQjT,IAElBuF,YAAcyN,EACtBjP,EAAO88B,EAAKmF,EAAQjiC,KAAMiiC,GAE1BD,EAAS,WACPhiC,EAAKwe,KAGE8jB,EACTN,EAAS,WACP7wB,EAAQyxB,SAASpkB,KAUnB0jB,EAAYpF,EAAKoF,EAAWzkC,GAE5BukC,EAAS,WACPE,EAAU1jB,MApCZ7C,GAAS,EACT6F,EAAOrvB,EAAS0wC,eAAe,IAC/B,IAAIljB,EAAiBnB,GAAO5I,QAAQ4L,EAAM,CACxCshB,eAAe,IAGjBd,EAAS,WACPxgB,EAAK3qB,KAAO8kB,GAAUA,KAkC5B1b,EAAOid,QAAUslB,GAAkB,SAAUhvB,GAC3C,IAAIuvB,EAAO,CACTvvB,GAAIA,EACJgb,UAAMvyB,GAEJ8lC,IAAMA,EAAKvT,KAAOuU,GAEjBjB,IACHA,EAAOiB,EACPf,KAGFD,EAAOgB,mBCrGT,IAAIC,EAAa,EAAQ,MAErBvK,EAAQ,EAAQ,MAGpBx4B,EAAOid,UAAY5C,OAAO2oB,wBAA0BxK,GAAM,WACxD,IAAIyK,EAAS5N,SAGb,OAAQ9a,OAAO0oB,MAAa5oB,OAAO4oB,aAAmB5N,UACrDA,OAAOqH,MAAQqG,GAAcA,EAAa,sBCX7C,IAAIvlC,EAAS,EAAQ,MAEjB+3B,EAAa,EAAQ,MAErBuI,EAAgB,EAAQ,MAExBM,EAAU5gC,EAAO4gC,QACrBp+B,EAAOid,QAAUsY,EAAW6I,IAAY,cAAcpsB,KAAK8rB,EAAcM,iCCLzE,IAAItB,EAAY,EAAQ,MAEpBoG,EAAoB,SAAUtkB,GAChC,IAAI3P,EAASk0B,EACbzvC,KAAKsuC,QAAU,IAAIpjB,GAAE,SAAUwkB,EAAWC,GACxC,QAAgBrnC,IAAZiT,QAAoCjT,IAAXmnC,EAAsB,MAAMtlB,UAAU,2BACnE5O,EAAUm0B,EACVD,EAASE,KAEX3vC,KAAKub,QAAU6tB,EAAU7tB,GACzBvb,KAAKyvC,OAASrG,EAAUqG,IAK1BnjC,EAAOid,QAAQ9Z,EAAI,SAAUyb,GAC3B,OAAO,IAAIskB,EAAkBtkB,oBClB/B,IAAIhN,EAAW,EAAQ,MAEvB5R,EAAOid,QAAU,SAAUyY,EAAU4N,GACnC,YAAoBtnC,IAAb05B,EAAyBna,UAAU9mB,OAAS,EAAI,GAAK6uC,EAAW1xB,EAAS8jB,mBCFlF,IA4DI6N,EA5DApG,EAAW,EAAQ,MAEnBqG,EAAyB,EAAQ,MAEjCC,EAAc,EAAQ,MAEtBvF,EAAa,EAAQ,MAErBwF,EAAO,EAAQ,MAEfC,EAAwB,EAAQ,MAEhC1F,EAAY,EAAQ,MAMpB2F,EAAW3F,EAAU,YAErB4F,EAAmB,aAInBC,EAAY,SAAUp2B,GACxB,MAAOq2B,WAAmBr2B,EAAnBq2B,gBAILC,EAA4B,SAAUT,GACxCA,EAAgBU,MAAMH,EAAU,KAChCP,EAAgBtyB,QAChB,IAAIizB,EAAOX,EAAgBY,aAAa9pB,OAGxC,OAFAkpB,EAAkB,KAEXW,GA2BLE,EAAkB,WACpB,IACEb,EAAkB,IAAIc,cAAc,YACpC,MAAOvgC,IA1BoB,IAIzBwgC,EAFAzwB,EA4BJuwB,EAAqC,oBAAZlyC,SAA0BA,SAASswC,QAAUe,EAAkBS,EAA0BT,KA5B9G1vB,EAAS8vB,EAAsB,WAG5B3wC,MAAMuxC,QAAU,OACvBb,EAAKj1B,YAAYoF,GAEjBA,EAAO2wB,IAAMjqB,OALJ,gBAMT+pB,EAAiBzwB,EAAO4wB,cAAcvyC,UACvByd,OACf20B,EAAeL,MAAMH,EAAU,sBAC/BQ,EAAerzB,QACRqzB,EAAepkB,GAkBS8jB,EAA0BT,GAIzD,IAFA,IAAI9uC,EAASgvC,EAAYhvC,OAElBA,YAAiB2vC,EAAyB,UAAEX,EAAYhvC,IAE/D,OAAO2vC,KAGTlG,EAAW0F,IAAY,EAIvB5jC,EAAOid,QAAU5C,OAAOyb,QAAU,SAAgB9X,EAAG0mB,GACnD,IAAI9oB,EAUJ,OARU,OAANoC,GACF6lB,EAA0B,UAAI1G,EAASnf,GACvCpC,EAAS,IAAIioB,EACbA,EAA0B,UAAI,KAE9BjoB,EAAOgoB,GAAY5lB,GACdpC,EAASwoB,SAEMpoC,IAAf0oC,EAA2B9oB,EAAS4nB,EAAuBrgC,EAAEyY,EAAQ8oB,oBC/F9E,IAAIzL,EAAc,EAAQ,MAEtB0L,EAA0B,EAAQ,MAElCvM,EAAuB,EAAQ,KAE/B+E,EAAW,EAAQ,MAEnB9G,EAAkB,EAAQ,KAE1BuO,EAAa,EAAQ,MAKzB3nB,EAAQ9Z,EAAI81B,IAAgB0L,EAA0BtqB,OAAO8a,iBAAmB,SAA0BnX,EAAG0mB,GAC3GvH,EAASnf,GAOT,IANA,IAIIzU,EAJAs7B,EAAQxO,EAAgBqO,GACxBrb,EAAOub,EAAWF,GAClBjwC,EAAS40B,EAAK50B,OACdkC,EAAQ,EAGLlC,EAASkC,GAAOyhC,EAAqBj1B,EAAE6a,EAAGzU,EAAM8f,EAAK1yB,KAAUkuC,EAAMt7B,IAE5E,OAAOyU,kBCzBT,IAAIib,EAAc,EAAQ,MAEtB6L,EAAiB,EAAQ,MAEzBH,EAA0B,EAAQ,MAElCxH,EAAW,EAAQ,MAEnB4H,EAAgB,EAAQ,MAExBtP,EAAa5X,UAEbmnB,EAAkB3qB,OAAOyB,eAEzBmpB,EAA4B5qB,OAAOke,yBACnC2M,EAAa,aACb/K,EAAe,eACfgL,EAAW,WAGfloB,EAAQ9Z,EAAI81B,EAAc0L,EAA0B,SAAwB3mB,EAAGsB,EAAG8lB,GAKhF,GAJAjI,EAASnf,GACTsB,EAAIylB,EAAczlB,GAClB6d,EAASiI,GAEQ,mBAANpnB,GAA0B,cAANsB,GAAqB,UAAW8lB,GAAcD,KAAYC,IAAeA,EAAmB,SAAG,CAC5H,IAAIC,EAAUJ,EAA0BjnB,EAAGsB,GAEvC+lB,GAAWA,EAAgB,WAC7BrnB,EAAEsB,GAAK8lB,EAAW5sC,MAClB4sC,EAAa,CACXnpB,aAAcke,KAAgBiL,EAAaA,EAAuB,aAAIC,EAAoB,aAC1FrpB,WAAYkpB,KAAcE,EAAaA,EAAqB,WAAIC,EAAkB,WAClFllB,UAAU,IAKhB,OAAO6kB,EAAgBhnB,EAAGsB,EAAG8lB,IAC3BJ,EAAkB,SAAwBhnB,EAAGsB,EAAG8lB,GAIlD,GAHAjI,EAASnf,GACTsB,EAAIylB,EAAczlB,GAClB6d,EAASiI,GACLN,EAAgB,IAClB,OAAOE,EAAgBhnB,EAAGsB,EAAG8lB,GAC7B,MAAOthC,IAGT,GAAI,QAASshC,GAAc,QAASA,EAAY,MAAM3P,EAAW,2BAEjE,MADI,UAAW2P,IAAYpnB,EAAEsB,GAAK8lB,EAAW5sC,OACtCwlB,mBClDT,IAAIib,EAAc,EAAQ,MAEtB5oB,EAAO,EAAQ,KAEfi1B,EAA6B,EAAQ,MAErC3M,EAA2B,EAAQ,MAEnCtC,EAAkB,EAAQ,KAE1B0O,EAAgB,EAAQ,MAExB9M,EAAS,EAAQ,KAEjB6M,EAAiB,EAAQ,MAGzBG,EAA4B5qB,OAAOke,yBAGvCtb,EAAQ9Z,EAAI81B,EAAcgM,EAA4B,SAAkCjnB,EAAGsB,GAGzF,GAFAtB,EAAIqY,EAAgBrY,GACpBsB,EAAIylB,EAAczlB,GACdwlB,EAAgB,IAClB,OAAOG,EAA0BjnB,EAAGsB,GACpC,MAAOxb,IAGT,GAAIm0B,EAAOja,EAAGsB,GAAI,OAAOqZ,GAA0BtoB,EAAKi1B,EAA2BniC,EAAG6a,EAAGsB,GAAItB,EAAEsB,qBC5BjG,IAAIimB,EAAqB,EAAQ,MAI7BrH,EAFc,EAAQ,MAEGze,OAAO,SAAU,aAI9CxC,EAAQ9Z,EAAIkX,OAAO8K,qBAAuB,SAA6BnH,GACrE,OAAOunB,EAAmBvnB,EAAGkgB,kBCR/BjhB,EAAQ9Z,EAAIkX,OAAO2oB,sCCDnB,IAAI/K,EAAS,EAAQ,KAEjB1C,EAAa,EAAQ,MAErBmI,EAAW,EAAQ,MAEnBO,EAAY,EAAQ,MAEpBuH,EAA2B,EAAQ,MAEnC5B,EAAW3F,EAAU,YACrB5G,EAAUhd,OACVorB,EAAkBpO,EAAQvd,UAI9B9Z,EAAOid,QAAUuoB,EAA2BnO,EAAQoB,eAAiB,SAAUza,GAC7E,IAAI5O,EAASsuB,EAAS1f,GACtB,GAAIia,EAAO7oB,EAAQw0B,GAAW,OAAOx0B,EAAOw0B,GAC5C,IAAIriC,EAAc6N,EAAO7N,YAEzB,OAAIg0B,EAAWh0B,IAAgB6N,aAAkB7N,EACxCA,EAAYuY,UAGd1K,aAAkBioB,EAAUoO,EAAkB,sBCzBvD,IAAI/O,EAAc,EAAQ,MAE1B12B,EAAOid,QAAUyZ,EAAY,GAAGT,+BCFhC,IAAIS,EAAc,EAAQ,MAEtBuB,EAAS,EAAQ,KAEjB5B,EAAkB,EAAQ,KAE1B9jB,EAAU,gBAEV2rB,EAAa,EAAQ,MAErBljC,EAAO07B,EAAY,GAAG17B,MAE1BgF,EAAOid,QAAU,SAAU7N,EAAQs2B,GACjC,IAGIn8B,EAHAyU,EAAIqY,EAAgBjnB,GACpBvV,EAAI,EACJ+hB,EAAS,GAGb,IAAKrS,KAAOyU,GAAIia,EAAOiG,EAAY30B,IAAQ0uB,EAAOja,EAAGzU,IAAQvO,EAAK4gB,EAAQrS,GAG1E,KAAOm8B,EAAMjxC,OAASoF,GAAOo+B,EAAOja,EAAGzU,EAAMm8B,EAAM7rC,SAChD0Y,EAAQqJ,EAAQrS,IAAQvO,EAAK4gB,EAAQrS,IAGxC,OAAOqS,mBCzBT,IAAI2pB,EAAqB,EAAQ,MAE7B9B,EAAc,EAAQ,MAK1BzjC,EAAOid,QAAU5C,OAAOgP,MAAQ,SAAcrL,GAC5C,OAAOunB,EAAmBvnB,EAAGylB,+BCN/B,IAAIkC,EAAwB,GAAGhI,qBAE3BpF,EAA2Ble,OAAOke,yBAElCqN,EAAcrN,IAA6BoN,EAAsBt1B,KAAK,CACxE,EAAG,GACF,GAGH4M,EAAQ9Z,EAAIyiC,EAAc,SAA8B5kB,GACtD,IAAIob,EAAa7D,EAAyB7kC,KAAMstB,GAChD,QAASob,GAAcA,EAAWpgB,YAChC2pB,kBCbJ,IAAIjP,EAAc,EAAQ,MAEtByG,EAAW,EAAQ,MAEnB0I,EAAqB,EAAQ,MAMjC7lC,EAAOid,QAAU5C,OAAOuf,iBAAmB,aAAe,GAAK,WAC7D,IAEI6H,EAFAqE,GAAiB,EACjB9zB,EAAO,GAGX,KAEEyvB,EAAS/K,EAAYrc,OAAOke,yBAAyBle,OAAOP,UAAW,aAAagL,MAC7E9S,EAAM,IACb8zB,EAAiB9zB,aAAgB7P,MACjC,MAAO2B,IAIT,OAAO,SAAwBka,EAAGsd,GAIhC,OAHA6B,EAASnf,GACT6nB,EAAmBvK,GACfwK,EAAgBrE,EAAOzjB,EAAGsd,GAAYtd,EAAE+nB,UAAYzK,EACjDtd,GAlBoD,QAoBzDhiB,+BC7BN,IAAIk7B,EAAwB,EAAQ,MAEhC0E,EAAU,EAAQ,MAItB57B,EAAOid,QAAUia,EAAwB,GAAGtlB,SAAW,WACrD,MAAO,WAAagqB,EAAQloC,MAAQ,qBCTtC,IAAI2c,EAAO,EAAQ,KAEfklB,EAAa,EAAQ,MAErBa,EAAW,EAAQ,MAEnBX,EAAa5X,UAGjB7d,EAAOid,QAAU,SAAUxX,EAAOugC,GAChC,IAAIzyB,EAAI3G,EACR,GAAa,WAATo5B,GAAqBzQ,EAAWhiB,EAAK9N,EAAMmM,YAAcwkB,EAASxpB,EAAMyD,EAAKkD,EAAI9N,IAAS,OAAOmH,EACrG,GAAI2oB,EAAWhiB,EAAK9N,EAAM+Y,WAAa4X,EAASxpB,EAAMyD,EAAKkD,EAAI9N,IAAS,OAAOmH,EAC/E,GAAa,WAATo5B,GAAqBzQ,EAAWhiB,EAAK9N,EAAMmM,YAAcwkB,EAASxpB,EAAMyD,EAAKkD,EAAI9N,IAAS,OAAOmH,EACrG,MAAM6oB,EAAW,2DCdnB,IAAIoG,EAAa,EAAQ,MAErBnF,EAAc,EAAQ,MAEtBuP,EAA4B,EAAQ,MAEpCC,EAA8B,EAAQ,MAEtC/I,EAAW,EAAQ,MAEnB1d,EAASiX,EAAY,GAAGjX,QAE5Bzf,EAAOid,QAAU4e,EAAW,UAAW,YAAc,SAAiB3F,GACpE,IAAI7M,EAAO4c,EAA0B9iC,EAAEg6B,EAASjH,IAC5C8M,EAAwBkD,EAA4B/iC,EACxD,OAAO6/B,EAAwBvjB,EAAO4J,EAAM2Z,EAAsB9M,IAAO7M,mBCf3E,IAAI7rB,EAAS,EAAQ,MAErBwC,EAAOid,QAAUzf,YCFjBwC,EAAOid,QAAU,SAAU6Z,GACzB,IACE,MAAO,CACLhzB,OAAO,EACPtL,MAAOs+B,KAET,MAAOhzB,GACP,MAAO,CACLA,OAAO,EACPtL,MAAOsL,qBCTb,IAAItG,EAAS,EAAQ,MAEjB2oC,EAA2B,EAAQ,MAEnC5Q,EAAa,EAAQ,MAErB0G,EAAW,EAAQ,IAEnB6B,EAAgB,EAAQ,MAExBjI,EAAkB,EAAQ,MAE1BuQ,EAAa,EAAQ,MAErBC,EAAU,EAAQ,MAElB5M,EAAU,EAAQ,MAElBsJ,EAAa,EAAQ,MAErBuD,EAAyBH,GAA4BA,EAAyBrsB,UAC9EysB,EAAU1Q,EAAgB,WAC1B2Q,GAAc,EACdC,EAAiClR,EAAW/3B,EAAOkpC,uBACnDC,EAA6B1K,EAAS,WAAW,WACnD,IAAI2K,EAA6B9I,EAAcqI,GAC3CU,EAAyBD,IAA+BrsB,OAAO4rB,GAInE,IAAKU,GAAyC,KAAf9D,EAAmB,OAAO,EAEzD,GAAItJ,KAAa6M,EAA8B,QAAKA,EAAgC,SAAI,OAAO,EAI/F,GAAIvD,EAAa,KAAO,cAAc/wB,KAAK40B,GAA6B,CAEtE,IAAI5E,EAAU,IAAImE,GAAyB,SAAUl3B,GACnDA,EAAQ,MAGN63B,EAAc,SAAUhQ,GAC1BA,GAAK,eAEF,gBAUL,IALkBkL,EAAQzgC,YAAc,IAC5BglC,GAAWO,IACvBN,EAAcxE,EAAQjiC,MAAK,yBAEb+mC,GACI,OAAO,EAG3B,OAAQD,IAA2BT,GAAcC,KAAaI,KAEhEzmC,EAAOid,QAAU,CACf8pB,YAAaJ,EACbK,gBAAiBP,EACjBD,YAAaA,mBC/Df,IAAIhpC,EAAS,EAAQ,MAErBwC,EAAOid,QAAUzf,EAAOwR,wBCFxB,IAAImuB,EAAW,EAAQ,MAEnB/G,EAAW,EAAQ,MAEnB6Q,EAAuB,EAAQ,MAEnCjnC,EAAOid,QAAU,SAAU2B,EAAGrpB,GAE5B,GADA4nC,EAASve,GACLwX,EAAS7gC,IAAMA,EAAEgM,cAAgBqd,EAAG,OAAOrpB,EAC/C,IAAI2xC,EAAoBD,EAAqB9jC,EAAEyb,GAG/C,OADA3P,EADci4B,EAAkBj4B,SACxB1Z,GACD2xC,EAAkBlF,yBCZ3B,IAAImE,EAA2B,EAAQ,MAEnCgB,EAA8B,EAAQ,MAEtCR,EAA6B,oBAEjC3mC,EAAOid,QAAU0pB,IAA+BQ,GAA4B,SAAU/G,GACpF+F,EAAyB5iB,IAAI6c,GAAUrgC,UAAK/D,GAAW,4BCPzD,IAAIorC,EAAQ,WACV1zC,KAAKmuC,KAAO,KACZnuC,KAAK2zC,KAAO,MAGdD,EAAMttB,UAAY,CAChBhf,IAAK,SAAU4T,GACb,IAAI+G,EAAQ,CACV/G,KAAMA,EACN6f,KAAM,MAEJ76B,KAAKmuC,KAAMnuC,KAAK2zC,KAAK9Y,KAAO9Y,EAAW/hB,KAAKmuC,KAAOpsB,EACvD/hB,KAAK2zC,KAAO5xB,GAEdpY,IAAK,WACH,IAAIoY,EAAQ/hB,KAAKmuC,KAEjB,GAAIpsB,EAGF,OAFA/hB,KAAKmuC,KAAOpsB,EAAM8Y,KACd76B,KAAK2zC,OAAS5xB,IAAO/hB,KAAK2zC,KAAO,MAC9B5xB,EAAM/G,OAInB1O,EAAOid,QAAUmqB,YCxBjB,IAAI3R,EAAa5X,UAGjB7d,EAAOid,QAAU,SAAUiZ,GACzB,GAAUl6B,MAANk6B,EAAiB,MAAMT,EAAW,wBAA0BS,GAChE,OAAOA,gCCHT,IAAI2F,EAAa,EAAQ,MAErBzD,EAAuB,EAAQ,KAE/BvC,EAAkB,EAAQ,MAE1BoD,EAAc,EAAQ,MAEtBsN,EAAU1Q,EAAgB,WAE9B71B,EAAOid,QAAU,SAAUqqB,GACzB,IAAI/S,EAAcsH,EAAWyL,GACzBxrB,EAAiBsc,EAAqBj1B,EAEtC81B,GAAe1E,IAAgBA,EAAYgS,IAC7CzqB,EAAeyY,EAAagS,EAAS,CACnCtqB,cAAc,EACd5e,IAAK,WACH,OAAO3J,yBCpBf,IAAIooB,EAAiB,SAEjBmc,EAAS,EAAQ,KAIjBb,EAFkB,EAAQ,KAEVvB,CAAgB,eAEpC71B,EAAOid,QAAU,SAAUrc,EAAQ2mC,EAAKhL,GAClC37B,IAAW27B,IAAQ37B,EAASA,EAAOkZ,WAEnClZ,IAAWq3B,EAAOr3B,EAAQw2B,IAC5Btb,EAAelb,EAAQw2B,EAAe,CACpCnb,cAAc,EACdzjB,MAAO+uC,qBCdb,IAAIxyC,EAAS,EAAQ,MAEjBm1B,EAAM,EAAQ,KAEdb,EAAOt0B,EAAO,QAElBiL,EAAOid,QAAU,SAAU1T,GACzB,OAAO8f,EAAK9f,KAAS8f,EAAK9f,GAAO2gB,EAAI3gB,qBCPvC,IAAI/L,EAAS,EAAQ,MAEjB47B,EAAuB,EAAQ,MAE/BoO,EAAS,qBACT5J,EAAQpgC,EAAOgqC,IAAWpO,EAAqBoO,EAAQ,IAC3DxnC,EAAOid,QAAU2gB,kBCNjB,IAAInE,EAAU,EAAQ,MAElBmE,EAAQ,EAAQ,OAEnB59B,EAAOid,QAAU,SAAU1T,EAAK/Q,GAC/B,OAAOolC,EAAMr0B,KAASq0B,EAAMr0B,QAAiBvN,IAAVxD,EAAsBA,EAAQ,MAChE,WAAY,IAAIwC,KAAK,CACtB0gC,QAAS,SACT+L,KAAMhO,EAAU,OAAS,SACzBiO,UAAW,4CACXC,QAAS,2DACTtP,OAAQ,uDCXV,IAAI8E,EAAW,EAAQ,MAEnByK,EAAe,EAAQ,MAIvBrB,EAFkB,EAAQ,KAEhB1Q,CAAgB,WAG9B71B,EAAOid,QAAU,SAAUe,EAAG6pB,GAC5B,IACI3oB,EADAN,EAAIue,EAASnf,GAAGzc,YAEpB,YAAavF,IAAN4iB,GAAiD5iB,OAA7BkjB,EAAIie,EAASve,GAAG2nB,IAAyBsB,EAAqBD,EAAa1oB,oBCZxG,IAAIwX,EAAc,EAAQ,MAEtBoR,EAAsB,EAAQ,MAE9Bl2B,EAAW,EAAQ,MAEnBm2B,EAAyB,EAAQ,MAEjCja,EAAS4I,EAAY,GAAG5I,QACxBka,EAAatR,EAAY,GAAGsR,YAC5B/Q,EAAcP,EAAY,GAAGtmB,OAE7BiM,EAAe,SAAU4rB,GAC3B,OAAO,SAAUvzB,EAAOwzB,GACtB,IAGIxgC,EAAOygC,EAHPjpB,EAAItN,EAASm2B,EAAuBrzB,IACpCQ,EAAW4yB,EAAoBI,GAC/B/e,EAAOjK,EAAEzqB,OAEb,OAAIygB,EAAW,GAAKA,GAAYiU,EAAa8e,EAAoB,QAAKjsC,GACtE0L,EAAQsgC,EAAW9oB,EAAGhK,IACP,OAAUxN,EAAQ,OAAUwN,EAAW,IAAMiU,IAASgf,EAASH,EAAW9oB,EAAGhK,EAAW,IAAM,OAAUizB,EAAS,MAASF,EAAoBna,EAAO5O,EAAGhK,GAAYxN,EAAQugC,EAAoBhR,EAAY/X,EAAGhK,EAAUA,EAAW,GAA+BizB,EAAS,OAAlCzgC,EAAQ,OAAU,IAA0B,QAIzS1H,EAAOid,QAAU,CAGfmrB,OAAQ/rB,GAAa,GAGrByR,OAAQzR,GAAa,oBC9BvB,IAkCIzZ,EAAUylC,EAAOC,EAASC,EAlC1B/qC,EAAS,EAAQ,MAEjB4X,EAAQ,EAAQ,MAEhBynB,EAAO,EAAQ,KAEftH,EAAa,EAAQ,MAErB0C,EAAS,EAAQ,KAEjBO,EAAQ,EAAQ,MAEhBkL,EAAO,EAAQ,MAEf8E,EAAa,EAAQ,MAErBr6B,EAAgB,EAAQ,MAExBs6B,EAA0B,EAAQ,MAElCvG,EAAS,EAAQ,KAEjBG,EAAU,EAAQ,MAElBvd,EAAMtnB,EAAOkrC,aACbC,EAAQnrC,EAAOorC,eACf13B,EAAU1T,EAAO0T,QACjB23B,EAAWrrC,EAAOqrC,SAClBtrB,EAAW/f,EAAO+f,SAClBurB,EAAiBtrC,EAAOsrC,eACxBvuB,EAAS/c,EAAO+c,OAChB9e,EAAU,EACVstC,EAAQ,GACRC,EAAqB,qBAGzB,IAEEpmC,EAAWpF,EAAOoF,SAClB,MAAOkB,IAIT,IAAImlC,EAAM,SAAUpwC,GAClB,GAAIo/B,EAAO8Q,EAAOlwC,GAAK,CACrB,IAAI0a,EAAKw1B,EAAMlwC,UACRkwC,EAAMlwC,GACb0a,MAIA21B,EAAS,SAAUrwC,GACrB,OAAO,WACLowC,EAAIpwC,KAIJswC,EAAW,SAAUlzC,GACvBgzC,EAAIhzC,EAAMW,OAGRwyC,EAAO,SAAUvwC,GAEnB2E,EAAO6rC,YAAY9uB,EAAO1hB,GAAK+J,EAASoQ,SAAW,KAAOpQ,EAAS0mC,OAIhExkB,GAAQ6jB,IACX7jB,EAAM,SAAsBuF,GAC1Boe,EAAwBltB,UAAU9mB,OAAQ,GAC1C,IAAI8e,EAAKgiB,EAAWlL,GAAWA,EAAU9M,EAAS8M,GAC9CiC,EAAOkc,EAAWjtB,UAAW,GAOjC,OALAwtB,IAAQttC,GAAW,WACjB2Z,EAAM7B,OAAIvX,EAAWswB,IAGvB+b,EAAM5sC,GACCA,GAGTktC,EAAQ,SAAwB9vC,UACvBkwC,EAAMlwC,IAIXwpC,EACFgG,EAAQ,SAAUxvC,GAChBqY,EAAQyxB,SAASuG,EAAOrwC,KAGjBgwC,GAAYA,EAASjrB,IAC9ByqB,EAAQ,SAAUxvC,GAChBgwC,EAASjrB,IAAIsrB,EAAOrwC,KAIbiwC,IAAmB5G,GAE5BqG,GADAD,EAAU,IAAIQ,GACCS,MACfjB,EAAQkB,MAAMC,UAAYN,EAC1Bd,EAAQxL,EAAK0L,EAAKc,YAAad,IAEtB/qC,EAAOrL,kBAAoBojC,EAAW/3B,EAAO6rC,eAAiB7rC,EAAOksC,eAAiB9mC,GAAkC,UAAtBA,EAASoQ,WAAyBwlB,EAAM4Q,IACnJf,EAAQe,EACR5rC,EAAOrL,iBAAiB,UAAWg3C,GAAU,IAE7Cd,EADSW,KAAsB76B,EAAc,UACrC,SAAUtV,GAChB6qC,EAAKj1B,YAAYN,EAAc,WAA6B,mBAAI,WAC9Du1B,EAAKiG,YAAYj2C,MACjBu1C,EAAIpwC,KAKA,SAAUA,GAChBqE,WAAWgsC,EAAOrwC,GAAK,KAK7BmH,EAAOid,QAAU,CACf6H,IAAKA,EACL6jB,MAAOA,mBC3HT,IAAIb,EAAsB,EAAQ,MAE9B/gC,EAAM0W,KAAK1W,IACXzO,EAAMmlB,KAAKnlB,IAIf0H,EAAOid,QAAU,SAAUtmB,EAAOlC,GAChC,IAAIm1C,EAAU9B,EAAoBnxC,GAClC,OAAOizC,EAAU,EAAI7iC,EAAI6iC,EAAUn1C,EAAQ,GAAK6D,EAAIsxC,EAASn1C,mBCR/D,IAAIo1C,EAAgB,EAAQ,MAExB9B,EAAyB,EAAQ,MAErC/nC,EAAOid,QAAU,SAAUiZ,GACzB,OAAO2T,EAAc9B,EAAuB7R,qBCN9C,IAAI0L,EAAQ,EAAQ,MAIpB5hC,EAAOid,QAAU,SAAUyY,GACzB,IAAIlwB,GAAUkwB,EAEd,OAAOlwB,GAAWA,GAAqB,IAAXA,EAAe,EAAIo8B,EAAMp8B,mBCPvD,IAAIsiC,EAAsB,EAAQ,MAE9BxvC,EAAMmlB,KAAKnlB,IAGf0H,EAAOid,QAAU,SAAUyY,GACzB,OAAOA,EAAW,EAAIp9B,EAAIwvC,EAAoBpS,GAAW,kBAAoB,mBCN/E,IAAIqS,EAAyB,EAAQ,MAEjC1Q,EAAUhd,OAGdra,EAAOid,QAAU,SAAUyY,GACzB,OAAO2B,EAAQ0Q,EAAuBrS,qBCNxC,IAAIrlB,EAAO,EAAQ,KAEf+lB,EAAW,EAAQ,MAEnB0T,EAAW,EAAQ,MAEnB5M,EAAY,EAAQ,MAEpB6M,EAAsB,EAAQ,MAE9BlU,EAAkB,EAAQ,MAE1BJ,EAAa5X,UACbmsB,EAAenU,EAAgB,eAGnC71B,EAAOid,QAAU,SAAUxX,EAAOugC,GAChC,IAAK5P,EAAS3wB,IAAUqkC,EAASrkC,GAAQ,OAAOA,EAChD,IACImW,EADAquB,EAAe/M,EAAUz3B,EAAOukC,GAGpC,GAAIC,EAAc,CAGhB,QAFajuC,IAATgqC,IAAoBA,EAAO,WAC/BpqB,EAASvL,EAAK45B,EAAcxkC,EAAOugC,IAC9B5P,EAASxa,IAAWkuB,EAASluB,GAAS,OAAOA,EAClD,MAAM6Z,EAAW,2CAInB,YADaz5B,IAATgqC,IAAoBA,EAAO,UACxB+D,EAAoBtkC,EAAOugC,oBC7BpC,IAAIkE,EAAc,EAAQ,MAEtBJ,EAAW,EAAQ,MAIvB9pC,EAAOid,QAAU,SAAUyY,GACzB,IAAInsB,EAAM2gC,EAAYxU,EAAU,UAChC,OAAOoU,EAASvgC,GAAOA,EAAMA,EAAM,oBCRrC,IAGIyI,EAAO,GACXA,EAJsB,EAAQ,KAEV6jB,CAAgB,gBAEd,IACtB71B,EAAOid,QAA2B,eAAjB1C,OAAOvI,mBCLxB,IAAI4pB,EAAU,EAAQ,MAElBhG,EAAUrb,OAEdva,EAAOid,QAAU,SAAUyY,GACzB,GAA0B,WAAtBkG,EAAQlG,GAAwB,MAAM7X,UAAU,6CACpD,OAAO+X,EAAQF,cCNjB,IAAIE,EAAUrb,OAEdva,EAAOid,QAAU,SAAUyY,GACzB,IACE,OAAOE,EAAQF,GACf,MAAO5xB,GACP,MAAO,0BCNX,IAAI4yB,EAAc,EAAQ,MAEtB79B,EAAK,EACLsxC,EAAU1sB,KAAK6U,SACf1gB,EAAW8kB,EAAY,GAAI9kB,UAE/B5R,EAAOid,QAAU,SAAU1T,GACzB,MAAO,gBAAqBvN,IAARuN,EAAoB,GAAKA,GAAO,KAAOqI,IAAW/Y,EAAKsxC,EAAS,oBCNtF,IAAIC,EAAgB,EAAQ,MAE5BpqC,EAAOid,QAAUmtB,IAAkB/U,OAAOqH,MAAkC,iBAAnBrH,OAAOiL,yBCHhE,IAAIrH,EAAc,EAAQ,MAEtBT,EAAQ,EAAQ,MAIpBx4B,EAAOid,QAAUgc,GAAeT,GAAM,WAEpC,OAKgB,IALTne,OAAOyB,gBAAe,cAE1B,YAAa,CACdtjB,MAAO,GACP2nB,UAAU,IACTrG,uBCbL,IAAI2b,EAAa5X,UAEjB7d,EAAOid,QAAU,SAAUotB,EAAQrjC,GACjC,GAAIqjC,EAASrjC,EAAU,MAAMyuB,EAAW,wBACxC,OAAO4U,mBCJT,IAAI7sC,EAAS,EAAQ,MAEjBzI,EAAS,EAAQ,MAEjBkjC,EAAS,EAAQ,KAEjB/N,EAAM,EAAQ,KAEdkgB,EAAgB,EAAQ,MAExBxK,EAAoB,EAAQ,KAE5B0K,EAAwBv1C,EAAO,OAC/BsgC,EAAS73B,EAAO63B,OAChBkV,EAAYlV,GAAUA,EAAY,IAClCmV,EAAwB5K,EAAoBvK,EAASA,GAAUA,EAAOoV,eAAiBvgB,EAE3FlqB,EAAOid,QAAU,SAAUlkB,GACzB,IAAKk/B,EAAOqS,EAAuBvxC,KAAWqxC,GAAuD,iBAA/BE,EAAsBvxC,GAAoB,CAC9G,IAAI+Z,EAAc,UAAY/Z,EAE1BqxC,GAAiBnS,EAAO5C,EAAQt8B,GAClCuxC,EAAsBvxC,GAAQs8B,EAAOt8B,GAErCuxC,EAAsBvxC,GADb6mC,GAAqB2K,EACAA,EAAUz3B,GAEV03B,EAAsB13B,GAIxD,OAAOw3B,EAAsBvxC,iCC5B/B,IAAIjF,EAAI,EAAQ,MAEZmiC,EAAgB,EAAQ,MAExBwC,EAAiB,EAAQ,MAEzBmB,EAAiB,EAAQ,MAEzBoC,EAA4B,EAAQ,MAEpClG,EAAS,EAAQ,KAEjB+D,EAA8B,EAAQ,MAEtClB,EAA2B,EAAQ,MAEnC+R,EAAkB,EAAQ,MAE1BC,EAAoB,EAAQ,MAE5BC,EAAU,EAAQ,MAElBC,EAA0B,EAAQ,MAElChV,EAAkB,EAAQ,MAE1BiV,EAA0B,EAAQ,MAElC1T,EAAgBvB,EAAgB,eAChC6B,EAASrc,MACTrgB,EAAO,GAAGA,KAEV+vC,EAAkB,SAAwBC,EAAQpnC,GAGpD,IAEIm5B,EAFA//B,EAAUue,UAAU9mB,OAAS,EAAI8mB,UAAU,QAAKvf,EAChDivC,EAAahV,EAAciV,EAAyBx3C,MAGpDkmC,EACFmD,EAAOnD,EAAe,IAAIlC,EAAUuT,EAAaxS,EAAe/kC,MAAQw3C,IAExEnO,EAAOkO,EAAav3C,KAAOoiC,EAAOoV,GAClCrR,EAA4BkD,EAAM3F,EAAe,eAGnCp7B,IAAZ4H,GAAuBi2B,EAA4BkD,EAAM,UAAW8N,EAAwBjnC,IAC5FknC,GAAyBjR,EAA4BkD,EAAM,QAAS2N,EAAgB3N,EAAKnF,MAAO,IACpG+S,EAAkB5N,EAAM//B,GACxB,IAAImuC,EAAc,GAKlB,OAJAP,EAAQI,EAAQhwC,EAAM,CACpB+hC,KAAMoO,IAERtR,EAA4BkD,EAAM,SAAUoO,GACrCpO,GAGLnD,EAAgBA,EAAemR,EAAiBrT,GAAasE,EAA0B+O,EAAiBrT,EAAQ,CAClH3+B,MAAM,IAER,IAAImyC,EAA0BH,EAAgBjxB,UAAYgc,EAAO4B,EAAO5d,UAAW,CACjFvY,YAAao3B,EAAyB,EAAGoS,GACzCnnC,QAAS+0B,EAAyB,EAAG,IACrC5/B,KAAM4/B,EAAyB,EAAG,oBAIpC7kC,EAAE,CACA0J,QAAQ,EACR+D,aAAa,EACbmgC,MAAO,GACN,CACD0J,eAAgBL,oBCzElB,EAAQ,mCCCR,IAAIj3C,EAAI,EAAQ,MAEZu3C,EAAY,iBAEZ7S,EAAQ,EAAQ,MAEhB8S,EAAmB,EAAQ,MAQ/Bx3C,EAAE,CACA8M,OAAQ,QACR06B,OAAO,EACPC,OARqB/C,GAAM,WAC3B,OAAQr2B,MAAM,GAAG6a,eAQhB,CACDA,SAAU,SAAkBzf,GAG1B,OAAO8tC,EAAU33C,KAAM6J,EAAIge,UAAU9mB,OAAS,EAAI8mB,UAAU,QAAKvf,MAIrEsvC,EAAiB,yCC1BjB,IAAIjV,EAAkB,EAAQ,KAE1BiV,EAAmB,EAAQ,MAE3BzS,EAAY,EAAQ,MAEpBsI,EAAsB,EAAQ,MAE9BrlB,EAAiB,SAEjByvB,EAAiB,EAAQ,MAEzB9R,EAAU,EAAQ,MAElBR,EAAc,EAAQ,MAEtBuS,EAAiB,iBACjBC,EAAmBtK,EAAoBrc,IACvCuc,EAAmBF,EAAoBtC,UAAU2M,GAWrDxrC,EAAOid,QAAUsuB,EAAeppC,MAAO,SAAS,SAAUupC,EAAU7K,GAClE4K,EAAiB/3C,KAAM,CACrBoF,KAAM0yC,EACN5qC,OAAQy1B,EAAgBqV,GAExB/0C,MAAO,EAEPkqC,KAAMA,OAIP,WACD,IAAIxC,EAAQgD,EAAiB3tC,MACzBkN,EAASy9B,EAAMz9B,OACfigC,EAAOxC,EAAMwC,KACblqC,EAAQ0nC,EAAM1nC,QAElB,OAAKiK,GAAUjK,GAASiK,EAAOnM,QAC7B4pC,EAAMz9B,YAAS5E,EACR,CACLxD,WAAOwD,EACPuR,MAAM,IAIE,QAARszB,EAAuB,CACzBroC,MAAO7B,EACP4W,MAAM,GAEI,UAARszB,EAAyB,CAC3BroC,MAAOoI,EAAOjK,GACd4W,MAAM,GAED,CACL/U,MAAO,CAAC7B,EAAOiK,EAAOjK,IACtB4W,MAAM,KAEP,UAIH,IAAIud,EAAS+N,EAAU8S,UAAY9S,EAAU12B,MAM7C,GAJAmpC,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,YAEZ7R,GAAWR,GAA+B,WAAhBnO,EAAO/xB,KAAmB,IACvD+iB,EAAegP,EAAQ,OAAQ,CAC7BtyB,MAAO,WAET,MAAOsL,qBClFT,IAAIozB,EAAwB,EAAQ,MAEhC4C,EAAgB,EAAQ,MAExBloB,EAAW,EAAQ,KAIlBslB,GACH4C,EAAczf,OAAOP,UAAW,WAAYlI,EAAU,CACpD0nB,QAAQ,iCCRZ,IAAIxlC,EAAI,EAAQ,MAEZuc,EAAO,EAAQ,KAEfysB,EAAY,EAAQ,MAEpB8O,EAA6B,EAAQ,MAErCC,EAAU,EAAQ,MAElBjB,EAAU,EAAQ,MAItB92C,EAAE,CACA8M,OAAQ,UACR47B,MAAM,GACL,CACDsP,WAAY,SAAoB1L,GAC9B,IAAIxhB,EAAIlrB,KACJq4C,EAAaH,EAA2BzoC,EAAEyb,GAC1C3P,EAAU88B,EAAW98B,QACrBk0B,EAAS4I,EAAW5I,OACpBvnB,EAASiwB,GAAQ,WACnB,IAAIG,EAAiBlP,EAAUle,EAAE3P,SAC7B6b,EAAS,GACTrvB,EAAU,EACVwwC,EAAY,EAChBrB,EAAQxK,GAAU,SAAU4B,GAC1B,IAAIrrC,EAAQ8E,IACRywC,GAAgB,EACpBD,IACA57B,EAAK27B,EAAgBptB,EAAGojB,GAASjiC,MAAK,SAAUvH,GAC1C0zC,IACJA,GAAgB,EAChBphB,EAAOn0B,GAAS,CACdw1C,OAAQ,YACR3zC,MAAOA,KAEPyzC,GAAah9B,EAAQ6b,OACtB,SAAUhnB,GACPooC,IACJA,GAAgB,EAChBphB,EAAOn0B,GAAS,CACdw1C,OAAQ,WACRC,OAAQtoC,KAERmoC,GAAah9B,EAAQ6b,YAGzBmhB,GAAah9B,EAAQ6b,MAGzB,OADIlP,EAAO9X,OAAOq/B,EAAOvnB,EAAOpjB,OACzBuzC,EAAW/J,wCCrDtB,IAAIluC,EAAI,EAAQ,MAEZuc,EAAO,EAAQ,KAEfysB,EAAY,EAAQ,MAEpB8O,EAA6B,EAAQ,MAErCC,EAAU,EAAQ,MAElBjB,EAAU,EAAQ,MAMtB92C,EAAE,CACA8M,OAAQ,UACR47B,MAAM,EACNjB,OAPwC,EAAQ,OAQ/C,CACDhY,IAAK,SAAa6c,GAChB,IAAIxhB,EAAIlrB,KACJq4C,EAAaH,EAA2BzoC,EAAEyb,GAC1C3P,EAAU88B,EAAW98B,QACrBk0B,EAAS4I,EAAW5I,OACpBvnB,EAASiwB,GAAQ,WACnB,IAAIQ,EAAkBvP,EAAUle,EAAE3P,SAC9B6b,EAAS,GACTrvB,EAAU,EACVwwC,EAAY,EAChBrB,EAAQxK,GAAU,SAAU4B,GAC1B,IAAIrrC,EAAQ8E,IACRywC,GAAgB,EACpBD,IACA57B,EAAKg8B,EAAiBztB,EAAGojB,GAASjiC,MAAK,SAAUvH,GAC3C0zC,IACJA,GAAgB,EAChBphB,EAAOn0B,GAAS6B,IACdyzC,GAAah9B,EAAQ6b,MACtBqY,QAEH8I,GAAah9B,EAAQ6b,MAGzB,OADIlP,EAAO9X,OAAOq/B,EAAOvnB,EAAOpjB,OACzBuzC,EAAW/J,wCC7CtB,IAAIluC,EAAI,EAAQ,MAEZuc,EAAO,EAAQ,KAEfysB,EAAY,EAAQ,MAEpBjB,EAAa,EAAQ,MAErB+P,EAA6B,EAAQ,MAErCC,EAAU,EAAQ,MAElBjB,EAAU,EAAQ,MAElB0B,EAAoB,0BAGxBx4C,EAAE,CACA8M,OAAQ,UACR47B,MAAM,GACL,CACD+P,IAAK,SAAanM,GAChB,IAAIxhB,EAAIlrB,KACJ03C,EAAiBvP,EAAW,kBAC5BkQ,EAAaH,EAA2BzoC,EAAEyb,GAC1C3P,EAAU88B,EAAW98B,QACrBk0B,EAAS4I,EAAW5I,OACpBvnB,EAASiwB,GAAQ,WACnB,IAAIG,EAAiBlP,EAAUle,EAAE3P,SAC7B+7B,EAAS,GACTvvC,EAAU,EACVwwC,EAAY,EACZO,GAAkB,EACtB5B,EAAQxK,GAAU,SAAU4B,GAC1B,IAAIrrC,EAAQ8E,IACRgxC,GAAkB,EACtBR,IACA57B,EAAK27B,EAAgBptB,EAAGojB,GAASjiC,MAAK,SAAUvH,GAC1Ci0C,GAAmBD,IACvBA,GAAkB,EAClBv9B,EAAQzW,OACP,SAAUsL,GACP2oC,GAAmBD,IACvBC,GAAkB,EAClBzB,EAAOr0C,GAASmN,IACdmoC,GAAa9I,EAAO,IAAIiI,EAAeJ,EAAQsB,aAGnDL,GAAa9I,EAAO,IAAIiI,EAAeJ,EAAQsB,OAGnD,OADI1wB,EAAO9X,OAAOq/B,EAAOvnB,EAAOpjB,OACzBuzC,EAAW/J,wCCnDtB,IAAIluC,EAAI,EAAQ,MAEZ2lC,EAAU,EAAQ,MAElBkN,EAA6B,oBAE7BR,EAA2B,EAAQ,MAEnCtK,EAAa,EAAQ,MAErBtG,EAAa,EAAQ,MAErBuE,EAAgB,EAAQ,MAExBwM,EAAyBH,GAA4BA,EAAyBrsB,UAclF,GAXAhmB,EAAE,CACA8M,OAAQ,UACR06B,OAAO,EACPC,OAAQoL,EACR+F,MAAM,GACL,CACD,MAAS,SAAUC,GACjB,OAAOj5C,KAAKqM,UAAK/D,EAAW2wC,OAI3BlT,GAAWlE,EAAW4Q,GAA2B,CACpD,IAAI3iC,EAASq4B,EAAW,WAAW/hB,UAAiB,MAEhDwsB,EAA8B,QAAM9iC,GACtCs2B,EAAcwM,EAAwB,QAAS9iC,EAAQ,CACrD81B,QAAQ,kCCjCd,IAoEIsT,EAAUC,EAAsCC,EApEhDh5C,EAAI,EAAQ,MAEZ2lC,EAAU,EAAQ,MAElB4I,EAAU,EAAQ,MAElB7kC,EAAS,EAAQ,MAEjB6S,EAAO,EAAQ,KAEfypB,EAAgB,EAAQ,MAExBF,EAAiB,EAAQ,MAEzBhB,EAAiB,EAAQ,MAEzBmU,EAAa,EAAQ,MAErBjQ,EAAY,EAAQ,MAEpBvH,EAAa,EAAQ,MAErBa,EAAW,EAAQ,MAEnB4W,EAAa,EAAQ,MAErBC,EAAqB,EAAQ,KAE7BnK,EAAO,YAEPoK,EAAY,EAAQ,MAEpBC,EAAmB,EAAQ,MAE3BtB,EAAU,EAAQ,MAElBzE,EAAQ,EAAQ,MAEhBjG,EAAsB,EAAQ,MAE9BgF,EAA2B,EAAQ,MAEnCiH,EAA8B,EAAQ,MAEtCxB,EAA6B,EAAQ,MAErCyB,EAAU,UACV1G,EAA6ByG,EAA4BrG,YACzDN,EAAiC2G,EAA4BpG,gBAC7DsG,EAA6BF,EAA4B5G,YACzD+G,EAA0BpM,EAAoBtC,UAAUwO,GACxD5B,EAAmBtK,EAAoBrc,IACvCwhB,EAAyBH,GAA4BA,EAAyBrsB,UAC9E0zB,EAAqBrH,EACrBsH,EAAmBnH,EACnBzoB,EAAYrgB,EAAOqgB,UACnB3rB,EAAWsL,EAAOtL,SAClBgf,EAAU1T,EAAO0T,QACjB+1B,EAAuB2E,EAA2BzoC,EAClDuqC,EAA8BzG,EAC9B0G,KAAoBz7C,GAAYA,EAASgvB,aAAe1jB,EAAOoR,eAC/Dg/B,EAAsB,qBAStBC,EAAa,SAAU3X,GACzB,IAAIn2B,EACJ,SAAOq2B,EAASF,KAAOX,EAAWx1B,EAAOm2B,EAAGn2B,QAAQA,GAGlD+tC,EAAe,SAAUC,EAAU1P,GACrC,IAMIziB,EAAQ7b,EAAMiuC,EANdx1C,EAAQ6lC,EAAM7lC,MACd+J,EAbU,GAaL87B,EAAMA,MACXhU,EAAU9nB,EAAKwrC,EAASxrC,GAAKwrC,EAASE,KACtCh/B,EAAU8+B,EAAS9+B,QACnBk0B,EAAS4K,EAAS5K,OAClBX,EAASuL,EAASvL,OAGtB,IACMnY,GACG9nB,IAnBK,IAoBJ87B,EAAM6P,WAAyBC,EAAkB9P,GACrDA,EAAM6P,UAtBA,IAyBQ,IAAZ7jB,EAAkBzO,EAASpjB,GACzBgqC,GAAQA,EAAOE,QACnB9mB,EAASyO,EAAQ7xB,GAEbgqC,IACFA,EAAOC,OACPuL,GAAS,IAITpyB,IAAWmyB,EAAS/L,QACtBmB,EAAOtlB,EAAU,yBACR9d,EAAO8tC,EAAWjyB,IAC3BvL,EAAKtQ,EAAM6b,EAAQ3M,EAASk0B,GACvBl0B,EAAQ2M,IACVunB,EAAO3qC,GACd,MAAOsL,GACH0+B,IAAWwL,GAAQxL,EAAOC,OAC9BU,EAAOr/B,KAIPi+B,EAAS,SAAU1D,EAAO+P,GACxB/P,EAAMgQ,WACVhQ,EAAMgQ,UAAW,EACjBnB,GAAU,WAIR,IAHA,IACIa,EADAO,EAAYjQ,EAAMiQ,UAGfP,EAAWO,EAAUjxC,OAC1BywC,EAAaC,EAAU1P,GAGzBA,EAAMgQ,UAAW,EACbD,IAAa/P,EAAM6P,WAAWK,EAAYlQ,QAI9CzvB,EAAgB,SAAU7V,EAAMipC,EAASoK,GAC3C,IAAIn2C,EAAOo0B,EAEPsjB,IACF13C,EAAQ/D,EAASgvB,YAAY,UACvB8gB,QAAUA,EAChB/rC,EAAMm2C,OAASA,EACfn2C,EAAMu4C,UAAUz1C,GAAM,GAAO,GAC7ByE,EAAOoR,cAAc3Y,IAChBA,EAAQ,CACb+rC,QAASA,EACToK,OAAQA,IAGL3F,IAAmCpc,EAAU7sB,EAAO,KAAOzE,IAAQsxB,EAAQp0B,GAAgB8C,IAAS60C,GAAqBT,EAAiB,8BAA+Bf,IAG5KmC,EAAc,SAAUlQ,GAC1BhuB,EAAKyyB,EAAMtlC,GAAQ,WACjB,IAGIoe,EAHAomB,EAAU3D,EAAMK,OAChBlmC,EAAQ6lC,EAAM7lC,MAIlB,GAHmBi2C,EAAYpQ,KAI7BziB,EAASiwB,GAAQ,WACXxJ,EACFnxB,EAAQw9B,KAAK,qBAAsBl2C,EAAOwpC,GACrCpzB,EAAcg/B,EAAqB5L,EAASxpC,MAGrD6lC,EAAM6P,UAAY7L,GAAWoM,EAAYpQ,GA7F/B,EADF,EA+FJziB,EAAO9X,OAAO,MAAM8X,EAAOpjB,UAKjCi2C,EAAc,SAAUpQ,GAC1B,OArGY,IAqGLA,EAAM6P,YAA0B7P,EAAMlzB,QAG3CgjC,EAAoB,SAAU9P,GAChChuB,EAAKyyB,EAAMtlC,GAAQ,WACjB,IAAIwkC,EAAU3D,EAAMK,OAEhB2D,EACFnxB,EAAQw9B,KAAK,mBAAoB1M,GAC5BpzB,EAlHa,mBAkHoBozB,EAAS3D,EAAM7lC,WAIvDqkC,EAAO,SAAUtpB,EAAI8qB,EAAO/nB,GAC9B,OAAO,SAAU9d,GACf+a,EAAG8qB,EAAO7lC,EAAO8d,KAIjBq4B,EAAiB,SAAUtQ,EAAO7lC,EAAO8d,GACvC+nB,EAAM9wB,OACV8wB,EAAM9wB,MAAO,EACT+I,IAAQ+nB,EAAQ/nB,GACpB+nB,EAAM7lC,MAAQA,EACd6lC,EAAMA,MA9HO,EA+Hb0D,EAAO1D,GAAO,KAGZuQ,GAAkB,SAAUvQ,EAAO7lC,EAAO8d,GAC5C,IAAI+nB,EAAM9wB,KAAV,CACA8wB,EAAM9wB,MAAO,EACT+I,IAAQ+nB,EAAQ/nB,GAEpB,IACE,GAAI+nB,EAAMK,SAAWlmC,EAAO,MAAMqlB,EAAU,oCAC5C,IAAI9d,EAAO8tC,EAAWr1C,GAElBuH,EACFmtC,GAAU,WACR,IAAI2B,EAAU,CACZthC,MAAM,GAGR,IACE8C,EAAKtQ,EAAMvH,EAAOqkC,EAAK+R,GAAiBC,EAASxQ,GAAQxB,EAAK8R,EAAgBE,EAASxQ,IACvF,MAAOv6B,GACP6qC,EAAeE,EAAS/qC,EAAOu6B,QAInCA,EAAM7lC,MAAQA,EACd6lC,EAAMA,MA1JI,EA2JV0D,EAAO1D,GAAO,IAEhB,MAAOv6B,GACP6qC,EAAe,CACbphC,MAAM,GACLzJ,EAAOu6B,MAKd,GAAIsI,IAeF8G,GAbAD,EAAqB,SAAiBsB,GACpC9B,EAAWt5C,KAAM+5C,GACjB3Q,EAAUgS,GACVz+B,EAAKu8B,EAAUl5C,MACf,IAAI2qC,EAAQkP,EAAwB75C,MAEpC,IACEo7C,EAASjS,EAAK+R,GAAiBvQ,GAAQxB,EAAK8R,EAAgBtQ,IAC5D,MAAOv6B,GACP6qC,EAAetQ,EAAOv6B,MAIYgW,WAEtC8yB,EAAW,SAAiBkC,GAC1BrD,EAAiB/3C,KAAM,CACrBoF,KAAMu0C,EACN9/B,MAAM,EACN8gC,UAAU,EACVljC,QAAQ,EACRmjC,UAAW,IAAIlH,EACf8G,WAAW,EACX7P,MA/LQ,EAgMR7lC,WAAOwD,MAMF8d,UAAYggB,EAAc2T,EAAkB,QAAQ,SAAcsB,EAAapC,GACtF,IAAItO,EAAQkP,EAAwB75C,MAChCq6C,EAAW9G,EAAqBgG,EAAmBv5C,KAAM85C,IAQ7D,OAPAnP,EAAMlzB,QAAS,EACf4iC,EAASxrC,IAAKgzB,EAAWwZ,IAAeA,EACxChB,EAASE,KAAO1Y,EAAWoX,IAAeA,EAC1CoB,EAASvL,OAASH,EAAUnxB,EAAQsxB,YAASxmC,EA5MnC,GA6MNqiC,EAAMA,MAAkBA,EAAMiQ,UAAUxzC,IAAIizC,GAAeb,GAAU,WACvEY,EAAaC,EAAU1P,MAElB0P,EAAS/L,WAGlB6K,EAAuB,WACrB,IAAI7K,EAAU,IAAI4K,EACdvO,EAAQkP,EAAwBvL,GACpCtuC,KAAKsuC,QAAUA,EACftuC,KAAKub,QAAU4tB,EAAK+R,GAAiBvQ,GACrC3qC,KAAKyvC,OAAStG,EAAK8R,EAAgBtQ,IAGrCuN,EAA2BzoC,EAAI8jC,EAAuB,SAAUroB,GAC9D,OAAOA,IAAM4uB,GAvNmBwB,YAuNGpwB,EAAuB,IAAIiuB,EAAqBjuB,GAAK8uB,EAA4B9uB,KAGjH6a,GAAWlE,EAAW4Q,IAA6BG,IAA2BjsB,OAAOP,WAAW,CACnGgzB,EAAaxG,EAAuBvmC,KAE/ButC,GAEHxT,EAAcwM,EAAwB,QAAQ,SAAcyI,EAAapC,GACvE,IAAI5P,EAAOrpC,KACX,OAAO,IAAI85C,GAAmB,SAAUv+B,EAASk0B,GAC/C9yB,EAAKy8B,EAAY/P,EAAM9tB,EAASk0B,MAC/BpjC,KAAKgvC,EAAapC,KACpB,CACDrT,QAAQ,IAKZ,WACSgN,EAAuB/kC,YAC9B,MAAOuC,IAKL81B,GACFA,EAAe0M,EAAwBmH,GAK7C35C,EAAE,CACA0J,QAAQ,EACR+D,aAAa,EACb0tC,MAAM,EACN1T,OAAQoL,GACP,CACD33B,QAASw+B,IAEX5U,EAAe4U,EAAoBH,GAAS,GAAO,GACnDN,EAAWM,gCCpUX,IAAIv5C,EAAI,EAAQ,MAEZ2lC,EAAU,EAAQ,MAElB0M,EAA2B,EAAQ,MAEnC3N,EAAQ,EAAQ,MAEhBqD,EAAa,EAAQ,MAErBtG,EAAa,EAAQ,MAErB0X,EAAqB,EAAQ,KAE7BjB,EAAiB,EAAQ,MAEzBlS,EAAgB,EAAQ,MAExBwM,EAAyBH,GAA4BA,EAAyBrsB,UAmClF,GArBAhmB,EAAE,CACA8M,OAAQ,UACR06B,OAAO,EACPoR,MAAM,EACNnR,SAhBkB4K,GAA4B3N,GAAM,WAEpD8N,EAAgC,QAAEj2B,KAAK,CACrCtQ,KAAM,eAGL,mBAWF,CACD,QAAW,SAAUmvC,GACnB,IAAItwB,EAAIquB,EAAmBv5C,KAAMmoC,EAAW,YACxCsT,EAAa5Z,EAAW2Z,GAC5B,OAAOx7C,KAAKqM,KAAKovC,EAAa,SAAU55C,GACtC,OAAOy2C,EAAeptB,EAAGswB,KAAanvC,MAAK,WACzC,OAAOxK,MAEP25C,EAAWC,EAAa,SAAUzyC,GACpC,OAAOsvC,EAAeptB,EAAGswB,KAAanvC,MAAK,WACzC,MAAMrD,MAENwyC,OAIHzV,GAAWlE,EAAW4Q,GAA2B,CACpD,IAAI3iC,EAASq4B,EAAW,WAAW/hB,UAAmB,QAElDwsB,EAAgC,UAAM9iC,GACxCs2B,EAAcwM,EAAwB,UAAW9iC,EAAQ,CACvD81B,QAAQ,qBC3Dd,EAAQ,MAER,EAAQ,MAER,EAAQ,MAER,EAAQ,MAER,EAAQ,MAER,EAAQ,mCCTR,IAAIxlC,EAAI,EAAQ,MAEZuc,EAAO,EAAQ,KAEfysB,EAAY,EAAQ,MAEpB8O,EAA6B,EAAQ,MAErCC,EAAU,EAAQ,MAElBjB,EAAU,EAAQ,MAMtB92C,EAAE,CACA8M,OAAQ,UACR47B,MAAM,EACNjB,OAPwC,EAAQ,OAQ/C,CACD6T,KAAM,SAAchP,GAClB,IAAIxhB,EAAIlrB,KACJq4C,EAAaH,EAA2BzoC,EAAEyb,GAC1CukB,EAAS4I,EAAW5I,OACpBvnB,EAASiwB,GAAQ,WACnB,IAAIQ,EAAkBvP,EAAUle,EAAE3P,SAClC27B,EAAQxK,GAAU,SAAU4B,GAC1B3xB,EAAKg8B,EAAiBztB,EAAGojB,GAASjiC,KAAKgsC,EAAW98B,QAASk0B,SAI/D,OADIvnB,EAAO9X,OAAOq/B,EAAOvnB,EAAOpjB,OACzBuzC,EAAW/J,wCChCtB,IAAIluC,EAAI,EAAQ,MAEZuc,EAAO,EAAQ,KAEfu7B,EAA6B,EAAQ,MAMzC93C,EAAE,CACA8M,OAAQ,UACR47B,MAAM,EACNjB,OAP+B,qBAQ9B,CACD4H,OAAQ,SAAgB3+B,GACtB,IAAIunC,EAAaH,EAA2BzoC,EAAEzP,MAE9C,OADA2c,EAAK07B,EAAW5I,YAAQnnC,EAAWwI,GAC5BunC,EAAW/J,wCClBtB,IAAIluC,EAAI,EAAQ,MAEZ+nC,EAAa,EAAQ,MAErBpC,EAAU,EAAQ,MAElB0M,EAA2B,EAAQ,MAEnCQ,EAA6B,oBAE7BqF,EAAiB,EAAQ,MAEzBqD,EAA4BxT,EAAW,WACvCyT,EAAgB7V,IAAYkN,EAGhC7yC,EAAE,CACA8M,OAAQ,UACR47B,MAAM,EACNjB,OAAQ9B,GAAWkN,GAClB,CACD13B,QAAS,SAAiB1Z,GACxB,OAAOy2C,EAAesD,GAAiB57C,OAAS27C,EAA4BlJ,EAA2BzyC,KAAM6B,mCCtBjH,IAAIu4B,EAAS,eAETlc,EAAW,EAAQ,MAEnBuvB,EAAsB,EAAQ,MAE9BoK,EAAiB,EAAQ,MAEzBgE,EAAkB,kBAClB9D,EAAmBtK,EAAoBrc,IACvCuc,EAAmBF,EAAoBtC,UAAU0Q,GAGrDhE,EAAehxB,OAAQ,UAAU,SAAUmxB,GACzCD,EAAiB/3C,KAAM,CACrBoF,KAAMy2C,EACN5P,OAAQ/tB,EAAS85B,GACjB/0C,MAAO,OAGR,WACD,IAGIrB,EAHA+oC,EAAQgD,EAAiB3tC,MACzBisC,EAAStB,EAAMsB,OACfhpC,EAAQ0nC,EAAM1nC,MAElB,OAAIA,GAASgpC,EAAOlrC,OAAe,CACjC+D,WAAOwD,EACPuR,MAAM,IAERjY,EAAQw4B,EAAO6R,EAAQhpC,GACvB0nC,EAAM1nC,OAASrB,EAAMb,OACd,CACL+D,MAAOlD,EACPiY,MAAM,oCCjCVvN,EAAOid,QAAU,WACf,GAA0B,iBAAfwgB,WACT,OAAOA,WAGT,IAAIvgB,EAEJ,IAGEA,EAAIxpB,MAAQ,IAAI6pB,SAAS,cAAb,GACZ,MAAO7gB,GAEP,GAAsB,iBAAXvJ,OACT,OAAOA,OAIT,GAAoB,iBAAT+S,KACT,OAAOA,KAIT,QAAsB,IAAX,EAAAgX,EACT,OAAO,EAAAA,EAIX,OAAOA,EA5BQ,yBCFjB,MAOWhjB,EAAGomB,EAAHpmB,EAIR,oBAAuB/G,OAASA,OAASO,KAJ9B4sB,EAIoC,SAAUpmB,GAC1D,SAASomB,EAAEnd,EAAGzG,EAAG8e,EAAGoD,GAClBzb,EAAEkd,eAAe3jB,KAAOyG,EAAEzG,GAAKkiB,EAAExJ,MAAM,KAAMoG,GAAI,mBAAsB6F,aAAennB,EAAE0U,cAAc,IAAIyS,YAAY,yBAA0B,CAC9ID,OAAQ,CACNznB,KAAM+C,EACNsD,OAAQmD,EAAEzG,QAKhB,IAAI8e,EAAI,GA+oaR,OA9oaA8E,EAAE9E,EAAG,kBAAmB,IAAI,WAC1B,IAAIrY,EAEOzG,EA4CX,OA5CWA,EAyCRyG,IAAMA,EAAI,KAxCTqsC,OAAS,6BACX9yC,EAAE+yC,QAAU,aACZ/yC,EAAEg/B,QAAU,SACZh/B,EAAEgzC,SAAM,IAAuBx1C,EAAIA,EAAI,GACvCwC,EAAEizC,IAAMjzC,EAAEgzC,IAAIx9C,SACdwK,EAAEkzC,IAAMlzC,EAAEizC,KAAOjzC,EAAEizC,IAAI51B,mBAAqBrd,EAAEizC,IAAI51B,gBAAgBrd,EAAE8yC,OAAQ,OAAOK,cACnFnzC,EAAEgX,UAAYhX,EAAEgzC,IAAIj8B,WAAa/W,EAAEgzC,IAAIj8B,UAAUC,WAAa,GAC9DhX,EAAEozC,UAAY,IAAMpzC,EAAEgX,UAAUnB,QAAQ,UACxC7V,EAAEqzC,WAAa,IAAMrzC,EAAEgX,UAAUnB,QAAQ,WACzC7V,EAAEszC,KAAO,uBAAuBh+B,KAAKtV,EAAEgX,aAAehX,EAAEgzC,IAAI9uB,MAC5DlkB,EAAEuzC,UAAYvzC,EAAEozC,WAAa,IAAMpzC,EAAEgX,UAAUnB,QAAQ,UACvD7V,EAAEwzC,cAAgB,iCAAiCl+B,KAAKtV,EAAEgX,WAC1DhX,EAAEyzC,UAAY,IAAMzzC,EAAEgX,UAAUnB,QAAQ,eACxC7V,EAAE0zC,QAAU,EAAI3yB,KAAK4yB,GAAK,IAC1B3zC,EAAE4zC,WAAa5zC,EAAEqzC,WAAa,EAAIx5C,SAASmG,EAAEgX,UAAU/B,MAAM,YAAY,GAAI,IAC7EjV,EAAE6zC,WAAa7zC,EAAEgzC,IAAIc,WACrB9zC,EAAE+zC,YAAc,CAAC,UAAW,cAAe,eAAgB,YAE3D/zC,EAAEs3B,KAAO,aAETt3B,EAAEg0C,sBAAwB,WACxB,IAAIvtC,GAAI,EAER,IAAKzG,EAAEszC,KAAM,CACX,IAAIx0B,EAAInB,OAAOyB,eAAe,GAAI,UAAW,CAC3Cze,IAAK,WACH8F,GAAI,KAGRzG,EAAEgzC,IAAIv9C,kBAAoBuK,EAAEgzC,IAAI/jB,sBAAwBjvB,EAAEgzC,IAAIv9C,iBAAiB,cAAeuK,EAAEs3B,KAAMxY,GAAI9e,EAAEgzC,IAAI/jB,oBAAoB,cAAejvB,EAAEs3B,KAAMxY,IAG7J,OAAOrY,EAZiB,GAe1BzG,EAAElC,OAAS,GACXkC,EAAEi0C,YAAc,GAChBj0C,EAAEk0C,YAAc,GAChBl0C,EAAEm0C,YAAc,GAChBn0C,EAAEo0C,WAAa,EAIV3tC,KAETmd,EAAE9E,EAAG,oBAAqB,CAACA,EAAE,qBAAqB,SAAUrY,GAC1D,SAASzG,EAAE2gB,EAAGhX,EAAG6W,EAAGa,GAClB,IAAIc,EAAIxY,EAAI,mBAAqB,qBACjC,KAAOgX,IAAMA,EAASwB,EAAI,uBAC1B,IAAIrB,EAAI7Y,EAAE0Y,GACNF,EAAIK,EAASqB,EAAI,KAAOxB,EAAI,+BAAiCA,EAAI,IAAMA,EAAEzL,WAE7E,QAAI,IAAuBmM,EAAG,CAC5B,IAAI5Z,EAAI,GACRqZ,IAAML,GAAK,KACXc,EAAEF,GAAG,SAAU7Z,EAAGmZ,GAChBlZ,GAAK,QAAQsb,OAAOpC,EAAG,MAAMoC,OAAOvb,GACpCsZ,IAAML,GAAK4zB,UAAU1zB,GAAK,IAAM0zB,UAAU7sC,OAE5CiZ,GAAKhZ,EAGP5O,EAAE4N,EAAG,eAAgB,CACnBpQ,MAAOmqB,EACPtC,KAAMyC,EACNzZ,QAASuZ,EACT6zB,OAAQjzB,IACP,WACD,GAAI1X,EAAG,MAAMgV,MAAM8B,GACnBjZ,EAAE3F,UAAY,IAAM7B,EAAEu0C,SAAS1+B,QAAQ4K,IAAM5e,QAAQ2yC,KAAK/zB,MAE5DzgB,EAAEu0C,SAASj2C,KAAKmiB,GAWlB,SAASyB,EAAE1a,EAAGmZ,GACZ,OAAO9mB,SAAS2N,EAAGmZ,GAAK,IAG1B,SAAS/W,EAAEpC,GACT,MAAO,iBAAoBA,EAG7B,SAASua,EAAEva,GAET,MAAO,oBADPA,EAAImW,OAAOP,UAAUlI,SAASvB,KAAKnM,KACF,4BAA8BA,EAGjE,SAASqc,EAAErc,EAAGmZ,GACZ,SAASnZ,GAAK,iBAAoBA,GAAOmZ,GAAMoB,EAAEva,IAGnD,SAAS+b,EAAE/b,GACT,OAAOqc,EAAErc,IAAM,iBAAoBA,EAAEgvB,SAGvC,SAASz9B,EAAEyO,GACT,IAAImZ,EAAInZ,GAAKA,EAAE3C,YACf,SAAUgf,EAAErc,GAAG,IAAO+b,EAAE/b,KAAOmZ,IAAMA,EAAEtkB,MAAQ,WAAaskB,EAAEtkB,MAGhE,SAAS4L,EAAET,GACT,MAAO,iBAAoBA,IAAMsC,MAAMtC,IAAMitC,IAAWjtC,IAAK,IAAYA,EAG3E,SAAS4Z,EAAE5Z,GACT,OAAO,MAAuBA,EAGhC,SAASoZ,EAAEpZ,EAAGmZ,EAAGH,GACf,IACI7W,EADAwY,EAAIvY,EAAE+W,KAAOS,EAAEZ,GAEfa,EAAI,SAAUV,EAAGH,GACnBY,EAAET,GAAKnZ,EAAEmK,aAAa6O,EAAGG,GAAKwB,GAAKxY,EAAInC,EAAEuT,aAAayF,KAAO,UAAYA,IAAM7W,EAAInC,EAAEuT,aAAayF,EAAI,SAAWhZ,EAAE2f,gBAAgB3G,IAIrI,OADA5W,EAAE+W,GAAKU,EAAEb,EAAGG,GAAKY,EAAEZ,EAAGU,GACf1X,EAGT,SAASlC,EAAED,EAAGmZ,GACZ,IAAIwB,EAGJ,IAAKA,KAFL3a,IAAMA,EAAI,IAEAmZ,EAAGnZ,EAAE2a,GAAKxB,EAAEwB,GAEtB,OAAO3a,EAGT,SAASwZ,IACP,IAAK,IAAIxZ,EAAIqX,UAAW8B,EAAInZ,EAAEzP,OAAQyoB,EAAI,EAAGA,EAAIG,EAAGH,IAAK,CACvD,IAAIa,EAAI7Z,EAAEgZ,GACV,GAAI,MAAuBa,EAAiB,OAAOA,GAIvD,SAASe,EAAE5a,EAAGmZ,GACZla,EAAE6sC,OAAS7sC,EAAEysC,KAAOvyB,GAAKS,EAAET,EAAE+zB,WAAa/zB,EAAExhB,OAAS,iBAAiB4jB,OAAO,IAAMpC,EAAE+zB,QAAS,MAC9FjtC,EAAED,EAAElR,MAAOqqB,GAGb,SAAS7Y,EAAEN,GACT,OAAOuZ,KAAK4zB,IAAI,GAAI5zB,KAAK4U,MAAM5U,KAAKjf,IAAI0F,GAAKuZ,KAAK6zB,OAGpD,SAASn0B,EAAEjZ,EAAGmZ,GACZ,OAAO,KAAOnZ,EAAIA,EAAI4uB,WAAW5uB,EAAEqtC,YAAYl0B,GAAK,KAiBtD,SAASY,EAAE/Z,EAAGmZ,EAAGH,GACf,IAAK,IAAI2B,KAAK3a,EAAGmW,OAAOgG,eAAehQ,KAAKnM,EAAG2a,IAAMxB,EAAEhN,KAAK6M,GAAKhZ,EAAE2a,GAAI3a,EAAE2a,GAAIA,EAAG3a,GAGlF,SAASya,EAAEza,EAAGmZ,EAAGH,GACf,SAAS2B,EAAExB,EAAG+C,GACZ,IAAIvB,EAAI3a,EAAEynB,qBAAuBxoB,EAAEquC,4BACnC3yB,GAAKA,EAAExO,KAAKnM,EAAGmZ,EAAG+C,GAAG,GAGvB,SAAS/Z,EAAEA,GACT,IAAI+Z,EAEJ,GAAIlc,EAAEwT,SAAU,CACd,GAAI2F,EAAG,CACL,IAAI+B,EAAI,GACRA,EAAE/B,IAAK,OACF+B,EAAI/Y,EAEX4X,EAAEmB,GAAG,SAAUlb,EAAGmZ,GAChB,GAAIhX,EAAEgX,GAAI,IAAK+C,EAAI/Z,EAAEgX,GAAG5oB,OAAQ2rB,KAAMvB,EAAExB,EAAGhX,EAAEgX,GAAG+C,GAAG7M,QAKzD,IAAIwK,EAAI,mBAAsB7Z,GAAKA,EAAE4V,WAAa5V,EAElD,GAAImW,OAAOgG,eAAehQ,KAAK0N,EAAG,YAAa,CAC7C,IAAIP,EAAIO,EAAE0zB,SACVp0B,GAAKU,EAAIP,EAAEH,IAAM,GAAIH,GAAKM,EAAEH,GAAKU,EAAEliB,QAAO,SAAUqI,GAClD,OAAOgZ,IAAMhZ,EAAEqP,MACbsL,EAAExB,EAAGH,KAAO7W,EAAEmX,GAAIA,EAAEH,GAAK,MAAQhX,EAAEmX,UAAWO,EAAE0zB,WAIxD,SAASl8C,EAAE2O,EAAGmZ,EAAGH,EAAGM,GAGlB,GAFAN,EAAIA,GAAK,GAELa,EAAEmD,cAAgBhd,EAAE0K,eAAiB1K,EAAEwtC,WAAaxtC,IAAMf,GAAI,CAChE,IAAI0b,EAAId,EAAEmD,YAAY,UACtBrC,EAAE2vB,UAAUnxB,GAAG,GAAI,GACnBH,EAAI/Y,EAAE0a,EAAG3B,GACThZ,EAAE0K,cAAgB1K,EAAE0K,cAAcsO,GAAKhZ,EAAEwtC,UAAUr0B,EAAGH,QACjD,GAAIhZ,EAAEutC,SAAU,CACrBv0B,EAAEtc,QAAUuD,EAAE+Y,EAAG,CACfvgB,eAAgB,WACdugB,EAAE6K,kBAAmB,GAEvBnnB,OAAQsD,EACRpL,KAAMukB,IAERwB,EAAI,GAEJ,IAAK,IAAIxY,EAAInC,EAAGiZ,GAAI,EAAI9W,EAAEorC,UAAWp3B,OAAOgG,eAAehQ,KAAKhK,EAAG,aAAeA,EAAEorC,SAASp0B,KAAOwB,EAAEpqB,SAAW0oB,GAAI,GAAK0B,EAAE8yB,QAAQv8B,MAAMyJ,EAAGxY,EAAEorC,SAASp0B,KAAMhX,EAAIgU,OAAOoe,eAAepyB,GAExL8W,GAAK0B,EAAExG,MAAK,SAAUnU,EAAGmZ,GACvB,OAAOnZ,EAAE0tC,MAAQv0B,EAAEu0B,SAErB/yB,EAAEnlB,SAAQ,SAAU2jB,IAClB,IAAOA,EAAE9J,GAAGlD,KAAKnM,EAAGgZ,IAAMA,EAAEvgB,oBAIhC6gB,IAAMN,EAAE6K,kBAAoBvK,EAAEnN,KAAKnM,EAAGgZ,GAGxC,IAAIM,EAAIra,EAAE3I,OACNujB,EAAI5a,EAAEwsC,IACNzrC,EAAIf,EAAEusC,KACThzC,IAAMA,EAAI,KAAKu0C,SAAW,GAE3BxzB,KAAKo0B,cAAgB,SAAU3tC,GAC7B,OAAQ,IAAMuZ,KAAKq0B,IAAIr0B,KAAK4yB,GAAKnsC,GAAK,IAGxC,IAAIgZ,EAAI/a,MAAM2X,UAAU7lB,KAAO,SAAUiQ,EAAGmZ,GAC1C,OAAOnZ,EAAEjQ,KAAKopB,IACZ,SAAUnZ,EAAGmZ,GACf,IAAIwB,EACAxY,EAAInC,EAAEzP,OAEV,IAAKoqB,EAAI,EAAGA,EAAIxY,EAAGwY,IAAK,GAAIxB,EAAEnZ,EAAE2a,GAAIA,GAAI,OAAO3a,EAAE2a,IAEnDZ,EAAE,CACA0E,IAAK,MACLnmB,KAAM,UACNu1C,KAAM,SACNC,OAAQ,SACRlnC,KAAM,SACL,SAAU5G,EAAGmZ,GACdla,EAAEka,GAAK,SAAUwB,GACf,IAAIxY,EAEJ,OADA3J,EAAE,IAAI,OAAI,IAAS2J,EAAI,IAAM,cAAcoZ,OAAOpC,IAAM,aAAaoC,OAAOvb,GAAImC,IACzElE,MAAM2X,UAAU5V,GAAGkR,MAAMyJ,EAAG,GAAGzO,MAAMC,KAAKkL,UAAW,QAIhE,IAAI8B,EACA8B,EAAI,WACN,IAAIjb,EAAIuZ,KAAK6U,SAAS1gB,SAAS,IAAIU,UAAU,EAAG,GAAK,IACjDjM,EAAI,EACR,OAAO,WACL,MAAO,eAAiBgX,EAAI,GAAKnZ,GAAKmC,KAJlC,GAgPR,OAxOAnC,EAAEiD,SAAWjD,EAAEiD,OAAOoM,GAAGha,WAAa,WACpC,IAAI2K,EAAI,GAAGkM,MAAMC,KAAKkL,WACtB,GAAI7nB,KAAK,GAAI,OAAOwQ,EAAE,IAAM,IAAIf,EAAEmD,EAAEpC,EAAE,IAAMA,EAAE+tC,QAAU,UAASv+C,KAAK,GAAIwQ,EAAE,GAAIA,EAAE,IAAKxQ,MAAQ8pB,EAAEF,EAAE5pB,KAAK,GAAI,4BAE9GwpB,EAAI,CACFg1B,SAAU,SAAUhuC,EAAGmZ,EAAGH,EAAGa,QAC3B,IAAWA,IAAMA,EAAI,IACrB,IAAI1X,EAAI,mBAAsBnC,GAAKA,EAAE4V,WAAa5V,EAClDmW,OAAOgG,eAAehQ,KAAKhK,EAAG,cAAgBA,EAAEorC,SAAW,IAC3DprC,EAAIA,EAAEorC,SACNtuC,EAAEgvC,OAASjuC,aAAaf,EAAEgvC,OAASjuC,EAAEtQ,QAAUsQ,EAAEtQ,OAAOb,QAAUmR,EAAEtQ,OAAOb,MAAMq/C,iBAAkB,GACnG,IAAIvzB,EAAI3a,EAAE/R,kBAAoBgR,EAAEkvC,yBAahC,OAZAxzB,GAAKA,EAAExO,KAAKnM,EAAGmZ,EAAGH,IAAG/Z,EAAEutC,uBAAwB,CAC7C4B,aAAS,IAAWv0B,EAAEu0B,SAAW,IAAMj1B,EAAE9K,QAAQ,SAAWwL,EAAEu0B,QAC9DC,SAAS,IAEXlsC,EAAEgX,KAAOhX,EAAEgX,GAAK,IAChBhX,EAAEgX,GAAGriB,KAAK,CACRuY,GAAI2J,EACJ00B,MAAO,iBAAoB7zB,EAAE6zB,MAAQ7zB,EAAE6zB,MAAQT,MAEjD9qC,EAAEgX,GAAGhF,MAAK,SAAUnU,EAAGmZ,GACrB,OAAOnZ,EAAE0tC,MAAQv0B,EAAEu0B,SAEd,WACLjzB,EAAEza,EAAGmZ,EAAGH,KAGZs1B,SAAU,SAAUtuC,GAClB,IAAK,IAAImZ,EAAInZ,EAAEzP,OAAQyoB,EAAIhZ,EAAE,GAAImZ,KAAMnZ,EAAEmZ,GAAKH,IAAMA,EAAIhZ,EAAEmZ,IAE1D,OAAOH,GAETu1B,SAAU,SAAUvuC,GAClB,IAAK,IAAImZ,EAAInZ,EAAEzP,OAAQyoB,EAAIhZ,EAAE,GAAImZ,KAAMnZ,EAAEmZ,GAAKH,IAAMA,EAAIhZ,EAAEmZ,IAE1D,OAAOH,GAETtiB,KAAM0iB,EACNo1B,MAAO,SAAUxuC,EAAGmZ,EAAGH,GACrB,OAAOhZ,EAAImZ,EAAInZ,EAAIgZ,EAAIhZ,EAAIgZ,EAAIG,GAEjCs1B,iBApPF,SAASn3B,EAAEtX,EAAGmZ,GACZ,IAAIwB,EAAI,GAIR,OAHAZ,EAAE/Z,GAAG,SAAUmC,EAAG6W,GACZqD,EAAErc,EAAEgZ,IAAI,KAAQhZ,EAAEgvB,UAAY7V,EAAEH,IAAI7W,EAAImV,EAAEtX,EAAEgZ,GAAIG,EAAEH,IAAK7C,OAAOgP,KAAKhjB,GAAG5R,SAAWoqB,EAAE3B,GAAK7W,KAAYka,EAAErc,EAAEgZ,KAAOhZ,EAAEgZ,KAAOG,EAAEH,IAAMA,KAAKhZ,KAAOgZ,KAAKG,MAAIwB,EAAE3B,GAAKhZ,EAAEgZ,OAE7J2B,GAgPPP,aAAc,SAAUpa,GACtB4Z,EAAE5Z,IAAMoa,aAAapa,IAEvB0uC,aAAcz1B,EACdhP,cAAe,SAAUjK,EAAGmZ,EAAGH,EAAGM,EAAGL,GAUnC,OATAjZ,EAAI6Z,EAAE5P,cAAcjK,GACpBmZ,GAAKlZ,EAAED,EAAGmZ,GACVF,GAAK2B,EAAE5a,EAAG,CACRiO,QAAS,IACT0gC,OAAQ,OACR/7B,OAAQ,MAEVoG,GAAK4B,EAAE5a,EAAGgZ,GACVM,GAAKA,EAAE/O,YAAYvK,GACZA,GAEThQ,IAAK4qB,EACLg0B,QAASh1B,EACTi1B,wBAAyB,SAAU7uC,EAAGmZ,GACpCY,EAAE/Z,GAAG,SAAUgZ,EAAG7W,GAChB6W,GAAKA,IAAMG,GAAKH,EAAEtjB,SAAWsjB,EAAEtjB,iBACxBsK,EAAEmC,OAGb2sC,eAAgB,SAAU9uC,GACxBA,GAAKA,EAAE+uC,eAAiB/uC,EAAE+uC,cAActJ,YAAYzlC,IAEtDgvC,MAAO,SAAUhvC,EAAGmZ,GAClB,IAAK,IAAIH,EAAIhZ,EAAEzP,OAAQyoB,KAAM,GAAIhZ,EAAEgZ,KAAOG,EAAG,CAC3CnZ,EAAEuU,OAAOyE,EAAG,GACZ,QAGJpZ,MAAOpH,EACPO,OAAQkH,EACRgvC,YAAa,SAAUjvC,EAAGmZ,GACxB,IAAIH,EAAI,aAIR,OADA/Y,EADA+Y,EAAEpD,UAAY,IAAI5V,EACHmZ,GACRH,GAETjpB,KAAMipB,EACNw0B,UAAWn8C,EACX69C,aAAc5uC,EACd6uC,kBAAmB,SAAUh2B,EAAGH,GAC9B,IAAKG,EAAIA,EAAE1L,MAAM,KAAM0L,EAAE5oB,QAAUqpB,EAAEZ,IAAK,CACxC,IAAI7W,EAAIgX,EAAE40B,QACV,QAAI,IAAuB5rC,GAAK,cAAgBA,EAAG,OAEnD,IAAKyX,EADLZ,EAAIA,EAAE7W,KACO,mBAAsB6W,GAAK,iBAAoBA,EAAEgW,UAAYhW,IAAMhZ,EAAG,OAGrF,OAAOgZ,GAETo2B,SA1NF,SAAS9yB,EAAEnD,EAAGhX,EAAG6W,GACf,IAAI2B,EAAI1b,EAAEmwC,UAAY9yB,EACtB,GAAI,UAAYna,EAAG,OAAOA,EAAIoX,KAAKnlB,IAAI+kB,EAAEk2B,YAAal2B,EAAEm2B,cAAct2B,EAAIG,EAAEiL,uBAAyBjL,EAAEiL,wBAAwBzxB,OAAWwP,GAAK6W,GAAK7W,EAAI,IAAMA,EAAIoX,KAAK4U,MAAMnV,IAAKO,KAAK1W,IAAI,EAAGV,GAAKwY,EAAExB,EAAG,gBAAgB,IAAO,IAAMwB,EAAExB,EAAG,iBAAiB,IAAO,IAClQ,GAAI,WAAahX,EAAG,OAAOoX,KAAK1W,IAAI,EAAG0W,KAAKnlB,IAAI+kB,EAAEmF,aAAcnF,EAAEo2B,eAAiB50B,EAAExB,EAAG,eAAe,IAAO,IAAMwB,EAAExB,EAAG,kBAAkB,IAAO,IAGlJ,GAFAnZ,EAAE0uB,kBAAoBl2B,EAAE,IAAI,GAExB2gB,EAAInZ,EAAE0uB,iBAAiBvV,OAAG,GAAS,CACrC,IAAIU,EAAIV,EAAEgW,iBAAiBhtB,GAC3BqX,EAAER,EAAG,YAAc7W,KAAO0X,EAAIa,EAAEb,IAGlC,OAAOA,GAgNP21B,QAAS,SAAUxvC,EAAGmZ,EAAGH,GAIvB,OAHAxgB,EAAE,IAAI,OAAI,EAAQ,CAChB,qBAAsB,sBAEjB2gB,EAAE9K,QAAQrO,EAAGgZ,IAEtB3N,QAASkP,EACTk1B,QAASl+C,EACTm+C,aAAc3zB,EACdkvB,WAAY,SAAUjrC,GACpB,MAAO,mBAAsBA,GAE/B2vC,SAAUlvC,EACVyxB,SAAU7V,EACVuzB,SAAUxtC,EACV+iB,KAAM,SAAUnlB,GAId,OAHAxH,EAAE,IAAI,OAAI,EAAQ,CAChB,kBAAmB,oBAEd2d,OAAOgP,KAAKnlB,IAErB6vC,MAAO,WACL,IAAI7vC,EACAmZ,EAAI9B,UACJ2B,EAAI,GACJa,EAAI,SAAU7Z,EAAGmZ,GAKnB,MAJA,iBAAoBnZ,IAAMA,EAAI,IAC9B+Z,EAAEZ,GAAG,SAAUH,EAAGkD,GAChB,cAAgBA,GAAK,gBAAkBA,KAAOG,EAAErD,GAAG,IAAOznB,EAAEynB,IAAM+C,EAAE/C,GAAKhZ,EAAEkc,GAAK/C,EAAE+C,GAAKlc,EAAEkc,GAAKrC,EAAE7Z,EAAEkc,IAAM,GAAIlD,OAEvGhZ,IAGT,IAAOmZ,EAAE,KAAOH,EAAIG,EAAE,GAAIA,EAAIlb,MAAM2X,UAAU1J,MAAMC,KAAKgN,EAAG,IAC5D,IAAIG,EAAIH,EAAE5oB,OAEV,IAAKyP,EAAI,EAAGA,EAAIsZ,EAAGtZ,IAAKgZ,EAAIa,EAAEb,EAAGG,EAAEnZ,IAEnC,OAAOgZ,GAET82B,sBAAuB,SAAU9vC,EAAGmZ,EAAGH,EAAGa,EAAGP,GAC3C,IAAInX,EAAInC,EAEJ2a,EAAI3a,GADRgZ,EAAIQ,EAAER,EAAG1Y,EAAEN,KAMX,IAJAmZ,IAAMA,EAAIG,EAAI,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAM,CAAC,EAAG,EAAG,IAAK,EAAG,KAAK,IAAOO,IAAM,IAAMb,EAAIG,EAAIA,EAAExhB,QAAO,SAAUqI,GACzH,OAAO,GAAMA,EAAI,KACd,IAAMgZ,IAAMG,EAAI,CAAC,EAAIH,MAErBa,EAAI,EAAGA,EAAIV,EAAE5oB,SAAY4R,EAAIgX,EAAEU,KAAIP,GAAKnX,EAAI6W,GAAKhZ,IAAMsZ,GAAKqB,IAAMxB,EAAEU,IAAMV,EAAEU,EAAI,IAAMV,EAAEU,KAAO,IAAIA,KAExG,OAAWZ,EAAE9W,EAAI6W,GAAIO,KAAKw2B,MAAMx2B,KAAKjf,IAAI,MAAQif,KAAK6zB,QAExD4C,WAAYj2B,EACZtqB,OAAQ,SAAU0pB,GAChB,IAAIH,EAAIa,EAAErf,gBAOV,MAAO,CACLvK,KAPFkpB,EAAIA,EAAE41B,eAAiB51B,EAAEzF,WAAayF,EAAEiL,wBAA0B,CAChEn0B,IAAK,EACLG,KAAM,EACNuC,MAAO,EACP3D,OAAQ,IAGDiB,KAAO+P,EAAE2d,aAAe3E,EAAE7b,YAAc6b,EAAEi3B,WAAa,GAC9D7/C,KAAM+oB,EAAE/oB,MAAQ4P,EAAEkwC,aAAel3B,EAAE+E,aAAe/E,EAAEm3B,YAAc,GAClEx9C,MAAOwmB,EAAExmB,MACT3D,OAAQmqB,EAAEnqB,SAGdohD,IAAK,SAAUpwC,EAAGmZ,EAAGH,GACnB,OAAO/a,OAAOkb,GAAK,GAAK,EAAI9C,OAAOrW,GAAGzL,QAAQ,IAAK,IAAIhE,QAAQonB,KAAKqB,GAAK,KAAOhZ,GAElFqwC,KAAM72B,EACN82B,KAAM51B,EACN61B,eAAgB,SAAUvwC,EAAGmZ,EAAGH,GAC9B,MAAO,KAAKlL,KAAK9N,GAAKmZ,EAAIyV,WAAW5uB,GAAK,KAAOgZ,GAAK,GAAK4V,WAAW5uB,IAExEwwC,YAAa/1B,EACbg2B,MAAO,SAAUzwC,GACf,OAAOua,EAAEva,GAAKA,EAAI,CAACA,IAErB0wC,WAAY,SAAU1wC,EAAGmZ,GACvB,IACIU,EACA1X,EAFA6W,EAAIhZ,EAAEzP,OAIV,IAAK4R,EAAI,EAAGA,EAAI6W,EAAG7W,IAAKnC,EAAEmC,GAAGwuC,MAAQxuC,EAOrC,IALAnC,EAAEmU,MAAK,SAAUnU,EAAGgZ,GAElB,OAAO,KADPa,EAAIV,EAAEnZ,EAAGgZ,IACQhZ,EAAE2wC,MAAQ33B,EAAE23B,MAAQ92B,KAGlC1X,EAAI,EAAGA,EAAI6W,EAAG7W,WAAYnC,EAAEmC,GAAGwuC,OAEtCC,YAAa,SAAU5wC,EAAGmZ,EAAGH,GAC3B,OAAI,EAAIG,EAAUngB,WAAWgH,EAAGmZ,EAAGH,IACnChZ,EAAEmM,KAAK,EAAG6M,IACF,IAEV63B,UAAW,CACTC,YAAa,EACb7M,OAAQ,IACR8M,OAAQ,IACRC,KAAM,KACNC,IAAK,MACLC,KAAM,OACNC,MAAO,QACPC,KAAM,UAERC,UAAWp2B,EACXq2B,aAAc,SAAUtxC,GACtB,OAAOmZ,EAAIK,EAAExZ,EAAGmZ,IAElB4xB,KAAM,SAAU/qC,EAAGmZ,EAAGH,GACpB,IAAIa,EAAI7Z,EAAEmZ,GAEVnZ,EAAEmZ,GAAK,WACL,IAAInZ,EAAI/B,MAAM2X,UAAU1J,MAAMC,KAAKkL,WAC/B8B,EAAI9B,UACJlV,EAAI3S,KASR,OAPA2S,EAAEovC,QAAU,WACV13B,EAAE3I,MAAM/O,EAAGkV,UAAU9mB,OAAS8mB,UAAY8B,IAG5CnZ,EAAEytC,QAAQ5zB,GACV7Z,EAAIgZ,EAAE9H,MAAM1hB,KAAMwQ,GAClBmC,EAAEovC,QAAU,KACLvxC,KAKNgZ,KAEToD,EAAE9E,EAAG,8BAA+B,IAAI,WACtC,MAAO,CACLk6B,iBAAiB,EACjBC,QAAS,CACP9iD,SAAS,EACTiG,KAAM,KAER88C,YAAY,EACZC,aAAc,EACdC,WAAY,GACZC,mBAAmB,EACnBC,kBAAmB,OACnBC,oBAAoB,EACpBC,QAAS,CAAC,GAAI,GAAI,GAAI,IACtBC,gBAAiB,CACfC,MAAO,CACLC,OAAQ,GAEVnhC,SAAU,CACRtd,MAAO,QACPrC,GAAI,GACJE,EAAG,KAGP6gD,mBAAmB,EACnBz/C,MAAO,KACP3D,OAAQ,KACRoE,YAAa,UACb/D,gBAAiB,UACjBgjD,gBAAiB,cAGrBj2B,EAAE9E,EAAG,sBAAuB,CAACA,EAAE,mBAAoBA,EAAE,uBAAuB,SAAUrY,EAAGzG,GACvF,IAAI8e,EAAI9e,EAAEm3C,SACNj1B,EAAIliB,EAAEq3C,MACNztC,EAAI5J,EAAE83C,KA8FV,OA5FA93C,EAAI,WACF,SAASA,EAAE8e,GACT9nB,KAAK8iD,KAAO,CAACp5B,IAAKA,IAAKA,IAAKA,KAC5B1pB,KAAK+R,MAAQ+V,EACb,IAAIyE,EAAI9c,EAAEszC,MACV,OAAIx2B,GAAKA,IAAMvjB,EAAU,IAAIujB,EAAEzE,GACzB9nB,gBAAgBgJ,OACtBhJ,KAAKrB,KAAKmpB,GADuB,IAAI9e,EAAE8e,GAkFzC,OA9EA9e,EAAEyI,MAAQ,SAAUhC,GAClB,OAAOA,EAAI,IAAIzG,EAAEyG,GAAKzG,EAAEg6C,MAG1Bh6C,EAAEod,UAAUznB,KAAO,SAAU8Q,GAC3B,IAAI8c,EACJ,GAAI,iBAAoB9c,QAAK,IAAuBA,EAAEwzC,MAAOjjD,KAAKijD,MAAQxzC,EAAEwzC,MAAMh0B,KAAI,SAAUrF,GAC9F,OAAO,IAAI5gB,EAAE4gB,EAAE,YACT,GAAI,iBAAoBna,EAAG,CAGjC,GAFAzP,KAAK+R,MAAQtC,EAAIzG,EAAEgpC,MAAMviC,EAAEoqB,gBAAkBpqB,EAEzC,MAAQA,EAAE2qB,OAAO,GAAI,CACvB,IAAIr4B,EAAI0N,EAAE1O,OACNkQ,EAAIpO,SAAS4M,EAAE2d,OAAO,GAAI,IAC9B,IAAMrrB,EAAIwqB,EAAI,EAAM,SAAJtb,IAAiB,IAAS,MAAJA,IAAc,EAAO,IAAJA,EAAS,GAAK,IAAMlP,IAAMwqB,EAAI,EAAM,KAAJtb,IAAa,GAAS,KAAJA,IAAa,GAAQ,IAAJA,IAAY,EAAQ,IAAJA,GAAc,GAAJA,IAAW,EAAQ,GAAJA,EAAQ,IAG7K,IAAKsb,EAAG,IAAKtb,EAAIjI,EAAEk6C,QAAQniD,OAAQkQ,MAAQsb,GAAI,CAC7C,IAAInC,EAAIphB,EAAEk6C,QAAQjyC,IACjBlP,EAAIqoB,EAAE+4B,MAAM/f,KAAK3zB,MAAQ8c,EAAInC,EAAE3Y,MAAM1P,KAG1CwqB,IAAMvsB,KAAK8iD,KAAOv2B,IAGpBvjB,EAAEod,UAAUzc,IAAM,SAAUX,GAC1B,IAAIujB,EAAIvsB,KAAK+R,MACThQ,EAAI/B,KAAK8iD,KAEb,GAAI,iBAAoBv2B,QAAK,IAAuBvsB,KAAKijD,MAAO,CAC9D,IAAIhyC,EAAIia,EAAEqB,GAKV,OAJAtb,EAAEgyC,MAAQ,GAAGvmC,MAAMC,KAAK1L,EAAEgyC,OAC1BjjD,KAAKijD,MAAMj9C,SAAQ,SAAUokB,EAAGR,GAC9B3Y,EAAEgyC,MAAMr5B,GAAK,CAAC3Y,EAAEgyC,MAAMr5B,GAAG,GAAIQ,EAAEzgB,IAAIX,OAE9BiI,EAGT,OAAOlP,GAAK+lB,EAAE/lB,EAAE,IAAM,QAAUiH,IAAMA,GAAK,IAAMjH,EAAE,GAAK,OAASA,EAAE,GAAK,IAAMA,EAAE,GAAK,IAAMA,EAAE,GAAK,IAAM,MAAQiH,EAAI,GAAG+iB,OAAOhqB,EAAE,IAAM,QAAUA,EAAEomB,KAAK,KAAO,IAAMoE,GAGtKvjB,EAAEod,UAAUg9B,SAAW,SAAUp6C,GAC/B,IAAIujB,EAAIvsB,KAAK8iD,KACb,GAAI9iD,KAAKijD,MAAOjjD,KAAKijD,MAAMj9C,SAAQ,SAAUiL,GAC3CA,EAAEmyC,SAASp6C,WACL,GAAI8e,EAAE9e,IAAM,IAAMA,EAAG,IAAK,IAAIjH,EAAI,EAAG,EAAIA,EAAGA,IAAKwqB,EAAExqB,IAAM6Q,EAAE,IAAM5J,GAAI,EAAIujB,EAAExqB,KAAOwqB,EAAExqB,GAAK,GAAI,IAAMwqB,EAAExqB,KAAOwqB,EAAExqB,GAAK,KAC3H,OAAO/B,MAGTgJ,EAAEod,UAAUi9B,WAAa,SAAUr6C,GAEjC,OADAhJ,KAAK8iD,KAAK,GAAK95C,EACRhJ,MAGTgJ,EAAEod,UAAUk9B,QAAU,SAAUt6C,EAAGujB,GACjC,IAAIxqB,EAAI/B,KAAK8iD,KACT7xC,EAAIjI,EAAE85C,KACV,OAAKh7B,EAAE/lB,EAAE,KAAQ+lB,EAAE7W,EAAE,MACrBjI,EAAI,IAAMiI,EAAE,IAAM,IAAMlP,EAAE,IACd,QAAU,QAAUgoB,KAAKw2B,MAAMtvC,EAAE,IAAMlP,EAAE,GAAKkP,EAAE,KAAO,EAAIsb,IAAM,IAAMxC,KAAKw2B,MAAMtvC,EAAE,IAAMlP,EAAE,GAAKkP,EAAE,KAAO,EAAIsb,IAAM,IAAMxC,KAAKw2B,MAAMtvC,EAAE,IAAMlP,EAAE,GAAKkP,EAAE,KAAO,EAAIsb,KAAOvjB,EAAI,KAAOiI,EAAE,IAAMlP,EAAE,GAAKkP,EAAE,KAAO,EAAIsb,IAAM,IAAM,IAFtMvjB,EAAE+I,OAAS,QAK9C/I,EAAEgpC,MAAQ,CACRuR,MAAO,UACPC,MAAO,WAETx6C,EAAEk6C,QAAU,CAAC,CACXC,MAAO,+FACP1xC,MAAO,SAAUzI,GACf,MAAO,CAAC4J,EAAE5J,EAAE,IAAK4J,EAAE5J,EAAE,IAAK4J,EAAE5J,EAAE,IAAKo2B,WAAWp2B,EAAE,GAAI,OAErD,CACDm6C,MAAO,kEACP1xC,MAAO,SAAUzI,GACf,MAAO,CAAC4J,EAAE5J,EAAE,IAAK4J,EAAE5J,EAAE,IAAK4J,EAAE5J,EAAE,IAAK,MAGvCA,EAAEg6C,KAAO,IAAIh6C,EAAE,IACRA,EAxFL,GA4FGA,KAET4jB,EAAE9E,EAAG,yBAA0B,IAAI,WACjC,MAAO,CACL27B,OAAQ,kFAAkFxlC,MAAM,SAGpG2O,EAAE9E,EAAG,eAAgB,CAACA,EAAE,mBAAoBA,EAAE,uBAAuB,SAAUrY,EAAGzG,GAChF,IAAI8e,EAAIrY,EAAEusC,IACN9wB,EAAIliB,EAAEo2C,QACNxsC,EAAI5J,EAAEoH,MACN2a,EAAI/hB,EAAEO,OACNsjB,EAAI7jB,EAAE05B,SACNnW,EAAIvjB,EAAEq3C,MACNt+C,EAAIiH,EAAEw3C,WACNvvC,EAAIjI,EAAE43C,IACNx2B,EAAIphB,EAAE63C,KACNj3B,EAAI5gB,EAAEi4C,MACNxwC,EAAIzH,EAAEq4C,UACNr3B,EAAIva,EAAE8sC,UAAYz0B,EAAE47B,MAAQ57B,EAAE47B,KAAKC,eAAev9B,UAAUw9B,YAC5Dx4B,EAAI3b,EAAE8sC,UAAYz0B,EAAE47B,OAAS57B,EAAE47B,KAAKC,eAAev9B,UAAUw9B,YAoNjE,OAlNA56C,EAAI,WACF,SAAS8H,EAAE2Y,GACTzpB,KAAKsJ,QAAU,GACftJ,KAAK6jD,iBAAmB7jD,KAAK8jD,QAAS,EACtC9jD,KAAKiqB,KAAOnC,EAAEmC,KACdjqB,KAAK+jD,kBAAoB/jD,KAAKgkD,yBAC9BhkD,KAAK0J,OAAO+f,GAwMd,OArMA3Y,EAAEsV,UAAUzc,IAAM,SAAU8f,EAAGhZ,GAC7B,GAAIzQ,KAAK6jD,kBAAoB7jD,KAAKikD,eAAgB,CAChD,IAAIr6B,EAAInZ,EAAEyzC,UACNpzC,EAAI8Y,EAAI5pB,KAAK+jD,kBAAkBtzC,GAInC,OAHAA,EAAE0zC,QAAQrzC,GACV2Y,EAAIhZ,EAAE,SAAWgZ,KACjBhZ,EAAE0zC,QAAQv6B,GACHH,EAGT,OAAOzpB,KAAK8jD,OAASrzC,EAAE,SAAWgZ,KAAOhZ,EAAE,MAAQgZ,MAGrD3Y,EAAEsV,UAAUgL,IAAM,SAAU3H,EAAGhZ,EAAGmZ,GAChC,GAAI5pB,KAAK6jD,kBAAoB7jD,KAAKikD,eAAgB,CAChD,GAAI,iBAAmBx6B,GAAK,YAAcA,GAAK,YAAcA,GAAK,GAAMzpB,KAAK+jD,kBAAkBtzC,GAAK,KAAM,OAAOA,EAAE,SAAWgZ,GAAGG,GACjI,IAAI9Y,EAAI9Q,KAAK+jD,kBAAkBtzC,GAM/B,OALAK,EAAIL,EAAEyzC,UAAYpzC,EAClBL,EAAE0zC,QAAQrzC,GACVL,EAAE,SAAWgZ,GAAGG,GAChBH,EAAIzpB,KAAK+jD,kBAAkBtzC,GAC3BK,EAAIL,EAAEyzC,UAAYz6B,EACXhZ,EAAE0zC,QAAQrzC,GAGnB,OAAO9Q,KAAK8jD,QAAU95B,GAAK,aAAeP,EAAIhZ,EAAE,SAAWgZ,GAAGG,GAAKnZ,EAAE,MAAQgZ,GAAGG,IAGlF9Y,EAAEsV,UAAU1c,OAAS,SAAU+G,GAC7B,IAAIgZ,EAAIW,EAAE3Z,GAAKA,EAAEqzC,QAAQ,GACzB9jD,KAAKsJ,QAAUmH,EAAI8b,GAAE,EAAIvsB,KAAKsJ,SAAW,GAAImH,GAC7CzQ,KAAKiqB,KAAOxZ,EAAEwZ,MAAQnC,EAAEmC,MAAQA,KAChCjqB,KAAKikD,gBAAkBjkD,KAAK8jD,OAASr6B,IAAMhZ,EAAEwzC,qBAAkB,EAC/DjkD,KAAK+jD,kBAAoB/jD,KAAKgkD,yBAC9BhkD,KAAK6jD,iBAAmBp6B,MAAQhZ,EAAEszC,oBAAsBtzC,EAAE2zC,WAG5DtzC,EAAEsV,UAAUi+B,SAAW,SAAU5zC,EAAGmZ,EAAG9Y,EAAGkZ,EAAGnoB,EAAGioB,GAC9C,GAAI9pB,KAAK8jD,OAAQ,CACf,IAAIz5B,EAAIrqB,KAAKiqB,KAAKq6B,IAAI5iC,MAAM,EAAGmG,WAC3BrX,EAAIxQ,KAAK+jD,kBAAkB15B,GAC/BA,GAAK7Z,EACL,IAAIgZ,EAAIxpB,KAAK+jD,kBAAkB15B,GAC/B7Z,IAAMgZ,EAAIa,GAAKb,EAAIhZ,EAAIA,EAAI,OAASxQ,KAAK+jD,kBAAkB15B,EAAI,OAASe,IAAMf,GAAK,WAC9EA,EAAI,IAAIrqB,KAAKiqB,KAAKxZ,EAAGmZ,EAAGQ,EAAEtZ,EAAG,GAAIsZ,EAAEJ,EAAG,GAAII,EAAEvoB,EAAG,GAAIuoB,EAAEN,EAAG,IAAIo6B,UAEnE,OAAO75B,GAGTvZ,EAAEsV,UAAU49B,uBAAyB,WACnC,IAAIvzC,EAAIzQ,KACJ4pB,EAAI5pB,KAAKsJ,QACTwH,EAAI8Y,EAAEm6B,kBACN/5B,EAAIJ,EAAE26B,QAAUz8B,EAAEy8B,OACtB,IAAKvkD,KAAK8jD,OAAQ,OAAO,SAAUrzC,GACjC,OAAO,IAAM,IAAIwZ,KAAKxZ,EAAEyN,YAAY6lC,qBAGtC,GAAIn6B,EAAEw6B,SAAU,CACd,GAAIp6B,EAAG,OAAO,SAAUvZ,GACtB,OAAO,KAAOuZ,EAAEw6B,GAAG/zC,EAAGmZ,EAAEw6B,UAAUK,aAEpC7xC,EAAE,IAGJ,OAAO5S,KAAK8jD,QAAUhzC,EAAI,SAAUL,GAClC,OAAO,IAAMK,EAAEL,EAAEqa,YACf,WACF,OAAO,KAAOra,EAAEwzC,gBAAkB,KAItCnzC,EAAEsV,UAAUs+B,WAAa,SAAUj0C,EAAGmZ,EAAG9Y,GACvC,IAAKoa,EAAEtB,IAAM9W,MAAM8W,GAAI,OAAOna,EAAEk1C,eAAeC,MAAQn1C,EAAEk1C,eAAeC,KAAKC,aAAe,GAC5Fp0C,EAAI2Z,EAAE3Z,EAAG,qBACT,IAAIgZ,EAAIzpB,KACJgqB,EAAI,IAAIhqB,KAAKiqB,KAAKL,GAClBE,EAAI9pB,KAAK2J,IAAI,QAASqgB,GACtBK,EAAIrqB,KAAK2J,IAAI,MAAOqgB,GACpBxZ,EAAIxQ,KAAK2J,IAAI,OAAQqgB,GACrBR,EAAIxpB,KAAK2J,IAAI,QAASqgB,GACtBL,EAAI3pB,KAAK2J,IAAI,WAAYqgB,GACzByB,EAAIhc,EAAEk1C,eAAeC,KACrBz5B,EAAIM,GAAKA,EAAEq5B,SACXnyC,EAAI8Y,GAAKA,EAAEs5B,cA0Bf,OAzBA/6B,EAAIe,EAAE,CACJva,EAAGmC,EAAIA,EAAE0X,GAAKc,EAAEd,GAAG+C,OAAO,EAAG,GAC7BjC,EAAGA,EAAEd,GACLT,EAAG3Y,EAAET,GACLxH,EAAGiI,EAAET,EAAG,EAAG,KACX+Z,EAAGF,EACH5Z,EAAGgb,EAAEu5B,YAAYx7B,GACjB+C,EAAGd,EAAEw5B,OAAOz7B,GACZM,EAAG7Y,EAAEuY,EAAI,GACTha,EAAGga,EAAI,EACPznB,EAAG4nB,EAAEzL,WAAWkP,OAAO,EAAG,GAC1B5mB,EAAGmjB,EACH+B,EAAGza,EAAE6Y,GACLO,EAAGP,EACH4C,EAAGzb,EAAE6Y,EAAI,IAAM,IACfhC,EAAGgC,EAAI,IAAM,GACbyB,EAAGta,EAAEjR,KAAK2J,IAAI,UAAWqgB,IACzBA,EAAG,GAAKF,EAAI,KAAO,KACnB8B,EAAG,GAAK9B,EAAI,KAAO,KACnB0B,EAAGva,EAAE+Y,EAAEk7B,cACP75B,EAAGpa,EAAE8Y,KAAK4U,MAAM/U,EAAI,KAAM,IACzBna,EAAEwtC,aACLl7C,EAAEioB,GAAG,SAAUxZ,EAAGmZ,GAChB,MAAQ,IAAMlZ,EAAEoO,QAAQ,IAAM8K,IAAKlZ,EAAIA,EAAE1L,QAAQ,IAAM4kB,EAAG,mBAAsBnZ,EAAIA,EAAEmM,KAAK8M,EAAGG,GAAKpZ,MAE9FM,EAAIL,EAAE2c,OAAO,EAAG,GAAGuH,cAAgBlkB,EAAE2c,OAAO,GAAK3c,GAG1DK,EAAEsV,UAAU++B,iBAAmB,SAAU10C,GACvC,OAAOoc,EAAEpc,GAAG,GAAMA,EAAe,CAC/B20C,MADqB30C,EAAImZ,EAAEnZ,IACnB,GACRilB,KAAMjlB,EAAE,GACR40C,GAAI50C,EAAE,KAIVK,EAAEsV,UAAUk/B,aAAe,SAAU17B,EAAG9Y,EAAGkZ,EAAGoB,GAC5C,IAMIK,EANAhC,EAAIzpB,KACJ8pB,EAAI,GACJO,EAAI,GACJ7Z,EAAI,IAAIiZ,EAAEQ,KAAKnZ,GACf0Y,EAAII,EAAE27B,UACN57B,EAAIC,EAAE47B,OAAS,EAInB,GAFAp6B,EAAIhB,EAAEgB,EAAG,GAELF,EAAEpa,GAAI,CAOR,GANA2Y,EAAE2H,IAAI,eAAgB5gB,EAAGgZ,GAAK/Y,EAAEgkC,OAAS,EAAI9qB,EAAII,KAAK4U,MAAMlV,EAAE9f,IAAI,eAAgB6G,GAAKmZ,IACvFH,GAAK/Y,EAAEgkC,QAAUhrB,EAAE2H,IAAI,UAAW5gB,EAAGgZ,GAAK/Y,EAAE8wC,OAAS,EAAI53B,EAAII,KAAK4U,MAAMlV,EAAE9f,IAAI,UAAW6G,GAAKmZ,IAC9FH,GAAK/Y,EAAE8wC,QAAU93B,EAAE2H,IAAI,UAAW5gB,EAAGgZ,GAAK/Y,EAAE+wC,KAAO,EAAI73B,EAAII,KAAK4U,MAAMlV,EAAE9f,IAAI,UAAW6G,GAAKmZ,IAC5FH,GAAK/Y,EAAE+wC,MAAQ/3B,EAAE2H,IAAI,QAAS5gB,EAAGgZ,GAAK/Y,EAAEgxC,IAAM,EAAI93B,EAAII,KAAK4U,MAAMlV,EAAE9f,IAAI,QAAS6G,GAAKmZ,IACrFH,GAAK/Y,EAAEgxC,KAAOh4B,EAAE2H,IAAI,OAAQ5gB,EAAGgZ,GAAK/Y,EAAEkxC,MAAQ,EAAI53B,KAAK1W,IAAI,EAAGsW,EAAII,KAAK4U,MAAMlV,EAAE9f,IAAI,OAAQ6G,GAAKmZ,KAE5FH,GAAK/Y,EAAEkxC,MAAO,CAChBl4B,EAAE2H,IAAI,QAAS5gB,EAAGgZ,GAAK/Y,EAAEmxC,KAAO,EAAIj4B,EAAII,KAAK4U,MAAMlV,EAAE9f,IAAI,QAAS6G,GAAKmZ,IACvE,IAAIwB,EAAI1B,EAAE9f,IAAI,WAAY6G,GAG5BgZ,GAAK/Y,EAAEmxC,MAAQn4B,EAAE2H,IAAI,WAAY5gB,EAAG2a,EAAIA,EAAIxB,GAC5CH,IAAM/Y,EAAEixC,OAASv2B,EAAI1B,EAAE9f,IAAI,MAAO6G,GAAIiZ,EAAE2H,IAAI,OAAQ5gB,EAAGiZ,EAAE9f,IAAI,OAAQ6G,GAAK2a,EAAIC,GAAKD,EAAIC,GAAK,EAAI,KAChGD,EAAI1B,EAAE9f,IAAI,WAAY6G,GACtB4a,EAAI3B,EAAE9f,IAAI,QAAS6G,GACnB,IAAImC,EAAI8W,EAAE9f,IAAI,OAAQ6G,GAClBya,EAAIxB,EAAE9f,IAAI,QAAS6G,GAKvB,IAJAM,EAAIN,EAAE0zC,WACLz6B,EAAEo6B,kBAAoBp6B,EAAEq6B,SAAW54B,EAAElB,KAAOyB,EAAIzB,EAAIlZ,EAAI,EAAIL,EAAEkxC,OAASl4B,EAAEs6B,kBAAkBjzC,KAAO2Y,EAAEs6B,kBAAkB/5B,IACvHlZ,EAAIN,EAAE0zC,UAED1zC,EAAI,EAAGM,EAAIkZ,GAAIF,EAAExiB,KAAKwJ,GAAIA,EAAI0Y,IAAM/Y,EAAEmxC,KAAOn4B,EAAE46B,SAASl5B,EAAI3a,EAAImZ,EAAG,GAAKH,IAAM/Y,EAAEkxC,MAAQl4B,EAAE46B,SAASl5B,EAAGC,EAAI5a,EAAImZ,IAAM8B,GAAKjC,IAAM/Y,EAAEgxC,KAAOj4B,IAAM/Y,EAAEixC,KAAOj2B,GAAKjC,IAAM/Y,EAAE+wC,MAAQ,EAAI73B,EAAIF,EAAE46B,SAASl5B,EAAGC,EAAGzY,EAAGsY,EAAIza,EAAImZ,GAAK7Y,EAAI0Y,EAAIG,EAAIF,EAAE46B,SAASl5B,EAAGC,EAAGzY,EAAInC,EAAImZ,GAAKH,IAAM/Y,EAAEgxC,IAAM,EAAI,IAAKjxC,IAE3RsZ,EAAExiB,KAAKwJ,GACP0Y,GAAK/Y,EAAE+wC,MAAQ,IAAM13B,EAAE/oB,QAAU+oB,EAAE9jB,SAAQ,SAAUwK,GACnD,GAAMA,EAAI,MAAQ,cAAgBiZ,EAAEi7B,WAAW,WAAYl0C,KAAO6Z,EAAE7Z,GAAK,UAQ7E,OAJAsZ,EAAE5D,KAAO6E,EAAEnB,EAAG,CACZ67B,YAAap7B,EACbq7B,WAAYl8B,EAAIG,IAEXG,GAGThZ,EAAEsV,UAAUu/B,cAAgB,SAAUl8B,EAAGG,EAAG9Y,EAAGkZ,GAC7C,IAAIoB,EAAIprB,KAAK0kD,WAAW,oBAAqB96B,GACzCE,EAAI,CACNw3B,YAAa,GACb7M,OAAQ,GACR8M,OAAQ,EACRC,KAAM,EACNC,IAAK,GAEHp3B,EAAI,cAER,IAAK7Z,KAAKC,EAAG,CACX,GAAIgZ,IAAMhZ,EAAEixC,OAAS1hD,KAAK0kD,WAAW,KAAM96B,KAAO9Y,GAAK,iBAAmBsa,EAAEgC,OAAO,GAAI,CACrF,IAAI5c,EAAI,OACR,MAGF,GAAIC,EAAED,GAAKiZ,EAAG,CACZjZ,EAAI6Z,EACJ,MAGF,GAAIP,EAAEtZ,IAAM4a,EAAEgC,OAAOtD,EAAEtZ,MAAQ,qBAAqB4c,OAAOtD,EAAEtZ,IAAK,MAClE,SAAWA,IAAM6Z,EAAI7Z,GAGvB,OAAOxQ,KAAKmlD,iBAAiBn7B,EAAExZ,IAAI40C,MAG9Bt0C,EA9ML,GAkNG9H,KAET4jB,EAAE9E,EAAG,yBAA0B,CAACA,EAAE,+BAAgCA,EAAE,uBAAwBA,EAAE,mBAAoBA,EAAE,0BAA2BA,EAAE,gBAAiBA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,EAAGmY,GAClN/hB,EAAIA,EAAEyI,MACN,IAAIma,EAAIb,EAAEs1B,MACN9zB,EAAI,CACNk3B,OAAQv4B,EAAEu4B,OACVmC,QAAS,CAAC,SAAU,UAAW,SAAU,WAAY,iBACrDhB,KAAM,CACJiB,QAAS,aACTZ,OAAQ,wFAAwFhnC,MAAM,KACtG+mC,YAAa,kDAAkD/mC,MAAM,KACrE6mC,SAAU,2DAA2D7mC,MAAM,KAC3E6nC,aAAc,IACdC,eAAgB,SAAS9nC,MAAM,IAC/B+nC,UAAW,aACXC,eAAgB,uBAChBC,aAAc,KAEhBp8C,OAAQ,GACRq8C,KAAM,CACJl8B,UAAM,EACN85B,uBAAmB,EACnBK,cAAU,EACVH,eAAgB,EAChBH,QAAQ,GAEVzkD,MAAOoQ,EACPxO,MAAO,CACLC,KAAM,cACNgD,MAAO,SACPkf,OAAQ,GACRgjC,aAAc,IAEhBC,SAAU,CACRnlD,KAAM,GACNgD,MAAO,SACPkiD,aAAc,IAEhBE,QAAS,CACPljC,OAAQ,GACRliB,KAAM,GACNgD,MAAO,OACPqiD,cAAe,UAEjBvkD,YAAa,GACbyC,OAAQ,CACNnF,MAAO,CACLkiB,SAAU,WACV7d,MAAO,YAGXxC,OAAQ,CACNhC,SAAS,EACT+E,MAAO,SACPsiD,cAAc,EACdv7C,UAAW,wBACXw7C,OAAQ,aACRC,eAAgB,WACd,OAAO1mD,KAAKqF,MAEdzB,YAAa,UACbu+C,aAAc,EACdwE,WAAY,CACVC,YAAa,UACbC,cAAe,WAEjBC,UAAW,CACTnjD,MAAO,UACPzB,OAAQ,UACRmC,SAAU,OACVD,WAAY,OACZ2iD,aAAc,YAEhBC,eAAgB,CACdrjD,MAAO,WAETsjD,gBAAiB,CACftjD,MAAO,WAETpC,QAAQ,EACR2lD,kBAAmB,CACjB1lC,SAAU,WACVre,MAAO,OACP3D,OAAQ,QAEV2nD,cAAc,EACdC,cAAe,EACfb,cAAe,SACf1kD,EAAG,EACHE,EAAG,EACHd,MAAO,CACL3B,MAAO,CACL8E,WAAY,UAIlByhD,QAAS,CACPwB,WAAY,CACVjjD,WAAY,OACZod,SAAU,WACV/gB,IAAK,OAEPnB,MAAO,CACLkiB,SAAU,WACV3hB,gBAAiB,UACjB69C,QAAS,GACT4J,UAAW,WAGflmD,QAAS,CACPjC,SAAS,EACTooD,UAAWz/B,EAAEo0B,IACbiG,aAAc,EACdqF,qBAAsB,CACpBlG,YAAa,yBACb7M,OAAQ,sBACR8M,OAAQ,mBACRC,KAAM,mBACNC,IAAK,gBACLC,KAAM,0BACNC,MAAO,QACPC,KAAM,MAER6F,aAAc,GACdC,YAAa,UACbC,UAAW,IACXlpC,QAAS,EACTmpC,MAAO,UACPvmD,QAAQ,EACRwmD,KAAM//B,EAAE00B,cAAgB,GAAK,GAC7BsL,aAAc,wDACdC,YAAa,kFACbloD,gBAAiBmJ,EAAE,WAAWq6C,WAAW,KAAK15C,MAC9CrI,YAAa,EACbC,QAAQ,EACRymD,gBAAgB,EAChB1oD,MAAO,CACLqE,MAAO,UACPzB,OAAQ,UACRmC,SAAU,OACV4jD,WAAY,UAEdzmD,SAAS,GAEXtC,QAAS,CACPC,SAAS,EACTgQ,KAAM,qCACNqS,SAAU,CACRtd,MAAO,QACPrC,GAAI,GACJ0kD,cAAe,SACfxkD,GAAI,GAENzC,MAAO,CACL4C,OAAQ,UACRyB,MAAO,UACPU,SAAU,OAEZnD,KAAM,mBAGVqrB,EAAEltB,MAAM6iD,YAAa,EAErB,IAAIngD,EAAI,IAAI6Q,EAAEgZ,EAAEW,EAAEziB,OAAQyiB,EAAE45B,OAc5B,OAbA12C,EAAI,CACFk1C,eAAgBp4B,EAChB27B,YAAanmD,EACbomD,WAAY,WACV,OAAO57B,GAET67B,WAAY,SAAUn3C,GAGpB,OAFA2a,GAAE,EAAIW,EAAGtb,IACLA,EAAEk1C,MAAQl1C,EAAEnH,UAAQge,EAAEq+B,KAAOr+B,EAAEq+B,KAAKz8C,OAAOkiB,EAAEW,EAAEziB,OAAQyiB,EAAE45B,KAAMl1C,EAAEnH,OAAQmH,EAAEk1C,OAASr+B,EAAEq+B,KAAOpkD,GAC1FwqB,OAMbK,EAAE9E,EAAG,uBAAwB,CAACA,EAAE,uBAAwBA,EAAE,mBAAoBA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GACrH,IAAI8D,EAAInc,EAAEgC,MACNmB,EAAI5J,EAAEgzC,IACNjxB,EAAIjD,EAAEq4B,SACNtzB,EAAI/E,EAAE04B,WACV,OAAO,WACL,SAASx3C,EAAEA,EAAGiI,EAAGmZ,GACfpqB,KAAKw0C,IAAM9qB,IACX1pB,KAAKsJ,QAAU2H,EACfjR,KAAK0T,KAAO1K,EACZhJ,KAAKif,KAAOmL,EAkId,OA/HAphB,EAAEod,UAAUiiC,QAAU,WACpB,IAAIr/C,EAAIhJ,KAAKsoD,MACTr3C,EAAIjI,GAAKA,EAAE,GACfA,EAAIA,GAAKA,EAAE,GACX,IAAIohB,EAAIpqB,KAAKkqB,KAAO,EAChBN,EAAI,GACR,GAAI,IAAMQ,GAAKnZ,GAAKjI,EAClB,GAAIiI,EAAElQ,SAAWiI,EAAEjI,QAAU,EAAIqpB,EAAG,IAAK,IAAI3Z,EAAI,EAAGA,EAAIzH,EAAEjI,OAAQ0P,IAAK,CACrE,IAAK,IAAIuZ,EAAI/Y,EAAER,GAAI2a,EAAIpiB,EAAEyH,GAAIK,EAAI,GAAI2Y,EAAI,EAAGA,EAAI2B,EAAErqB,OAAQ0oB,IAAK,CAC7D,IAAIqD,EAAI9C,EAAEP,GACNc,EAAIa,EAAE3B,GACVsB,EAAE+B,IAAM/B,EAAER,KAAO,MAAQa,EAAE,IAAM,IAAM3B,GAAK,IAAMA,GAAK3Y,EAAE2Y,GAAKqD,EAAI1C,GAAKG,EAAIuC,GAAKhc,EAAE2Y,GAAKc,EAGzFX,EAAEtiB,KAAKwJ,QACF8Y,EAAI5gB,OACN4gB,EAAI5pB,KAAKuoD,KAAO,GACvBvoD,KAAK0T,KAAKxM,KAAK,IAAK0iB,OAAG,GAAQ,IAGjC5gB,EAAEod,UAAU1c,OAAS,WACnB,IAAIV,EAAIhJ,KAAK0T,KACTzC,EAAIjR,KAAKif,KACTmL,EAAIpqB,KAAKkqB,IACTN,EAAI5pB,KAAKsJ,QAAQsF,KACjB5O,KAAKiR,EAAI,UAAWjR,KAAKiR,EAAI,YAAiBjI,EAAE9B,KAAO8B,EAAEtG,SAAWsG,EAAE9B,KAAK+J,EAAGmZ,EAAG,MAAM,GAAMphB,EAAE1J,MAAM2R,GAAKmZ,EAAIpqB,KAAKwoD,KACvH5+B,GAAKA,EAAEjN,KAAK3T,EAAGohB,EAAGpqB,OAGpBgJ,EAAEod,UAAUmvB,IAAM,SAAUxzC,EAAGkP,EAAGmZ,GAChC,IAAIR,EAAI5pB,KACJyQ,EAAImZ,EAAEtgB,QACN0gB,EAAI,SAAUvZ,GAChB,OAAOuZ,EAAEwiB,SAAe5iB,EAAEhb,KAAK6B,IAE7B2a,EAAIxY,EAAE61C,uBAAyB,SAAUh4C,GAC3CjH,WAAWiH,EAAG,KAEZK,EAAI,WACN,IAAK,IAAIL,EAAI,EAAGA,EAAIzH,EAAE0/C,OAAO3nD,OAAQ0P,IAAKzH,EAAE0/C,OAAOj4C,MAAQzH,EAAE0/C,OAAO3jC,OAAOtU,IAAK,GAEhFzH,EAAE0/C,OAAO3nD,QAAUqqB,EAAEta,IAGvB/O,IAAMkP,GAAKjR,KAAK0T,KAAK,gBAAkB1T,KAAKif,OAASjf,KAAK2oD,WAAa,IAAI1+B,KAAQjqB,KAAK4oD,MAAQ7mD,EAAG/B,KAAK6oD,IAAM53C,EAAGjR,KAAKwoD,KAAOp+B,EAAGpqB,KAAKkqB,IAAMlqB,KAAK4oD,MAAO5oD,KAAKw0C,IAAM,EAAGxqB,EAAEtW,KAAO1T,KAAK0T,KAAMsW,EAAE/K,KAAOjf,KAAKif,KAAM+K,KAAO,IAAMhhB,EAAE0/C,OAAOphD,KAAK0iB,IAAMoB,EAAEta,YAAcL,EAAEq4C,QAAQ9oD,KAAKif,MAAOxO,EAAEgkB,UAAY,IAAM9N,OAAOgP,KAAKllB,EAAEq4C,SAAS/nD,QAAU0P,EAAEgkB,SAAS9X,KAAK3c,KAAK0T,QAGhW1K,EAAEod,UAAUxX,KAAO,SAAU5F,GAC3B,IAAIiI,GAAK,IAAIgZ,KACTG,EAAIpqB,KAAKsJ,QACTsgB,EAAI5pB,KAAK0T,KACTjD,EAAI2Z,EAAEqK,SACNzK,EAAII,EAAE/e,SACN+f,EAAIhB,EAAE0+B,QACV,GAAIl/B,EAAE1iB,OAAS0iB,EAAElnB,QAASsG,GAAI,OAAQ,GAAIA,GAAKiI,GAAK+Y,EAAIhqB,KAAK2oD,UAAW,CACtE3oD,KAAKkqB,IAAMlqB,KAAK6oD,IAChB7oD,KAAKw0C,IAAM,EACXx0C,KAAK0J,SACL,IAAIoH,EAAIsa,EAAEprB,KAAKif,OAAQ,EACvB4N,EAAEzB,GAAG,SAAU3a,IACb,IAAOA,IAAMK,GAAI,MAEnBA,GAAKL,GAAKA,EAAEkM,KAAKiN,GACjB5gB,GAAI,OACChJ,KAAKw0C,IAAMpqB,EAAEkF,QAAQre,EAAIjR,KAAK2oD,WAAa3+B,GAAIhqB,KAAKkqB,IAAMlqB,KAAK4oD,OAAS5oD,KAAK6oD,IAAM7oD,KAAK4oD,OAAS5oD,KAAKw0C,IAAKx0C,KAAK0J,SAAUV,GAAI,EACrI,OAAOA,GAGTA,EAAEod,UAAU2iC,SAAW,SAAU//C,EAAGiI,EAAGmZ,GACrC,SAASR,EAAEnZ,EAAGqZ,GACZ,KAAOrZ,EAAE1P,OAASkqB,GAAI,CACpB,IAAIZ,EAAI5Z,EAAE,GACND,EAAIsZ,EAAEmB,EAAIxa,EAAE1P,QAChByP,GAAK,MAAQ6Z,EAAE,KAAO5Z,EAAE,GAAK,MAAQD,EAAE,GAAK,CAAC,IAAK6Z,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAM,CAAC,IAAKA,EAAE,GAAIA,EAAE,KACtG5Z,EAAEwtC,QAAQ5zB,GACVvZ,IAAMuZ,EAAI5Z,EAAEu4C,MAAOv4C,EAAEnJ,KAAKmJ,EAAEA,EAAE1P,OAAS,GAAIspB,KAI/C,SAAS5Z,EAAEA,EAAGqZ,GACZ,KAAOrZ,EAAE1P,OAASkqB,GAAI,GAAiD,OAA7CnB,EAAIrZ,EAAEsZ,KAAK4U,MAAMluB,EAAE1P,OAAS0oB,GAAK,GAAG/M,SAAmB,KAAOoN,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,IAAKhZ,EAAG,CACpH,IAAIuZ,EAAI5Z,EAAEsZ,KAAK4U,MAAMluB,EAAE1P,OAAS0oB,IAAI/M,QACpCjM,EAAEsU,OAAOtU,EAAE1P,OAAS,EAAG,EAAG+oB,EAAGO,QACxB5Z,EAAEnJ,KAAKwiB,GAGhB,IAAIE,EAAIhhB,EAAEnC,OACNukB,EAAIpiB,EAAEjC,KACVqjB,EAAIA,EAAE1N,QACN,IAAI5L,EAAI9H,EAAEigD,OACNx/B,EAAI3Y,EAAI,EAAI,EAEhB,KADAG,EAAIA,GAAKA,EAAEyL,SACH,MAAO,CAAC0N,EAAGA,GAEnB,GAAIJ,GAAKoB,GAAKA,EAAErqB,OAAQ,CACtB,IAAKiI,EAAI,EAAGA,EAAIghB,EAAEjpB,OAAQiI,IAAK,IAAIghB,EAAEhhB,KAAOoiB,EAAE,GAAI,CAChD,IAAI0B,EAAI9jB,EACR,MACK,GAAIghB,EAAE,KAAOoB,EAAEA,EAAErqB,OAASipB,EAAEjpB,OAASiI,GAAI,CAC9C8jB,EAAI9jB,EACJ,IAAIuhB,GAAI,EACR,MACK,GAAIP,EAAEA,EAAEjpB,OAAS,KAAOqqB,EAAEA,EAAErqB,OAASipB,EAAEjpB,OAASiI,GAAI,CACzD8jB,EAAI9C,EAAEjpB,OAASiI,EACf,YAGF,IAAuB8jB,IAAM7b,EAAI,IAGnC,GAAIA,EAAElQ,QAAUgqB,EAAE+B,GAAI,CACpB,IAAI7B,EAAIb,EAAErpB,OAAS+rB,EAAIrD,EACvBc,GAAKX,EAAE3Y,EAAGmZ,GAAI3Z,EAAE2Z,EAAGnZ,KAAO2Y,EAAEQ,EAAGnZ,GAAIR,EAAEQ,EAAGmZ,IAG1C,MAAO,CAACnZ,EAAGmZ,IAGbphB,EAAEod,UAAU8iC,WAAa,WACvBlgD,EAAEod,UAAU+iC,aAAaznC,MAAM1hB,KAAM6nB,YAGvC7e,EAAEod,UAAU+iC,aAAe,WACzBnpD,KAAK0T,KAAKxM,KAAKlH,KAAKif,KAAM2M,EAAE5rB,KAAK4oD,OAAOtF,QAAQ13B,EAAE5rB,KAAK6oD,KAAM7oD,KAAKw0C,UAAM,GAAQ,IAGlFxrC,EAAE0/C,OAAS,GACJ1/C,EAvIF,MA0IT4jB,EAAE9E,EAAG,uCAAwC,CAACA,EAAE,wBAAyBA,EAAE,uBAAuB,SAAUrY,EAAGzG,GAC7G,SAAS8e,EAAErX,GACT,OAAO1O,EAAE0O,GAAKQ,EAAE,CACd5F,SAAU,IACVspC,MAAO,GACNlkC,GAAK,CACNpF,SAAUoF,EAAI,IAAM,EACpBkkC,MAAO,GAIX,SAASzpB,EAAEza,EAAGmZ,GACZ,IAAK,IAAII,EAAIva,EAAEi5C,OAAO3nD,OAAQipB,KAAMva,EAAEi5C,OAAO1+B,GAAGtW,OAASjD,GAAKmZ,GAAKA,IAAMna,EAAEi5C,OAAO1+B,GAAG/K,OAASxP,EAAEi5C,OAAO1+B,GAAGwiB,SAAU,GAGtH,IAAI55B,EAAI5J,EAAEo2C,QACNr0B,EAAI/hB,EAAE42C,SACN/yB,EAAI7jB,EAAE6S,QACN0Q,EAAIvjB,EAAEm3C,SACNp+C,EAAIiH,EAAE05B,SACNzxB,EAAIjI,EAAEq3C,MACNj2B,EAAIphB,EAAEw3C,WACN52B,EAAI5gB,EAAE63C,KACV,MAAO,CACLnzC,QAAS,SAAU+C,EAAGmZ,EAAGwB,GACvB,IAAIta,EAEAkZ,EACAO,EAFAd,EAAI,GAIR,IAAK1nB,EAAEqpB,GAAI,CACT,IAAIH,EAAIpD,UACRuD,EAAI,CACF/f,SAAU4f,EAAE,GACZqE,OAAQrE,EAAE,GACVwJ,SAAUxJ,EAAE,IAIhBsB,EAAEnB,EAAE/f,YAAc+f,EAAE/f,SAAW,KAC/B+f,EAAEkE,OAAS,mBAAsBlE,EAAEkE,OAASlE,EAAEkE,OAASvF,KAAKqB,EAAEkE,SAAWvF,KAAKo0B,cAC9E/yB,EAAE09B,QAAU73C,EAAE2Y,GACdQ,EAAER,GAAG,SAAUQ,EAAGN,GAChBoB,EAAEza,EAAGqZ,GACLS,EAAI,IAAI9a,EAAEgB,EAAG2a,EAAGtB,GAChBE,OAAI,EACJ,MAAQF,GAAK+C,EAAEjD,EAAEA,IAAMW,EAAE+9B,MAAQ/9B,EAAEw+B,SAASt4C,EAAGA,EAAE24C,UAAWx/B,EAAEA,GAAIW,EAAEg+B,IAAM3+B,EAAEA,EAAG9Y,EAAI,EAAGkZ,EAAI,GAAKvZ,EAAEvJ,KAAO4J,EAAIL,EAAEvJ,KAAK4iB,IAAMhZ,EAAIsuB,WAAWrU,EAAEta,EAAGqZ,KAAO,EAAG,YAAcA,IAAML,EAAI,OAC/KO,IAAMA,EAAII,GACV,iBAAoBJ,GAAKA,EAAE/J,MAAM,QAAU+J,EAAIA,EAAEjlB,QAAQ,MAAO,KAChEwlB,EAAEgrB,IAAIzkC,EAAGkZ,EAAGP,OAGhB4/B,WAAYvhC,EACZwhC,qBAAsB,SAAU74C,EAAGmZ,EAAGwB,GACpC,IAAIta,EAAIgX,EAAE8B,GACNH,EAAI,EACJO,EAAI,EAOR,OANCoB,EAAI,CAACA,GAAK3a,EAAEvQ,QAAQ8F,SAAQ,SAAUyK,GACrCA,EAAIqX,EAAErX,EAAEnH,QAAQi+C,WAChB99B,EAAIG,GAAKhX,EAAEgX,EAAE+qB,OAAS7jC,EAAE6jC,MAAQ5qB,KAAK1W,IAAIoW,EAAGhZ,EAAEpF,SAAWoF,EAAEkkC,OAC3D3qB,EAAID,KAAKnlB,IAAIkM,EAAEzF,SAAUoF,EAAEpF,aAE7BoF,EAAExJ,SAASsiD,YAAc9/B,EAAI,GACtB,CACLkrB,MAAO5qB,KAAK1W,IAAI,EAAGoW,EAAIO,GACvB3e,SAAU0e,KAAKnlB,IAAI6kB,EAAGO,KAG1Bw/B,aAAc,SAAU/4C,EAAGuZ,GACzBA,EAAE/iB,SAASwiD,gBAAkB7/B,EAAEnZ,EAAGuZ,EAAE1gB,QAAQjK,MAAMkoD,WAAW,IAE/D5pC,KAAMuN,MAGV0B,EAAE9E,EAAG,4BAA6B,CAACA,EAAE,mBAAoBA,EAAE,uBAAuB,SAAUrY,EAAGzG,GAC7F,IAAI8e,EAAIrY,EAAEqsC,OACN5wB,EAAIliB,EAAE9B,KACN0L,EAAI5J,EAAEyR,cACNsQ,EAAI/hB,EAAExI,IACNqsB,EAAI7jB,EAAEoH,MACNmc,EAAIvjB,EAAEyyC,WACN15C,EAAIiH,EAAEo3C,SACNnvC,EAAIjI,EAAEw3C,WACNp2B,EAAIphB,EAAEi4C,MACNr3B,GAAK5gB,EAAIyG,EAAEusC,IAAI0N,eAAiBn9B,EAAEvjB,EAAE2gD,eAAiB3gD,EAAE2gD,aAAa,aAAc,CACpFC,WAAY,SAAUn5C,GACpB,OAAOA,KAGPA,EAAImZ,EAAIA,EAAEggC,WAAW,IAAM,GAE/B,IACE,IAAI5/B,KAAM,IAAI6/B,WAAYC,gBAAgBr5C,EAAG,aAC7C,MAAO2a,GACPpB,GAAI,EA0HN,OAvHAuC,EAAI,WACF,SAASnB,EAAE3a,GACTzQ,KAAKqkB,MAAQ,iBAAoB5T,EAAIzQ,KAAK+pD,YAAYt5C,GAAKA,EAiH7D,OA9GA2a,EAAE4+B,qBAAuB,SAAUv5C,GAWjC,OAVAQ,EAAER,GAAG,SAAUmZ,EAAGI,GAChB,IAAIP,GAAI,GACP,IAAM2B,EAAE6+B,kBAAkBprC,QAAQmL,KAAOP,GAAI,IAC7C,IAAM,CAAC,aAAc,SAAU,OAAQ,SAAU,OAAO5K,QAAQmL,KAAOP,EAAI1nB,EAAE6nB,IAAMwB,EAAE8+B,kBAAkB9yC,MAAK,SAAU3G,GACrH,OAAO,IAAMmZ,EAAE/K,QAAQpO,OAEzBgZ,IAAMoD,EAAE,IAAI,OAAI,EAAQ,CACtB,8BAA+B,GAAGd,OAAO/B,YAChCvZ,EAAEuZ,OAERvZ,GAGT2a,EAAE++B,WAAa,SAAU15C,GACvB,OAAOA,EAAEwN,MAAM,KAAKqgC,QAAO,SAAU7tC,EAAGmZ,GACtCA,EAAIA,EAAE3L,MAAM,KAAKgR,KAAI,SAAUxe,GAC7B,OAAOA,EAAEqW,UAEX,IAAIkD,EAAIJ,EAAE20B,QAIV,OAHAv0B,GAAKJ,EAAE7oB,SAAW0P,EAAEuZ,EAAEjlB,QAAQ,aAAa,SAAU0L,GACnD,OAAOA,EAAE,GAAGkkB,kBACR/K,EAAEzB,KAAK,MACN1X,IACN,KAGL2a,EAAEg/B,eAAiB,SAAU35C,EAAGmZ,GAC9BnZ,EAAEqK,UAAYsQ,EAAEi/B,UAChBzgC,GAAK,IAAIwB,EAAExB,GAAG0gC,SAAS75C,IAGzB2a,EAAEhF,UAAUkkC,SAAW,SAAU75C,GA2B/B,OA1BA,SAASmZ,EAAEnZ,EAAGuZ,GACZ,IAAIP,EAsBJ,OArBAW,EAAE3Z,GAAGzK,SAAQ,SAAUyK,GACrB,IAAIqZ,EAAIrZ,EAAEgR,QACN4I,EAAI5Z,EAAE85C,YAAc96C,EAAEwsC,IAAI/M,eAAez+B,EAAE85C,kBAAe,EAC1D/5C,EAAI4a,EAAEo/B,oBACV,GAAI1gC,EAAG,GAAI,UAAYA,EAAG,IAAIN,EAAIa,OAAO,IAAK,IAAMe,EAAEq/B,YAAY5rC,QAAQiL,IAAMtZ,EAAG,CACjFsZ,EAAIra,EAAEwsC,IAAI51B,gBAAgB,QAAUyD,EAAIhC,EAAIkC,EAAE0gC,cAAgB5iC,EAAGgC,GACjE,IAAIH,EAAIlZ,EAAEwpB,YAAc,GACxBhpB,EAAER,GAAG,SAAUD,EAAGgZ,GAChB,YAAcA,GAAK,eAAiBA,GAAK,aAAeA,GAAK,UAAYA,GAAK,gBAAkBA,IAAMG,EAAEH,GAAKhZ,MAE/G0a,EAAEpB,EAAGtZ,EAAImZ,EAAIyB,EAAE4+B,qBAAqBrgC,IACpClZ,EAAEnR,OAASyrB,EAAEjB,EAAGrZ,EAAEnR,OAClB+qB,GAAKP,EAAE/O,YAAYsP,GACnBT,EAAEnZ,EAAE2D,UAAY,GAAI0V,GACpBN,EAAIM,OACC+C,EAAE,IAAI,OAAI,EAAQ,CACvB,4BAA6B/C,IAE/BN,GAAKQ,EAAEjP,YAAYyO,GACnBC,EAAID,KAECC,EAGFG,CAAE5pB,KAAKqkB,MAAO5T,IAGvB2a,EAAEhF,UAAU2jC,YAAc,SAAUt5C,GAClC,IAAIgZ,EAAI,GAER,GADAhZ,EAAIA,EAAEqW,OAAO/hB,QAAQ,YAAa,iBAC9BilB,EAAGvZ,GAAI,IAAIo5C,WAAYC,gBAAgBlgC,EAAIA,EAAEggC,WAAWn5C,GAAKA,EAAG,iBAAkB,CACpF,IAAIK,EAAI8B,EAAE,OACV9B,EAAEgK,UAAYrK,EACdA,EAAI,CACFT,KAAMc,GAIV,IAAIsZ,EAAI,SAAU3Z,EAAGmZ,GACnB,IAAIE,EAAIrZ,EAAEuT,SAAS6V,cACfxP,EAAI,CACN5I,QAASqI,GAIX,GAFA,UAAYA,IAAMO,EAAEkgC,YAAc95C,EAAE85C,aAAe,IAE/CzgC,EAAIrZ,EAAEwpB,WAAY,CACpB,IAAIzpB,EAAI,GACR,GAAGxK,QAAQ2W,KAAKmN,GAAG,SAAUH,GAC3B,eAAiBA,EAAEtkB,KAAOglB,EAAE/qB,MAAQ8rB,EAAE++B,WAAWxgC,EAAE7kB,OAAS0L,EAAEmZ,EAAEtkB,MAAQskB,EAAE7kB,SAE5EulB,EAAE4P,WAAazpB,EAGjB,GAAIC,EAAEk6C,WAAW5pD,OAAQ,CACvB,IAAIyoB,EAAI,GACR,GAAGxjB,QAAQ2W,KAAKlM,EAAEk6C,YAAY,SAAUn6C,GACtC4Z,EAAE5Z,EAAGgZ,MAEPA,EAAEzoB,SAAWspB,EAAEjW,SAAWoV,GAG5BI,EAAEtiB,KAAK+iB,IAMT,MAHA,GAAGrkB,QAAQ2W,KAAKlM,EAAET,KAAK26C,YAAY,SAAUl6C,GAC3C,OAAO2Z,EAAE3Z,EAAGgZ,MAEPA,GAGT2B,EAAE6+B,kBAAoB,2jBAA2jBhsC,MAAM,KACvlBmN,EAAE8+B,kBAAoB,sCAAsCjsC,MAAM,KAClEmN,EAAEq/B,YAAc,uVAAuVxsC,MAAM,KAC7WmN,EAAEi/B,UAAY55C,EACd2a,EAAEo/B,qBAAsB,EACjBp/B,EAnHL,GAuHGmB,KAETK,EAAE9E,EAAG,0BAA2B,CAACA,EAAE,0BAA2BA,EAAE,uBAAuB,SAAUrY,EAAGzG,GAClG,SAAS8e,EAAE9e,EAAGohB,EAAGR,EAAGnZ,GAClBzH,GAAKA,GAAK,EACVohB,GAAKA,EACL,IAAIJ,EAAIkB,EAAE05B,KACNx5B,GAAKpiB,EAAEkV,WAAWD,MAAM,KAAK,IAAM,IAAIA,MAAM,KAAK,GAAGld,OACrD+P,EAAI9H,EAAEkV,WAAWD,MAAM,KACvBwL,EAAIW,EACR,IAAK,IAAMA,EAAGA,EAAIL,KAAKnlB,IAAIwmB,EAAG,SAAS,GAAKyB,EAAEzC,IAAe,GAAIA,GAAKtZ,EAAE,IAAM,EAAIA,EAAE,GAAI,CACtF,IAAIgc,EAAI1C,IAAKtZ,EAAE,GACf,GAAKgc,GAAKhc,EAAE,KAAOA,EAAE,IAAI85C,cAAc99B,GAAG7O,MAAM,KAAK,GAAImM,EAAI0C,IAAMhc,EAAE,GAAKA,EAAE,GAAGmN,MAAM,KAAK,IAAM,EAAGjV,EAAI,GAAKohB,GAAKtZ,EAAE,GAAKiZ,KAAK4zB,IAAI,GAAI7sC,EAAE,KAAKyG,QAAQ6S,GAAK,EAAGtZ,EAAE,GAAK,SAFnHsZ,EAAI,EAItD0C,GAAK/C,KAAK8gC,IAAI/5C,EAAE,GAAKA,EAAE,GAAK9H,GAAK+gB,KAAK4zB,IAAI,IAAK5zB,KAAK1W,IAAI+W,EAAGgB,GAAK,IAAI7T,QAAQ6S,GAE5E,IAAIG,EAAI,GADRa,EAAIvE,OAAO9kB,EAAE+qB,KACC/rB,OAASqqB,EAAErqB,OAAS,EAAI,EAOtC,OANA6oB,EAAI2C,EAAE3C,EAAGI,EAAE87B,cACXr1C,EAAI8b,EAAE9b,EAAGuZ,EAAEk8B,cACXl9C,GAAK,EAAIA,EAAI,IAAM,KAAOuhB,EAAIa,EAAEgC,OAAO,EAAG7C,GAAK9Z,EAAI,IACnDzH,EAAI,GAAK8H,EAAE,KAAO2Y,EAAI,IAAMzgB,EAAIoiB,EAAEgC,OAAO7C,GAAGxlB,QAAQ,iBAAkB,KAAO0L,GAC7E2Z,IAAMphB,GAAK4gB,EAAIkD,EAAEpQ,OAAO0N,IACxBtZ,EAAE,IAAM,IAAO9H,IAAMA,GAAK,IAAM8H,EAAE,IAC3B9H,EAGT,IAAIkiB,EAAIzb,EAAEk1C,eACN/xC,EAAInD,EAAEy4C,YACNn9B,EAAI/hB,EAAE22C,kBACN9yB,EAAI7jB,EAAEm3C,SACN5zB,EAAIvjB,EAAE63C,KACN9+C,EAAIiH,EAAE83C,KACV,MAAO,CACL4D,WAAY,SAAU17C,EAAGohB,EAAGR,GAC1B,OAAOhX,EAAE8xC,WAAW17C,EAAGohB,EAAGR,IAE5Bte,OAAQ,SAAUtC,EAAGohB,EAAGR,GACtB,IAAInZ,EAAI,IACJuZ,GAAI,EACJoB,EAAI,KACJta,EAAI,YACJ2Y,EAAIyB,EAAE05B,KACN93B,EAAIlD,GAAKA,EAAEu8B,MAAQvzC,EACvBgX,EAAIA,GAAKA,EAAEkhC,iBAAmBhjC,EAE9B,IAAK,IAAIyC,EAAI,GAAIvhB,GAAI,CACnB,IAAIiiB,EAAIjiB,EAAE6V,QAAQpO,GAClB,IAAK,IAAMwa,EAAG,MACd,IAAIppB,EAAImH,EAAE0T,MAAM,EAAGuO,GAEnB,GAAIjB,EAAG,CAGL,GAFAnoB,EAAIA,EAAEoc,MAAM,KACZxN,EAAIsa,EAAElpB,EAAE08C,SAAW,GAAIn0B,GACnBvoB,EAAEd,QAAU,iBAAoB0P,EAAG,GAAI5O,EAAIA,EAAEsmB,KAAK,KAAMiD,EAAE9M,KAAKzc,GAAI,CACrE,IAAIioB,EAAIjnB,UAAUhB,EAAEoe,MAAMnP,IAAM,CAAC,GAAI,OAAO,GAAI,IAChD,OAASL,IAAMA,EAAImZ,EAAEnZ,EAAGqZ,EAAGL,EAAEq8B,cAAe,EAAIjkD,EAAEgd,QAAQ,KAAO4K,EAAEy8B,aAAe,UAC7Ez1C,EAAIqc,EAAE43B,WAAW7iD,EAAG4O,GAC3B8Z,EAAEjjB,KAAKmJ,QACF8Z,EAAEjjB,KAAKzF,GAEdmH,EAAIA,EAAE0T,MAAMuO,EAAI,GAChBxa,GAAKuZ,GAAKA,GAAK,IAAM,IAIvB,OADAO,EAAEjjB,KAAK0B,GACAuhB,EAAEpC,KAAK,KAEhB4iC,aAAcjjC,MAGlB8E,EAAE9E,EAAG,qCAAsC,CAACA,EAAE,uBAAuB,SAAUrY,GAC7E,IAGImD,EAHA5J,EAAIyG,EAAEuvC,MACNl3B,EAAIrY,EAAEoxC,KACN31B,EAAIzb,EAAEyxC,WAiEV,OA9DA,SAAWzxC,GA2DTA,EAAEu7C,WA1DF,SAASp4C,EAAEnD,EAAG1N,EAAGkP,GACf,IAQIma,EARAhB,EAAI3a,EACJma,EAAIQ,EAAE6gC,YAAclpD,EACpB0O,EAAI,SAAUA,EAAGmZ,GACnB,OAAQA,EAAEshC,MAAQ,IAAMz6C,EAAEy6C,MAAQ,IAEhClhC,EAAI,SAAUvZ,EAAGmZ,GACnB,OAAOnZ,EAAEvD,OAAS0c,EAAE1c,QAGlB4D,GAAI,EACJ2Y,EAAI,GACJqD,EAAI,EAER,IAAK1B,EAAI3b,EAAE1O,OAAQqqB,KAAM0B,GAAKrd,EAAE2b,GAAGqK,KAEnC,GAAI3I,EAAIlD,EAAG,CAGT,IAFAsB,EAAEzb,EAAGgB,GAEAqc,EAAI1B,EAAI,EAAG0B,GAAKlD,GAAIkD,GAAKrd,EAAE2b,GAAGqK,KAAMrK,IAEzC3B,EAAIha,EAAEsV,OAAOqG,EAAI,EAAG3b,EAAE1O,QAKxB,IAFAmqB,EAAEzb,EAAGua,GAEAva,EAAIA,EAAEwf,KAAI,SAAUxe,GACvB,MAAO,CACLglB,KAAMhlB,EAAEglB,KACR01B,QAAS,CAAC16C,EAAEvD,QACZhJ,MAAO4jB,EAAErX,EAAEvM,MAAO,QAElB4M,GAAI,CACN,IAAKsa,EAAI3b,EAAE1O,OAAQqqB,KAAMxB,EAAIna,EAAE2b,GAAI3a,GAAKsZ,KAAKnlB,IAAI8c,MAAM,EAAGkI,EAAEuhC,SAAWphC,KAAK1W,IAAIqO,MAAM,EAAGkI,EAAEuhC,UAAY,EAAGvhC,EAAE4qB,IAAMxrC,EAAEyH,EAAImZ,EAAE6L,KAAO7L,EAAE1lB,MAAO,EAAGnC,EAAI6nB,EAAE6L,MAInJ,IAFArK,EAAI3b,EAAE1O,OAED+P,GAAI,EAAIsa,KAAM,EAAIA,GAAK3b,EAAE2b,EAAI,GAAGopB,IAAM/kC,EAAE2b,EAAI,GAAGqK,KAAOhmB,EAAE2b,GAAGopB,MAAQ/kC,EAAE2b,EAAI,GAAGqK,MAAQhmB,EAAE2b,GAAGqK,KAAMhmB,EAAE2b,EAAI,GAAG+/B,QAAU17C,EAAE2b,EAAI,GAAG+/B,QAAQp/B,OAAOtc,EAAE2b,GAAG+/B,SAAU17C,EAAE2b,EAAI,GAAGlnB,MAAQ,GAAIuL,EAAE2b,EAAI,GAAGopB,IAAM/kC,EAAE2b,EAAI,GAAGqK,KAAO1zB,IAAM0N,EAAE2b,EAAI,GAAGopB,IAAMzyC,EAAI0N,EAAE2b,EAAI,GAAGqK,MAAOhmB,EAAEsV,OAAOqG,EAAG,GAAIta,GAAI,GAkBjR,OAfAsZ,EAAE9iB,KAAKoa,MAAM0I,EAAGX,GAChB2B,EAAI,EACJ3b,EAAE2H,MAAK,SAAU3G,GACf,IAAImZ,EAAI,EACR,OAAQnZ,EAAE06C,SAAW,IAAI/zC,MAAK,WAE5B,OADAgT,EAAEgB,GAAGopB,IAAM/jC,EAAE+jC,IAAM5qB,OACf,IAAuB3Y,GAAK8Y,KAAK8gC,IAAIzgC,EAAEgB,GAAGopB,IAAMpqB,EAAEgB,GAAGle,QAAU+D,GAAUmZ,EAAE1N,MAAM,EAAG0O,EAAI,GAAGplB,SAAQ,SAAUyK,GAC/G,cAAcA,EAAE+jC,OACdpqB,EAAE6gC,YAAc7gC,EAAE6gC,YAAclpD,GAAK,GAAKA,EAAGqoB,EAAE6gC,WAAa,GAAKlpD,GAAK6Q,EAAEwX,EAAGroB,EAAGkP,IAAI,IACtF2Y,GAAKQ,EAAEgB,GAAGqK,KACVrK,KACO,SAGXF,EAAEd,EAAGJ,GACEI,GAxDX,CA4DGxX,IAAMA,EAAI,KAENA,KAETga,EAAE9E,EAAG,kCAAmC,CAACA,EAAE,wCAAyCA,EAAE,6BAA8BA,EAAE,uBAAwBA,EAAE,mBAAoBA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,GACjN,IAAIgZ,EAAInc,EAAE/B,QACNmf,EAAIpd,EAAE45C,WACN98B,EAAI9c,EAAEkO,KACN5b,EAAImpB,EAAEwxB,QACNzrC,EAAIia,EAAE+wB,IACN7xB,EAAIc,EAAEoV,KACN1W,EAAIsB,EAAEgxB,IACNzrC,EAAIya,EAAE4wB,OACN9xB,EAAIkB,EAAE8wB,IACN5wB,EAAIxY,EAAE4rC,SACN1tC,EAAI8B,EAAE1L,KACNuiB,EAAI7W,EAAE6H,cACNqS,EAAIla,EAAEpS,IACN+pB,EAAI3X,EAAEwsC,QACNn0B,EAAIrY,EAAE4sC,MACN39C,EAAI+Q,EAAErJ,OACNugB,EAAIlX,EAAEorC,UACN3zB,EAAIzX,EAAEiJ,QACNrL,EAAIoC,EAAE6oC,WACNjyB,EAAI5W,EAAEutC,SACNx2B,EAAI/W,EAAEwtC,SACN30B,EAAI7Y,EAAEytC,MACNl1B,EAAIvY,EAAE4tC,WACN7tC,EAAIC,EAAEiuC,KACNx1B,EAAIzY,EAAEkuC,KACNt1B,EAAI5Y,EAAEwuC,YACNp0B,EAAIpa,EAAEivC,UAmvBV,OAjvBApyC,EAAI,WACF,SAASA,IACPzP,KAAK0C,aAAU,EACf1C,KAAKorD,SAAW,GAChBprD,KAAK09C,QAAU,EACf19C,KAAKiH,cAAW,EAChBjH,KAAK87C,OAASrrC,EACdzQ,KAAKqrD,oBAAsB,8DAA8DptC,MAAM,KA8tBjG,OA3tBAxO,EAAE2W,UAAUklC,eAAiB,SAAU96C,GAGrC,OAFAA,EAAImC,EAAE3S,KAAKwQ,EAAI,SAAUxQ,KAAKwQ,GAAIxQ,KAAK0C,QAAU1C,KAAK0C,QAAQqhB,aAAavT,GAAK,KAAM,GACtF,eAAe8N,KAAK9N,KAAOA,EAAI4uB,WAAW5uB,IACnCA,GAGTf,EAAE2W,UAAUmlC,eAAiB,SAAU/6C,EAAGmZ,EAAGH,GAC3CA,EAAE7O,aAAagP,EAAGnZ,IAGpBf,EAAE2W,UAAUhf,IAAM,SAAUoJ,GAC1B,IAAImZ,EAAI3pB,KAAKiH,SACTuiB,EAAIxpB,KAAK0C,QAKb,GAJA8N,IAAMxQ,KAAKwrD,YAAch7C,GACzBxQ,KAAKyrD,eAAiBj7C,GAAKA,EAAEk7C,cAC7B,IAAuB1rD,KAAK2rD,SAAW,SAAW3rD,KAAK0C,QAAQshB,UAAY2F,EAAEiiC,UAAU5rD,MACvFA,KAAK6rD,OAAQ,GACRr7C,GAAKA,EAAEs7C,SAAW9rD,KAAK2iD,OAAQ,IAAIlyC,EAAIzQ,KAAK+rD,eAGjD,OAFAt7C,IAAMD,EAAIA,EAAE9N,QAAUinB,EAAEqiC,KAAKjxC,YAAYyO,GACrCxpB,KAAKisD,OAAOjsD,KAAKisD,QACdjsD,MAGTyP,EAAE2W,UAAU5jB,SAAW,SAAUgO,EAAGmZ,GAClC,IAAIH,EAAIG,EAAI,GAAK3pB,KAAKkH,KAAK,UAAY,GAMvC,OALAsJ,GAAKA,GAAK,IAAIyN,MAAM,MAAMqgC,QAAO,SAAU9tC,EAAGmZ,GAE5C,OADC,IAAMH,EAAE3K,QAAQ8K,IAAMnZ,EAAElJ,KAAKqiB,GACvBnZ,IACNgZ,EAAI,CAACA,GAAK,IAAIrB,KAAK,KACtB3X,IAAMgZ,GAAKxpB,KAAKkH,KAAK,QAASsJ,GACvBxQ,MAGTyP,EAAE2W,UAAU8lC,aAAe,WACzBlsD,KAAKmsD,cAAgBnsD,KAAKosD,kBAAmBpsD,KAAKmsD,aAAc,IAGlE18C,EAAE2W,UAAUliB,MAAQ,SAAUsM,EAAGgZ,EAAGkD,GAClC,IAGI9C,EACAI,EACAwC,EALA/b,EAAI,GACJ4Z,EAAIrqB,KAAKiH,SACT6iB,EAAIO,EAAEgiC,eAKN77C,GACExQ,KAAKssD,aAAe97C,EAAGxQ,KAAKusD,iBAAmB/iC,IAAIkD,GAAK/C,EAAE+C,MAAI1sB,KAAKwsD,QAAU5iC,EAAI8C,GAAK,WAAYzB,EAAEnB,EAAG9pB,MAAO8pB,EAAExiB,KAAKtH,MAAO0sB,OAAI,KAC/Hlc,EAAIxQ,KAAKssD,aAAc9iC,EAAIxpB,KAAKusD,iBAAkB3iC,EAAI5pB,KAAKwsD,SAElE9/B,EAAI/Z,EAAE+Z,EAAGrC,EAAET,GAAI,sBAAwBA,EAAIS,EAAEtnB,aAAU,EAAQsnB,GAC/DT,EAAIpZ,EAAEtM,MACN,IAAIinB,EAAI3a,EAAE+1C,cAYV,OAXAl8B,GAAKqC,EAAE7qB,GAAK,IAAM2O,EAAE3O,GAAK,GACzBioB,GAAK4C,EAAE3qB,GAAK,IAAMyO,EAAEzO,GAAK,GACzB,UAAY6nB,EAAII,EAAI,EAAI,WAAaJ,IAAMI,EAAI,GAC/CA,IAAMK,IAAMqC,EAAEvpB,OAASqN,EAAErN,OAAS,IAAM6mB,GACxCvZ,EAAE+Y,EAAI,aAAe,KAAOO,KAAKw2B,MAAMl2B,GACvC,WAAac,EAAIqB,EAAI,EAAI,WAAarB,IAAMqB,EAAI,GAChDA,IAAM1C,IAAM4C,EAAEltB,QAAUgR,EAAEhR,QAAU,IAAMgtB,GAC1C/b,EAAE+Y,EAAI,aAAe,KAAOO,KAAKw2B,MAAMz2B,GACvC9pB,KAAKA,KAAKysD,OAAS,UAAY,QAAQh8C,GACvCzQ,KAAKysD,QAAS,EACdzsD,KAAK0sD,UAAYj8C,EACVzQ,MAGTyP,EAAE2W,UAAUumC,YAAc,SAAUn8C,GAClC,IAAImZ,EAAI,CACN/oB,KAAM,QACNgsD,OAAQ,SACRC,MAAO,OAETljC,EAAEnZ,KAAOxQ,KAAK8sD,WAAat8C,EAAGxQ,KAAK0C,QAAQiY,aAAa,cAAegP,EAAEnZ,MAG3Ef,EAAE2W,UAAU1Y,QAAU,SAAU8C,EAAGmZ,EAAGH,GACpC,IAAIkD,EAAI1sB,KACJyQ,EAAIoc,EAAEla,EAAEgX,EAAG3pB,KAAKiH,SAASwiD,iBAAiB,IAY9C,OAXA9/B,EAAIlZ,EAAEkkC,MACNhiC,EAAE1B,EAAE87C,OAAQ97C,EAAE+7C,SAAU/7C,EAAEg8C,cAAc,KAAQx8C,EAAEpF,SAAW,GAC7D,IAAMoF,EAAEpF,UAAYme,IAAM/Y,EAAEgkB,SAAWjL,GAAIgC,GAAE,WAC3CkB,EAAEhqB,SAAWkpB,EAAEc,EAAGlc,EAAGC,KACpBkZ,KAAO3pB,KAAKkH,KAAKsJ,OAAG,EAAQgZ,GAAK/Y,EAAEgkB,UAAWtJ,EAAE3a,GAAG,SAAUA,EAAGmZ,GACjElZ,EAAE7B,MAAQ6B,EAAE7B,KAAK+N,KAAK3c,KAAMwQ,EAAG,CAC7ByO,KAAM0K,EACN6qB,IAAK,EACL9gC,KAAM1T,SAEPA,OACIA,MAGTyP,EAAE2W,UAAU8mC,iBAAmB,SAAU18C,GACvC,IAAImZ,EAAI3pB,KAAK0C,SACZ,IAAM8N,EAAEqO,QAAQ,cAAgBrO,EAAIA,EAAEzL,QAAQ,YAAa/E,KAAKiH,SAASkmD,YAAYxjC,EAAErqB,MAAMoI,QAC9F,IAAI8hB,EAAIhZ,EAAEyN,MAAM,KAGhB,GAFAzN,EAAIgZ,EAAEA,EAAEzoB,OAAS,IAEZyoB,EAAIA,EAAE,KAAO,SAAWA,GAAK0B,EAAEgxB,IAAK,CACvCl8C,KAAKotD,QAAS,EACdptD,KAAKqtD,QAAUrtD,KAAKstD,QACpB9jC,EAAIA,EAAEzkB,QAAQ,qBAAqB,SAAUyL,EAAGmZ,EAAGH,GACjD,OAAO,EAAIzW,OAAO4W,GAAKH,KAEzBxpB,KAAKutD,oBACL,IAAIljC,EAAIpZ,EAAEoV,gBAAgB5V,EAAG,SAC7BK,EAAEuZ,EAAG,CACH,MAAS,0BACT3iB,KAAM8I,EACNrJ,OAAQqJ,EACR,eAAgBgZ,EAChB,kBAAmB,UAErB,GAAGxjB,QAAQ2W,KAAKgN,EAAEghC,YAAY,SAAUn6C,GACtC,IAAImZ,EAAInZ,EAAEsU,WAAU,GACpB6E,EAAEwG,iBAAmB,CAAC,OAAQ,SAAU,eAAgB,UAAUnqB,SAAQ,SAAUwK,GAClF,OAAOmZ,EAAEwG,gBAAgB3f,MAE3B6Z,EAAEtP,YAAY4O,MAEhB,IAAIhX,EAAI1B,EAAEoV,gBAAgB5V,EAAG,SAC7BkC,EAAE43C,YAAc,IAChB,CAAC,IAAK,KAAKvkD,SAAQ,SAAUwK,GAC3B,IAAIgZ,EAAIG,EAAE5F,aAAavT,GACvBgZ,GAAK7W,EAAEgI,aAAanK,EAAGgZ,MAEzBa,EAAEtP,YAAYpI,GACdgX,EAAE6jC,aAAanjC,EAAGV,EAAE8jC,cAIxBh+C,EAAE2W,UAAUlf,KAAO,SAAUsJ,EAAGmZ,EAAGH,EAAG/Y,GACpC,IAEIib,EAEAc,EACA1C,EALA4C,EAAI1sB,KAAK0C,QACT2nB,EAAIrqB,KAAKqrD,oBAET14C,EAAI3S,KAIR,GAAI,iBAAoBwQ,QAAK,IAAuBmZ,EAAG,CACrD,IAAIC,EAAIpZ,GACRA,EAAI,IACFoZ,GAAKD,EAWT,MARA,iBAAoBnZ,EAAImC,GAAK3S,KAAKwQ,EAAI,WAAaxQ,KAAKsrD,gBAAgB3uC,KAAK3c,KAAMwQ,EAAGkc,IAAMvB,EAAE3a,GAAG,SAAUmZ,EAAGH,GAC5GgD,GAAI,EACJ/b,GAAK8b,EAAEvsB,KAAMwpB,GACbxpB,KAAK0tD,aAAe,IAAMrjC,EAAExL,QAAQ2K,KAAOkC,IAAM1rB,KAAK2tD,WAAWn9C,GAAIkb,GAAI,GAAKc,GAAI,IACjFxsB,KAAKmE,UAAY,MAAQqlB,GAAK,MAAQA,IAAMxpB,KAAKmsD,aAAc,GAChE3/B,KAAM1C,EAAI9pB,KAAKwpB,EAAI,WAAaxpB,KAAKurD,gBAAkB5uC,KAAK3c,KAAM2pB,EAAGH,EAAGkD,IAAK1sB,KAAKkiD,YAAcliD,KAAK4tD,SAAW,sDAAsDtvC,KAAKkL,IAAMxpB,KAAK6tD,cAAcrkC,EAAGG,EAAGG,MACzM9pB,MAAOA,KAAKksD,gBACf1iC,GAAKA,EAAE7M,KAAK3c,MACL2S,GAGTlD,EAAE2W,UAAU0nC,KAAO,SAAUt9C,GAC3B,OAAOxQ,KAAKkH,KAAK,YAAasJ,EAAI,OAASxQ,KAAKiH,SAASqI,IAAM,IAAMkB,EAAErL,GAAK,IAAM,SAGpFsK,EAAE2W,UAAU2nC,MAAQ,SAAUv9C,EAAGmZ,GAC/BA,EAAIA,GAAKnZ,EAAEw9C,aAAe,EAC1B,IAAIxkC,EAAIO,KAAKw2B,MAAM52B,GAAK,EAAI,EAM5B,OALAnZ,EAAE3O,EAAIkoB,KAAK4U,MAAMnuB,EAAE3O,GAAK7B,KAAK6B,GAAK,GAAK2nB,EACvChZ,EAAEzO,EAAIgoB,KAAK4U,MAAMnuB,EAAEzO,GAAK/B,KAAK+B,GAAK,GAAKynB,EACvChZ,EAAErN,MAAQ4mB,KAAK4U,OAAOnuB,EAAErN,OAASnD,KAAKmD,OAAS,GAAK,EAAIqmB,GACxDhZ,EAAEhR,OAASuqB,KAAK4U,OAAOnuB,EAAEhR,QAAUQ,KAAKR,QAAU,GAAK,EAAIgqB,GAC3De,EAAE/Z,EAAEw9C,eAAiBx9C,EAAEw9C,YAAcrkC,GAC9BnZ,GAGTf,EAAE2W,UAAU6nC,aAAe,SAAUz9C,EAAGmZ,EAAGH,GACzC,IACIkD,EACA/Z,EACAiX,EACAI,EACAwC,EACA/C,EACA3Y,EACAsa,EACAhB,EACAa,EAEAppB,EAZA4O,EAAIzQ,KAAKiH,SAWT+B,EAAI,GAER8gB,EAAE9pB,KAAKiH,SAAU,eAAgB,CAC/B2xB,KAAM/Q,YACL,WAGD,GAFArX,EAAE09C,eAAiBv7C,EAAI,iBAAmBnC,EAAE29C,iBAAmBx7C,EAAI,kBAE/DA,EAAG,CAsBL,GArBAiX,EAAIpZ,EAAEmC,GACN6Z,EAAI/b,EAAE29C,UACN3kC,EAAIjZ,EAAEyyC,MACN74B,EAAIZ,EAAE6kC,gBACNhkC,EAAET,KAAOpZ,EAAEmC,GAAKiX,EAAI,CAClB0kC,GAAI1kC,EAAE,GACN2kC,GAAI3kC,EAAE,GACN4kC,GAAI5kC,EAAE,GACN6kC,GAAI7kC,EAAE,GACN8kC,cAAe,mBAEjB,mBAAqB/7C,GAAKyX,IAAMG,EAAEX,EAAE8kC,iBAAmB1kC,EAAIJ,EAAGA,EAAI6B,EAAE7B,EAAGnZ,EAAEk+C,cAAcvkC,EAAGJ,GAAI,CAC5F0kC,cAAe,oBAEjBvjC,EAAEvB,GAAG,SAAUpZ,EAAGmZ,GAChB,OAASA,GAAK3gB,EAAE1B,KAAKqiB,EAAGnZ,MAE1B2a,EAAE1B,GAAG,SAAUjZ,GACbxH,EAAE1B,KAAKkJ,MAETxH,EAAIA,EAAEmf,KAAK,KACPqE,EAAExjB,GAAIiiB,EAAIuB,EAAExjB,GAAG9B,KAAK,UAAW,CACjC0iB,EAAEzkB,GAAK8lB,EAAI+B,IACX,IAAItB,EAAIc,EAAExjB,GAAKyH,EAAEgK,cAAc9H,GAAGzL,KAAK0iB,GAAGxiB,IAAIqJ,EAAEm+C,MAChDljC,EAAEmjC,QAAU7kC,EACZ0B,EAAEu3B,MAAQ,GACVx5B,EAAEzjB,SAAQ,SAAUwK,GAClB,IAAMA,EAAE,GAAGqO,QAAQ,SAAW6N,EAAI5E,EAAErW,MAAMjB,EAAE,IAAKM,EAAI4b,EAAE/iB,IAAI,OAAQyhB,EAAIsB,EAAE/iB,IAAI,OAASmH,EAAIN,EAAE,GAAI4a,EAAI,GACpG5a,EAAIC,EAAEgK,cAAc,QAAQvT,KAAK,CAC/BjH,OAAQuQ,EAAE,GACV,aAAcM,EACd,eAAgBsa,IACfhkB,IAAIskB,GACPA,EAAEu3B,MAAM37C,KAAKkJ,MAGjB3O,EAAI,OAAS4O,EAAEnB,IAAM,IAAM2b,EAAI,IAC/BzB,EAAE7O,aAAagP,EAAG9nB,GAClB2nB,EAAEslC,SAAW9lD,EAEbwH,EAAE0N,SAAW,WACX,OAAOrc,QAMf4N,EAAE2W,UAAU5lB,IAAM,SAAUgQ,GAC1B,IAAImZ,EAAI3pB,KAAK+uD,OACTvlC,EAAI,GACJ/Y,EAAIzQ,KAAK0C,QACT2nB,GAAKV,EAMT,GALAnZ,EAAE7M,QAAU6M,EAAE9I,KAAO8I,EAAE7M,OACvBgmB,GAAKwB,EAAE3a,GAAG,SAAUA,EAAGC,GACrBkZ,GAAKA,EAAElZ,KAAOD,IAAMgZ,EAAE/Y,GAAKD,EAAG6Z,GAAI,MAGhCA,EAAG,CAEL,GADAV,IAAMnZ,EAAI3O,EAAE8nB,EAAGH,IACX,OAAShZ,EAAErN,OAAS,SAAWqN,EAAErN,aAAcnD,KAAKgvD,eAAe,GAAI,SAAWv+C,EAAEuT,SAAS6V,eAAiBrpB,EAAErN,MAAO,IAAIwP,EAAI3S,KAAKgvD,UAAY3jC,EAAE7a,EAAErN,OACxJnD,KAAK+uD,OAASv+C,EACdmC,IAAMiX,GAAK5pB,KAAKiH,SAASsiD,kBAAoB/4C,EAAErN,MAC/C,IAAI2mB,EAAI2B,EAAEjb,GACVC,EAAEi6C,eAAiB1qD,KAAK87C,QAAU,CAAC,cAAe,eAAgB,SAAS91C,SAAQ,SAAUwK,GAC3F,OAAOsZ,UAAYA,EAAEtZ,MAEvBsc,EAAErc,EAAGqZ,GACL9pB,KAAK6rD,QAAU,SAAW7rD,KAAK0C,QAAQshB,UAAYhkB,KAAKiH,SAAS2kD,UAAU5rD,MAAOwQ,EAAEy+C,aAAejvD,KAAKktD,iBAAiB18C,EAAEy+C,cAG7H,OAAOjvD,MAGTyP,EAAE2W,UAAU8oC,gBAAkB,SAAU1+C,GACtC,IAAImZ,EAAI3pB,KAAK,gBAGb,GAFA,YAAc2pB,IAAMA,EAAI,GAEpBnZ,EAAIA,GAAKA,EAAEqpB,cAAe,CAC5B,IAAIrQ,EAAIhZ,EAAEzL,QAAQ,kBAAmB,gBAAgBA,QAAQ,eAAgB,WAAWA,QAAQ,WAAY,QAAQA,QAAQ,YAAa,QAAQA,QAAQ,WAAY,QAAQA,QAAQ,OAAQ,QAAQA,QAAQ,OAAQ,QAAQA,QAAQ,KAAM,IAAIkZ,MAAM,KAErP,IAAKzN,EAAIgZ,EAAEzoB,OAAQyP,KAAMgZ,EAAEhZ,GAAK,GAAK6a,EAAE7B,EAAEhZ,IAAMmC,EAAEgX,EAAGD,KAEpDlZ,EAAIgZ,EAAErB,KAAK,KAAKpjB,QAAQ,OAAQ,QAChC/E,KAAK0C,QAAQiY,aAAa,mBAAoBnK,KAIlDf,EAAE2W,UAAUlgB,QAAU,WACpB,IAAIsK,EAAIxQ,KACJ2pB,EAAInZ,EAAE9N,SAAW,GACjB8mB,EAAIhZ,EAAEvJ,SACNwJ,EAAIkZ,EAAEwlC,gBACN9kC,EAAIb,EAAE4lC,OAAS,SAAWzlC,EAAE3F,UAAYxT,EAAEg7C,kBAAe,EAI7D,GAHA7hC,EAAE0lC,QAAU1lC,EAAE2lC,WAAa3lC,EAAE4lC,YAAc5lC,EAAE6lC,YAAc7lC,EAAE/nB,MAAQ,KACrE2qB,EAAE/b,GAEEA,EAAEi/C,UAAYh/C,EAAG,CACnB,IAAIkC,EAAInC,EAAEi/C,SACV,GAAGzpD,QAAQ2W,KAAKlM,EAAEiB,iBAAiB,4BAA4B,SAAUlB,IACtE,EAAIA,EAAEuT,aAAa,aAAalF,QAAQlM,EAAEjQ,QAAQyC,KAAOqL,EAAE2f,gBAAgB,gBAE9E3f,EAAEi/C,SAAW98C,EAAEzM,UAGjB,GAAIsK,EAAEyyC,MAAO,CACX,IAAKxyC,EAAI,EAAGA,EAAID,EAAEyyC,MAAMliD,OAAQ0P,IAAKD,EAAEyyC,MAAMxyC,GAAGvK,UAEhDsK,EAAEyyC,MAAMliD,OAAS,EACjByP,EAAEyyC,WAAQ,EAKZ,IAFAzyC,EAAEk/C,gBAAgB/lC,GAEbH,EAAE04B,YAAc1xC,EAAEm/C,iBAAkBtlC,GAAKA,EAAEulC,KAAO,IAAMvlC,EAAEulC,IAAIjF,WAAW5pD,QAAS4oB,EAAIU,EAAEmhC,YAAah7C,EAAEk/C,gBAAgBrlC,EAAEulC,YAAavlC,EAAEulC,IAAKvlC,EAAIV,EAEtJnZ,EAAEg8C,SAAWvhC,EAAEzB,EAAE6iC,eAAgB77C,GACjC2a,EAAE3a,GAAG,SAAUmZ,EAAGH,GAChBhZ,EAAEgZ,IAAMhZ,EAAEgZ,GAAGgiC,cAAgBh7C,GAAKA,EAAEgZ,GAAGtjB,SAAWsK,EAAEgZ,GAAGtjB,iBAChDsK,EAAEgZ,OAIb/Z,EAAE2W,UAAUupC,eAAiB,YAC1B3vD,KAAK4tD,SAAW,IAAI5nD,SAAQ,SAAUwK,GACrCxQ,KAAK0vD,gBAAgBl/C,KACpBxQ,MACHA,KAAK4tD,aAAU,GAGjBn+C,EAAE2W,UAAUypC,gBAAkB,SAAUr/C,EAAGmZ,GACzC,IAAIH,EAAIhZ,EAAElD,qBAAqB,QAAQ,GAEvC,GAAIkc,GACF,GAAIA,EAAE2G,gBAAgB,MAAO3G,EAAE2G,gBAAgB,MAAOxG,EAAEjnB,QAAQiY,aAAa,KAAM,IAAK3a,KAAK8vD,iBAAmBtmC,EAAElc,qBAAqB,YAAYvM,OAAQ,CACzJ,IAAKyP,EAAIxQ,KAAK8vD,gBAAgBptD,QAAQioD,WAAYn6C,EAAEzP,QAASyoB,EAAEzO,YAAYvK,EAAE,IAE7EgZ,EAAEysB,YAAYj2C,KAAK8vD,gBAAgBptD,eAE5B8N,EAAEuT,aAAa,OAASvT,EAAEuT,aAAa,SAAOvT,EAAE2f,gBAAgB,MAAO3f,EAAE2f,gBAAgB,OAEpGnwB,KAAK8vD,kBAAoB9vD,KAAK8vD,gBAAkB9vD,KAAK8vD,gBAAgB5pD,YAGvEuJ,EAAE2W,UAAUiiC,QAAU,SAAU73C,EAAGmZ,EAAGH,GACpCa,EAAE7Z,KAAO,iBAAoBA,EAAE,KAAOA,EAAIxQ,KAAKiH,SAAS8oD,eAAev/C,IAAKxQ,KAAKopD,UAAY54C,EAAGA,EAAIA,EAAE8tC,QAAO,SAAU9tC,EAAGmZ,EAAGH,GAC3H,OAAOG,GAAKA,EAAExB,MAAQqB,EAAIhZ,EAAI,IAAM,IAAMmZ,EAAExB,KAAK,MAAQwB,GAAK,IAAIzL,aACjE,KACH,gBAAgBI,KAAK9N,KAAOA,EAAI,SAChCxQ,KAAK2pB,KAAOnZ,IAAMgZ,EAAE7O,aAAagP,EAAGnZ,GAAIxQ,KAAK2pB,GAAKnZ,IAGpDf,EAAE2W,UAAUld,QAAU,SAAUsH,GAC9B,IAAImZ,EAAI3pB,KACR2pB,EAAEjc,QAAQ,CACRgwC,QAAS,GACR,CACDryC,SAAUsH,EAAEnC,EAAG,KACfikB,SAAU,WACR9K,EAAExgB,WAKRsG,EAAE2W,UAAU8iC,WAAa,SAAU14C,EAAGmZ,EAAGH,GACvC,iBAAoBhZ,EAAIgZ,EAAE7O,aAAagP,EAAGnZ,GAAKA,GAAKxQ,KAAKiuD,aAAaz9C,EAAGmZ,EAAGH,IAG9E/Z,EAAE2W,UAAU5e,QAAU,SAAUmiB,EAAGH,GACjC,IAAI/Y,EAAIzQ,KAAK8sD,WACTziC,EAAIrqB,KAAK0C,QACTknB,EAAI5pB,KAAKiH,SACT6iB,EAAI9pB,KAAK+uD,OACT/kC,EAAIhqB,KAAK2rD,QACTxgC,EAAIvB,EAAEzH,MACNqK,EAAI5C,EAAEomC,UACNvmC,EAAIY,EAAEqgC,eAAiB1qD,KAAK87C,OAChCtyB,EAAI7W,EAAE6W,EAAGxpB,KAAKmE,SAAU,GACxB,IACIsnB,EADA3a,EAAI8Y,EAAEs4B,WAAa73B,GAAK5a,EAAE2W,UAAUw5B,SAASjjC,KAAK0N,EAAG,aAAeP,GAAKA,EAAEzlB,SAG/E,GAAIkmB,EAAEP,GAAI,CACR,IAAIoB,EAAIpB,EAAE9L,YACT,IAAMkN,EAAEvM,QAAQ,OAASuM,EAAIA,EAAErmB,QAAQ,SAAU,MAClDqmB,GAAK,CAAC,GAAI5B,EAAG1Y,EAAG9Q,KAAKgvD,UAAWv+C,EAAGqZ,GAAKA,EAAEi9B,aAAcj9B,GAAKA,EAAE1lB,YAAY+jB,OAK7E,GAFAiD,IAAMzB,IAAM8B,EAAIN,EAAEC,KAEbK,EAAG,CACN,GAAIhC,GAAKG,EAAE2/B,UAAW,CACpB,IACE,IAAIn/B,EAAIpqB,KAAKotD,QAAU,SAAU58C,GAC/B,IAAImZ,EAAIU,EAAEje,cAAc,4BACxBud,GAAKmD,EAAEnD,EAAG,CACRknB,QAASrgC,KAIbA,EAAE4Z,IAAMA,EAAE,QACVqB,EAAIpB,EAAE7iB,QAAU3F,EAAE,GAAIwoB,EAAE7iB,WAAa,CACnCrE,MAAOknB,EAAEw1B,YACTrgD,OAAQ6qB,EAAEyE,cAEZte,EAAE4Z,IAAMA,EAAE,IACV,MAAOgE,MAIJ3C,GAAK,EAAIA,EAAEtoB,SAAOsoB,EAAI,CACzB5pB,EAAG,EACHE,EAAG,EACHoB,MAAO,EACP3D,OAAQ,SAELisB,EAAIzrB,KAAKiwD,cAEhB,GAAIrmC,EAAEwlC,QAAUxlC,EAAI6B,EAAEtoB,MAAOwmB,EAAI8B,EAAEjsB,OAAQiqB,IAAMgC,EAAEjsB,OAASmqB,EAAI,CAC9D,UAAW,GACX,UAAW,IACX,IAAM7Y,GAAK,IAAM,IAAIib,OAAOhC,KAAKw2B,MAAM52B,MAAQA,GAAIH,GAAI,CACvDC,EAAI1W,OAAOsX,EAAEtG,aAAa,MAAQ,GAAK0H,EAAE1pB,EACzC0O,EAAI,CACFo8C,MAAO,EACPD,OAAQ,IACRn8C,GAAK,IAAM,EACbqZ,EAAIN,EAAIznB,EACR+O,GAAK0Y,EAAI,IAAMznB,EACf,IAAIkpB,EAAIrB,EAAIG,KAAKq0B,IAAIt0B,GACrBN,EAAII,EAAIG,KAAKmmC,IAAIpmC,GACjBM,EAAIL,KAAKq0B,IAAIttC,GACbgZ,EAAIC,KAAKmmC,IAAIp/C,GAIbma,GADAb,GADAtZ,GADA8Y,EAAI6B,EAAE5pB,EAAI4O,GAAKmZ,EAAIqB,GAAKxB,EAAIW,GACpBa,GACAtB,EAAIS,GACJa,EAIRzB,GADAG,GADAlZ,GADAgZ,EAAIgC,EAAE1pB,EAAI0nB,EAAIhZ,EAAI+Y,EAAIC,EAAIK,GAClBN,GACAG,EAAIG,GACJN,EACRiC,EAAE5pB,EAAIkoB,KAAKnlB,IAAIglB,EAAG9Y,EAAGsZ,EAAGa,GACxBQ,EAAE1pB,EAAIgoB,KAAKnlB,IAAI6kB,EAAGhZ,EAAGkZ,EAAGH,GACxBiC,EAAEtoB,MAAQ4mB,KAAK1W,IAAIuW,EAAG9Y,EAAGsZ,EAAGa,GAAKQ,EAAE5pB,EACnC4pB,EAAEjsB,OAASuqB,KAAK1W,IAAIoW,EAAGhZ,EAAGkZ,EAAGH,GAAKiC,EAAE1pB,EAGtC,GAAIqpB,IAAM,KAAOpB,GAAK,EAAIyB,EAAEjsB,QAAS,CACnC,KAAO,IAAMgtB,EAAEzrB,eAAgBoqB,EAAEqB,EAAE+xB,SAEnCpzB,EAAEC,IAAMoB,EAAEllB,KAAK8jB,GACfD,EAAEC,GAAKK,GAIX,OAAOA,GAGThc,EAAE2W,UAAUw5B,SAAW,SAAUpvC,GAC/B,OAAOwZ,EAAEkV,iBAAiBl/B,KAAK0C,SAAW1C,KAAM,IAAI2/B,iBAAiBnvB,IAGvEf,EAAE2W,UAAUpZ,SAAW,SAAUwD,GAC/B,OAAQ,KAAO,GAAKxQ,KAAKkH,KAAK,UAAU+W,MAAM,KAAKY,QAAQrO,IAG7Df,EAAE2W,UAAUjd,KAAO,WACjB,OAAOnJ,KAAKkH,KAAK,CACfipD,WAAY,YAIhB1gD,EAAE2W,UAAU6pC,YAAc,WACxB,MAAO,CACLzwD,OAAQ,EACR2D,MAAO,EACPtB,EAAG,EACHE,EAAG,IAIP0N,EAAE2W,UAAUznB,KAAO,SAAU6R,EAAGmZ,GAC9B3pB,KAAK0C,QAAU,SAAWinB,EAAIF,EAAEE,GAAK1Y,EAAEoV,gBAAgBrmB,KAAK87C,OAAQnyB,GACpE3pB,KAAKiH,SAAWuJ,EAChBsZ,EAAE9pB,KAAM,cAGVyP,EAAE2W,UAAUgqC,OAAS,SAAU5/C,GAG7B,OAFAxQ,KAAK0rD,SAAWl7C,EAChBxQ,KAAKosD,kBACEpsD,MAGTyP,EAAE2W,UAAUrd,GAAK,SAAUyH,EAAGmZ,GAC5B,IAAIH,EAAIxpB,KAAKorD,SAGb,OAFI5hC,EAAEhZ,IAAIgZ,EAAEhZ,KACZgZ,EAAEhZ,GAAK4a,EAAEprB,KAAK0C,QAAS8N,EAAGmZ,GACnB3pB,MAGTyP,EAAE2W,UAAUiqC,cAAgB,SAAU7/C,EAAGmZ,EAAGH,GAC1CxpB,KAAK09C,QAAUltC,EAAIuC,OAAOA,OAAOvC,GAAG+G,QAAQ,IAC5CiS,EAAE7O,aAAagP,EAAGnZ,IAGpBf,EAAE2W,UAAU/iB,YAAc,SAAUmN,GAClC,OAAOxQ,KAAKkH,KAAK,SAAU,GAAKlH,KAAKkH,KAAK,UAAUnC,QAAQ4kB,EAAEnZ,GAAK,IAAI6tB,OAAO,QAAQtS,OAAOvb,EAAG,UAAYA,EAAG,KAAKzL,QAAQ,MAAO,KAAK+hB,SAG1IrX,EAAE2W,UAAUmnC,kBAAoB,WAC9B,IAAI/8C,EAAIxQ,KAAK0C,QAAQ0J,cAAc,iCACnCoE,GAAKxQ,KAAK0vD,gBAAgBl/C,IAG5Bf,EAAE2W,UAAUspC,gBAAkB,SAAUl/C,GACtC,IAAImZ,EAAInZ,EAAE0T,WACVyF,GAAKA,EAAEssB,YAAYzlC,IAGrBf,EAAE2W,UAAUkqC,mBAAqB,SAAU9/C,GACzC,IAAImZ,EAAI3pB,KAAK0C,QAAQosD,UAAY9uD,KAAKiH,SAASmnD,UAAUpuD,KAAK0C,QAAQosD,UAGtE,OAFA9uD,KAAK0C,QAAQ2rD,gBAAkB79C,EAC/BmZ,GAAKA,EAAEklC,SAAWllC,EAAEjc,QAAQ1N,KAAKiH,SAAS0nD,cAAcn+C,EAAGmZ,EAAEklC,UACtD7uD,MAGTyP,EAAE2W,UAAUmqC,YAAc,SAAU//C,EAAGmZ,GACrC,IAAIlZ,EAAIzQ,KAAK0C,QACT2nB,EAAIrqB,KAAKkB,KAAOlB,KAAKkB,KAAKwB,QAAU+N,EACpCkC,EAAI,CACN69C,WAAY,eAEV5mC,GAAI,EACJE,EAAI9pB,KAAK8vD,gBACTrmC,GAAKK,EACTH,EAAI8B,GAAE,EAAI,CACRtsB,SAAS,EACT86B,WAAY,CACVw2B,IAAK,EACLC,YAAa,MACbF,WAAY,WAEb7mC,GACH,IAAI6C,EAAIxjB,EAAEghD,qBAAqBrgC,EAAEsQ,YAEjC,GAAIzpB,GAAKmZ,GAAKA,EAAExqB,QAAS,CACvB2qB,GAAK,OAASA,EAAEpnB,QAAQwhB,YAAcuF,GAAI,EAAIK,EAAIA,EAAE5jB,WAAa4jB,GAAK9pB,KAAKutD,kBAAkB5wC,KAAKmN,EAAE0hC,aACpGxrD,KAAKsJ,SAAWtJ,KAAKsJ,QAAQmV,UAAY+N,EAAEmkC,IAAM3wD,KAAKsJ,QAAQmV,SAC9DqL,IAAM9pB,KAAK8vD,gBAAkBhmC,EAAI9pB,KAAKiH,SAASwT,cAAc,YAAamP,GAAI,GAC9E,IAAI9Y,EAAIgZ,EAAEpnB,QAEV,IADCinB,EAAInZ,EAAE9N,QAAQqhB,aAAa,QAAUvT,EAAE9N,QAAQiY,aAAa,KAAMgP,EAAIqD,KACnEvD,EAAG,IAAKY,EAAE1P,aAAa,IAAK,GAAI6O,EAAEgD,EAAEmkC,KAAOtmC,EAAE1P,aAAa,KAAM6R,EAAEmkC,IAAKngD,EAAI,GAAGkM,MAAMC,KAAK0N,EAAEsgC,YAAalhC,EAAI,EAAGA,EAAIjZ,EAAEzP,OAAQ0oB,IAAK,CACpI,IAAI2B,EAAI5a,EAAEiZ,GACV2B,EAAEoU,WAAaxV,EAAE8V,KAAK8wB,WAAa,UAAYxlC,EAAEpH,UAAYlT,EAAEiK,YAAYqQ,GAE7ExB,GAAKE,GAAKA,EAAE1iB,IAAI,CACd1E,QAAS2nB,IAEXvZ,EAAE+/C,eAAe,+BAAgC,OAAQ7wD,KAAKiH,SAASqI,IAAM,IAAMqa,GACnFY,EAAEiC,EAAEikC,MAAQ3/C,EAAEoT,WAAWvJ,aAAa,KAAM6R,EAAEikC,WAAYjkC,EAAEikC,IAC5DlmC,EAAEiC,EAAEmkC,MAAQ7/C,EAAEoT,WAAWvJ,aAAa,KAAM6R,EAAEmkC,WAAYnkC,EAAEmkC,IAC5DxlC,EAAEqB,GAAG,SAAUhc,EAAGmZ,GAChB7Y,EAAE6J,aAAahI,EAAEgX,IAAMA,EAAGnZ,MAE5BC,EAAE0f,gBAAgB,aAClBnwB,KAAKutD,kBAAkB5wC,KAAKmN,GAC5B9pB,KAAKkB,OAASlB,KAAKiH,SAASi7C,YAAcliD,KAAKkH,KAAK,CAClDQ,KAAM,OACN,eAAgB,IAElB1H,KAAKktD,iBAAmBltD,KAAKosD,gBAAkBhiC,OAC1CN,WAAa9pB,KAAKosD,uBAAwBpsD,KAAKktD,iBAAkBltD,KAAK6vD,gBAAgBp/C,EAAGD,GAAIxQ,KAAKosD,kBAAmBpsD,KAAKsJ,SAAWtJ,KAAKsJ,QAAQnF,UAAYnE,KAAKktD,iBAAiBltD,KAAKsJ,QAAQhK,MAAM2vD,cAE9M,OAAOjvD,MAGTyP,EAAE2W,UAAU7kB,OAAS,SAAUiP,EAAGmZ,EAAGH,GACnC,IAWIgD,EAXA/b,EAAI,GACJ4Z,EAAIrqB,KAAK0C,QACTgqB,EAAI1sB,KAAK8wD,iBACTn+C,EAAI,CACNhP,MAAO,UACPotD,QAAS/wD,KAAKyrD,gBAAkB,EAAI,EACpCuF,QAAShxD,KAAKyrD,gBAAkB,EAAI,EACpC/N,QAAS,IACTv6C,MAAO,GAEL2mB,GAAI,EAMR,IAJA,IAAOtZ,EAAIgc,EAAI7Z,EAAI,iBAAoBnC,IAAMgc,EAAI3qB,EAAE8Q,EAAGnC,IACtDgc,IAAMA,GAAKE,GAAKvB,EAAEqB,GAAG,SAAUhc,EAAGmZ,GAChCnZ,IAAMkc,EAAE/C,KAAOG,GAAI,MACjBA,GAAK9pB,KAAK2vD,iBAAkB3vD,KAAK8wD,iBAAmBtkC,GACnDA,GAA8B,IAAKxsB,KAAK4tD,QAAS,CACpD,IAAIhkC,EAAI4C,EAAEkxB,QAAUlxB,EAAErpB,MAClB6mB,EAAIhqB,KAAKyrD,eAAiB,aAAa1/B,OAAOS,EAAEwkC,QAAS,MAAMjlC,OAAOS,EAAEukC,QAAS,KAAO,aAAahlC,OAAOS,EAAEukC,QAAS,MAAMhlC,OAAOS,EAAEwkC,QAAS,KAEnJ,IAAKr+C,EAAI,EAAGA,GAAK6Z,EAAErpB,MAAOwP,IAAK,CAC7B,IAAI8W,EAAIY,EAAEvF,WAAU,GAChB2G,EAAI,EAAIe,EAAErpB,MAAQ,EAAI,EAAIwP,EAC9B7B,EAAE2Y,EAAG,CACHtiB,OAAQqJ,EAAE7M,OAAS,UACnB,iBAAkBimB,EAAIjX,EACtB,eAAgB8Y,EAChBwlC,UAAWjnC,EACXtiB,KAAM,SAER+hB,EAAE9O,aAAa,SAAU8O,EAAE1F,aAAa,UAAY,IAAM,sBAC1DyF,IAAM1Y,EAAE2Y,EAAG,SAAUM,KAAK1W,IAAIvC,EAAE2Y,EAAG,UAAYgC,EAAG,IAAKhC,EAAEynC,UAAYzlC,GACrE9B,EAAIA,EAAEjnB,QAAQqY,YAAY0O,GAAKY,EAAEnG,YAAcmG,EAAEnG,WAAWspC,aAAa/jC,EAAGY,GAC5E5Z,EAAEnJ,KAAKmiB,GAGTzpB,KAAK4tD,QAAUn9C,QApBTzQ,KAAK2vD,iBAsBb,OAAO3vD,MAGTyP,EAAE2W,UAAUpe,KAAO,SAAUwI,GAE3B,YADA,IAAWA,IAAMA,GAAI,GACdxQ,KAAKkH,KAAK,CACfipD,WAAY3/C,EAAI,UAAY,aAIhCf,EAAE2W,UAAU+iC,aAAe,SAAU34C,EAAGmZ,EAAGH,GACzCxpB,KAAK2pB,GAAKnZ,EACVxQ,KAAKmH,QAAUnH,KAAK,iBAAmByP,EAAE2W,UAAU8iC,WAAWvsC,KAAK3c,KAAMA,KAAKmH,OAAQ,SAAUqiB,GAAIA,EAAE7O,aAAa,eAAgB3a,KAAK,iBAAkBA,KAAKmxD,WAAY,GAAM,iBAAmBxnC,GAAK,IAAMnZ,GAAKxQ,KAAKmxD,WAAa3nC,EAAE2G,gBAAgB,UAAWnwB,KAAKmxD,WAAY,GAAMnxD,KAAKiH,SAASi7C,YAAcliD,KAAK,kBAAoBwpB,EAAE7O,aAAa,eAAgB3a,KAAK,iBAAkBA,KAAKmxD,WAAY,IAGxZ1hD,EAAE2W,UAAU4nC,YAAc,WACxB,IAAKhuD,KAAKiH,SAASi7C,WAAY,OAAOliD,KAAK,iBAAmB,EAC9D,IAAIwQ,EAAIxQ,KAAK4/C,SAAS,gBAClBj2B,EAAI,EACR,GAAInZ,EAAEqO,QAAQ,QAAUrO,EAAEzP,OAAS,EAAG4oB,EAAI0B,EAAE7a,QAAQ,GAAI,KAAOA,EAAG,CAChE,IAAIgZ,EAAIvY,EAAEoV,gBAAgB5V,EAAG,QAC7BK,EAAE0Y,EAAG,CACHrmB,MAAOqN,EACP,eAAgB,IAElBxQ,KAAK0C,QAAQwhB,WAAWnJ,YAAYyO,GACpCG,EAAIH,EAAEhiB,UAAUrE,MAChBqmB,EAAEtF,WAAW+xB,YAAYzsB,GAE3B,OAAOG,GAGTla,EAAE2W,UAAUunC,WAAa,SAAUn9C,GACjC,IAAImZ,EAAI3pB,KACR,gEAAgEie,MAAM,KAAKjY,SAAQ,SAAUwjB,GAC3FG,EAAEH,GAAK7W,EAAEnC,EAAEgZ,GAAIG,EAAEH,OAEnBG,EAAEziB,KAAK,CACL0iB,EAAGD,EAAE1iB,SAAS2+C,QAAQj8B,EAAE+jC,YAAY/jC,EAAE9nB,EAAG8nB,EAAE5nB,EAAG4nB,EAAExmB,MAAOwmB,EAAEnqB,OAAQmqB,MAIrEla,EAAE2W,UAAUgrC,WAAa,SAAU5gD,GACjCA,IAAMxQ,KAAK2rD,iBAAmB3rD,KAAKqxD,aAAcrxD,KAAK2rD,QAAUn7C,EAAGxQ,KAAK6rD,OAAS7rD,KAAKiH,SAAS2kD,UAAU5rD,QAG3GyP,EAAE2W,UAAUkrC,YAAc,SAAU9gD,GAClC,IAAImZ,EAAI3pB,KAAK0C,QACT8mB,EAAIG,EAAErc,qBAAqB,SAAS,IAAM2D,EAAEoV,gBAAgBrmB,KAAK87C,OAAQ,SAC7EnyB,EAAE6jC,aAAe7jC,EAAE6jC,aAAahkC,EAAGG,EAAE8jC,YAAc9jC,EAAE5O,YAAYyO,GACjEA,EAAE+gC,YAAc1jC,OAAOlU,EAAEnC,EAAG,KAAKzL,QAAQ,WAAY,IAAIA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,MAGlG0K,EAAE2W,UAAUmrC,QAAU,WACpB,IAAI/gD,EAAIxQ,KAAK0C,QAEb,OADA8N,EAAE0T,WAAWnJ,YAAYvK,GAClBxQ,MAGTyP,EAAE2W,UAAUorC,UAAY,SAAUhhD,EAAGmZ,GACnC,OAAO3pB,KAAKkH,KAAK,CACfuqD,WAAYjhD,EACZkhD,WAAY/nC,KAIhBla,EAAE2W,UAAUynC,cAAgB,SAAUr9C,EAAGmZ,EAAGH,GAC1C,IAAI/Y,EAAIzQ,KAAK4tD,QACb,GAAIn9C,EAAG,IAAK,IAAI4Z,EAAI5Z,EAAE1P,OAAQspB,KAAMb,EAAE7M,KAAKlM,EAAE4Z,GAAI,WAAa7Z,EAAIuZ,KAAK1W,IAAIsW,GAAKlZ,EAAE4Z,GAAG6mC,WAAa,GAAI,GAAK,MAAQ1gD,EAAIxQ,KAAK4pB,EAAID,EAAGnZ,EAAGC,EAAE4Z,KAG1I5a,EAAE2W,UAAUgmC,gBAAkB,WAC5B,IAAI57C,EAAIxQ,KAAK2xD,OACThoC,EAAI3pB,KAAK4xD,OACTpoC,EAAIxpB,KAAK0rD,SACTj7C,EAAIzQ,KAAKmE,SACTkmB,EAAIrqB,KAAK6xD,OACT/nC,EAAI9pB,KAAK0C,QACTknB,EAAI5pB,KAAKyxD,YAAc,EACvBhoC,EAAIzpB,KAAK0xD,YAAc,EAC3BloC,IAAMI,GAAK5pB,KAAKmD,MAAOsmB,GAAKzpB,KAAKR,QACjCoqB,EAAI,CAAC,aAAeA,EAAI,IAAMH,EAAI,KAClCc,EAAEF,IAAMT,EAAEtiB,KAAK,UAAY+iB,EAAElC,KAAK,KAAO,KACzCqB,EAAII,EAAEtiB,KAAK,0BAA4BmJ,GAAKmZ,EAAEtiB,KAAK,UAAYmJ,EAAI,IAAMkC,EAAE3S,KAAK8xD,gBAAiBhoC,EAAE/F,aAAa,KAAM,GAAK,IAAMpR,EAAE3S,KAAK+xD,gBAAiBjoC,EAAE/F,aAAa,MAAQ,GAAK,MACpLwG,EAAE/Z,IAAM+Z,EAAEZ,KAAOC,EAAEtiB,KAAK,SAAWqL,EAAEnC,EAAG,GAAK,IAAMmC,EAAEgX,EAAG,GAAK,KAC9DC,EAAE7oB,QAAU+oB,EAAEnP,aAAa,YAAaiP,EAAEzB,KAAK,OAGjD1Y,EAAE2W,UAAU4rC,iBAAmB,SAAUxhD,EAAGmZ,EAAGH,GAC7C,YAAchZ,EAAIgZ,EAAE2G,gBAAgBxG,GAAK3pB,KAAK2pB,KAAOnZ,GAAKgZ,EAAE7O,aAAagP,EAAGnZ,GAC5ExQ,KAAK2pB,GAAKnZ,GAGZf,EAAE2W,UAAU6rC,QAAU,SAAUzhD,GAE9B,MADA,WAAaxQ,KAAK0C,QAAQshB,WAAa,MAAQxT,EAAIA,EAAI,KAAO,MAAQA,IAAMA,EAAI,OACzExQ,KAAKsrD,eAAe96C,IAG7Bf,EAAE2W,UAAU2lC,aAAe,SAAUv7C,EAAGmZ,GACtC,IAAIH,EAAIxpB,KAAKiH,SACTwJ,EAAIzQ,KAAKwrD,YACTnhC,GAAK5Z,GAAK+Y,GAAG9mB,SAAW8mB,EAAEwiC,IAC1Br5C,EAAI3S,KAAK0C,QACb8mB,EAAIa,IAAMb,EAAEwiC,IACZ,IAEIx/B,EAFA5C,GAAI,EACJE,EAAI9pB,KAAK6rD,MAKb,GAHAthC,EAAE/Z,IAAMmC,EAAEgI,aAAa,eAAgBnK,GAAIA,GAAKA,EAAGxQ,KAAK2pB,KAAOnZ,IAAMsZ,GAAI,IAAOS,EAAEvqB,KAAK2pB,KAAOhX,EAAEwd,gBAAgB,gBAChHnwB,KAAK2pB,GAAKnZ,EAENsZ,EAAG,CAIL,KAHCtZ,EAAIxQ,KAAK2iD,SAAWlyC,IAAMA,EAAEq7C,SAAU,GAGlCt/B,GAFL7C,EAAIU,EAAEsgC,YAEK5pD,OAAS,EAAG,GAAKyrB,IAAM5C,EAAG4C,IAAK,CAExC1C,GADArZ,EAAIkZ,EAAE6C,IACAzI,aAAa,gBACnB,IAAI0F,GAAKc,EAAET,GACPrZ,IAAMkC,IAAO,EAAInC,GAAKiZ,IAAMD,IAAMgD,GAAGnC,EAAEmjC,aAAa76C,EAAGgX,EAAE6C,IAAK5C,GAAI,IAAYyB,EAAEvB,IAAMtZ,GAAKiZ,KAAOc,EAAE/Z,IAAM,GAAKA,MAAI6Z,EAAEmjC,aAAa76C,EAAGgX,EAAE6C,EAAI,IAAM,MAAO5C,GAAI,IAGlKA,IAAMS,EAAEmjC,aAAa76C,EAAGgX,EAAEH,EAAI,EAAI,IAAM,MAAOI,GAAI,GAGrD,OAAOA,GAGFna,EAruBL,GAwuBJA,EAAE2W,UAAU,sBAAwB3W,EAAE2W,UAAU+iC,aAChD15C,EAAE2W,UAAU8rC,QAAUziD,EAAE2W,UAAU6rC,QAElCxiD,EAAE2W,UAAU+rC,aAAe1iD,EAAE2W,UAAUgsC,sBAAwB3iD,EAAE2W,UAAUisC,sBAAwB5iD,EAAE2W,UAAUksC,eAAiB7iD,EAAE2W,UAAUmsC,aAAe9iD,EAAE2W,UAAUosC,aAAe/iD,EAAE2W,UAAUqsC,iBAAmBhjD,EAAE2W,UAAUssC,iBAAmBjjD,EAAE2W,UAAUusC,oBAAsB,SAAUniD,EAAGmZ,GACjS3pB,KAAK2pB,GAAKnZ,EACVxQ,KAAKmsD,aAAc,GAId18C,KAETmd,EAAE9E,EAAG,oCAAqC,CAACA,EAAE,qBAAqB,SAAUrY,GAC1E,IAAIzG,EAiBJ,OAfA,SAAWA,GAET,IAAI8e,EADJ9e,EAAE4pD,cAAgB,GAGlB5pD,EAAE6pD,gBAAkB,SAAUpjD,GAE5B,YADA,IAAWA,IAAMA,EAAIqY,GACd9e,EAAE4pD,cAAcnjD,IAAMzG,EAAE4pD,cAAc9qC,IAG/C9e,EAAE8pD,qBAAuB,SAAUlgD,EAAGgZ,EAAGiB,GACvC7jB,EAAE4pD,cAAchgD,GAAKgZ,EAChB9D,IAAK+E,IAAG/E,EAAIlV,EAAGnD,EAAEsjD,SAAWnnC,IAXrC,CAaG5iB,IAAMA,EAAI,KAENA,KAET4jB,EAAE9E,EAAG,gCAAiC,CAACA,EAAE,mCAAoCA,EAAE,uBAAuB,SAAUrY,EAAGzG,GACjH,IAAI8e,EAAI9nB,MAAQA,KAAKgzD,WAAa,WAChC,IAAIhqD,EAAI,SAAUohB,EAAGR,GASnB,OARA5gB,EAAI2d,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUgC,EAAGmZ,GACjCnZ,EAAE4hC,UAAYzoB,IACX,SAAUnZ,EAAGmZ,GAChB,IAAK,IAAII,KAAKJ,EAAGA,EAAE+C,eAAe3C,KAAOvZ,EAAEuZ,GAAKJ,EAAEI,KAG7ChhB,EAAEohB,EAAGR,IAGd,OAAO,SAAUQ,EAAGR,GAClB,SAASnZ,IACPzQ,KAAK6N,YAAcuc,EAGrBphB,EAAEohB,EAAGR,GACLQ,EAAEhE,UAAY,OAASwD,EAAIjD,OAAOyb,OAAOxY,IAAMnZ,EAAE2V,UAAYwD,EAAExD,UAAW,IAAI3V,IAnBhD,GAsB9Bya,EAAIliB,EAAEo2C,QACNxsC,EAAI5J,EAAEO,OACNwhB,EAAI/hB,EAAEm3C,SACNtzB,EAAI7jB,EAAEq3C,MACN9zB,EAAIvjB,EAAE63C,KACN9+C,EAAIiH,EAAEg4C,YAEV,OAAO,SAAUh4C,GACf,SAASohB,EAAER,EAAGnZ,EAAGuZ,EAAGoB,EAAGta,EAAG2Y,EAAGha,EAAG8a,EAAGU,EAAGppB,GACpC,IAgBIwoB,EAhBAP,EAAI9gB,EAAE2T,KAAK3c,OAASA,KAwBxB,OAvBA8pB,EAAEmpC,kBAAoBnpC,EAAEopC,cACxBppC,EAAEqpC,mBAAqBrpC,EAAEopC,cACzBppC,EAAEnrB,KAAKirB,EAAG,KACVE,EAAE6hC,QAAUl7C,EACZqZ,EAAEjoB,EAAImoB,EACNF,EAAE/nB,EAAIqpB,EACNtB,EAAEspC,QAAU3pC,EACZK,EAAEupC,QAAU5jD,EACZqa,EAAEwpC,SAAWroC,EACbnB,EAAE7e,UAAYpJ,EACdioB,EAAEtnB,SAAS,WAAaX,EAAI,wBAA0B,oBACtDA,GAAKioB,EAAEtnB,SAAS,cAAgBX,GAChCioB,EAAE5oB,KAAO0oB,EAAE1oB,UAAK,EAAQ,EAAG,EAAGqpB,GAAGrjB,KAAK,CACpCy7C,OAAQ,IAGV,iBAAoB7xC,KAAOuZ,EAAI,iBAAiB/L,KAAKxN,KAAOgZ,EAAE7iB,SAAS2+C,QAAQ90C,MAAQgZ,EAAEypC,UAAYziD,GACrGgZ,EAAE0pC,KAAOppC,EAAEqpC,UACX3pC,EAAErL,QAAU,EACZqL,EAAE4pC,eAAiB,EACnB5pC,EAAE6pC,SAAW/pC,EAAEs4B,YAAc73B,EAC7BP,EAAE8pC,aAAe,GACjB9pC,EAAE+pC,YAAc,EACT/pC,EAyLT,OAtLAhC,EAAEsC,EAAGphB,GAELohB,EAAEhE,UAAUumC,YAAc,SAAU/iC,IAClCA,EAAI,CACFhpB,KAAM,EACNgsD,OAAQ,GACRC,MAAO,GACPjjC,MACI5pB,KAAK6zD,cAAgB7zD,KAAK6zD,YAAcjqC,EAAG5pB,KAAKwzD,MAAQzoC,EAAE/qB,KAAK8zD,WAAa9zD,KAAKkH,KAAK,CAC1FrF,EAAG7B,KAAK8zD,aAIZ1pC,EAAEhE,UAAU2tC,cAAgB,SAAUnqC,EAAGnZ,GACvCzQ,KAAKozD,QAAUxpC,EACf5pB,KAAKg0D,QAAQvjD,EAAGsZ,KAAKw2B,MAAM32B,GAAK5pB,KAAKi0D,iBAAmBj0D,KAAK8zD,WAG/D1pC,EAAEhE,UAAU8tC,cAAgB,SAAUtqC,EAAGnZ,GACvCzQ,KAAKqzD,QAAUzpC,EACf5pB,KAAKg0D,QAAQvjD,EAAGmZ,EAAI5pB,KAAKm0D,WAG3B/pC,EAAEhE,UAAU4tC,QAAU,SAAUpqC,EAAGnZ,GACjCzQ,KAAKgsD,IAAMhsD,KAAKgsD,IAAI9kD,KAAK0iB,EAAGnZ,GAAKzQ,KAAK4zD,aAAahqC,GAAKnZ,GAG1D2Z,EAAEhE,UAAU5lB,IAAM,SAAUopB,GAC1B,GAAIA,EAAG,CACL,IAAInZ,EAAI,GACRmZ,EAAIiD,EAAEjD,GACNQ,EAAEgqC,UAAUpuD,SAAQ,SAAUgkB,QAC5B,IAAuBJ,EAAEI,KAAOvZ,EAAEuZ,GAAKJ,EAAEI,UAAWJ,EAAEI,OAExDhqB,KAAKkB,KAAKV,IAAIiQ,GACd,IAAIuZ,EAAK,UAAWvZ,EACpB,aAAcA,GAAK,eAAgBA,EAAIzQ,KAAKq0D,oBAAsBrqC,GAAKhqB,KAAKs0D,gBAG9E,OAAO7kD,EAAE2W,UAAU5lB,IAAImc,KAAK3c,KAAM4pB,IAGpCQ,EAAEhE,UAAUlgB,QAAU,WACpBnE,EAAE/B,KAAK0C,QAAS,cAChBX,EAAE/B,KAAK0C,QAAS,cAChB1C,KAAKkB,MAAQlB,KAAKkB,KAAKgF,UACvBlG,KAAKgsD,MAAQhsD,KAAKgsD,IAAMhsD,KAAKgsD,IAAI9lD,WACjCuJ,EAAE2W,UAAUlgB,QAAQyW,KAAK3c,OAG3BoqB,EAAEhE,UAAU8iC,WAAa,SAAUt/B,EAAGnZ,GACpCmZ,IAAM5pB,KAAK2zD,UAAW,GACtB3zD,KAAK0H,KAAOkiB,EACZ5pB,KAAKg0D,QAAQvjD,EAAGmZ,IAGlBQ,EAAEhE,UAAU5e,QAAU,WACpBxH,KAAK2rD,SAAW,IAAM3rD,KAAKwzD,KAAKrwD,OAAS,IAAMnD,KAAKwzD,KAAKh0D,QAAUQ,KAAKs0D,gBACxE,IAAI1qC,EAAI5pB,KAAKye,QACThO,EAAI8b,EAAEvsB,KAAKu0D,YAAa3qC,GAC5B,MAAO,CACLzmB,MAAOnD,KAAKmD,MACZ3D,OAAQQ,KAAKR,OACbqC,EAAG7B,KAAKwzD,KAAK3xD,EAAI4O,EACjB1O,EAAG/B,KAAKwzD,KAAKzxD,EAAI6nB,IAIrBQ,EAAEhE,UAAU6tC,eAAiB,WAC3B,OAAOj0D,KAAKiH,SAASi7C,YAAcliD,KAAKgsD,IAAMhsD,KAAKgsD,IAAIgC,cAAgB,EAAI,GAAKhuD,KAAK,gBAAkB6C,SAAS7C,KAAK,gBAAiB,IAAM,GAAK,EAAI,GAGvJoqB,EAAEhE,UAAUouC,aAAe,SAAU5qC,GACnC5pB,KAAKy0D,cAAgB7qC,GAGvBQ,EAAEhE,UAAU6lC,MAAQ,WAClB,IAAIriC,EAAI5pB,KAAK2rD,QACb3rD,KAAKkB,KAAKkG,IAAIpH,MACdA,KAAKkH,KAAK,CACRhG,KAAMgqB,EAAEtB,GAAKA,EAAI,GACjB/nB,EAAG7B,KAAK6B,EACRE,EAAG/B,KAAK+B,IAEV/B,KAAKgsD,KAAO9gC,EAAElrB,KAAKozD,UAAYpzD,KAAKkH,KAAK,CACvCksD,QAASpzD,KAAKozD,QACdC,QAASrzD,KAAKqzD,WAIlBjpC,EAAEhE,UAAU8sC,cAAgB,SAAUtpC,EAAGnZ,GACvCsa,EAAEnB,GAAKA,IAAM5pB,KAAKyQ,KAAOzQ,KAAKyQ,GAAKmZ,EAAG5pB,KAAKq0D,qBAAuBr0D,KAAKyQ,QAAK,GAG9E2Z,EAAEhE,UAAUsuC,QAAU,SAAU9qC,EAAGnZ,GACjCzQ,KAAKg0D,QAAQvjD,EAAGmZ,IAGlBQ,EAAEhE,UAAU7kB,OAAS,SAAUqoB,GAE7B,OADAA,IAAM5pB,KAAKiH,SAASi7C,aAAeliD,KAAKs0D,gBAAiBt0D,KAAKgsD,KAAOhsD,KAAKgsD,IAAIzqD,OAAOqoB,IAC9E5pB,MAGToqB,EAAEhE,UAAU+iC,aAAe,SAAUv/B,EAAGnZ,GACtCzQ,KAAKmH,OAASyiB,EACd5pB,KAAKg0D,QAAQvjD,EAAGmZ,IAGlBQ,EAAEhE,UAAU,sBAAwB,SAAUwD,EAAGnZ,GAC/CmZ,IAAM5pB,KAAK2zD,UAAW,GACtB3zD,KAAK,gBAAkB4pB,EACvB5pB,KAAKg0D,QAAQvjD,EAAGmZ,IAGlBQ,EAAEhE,UAAU,oBAAsB,SAAUwD,GAC1C5pB,KAAKsnD,UAAY19B,GAGnBQ,EAAEhE,UAAUgrC,WAAa,SAAUxnC,QACjC,IAAuBA,GAAK5pB,KAAKkB,KAAKgG,KAAK,CACzChG,KAAM0oB,IAER5pB,KAAKq0D,qBAGPjqC,EAAEhE,UAAUkuC,cAAgB,WAC1B,IAAI1qC,EAAI5pB,KAAKkB,KAAKwB,QAAQpD,MACtBmR,EAAI,GACJuZ,EAAIhqB,KAAKye,QACT2M,EAAIprB,KAAKwzD,KAAOzoC,EAAE/qB,KAAK20D,eAAiB5pC,EAAE/qB,KAAKy0D,iBAAmBz0D,KAAKsnD,YAAcp8B,EAAElrB,KAAKkB,KAAKyqD,SAAWvhC,EAAEqpC,UAAYzzD,KAAKkB,KAAKsG,UACxIxH,KAAKmD,MAAQnD,KAAK40D,iBAClB50D,KAAKR,QAAUQ,KAAKy0D,eAAiBrpC,EAAE5rB,QAAU,GAAK,EAAIwqB,EAC1DJ,EAAI5pB,KAAKiH,SAAS4tD,YAAYjrC,GAAKA,EAAEvlB,SAAUrE,KAAKkB,MACpDlB,KAAK0zD,eAAiB1pC,EAAID,KAAKnlB,KAAK5E,KAAKkB,KAAK4zD,kBAAoBlrC,GAAGnZ,EAAG2a,EAAE5rB,QAAUi+C,KACpFz9C,KAAKy0D,gBAAkBz0D,KAAK0zD,iBAAmB1zD,KAAKy0D,cAAgB7qC,EAAEQ,GAAK,GAC3EpqB,KAAK2zD,WAAa3zD,KAAKgsD,OAAQhiC,EAAIhqB,KAAKgsD,IAAMhsD,KAAKuzD,UAAYvzD,KAAKiH,SAASsoC,OAAOvvC,KAAKuzD,WAAavzD,KAAKiH,SAAS8tD,QAAUvyD,UAAU,WAAaxC,KAAKiL,UAAY,GAAK,yBAA2BjL,KAAKiL,UAAY,eAAiBjL,KAAKiL,UAAY,OAAS,KAAM+e,EAAE5iB,IAAIpH,OAAQgqB,EAAIhqB,KAAKi0D,iBAAkBxjD,EAAE5O,EAAImoB,EAAGvZ,EAAE1O,GAAK/B,KAAKszD,UAAYtzD,KAAK0zD,eAAiB,GAAK1pC,EAAGvZ,EAAEtN,MAAQ4mB,KAAKw2B,MAAMvgD,KAAKmD,OAAQsN,EAAEjR,OAASuqB,KAAKw2B,MAAMvgD,KAAKR,QAASQ,KAAKgsD,IAAI9kD,KAAK0L,EAAEnC,EAAGzQ,KAAK4zD,eAAgB5zD,KAAK4zD,aAAe,KAGpfxpC,EAAEhE,UAAUiuC,kBAAoB,WAC9B,IAAIzqC,EAAI5pB,KAAKkB,KACblB,KAAKs0D,gBACL,IAAI7jD,EAAIzQ,KAAKszD,SAAW,EAAItzD,KAAK0zD,eAC7B1pC,EAAIuC,EAAEvsB,KAAKu0D,YAAav0D,KAAKye,SACjCyM,EAAElrB,KAAK20D,eAAiB30D,KAAKwzD,OAAS,WAAaxzD,KAAKsnD,WAAa,UAAYtnD,KAAKsnD,aAAet9B,GAAK,CACxG4iC,OAAQ,GACRC,MAAO,GACP7sD,KAAKsnD,YAActnD,KAAK20D,aAAe30D,KAAKwzD,KAAKrwD,QAC/C6mB,IAAMJ,EAAE/nB,GAAK4O,IAAMmZ,EAAE7nB,IAAG6nB,EAAE1iB,KAAK,IAAK8iB,GAAIJ,EAAEorC,qBAAuBh1D,KAAKwzD,KAAO5pC,EAAEpiB,SAAQ,SAAM,IAAuBiJ,GAAKmZ,EAAE1iB,KAAK,IAAKuJ,IACzImZ,EAAE/nB,EAAImoB,EACNJ,EAAE7nB,EAAI0O,GAGR2Z,EAAEhE,UAAU6uC,YAAc,SAAUrrC,GAClC5pB,KAAK20D,aAAe5pC,EAAEnB,GAAKA,OAAI,GAGjCQ,EAAEhE,UAAUwuC,eAAiB,WAC3B,IAAIhrC,EAAI5pB,KAAKye,QACThO,EAAI8b,EAAEvsB,KAAKu0D,YAAa3qC,GAE5B,OADAA,EAAI2C,EAAEvsB,KAAKk1D,aAActrC,IACjB5pB,KAAK20D,cAAgB30D,KAAKwzD,KAAKrwD,OAAS,GAAKsN,EAAImZ,GAG3DQ,EAAEhE,UAAUknC,QAAU,SAAU1jC,GAC9B5pB,KAAK6B,EAAI+nB,EACT5pB,KAAK6zD,cAAgBjqC,GAAK5pB,KAAK6zD,YAAc7zD,KAAK40D,iBAAkB50D,KAAK,mBAAoB,GAC7FA,KAAK8zD,SAAW/pC,KAAKw2B,MAAM32B,GAC3B5pB,KAAKkH,KAAK,aAAclH,KAAK8zD,WAG/B1pC,EAAEhE,UAAUinC,QAAU,SAAUzjC,GAC9B5pB,KAAKm0D,SAAWn0D,KAAK+B,EAAIgoB,KAAKw2B,MAAM32B,GACpC5pB,KAAKkH,KAAK,aAAclH,KAAKm0D,WAG/B/pC,EAAEqpC,UAAY,CACZtwD,MAAO,EACP3D,OAAQ,EACRqC,EAAG,EACHE,EAAG,GAELqoB,EAAEgqC,UAAY,8HAA8Hn2C,MAAM,KAC3ImM,EAnNF,CAoNL3a,MAEJmd,EAAE9E,EAAG,+BAAgC,CAACA,EAAE,uBAAuB,SAAUrY,GACvE,SAASzG,EAAEA,EAAGyG,EAAGwB,EAAGmZ,EAAGR,GACrB,IAAInZ,EAAI,GAER,GAAImZ,EAAG,CACL,IAAII,EAAIJ,EAAEg/B,OAAS,EACfx9B,EAAIyB,EAAEjD,EAAE9Y,EAAGG,GACfA,EAAI4b,EAAEjD,EAAE9Y,EAAGsZ,GAAKnZ,GAChB,IAAIH,GAAK8Y,EAAEi/B,KAAO,GAAK,KACvBz+B,EAAIR,EAAEurC,OACN,IAAI1rC,EAAIoD,EAAEjD,EAAE3N,KAAM,KAAO8N,KAAK8gC,KAAKjhC,EAAEi/B,KAAO,GAAK7+B,EAAI,EAAID,KAAK4yB,KAC1D7vB,EAAI/C,KAAKq0B,IAAIp0B,GACbO,EAAIR,KAAKmmC,IAAIlmC,GACbiB,EAAIlB,KAAKq0B,IAAIttC,GACbjP,EAAIkoB,KAAKmmC,IAAIp/C,GACjBkZ,EAAI6C,EAAEjD,EAAEwrC,QAAS,KAAOtkD,EAAIkZ,EAAID,KAAK4yB,GAAK,EAAI,GAC9ClsC,EAAEnJ,KAAK,CAAC,IAAK0B,EAAIoiB,EAAI0B,EAAGrd,EAAIwB,EAAIsZ,GAAI,CAAC,IAAKa,EAAGna,EAAG,EAAG+Y,EAAG6C,EAAEjD,EAAEyrC,UAAW,GAAIrsD,EAAIoiB,EAAIH,EAAGxb,EAAIwB,EAAIpP,IAC5F+Q,EAAEwX,IAAM3Z,EAAEnJ,KAAKmiB,EAAI,CAAC,IAAKzgB,EAAIohB,EAAIa,EAAGxb,EAAI2a,EAAIvoB,GAAK,CAAC,IAAKmH,EAAIohB,EAAIa,EAAGxb,EAAI2a,EAAIvoB,GAAI,CAAC,IAAKuoB,EAAGA,EAAG,EAAGJ,EAAGpX,EAAEgX,EAAEyrC,WAAa,EAAIzrC,EAAEyrC,UAAY,EAAGrsD,EAAIohB,EAAI0C,EAAGrd,EAAI2a,EAAIG,IACzJd,GAAKhZ,EAAEnJ,KAAK,CAAC,MAGf,OAAOmJ,EAGT,SAASqX,EAAE9e,EAAGyG,EAAGwB,EAAGmZ,EAAGR,GACrB,OAAOA,GAAKA,EAAE9Y,EAAIoa,EAAEliB,EAAGyG,EAAGwB,EAAGmZ,EAAGR,GAAK,CAAC,CAAC,IAAK5gB,EAAGyG,GAAI,CAAC,IAAKzG,EAAIiI,EAAGxB,GAAI,CAAC,IAAKzG,EAAIiI,EAAGxB,EAAI2a,GAAI,CAAC,IAAKphB,EAAGyG,EAAI2a,GAAI,CAAC,MAG7G,SAASc,EAAEliB,EAAGyG,EAAGwB,EAAGmZ,EAAGR,GAErB,MAAO,CAAC,CAAC,IAAK5gB,GADd4gB,EAAIA,GAAKA,EAAE9Y,GAAK,GACKrB,GAAI,CAAC,IAAKzG,EAAIiI,EAAI2Y,EAAGna,GAAI,CAAC,IAAKzG,EAAIiI,EAAGxB,EAAGzG,EAAIiI,EAAGxB,EAAGzG,EAAIiI,EAAGxB,EAAIma,GAAI,CAAC,IAAK5gB,EAAIiI,EAAGxB,EAAI2a,EAAIR,GAAI,CAAC,IAAK5gB,EAAIiI,EAAGxB,EAAI2a,EAAGphB,EAAIiI,EAAGxB,EAAI2a,EAAGphB,EAAIiI,EAAI2Y,EAAGna,EAAI2a,GAAI,CAAC,IAAKphB,EAAI4gB,EAAGna,EAAI2a,GAAI,CAAC,IAAKphB,EAAGyG,EAAI2a,EAAGphB,EAAGyG,EAAI2a,EAAGphB,EAAGyG,EAAI2a,EAAIR,GAAI,CAAC,IAAK5gB,EAAGyG,EAAIma,GAAI,CAAC,IAAK5gB,EAAGyG,EAAGzG,EAAGyG,EAAGzG,EAAI4gB,EAAGna,IAG/Q,IAAImD,EAAInD,EAAE2vC,QACNr0B,EAAItb,EAAE0wC,SACNtzB,EAAIpd,EAAEoxC,KACV,MAAO,CACLyU,IAAKtsD,EACLusD,QAAS,SAAUvsD,EAAGyG,EAAGwB,EAAGmZ,EAAGR,GAC7B,IAAInZ,EAAIsZ,KAAKnlB,IAAIglB,GAAKA,EAAE9Y,GAAK,EAAGG,EAAGmZ,GAC/BJ,EAAIvZ,EAAI,EACR2a,EAAIxB,GAAKA,EAAEwpC,QACfxpC,EAAIA,GAAKA,EAAEypC,SAAW,EACtB,IAAIviD,EAAIoa,EAAEliB,EAAGyG,EAAGwB,EAAGmZ,EAAG,CACpBtZ,EAAGL,IAEL,OAAKsa,EAAEK,IACPpiB,EAAIoiB,GAAKna,EAAI2Y,EAAIna,EAAIua,GAAKJ,EAAIna,EAAI2a,EAAIJ,EAAIlZ,EAAEiU,OAAO,EAAG,EAAG,CAAC,IAAK/b,EAAIiI,EAAG2Y,EAAI,GAAI,CAAC,IAAK5gB,EAAIiI,EAAI,EAAG2Y,GAAI,CAAC,IAAK5gB,EAAIiI,EAAG2Y,EAAI,GAAI,CAAC,IAAK5gB,EAAIiI,EAAGxB,EAAI2a,EAAI3Z,IAAMK,EAAEiU,OAAO,EAAG,EAAG,CAAC,IAAK/b,EAAIiI,EAAGmZ,EAAI,GAAI,CAAC,IAAKgB,EAAGxB,GAAI,CAAC,IAAK5gB,EAAIiI,EAAGmZ,EAAI,GAAI,CAAC,IAAKphB,EAAIiI,EAAGxB,EAAI2a,EAAI3Z,IAAM,GAAKzH,EAAIoiB,EAAIxB,EAAIna,EAAIua,GAAKJ,EAAIna,EAAI2a,EAAIJ,EAAIlZ,EAAEiU,OAAO,EAAG,EAAG,CAAC,IAAK/b,EAAG4gB,EAAI,GAAI,CAAC,IAAK5gB,EAAI,EAAG4gB,GAAI,CAAC,IAAK5gB,EAAG4gB,EAAI,GAAI,CAAC,IAAK5gB,EAAGyG,EAAIgB,IAAMK,EAAEiU,OAAO,EAAG,EAAG,CAAC,IAAK/b,EAAGohB,EAAI,GAAI,CAAC,IAAKgB,EAAGxB,GAAI,CAAC,IAAK5gB,EAAGohB,EAAI,GAAI,CAAC,IAAKphB,EAAGyG,EAAIgB,IAAMmZ,GAAKA,EAAIQ,GAAKgB,EAAIpiB,EAAIghB,GAAKoB,EAAIpiB,EAAIiI,EAAI+Y,EAAIlZ,EAAEiU,OAAO,EAAG,EAAG,CAAC,IAAKqG,EAAI,EAAG3b,EAAI2a,GAAI,CAAC,IAAKgB,EAAG3b,EAAI2a,EAAI,GAAI,CAAC,IAAKgB,EAAI,EAAG3b,EAAI2a,GAAI,CAAC,IAAKphB,EAAIyH,EAAGhB,EAAI2a,IAAMR,GAAK,EAAIA,GAAKwB,EAAIpiB,EAAIghB,GAAKoB,EAAIpiB,EAAIiI,EAAI+Y,GAAKlZ,EAAEiU,OAAO,EAAG,EAAG,CAAC,IAAKqG,EAAI,EAAG3b,GAAI,CAAC,IAAK2b,EAAG3b,EAAI,GAAI,CAAC,IAAK2b,EAAI,EAAG3b,GAAI,CAAC,IAAKwB,EAAIR,EAAGhB,IACxsBqB,GAFWA,GAIpB0kD,OAAQ,SAAU/lD,EAAGqY,EAAG7W,EAAGmZ,GACzB,OAAOphB,EAAEyG,EAAIwB,EAAI,EAAG6W,EAAIsC,EAAI,EAAGnZ,EAAI,EAAGmZ,EAAI,EAAG,CAC3Cw+B,MAAO,GAAK7+B,KAAK4yB,GACjBkM,IAAK,IAAM9+B,KAAK4yB,GAChB1gC,MAAM,KAGVw5C,QAAS,SAAUzsD,EAAGyG,EAAGwB,EAAGmZ,GAC1B,MAAO,CAAC,CAAC,IAAKphB,EAAIiI,EAAI,EAAGxB,GAAI,CAAC,IAAKzG,EAAIiI,EAAGxB,EAAI2a,EAAI,GAAI,CAAC,IAAKphB,EAAIiI,EAAI,EAAGxB,EAAI2a,GAAI,CAAC,IAAKphB,EAAGyG,EAAI2a,EAAI,GAAI,CAAC,OAEvG2qC,KAAMjtC,EACN4tC,YAAaxqC,EACbyqC,OAAQ7tC,EACR8tC,SAAU,SAAU5sD,EAAGyG,EAAGwB,EAAGmZ,GAC3B,MAAO,CAAC,CAAC,IAAKphB,EAAIiI,EAAI,EAAGxB,GAAI,CAAC,IAAKzG,EAAIiI,EAAGxB,EAAI2a,GAAI,CAAC,IAAKphB,EAAGyG,EAAI2a,GAAI,CAAC,OAEtE,gBAAiB,SAAUphB,EAAGyG,EAAGwB,EAAGmZ,GAClC,MAAO,CAAC,CAAC,IAAKphB,EAAGyG,GAAI,CAAC,IAAKzG,EAAIiI,EAAGxB,GAAI,CAAC,IAAKzG,EAAIiI,EAAI,EAAGxB,EAAI2a,GAAI,CAAC,WAItEwC,EAAE9E,EAAG,mCAAoC,CAACA,EAAE,6BAA8BA,EAAE,mBAAoBA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GACvI,IAAI8D,EAAI5iB,EAAEizC,IACNrpC,EAAI5J,EAAE8yC,OACN/wB,EAAI/hB,EAAEgzC,IACNnvB,EAAI/E,EAAE5gB,KACNqlB,EAAIzE,EAAEve,OACNxH,EAAI+lB,EAAEs4B,SACNnvC,EAAI6W,EAAE04B,WACNp2B,EAAItC,EAAE+4B,KACV,OAAO,WACL,SAASj3B,EAAEnZ,GACT,IAAImZ,EAAInZ,EAAEs+C,OACV/uD,KAAKiH,SAAWwJ,EAAExJ,SAClBjH,KAAK61D,WAAaplD,EAClBzQ,KAAKmD,MAAQsN,EAAEu+C,UACfhvD,KAAK81D,eAAiBlsC,GAAKA,EAAEmsC,WAC7B/1D,KAAKivD,YAAcrlC,GAAKA,EAAEqlC,YAC1BjvD,KAAKg2D,YAAcpsC,GAAK,aAAeA,EAAEm9B,cACzC/mD,KAAKi2D,UAAYrsC,GAAK,WAAaA,EAAEq+B,YACrCjoD,KAAKqE,SAAWulB,GAAKA,EAAEvlB,SAoKzB,OAjKAulB,EAAExD,UAAU8vC,SAAW,WACrB,IAAIzlD,EAAIzQ,KAAK61D,WACTjsC,EAAInZ,EAAE/N,QACNsG,EAAIyH,EAAExJ,SACN6J,EAAIsZ,EAAE3Z,EAAEk7C,QAAS,IAAIztC,WACrBuL,GAAK,IAAM3Y,EAAE+N,QAAQ,KACrBiO,EAAIlD,EAAE+gC,WACV3hD,EAAIhJ,KAAKmD,QAAUsN,EAAEo7C,OAAS7iD,EAAEgjD,IAChC,IACI/gC,EAAI,CAACna,EAAG9Q,KAAKg2D,SAAUh2D,KAAKi2D,OAAQj2D,KAAK81D,eAAgB91D,KAAKivD,YAAajvD,KAAKqE,SAAUrE,KAAKmD,OAAOglB,OAE1G,GAAI8C,IAAMxa,EAAE0lD,UAAW,CAIrB,IAHA1lD,EAAE0lD,UAAYlrC,SACPxa,EAAE2lD,YAEJnrC,EAAI6B,EAAE/rB,OAAQkqB,KAAMrB,EAAEqsB,YAAYnpB,EAAE7B,IAEzCxB,GAAKzpB,KAAKg2D,UAAYh2D,KAAKmD,QAAU,IAAM2N,EAAE+N,QAAQ,QAAU7e,KAAKi2D,QAT9D,WAS0E33C,KAAKxN,IAAM,KAAOA,IAAM9H,GAAKA,EAAE+R,YAAY6O,GAAI9Y,EAAI,IAAIrB,EAAEqB,GAAI9Q,KAAKq2D,WAAWvlD,EAAEuT,OAAQvT,EAAEw5C,SAAS75C,EAAE/N,SAAU1C,KAAKs2D,YAAat2D,KAAKg2D,WAAa,KAAOpsC,EAAE2gC,aAAe,IAAI1rC,QAAQ,MAAapO,EAAEvJ,KAAK,QAASlH,KAAKu2D,iBAAiB9lD,EAAEk7C,SAAW,GAAI,CAAC,OAAQ,UAAW3iD,GAAKA,EAAEitC,YAAYrsB,IAAMA,EAAE7O,YAAY6Q,EAAEsjB,eAAelvC,KAAKu2D,iBAAiBzlD,KAC5a/O,EAAE/B,KAAKivD,cAAgBx+C,EAAEy8C,kBAAoBz8C,EAAEy8C,iBAAiBltD,KAAKivD,eAIzErlC,EAAExD,UAAUkwC,UAAY,WACtB,IAKSxlD,EALLL,EAAIzQ,KACJ4pB,EAAI5pB,KAAK61D,WACT7sD,EAAI6jB,EAAEjD,EAAElnB,QAAS,KAGrB,IAFAknB,EAAEkrC,sBAAmB,GAEThkD,EAAI8Y,EAAElnB,QAAQ+qD,aAAiB,gBAAgBnvC,KAAKxN,EAAEy5C,aAAe,MAAM3gC,EAAElnB,QAAQuzC,YAAYnlC,GAE7G,GAAG9K,QAAQ2W,KAAKiN,EAAElnB,QAAQgP,iBAAiB,wBAAwB,SAAU+X,EAAG3Y,GAC9E2Y,EAAE+sC,aAAe/sC,EAAEgtC,kBAAoB,IAAM3lD,GAAK,IAAM2Y,EAAEgtC,gBAAgBj3B,WAAa5V,EAAEkrC,iBAAmBlrC,EAAE3iB,SAAS4tD,iBAAY,EAAQprC,EAAEgtC,kBAAmB5pC,EAAEpD,EAAG,CACnKgnC,GAAIhgD,EAAEimD,cAAcjtC,EAAE+sC,aACtB30D,EAAGmH,QAGP,IAAIygB,EAAIzpB,KAAKmD,OAAS,EAEtB,GAAIsmB,EAAG,CACL,IAAIW,EAAI,SAAUtZ,EAAGkZ,GACnB,IAAIF,EAAIhZ,EAAEy5C,aAAe,GACrBlgC,EAAIP,EAAE/kB,QAAQ,YAAa,QAAQkZ,MAAM,KACzCzN,GAAKC,EAAEwlD,SAAW,EAAI5rC,EAAEtpB,QAAU,EAAI6oB,EAAElnB,QAAQioD,WAAW5pD,QAC3DyoB,EAAI/Y,EAAEimD,cAAc1sC,GACpBL,EAAI,EACJ8B,EAAI7B,EAAEwsC,YACV,GAAI3lD,EAAEulD,SAAUlsC,GAAKrZ,EAAEkmD,SAAS7lD,EAAGgZ,OAAG,EAAQ,EAAGC,KAAK1W,IAAI,EAAGoW,EAAI5mB,SAAS4N,EAAEpM,UAAY,GAAI,MAAM,SAAUmM,EAAGmZ,GAC7G,OAAOnZ,EAAEoO,UAAU,EAAG+K,GAAK,YACrB,GAAInZ,EAAG,CAGb,IAFAsZ,EAAI,GAECtZ,EAAI,GAAIwZ,EAAEyjC,YAAczjC,EAAEyjC,aAAe38C,GAAIN,EAAElJ,KAAK0iB,EAAEyjC,YAAazjC,EAAEisB,YAAYjsB,EAAEyjC,YAExF,KAAOpjC,EAAEtpB,QAASspB,EAAEtpB,SAAW0P,EAAEwlD,QAAU,EAAItsC,IAAMG,EAAExiB,KAAKwJ,EAAEy5C,aAAe,IAAKz5C,EAAEy5C,YAAclgC,EAAElC,KAAK,KAAKpjB,QAAQ,MAAO,MAAO0L,EAAEkmD,SAAS7lD,OAAG,EAAQuZ,EAAG,IAAMV,GAAI8B,GAAS,EAAGhC,GAAG,SAAUjZ,EAAGmZ,GACjM,OAAOU,EAAE3N,MAAM,EAAGiN,GAAGxB,KAAK,KAAKpjB,QAAQ,MAAO,QAC5C0mB,EAAI7B,EAAEwsC,YAAazsC,IAEvBnZ,EAAExK,SAAQ,SAAUwK,GAClBwZ,EAAEwjC,aAAah9C,EAAGM,MAEpBgZ,EAAE9jB,SAAQ,SAAUwK,GAClBwZ,EAAEwjC,aAAa5hC,EAAEsjB,eAAe1+B,GAAIM,IACpCN,EAAIob,EAAEvF,gBAAgBzT,EAAG,UACvB23C,YAAc,IAChB19B,EAAErc,EAAG,CACHigD,GAAIjnC,EACJ3nB,EAAGmH,IAELghB,EAAEwjC,aAAah9C,EAAGM,QAIpBrB,EAAI,SAAUgB,GAChB,GAAGiM,MAAMC,KAAKlM,EAAEk6C,YAAY3kD,SAAQ,SAAUyjB,GAC5CA,EAAE+V,WAAazU,EAAE+U,KAAK8wB,UAAYxmC,EAAEX,EAAGhZ,KAAO,IAAMgZ,EAAExe,UAAU2rD,QAAQ/3C,QAAQ,mBAAqB+K,EAAEwsC,YAAc,GAAI3mD,EAAEga,QAI/Hha,EAAEma,EAAElnB,WAIRknB,EAAExD,UAAUswC,cAAgB,SAAUjmD,GACpC,IAAImZ,EAGJ,OAFAnZ,EAAIA,EAAE+uB,WAAazU,EAAE+U,KAAK8wB,UAAYngD,EAAE8uC,cAAgB9uC,EACxDzQ,KAAKiH,SAASi7C,aAAet4B,EAAInZ,GAAK,WAAW6N,KAAK7N,EAAEnR,MAAM+E,UAAYoM,EAAEnR,MAAM+E,SAAWrE,KAAKqE,UAAYrE,KAAKiH,SAAS3H,MAAM+E,UAAY,IACvIrE,KAAK81D,eAAiBjzD,SAAS7C,KAAK81D,eAAe53C,WAAY,IAAMle,KAAKiH,SAAS4tD,YAAYjrC,EAAGnZ,GAAKzQ,KAAK61D,WAAWnzD,SAAS0nB,GAGzIR,EAAExD,UAAUiwC,WAAa,SAAU5lD,GACjC,IAAImZ,EAAI5pB,KACJgJ,EAAI,SAAU8H,EAAG2Y,GACnB,IAAIO,EAAIlZ,EAAEmpB,WACVjQ,OAAI,IAAWA,EAAI,GAAKA,EACxB,IAAII,EAAItZ,EAAEsD,SACNgX,EAAIta,EAAExR,MACV8rB,OAAI,IAAWA,EAAI,GAAKA,EACxB,IAAI3b,EAAIqB,EAAE2Q,QACNqI,EAAIF,EAAE3iB,SAASi7C,WACf,MAAQzyC,GAAK,WAAaA,EAAGqa,EAAIE,EAAS,MAAI,oBAAsBoB,EAAEhnB,WAAa,OAAgB,MAAQqL,GAAK,OAASA,IAAGqa,EAAIE,EAAS,MAAI,wBAA0BoB,EAAEyrC,UAAY,UACzLzrC,GAAKA,EAAEznB,QAAUynB,EAAE1jB,KAAO0jB,EAAEznB,OAC5B,OAAS8L,GAAKua,EAAS,MAAI,gBAAiBlZ,EAAEy5C,YAAc,KAAW9gC,EAAIhZ,EAAEgZ,EAAI,KAAOA,EAAE8gC,cAAgB9gC,EAAE8gC,YAAc9gC,EAAE8gC,YAAYxlD,QAAQ,QAAS,MAAQ,MAAQ0K,GAAK2a,GAAKA,EAAEhT,MAAK,SAAU3G,GAClM,MAAO,UAAYA,EAAEgR,aAChB3Q,EAAEsD,SAAW,CAAC,CACnBA,SAAUgW,EACV3I,QAAS,WAEX,UAAYhS,GAAK,MAAQA,IAAMqB,EAAE2Q,QAAU,SAC3C8K,EAAEzb,EAAG,CACHmpB,WAAYjQ,EACZ1qB,MAAO8rB,IAEThB,GAAKA,EAAEjiB,QAAO,SAAUsI,GACtB,MAAO,UAAYA,EAAEgR,WACpBzb,QAAQgD,IAGbyH,EAAEzK,QAAQgD,IAGZ4gB,EAAExD,UAAUuwC,SAAW,SAAUlmD,EAAGmZ,EAAG5gB,EAAG8H,EAAG2Y,EAAGW,GAC9C,IAOIT,EAPAK,EAAIhqB,KAAK61D,WACTpmD,EAAIua,EAAE/iB,SACNmkB,EAAIpB,EAAE7lB,SACN2lB,EAAI,GACJO,EAAIrhB,EAAI,EAAI,EACZwH,GAAKoZ,GAAK5gB,GAAK,IAAIjI,OACnByoB,EAAIhZ,EAEJib,EAAI,SAAUjb,EAAGmZ,GACnBA,EAAIA,GAAKnZ,EACT,IAAIgZ,EAAI/Y,EAAEyT,WACV,GAAIsF,QAAK,IAAuBM,EAAEH,GAAI,GAAIH,EAAEstC,mBAAoB,IAC9DhtC,EAAEH,GAAK7Y,EAAI0Y,EAAEstC,mBAAmB,EAAG9tD,EAAI2gB,EAAI,EAAIA,GAC/C,MAAOqD,SAEFvd,EAAEsnD,eAAiBtmD,EAAE85C,YAAcngC,EAAER,GAAK5gB,EAAGwH,GAAIsZ,EAAEH,GAAK7Y,EAAIrB,EAAEsnD,aAAa/sC,EAAGvZ,IACrF,OAAOqZ,EAAEH,IAGXK,EAAE7lB,SAAW,EACb,IAAIgnB,EAAIM,EAAEhb,EAAE85C,YAAYxpD,QAExB,GAAI+P,EAAIqa,EAAI1B,EAAG,CACb,KAAOY,GAAK7Z,GAAIgZ,EAAIO,KAAKkkB,MAAM5jB,EAAI7Z,GAAK,GAAIxH,IAAM2gB,EAAIS,EAAEphB,EAAGwgB,IAAK2B,EAAIM,EAAEjC,EAAGG,GAAKA,EAAE5oB,OAAS,GAAIspB,IAAM7Z,EAAI6Z,EAAI7Z,EAAI,EAAI2a,EAAI1B,EAAIjZ,EAAIgZ,EAAI,EAAIa,EAAIb,EAE3I,IAAMhZ,EAAIC,EAAE85C,YAAc,GAAK3gC,GAAKpZ,IAAMoZ,EAAE7oB,OAAS,IAAM0P,EAAE85C,YAAc5gC,GAAKS,EAAER,GAAK5gB,EAAGwgB,IAG5FxgB,GAAKA,EAAE+b,OAAO,EAAGyE,GACjBQ,EAAEosC,YAAcjrC,EAChBnB,EAAE7lB,SAAWinB,GAGfxB,EAAExD,UAAUmwC,iBAAmB,SAAU9lD,EAAGmZ,GAI1C,OAHA3Y,EAAEjR,KAAKiH,SAAS+vD,SAAS,SAAUhuD,EAAG8H,GACpC8Y,IAAM,IAAMA,EAAE/K,QAAQ7V,KAAOyH,EAAIA,EAAEyN,WAAWnZ,QAAQ,IAAIs5B,OAAOr1B,EAAG,KAAM8H,OAErEL,GAGFmZ,EA9KF,MAiLTgD,EAAE9E,EAAG,mCAAoC,CAACA,EAAE,6BAA8BA,EAAE,uBAAwBA,EAAE,mBAAoBA,EAAE,qCAAsCA,EAAE,mCAAoCA,EAAE,iCAAkCA,EAAE,gCAAiCA,EAAE,oCAAqCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,EAAGmY,EAAG8B,EAAGN,EAAGxqB,GAC/W,IAyBIuO,EAzBAW,EAAI6W,EAAEhhB,OACNsjB,EAAItC,EAAE40B,QACN9yB,EAAI9B,EAAEm0B,IACNxrC,EAAIqX,EAAEu0B,UACNryB,EAAIlC,EAAEw0B,KACNlxB,EAAItD,EAAE20B,SACN3rC,EAAIgX,EAAEwY,KACN7W,EAAI3B,EAAEg0B,OACNhvB,EAAIhF,EAAEq1B,YACN5yB,EAAIzC,EAAEk0B,IACN/wB,EAAIlpB,EAAEy8C,SACN38C,EAAIE,EAAEmF,KACN4iB,EAAI/nB,EAAE0Y,cACN4P,EAAItoB,EAAEvB,IACNgQ,EAAIzO,EAAEq9C,QACN51B,EAAIznB,EAAEs9C,wBACN11B,EAAI5nB,EAAEwH,OACNkiB,EAAI1pB,EAAE8Z,QACNsP,EAAIppB,EAAEo+C,SACNxtC,EAAI5Q,EAAE2gC,SACNrX,EAAItpB,EAAEq+C,SACN50B,EAAIzpB,EAAEs+C,MACNrzB,EAAIjrB,EAAE8+C,KACNt1B,EAAIxpB,EAAE++C,KACN3zB,EAAIprB,EAAE8/C,UAogBV,OAjgBA/5B,EAAI,WACF,SAAS4E,EAAElc,EAAGmZ,EAAGH,EAAG/Y,EAAGmZ,EAAGS,EAAGP,GAC3B9pB,KAAKmD,MAAQnD,KAAKsP,IAAMtP,KAAKV,MAAQU,KAAKovD,MAAQpvD,KAAKi3D,SAAWj3D,KAAKR,OAASQ,KAAKouD,UAAYpuD,KAAKypD,gBAAkBzpD,KAAK4uD,KAAO5uD,KAAKk3D,WAAal3D,KAAKgwD,UAAYhwD,KAAKmiB,MAAQniB,KAAKm3D,WAAan3D,KAAKgsD,IAAMhsD,KAAKqsD,oBAAiB,EACvOrsD,KAAKrB,KAAK6R,EAAGmZ,EAAGH,EAAG/Y,EAAGmZ,EAAGS,EAAGP,GA4e9B,OAzeA4C,EAAEtG,UAAUznB,KAAO,SAAU6R,EAAGmZ,EAAGH,EAAGM,EAAGnX,EAAG6Z,EAAGE,GAC7C,IAwBI1jB,EAxBAygB,EAAIzpB,KAAKya,cAAc,OAAOvT,KAAK,CACrC8gC,QAAS,MACT,MAAS,oBAEPtc,EAAIjC,EAAE/mB,QACVgqB,GAAKjD,EAAEjpB,IAAIR,KAAK4/C,SAAS91B,IACzBtZ,EAAEuK,YAAY2Q,GACd7pB,EAAE2O,EAAG,MAAO,QACX,IAAMA,EAAEsK,UAAU+D,QAAQ,UAAYhd,EAAE6pB,EAAG,QAAS1rB,KAAK87C,QAC1D97C,KAAKovD,OAAQ,EACbpvD,KAAKgsD,IAAMtgC,EACX1rB,KAAKm3D,WAAa1tC,EAClBzpB,KAAKqsD,eAAiB,GACtBrsD,KAAKsP,IAAMtP,KAAKo3D,kBAChBp3D,KAAKya,cAAc,QAAQrT,MAAM1E,QAAQqY,YAAY6O,EAAEslB,eAAe,mCACtElvC,KAAK4uD,KAAO5uD,KAAKya,cAAc,QAAQrT,MACvCpH,KAAKq3D,UAAY7qC,EACjBxsB,KAAKupD,UAAY52C,EACjB3S,KAAKkiD,WAAax1B,EAClB1sB,KAAKouD,UAAY,GACjBpuD,KAAKmiB,MAAQ,GACbniB,KAAKgwD,UAAY,GACjBhwD,KAAKi3D,SAAW,EAChBj3D,KAAKs3D,QAAQ3tC,EAAGH,GAAG,GAEnB/Y,GAAKD,EAAEokB,yBAA0BjL,EAAI,WACnCU,EAAE7Z,EAAG,CACH5P,KAAM,EACNH,IAAK,IAEPuI,EAAIwH,EAAEokB,wBACNvK,EAAE7Z,EAAG,CACH5P,KAAMmpB,KAAKkkB,KAAKjlC,EAAEpI,MAAQoI,EAAEpI,KAAO,KACnCH,IAAKspB,KAAKkkB,KAAKjlC,EAAEvI,KAAOuI,EAAEvI,IAAM,WAE5BT,KAAKu3D,cAAgBtsC,EAAEV,EAAG,SAAUZ,KAG9C+C,EAAEtG,UAAUoxC,WAAa,SAAUhnD,GACjC,OAAO,IAAIf,EAAE,CAACe,IAAI85C,SAAStqD,KAAK4uD,KAAKlsD,UAGvCgqB,EAAEtG,UAAUgxC,gBAAkB,WAC5B,IAAK3mD,GAAK2a,IAAMxB,EAAEtc,qBAAqB,QAAQvM,OAAQ,CACrD,IAAKyP,EAAEF,GAAK,CACV,IAAIqZ,EAAIwD,IACRxD,EAAI,IAAIla,EAAE,CAAC,CACTgS,QAAS,MACTwY,WAAY,CACV92B,MAAO,EACP3D,OAAQ,GAEV4U,SAAU,CAAC,CACTqN,QAAS,OACTrN,SAAU,CAAC,CACTqN,QAAS,WACTwY,WAAY,CACV90B,GAAIwkB,GAENvV,SAAU,CAAC,CACTqN,QAAS,OACTwY,WAAY,CACV92B,MAAO,EACP3D,OAAQ,QAIb,CACDiiB,QAAS,OACTwY,WAAY,CACV90B,GAAI,QACJhC,MAAO,EACP3D,OAAQ,EACR,YAAa,QAAQusB,OAAOpC,EAAG,KAC/BjiB,KAAM,0BAGR4iD,SAAS1gC,EAAE5Z,MACfqa,EAAEV,EAAG,CACHnI,SAAU,QACV/gB,IAAK,EACLG,KAAM,EACN+hD,OAAQ,MAEV,IAAIn5B,EAAII,EAAE6tC,iBAAiB,EAAG,GAC9BnnD,EAAK,WAAakZ,GAAKA,EAAErkB,IACzBykB,EAAE5Z,KAAKimC,YAAYtsB,GAGrB,GAAIrZ,EAAI,OAAOia,EAAErb,SAASC,KAAK8O,MAAM,KAAK,GAAGlZ,QAAQ,WAAY,IAAIA,QAAQ,aAAc,QAAQA,QAAQ,KAAM,OAGnH,MAAO,IAGT2nB,EAAEtG,UAAUw5B,SAAW,SAAUpvC,GAC/B,OAAOxQ,KAAKV,MAAQqqB,EAAE,CACpBpqB,WAAY,uEACZ8E,SAAU,QACTmM,IAGLkc,EAAEtG,UAAUsxC,SAAW,SAAUlnD,GAC/BxQ,KAAKm3D,WAAW32D,IAAIR,KAAK4/C,SAASpvC,KAGpCkc,EAAEtG,UAAUlR,SAAW,WACrB,OAAQlV,KAAKm3D,WAAW3vD,UAAUrE,OAGpCupB,EAAEtG,UAAUlgB,QAAU,WACpB,IAAIsK,EAAIxQ,KAAK4uD,KAOb,OANA5uD,KAAKgsD,IAAM,KACXhsD,KAAKm3D,WAAan3D,KAAKm3D,WAAWjxD,UAClCsjB,EAAExpB,KAAKouD,WAAa,IACpBpuD,KAAKouD,UAAY,KACjB59C,IAAMxQ,KAAK4uD,KAAOp+C,EAAEtK,WACpBlG,KAAKu3D,eAAiBv3D,KAAKu3D,gBACpBv3D,KAAKqsD,eAAiB,MAG/B3/B,EAAEtG,UAAU3L,cAAgB,SAAUjK,GACpC,IAAImZ,EAAI,IAAI3pB,KAAKymB,QAEjB,OADAkD,EAAEhrB,KAAKqB,KAAMwQ,GACNmZ,GAGT+C,EAAEtG,UAAUuoC,cAAgB,SAAUn+C,EAAGmZ,GACvC,MAAO,CACLguC,GAAInnD,EAAE,GAAKA,EAAE,GAAK,GAAKmZ,EAAEguC,IAAM,GAAKnnD,EAAE,GACtConD,GAAIpnD,EAAE,GAAKA,EAAE,GAAK,GAAKmZ,EAAEiuC,IAAM,GAAKpnD,EAAE,GACtCM,GAAI6Y,EAAE7Y,GAAK,GAAKN,EAAE,KAItBkc,EAAEtG,UAAUwlC,UAAY,SAAUp7C,GAChC,IAAI+b,EAAE/b,GAAG0lD,YAGXxpC,EAAEtG,UAAU+mC,YAAc,SAAU38C,GAMlC,OAAO,MAAY,KADnBA,EAAI,OAJJA,EAAIxH,EAAEyI,MAAMjB,GAAGsyC,KAAK7zB,KAAI,SAAUze,GAEhC,MAAO,SADPA,GAAK,KACgBA,EAAI,MAAQuZ,KAAK4zB,KAAKntC,EAAI,MAAQ,MAAO,SAElD,GAAK,MAAQA,EAAE,GAAK,MAAQA,EAAE,MACjBA,EAAI,KAAO,IAAM,UAAY,WAG1Dkc,EAAEtG,UAAUyxC,OAAS,SAAUrnD,EAAGgZ,EAAG/Y,EAAGmZ,EAAGS,EAAGP,EAAG4C,EAAGjD,EAAGzgB,EAAG8H,QACxD,IAAWuZ,IAAMA,EAAI,IACrB,IAAImC,EAAIxsB,KAAK4f,MAAMpP,EAAGgZ,EAAG/Y,EAAGzH,OAAG,OAAQ,EAAQ8H,OAAG,EAAQ,UACtD2a,EAAIzrB,KAAKkiD,WACb1xC,EAAI6Z,EAAE7mB,QAAU,GAChB,IAAI2nB,EAAI,SACRd,EAAImB,EAAEnB,IACG7mB,OACT,IAAIkoB,EAAIF,EAAE,CACR7nB,MAAO,UACPzB,OAAQ,UACRkC,WAAY,UACXimB,EAAE/qB,cACE+qB,EAAE/qB,MACT,IAAI8qB,EAAI3a,EAAEu6C,qBAAqB3/B,GAM/B,GALAmC,EAAEtlB,KAAKskB,EAAE,CACP/M,QAAS,EACT3N,EAAG,GACFsZ,KAEEqB,EAAG,CACNrB,EAAIoB,EAAE,CACJ9jB,KAAM,UACNP,OAAQ,UACR,eAAgB,GACfijB,GAIH,IAAIgB,GAHJtB,EAAI0B,EAAEpB,EAAG,CACP1iB,KAAM,WACL+H,EAAEu6C,qBAAqBlgC,GAAKtZ,EAAE/M,OAAS,MAChCnE,aACHwqB,EAAExqB,MAQT,IAAI0rB,GAPJ0B,EAAIlB,EAAEpB,EAAG,CACP1iB,KAAM,UACNpI,MAAO,CACLqE,MAAO,UACPS,WAAY,SAEbqL,EAAEu6C,qBAAqBt9B,GAAKlc,EAAE9M,QAAU,MACjCpE,aACHotB,EAAEptB,MAMT,IAAIirB,GALJd,EAAI+B,EAAEpB,EAAG,CACP9qB,MAAO,CACLqE,MAAO,YAER8L,EAAEu6C,qBAAqBvgC,GAAKjZ,EAAEwvB,UAAY,MACnC1gC,aACHmqB,EAAEnqB,MAmBX,OAhBA2rB,EAAEuB,EAAE9pB,QAASsnB,EAAI,YAAc,cAAc,WAC3C,IAAMmB,GAAKqB,EAAEsrC,SAAS,MAExB7sC,EAAEuB,EAAE9pB,QAASsnB,EAAI,WAAa,cAAc,WAC1C,IAAMmB,GAAKqB,EAAEsrC,SAAS3sC,MAGxBqB,EAAEsrC,SAAW,SAAUtnD,GACrB,IAAMA,IAAMgc,EAAEme,MAAQxf,EAAI3a,GAC1Bgc,EAAEnpB,YAAY,qDAAqDb,SAAS,qBAAuB,CAAC,SAAU,QAAS,UAAW,YAAYgO,GAAK,IACnJib,IAAMe,EAAEtlB,KAAK,CAACkjB,EAAGN,EAAG4C,EAAGjD,GAAGjZ,GAAK,IAA+BmC,EAA1BnC,EAAI,CAACkb,EAAGN,EAAGJ,EAAGT,GAAG/Z,GAAK,KAAYgc,EAAEhsB,IAAIgQ,KAG9Eib,GAAKe,EAAEtlB,KAAKkjB,GAAG5pB,IAAImpB,EAAE,CACnBznB,OAAQ,WACPwpB,IACIc,EAAEzjB,GAAG,cAAc,SAAUyH,GAClC,OAAOA,EAAEpN,qBACR2F,GAAG,SAAS,SAAUyH,GACvB,IAAM2a,GAAKvB,EAAEjN,KAAK6P,EAAGhc,OAIzBkc,EAAEtG,UAAU2xC,UAAY,SAAUpuC,EAAGH,EAAG/Y,QACtC,IAAWA,IAAMA,EAAI,SACrB,IAAImZ,EAAID,EAAE,GACNU,EAAIV,EAAE,GAGV,OAFAnZ,EAAEoZ,EAAE,KAAOA,EAAE,KAAOS,EAAE,KAAOT,EAAE,GAAKS,EAAE,GAAKN,KAAKtZ,GAAGmZ,EAAE,IAAMJ,EAAI,EAAI,GACnEhZ,EAAEoZ,EAAE,KAAOA,EAAE,KAAOS,EAAE,KAAOT,EAAE,GAAKS,EAAE,GAAKN,KAAKtZ,GAAGmZ,EAAE,IAAMJ,EAAI,EAAI,GAC5DG,GAGT+C,EAAEtG,UAAUngB,KAAO,SAAUuK,GAC3B,IAAIgZ,EAAIxpB,KAAKkiD,WAAa,GAAK,CAC7Bx6C,KAAM,QAGR,OADA+jB,EAAEjb,GAAKgZ,EAAEI,EAAIpZ,EAAImC,EAAEnC,IAAMmZ,EAAEH,EAAGhZ,GACvBxQ,KAAKya,cAAc,QAAQvT,KAAKsiB,IAGzCkD,EAAEtG,UAAUovC,OAAS,SAAUhlD,EAAGmZ,EAAGH,GAYnC,OAXAhZ,EAAImC,EAAEnC,GAAKA,OAAI,IAAuBA,EAAI,GAAK,CAC7C3O,EAAG2O,EACHzO,EAAG4nB,EACH7Y,EAAG0Y,IAELG,EAAI3pB,KAAKya,cAAc,WAErB6yC,QAAU3jC,EAAE0jC,QAAU,SAAU78C,EAAGmZ,EAAGH,GACtCA,EAAE7O,aAAa,IAAMgP,EAAGnZ,IAGnBmZ,EAAEziB,KAAKsJ,IAGhBkc,EAAEtG,UAAUkvC,IAAM,SAAU9kD,EAAGmZ,EAAGH,EAAG/Y,EAAGmZ,EAAGS,GAQzC,OAPA1X,EAAEnC,IAAamZ,GAAPlZ,EAAID,GAASzO,EAAGynB,EAAI/Y,EAAEK,EAAGN,EAAIC,EAAE5O,GAAK4O,EAAI,CAC9C0kD,OAAQ1kD,EACRm4C,MAAOh/B,EACPi/B,IAAKx+B,IAEP7Z,EAAIxQ,KAAKuvC,OAAO,MAAO/+B,EAAGmZ,EAAGH,EAAGA,EAAG/Y,IACjCK,EAAI0Y,EACChZ,GAGTkc,EAAEtG,UAAU2uC,KAAO,SAAUvkD,EAAGmZ,EAAGH,EAAG/Y,EAAGmZ,EAAGS,GAC1CT,EAAIjX,EAAEnC,GAAKA,EAAEM,EAAI8Y,EACjB,IAAIE,EAAI9pB,KAAKya,cAAc,QAsB3B,OArBAjK,EAAImC,EAAEnC,GAAKA,OAAI,IAAuBA,EAAI,GAAK,CAC7C3O,EAAG2O,EACHzO,EAAG4nB,EACHxmB,MAAO4mB,KAAK1W,IAAImW,EAAG,GACnBhqB,OAAQuqB,KAAK1W,IAAI5C,EAAG,IAEtBzQ,KAAKkiD,kBAAe,IAAuB73B,IAAM7Z,EAAE,gBAAkB6Z,EAAG7Z,EAAIsZ,EAAEikC,MAAMv9C,IAAKA,EAAE9I,KAAO,QAClGkiB,IAAMpZ,EAAEM,EAAI8Y,GAEZE,EAAE4qC,QAAU,SAAUlkD,EAAGmZ,EAAGH,GAC1BM,EAAEhZ,EAAIN,EACN3O,EAAE2nB,EAAG,CACHwuC,GAAIxnD,EACJynD,GAAIznD,KAIRsZ,EAAEouC,QAAU,WACV,OAAOpuC,EAAEhZ,GAAK,GAGTgZ,EAAE5iB,KAAKsJ,IAGhBkc,EAAEtG,UAAUkxC,QAAU,SAAU9mD,EAAGmZ,EAAGH,GACpCxpB,KAAKmD,MAAQqN,EACbxQ,KAAKR,OAASmqB,EACd3pB,KAAKm3D,WAAWzpD,QAAQ,CACtBvK,MAAOqN,EACPhR,OAAQmqB,GACP,CACD/a,KAAM,WACJ5O,KAAKkH,KAAK,CACRixD,QAAS,OAASn4D,KAAKkH,KAAK,SAAW,IAAMlH,KAAKkH,KAAK,aAG3DmE,SAAU2hB,EAAExD,GAAG,QAAM,EAAS,IAEhCxpB,KAAKo4D,iBAGP1rC,EAAEtG,UAAUoD,EAAI,SAAUhZ,GACxB,IAAImZ,EAAI3pB,KAAKya,cAAc,KAC3B,OAAOjK,EAAImZ,EAAEziB,KAAK,CAChB,MAAS,cAAgBsJ,IACtBmZ,GAGP+C,EAAEtG,UAAUiyC,MAAQ,SAAU7nD,EAAGmZ,EAAGH,EAAG/Y,EAAGmZ,EAAGS,GAC3C,IAAIP,EAAI,CACNwuC,oBAAqB,QAEnB3lD,EAAI,SAAUnC,EAAGmZ,GACnBnZ,EAAEqgD,eAAiBrgD,EAAEqgD,eAAe,+BAAgC,OAAQlnC,GAAKnZ,EAAEmK,aAAa,cAAegP,IAGjHwB,EAAExB,KAAOG,EAAEjoB,EAAI8nB,GACfwB,EAAE3B,KAAOM,EAAE/nB,EAAIynB,GACf2B,EAAE1a,KAAOqZ,EAAE3mB,MAAQsN,GACnB0a,EAAEvB,KAAOE,EAAEtqB,OAASoqB,GACpB,IAAI4C,EAAIxsB,KAAKya,cAAc,SAASvT,KAAK4iB,GAQzC,OANAH,EAAI,SAAUA,GACZhX,EAAE6Z,EAAE9pB,QAAS8N,GACb6Z,EAAE1N,KAAK6P,EAAG7C,IAGZU,GAAK1X,EAAE6Z,EAAE9pB,QAAS,8EAA+E8mB,EAAI,IAAIe,EAAEguC,MAASttC,EAAEzB,EAAG,OAAQG,GAAIH,EAAEsnB,IAAMtgC,EAAGgZ,EAAEiL,UAAY9K,EAAE,KAAOhX,EAAE6Z,EAAE9pB,QAAS8N,GAC7Kgc,GAGTE,EAAEtG,UAAUmpB,OAAS,SAAU/lB,EAAG/Y,EAAGkC,EAAG+Z,EAAGjD,EAAG+C,GAC5C,IAKIpC,EALAphB,EAAIhJ,KACJ8Q,EAAI,iBACJ2a,EAAI3a,EAAEwN,KAAKkL,GACXQ,GAAKyB,IAAMzrB,KAAK4lD,QAAQp8B,GAAKA,EAAI,UACjC2B,EAAInB,GAAKhqB,KAAK4lD,QAAQ57B,GAG1B,GAAImB,EAAG,CACL,iBAAoB1a,IAAM2Z,EAAIe,EAAExO,KAAK3c,KAAK4lD,QAAS77B,KAAKw2B,MAAM9vC,GAAK,GAAIsZ,KAAKw2B,MAAM5tC,GAAK,GAAI+Z,GAAK,EAAGjD,GAAK,EAAG+C,IAC3G,IAAI/c,EAAIzP,KAAKiG,KAAKmkB,GAClBphB,EAAEk5C,YAAczyC,EAAEvI,KAAK,OAAQ,QAC/ByiB,EAAEla,EAAG,CACHi+C,WAAY1jC,QAAK,EACjBnoB,EAAG4O,EACH1O,EAAG4Q,EACHxP,MAAOupB,EACPltB,OAAQiqB,IAEV+C,GAAK7C,EAAEla,EAAG+c,QACL,GAAIf,EAAG,CACZ,IAAIL,EAAI5B,EAAEvJ,MAAMnP,GAAG,GACf4a,EAAIjc,EAAIzP,KAAKq4D,MAAMjtC,GACvBM,EAAE8sC,SAAWxrC,EAAEF,EAAE1B,IAAM0B,EAAE1B,GAAGjoB,MAAOqpB,GAAKA,EAAErpB,OAC1CuoB,EAAE+sC,UAAYzrC,EAAEF,EAAE1B,IAAM0B,EAAE1B,GAAG5rB,OAAQgtB,GAAKA,EAAEhtB,QAE5C,IAAIyrB,EAAI,SAAUza,GAChB,OAAOA,EAAEtJ,KAAK,CACZ/D,MAAOqN,EAAErN,MACT3D,OAAQgR,EAAEhR,UAId,CAAC,QAAS,UAAUwG,SAAQ,SAAU2jB,GACpC+B,EAAE/B,EAAI,UAAY,SAAUA,EAAGH,GAC7B,IAAI/Y,EAAIzQ,KAAK,MAAQwpB,GACrBxpB,KAAKwpB,GAAKG,EACVnZ,EAAEC,KAAO+b,GAAK,WAAaA,EAAEksC,gBAAkB14D,KAAKmD,OAASnD,KAAKR,SAAWiR,EAAIsZ,KAAKw2B,MAAM9vC,EAAIsZ,KAAKnlB,IAAI5E,KAAKmD,MAAQnD,KAAKw4D,SAAUx4D,KAAKR,OAASQ,KAAKy4D,aAAcz4D,KAAK0C,SAAW1C,KAAK0C,QAAQiY,aAAa6O,EAAG/Y,GAAIzQ,KAAKusD,mBAAqB5iC,IAAM3pB,KAAKwpB,IAAM,GAAK/Y,GAAK,EAAGzQ,KAAKkH,KAAK,UAAYsiB,EAAI,CACvSioC,WAAY9nC,GACV,CACF+nC,WAAY/nC,UAIlBnZ,EAAEC,IAAMib,EAAExkB,KAAK,CACbrF,EAAG4O,EACH1O,EAAG4Q,IAEL+Y,EAAEitC,OAAQ,EACVnoD,EAAEkb,EAAE8sC,WAAahoD,EAAEkb,EAAE+sC,WAAaxtC,EAAES,IAAMA,EAAExkB,KAAK,CAC/C/D,MAAO,EACP3D,OAAQ,IACNsqB,EAAE,MAAO,CACX8uC,OAAQ,WACN,IAAIpoD,EAAIS,EAAEjI,EAAEkuD,YACZ,IAAMl3D,KAAKmD,QAAUknB,EAAErqB,KAAM,CAC3BwhB,SAAU,WACV/gB,IAAK,WACHmpB,EAAE5Z,KAAK+K,YAAY/a,OACvB8sB,EAAE1B,GAAK,CACLjoB,MAAOnD,KAAKmD,MACZ3D,OAAQQ,KAAKR,QAEfksB,EAAE8sC,SAAWx4D,KAAKmD,MAClBuoB,EAAE+sC,UAAYz4D,KAAKR,OACnBksB,EAAEhpB,SAAWuoB,EAAES,GACf1rB,KAAKkkB,YAAclkB,KAAKkkB,WAAW+xB,YAAYj2C,MAC/CgJ,EAAEiuD,WACGjuD,EAAEiuD,WAAYzmD,GAAMA,EAAEqoD,WAAWroD,EAAEooD,UAE1C9nB,IAAK1lB,IACHprB,KAAKi3D,YAGX,OAAOxnD,GAGTid,EAAEtG,UAAU0yC,SAAW,SAAUtoD,EAAGmZ,EAAGH,EAAG/Y,GACxC,IAAImZ,EAAIuD,IAAM,IACV9C,EAAIrqB,KAAKya,cAAc,YAAYvT,KAAK,CAC1C/B,GAAIykB,IACHxiB,IAAIpH,KAAK4uD,MAKZ,OAJAp+C,EAAIxQ,KAAK+0D,KAAKvkD,EAAGmZ,EAAGH,EAAG/Y,EAAG,GAAGrJ,IAAIijB,IAC/BllB,GAAKykB,EACPpZ,EAAEi/C,SAAWplC,EACb7Z,EAAEg1C,MAAQ,EACHh1C,GAGTkc,EAAEtG,UAAUllB,KAAO,SAAUyoB,EAAGH,EAAG/Y,EAAGmZ,GACpC,IAAIS,EAAI,GACR,OAAIT,IAAM5pB,KAAKq3D,WAAcr3D,KAAKupD,WAClCl/B,EAAExoB,EAAIkoB,KAAKw2B,MAAM/2B,GAAK,GACtB/Y,IAAM4Z,EAAEtoB,EAAIgoB,KAAKw2B,MAAM9vC,IACvBD,EAAEmZ,KAAOU,EAAEnpB,KAAOyoB,GAClBA,EAAI3pB,KAAKya,cAAc,QAAQvT,KAAKmjB,KAC/BT,GAAK5pB,KAAKupD,YAAcvpD,KAAKq3D,aAAW1tC,EAAE2jC,QAAU,SAAU98C,EAAGmZ,EAAGH,GACvE,IAAK,IAAuEM,EAAnErZ,EAAI+Y,EAAElc,qBAAqB,SAAUsc,EAAIJ,EAAEzF,aAAa4F,GAAIU,EAAI,EAAMA,EAAI5Z,EAAE1P,OAAQspB,KAAKP,EAAIrZ,EAAE4Z,IAAMtG,aAAa4F,KAAOC,GAAKE,EAAEnP,aAAagP,EAAGnZ,GAEzJgZ,EAAE7O,aAAagP,EAAGnZ,KAEbmZ,GAV8C3pB,KAAKgwC,KAAKrmB,EAAGH,EAAG/Y,IAavEic,EAAEtG,UAAUyuC,YAAc,SAAUrkD,EAAGmZ,GAIrC,OAHAnZ,GAAKxQ,KAAKkiD,YAAc,KAAK5jC,KAAK9N,KAAO+Z,EAAE2U,iBAAmB1uB,GAAKmZ,GAAKA,EAAErqB,OAASqqB,EAAErqB,MAAM+E,UAAYrE,KAAKV,OAASU,KAAKV,MAAM+E,SAAWslB,GAAK/W,EAAEwT,UAAUw5B,SAASjjC,KAAKgN,EAAG,aAGtK,CACLS,EAFFT,EAAI,IADJnZ,EAAI,KAAK8N,KAAK9N,GAAK+a,EAAE/a,GAAK,IACbA,EAAI,EAAIuZ,KAAKw2B,MAAM,IAAM/vC,GAGpCC,EAAGsZ,KAAKw2B,MAAM,GAAK52B,GACnBla,EAAGe,IAIPkc,EAAEtG,UAAU2yC,QAAU,SAAUvoD,EAAGmZ,EAAGH,GACpC,IAAI/Y,EAAID,EAER,OADAmZ,GAAKH,IAAM/Y,EAAIsZ,KAAK1W,IAAI5C,EAAIsZ,KAAKq0B,IAAIz0B,EAAIS,GAAI,IACtC,CACLvoB,GAAI2O,EAAI,EAAIuZ,KAAKmmC,IAAIvmC,EAAIS,GACzBroB,EAAG0O,IAIPic,EAAEtG,UAAU2pC,eAAiB,SAAUv/C,GACrC,IAAK,IAAImZ,EAAI,GAAIH,EAAI,GAAI/Y,EAAI,CAC3B0a,EAAG,EACHD,EAAG,EACHQ,EAAG,EACHL,EAAG,EACHE,EAAG,EACHwB,EAAG,EACHvB,EAAG,EACHF,EAAG,EACHgC,EAAG,GACF1D,EAAI,EAAGA,EAAIpZ,EAAEzP,OAAQ6oB,IAAKyB,EAAE7B,EAAE,KAAO2B,EAAE3a,EAAEoZ,KAAOJ,EAAEzoB,SAAW0P,EAAE+Y,EAAE,GAAGmL,gBAAkBnkB,EAAEuU,OAAO6E,EAAG,EAAGJ,EAAE,GAAGzkB,QAAQ,IAAK,KAAKA,QAAQ,IAAK,MAAO,iBAAoByL,EAAEoZ,KAAOJ,EAAEzoB,QAAU4oB,EAAEriB,KAAKkiB,EAAE9M,MAAM,IAAK8M,EAAEzoB,OAAS,GAAIyoB,EAAEliB,KAAKkJ,EAAEoZ,IAGxO,OADAD,EAAEriB,KAAKkiB,EAAE9M,MAAM,IACRiN,GAGT+C,EAAEtG,UAAUxG,MAAQ,SAAUpP,EAAGmZ,EAAGH,EAAG/Y,EAAGmZ,EAAGS,EAAGP,EAAGnX,EAAG+Z,GACpD,OAAO,IAAI3B,EAAE/qB,KAAMwQ,EAAGmZ,EAAGH,EAAG/Y,EAAGmZ,EAAGS,EAAGP,EAAGnX,EAAG+Z,IAG7CA,EAAEtG,UAAUgyC,cAAgB,WAC1Bp4D,KAAKqsD,eAAermD,SAAQ,SAAUwK,GACpC,OAAOA,EAAEtM,YAINwoB,EA/eL,GAkfJ/C,EAAE7B,EAAE1B,UAAW,CACbK,QAAS7T,EACTkpC,OAAQryB,EACRutC,QAAS,CACP,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,UAEPpR,QAAS/4B,EACTmsC,KAAMloD,IAERoa,EAAE4nC,qBAAqB,MAAOhrC,GAAG,GAE1BA,KAET8E,EAAE9E,EAAG,oCAAqC,CAACA,EAAE,mBAAoBA,EAAE,mCAAoCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GAC9I,IAAIoD,EAAIlrB,MAAQA,KAAKgzD,WAAa,WAChC,IAAIviD,EAAI,SAAUmZ,EAAG5gB,GASnB,OARAyH,EAAIkW,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUgC,EAAGmZ,GACjCnZ,EAAE4hC,UAAYzoB,IACX,SAAUnZ,EAAGmZ,GAChB,IAAK,IAAIH,KAAKG,EAAGA,EAAE+C,eAAelD,KAAOhZ,EAAEgZ,GAAKG,EAAEH,KAG7ChZ,EAAEmZ,EAAG5gB,IAGd,OAAO,SAAU4gB,EAAG5gB,GAClB,SAASygB,IACPzpB,KAAK6N,YAAc+b,EAGrBnZ,EAAEmZ,EAAG5gB,GACL4gB,EAAExD,UAAY,OAASpd,EAAI2d,OAAOyb,OAAOp5B,IAAMygB,EAAErD,UAAYpd,EAAEod,UAAW,IAAIqD,IAnBhD,GAsB9B7W,EAAInD,EAAE4sC,UACNtxB,EAAItb,EAAE6sC,KACNzvB,EAAIpd,EAAEgtC,SACNlwB,EAAI9c,EAAEusC,IACNj6C,EAAI+lB,EAAEtnB,IACNyQ,EAAI6W,EAAEs3B,QACNh1B,EAAItC,EAAEve,OACNqgB,EAAI9B,EAAE+4B,KACNpwC,EAAIqX,EAAEg5B,KAEV,OAAO,SAAU93C,GACf,SAASghB,IACP,OAAO,OAAShhB,GAAKA,EAAE0Y,MAAM1hB,KAAM6nB,YAAc7nB,KAyHnD,OAtHAkrB,EAAElB,EAAGhhB,GAELghB,EAAEivC,QAAU,SAAUxoD,GACpB,IAAK,IAAMuZ,EAAEkvC,gBAAgBr6C,QAAQpO,GAAI,CACvCuZ,EAAEkvC,gBAAgB5xD,KAAKmJ,GACvB,IAAImZ,EAAII,EAAE5D,UACNpd,EAAIyH,EAAE2V,UACVpd,EAAEmwD,kBAAoBvvC,EAAEuvC,kBACxBnwD,EAAEowD,QAAUxvC,EAAEwvC,QACdpwD,EAAEinD,YAAcrmC,EAAEqmC,YAClBjnD,EAAEqwD,oBAAsBzvC,EAAEyvC,oBAC1BrwD,EAAEswD,gBAAkB1vC,EAAE0vC,gBAGxB,OAAO7oD,GAGTuZ,EAAE5D,UAAU+yC,kBAAoB,SAAU1oD,EAAGmZ,EAAG5gB,GAC9ChJ,KAAKu5D,OAAS9oD,EAAIzH,EAClBhJ,KAAKw5D,OAAS5vC,GAGhBI,EAAE5D,UAAUgzC,QAAU,SAAU3oD,GAC9B,IAAIgZ,EAAI,SAAWzpB,KAAK0C,QAAQ+e,SAAWhR,GAAK,UAAWA,EACvDzH,EAAI4gB,EAAEH,GAAKhZ,EAAEtN,WAAO,GAExB,GAAIsmB,EAAG,QACEhZ,EAAEtN,MACTnD,KAAKgvD,UAAYhmD,EACjB,IAAIghB,GAAI,EAOV,OAJAvZ,GAAK,aAAeA,EAAEs2C,eAAiBt2C,EAAEw3C,WAAa,SAAUx3C,EAAEnM,SAAW,UAC7EtE,KAAK+uD,OAAS3kC,EAAEpqB,KAAK+uD,OAAQt+C,GAC7B1O,EAAE/B,KAAK0C,QAAS+N,GAChBuZ,GAAKhqB,KAAKq5D,sBACHr5D,MAGTgqB,EAAE5D,UAAU6pC,YAAc,WACxB,IAAIx/C,EAAIzQ,KAAK0C,QACb,MAAO,CACLb,EAAG4O,EAAE4d,WACLtsB,EAAG0O,EAAE6d,UACLnrB,MAAOsN,EAAEovC,YACTrgD,OAAQiR,EAAEqe,eAId9E,EAAE5D,UAAUizC,oBAAsB,WAChC,GAAIr5D,KAAK6rD,MAAO,CACd,IAAIjiC,EAAI5pB,KAAKiH,SACTwiB,EAAIzpB,KAAK0C,QACTsG,EAAIhJ,KAAKyxD,YAAc,EACvBznC,EAAIhqB,KAAK0xD,YAAc,EACvBtnC,EAAIpqB,KAAK6B,GAAK,EACd4N,EAAIzP,KAAK+B,GAAK,EACd+nB,EAAI9pB,KAAKsnD,WAAa,OACtBj9B,EAAI,CACNzpB,KAAM,EACNgsD,OAAQ,GACRC,MAAO,GACP/iC,GACEtZ,EAAIxQ,KAAK+uD,OAgBb,GAfAv+C,EAAIA,GAAKA,EAAEy3C,WACXlmD,EAAE0nB,EAAG,CACHgwC,WAAYzwD,EACZrJ,UAAWqqB,KAEZJ,EAAEs4B,YAAcliD,KAAK4tD,SAAW5tD,KAAK4tD,QAAQ5nD,SAAQ,SAAUwK,GAC9DzO,EAAEyO,EAAG,CACHipD,WAAYzwD,EAAI,EAChBrJ,UAAWqqB,EAAI,OAGnBhqB,KAAK0rD,UAAY,GAAG1lD,QAAQ2W,KAAK8M,EAAEkhC,YAAY,SAAUn6C,GACvDoZ,EAAE8vC,YAAYlpD,EAAGiZ,MAGf,SAAWA,EAAEhI,QAAS,CACxB,IAAI+H,EAAIxpB,KAAKmE,SACTwlB,EAAI3pB,KAAKgvD,WAAav+C,EAAEzQ,KAAKgvD,WAC7BvjC,EAAI,CAACjC,EAAGM,EAAGL,EAAE3O,UAAW9a,KAAKgvD,UAAWhvD,KAAKsnD,WAAWn/B,OACxDgD,OAAI,EAGR,GAFAA,GAAI,EAEAxB,IAAM3pB,KAAK25D,aAAc,CAC3B,GAAI35D,KAAKqxD,aAAc,IAAI1+C,EAAI3S,KAAKqxD,kBAAkBtvD,EAAE0nB,EAAG,CACzDtmB,MAAO,GACP8kD,WAAYz3C,GAAK,WACfmC,EAAI8W,EAAEo2B,aACTl2B,EAAI3pB,KAAK25D,cAAgBhnD,EAAIgX,KAAO,QAAQrL,KAAKmL,EAAE8gC,aAAe9gC,EAAEpY,YAAc,aAAeoY,EAAEnqB,MAAMynD,gBAAkBhlD,EAAE0nB,EAAG,CAC/HtmB,MAAOwP,EAAIgX,GAAKH,EAAIG,EAAI,KAAO,OAC/BknB,QAAS,QACToX,WAAYz3C,GAAK,WACfxQ,KAAK25D,aAAehwC,EAAGwB,GAAI,GAGjCnrB,KAAKg1D,mBAAqB7pC,EAC1BM,IAAMzrB,KAAK45D,MAAQzuC,EAAIvB,EAAEirC,YAAYprC,EAAEnqB,MAAM+E,SAAUolB,GAAGhZ,GAAIQ,EAAEuY,IAAMA,KAAOxpB,KAAK65D,aAAe,IAAM/vC,IAAM9pB,KAAK85D,UAAY95D,KAAKs5D,gBAAgB9vC,EAAGa,EAAGc,GAAInrB,KAAKm5D,mBAAmBloD,EAAEuY,IAAMxpB,KAAKqxD,cAAgB5nC,EAAEo2B,YAAa10B,EAAGd,EAAGb,EAAGM,IAC1O/nB,EAAE0nB,EAAG,CACH7oB,KAAMwpB,GAAKpqB,KAAKu5D,OAAS,GAAK,KAC9B94D,IAAKgP,GAAKzP,KAAKw5D,OAAS,GAAK,OAE/Bx5D,KAAK45D,IAAMnuC,EACXzrB,KAAK65D,YAAcrwC,EACnBxpB,KAAK85D,SAAWhwC,QAEb9pB,KAAK+5D,YAAa,GAG3B/vC,EAAE5D,UAAUkzC,gBAAkB,SAAU7oD,EAAGmZ,EAAG5gB,GAC5C,IAAIygB,EAAI,GACJO,EAAIe,IAAM,OAAOzM,KAAKiO,EAAExM,UAAUC,WAAa,gBAAkB6M,EAAI,oBAAsBja,EAAI,eAAiB2Z,EAAEW,MAAQ,oBAAiB,EAC/IlD,IAAMP,EAAEO,GAAKP,EAAEwnC,UAAY,UAAYxgD,EAAI,OAAQgZ,EAAEO,GAAKpX,EAAI,SAAW,YAAc6W,EAAEuwC,gBAAkB,IAAMpwC,EAAI,KAAO5gB,EAAI,KAAMjH,EAAE/B,KAAK0C,QAAS+mB,KAGxJO,EAAEkvC,gBAAkB,GACblvC,EA3HF,CA4HLhhB,MAEJ4jB,EAAE9E,EAAG,qCAAsC,CAACA,EAAE,6BAA8BA,EAAE,mCAAoCA,EAAE,oCAAqCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,GACnM,IAAItY,EAAI5S,MAAQA,KAAKgzD,WAAa,WAChC,IAAIhqD,EAAI,SAAUohB,EAAGR,GASnB,OARA5gB,EAAI2d,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUgC,EAAGmZ,GACjCnZ,EAAE4hC,UAAYzoB,IACX,SAAUnZ,EAAGmZ,GAChB,IAAK,IAAI5gB,KAAK4gB,EAAGA,EAAE+C,eAAe3jB,KAAOyH,EAAEzH,GAAK4gB,EAAE5gB,KAG7CA,EAAEohB,EAAGR,IAGd,OAAO,SAAUQ,EAAGR,GAClB,SAASnZ,IACPzQ,KAAK6N,YAAcuc,EAGrBphB,EAAEohB,EAAGR,GACLQ,EAAEhE,UAAY,OAASwD,EAAIjD,OAAOyb,OAAOxY,IAAMnZ,EAAE2V,UAAYwD,EAAExD,UAAW,IAAI3V,IAnBhD,GAsB9Bsa,EAAIG,EAAEhkB,KACN2lB,EAAI3B,EAAEzQ,cACN8R,EAAIrB,EAAE3hB,OACNxH,EAAImpB,EAAE21B,KAEV,OAAO,SAAU5vC,GACf,SAASmZ,IACP,OAAO,OAASnZ,GAAKA,EAAEyQ,MAAM1hB,KAAM6nB,YAAc7nB,KAqHnD,OAlHA4S,EAAEwX,EAAGnZ,GAELmZ,EAAE6uC,QAAU,SAAUrvC,GAEpB,OADC,IAAMQ,EAAE8uC,gBAAgBr6C,QAAQ+K,KAAOQ,EAAE8uC,gBAAgB5xD,KAAKsiB,GAAIA,EAAExD,UAAU4pB,KAAO5lB,EAAEhE,UAAU4pB,MAC3FpmB,GAGTQ,EAAEhE,UAAU4pB,KAAO,SAAUpmB,EAAGnZ,EAAGuZ,GACjC,IAAII,EAAIpqB,KAAKya,cAAc,QACvB3J,EAAIsZ,EAAE1nB,QACN+mB,EAAIW,EAAEnjB,SACNgK,EAAIwY,EAAE2lC,MACN7kC,EAAI,SAAU9Z,EAAGmZ,GACnB,CAAC,UAAW,cAAc5jB,SAAQ,SAAU8jB,GAC1CrZ,EAAEqZ,EAAI,UAAY,SAAUO,EAAG7Z,EAAGgZ,GAChC,IAAIG,EAAIlZ,EAAEm/C,IAAMn/C,EAAEm/C,IAAItwD,MAAQsqB,EAC9B5gB,EAAEod,UAAU0D,EAAI,UAAUnN,KAAK3c,KAAMqqB,EAAG7Z,EAAGgZ,GAC3CG,IAAMA,EAAEnZ,GAAK6Z,OAGjB5Z,EAAEwpD,cAAe,GA0FnB,OAvFA7vC,EAAEgnC,WAAa,SAAU3gD,GACvBA,IAAMzQ,KAAK2rD,iBAAmB3rD,KAAKwzD,YAAaxzD,KAAK25D,aAAclqD,EAAE26C,eAAepqD,KAAK0C,QAASX,EAAE0O,EAAG,KAAMzQ,KAAK2rD,QAAUl7C,EAAG2Z,EAAE+hC,aAAc,IAGjJl7C,GAAKsZ,EAAEH,EAAGA,EAAE1nB,QAAQpD,OAEpB8qB,EAAEkjC,QAAUljC,EAAEijC,QAAUjjC,EAAEuiC,YAAcviC,EAAEkoC,eAAiB,SAAU7hD,EAAGmZ,GACtE,UAAYA,EAAIQ,EAAE0iC,WAAa1iC,EAAEk9B,UAAY72C,EAAI2Z,EAAER,GAAKnZ,EACxD2Z,EAAE+hC,aAAc,GAGlB/hC,EAAE8hC,aAAe,WACflsD,KAAKmsD,cAAgBnsD,KAAKq5D,sBAAuBr5D,KAAKmsD,aAAc,IAGtE/hC,EAAEljB,KAAK,CACLhG,KAAM0oB,EACN/nB,EAAGkoB,KAAKw2B,MAAM9vC,GACd1O,EAAGgoB,KAAKw2B,MAAMv2B,KACbxpB,IAAI,CACLghB,SAAU,aAEZiI,EAAEy4B,YAAc93B,EAAE5pB,IAAI,CACpBjB,WAAYS,KAAKV,MAAMC,WACvB8E,SAAUrE,KAAKV,MAAM+E,WAEvByM,EAAExR,MAAM2oD,WAAa,SACrB79B,EAAE5pB,IAAM4pB,EAAEgvC,QACVnoD,IAAMmZ,EAAEhjB,IAAM,SAAUqJ,GACtB,IAAImZ,EAAIH,EAAEuiC,IAAI9nC,WACV4F,EAAI,GAER,GAAI9pB,KAAKwrD,YAAc/6C,EAAG,CACxB,IAAI4Z,EAAI5Z,EAAEm/C,IAEV,IAAKvlC,EAAG,CACN,KAAO5Z,GAAIqZ,EAAExiB,KAAKmJ,GAAIA,EAAIA,EAAE+6C,YAE5B1hC,EAAEpF,UAAU1e,SAAQ,SAAUwK,GAC5B,SAASgZ,EAAEG,EAAGH,GACZhZ,EAAEgZ,GAAKG,EACP,eAAiBH,EAAIxgB,EAAEpI,KAAO+oB,EAAI,KAAO3gB,EAAEvI,IAAMkpB,EAAI,KACrDnZ,EAAE27C,aAAc,EAGlB,IAAIxiC,EAAIoB,EAAEva,EAAE9N,QAAS,SACjB+N,EAAID,EAAEu+C,QAAU,GAahB/lD,GAZJqhB,EAAI7Z,EAAEo/C,IAAMp/C,EAAEo/C,KAAO/iC,EAAE,MAAOlD,EAAI,CAChC1e,UAAW0e,QACT,EAAQ,CACVnI,SAAU,WACV5gB,MAAO4P,EAAEihD,YAAc,GAAK,KAC5BhxD,KAAM+P,EAAEkhD,YAAc,GAAK,KAC3B7gB,QAASrgC,EAAEqgC,QACX6M,QAASltC,EAAEktC,QACXx7C,OAAQuO,EAAEvO,OACVg4D,cAAezpD,EAAEypD,cACjB/J,WAAY3/C,EAAE2/C,YACb9lC,GAAKT,IACEtqB,MACVitB,EAAE/b,EAAG,CACH2pD,YAAa,SAAU3pD,GACrB,OAAO,SAAUmZ,GACf3pB,KAAK0C,QAAQiY,aAAa,QAASgP,GACnCnZ,EAAEvF,UAAY0e,GAHL,CAKXU,GACFthB,GAAI,WAKF,OAJA+gB,EAAE,GAAG8lC,KAAOxlC,EAAErhB,GAAG2Y,MAAM,CACrBhf,QAASonB,EAAE,GAAG8lC,IACdxE,SAAU56C,EAAE46C,UACXvjC,WACIrX,GAETiiD,iBAAkBjpC,EAClBkpC,iBAAkBlpC,IAEpBhZ,EAAEypD,cAAgB1vC,EAAE/Z,YAGnB6Z,EAAIT,EAKX,OAHAS,EAAEtP,YAAYjK,GACdsZ,EAAEyhC,OAAQ,EACVzhC,EAAE2vC,YAAc3vC,EAAEivC,sBACXjvC,IAEFA,GAGTA,EAAE8uC,gBAAkB,GACb9uC,EAvHF,CAwHLtC,MAEJ8E,EAAE9E,EAAG,4BAA6B,IAAI,WACpC,IAAIrY,EAEOzG,EA8KX,OA9KWA,EA4KRyG,IAAMA,EAAI,KA3KT2qD,oBAAsB,CACtBC,YAAY,EACZC,mBAAe,EACfC,gBAAgB,EAChB5X,OAAQ,EACR6X,aAAa,EACbhT,qBAAsB,CACpBlG,YAAa,CACX8D,KAAM,cACNqV,OAAO,GAEThmB,OAAQ,CACN2Q,KAAM,WACNqV,OAAO,GAETlZ,OAAQ,CACN6D,KAAM,QACNqV,OAAO,GAETjZ,KAAM,CACJ4D,KAAM,QACNqV,OAAO,GAEThZ,IAAK,CACH2D,KAAM,UAER1D,KAAM,CACJ0D,KAAM,UAERzD,MAAO,CACLyD,KAAM,UAERxD,KAAM,CACJwD,KAAM,OAGVsV,WAAW,EACXC,kBAAmB,QACnBC,WAAY,EACZn2D,OAAQ,CACNC,kBAAc,EACdm2D,kBAAmB,GACnBC,cAAU,EACV37D,SAAS,EACT47D,YAAa,GACbz2D,SAAU,UACVma,QAAS,EACTu8C,kBAAc,EACd72D,cAAU,EACV82D,aAAc,EACdrsD,KAAM,EACNpN,SAAS,EACTK,EAAG,EACH8gD,OAAQ,EACRrjD,MAAO,CACLqE,MAAO,UACPzB,OAAQ,UACRmC,SAAU,SAGd62D,WAAY,IACZC,uBAAwB,QACxBC,gBAAiB,EACjBC,kBAAmB,UACnBC,WAAY,IACZr7D,YAAQ,EACRs7D,UAAU,EACVC,cAAU,EACVC,gBAAgB,EAChBC,WAAW,EACXC,gBAAgB,EAChBC,eAAe,EACfC,YAAa,EACbC,aAAa,EACbC,WAAY,GACZC,kBAAmB,IACnBC,kBAAmB,UACnBC,aAAc,UACdj7D,MAAO,CACLiD,MAAO,SACPC,SAAU,EACV3C,SAAS,EACTK,EAAG,EACHE,EAAG,EACHzC,MAAO,CACLqE,MAAO,YAGXyB,KAAM,SACN+2D,aAAa,EACbC,SAAS,EACTC,mBAAoB,UACpBC,mBAAoB,EACpBC,eAAgB,UAChB/3D,UAAW,UACXU,UAAW,EACXD,cAAe,UACfu3D,mBAAe,EACf73D,UAAW,WAEbqE,EAAEyzD,oBAAsB,CACtBhB,gBAAgB,EAChBf,WAAW,EACXQ,WAAY,IACZI,WAAY,IACZU,kBAAmB,GACnBJ,eAAe,EACfn3D,OAAQ,CACN5C,GAAI,GAENi6D,aAAa,EACb76D,MAAO,CACLkD,SAAU,IACVjD,KAAM,UAERw7D,YAAa,CACXnV,UAAW,GACXoV,cAAc,EACdx9D,SAAS,EACTy9D,MAAM,EACNt4D,SAAU,UACVO,UAAW,WAET,OAAOmE,EADChJ,KAAK68D,KAAKx9D,MAAMyrD,iBACf9qD,KAAK88D,OAAQ,IAExBx9D,MAAO,CACLqE,MAAO,UACPU,SAAU,OACVD,WAAY,OACZ6qD,YAAa,iBAGjBuN,cAAe,EACft3D,UAAW,GAEb8D,EAAE+zD,uBAAyB,CACzBt4D,OAAQ,CACN5C,GAAI,IAENZ,MAAO,CACLkD,SAAU,MAGd6E,EAAEg0D,wBAA0B,CAC1Bv4D,OAAQ,CACN5C,EAAG,IAELZ,MAAO,CACLkD,SAAU,KAGd6E,EAAEi0D,yBAA2B,CAC3Bx4D,OAAQ,CACNC,aAAc,EAAE,IAChB7C,EAAG,GAELuhB,OAAQ,GACRniB,MAAO,CACLkD,SAAU,IAGd6E,EAAEk0D,sBAAwB,CACxBz4D,OAAQ,CACNC,aAAc,EAAE,IAChB7C,EAAG,GAELuhB,OAAQ,GACRniB,MAAO,CACLkD,SAAU,IAKTsL,KAETmd,EAAE9E,EAAG,qBAAsB,CAACA,EAAE,uBAAuB,SAAUrY,GAC7D,IAIIsb,EAJA/hB,EAAIyG,EAAE+uC,SACN12B,EAAIrY,EAAEgsC,WACNvwB,EAAIzb,EAAE+wC,WACN5tC,EAAInD,EAAEuxC,YAYV,OATA,SAAWvxC,GACTA,EAAE0tD,qBAAuB,SAAU1tD,EAAG1N,GACpC0N,EAAE2tD,aAAe3tD,EAAE2tD,cAAgB,GACnClyC,EAAEnpB,EAAEjC,QAAQ,SAAUmR,EAAGmZ,GACvB3a,EAAE2tD,aAAahzC,KAAOnZ,IAAMxB,EAAE2tD,aAAahzC,KAAOxX,EAAEnD,EAAG2a,EAAG3a,EAAE2tD,aAAahzC,WAAY3a,EAAE2tD,aAAahzC,IAAKtC,EAAE7W,KAAOxB,EAAE2tD,aAAahzC,GAAKnZ,EAAGjI,EAAEyG,EAAG2a,EAAGnZ,SAJvJ,CAOG8Z,IAAMA,EAAI,KAENA,KAET6B,EAAE9E,EAAG,oBAAqB,CAACA,EAAE,2BAA4BA,EAAE,mBAAoBA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GACtH,IAAIoD,EAAIliB,EAAE0zC,QACN9pC,EAAIkV,EAAEk3B,MACNj0B,EAAIjD,EAAEo3B,aACNryB,EAAI/E,EAAEs3B,QACN7yB,EAAIzE,EAAEu3B,wBACNt9C,EAAI+lB,EAAEve,OACN0H,EAAI6W,EAAEk2B,UACN5zB,EAAItC,EAAEq4B,SACNv2B,EAAI9B,EAAEu4B,MACN5vC,EAAIqX,EAAE04B,WACNx2B,EAAIlC,EAAE+4B,KAsSV,OApSA73C,EAAI,WACF,SAASA,EAAEyH,EAAGmZ,EAAG5gB,EAAGghB,EAAGI,GACrBpqB,KAAKq9D,WAAar9D,KAAKs9D,OAAQ,EAC/Bt9D,KAAK68D,KAAOpsD,EACZzQ,KAAKw0C,IAAM5qB,EACX5pB,KAAKoF,KAAO4D,GAAK,GACjBhJ,KAAKu9D,WAAanzC,GAAK,GACvBpqB,KAAKw9D,eAAiBx9D,KAAKu9D,WAAWC,eACtCx9D,KAAKsJ,QAAUtJ,KAAKu9D,WAAWj0D,QAC/B2H,EAAEjR,KAAM,QACRgJ,GAAKghB,GAAKhqB,KAAKy9D,WAsRjB,OAnRAz0D,EAAEod,UAAUq3C,SAAW,WACrB,IAAIhtD,EAAIzQ,KACJ4pB,EAAInZ,EAAEosD,KACN7zD,EAAI4gB,EAAEtgB,QACN8hB,EAAIxB,EAAEvqB,MACN4rB,EAAIrB,EAAErlB,WACN1C,EAAI+nB,EAAE8zC,YACN5zC,EAAIF,EAAEooB,MACN3nB,EAAI5Z,EAAE+jC,IACNhkC,EAAIwZ,EAAEvZ,EAAEnH,SAAWmH,EAAEnH,QAAQ7E,OAAQuE,EAAEvE,QACvC+kB,EAAII,EAAE+zC,cACNh0C,EAAIU,IAAMb,EAAE,GACZiC,EAAIpB,IAAMb,EAAEA,EAAEzoB,OAAS,GACvBoqB,IAAM3a,EAAE5B,MAAQ,IAAM4B,EAAE5B,OAAS,IAAMgb,EAAEg0C,aAC7Cp0C,EAAIA,EAAEtD,KACN,IACI4B,EADAnV,EAAIlC,EAAEmP,MAIV,GAFAqL,EAAIjrB,KAAKu9D,WAAWM,WAAa5yC,EAAIjB,EAAEiB,EAAEZ,GAAIP,EAAEO,GAAIA,GAAKA,GACxDxoB,GAAKuoB,EAAEa,KAAOA,EAAIF,EAAElpB,EAAEi8D,QAAQ7yC,KAC1BrB,EAAEm0C,SAAU,GAAIv0C,EAClB,IAAIgC,EAAIJ,EAAE+6B,KAAKhB,iBAAiBn8C,EAAEw+C,sBAAsBx+C,EAAEg1D,MAAQx0C,EAAEi8B,YAAYp7B,IAAMb,EAAEy0C,WACpFjxC,EAAIxB,EAAE45B,UACLh7B,EAAEa,KAAO+B,EAAIpD,EAAEm0C,SAASG,eAAejzC,EAAGjiB,EAAEw+C,sBAAwB,KAC3E/2C,EAAE0tD,QAAUx0C,EACZlZ,EAAE2tD,OAAS3yC,EACX,IAAIF,EAAI,CACNsxC,KAAMjzC,EACNvqB,MAAO+rB,EACPizC,oBAAqBrxC,EACrBmxC,QAASx0C,EACTy0C,OAAQ3yC,EACR+oB,IAAKnqB,EACLi0C,KAAM7tD,EACN8tD,iBAAkB/0C,EAClB1kB,MAAOmmB,GAETha,EAAEjR,KAAM,cAAeurB,GAEvB,IAAIgB,EAAI,SAAU5C,GAChB,OAAOnZ,EAAE3L,UAAY2L,EAAE3L,UAAU8X,KAAKgN,EAAGA,GAAKnZ,EAAElF,QAAUqe,EAAEzoB,KAAO0oB,EAAE40C,sBAAsB7hD,KAAKgN,GAAIla,EAAEnE,OAAOkF,EAAElF,OAAQqe,EAAGyB,IAAMxB,EAAE40C,sBAAsB7hD,KAAKgN,EAAGA,IAGlK3gB,EAAIujB,EAAE5P,KAAK4O,EAAGA,GACd,IAAIjb,EAAKkb,GAAKA,EAAEzC,KAChBtY,EAAEguD,aAAenuD,EAAK,WACpB,IAAKwX,EAAI,EAAGA,EAAIxX,EAAGvP,OAAQ+mB,IAAK,GAAI/lB,EAAEwpB,EAAG,CACvC8yC,oBAAqB/tD,EAAGwX,KACtBnV,EAAEzL,KAAK,CACThG,KAAMqrB,EAAE5P,KAAK4O,EAAGA,KACd5Y,EAAEnL,UAAUrE,MAAQymB,EAAE80C,aAAajuD,GAAK,EAAID,EAAEiO,QAAS,OAE3D9L,EAAEzL,KAAK,CACLhG,KAAM,WAEN,EACJiqB,GAAKvB,EAAE+0C,cAAgBluD,EAAEmuD,UAAU51D,EAAGwH,GACtCqc,EAAEla,IAAMlC,EAAEouD,WAAalsD,GAAKA,EAAEg5C,UAAY3iD,IAAMmiB,KAAOxY,EAAEq8C,WAAax+C,EAAElR,MAAM6D,OAASwP,EAAEo8C,OAAO5rD,OAASwP,EAAEnS,IAAI,CAC7G2C,MAAO,OACLwP,EAAEzL,KAAK,CACThG,KAAM8H,IACJ2J,EAAE0+C,aAAe1+C,EAAEnL,UAAUrE,QAAUsN,EAAEmP,MAAQjN,EAAIlC,EAAEquD,YAAY,CACrEj9D,EAAG,EACHE,EAAG,GACFiH,EAAGwH,GAAIC,EAAEtM,SAAW,IAGzB6E,EAAEod,UAAU04C,YAAc,SAAUruD,EAAGzH,EAAGghB,GACxC,IAAIP,EAAIzpB,KAAK68D,KACTzyC,EAAIX,EAAEpqB,MAEV,OADIoR,EAAIoc,EAAE7jB,IAAMghB,EAAE7qB,QAAUirB,EAAEnjB,SAAS/F,KAAK8H,EAAGyH,EAAE5O,EAAG4O,EAAE1O,EAAGioB,EAAExoB,SAAS4F,IAAIqiB,EAAEs1C,YAAc,QAAM30C,EAAE83B,YAAczxC,EAAEjQ,IAAIopB,EAAEI,EAAE1qB,QAASmR,EAAE4gD,aAAe5gD,EAAEjJ,UAAUrE,OACvJsN,GAGTzH,EAAEod,UAAUlgB,QAAU,WACpBqmB,EAAEvsB,KAAMA,KAAK68D,OAGf7zD,EAAEod,UAAU44C,YAAc,SAAUvuD,EAAGmZ,EAAG5gB,EAAGghB,GAC3C,IAAIP,EAAIzpB,KAAK68D,KACTzyC,EAAIX,EAAEpqB,MACNyqB,EAAIE,GAAKI,EAAE60C,gBAAkB70C,EAAE3jB,YASnC,OARAgK,EAAI,CACF5O,EAAG4O,EAAIsa,EAAEtB,EAAE+nC,UAAU5nC,EAAI5gB,OAAG,OAAQ,EAAQghB,GAAKP,EAAEy1C,QAAUz1C,EAAE7oB,KAAO6oB,EAAExpB,QAAUwpB,EAAE8xC,UAAYvxC,GAAKI,EAAE+0C,eAAiB/0C,EAAEg1C,YAAc31C,EAAEojC,MAAQpjC,EAAE7oB,KAAO,GAC3JmB,EAAG0O,EAAIqZ,EAAIL,EAAE41C,OAAS51C,EAAExpB,QAAUwpB,EAAE8xC,SAAW9xC,EAAEjqB,OAAS,GAAKurB,EAAEjB,EAAIL,EAAE+nC,UAAU5nC,EAAI5gB,OAAG,OAAQ,EAAQghB,GAAKP,EAAEy1C,UAE/Gn9D,EAAI6Q,EAAEnC,EAAE1O,GAAI,IAAK,KACnBkP,EAAEjR,KAAM,mBAAoB,CAC1Bw0C,IAAK/jC,IAEAA,GAGTzH,EAAEod,UAAUk5C,iBAAmB,SAAU7uD,EAAGmZ,EAAG5gB,EAAGghB,EAAGI,EAAG3a,EAAGqa,EAAGO,GAC5D,IAAI7Z,EAAIxQ,KAAK68D,KACTrzC,EAAIhZ,EAAE+uD,OACN51C,EAAInZ,EAAEgvD,UAAYhvD,EAAEivD,aAAejvD,EAAEivD,aAAajE,SAAWhrD,EAAEgrD,SAC/D/xC,EAAIjZ,EAAEyqD,aACN9vC,EAAI3a,EAAEkvD,aAAe,CACvB79D,EAAG,EACHE,EAAG,GAED4Q,EAAIqX,GAAKxZ,EAAEmvD,oBAAsB,GAAKnvD,EAAEovD,aAAe,WAAapvD,EAAEqvD,WAAa,GAAK,GACxF/uD,EAAI,GAaR,OAZA9H,EAAI,IAAMwH,EAAEsvD,KAAO92D,EAAE7E,UAAY,GAAK6E,EAAExB,UAAUhI,OAAS,IAAMgR,EAAEsvD,KAAO30C,EAAEppB,EAAI,EAAIgoB,KAAKq0B,IAAIp1C,EAAE7E,SAAW+mB,IAAMC,EAAEppB,EAAIiH,EAAExB,SAAQ,EAAI,GAAGhI,OAAS,GAChJqtB,EAAEzC,EAAEroB,KAAOiH,EAAI,IAAMwH,EAAEsvD,MAAQtvD,EAAEuvD,MAAQ31C,EAAEroB,EAAIiH,EAAIohB,EAAEroB,GACrD0O,EAAIA,EAAI2Z,EAAEvoB,EAAI8Q,EAAIwY,EAAEtpB,GAAK4N,GAAKua,EAAIva,EAAI+Z,GAAKG,GAAK,EAAI,GAAK,GACzDC,EAAIA,EAAI5gB,GAAKyG,IAAMua,EAAIva,EAAI+Z,GAAKG,EAAI,GAAK,GAAK,GAC9CF,IAAMO,EAAIF,GAAKO,GAAK,GAAKZ,EAAGjZ,EAAE+qD,WAAavxC,EAAIP,EAAIO,EAAI,GAAIJ,GAAKpZ,EAAEovD,YAAcn2C,EAAIO,GACpFlZ,EAAEjP,EAAI4O,EACNK,EAAE/O,EAAIgoB,KAAKw2B,MAAM32B,GACjB3Y,EAAEjR,KAAM,wBAAyB,CAC/Bw0C,IAAK1jC,EACL0sD,eAAgB/tD,EAChBxM,MAAO6mB,IAEFhZ,GAGT9H,EAAEod,UAAU45C,aAAe,WACzB,OAAOhgE,KAAK4f,MAAQ5f,KAAK4f,MAAMpY,UAAUxH,KAAK68D,KAAKkD,MAAQ,SAAW,SAAW,GAGnF/2D,EAAEod,UAAU65C,YAAc,SAAUxvD,EAAGmZ,EAAG5gB,EAAGghB,EAAGI,EAAG3a,GACjD,OAAOA,EAAEsoD,UAAU,CAAC,CAAC,IAAKtnD,EAAGmZ,GAAI,CAAC,IAAKnZ,GAAK2Z,EAAI,GAAKphB,GAAI4gB,GAAKQ,EAAIphB,EAAI,KAAMghB,IAG9EhhB,EAAEod,UAAU85C,eAAiB,SAAUzvD,GACrC,IAAImZ,EAAI5pB,KAAK68D,KACT7zD,EAAI4gB,EAAEtgB,QAAQ7E,OACd2lB,EAAI3Z,EAAE5O,EACN4N,EAAIma,EAAEvqB,MAAM+/D,WACZtuD,EAAI8Y,EAAEvqB,MAAMmjD,QACZ14B,EAAIE,EAAEJ,EAAEu2C,UAAWp2C,KAAKnlB,IAAIglB,EAAE4qB,IAAK1jC,EAAE,KACzCA,EAAIkZ,EAAEJ,EAAEw2C,WAAYr2C,KAAK1W,IAAIuW,EAAEy2C,SAAW,EAAIz2C,EAAE4qB,IAAM5qB,EAAE5C,IAAKvX,EAAIqB,EAAE,KACnE,IAYIgX,EAZAuC,EAAIrqB,KAAK4f,MACTpP,EAAIxQ,KAAKmE,SACTqlB,EAAI,CACN5oB,KAAM,EACNgsD,OAAQ,GACRC,MAAO,GACPjjC,EAAEi2C,YAAcx1C,EAAEnjB,KAAK,UACrByiB,EAAIU,EAAE7iB,UAAUrE,MAChBsoB,EAAI7B,EAAE80C,aAAa1+D,MACnBmrB,EAAI,GACJxY,EAAI8Y,EACJL,EAAI,EAEJ5a,GAAK,YAAcxH,EAAE1E,SAAU,EAAIkM,GAAK4Z,EAAIZ,EAAIG,EAAIG,EAAIhC,EAAIiC,KAAKw2B,MAAMn2B,EAAIL,KAAKq0B,IAAI5tC,EAAI0a,GAAKpB,GAAK,EAAItZ,GAAK4Z,EAAIZ,EAAIG,EAAI7Y,IAAMgX,EAAIiC,KAAKw2B,OAAO9wC,EAAI2a,GAAKL,KAAKq0B,IAAI5tC,EAAI0a,MAAczb,EAAI2a,GAAK,EAAIZ,GAAKG,EAAGS,EAAIZ,EAAIG,EAAIG,EAAInX,EAAIlC,EAAE5O,EAAI8Q,GAAK,EAAI6W,GAAKM,EAAIra,EAAIqB,IAAM6B,EAAI7B,EAAIL,EAAE5O,EAAI8Q,EAAI6W,EAAG4B,GAAK,IAAIzY,EAAIoX,KAAKnlB,IAAI6mB,EAAG9Y,IAAQ8Y,GAAK,WAAa7B,EAAEi2C,aAAepvD,EAAE5O,GAAKupB,GAAKK,EAAI9Y,EAAI6W,GAAKiC,EAAI1B,KAAKnlB,IAAI+kB,EAAGhX,OAAOgX,EAAIhX,GAAKiX,EAAEllB,eAAiB2lB,EAAE0kC,QAAU,IAAI5rD,SAAO2kB,EAAInV,IAChcmV,IAAM9nB,KAAKy+D,aAAez+D,KAAKy+D,gBAAkBtzC,EAAEhoB,MAAQ4mB,KAAK4U,MAAM7W,GAAK,MAAO9e,EAAE1J,OAAS,IAAIynD,eAAiB57B,EAAE47B,aAAe,YAAa18B,EAAE7pB,IAAI2qB,MAGxJniB,EAAEod,UAAUw4C,UAAY,SAAUh1C,EAAG5gB,GACnC,IAAIohB,EAAIpqB,KACJgqB,EAAII,EAAExK,MACN6J,EAAIW,EAAEyyC,KACNptD,EAAIga,EAAE+xC,SACN1xC,GAAI,EAKR,GAJAE,GAAKA,EAAE2hC,UAAY/hC,GAAKQ,EAAEy0C,WAAa70C,EAAGF,GAAI,SAAWM,EAAExK,OAASnP,EAAEgZ,EAAE62C,OAAO,SAAU9vD,GACvFsZ,GAAKtZ,EAAE8sD,OAAS9sD,IAAM4Z,IAAM5Z,EAAEoP,OAASpP,EAAEoP,MAAM+rC,UAAY/hC,IAAMQ,EAAEy0C,WAAaruD,EAAEoP,MAAOkK,GAAI,EAAItZ,EAAE+vD,SAAWn2C,EAAEy0C,WAAW2B,UAAWhwD,EAAEoP,WAGrIkK,IAAMM,EAAEm2C,UAAYv2C,GAAI,CAC3B,IAAIK,EAAID,EAAEm2C,UAAYv2C,EAAEw2C,GACxBx2C,EAAIP,EAAEs2C,MAAQtwD,EAAI,EAAIga,EAAEtmB,MAAQsmB,EAAE7oB,KAAOypB,EAAExoB,EAC3C4nB,EAAIA,EAAEs2C,MAAQ11C,EAAEtoB,EAAI0N,EAAIga,EAAEtmB,MAAQsmB,EAAE7oB,KAAO,EAC3CwpB,EAAEy0C,WAAaz0C,EAAE00C,YAAY,CAC3Bj9D,EAAGmoB,EACHjoB,EAAG0nB,GACFG,EAAG5gB,GACNohB,EAAEy0C,YAAcz0C,EAAEy0C,WAAW33D,KAAK,CAChCw2C,QAAS,MAKf10C,EAAEod,UAAUq6C,OAAS,SAAUhwD,EAAGmZ,EAAG5gB,GACnC,IAAIohB,EAAIpqB,KAAK68D,KACTpzC,EAAIW,EAAE21C,MACNtwD,EAAIzP,KAAKw0C,IACT1qB,EAAIE,EAAEhqB,KAAKw9D,eAAgBpzC,EAAEozC,gBAEjC1zC,GADAra,EAAIzP,KAAKg/D,YAAYv1C,EAAGha,EAAGqa,EAAGF,IACxB/nB,EACN,IAAIwoB,EAAI5a,EAAE1N,EACVqoB,EAAIX,GAAKK,IAAMM,EAAEoqB,IAAMpqB,EAAEpD,MAAQyC,GAAKY,IAAMD,EAAEoqB,KAAO,EAAI,EACzD/qB,EAAIO,EAAEhhB,EAAGhJ,KAAK4f,OAAS5f,KAAK4f,MAAM8gD,WAAY,GAC9C13D,EAAIghB,EAAEhhB,EAAG,GACThJ,KAAKu9B,UAAW,EAChBv9B,KAAK2gE,eAAe/2C,EAAG5gB,EAAGohB,GAC1BpqB,KAAK4gE,WAAWnxD,EAAGzG,EAAGohB,GACtBpqB,KAAK6gE,YAAYpxD,EAAGma,EAAGH,EAAGhZ,GAC1BzQ,KAAKs9D,OAAQ,EACbrsD,EAAEjR,KAAM,gBAGVgJ,EAAEod,UAAUu6C,eAAiB,SAAUlwD,EAAGmZ,EAAG5gB,GAC3C,IAAIohB,EAAIpqB,KAAK68D,KACTpzC,EAAIW,EAAE9gB,QACNmG,EAAI,GACJqa,EAAI9pB,KAAKw0C,IACTnqB,EAAIrqB,KAAKoF,KACToL,EAAIwZ,EAAEhqB,KAAKw9D,eAAgBpzC,EAAEozC,gBAC7Bh0C,EAAIY,EAAE/qB,MAAM4H,SACZ0iB,EAAI3pB,KAAK8gE,SACTr1C,EAAIhC,EAAE+yC,cACNrxC,EAAI1B,EAAExkB,cACN0N,EAAI8W,EAAEkxC,kBACV,UAAY36D,KAAKoF,OAASqmB,EAAIhC,EAAE6yC,mBAAoBnxC,EAAI1B,EAAE4yC,mBAAoB1pD,EAAI8W,EAAE0xC,wBACpFxxC,IAAMS,EAAE/qB,MAAM6iD,aAAezyC,EAAEtI,OAASgkB,EAAG1b,EAAE,gBAAkBgc,GAAK,EAAGhc,EAAEpI,UAAYsL,GAAI0X,IAAM5a,EAAEkzC,OAAS,GAAIlyC,IAAMmZ,EAAI,GAAI5pB,KAAK8gE,SAAWn3C,EAAIH,EAAEvjB,OAAOiB,KAAKuI,GAAGjN,SAAS,eAAiB6nB,EAAIA,EAAI,IAAM,IAAM,aAAajjB,IAAIgjB,EAAE22C,YAC9Np3C,IAAM3gB,EAAIohB,EAAE42C,gBAAgB,CAC9Bl8D,MAAOglB,EAAItZ,EACXtL,UAAWykB,EAAEqkC,cAAgBhlD,EAC7Bif,MAAO,OACPg5C,IAAKxwD,MACFkZ,EAAElZ,GAAKzQ,KAAKs9D,MAAQ,OAAS,WAAW,CAC3C1zC,EAAG5gB,EACH00C,QAAS9zB,KAIb5gB,EAAEod,UAAUw6C,WAAa,SAAUnwD,EAAGmZ,EAAG5gB,GACvC,IAAIohB,EAAIpqB,KAAK68D,KACTpzC,EAAIW,EAAE9gB,QACNmG,EAAI2a,EAAE/qB,MAAM4H,SACZ6iB,EAAI9pB,KAAKoF,KACTilB,EAAID,EAAE82C,SAASp3C,EAAIA,EAAI,OAAS,QAChCtZ,EAAIC,EAAE5O,EACV4O,EAAIA,EAAE1O,EACN,IAAIynB,EAAIQ,EAAEP,EAAE,UAAYK,EAAI,YAAc,mBAAoBA,GAAKM,EAAE+2C,QAAU,EAAI,GACnF13C,EAAIA,EAAE,UAAYK,EAAI,YAAc,kBACpC,IAAIH,EAAI3pB,KAAKohE,KACT31C,GAAK9B,EACTU,IAAMD,EAAEmxC,WAAalxC,EAAE,IAAMA,EAAE,IAAKV,IAAM3pB,KAAKohE,KAAOz3C,EAAIla,EAAExJ,OAAOzD,SAAS,eAAiBsnB,EAAIA,EAAI,IAAM,IAAM,QAAQ1iB,IAAIgjB,EAAEi3C,WAAYj3C,EAAE/qB,MAAM6iD,YAAcv4B,EAAEziB,KAAK,CACtKC,OAAQsiB,EACR,eAAgBD,KACbG,EAAE8B,EAAI,OAAS,WAAW,CAC7B7B,EAAG5pB,KAAKigE,YAAYzvD,EAAGC,EAAG4Z,EAAE,GAAIV,EAAEqkC,cAAgBhlD,EAAGohB,EAAE21C,MAAOtwD,GAC9DiuC,QAAS9zB,MAIb5gB,EAAEod,UAAUy6C,YAAc,SAAUpwD,EAAGmZ,EAAG5gB,EAAGyG,GAC3C,IAAIga,EAAIzpB,KAAK68D,KACT/rD,EAAI2Y,EAAEs2C,MACNj2C,EAAIL,EAAEngB,QACN+gB,EAAIrqB,KAAK4f,MACTpP,EAAIsZ,EAAErlB,OACN+kB,EAAIhZ,EAAE5B,KACV6a,EAAIO,EAAEhqB,KAAKw9D,eAAgB/zC,EAAE+zC,gBAC7B,IAAI7zC,EAAIlZ,EAAE5O,EACV4O,EAAIA,EAAE1O,EACN,IAAI0pB,GAAI,EACRpB,GAAKD,EAAET,KAAOU,EAAEm2C,GAAK/vD,EAAIzQ,KAAKs/D,iBAAiB31C,EAAGlZ,EAAG4Z,EAAGvZ,EAAGN,EAAGiZ,EAAGha,EAAG+Z,GAAIxpB,KAAKm+D,UAAYn+D,KAAKo+D,SAAWt0C,EAAE6xC,gBAAkB37D,KAAKo+D,SAAWp+D,KAAKm+D,UAAYr0C,EAAE8xC,cAAgBnwC,GAAI,GAAM3a,GAAKN,EAAE5B,MAAQ4B,EAAErM,UAAYylB,GAAK,IAAM5gB,GAAKhJ,KAAKkgE,eAAezvD,GAAI+Y,GAAK/Z,EAAI+Z,IAAMiC,GAAI,GAAKA,GAAKrB,EAAE3Z,EAAE1O,IAAM0O,EAAEitC,QAAU10C,EAAGqhB,EAAErqB,KAAKq9D,WAAa,OAAS,WAAW5sD,GAAGzI,MAAK,GAAKhI,KAAKq9D,YAAa,IAAOhzC,EAAElhB,OAAQnJ,KAAKq9D,YAAa,KAGjar0D,EAAEod,UAAUk7C,kBAAoB,WAC9B,IAAI7wD,EAAIzQ,KAAK4f,MACTgK,EAAI5pB,KAAK68D,KACT7zD,EAAI4gB,EAAE4xC,SAEV,GAAI/qD,IAAMzQ,KAAKs9D,MAAO,CACpB,IAAIlzC,EAAIR,EAAEm2C,MAAQ/2D,EAAI4gB,EAAEhpB,KAAOgpB,EAAEzmB,MAAQymB,EAAEhpB,KAAO6P,EAAE+vD,GAAG3+D,EACvDmH,EAAI4gB,EAAEm2C,MAAQtvD,EAAE+vD,GAAGz+D,EAAIiH,EAAI4gB,EAAEzmB,MAAQymB,EAAEnpB,IAAMmpB,EAAEnpB,IAC/CgQ,EAAE/C,QAAQ,CACR7L,EAAGuoB,EACHroB,EAAGiH,EACH00C,QAAS,QACR,EAAQjtC,EAAEvK,gBACNlG,KAAK4f,MAGdgK,EAAE23C,SAAU,EACZvhE,KAAK4f,MAAQ5f,KAAK6+D,kBACX7+D,KAAK6+D,YAGP71D,EAhSL,GAoSGA,KAET4jB,EAAE9E,EAAG,oBAAqB,CAACA,EAAE,wCAAyCA,EAAE,6BAA8BA,EAAE,uBAAwBA,EAAE,0BAA2BA,EAAE,sBAAuBA,EAAE,mBAAoBA,EAAE,qBAAsBA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,EAAGmY,EAAG8B,EAAGN,GAC1R,IAAIxqB,EAAI0N,EAAE45C,WACNp4C,EAAIia,EAAEy5B,eACNv6B,EAAIxX,EAAEuqD,qBACNvzC,EAAImB,EAAE2xB,QACNjsC,EAAI8b,EAAEuyB,SACN90B,EAAIuC,EAAEwyB,SACN3zB,EAAImB,EAAEyyB,MACNluC,EAAIyb,EAAE2yB,aACNz1B,EAAI8C,EAAE6yB,QACNtyB,EAAIP,EAAE8yB,wBACN90B,EAAIgC,EAAEizB,MACNv0B,EAAIsB,EAAEnc,MACNvO,EAAI0qB,EAAEhjB,OACNugB,EAAIyC,EAAEyxB,UACN3zB,EAAIkC,EAAE1Q,QACNrL,EAAI+b,EAAE4zB,SACN32B,EAAI+C,EAAE6zB,SACNz2B,EAAI4C,EAAE8zB,MACN50B,EAAIc,EAAE+zB,sBACNn1B,EAAIoB,EAAEi0B,WACN7tC,EAAI4Z,EAAEs0B,KACNx1B,EAAIkB,EAAEw0B,eACNv1B,EAAIe,EAAEy0B,YACNh0B,EAAIT,EAAE00B,MACN11B,EAAIgB,EAAE60B,YACNj0B,EAAI,SAAU3c,EAAGmZ,GACnB,OAAO8B,EAAE9B,OAAG,OAAQ,EAAQhX,EAAEnC,EAAElH,QAAQgxD,cAAe,GAAK3wC,QAAK,IAAWnZ,EAAEgxD,cAAehxD,EAAEgxD,aAopCjG,OAjpCA/xD,EAAI,WACF,SAASA,EAAEe,EAAGmZ,GACZ3pB,KAAKw6D,YAAcx6D,KAAKmD,MAAQnD,KAAKo8D,QAAUp8D,KAAKyhE,YAAczhE,KAAK0hE,iBAAmB1hE,KAAKk/D,OAASl/D,KAAKu/D,OAASv/D,KAAKS,IAAMT,KAAKsgE,MAAQtgE,KAAK0/D,YAAc1/D,KAAK29D,cAAgB39D,KAAKw9D,eAAiBx9D,KAAK49D,aAAe59D,KAAKwhE,WAAaxhE,KAAK8/D,KAAO9/D,KAAKE,OAASF,KAAK6sD,MAAQ7sD,KAAK2hE,mBAAqB3hE,KAAKw0C,IAAMx0C,KAAK4hE,kBAAoB5hE,KAAKqC,WAAarC,KAAK6hE,wBAA0B7hE,KAAK8hE,kBAAoB9hE,KAAK+hE,YAAc/hE,KAAKgiE,QAAUhiE,KAAKsJ,QAAUtJ,KAAKC,OAASD,KAAKgyC,MAAQhyC,KAAKiiE,gBAAkBjiE,KAAKkiE,WAAaliE,KAAKmiE,kBAAoBniE,KAAK4E,IAAM5E,KAAKoiE,eAAiBpiE,KAAKqT,IAAMrT,KAAKgnB,IAAMhnB,KAAKY,KAAOZ,KAAK0mD,eAAiB1mD,KAAKqiE,UAAYriE,KAAKw/D,SAAWx/D,KAAKR,OAASQ,KAAKsiE,iBAAmBtiE,KAAKuiE,SAAWviE,KAAKo9D,aAAep9D,KAAKwiE,KAAOxiE,KAAKyiE,kBAAoBziE,KAAKX,MAAQW,KAAKq/D,OAASr/D,KAAK0iE,oBAAiB,EACz0B1iE,KAAKrB,KAAK6R,EAAGmZ,GA0oCf,OAvoCAla,EAAE2W,UAAUznB,KAAO,SAAUgrB,EAAGlZ,GAC9B,IAAI+Y,EAAI/Y,EAAEkyD,IACV3iE,KAAKX,MAAQsqB,EACb3pB,KAAK+/D,MAAQp2C,EAAE+hC,WAAa1rD,KAAK4iE,SAAWp5C,EAAIA,EAChDxpB,KAAKmhE,QAAU33C,EACfxpB,KAAKwiE,KAAOxiE,KAAKwiE,OAASh5C,EAAI,QAAU,SACxCM,EAAE9pB,KAAM,OAAQ,CACdyhE,YAAahxD,IAEfzQ,KAAKu7D,SAAW5oD,EAAElC,EAAE8qD,SAAUv7D,KAAKu7D,UACnCv7D,KAAK8/D,KAAOntD,EAAElC,EAAEqvD,KAAM9/D,KAAK8/D,KAAM9/D,KAAK+/D,MAAQ//D,KAAKu7D,SAAW,EAAI,EAAIv7D,KAAKu7D,SAAW,EAAI,GAC1Fv7D,KAAKooD,WAAW33C,GAChB,IAAImZ,EAAI5pB,KAAKsJ,QACT+gB,EAAIT,EAAEnlB,OACNuE,EAAI4gB,EAAExkB,KACVpF,KAAKyhE,YAAchxD,EACnBzQ,KAAKiiE,gBAAkB,EACvBjiE,KAAKw7D,SAAW7oD,EAAEiX,EAAE4xC,SAAUx7D,KAAKw7D,UACnCx7D,KAAKo8D,QAAUxyC,EAAEwyC,QACjBp8D,KAAKw6D,YAAc5wC,EAAE4wC,YACrBx6D,KAAKuiE,SAAW,aAAev5D,IAAK,IAAO4gB,EAAErlB,WAC7CvE,KAAKuE,WAAaqlB,EAAErlB,aAAevE,KAAKuiE,SAAW,QAAK,GACxDviE,KAAKgyC,QAAUhyC,KAAKgyC,MAAQ,GAAIhyC,KAAKgyC,MAAMrc,KAAO,IAClD31B,KAAK6hE,wBAA0B,GAC/B7hE,KAAK2hE,qBAAuB3hE,KAAK09D,YACjC19D,KAAKw/D,SAAW/1C,EAAEG,EAAEi5C,UACpB7iE,KAAKsgE,MAAQ,GACbtgE,KAAKqiE,UAAY,GACjBriE,KAAKkiE,WAAa,GAClBliE,KAAK8hE,kBAAoB,GACzB9hE,KAAK0iE,eAAiB,GACtB1iE,KAAKgnB,IAAM,EACXhnB,KAAK8iE,SAAW9iE,KAAK+iE,aAAen5C,EAAEk5C,UAAYl5C,EAAEo5C,QACpDhjE,KAAKy6D,MAAQ7wC,EAAE6wC,MACfz6D,KAAKC,OAAS2pB,EAAE3pB,QAAU,EAC1BD,KAAK4E,IAAM5E,KAAKqT,IAAM,KACtB5C,EAAIkC,EAAEiX,EAAEq5C,UAAWj2C,EAAErD,EAAErgB,QAAQlI,QAAQ8hE,YAAY15C,EAAI,EAAI,IAC3DxpB,KAAKijE,WAAY,IAAOxyD,EAAI,GAAKA,GAChC,IAAMkZ,EAAEw5C,KAAKtkD,QAAQ7e,QAAUwpB,EAAIG,EAAEw5C,KAAKp+C,OAAO4E,EAAE9oB,MAAME,OAAQ,EAAGf,MAAQ2pB,EAAEw5C,KAAK77D,KAAKtH,MAAO2pB,EAAE3pB,KAAKwiE,MAAMl7D,KAAKtH,OAClHA,KAAKE,OAASF,KAAKE,QAAU,GAC7BypB,EAAE+hC,WAAa1rD,KAAK4iE,SAAWp5C,QAAK,IAAuBxpB,KAAKw7D,WAAax7D,KAAKw7D,UAAW,GAC7Fx7D,KAAKojE,cAAgB5yD,EAAE6Z,EAAElmB,UAAYkmB,EAAElmB,cAAW,EAClDimB,EAAEpqB,KAAM4pB,GACRE,EAAE9pB,KAAM,cAGVyP,EAAE2W,UAAUgiC,WAAa,SAAU53C,GACjCxQ,KAAKsJ,QAAUqgB,EAAE3gB,EAAEoxD,oBAAqB,UAAYp6D,KAAKwiE,MAAQx5D,EAAEyzD,oBAAqB,CAACzzD,EAAEk0D,sBAAuBl0D,EAAEg0D,wBAAyBh0D,EAAEi0D,yBAA0Bj0D,EAAE+zD,wBAAwB/8D,KAAK8/D,MAAOn2C,EAAE1Y,EAAEjR,KAAKwiE,MAAOhyD,IAC/NsZ,EAAE9pB,KAAM,kBAAmB,CACzByhE,YAAajxD,KAIjBf,EAAE2W,UAAUo4C,sBAAwB,SAAU70C,GAC5C,IAAIlZ,EAAIzQ,KAAK68D,KACblzC,EAAI3pB,KAAKX,MAAMyrD,gBACf,IAAIthC,EAAIhZ,EAAExQ,KAAK8E,OAAS9E,KAAK8E,MAAQ4kB,IACjCE,EAAInZ,EAAEpR,MAAM8mD,KACZ97B,EAAIrqB,KAAKq+D,oBACTr1D,EAAIiI,EAAE2zC,KACN96B,EAAI9gB,EAAE+8C,eACV/8C,EAAIA,EAAEq6D,wBAA0B,IAChC,IAAI1wD,EAAIlC,EAAEitD,YAAc3zC,KAAK8gC,IAAIrhC,GAAK/Y,EAAEmtD,aACpCxzC,EAAIN,GAAKA,EAAE/oB,OACf,GAAI0P,EAAElM,WAAY,IAAIkL,EAAI,GAAGsc,OAAO/rB,KAAK8E,YAAY,GAAIulB,EAAG5a,EAAIma,EAAE86B,WAAWr6B,EAAGb,QAAQ,GAAIY,GAAK,KAAOzX,EAAG,KAAOyX,UAAO,IAAuB3a,GAA4BkD,IAAxBlC,EAAIsZ,KAAK4zB,IAAI30C,EAAGohB,EAAI,KAAc,GAAM,GAAKZ,EAAI/Y,GAAK,OAASqZ,EAAEM,IAAM,IAAMZ,IAAM/Z,EAAIka,EAAEH,EAAI/Y,GAAI,GAAKqZ,EAAEM,IAE5P,YADA,IAAuB3a,IAAMA,EAAI,KAAOsa,KAAK8gC,IAAIrhC,GAAKG,EAAEH,GAAI,GAAKG,EAAEH,GAAI,OAAG,EAAQ,KAC3E/Z,GAGTA,EAAE2W,UAAUk9C,kBAAoB,WAC9B,IAEI95C,EAFAG,EAAI3pB,KACJyQ,EAAIkZ,EAAEtqB,MAEVyqB,EAAE9pB,KAAM,oBAAqB,MAAM,WACjC2pB,EAAE24C,kBAAmB,EACrB34C,EAAE45C,QAAU55C,EAAE65C,QAAU75C,EAAE85C,UAAY,KACtC95C,EAAE+5C,eAAiB/5C,EAAEw3C,QACrBx3C,EAAExnB,UAAYwnB,EAAExnB,SAASwhE,cACzBh6C,EAAEzpB,OAAO8F,SAAQ,SAAU4jB,GACzB,GAAIA,EAAEwyC,UAAY3rD,EAAEnH,QAAQjK,MAAMkjD,mBAAoB,CACpD,IAAIl4B,EAAIT,EAAEtgB,QACNN,EAAIqhB,EAAEo5C,UAIV,GAHA95C,EAAE24C,kBAAmB,EACrB34C,EAAEg4C,oBAAsB,GAAK34D,IAAMA,EAAI,MAEnC2gB,EAAEw3C,SACJ,IAAI92C,EAAIT,EAAEg6C,OAAS7iE,OAAQ,CACzBspB,EAAIV,EAAE+zC,YAAcrzC,EAAEliB,OAAOwhB,EAAEk6C,uBAAyBx5C,EAExD,IAAIP,GADJN,EAAII,EAAEk6C,aAAaz5C,IACTzlB,IACNwlB,EAAIZ,EAAEnW,IACV7C,EAAEsZ,IAAMA,aAAaG,OAASI,EAAIA,EAAEliB,OAAOqI,GAA2BsZ,GAAvBN,EAAII,EAAEk6C,aAAaz5C,IAAUzlB,IAAKwlB,EAAIZ,EAAEnW,KACvFgX,EAAEtpB,SAAW4oB,EAAE45C,QAAUx5C,KAAKnlB,IAAI+N,EAAEgX,EAAE45C,QAASz5C,GAAIA,GAAIH,EAAE65C,QAAUz5C,KAAK1W,IAAIV,EAAEgX,EAAE65C,QAASp5C,GAAIA,UAEtFR,EAAIA,EAAEm6C,gBAAiBvzD,EAAEoZ,EAAE25C,WAAaz5C,EAAIF,EAAE25C,QAAS55C,EAAE45C,QAAUx5C,KAAKnlB,IAAI+N,EAAEgX,EAAE45C,QAASz5C,GAAIA,IAAKtZ,EAAEoZ,EAAE45C,WAAap5C,EAAIR,EAAE45C,QAAS75C,EAAE65C,QAAUz5C,KAAK1W,IAAIV,EAAEgX,EAAE65C,QAASp5C,GAAIA,IAAKX,EAAEzgB,KAAO2gB,EAAE85C,UAAYz6D,KAAKqhB,EAAEq5C,eAAiB/5C,EAAEg4C,sBAAoBh4C,EAAE+5C,eAAgB,UAIrR55C,EAAE9pB,KAAM,2BAGVyP,EAAE2W,UAAUorC,UAAY,SAAU7nC,EAAGlZ,EAAG+Y,EAAGI,EAAGS,EAAGrhB,GAC/C,IAAI8gB,EAAI9pB,KAAKy/D,cAAgBz/D,KACzB2S,EAAIiX,GAAKE,EAAEm3C,IAAMn3C,EAAEm3C,IAAIr8D,IAAMklB,EAAEllB,IACnC,IAAK4L,EAAEmC,GAAI,OAAO+W,IAClB,IAAIU,EAAIN,EAAEm4C,gBACV53C,GAAKP,EAAEk6C,WAAal6C,EAAEm6C,YAAcn6C,EAAEm6C,WAAWC,WAAap6C,EAAE4zC,aAAerzC,IAAMP,EAAEq6C,QACvF,IAAI10D,EAAI,EACJua,EAAI,EAMR,OALAJ,EAAIA,GAAKE,EAAEm3C,IAAMn3C,EAAEm3C,IAAI1B,OAASz1C,EAAEy1C,UAC5B31C,EAAIE,EAAEy1C,QACZ/1C,IAAM/Z,IAAM,EAAGua,EAAIF,EAAE9C,KACrB8C,EAAE0xC,WAAsBxxC,IAATva,IAAM,IAAaqa,EAAEs6C,QAAUt6C,EAAE9C,MAChDvW,GAAKzH,GAAK2gB,EAAIla,EAAIua,EAAII,GAAKR,EAAIjX,EAAG0X,IAAMrhB,EAAI8gB,EAAEq6C,QAAQn7D,MAAQqhB,IAAMV,EAAIG,EAAEu6C,QAAQ16C,IAAKA,EAAIla,GAAKka,EAAIhX,GAAKiX,EAAG5gB,GAAK8gB,EAAEu2C,SAAW12C,EAAI7Y,EAAE6Y,IAAMK,EAAIva,EAAI2a,GAAK5Z,EAAExH,GAAK4gB,EAAI5gB,EAAI,IAC/JA,GAGTyG,EAAE2W,UAAUzlB,SAAW,SAAU6P,EAAGmZ,GAClC,OAAO3pB,KAAKwxD,UAAUhhD,GAAG,GAAKxQ,KAAK+/D,WAAO,GAAQ,IAAOp2C,EAAI,EAAI3pB,KAAKw0C,MAGxE/kC,EAAE2W,UAAUk+C,QAAU,SAAU9zD,EAAGmZ,GACjC,OAAO3pB,KAAKwxD,UAAUhhD,GAAKmZ,EAAI,EAAI3pB,KAAKw0C,MAAM,GAAKx0C,KAAK+/D,WAAO,GAAQ,IAGzEtwD,EAAE2W,UAAU46C,gBAAkB,SAAUr3C,GACtC,SAASlZ,EAAED,EAAGmZ,EAAGH,GAEf,OADI,SAAW1Y,GAAKN,EAAImZ,GAAKnZ,EAAIgZ,KAAG1Y,EAAIN,EAAI4a,EAAE5a,EAAGmZ,EAAGH,GAAK6B,GAAI,GACtD7a,EAGT,IAYIsX,EACA7W,EACApP,EACAopB,EACAI,EAhBA7B,EAAIxpB,KACJ4pB,EAAIJ,EAAEnqB,MACNgrB,EAAIb,EAAE5oB,KACNoI,EAAIwgB,EAAE/oB,IACN2pB,EAAIT,EAAEs3C,IACNxxD,EAAIka,EAAE7kB,MACNklB,EAAIL,EAAEzkB,UACNukB,EAAIW,GAAKR,EAAEq1C,gBAAkBr1C,EAAEnjB,YAC/BimB,EAAItC,GAAKR,EAAEu1C,eAAiBv1C,EAAEw1C,WAC9B3zC,EAAIjC,EAAE01C,OACN/zC,EAAIxB,EAAE46C,gBACNzzD,EAAI6Y,EAAE1B,MAsBV,OAhBA0B,EAAI,CACF7kB,MAAO2K,EACPvK,UAAW8kB,EACXi3C,IAAK72C,EACLnC,MAAOnX,EACP0zD,YAAa76C,EAAE66C,YACfD,gBAAiBp5C,GAEnBrB,EAAE9pB,KAAM,kBAAmB2pB,GAAG,SAAUA,GACtCwB,EAAIxY,EAAEwY,EAAG3B,EAAEgoC,UAAU/hD,OAAG,OAAQ,EAAQ2a,IACxCe,EAAIC,EAAED,GAAI,IAAK,KACfrD,EAAIjmB,EAAIkoB,KAAKw2B,MAAMp1B,EAAIM,GACvBxa,EAAIga,EAAIlB,KAAKw2B,MAAM92B,EAAI0B,EAAIM,GAC3Bjb,EAAE2a,GAAK3B,EAAEu2C,OAAS9uD,EAAIjI,EAAGiiB,EAAIxB,EAAID,EAAE61C,OAAQv3C,EAAIjmB,EAAI4O,EAAEqX,EAAGuC,EAAGA,EAAIb,EAAErmB,SAAW2kB,EAAIuC,EAAGxoB,EAAI6qB,EAAIlD,EAAEqjC,MAAO57C,EAAIga,EAAIxa,EAAEQ,EAAGjI,EAAGA,EAAIwgB,EAAEhqB,UAAY6rB,GAAI,EAAIva,GAAI,GAClJ6Y,EAAE1jB,KAAOolB,IAAMva,EAAI,KAAO8Y,EAAE3iB,SAAS8wD,UAAU,CAAC,CAAC,IAAKjwC,EAAG7W,GAAI,CAAC,IAAKpP,EAAGopB,IAAKjB,GAAK,MAE3EL,EAAE1jB,MAGXwJ,EAAE2W,UAAUq+C,uBAAyB,SAAUj0D,EAAGmZ,EAAGH,GACnD,IAAI/Y,EAAIK,EAAEiZ,KAAK4U,MAAMhV,EAAInZ,GAAKA,GAC9BgZ,EAAI1Y,EAAEiZ,KAAKkkB,KAAKzkB,EAAIhZ,GAAKA,GACzB,IACI6Z,EADAT,EAAI,GAGR,GADA9Y,EAAEL,EAAID,KAAOC,IAAM4Z,EAAI,IACnBrqB,KAAK0kE,OAAQ,MAAO,CAAC/6C,GAEzB,IAAKA,EAAIlZ,EAAGkZ,GAAKH,IACfI,EAAEtiB,KAAKqiB,IACPA,EAAI7Y,EAAE6Y,EAAInZ,EAAG6Z,MACHP,IACV,IAAIA,EAAIH,EAGV,OAAOC,GAGTna,EAAE2W,UAAUu+C,qBAAuB,WACjC,IAAIn0D,EAAIxQ,KAAKsJ,QACb,OAAO,IAAOkH,EAAE0xD,WAAavvD,EAAEnC,EAAE2xD,kBAAmB,SAAU,IAAO3xD,EAAE0xD,WAAa,KAAO1xD,EAAE2xD,mBAG/F1yD,EAAE2W,UAAUw+C,sBAAwB,WAClC,IAAIp0D,EAAIxQ,KAAKsJ,QACTqgB,EAAI3pB,KAAK29D,cACTn0C,EAAIxpB,KAAKmiE,kBACT1xD,EAAIzQ,KAAK4hE,mBAAqB,EAC9Bh4C,EAAI5pB,KAAK4E,IAAM6L,EAEf4Z,GADJ5Z,EAAIzQ,KAAKqT,IAAM5C,GACHmZ,EACRE,EAAI,GAER,GAAIO,GAAKA,EAAIb,EAAIxpB,KAAKgnB,IAAM,EAAG,CAC7B,IAAIhe,EAAIhJ,KAAK09D,YACb,GAAI10D,EAAGhJ,KAAK+hE,YAAY/7D,SAAQ,SAAUwK,EAAGmZ,EAAGlZ,GAC9CkZ,GAAKG,EAAExiB,KAAKoa,MAAMoI,EAAG9gB,EAAE67D,oBAAoBr7C,EAAG/Y,EAAEkZ,EAAI,GAAIlZ,EAAEkZ,IAAI,YACxD,GAAI3pB,KAAK+9D,UAAY,SAAW/9D,KAAK2kE,uBAAwB76C,EAAIA,EAAEiC,OAAO/rB,KAAKslD,aAAatlD,KAAK+9D,SAAS+G,0BAA0Bt7C,GAAII,EAAGnZ,EAAGD,EAAEqrD,mBAAmB,IAAKrrD,EAAIoZ,GAAKD,EAAE,GAAKC,GAAKJ,EAAGhZ,GAAKC,GAAKD,IAAMsZ,EAAE,GAAItZ,GAAKgZ,EAAGM,EAAExiB,KAAKkJ,GAI/O,OADA,IAAMsZ,EAAE/oB,QAAUf,KAAK+kE,UAAUj7C,GAC1BA,GAGTra,EAAE2W,UAAU4+C,kBAAoB,WAC9B,IAKIl7C,EACA9gB,EACAohB,EACA3a,EARAe,EAAIxQ,KAAKsJ,QACTqgB,EAAI3pB,KAAK09D,YACTl0C,EAAIxpB,KAAK4E,IACTglB,EAAI5pB,KAAKqT,IACTgX,EAAI,EAWR,GANArqB,KAAKmhE,cAAW,IAAuBnhE,KAAK8iE,WAAan5C,IAAMF,EAAEjZ,EAAE5L,MAAQ6kB,EAAEjZ,EAAE6C,MAAQoW,EAAEjZ,EAAEmuB,QAAUlV,EAAEjZ,EAAEy0D,SAAWjlE,KAAK8iE,SAAW,MAAQ9iE,KAAKE,OAAO8F,SAAQ,SAAUwK,GAGxK,GAFA4Z,EAAI5Z,EAAEozD,MACNn0D,EAAIe,EAAE00D,WAAa,EAAI96C,EAAErpB,OAAS,EAC9B,EAAIqpB,EAAErpB,OAAQ,IAAK+oB,EAAIra,EAAG,EAAIqa,EAAGA,IAAS9gB,EAAIohB,EAAEN,GAAKM,EAAEN,EAAI,KAAKO,GAAKrhB,EAAIqhB,KAAGA,EAAIrhB,MAClFhJ,KAAK8iE,SAAW/4C,KAAKnlB,IAAI,EAAIylB,EAAGrqB,KAAKwjE,QAAUxjE,KAAKujE,WAEpD35C,EAAIJ,EAAIxpB,KAAK8iE,SAAU,CACzB,IAAI33C,EAAInrB,KAAKwjE,QAAUxjE,KAAKujE,SAAWvjE,KAAK8iE,SACxCr3C,EAAIzrB,KAAK8iE,SACThyD,GAAK2a,EAAI7B,EAAIJ,GAAK,EACtB1Y,EAAI,CAAC0Y,EAAI1Y,EAAG6B,EAAEnC,EAAE5L,IAAK4kB,EAAI1Y,IACzBqa,IAAMra,EAAE,GAAK9Q,KAAK09D,YAAc19D,KAAK09D,YAAYyH,QAAQnlE,KAAKujE,SAAWvjE,KAAKujE,SAE9E35C,EAAI,EADJJ,EAAI/Y,EAAEK,IACG2a,EAAG9Y,EAAEnC,EAAE6C,IAAKmW,EAAIiC,IACzBN,IAAMvB,EAAE,GAAKD,EAAIA,EAAEw7C,QAAQnlE,KAAKwjE,SAAWxjE,KAAKwjE,UAChD55C,EAAII,EAAEJ,IACFJ,EAAIiC,IAAM3a,EAAE,GAAK8Y,EAAI6B,EAAG3a,EAAE,GAAK6B,EAAEnC,EAAE5L,IAAKglB,EAAI6B,GAAIjC,EAAI/Y,EAAEK,IAG5D9Q,KAAK4E,IAAM4kB,EACXxpB,KAAKqT,IAAMuW,GAGbna,EAAE2W,UAAUg/C,WAAa,WACvB,IAAI50D,EAMJ,OALAxQ,KAAKuE,WAAaiM,EAAI,EAAIxQ,KAAKE,OAAO8F,SAAQ,SAAU2jB,GACtD,IAAIH,EAAIG,EAAE84C,kBACNhyD,EAAIkZ,EAAEyyC,UAAYzyC,EAAEtqB,MAAMiK,QAAQjK,MAAMkjD,oBAC3C54B,EAAE07C,iBAAmB57C,EAAED,IAAM/Y,IAAMD,EAAIiZ,EAAEjZ,GAAKuZ,KAAKnlB,IAAI4L,EAAGgZ,GAAKA,MAE3DhZ,GAGTf,EAAE2W,UAAUk/C,QAAU,SAAU90D,GAC9B,IAAImZ,EAAIU,EAAErqB,KAAKsJ,QAAQ/E,YACnBilB,EAAIG,EAAI3pB,KAAKuE,WAAavE,KAAKgyC,MAC/BvhC,EAAID,EAAElH,QAAQzH,EAIlB,GAHA2O,EAAEtQ,OAAOqlE,gBAAiB,EAC1B97C,EAAEhZ,KAAOA,EAAIzQ,KAAKsJ,QAAQ6yD,aAAe3yC,EAAIG,EAAIH,EAAE3K,QAAQrO,EAAEnL,MAAQsN,EAAE6W,EAAEmM,KAAKnlB,EAAEnL,OAAQ,GAAKmL,EAAEtQ,OAAOslE,kBAEjG,IAAM/0D,GACT,IAAKkZ,GAAKH,EAAG,IAAII,EAAIJ,EAAEzoB,YAClB6oB,EAAInZ,EAGX,YADA,IAAuBmZ,IAAM5pB,KAAKgyC,MAAMpoB,GAAKpZ,EAAEnL,KAAMrF,KAAKgyC,MAAMrc,KAAKnlB,EAAEnL,MAAQukB,GACxEA,GAGTna,EAAE2W,UAAUq/C,YAAc,WACxB,IAAIj1D,EAAIxQ,KACJ2pB,EAAI3pB,KAAKgyC,MACb,EAAIroB,EAAE5oB,SAAW4lB,OAAOgP,KAAKhM,EAAEgM,MAAM3vB,SAAQ,SAAUwK,UAC9CmZ,EAAEgM,KAAKnlB,MACZmZ,EAAE5oB,OAAS,EAAGf,KAAK8iE,SAAW9iE,KAAK+iE,cAAe/iE,KAAKE,QAAU,IAAI8F,SAAQ,SAAU2jB,GACzFA,EAAEu7C,WAAa,KACVv7C,EAAE+7C,SAAU/7C,EAAEg8C,cAAan1D,EAAE6C,IAAM0W,KAAK1W,IAAI7C,EAAE6C,IAAKsW,EAAEi6C,MAAM7iE,OAAS,GAAI4oB,EAAEi8C,cAAej8C,EAAEk8C,kBAChGl8C,EAAEzmB,KAAK8C,SAAQ,SAAUwjB,EAAG/Y,GAC1B,GAAI+Y,GAAKA,EAAElgB,cAAW,IAAuBkgB,EAAEnkB,KAAM,CACnD,IAAIukB,EAAIpZ,EAAE80D,QAAQ97C,QAClB,IAAuBI,GAAKA,IAAMJ,EAAE3nB,IAAM2nB,EAAE3nB,EAAI+nB,EAAGD,EAAEi6C,MAAMnzD,GAAKmZ,YAMxEna,EAAE2W,UAAU0/C,mBAAqB,WAC/B,IAAIt1D,EAAIxQ,KACJ2pB,EAAInZ,EAAE6C,IAAM7C,EAAE5L,IACd6L,EAAID,EAAEivD,aACN71C,IAAMpZ,EAAEjM,WACR8lB,EAAI7Z,EAAE2wD,QACNn4D,EAAIwH,EAAEu1D,gBAAkB,EACxB37C,EAAI,EACJ3a,EAAI,EACJua,EAAIxZ,EAAE+uD,OAEV,GAAIl1C,GAAKT,GAAK5gB,EAAG,CACf,IAAIygB,EAAIjZ,EAAE40D,aACV30D,GAAK2Z,EAAI3Z,EAAEu1D,eAAgBv2D,EAAIgB,EAAEmxD,mBAAqBpxD,EAAEtQ,OAAO8F,SAAQ,SAAU2jB,GAC/E,IAAIlZ,EAAImZ,EAAI,EAAIS,EAAI1X,EAAEgX,EAAErgB,QAAQjH,WAAYonB,EAAG,GAAKjZ,EAAEu1D,gBAAkB,EACpEj8C,EAAIH,EAAErgB,QAAQ28D,eAClBj9D,EAAI+gB,KAAK1W,IAAIrK,EAAGyH,GACXD,EAAEk0D,SAAU96C,IAAGD,EAAIA,EAAE5K,GAAG,WAAasL,EAAIA,EAAGD,EAAIL,KAAK1W,IAAI+W,EAAGT,GAAKH,EAAEM,GAAK,EAAIrZ,EAAI,GAAIhB,EAAIsa,KAAK1W,IAAI5D,EAAGka,GAAK,OAASG,EAAI,EAAIrZ,OAEjIA,EAAID,EAAE01D,SAAW11D,EAAE01D,QAAQC,OAAS18C,EAAIjZ,EAAE01D,QAAQC,MAAQ18C,EAAI,EAC9DjZ,EAAEw1D,eAAiB57C,GAAK3Z,EACxBD,EAAEoxD,kBAAoBnyD,GAAKgB,EAC3BD,EAAEnO,WAAa0nB,KAAKnlB,IAAIoE,EAAGwH,EAAEk0D,QAAU96C,EAAI,EAAID,GAC/CU,IAAM7Z,EAAEiyD,kBAAoBh5C,GAG9BjZ,EAAEkxD,iBAAmBlxD,EAAE+uD,OAASv1C,EAAIxZ,EAAE41D,aAAe51D,EAAEwW,KAAO2C,EAAIla,GAAK,GACvEe,EAAE0uD,OAAS1uD,EAAEuvD,MAAQvvD,EAAE5P,KAAO4P,EAAE6uD,OAChC7uD,EAAEyxD,gBAAkBj4C,EAAII,EACxBN,EAAE9pB,KAAM,4BAGVyP,EAAE2W,UAAUigD,aAAe,WACzB,OAAOrmE,KAAKqT,IAAMrT,KAAKy6D,OAGzBhrD,EAAE2W,UAAUkgD,gBAAkB,SAAU38C,GACtC,IAAIH,EAAIxpB,KAAKX,MACToR,EAAIzQ,KAAK09D,YACT9zC,EAAI5pB,KAAKsJ,QACT+gB,EAAIrqB,KAAKmhE,QACTn4D,EAAIhJ,KAAKw/D,SACTp1C,EAAIR,EAAEoyC,kBACNvsD,EAAIzP,KAAKuE,WACTylB,EAAIhqB,KAAK0jE,cACTv4C,EAAIvB,EAAEsxC,WACNzvC,EAAI7B,EAAE0xC,WACN5uC,EAAIlc,EAAEoZ,EAAEg0C,eAAiB,GAAKh0C,EAAEg0C,aAAeh0C,EAAEg0C,kBAAe,EAChExyC,EAAI5a,EAAExQ,KAAKyjE,WAAazjE,KAAKyjE,UAAY,KAC7CzjE,KAAK+9D,UAAYtuD,GAAKzG,GAAKhJ,KAAKumE,gBAChC,IAAIz+C,EAAInV,EAAE3S,KAAKwmE,QAAS58C,EAAEhlB,KACtBqM,EAAI0B,EAAE3S,KAAKymE,QAAS78C,EAAEvW,KAE1B,GAAIrK,EAAG,CACLhJ,KAAKy/D,aAAej2C,EAAExpB,KAAKwiE,MAAM54C,EAAEi5C,UACnC,IAAIhhE,EAAI7B,KAAKy/D,aAAaiH,cAC1B1mE,KAAK4E,IAAM+N,EAAE9Q,EAAE+C,IAAK/C,EAAE0hE,SACtBvjE,KAAKqT,IAAMV,EAAE9Q,EAAEwR,IAAKxR,EAAE2hE,SACtB55C,EAAExkB,OAASpF,KAAKy/D,aAAan2D,QAAQlE,MAAQ6lB,EAAE,GAAI,EAAGzB,OACjD,CACL,GAAIQ,GAAKP,EAAE2B,GAAI,GAAIprB,KAAKujE,SAAWn4C,EAAGvpB,EAAIupB,EAAGK,EAAI,OAAO,GAAIzrB,KAAKwjE,SAAWp4C,EAAG,CAC7E,IAAIC,EAAID,EACRD,EAAI,EAENnrB,KAAK4E,IAAM+N,EAAEmV,EAAGjmB,EAAG7B,KAAKujE,SACxBvjE,KAAKqT,IAAMV,EAAE1B,EAAGoa,EAAGrrB,KAAKwjE,SAe1B,GAZA/yD,IAAMzQ,KAAK2hE,qBAAuBh4C,GAAK,GAAKI,KAAKnlB,IAAI5E,KAAK4E,IAAK+N,EAAE3S,KAAKujE,QAASvjE,KAAK4E,OAASqmB,EAAE,GAAI,EAAGzB,GAAIxpB,KAAK4E,IAAMkM,EAAEL,EAAE00D,QAAQnlE,KAAK4E,KAAM,IAAK5E,KAAKqT,IAAMvC,EAAEL,EAAE00D,QAAQnlE,KAAKqT,KAAM,KACnLrT,KAAKy6D,OAAShxC,EAAEzpB,KAAKqT,OAASrT,KAAKwmE,QAAUxmE,KAAK4E,IAAMkjB,EAAIiC,KAAK1W,IAAIrT,KAAKujE,QAASvjE,KAAKqmE,gBAAiBrmE,KAAKymE,QAAUx1D,EAAIjR,KAAKqT,IAAKrT,KAAKy6D,MAAQ,MACnJ3wC,EAAE9pB,KAAM,iBACRA,KAAK2mE,eAAiB3mE,KAAK2mE,gBAC3B3mE,KAAKglE,sBACHv1D,GAAKzP,KAAK+lE,gBAAkB/lE,KAAKmC,UAAYnC,KAAKmC,SAASykE,eAAiB59D,IAAMygB,EAAEzpB,KAAK4E,MAAQ6kB,EAAEzpB,KAAKqT,OAASmW,EAAIxpB,KAAKqT,IAAMrT,KAAK4E,QAAU6kB,EAAE3B,IAAM2D,IAAMzrB,KAAK4E,KAAO4kB,EAAIiC,IAAKhC,EAAExY,IAAMka,IAAMnrB,KAAKqT,KAAOmW,EAAI2B,IAClN3a,EAAExQ,KAAKwmE,WAAah2D,EAAEoZ,EAAEi9C,UAAYj9C,EAAEi9C,QAAU7mE,KAAK4E,MAAQ5E,KAAK4E,IAAMkjB,EAAI8B,EAAEi9C,SAAUr2D,EAAEoZ,EAAE+U,SAAW3+B,KAAK4E,IAAMmlB,KAAK1W,IAAIrT,KAAK4E,IAAKglB,EAAE+U,SACvInuB,EAAExQ,KAAKymE,WAAaj2D,EAAEoZ,EAAEk9C,UAAYl9C,EAAEk9C,QAAU9mE,KAAKqT,MAAQrT,KAAKqT,IAAMpC,EAAI2Y,EAAEk9C,SAAUt2D,EAAEoZ,EAAEq7C,WAAajlE,KAAKqT,IAAM0W,KAAKnlB,IAAI5E,KAAKqT,IAAKuW,EAAEq7C,WACzIj7C,GAAKP,EAAEzpB,KAAKujE,WAAan4C,EAAIA,GAAK,GAAI3B,EAAE3B,IAAM9nB,KAAK4E,IAAMwmB,GAAKprB,KAAKujE,SAAWn4C,EAAIprB,KAAK4E,IAAM5E,KAAKsJ,QAAQw5D,SAAW/4C,KAAKnlB,IAAIwmB,EAAGprB,KAAKqT,IAAMrT,KAAK8iE,UAAY13C,GAAK3B,EAAExY,IAAMjR,KAAKqT,IAAM+X,GAAKprB,KAAKwjE,SAAWp4C,IAAMprB,KAAKqT,IAAMrT,KAAKsJ,QAAQw5D,SAAW/4C,KAAK1W,IAAI+X,EAAGprB,KAAK4E,IAAM5E,KAAK8iE,UAAY13C,IAC3R5a,EAAExQ,KAAK4E,MAAQ4L,EAAExQ,KAAKqT,OAASrT,KAAKX,MAAM0nE,OAAS/mE,KAAK4E,IAAM5E,KAAKqT,MAAQoW,EAAEzpB,KAAKsJ,QAAQ1E,KAAO5E,KAAKqT,IAAMrT,KAAK4E,IAAM6kB,EAAEzpB,KAAKsJ,QAAQ+J,OAASrT,KAAK4E,IAAM5E,KAAKqT,MAC/JrT,KAAK49D,aAAe59D,KAAK4E,MAAQ5E,KAAKqT,UAAO,IAAuBrT,KAAK4E,UAAO,IAAuB5E,KAAKqT,IAAM,EAAIrK,GAAKhJ,KAAKy/D,eAAiB/yC,GAAKtC,IAAMpqB,KAAKy/D,aAAan2D,QAAQ0yD,kBAAoBtvC,EAAI1sB,KAAKy/D,aAAa7B,aAAejrD,EAAE+Z,EAAG1sB,KAAKwhE,YAAcxhE,KAAKqT,IAAMrT,KAAK4E,KAAOmlB,KAAK1W,IAAIrT,KAAKwhE,WAAa,EAAG,QAAK,EAAQ/xD,EAAI,GAAKzP,KAAKqT,IAAMrT,KAAK4E,KAAOwlB,EAAIL,KAAK1W,IAAIrT,KAAKgnB,IAAKoD,IAE5XC,IAAMV,EAAG,CACX,IAAIY,EAAIvqB,KAAK4E,OAAS5E,KAAKihE,KAAOjhE,KAAKihE,IAAIr8D,MAAQ5E,KAAKqT,OAASrT,KAAKihE,KAAOjhE,KAAKihE,IAAI5tD,KACtFrT,KAAKE,OAAO8F,SAAQ,SAAUwK,GAC5BA,EAAEw2D,UAAYx2D,EAAEy2D,eAAiBz2D,EAAEy2D,gBACnCz2D,EAAEo1D,YAAYr7C,MAEhBT,EAAE9pB,KAAM,kBAAmB,CACzBknE,kBAAmB38C,IAIvBvqB,KAAK8lE,qBACLh8C,EAAE9pB,KAAM,0BACRA,KAAKqC,aAAeqqB,IAAM1sB,KAAK49D,aAAe7zC,KAAK1W,IAAIrT,KAAKqC,WAAYrC,KAAK49D,eAC7Ej0C,EAAIhX,EAAEiX,EAAEu9C,gBAAiBnnE,KAAK+9D,WAAa/9D,KAAKE,OAAOkX,MAAK,SAAU5G,GACpE,OAAOA,EAAE60D,mBACNrlE,KAAKyiE,kBAAoB,IAC7B/1C,GAAK1sB,KAAK49D,aAAej0C,IAAM3pB,KAAK49D,aAAej0C,GACpD3pB,KAAK+9D,UAAY/9D,KAAK09D,aAAehxC,IAAM1sB,KAAK49D,aAAezwC,EAAEntB,KAAMA,KAAK49D,eAC5E59D,KAAKwhE,aAAexhE,KAAK49D,aAAe59D,KAAKonE,YAC7CpnE,KAAKqnE,oBAGP53D,EAAE2W,UAAUihD,iBAAmB,WAC7B,IAAI72D,EAAIxQ,KAAKsJ,QACTqgB,EAAInZ,EAAEmtD,cACNn0C,EAAIxpB,KAAK2kE,uBACTl0D,EAAIzQ,KAAKsnE,qBACT19C,EAAI,cAAgB5pB,KAAKwiE,KACzBn4C,GAAKT,IAAMnZ,IAAMD,EAAEsrD,YAQvB,GAPArrD,GAAKmZ,IAAMnZ,IAAMD,EAAEkqD,UACnB9wC,EAAIpZ,EAAE+2D,eACNvnE,KAAKw9D,eAAiBx9D,KAAKuE,YAAc,YAAciM,EAAEyrD,mBAAqB,IAAMj8D,KAAK49D,aAAe,GAAK,EAC7G59D,KAAKmiE,kBAAoB,SAAW34C,GAAKxpB,KAAK49D,aAAe59D,KAAK49D,aAAe,EAAIp0C,EACrFxpB,KAAK0kE,OAAS1kE,KAAK4E,MAAQ5E,KAAKqT,KAAOoW,EAAEzpB,KAAK4E,OAAS5E,KAAKwhE,aAAe3+D,SAAS7C,KAAK4E,IAAK,MAAQ5E,KAAK4E,MAAO,IAAO4L,EAAE8pD,eAC3Ht6D,KAAK29D,cAAgBn0C,EAAIG,GAAKA,EAAEjN,SAE3B8M,EAAG,CACN,GAAIxpB,KAAKkmE,SAAWlmE,KAAKkmE,QAAQsB,cAAgBxnE,KAAKqT,IAAMrT,KAAK4E,KAAO5E,KAAK49D,aAAe7zC,KAAK1W,IAAI,EAAIrT,KAAKgnB,IAAK,MACjH,GAAIhnB,KAAK+9D,SAAUv0C,EAAIxpB,KAAKslD,aAAatlD,KAAK+9D,SAAS+G,0BAA0B9kE,KAAK49D,aAAcptD,EAAEi3D,OAAQznE,KAAK4E,IAAK5E,KAAKqT,IAAK7C,EAAEqrD,YAAa77D,KAAKkmE,SAAWlmE,KAAKkmE,QAAQsB,UAAWxnE,KAAKyiE,mBAAmB,QAAS,GAAIziE,KAAK09D,YAAal0C,EAAIxpB,KAAK09D,YAAYmH,oBAAoB7kE,KAAK49D,aAAc59D,KAAK4E,IAAK5E,KAAKqT,UAAU,IAAK,IAAIrK,EAAIwH,EAAIxQ,KAAK49D,aAAc50D,GAAK,EAAIwH,IAAQgZ,EAAIxpB,KAAKykE,uBAAuBzkE,KAAK49D,aAAc59D,KAAK4E,IAAK5E,KAAKqT,KAAMrT,KAAKwhE,YAAch4C,EAAEzoB,OAASf,KAAKwhE,aAAYxhE,KAAK49D,aAAezwC,EAAEntB,KAAMgJ,GAAK,UAC7gBwgB,EAAI,CAACxpB,KAAK4E,IAAK5E,KAAKqT,KAAM4X,EAAE,IAAI,EAAIjrB,KAAKX,OAChDmqB,EAAEzoB,OAASf,KAAKgnB,MAAQwC,EAAI,CAACA,EAAE,GAAIA,EAAEw/B,QAAU,KAAOx/B,EAAE,KAAOA,EAAEzoB,OAAS,GAC1Ef,KAAK29D,cAAgBn0C,EACrBI,IAAMA,EAAIA,EAAElI,MAAM1hB,KAAM,CAACA,KAAK4E,IAAK5E,KAAKqT,SAAWrT,KAAK29D,cAAgBn0C,EAAII,GAG9E5pB,KAAK+hE,YAAcv4C,EAAE9M,MAAM,GAC3B1c,KAAK+kE,UAAUv7C,EAAGa,EAAG5Z,GACrBzQ,KAAKw/D,WAAax/D,KAAK0kE,QAAU,EAAIl7C,EAAEzoB,SAAWf,KAAKuE,aAAevE,KAAKE,OAAOkX,MAAK,SAAU5G,GAC/F,OAAOA,EAAEuO,GAAG,YAAc,YAAcvO,EAAElH,QAAQ28D,oBAC7CjmE,KAAK4E,KAAO,GAAI5E,KAAKqT,KAAO,IAAKsW,GAAKC,GAAK5pB,KAAK0nE,oBACvD59C,EAAE9pB,KAAM,0BAGVyP,EAAE2W,UAAU2+C,UAAY,SAAUv0D,EAAGmZ,EAAGH,GACtC,IAAI/Y,EAAID,EAAE,GACNoZ,EAAIpZ,EAAEA,EAAEzP,OAAS,GACjBspB,GAAKrqB,KAAKgkE,WAAahkE,KAAKgmE,gBAAkB,EAGlD,GAFAl8C,EAAE9pB,KAAM,cAEHA,KAAKw/D,SAAU,CAClB,GAAI71C,IAAK,MAAclZ,EAAGzQ,KAAK4E,IAAM6L,OAAO,KAAOzQ,KAAK4E,IAAMylB,EAAI7Z,EAAE,IAAKA,EAAE+tC,QAC3E,GAAI/0B,EAAGxpB,KAAKqT,IAAMuW,OAAO,KAAO5pB,KAAKqT,IAAMgX,EAAI7Z,EAAEA,EAAEzP,OAAS,IAAKyP,EAAEw4C,MACnE,IAAMx4C,EAAEzP,QAAU0oB,EAAEhZ,KAAOzQ,KAAKsJ,QAAQq0D,eAAiBntD,EAAElJ,MAAMsiB,EAAInZ,GAAK,KAI9EhB,EAAE2W,UAAUuhD,cAAgB,WAC1B,IAKI79C,EALAH,EAAI3pB,KACJwpB,EAAI,CAACxpB,MACLyQ,EAAIkZ,EAAErgB,QACNsgB,EAAI,UAAY5pB,KAAKwiE,MAAQxiE,KAAKX,MAAMiK,QAAQjK,MAAM2iD,gBACtD33B,EAAI,GAIR,GAFAV,EAAEi+C,wBAAqB,IAElB,IAAO5nE,KAAKX,MAAMiK,QAAQjK,MAAMg7D,YAAc5pD,EAAE4pD,YAAczwC,KAAM,IAAOnZ,EAAEqrD,cAAe,IAAOrrD,EAAEiqD,YAAc/wC,EAAE+zC,YAAa,CACrI,IAAI10D,EAAI,SAAUwH,GAChB,IAAImZ,EAAInZ,EAAElH,QACV,MAAO,CAACkH,EAAEuvD,MAAQp2C,EAAE/oB,KAAO+oB,EAAElpB,IAAKkpB,EAAExmB,MAAOwmB,EAAEnqB,OAAQmqB,EAAEk+C,MAAM1/C,QAE3DiC,EAAIphB,EAAEhJ,MAEVA,KAAKX,MAAMW,KAAKwiE,MAAMx8D,SAAQ,SAAUwK,GACtC,IAAIC,EAAID,EAAEtQ,OACVuQ,EAAE1P,QAAU0P,EAAE2G,MAAK,SAAU5G,GAC3B,OAAOA,EAAE4rD,YACL5rD,IAAMmZ,GAAK3gB,EAAEwH,KAAO4Z,IAAMN,GAAI,EAAIN,EAAEliB,KAAKkJ,OAInD,GAAIsZ,GAAKF,EAAG,CACVJ,EAAExjB,SAAQ,SAAUwjB,GAClBA,EAAIA,EAAEs+C,sBAAsBn+C,GAC5BnZ,EAAEgZ,IAAMa,EAAE/iB,KAAKkiB,MAEjB,IAAI7W,EAAI,EAAI0X,EAAEtpB,OAASspB,EAAEi0B,QAAO,SAAU9tC,EAAGmZ,GAC3C,OAAOnZ,EAAImZ,IACV,GAAKU,EAAEtpB,YAAS,EACnByoB,EAAExjB,SAAQ,SAAUwK,GAClBA,EAAEo3D,mBAAqBj1D,KAI3B,OAAOmX,GAGTra,EAAE2W,UAAU0hD,sBAAwB,SAAUn+C,GAI5C,KAHEnZ,EAAExQ,KAAKujE,UAAYvjE,OAAS2pB,GAAK3pB,KAAKE,OAAOkX,MAAK,SAAU5G,GAC5D,OAAOA,EAAE+wD,SAAW/wD,EAAEm1D,iBACjB3lE,KAAKsjE,oBACR9yD,EAAExQ,KAAKyjE,WAAY,OAAO95C,EAAIyB,GAAGprB,KAAKyjE,WAAazjE,KAAKujE,SAAW,MAAQvjE,KAAKwjE,SAAW,IAAMxjE,KAAKujE,SAAW,IAAK,EAAG,GAAIvjE,KAAKsJ,QAAQkyD,WAAa7xC,EAAI,EAAIA,GAAIA,GAGzKla,EAAE2W,UAAUmgD,cAAgB,WAC1B,IAAI/1D,EAAIxQ,KAAKsJ,QACTqgB,EAAInZ,EAAEwrD,kBACNxyC,EAAIhZ,EAAEgxD,YACT/3C,EAAEjZ,EAAEotD,gBAAkBp0C,GAAKxpB,KAAKgnB,IAAM2C,IAAM3pB,KAAKqgE,WAAargE,KAAK09D,aAAeltD,EAAEsrD,aAAetrD,EAAEkqD,YAAclxC,EAAI,IACvHA,GAAKxpB,KAAK2nE,kBAAoBn+C,EAAIO,KAAKkkB,KAAKjuC,KAAKgnB,IAAM2C,GAAK,GAC7D,EAAIH,IAAMxpB,KAAK+nE,aAAev+C,EAAGA,EAAI,GACrCxpB,KAAKwhE,WAAah4C,GAGpB/Z,EAAE2W,UAAUshD,iBAAmB,WAC7B,IAAI/9C,EAAI3pB,KACJwpB,EAAIG,EAAEo+C,aACNt3D,EAAIkZ,EAAEtW,IACNuW,EAAID,EAAE/kB,IACNylB,EAAIV,EAAErgB,QACNwgB,EAAIH,EAAEg0C,cACN30D,EAAI2gB,EAAE63C,WACNp3C,EAAIT,EAAEi+C,mBACNn4D,EAAIqa,GAAKA,EAAE/oB,OACXipB,EAAIrX,EAAEgX,EAAE85C,UAAW95C,EAAE+5C,cAAgB,EAAI,MACzCv4C,EAAIxB,EAAEi0C,aAEV,GAAIptD,EAAE4Z,GAAI,CACR,IAAIqB,EAAI,GAAKrB,EAAIL,KAAKkkB,KAAK7jB,GAAKphB,EAAI,IAAM+gB,KAAK4U,MAAMvU,GAAKphB,EAAI,IAC9DqhB,EAAEmxC,WAAa/vC,EAAIziB,EAAI,EAAIyiB,GAG7B,GAAI9B,EAAEq+C,WAAax3D,EAAEoZ,IAAMpZ,EAAEC,GAAI,CAO/B,GANA2Z,EAAI,WACFT,EAAE41C,SAAW9vD,EAAI,IAAMzG,EAAI,GAC3B2gB,EAAE/kB,IAAMylB,EAAEyxC,YAAchyC,EAAE,GAAKC,KAAKnlB,IAAIglB,EAAGE,EAAE,IAC7CH,EAAEtW,IAAMgX,EAAEqwC,UAAY5wC,EAAEA,EAAE/oB,OAAS,GAAKgpB,KAAK1W,IAAI5C,EAAGqZ,EAAEA,EAAE/oB,OAAS,KAG/DyP,EAAEib,IAAMjb,EAAEmZ,EAAE85C,WAAY,CAC1B,KAAO35C,EAAE2B,KAAOzB,GAAKF,EAAE/oB,SAAWiI,GAAK8gB,EAAE,GAAKF,GAAKE,EAAEA,EAAE/oB,OAAS,GAAK0P,GAAI,CAGvE,IAFAqZ,EAAE/oB,OAAS,EAEN+oB,EAAExiB,KAAKqiB,EAAE85C,WAAY35C,EAAE/oB,OAASiI,QAAI,IAAW8gB,EAAE2B,IAAM3B,EAAE2B,GAAK9B,EAAE85C,UAAY35C,EAAEm0B,QAAQntC,EAAEgZ,EAAE,GAAKqB,IAAMrB,EAAExiB,KAAKwJ,EAAEgZ,EAAEA,EAAE/oB,OAAS,GAAKoqB,IAErI,GAAIA,EAAI,EAAIxB,EAAEi0C,aAAc,MAC5BzyC,GAAK,EAGPf,SACK,GAAI3a,EAAIzG,EAAG,CAChB,KAAO8gB,EAAE/oB,OAASiI,GAAI8gB,EAAE/oB,OAAS,GAAK6oB,IAAMI,EAAIF,EAAExiB,KAAKwJ,EAAEgZ,EAAEA,EAAE/oB,OAAS,GAAKoqB,IAAMrB,EAAEm0B,QAAQntC,EAAEgZ,EAAE,GAAKqB,IAEpGf,IAGF,GAAIX,EAAED,GAAI,CACR,IAAK2B,EAAInB,EAAIF,EAAE/oB,OAAQoqB,MAAO,IAAM3B,GAAK,GAAM2B,EAAI,GAAK,GAAK3B,GAAK,EAAI2B,GAAKA,EAAInB,EAAI,IAAMF,EAAE/E,OAAOoG,EAAG,GAErGxB,EAAEo+C,kBAAe,KAKvBt4D,EAAE2W,UAAU6hD,SAAW,WACrB,IAAIz3D,GAAI,EACJmZ,GAAI,EACR3pB,KAAKE,OAAO8F,SAAQ,SAAUwjB,GAC5BhZ,EAAIA,GAAKgZ,EAAEm8C,aAAen8C,EAAE+3C,QAC5B53C,EAAIA,GAAKH,EAAE3oB,OAAS2oB,EAAE3oB,MAAM0gE,UAAW,KAEzCvhE,KAAKkoE,cACL,IAAI1+C,EAAIxpB,KAAKgnB,OAAShnB,KAAKihE,KAAOjhE,KAAKihE,IAAIj6C,KAC3CwC,GAAKhZ,GAAKmZ,GAAK3pB,KAAKw/D,UAAYx/D,KAAKmoE,aAAenoE,KAAKwmE,WAAaxmE,KAAKihE,KAAOjhE,KAAKihE,IAAIuF,UAAYxmE,KAAKymE,WAAazmE,KAAKihE,KAAOjhE,KAAKihE,IAAIwF,UAAYzmE,KAAK2nE,iBAAmB3nE,KAAKmC,UAAYnC,KAAKmC,SAASimE,cAAepoE,KAAKmoE,aAAc,EAAInoE,KAAKsjE,oBAAqBtjE,KAAKsmE,kBAAmBtmE,KAAKuhE,UAAYvhE,KAAKuhE,QAAU/3C,GAAKxpB,KAAK4E,OAAS5E,KAAKihE,KAAOjhE,KAAKihE,IAAIr8D,MAAQ5E,KAAKqT,OAASrT,KAAKihE,KAAOjhE,KAAKihE,IAAI5tD,OAASrT,KAAKmC,UAAYnC,KAAKmC,SAASkmE,cACpc73D,GAAKxQ,KAAKsoE,eAAiBtoE,KAAKsoE,aAAa/G,SAAU,GACvDz3C,EAAE9pB,KAAM,kBAGVyP,EAAE2W,UAAUmiD,YAAc,SAAU/3D,EAAGmZ,EAAGH,EAAG/Y,EAAGmZ,GAC9C,IAAIS,EAAIrqB,KACJgJ,EAAIqhB,EAAEhrB,MACVmqB,EAAI7W,EAAE6W,GAAG,GACTa,EAAEnqB,OAAO8F,SAAQ,SAAUwK,UAClBA,EAAEg4D,UAEX5+C,EAAI/nB,EAAE+nB,EAAG,CACPhlB,IAAK4L,EACL6C,IAAKsW,IAEPG,EAAEO,EAAG,cAAeT,GAAG,WACrBS,EAAEm8C,QAAUh2D,EACZ6Z,EAAEo8C,QAAU98C,EACZU,EAAEo+C,UAAY7+C,EACdJ,GAAKxgB,EAAEjJ,OAAO0Q,OAIlBhB,EAAE2W,UAAUsiD,KAAO,SAAUl4D,EAAGmZ,GAC9B,IAAIH,EAAIxpB,KACJyQ,EAAIzQ,KAAKujE,QACT35C,EAAI5pB,KAAKwjE,QACTn5C,EAAIrqB,KAAKsJ,QACTN,EAAI+gB,KAAKnlB,IAAI6L,EAAGkC,EAAE0X,EAAEzlB,IAAK6L,IACzB2Z,EAAIL,KAAK1W,IAAIuW,EAAGjX,EAAE0X,EAAEhX,IAAKuW,IAa7B,OARAE,EAAE9pB,KAAM,OAJRwQ,EAAI,CACFm4D,OAAQn4D,EACRo4D,OAAQj/C,IAES,SAAUnZ,GAC3B,IAAImZ,EAAInZ,EAAEm4D,OACNt+C,EAAI7Z,EAAEo4D,OACNj/C,IAAMH,EAAE5kB,KAAOylB,IAAMb,EAAEnW,MAAKmW,EAAEq/C,mBAAqBp/C,EAAEhZ,KAAOkZ,EAAI3gB,IAAM2gB,EAAI3gB,GAAI2gB,EAAIS,IAAMT,EAAIS,IAAKX,EAAEG,KAAOS,EAAIrhB,IAAMqhB,EAAIrhB,GAAIqhB,EAAID,IAAMC,EAAID,KAAMZ,EAAEs/C,gBAAa,IAAuBn/C,QAAK,IAAuBU,EAAGb,EAAE++C,YAAY5+C,EAAGU,GAAG,OAAI,EAAQ,CACvPjiB,QAAS,UAEXoI,EAAEu4D,QAAS,KAENv4D,EAAEu4D,QAGXt5D,EAAE2W,UAAU8hD,YAAc,WACxB,IAAI13D,EAAIxQ,KAAKX,MACTsqB,EAAI3pB,KAAKsJ,QACTkgB,EAAIG,EAAEq/C,SAAW,CAAC,EAAG,EAAG,EAAG,GAC3Bv4D,EAAIzQ,KAAK+/D,MACTn2C,EAAI5pB,KAAKmD,MAAQ4mB,KAAKw2B,MAAMl1B,EAAE1Y,EAAEgX,EAAExmB,MAAOqN,EAAEy4D,UAAYz/C,EAAE,GAAKA,EAAE,IAAKhZ,EAAEy4D,YACvE5+C,EAAIrqB,KAAKR,OAASuqB,KAAKw2B,MAAMl1B,EAAE1Y,EAAEgX,EAAEnqB,OAAQgR,EAAE04D,WAAa1/C,EAAE,GAAKA,EAAE,IAAKhZ,EAAE04D,aAC1Ep/C,EAAI9pB,KAAKS,IAAMspB,KAAKw2B,MAAMl1B,EAAE1Y,EAAEgX,EAAElpB,IAAK+P,EAAE24D,QAAU3/C,EAAE,IAAKhZ,EAAE04D,WAAY14D,EAAE24D,UAC5Ex/C,EAAI3pB,KAAKY,KAAOmpB,KAAKw2B,MAAMl1B,EAAE1Y,EAAEgX,EAAE/oB,KAAM4P,EAAE44D,SAAW5/C,EAAE,IAAKhZ,EAAEy4D,UAAWz4D,EAAE44D,WAC1EppE,KAAKq/D,OAAS7uD,EAAE/J,YAAc4jB,EAAIP,EAClC9pB,KAAK6sD,MAAQr8C,EAAE4uD,WAAax1C,EAAID,EAChC3pB,KAAKgnB,IAAM+C,KAAK1W,IAAI5C,EAAImZ,EAAIS,EAAG,GAC/BrqB,KAAKw0C,IAAM/jC,EAAIkZ,EAAIG,GAGrBra,EAAE2W,UAAUsgD,YAAc,WACxB,IAAIl2D,EAAIxQ,KAAK09D,YACb,MAAO,CACL94D,IAAK4L,EAAIM,EAAEN,EAAEstD,QAAQ99D,KAAK4E,MAAQ5E,KAAK4E,IACvCyO,IAAK7C,EAAIM,EAAEN,EAAEstD,QAAQ99D,KAAKqT,MAAQrT,KAAKqT,IACvCkwD,QAASvjE,KAAKujE,QACdC,QAASxjE,KAAKwjE,QACdgD,QAASxmE,KAAKwmE,QACdC,QAASzmE,KAAKymE,UAIlBh3D,EAAE2W,UAAUijD,aAAe,SAAU74D,GACnC,IAAImZ,EAAI3pB,KAAK09D,YACTl0C,EAAIG,EAAIA,EAAEm0C,QAAQ99D,KAAK4E,KAAO5E,KAAK4E,IAGvC,OAFA+kB,EAAIA,EAAIA,EAAEm0C,QAAQ99D,KAAKqT,KAAOrT,KAAKqT,IACnC,OAAS7C,IAAK,MAAcA,EAAIA,EAAIgZ,EAAIi0B,MAAajtC,EAAIA,EAAImZ,EAAIH,EAAIhZ,EAAIA,EAAIgZ,EAAIG,EAAInZ,IAAMA,EAAImZ,GACxF3pB,KAAKwxD,UAAUhhD,EAAG,EAAG,EAAG,EAAG,IAGpCf,EAAE2W,UAAUkjD,eAAiB,SAAU94D,GACrC,IAAImZ,GAAKhX,EAAEnC,EAAG,GAAK,GAAKxQ,KAAK8/D,KAAO,KAAO,IAO3C,OAHAh2C,EAAE9pB,KAAM,iBAHRwQ,EAAI,CACFtM,MAAO,WAEoB,SAAUsM,GACrC,GAAKmZ,GAAK,IAAMA,EAAInZ,EAAEtM,MAAQ,QAAU,IAAMylB,GAAK,IAAMA,IAAMnZ,EAAEtM,MAAQ,WAEpEsM,EAAEtM,OAGXuL,EAAE2W,UAAU86C,SAAW,SAAU1wD,GAC/B,IAAImZ,EAAI3pB,KAAKsJ,QACTkgB,EAAI7W,EAAEgX,EAAE,SAAWnZ,EAAI,YAAc,kBAAmB,SAAWA,GAAKxQ,KAAKmhE,UAAYnhE,KAAKuE,WAAa,EAAI,GAC/GkM,EAAIkZ,EAAE,SAAWnZ,EAAI,aAAe,mBAExC,GAAIgZ,GAAK/Y,EAAG,CACV,WAAakZ,EAAEnZ,EAAI,cAAgBC,GAAKA,GACxC,IAAImZ,EAAI,CAACnZ,EAAG+Y,GAOd,OADAM,EAAE9pB,KAAM,gBAHRwQ,EAAI,CACF0wD,SAAUt3C,IAGLpZ,EAAE0wD,UAGXzxD,EAAE2W,UAAUmjD,aAAe,WACzB,IAAI/4D,EAAIxQ,KAAK29D,eAAiB39D,KAAK29D,cAAc,IAAM,EACvD,OAAO39D,KAAKX,MAAM4H,SAAS4tD,YAAY70D,KAAKsJ,QAAQ7E,OAAOnF,MAAM+E,SAAUrE,KAAKsgE,MAAM9vD,IAAMxQ,KAAKsgE,MAAM9vD,GAAGoP,QAG5GnQ,EAAE2W,UAAUghD,SAAW,WACrB,IAcI39C,EACA0B,EAfAxB,EAAI3pB,KAAKsJ,QAAQ7E,OACjB+kB,EAAIxpB,KAAK+/D,MACTtvD,EAAIzQ,KAAK49D,aACTvzC,EAAIrqB,KAAKgnB,OAAShnB,KAAKuE,WAAa,EAAI,GAAKvE,KAAKqT,IAAMrT,KAAK4E,KAAO6L,GACpEqZ,EAAIH,EAAExlB,SACN6E,EAAIhJ,KAAKupE,eACTn/C,EAAIL,KAAK1W,IAAIrT,KAAKqT,IAAMrT,KAAK4E,IAAK,GAClC6K,EAAI,SAAUe,GAChB,IAAImZ,EAAInZ,GAAK6Z,GAAK,GAGlB,OAFAV,EAAI,EAAIA,EAAII,KAAKkkB,KAAKtkB,GAAK,GACvBlZ,EAAI2Z,GAAKqzB,MAAajtC,GAAKitC,MAAapzB,GAAKD,IAAMT,EAAII,KAAKkkB,KAAK7jB,EAAI3Z,IAClEK,EAAE6Y,EAAIlZ,IAEXuZ,EAAIvZ,EAGJgb,EAAI1Y,OAAOy2D,UAEf,GAAIhgD,EAAG,CACL,IAAKG,EAAEsxC,eAAiBtxC,EAAE/a,KAAM,GAAI4B,EAAEsZ,GAAI,IAAIsB,EAAI,CAACtB,QAAQO,EAAIV,EAAEkxC,oBAAsBzvC,EAAIzB,EAAEjlB,cAC7F0mB,GAAKA,EAAEplB,SAAQ,SAAUwK,GACvB,GAAIA,IAAMsZ,GAAKtZ,IAAM,IAAMA,GAAK,IAAMA,EAAG,CAEvC,IAAImZ,GADJwB,EAAI1b,EAAEsa,KAAK8gC,IAAI7hD,EAAEohB,EAAIL,KAAKmmC,IAAItmC,EAAIpZ,MACtBuZ,KAAK8gC,IAAIr6C,EAAI,KACzBmZ,EAAI8B,IAAMA,EAAI9B,EAAGF,EAAIjZ,EAAGwZ,EAAImB,YAG3BxB,EAAE/a,OAASob,EAAIva,EAAEzG,EAAEohB,IAI1B,OAFApqB,KAAK0E,aAAe0mB,EACpBprB,KAAKojE,cAAgBzwD,EAAE8W,EAAGjZ,EAAEsZ,GAAKA,EAAI,GAC9BE,GAGTva,EAAE2W,UAAUs4C,aAAe,SAAU/0C,GACnC,IAAIH,EAAIxpB,KAAKX,MACToR,EAAIzQ,KAAK+/D,MACTn2C,EAAI5pB,KAAKsJ,QAAQ7E,OACjB4lB,EAAIN,KAAK1W,IAAIrT,KAAK29D,cAAc58D,QAAUf,KAAKuE,WAAa,EAAI,GAAI,GACpEulB,EAAIN,EAAEpG,OAAO,GACjB,GAAIuG,GAAKnZ,EAAEmZ,EAAE8/C,WAAY,OAAO9/C,EAAE8/C,UAClC,GAAIh5D,GAAK,EAAImZ,EAAEhb,KAAM,OAAOgb,EAAEzlB,SAAW,GAAKnE,KAAKi7D,cAAgB,GAAKj7D,KAAKgnB,IAAMqD,EAEnF,IAAK5Z,EAAG,CAEN,QAAI,KADJkZ,EAAIC,EAAEtqB,MAAM6D,OACM,OAAON,SAASgkB,OAAO8C,GAAI,IAC7C,GAAIG,EAAG,OAAOA,EAAIN,EAAEg5B,QAAQ,GAG9B,MAAO,IAAMh5B,EAAE41C,YAGjB3vD,EAAE2W,UAAUsjD,eAAiB,WAC3B,IAAIl5D,EAAIxQ,KAAKX,MACTsqB,EAAInZ,EAAEvJ,SACNwJ,EAAIzQ,KAAK29D,cACT/zC,EAAI5pB,KAAKsgE,MACTj2C,EAAIrqB,KAAKsJ,QAAQ7E,OACjBqlB,EAAIO,EAAE/qB,MACN0J,EAAIhJ,KAAK+/D,MACT31C,EAAIpqB,KAAK0+D,eACT/rD,EAAIoX,KAAK1W,IAAI,EAAG0W,KAAKw2B,MAAMn2B,EAAI,EAAIC,EAAE5L,UACrChP,EAAI,GACJua,EAAIhqB,KAAKupE,eACT9/C,EAAIK,EAAEi9B,aACN57B,EAAI,EAQR,GAPA3B,EAAEa,EAAElmB,YAAcsL,EAAEtL,SAAWkmB,EAAElmB,UAAY,GAC7CsM,EAAEzK,SAAQ,SAAUwK,IAClBA,EAAIoZ,EAAEpZ,IACJquD,YAAcruD,EAAE8wD,oBAClB9wD,GAAKA,EAAEoP,OAASpP,EAAEoP,MAAMyxC,aAAelmC,IAAMA,EAAI3a,EAAEoP,MAAMyxC,iBAE3DrxD,KAAKoiE,eAAiBj3C,EAClBnrB,KAAK0E,aAAcymB,EAAIxY,GAAKwY,EAAInB,EAAEI,EAAI3a,EAAEtL,SAAWnE,KAAKojE,cAAgBpjE,KAAKojE,cAAgB,OAAO,GAAIh5C,EAAG,CAC7G,IAAIqB,EAAI9Y,EAER,IAAK8W,EAAG,CACN,IAAI3Y,EAAI,OAER,IAAK6B,EAAIlC,EAAE1P,QAASiI,GAAK2J,KAAM,CAC7B,IAAIyY,EAAI3a,EAAEkC,IACNyY,EAAIxB,EAAEwB,GAAGxL,SAAOwL,EAAE2jC,QAAU,aAAe3jC,EAAE2jC,OAAOhI,aAAe37B,EAAE5qB,IAAI,CAC3EumD,aAAc,SACX37B,EAAEimC,aAAejnC,GAAKgB,EAAE5qB,IAAI,CAC/B2C,MAAOinB,EAAI,OACTgB,EAAE5jB,UAAUhI,OAASQ,KAAKgnB,IAAMvW,EAAE1P,QAAUipB,EAAEI,EAAIJ,EAAEva,KAAO2b,EAAEu+C,qBAAuB,eAI9Fl6D,EAAEtL,WAAasnB,EAAIN,EAAI,GAAK3a,EAAE/J,YAAc,IAAM+J,EAAE/J,YAAc0kB,EAAG1B,IAAM3Y,EAAI,cAC3E9Q,KAAK6/D,WAAax1C,EAAEnmB,OAASlE,KAAKspE,eAAetpE,KAAKojE,kBAAgB3zD,EAAEvL,MAAQlE,KAAK6/D,YACzFpvD,EAAEzK,SAAQ,SAAUwK,GAClB,IAAImZ,GAAKnZ,EAAIoZ,EAAEpZ,KAAOA,EAAEoP,MACpB4J,EAAIM,EAAE3mB,MACNsN,EAAI,GACRkZ,IAAMA,EAAEziB,KAAKuI,GAAIe,EAAEiuD,aAAejuD,EAAEiuD,eAAiBhzC,IAAMjC,GAAK,WAAaM,EAAEm+B,aAAex8B,EAAI9B,EAAE0nC,cAAgB,SAAW1nC,EAAEjnB,QAAQ+e,UAAYhR,EAAEtN,MAAQsoB,EAAI,KAAMhC,IAAMhZ,EAAEs2C,aAAep9B,EAAEggD,sBAAwB74D,GAAI6Y,EAAEnpB,IAAIiQ,IAAMkZ,EAAEolC,QAAUplC,EAAEolC,OAAO5rD,QAAUsN,EAAEtN,QAAUqmB,GAAKG,EAAEnpB,IAAI,CAC9R2C,MAAO,cACEwmB,EAAEggD,qBAAsBn5D,EAAErM,SAAWsL,EAAEtL,YACjDnE,MACHA,KAAK0/D,YAAc/1C,EAAEovC,QAAQ/uC,EAAEvZ,EAAGzQ,KAAKojE,eAAiB,EAAG,IAAMpjE,KAAK8/D,OAGxErwD,EAAE2W,UAAU4hD,QAAU,WACpB,OAAOhoE,KAAKE,OAAOkX,MAAK,SAAU5G,GAChC,OAAOA,EAAEw3D,cACLhoE,KAAKsJ,QAAQoyD,WAAajyC,EAAEzpB,KAAK4E,MAAQ6kB,EAAEzpB,KAAKqT,MAGxD5D,EAAE2W,UAAUwjD,SAAW,SAAUp5D,GAC/B,IAKIxH,EALAwgB,EAAIxpB,KAAKX,MAAM4H,SACfwJ,EAAIzQ,KAAK+/D,MACTn2C,EAAI5pB,KAAKu7D,SACTlxC,EAAIrqB,KAAKsJ,QAAQrI,MACjB6oB,EAAI9pB,KAAKX,MAAM6iD,WAEnBliD,KAAK6pE,aAAe7gE,EAAIqhB,EAAEi9B,aAAet+C,GAAKyH,EAAI,CAChDq5D,IAAK,OACLC,OAAQ,SACRC,KAAM,SACJ,CACFF,IAAKlgD,EAAI,QAAU,OACnBmgD,OAAQ,SACRC,KAAMpgD,EAAI,OAAS,UAClBS,EAAEnmB,QAASlE,KAAK6pE,UAAYrgD,EAAEtoB,KAAKmpB,EAAEnpB,MAAQ,GAAI,EAAG,EAAGmpB,EAAE7oB,SAAS0F,KAAK,CACxEy7C,OAAQ,EACRx+C,SAAUkmB,EAAElmB,SACZD,MAAO8E,IACNxG,SAAS,yBAA0BsnB,GAAK9pB,KAAK6pE,UAAUrpE,IAAImpB,EAAEU,EAAE/qB,QAASU,KAAK6pE,UAAUziE,IAAIpH,KAAKqhE,WAAYrhE,KAAK6pE,UAAUvM,OAAQ,GACtIxzC,GAAKO,EAAE/qB,MAAM6D,OAASnD,KAAKqgE,UAAYrgE,KAAK6pE,UAAUrpE,IAAI,CACxD2C,MAAOnD,KAAKgnB,IAAM,OAEpBhnB,KAAK6pE,UAAUr5D,EAAI,OAAS,QAAQA,IAGtCf,EAAE2W,UAAU6jD,aAAe,SAAUz5D,GACnC,IAAImZ,EAAI3pB,KAAKsgE,MACb32C,EAAEnZ,GAAKmZ,EAAEnZ,GAAGitD,WAAa9zC,EAAEnZ,GAAK,IAAIqc,EAAE7sB,KAAMwQ,IAG9Cf,EAAE2W,UAAU8jD,UAAY,WACtB,IAAI15D,EAAIxQ,KACJ2pB,EAAI3pB,KACJwpB,EAAIG,EAAEtqB,MACNoR,EAAIkZ,EAAEo2C,MACNn2C,EAAID,EAAErgB,QACN+gB,EAAIV,EAAEm2C,KACN92D,EAAI2gB,EAAE22C,MACNl2C,EAAIT,EAAEg0C,cACNluD,EAAIka,EAAE64C,KACNx4C,EAAIL,EAAEwgD,WACN1+C,EAAIjC,EAAEviB,SACNmkB,EAAI5B,EAAEkiC,WAAa/hC,EAAEi5C,QAAU,CAAC,EAAG,EAAG,EAAG,GAAGv4C,GAAKA,EACjDvZ,EAAI6Y,EAAEq+C,UACNlgD,EAAI8B,EAAE3oB,MACNgQ,EAAI2Y,EAAEnlB,OACN5C,EAAI2nB,EAAE4gD,WACV5gD,EAAIA,EAAE6gD,WACN,IAEI9/C,EAFAU,EAAI,EAAE,EAAG,EAAG,GAAI,GAAGZ,GACnBgB,EAAIzB,EAAE3e,UAENugB,EAAI,EACJ8+C,EAAK,EACLC,EAAK,EAIT,GAHA5gD,EAAE6gD,SAAWjgD,EAAIzZ,GAAK8Y,EAAE8xC,UACxB/xC,EAAEsxC,aAAetxC,EAAEo2C,OAAS9uD,EAAEgqD,mBAAgB,GAEzCtxC,EAAE03C,UAAW,CAChB,IAAIv0C,EAAI,SAAUnD,EAAGH,EAAG/Y,GACtB,OAAOgb,EAAEjC,EAAEG,GAAGziB,KAAK,CACjBy7C,OAAQlyC,IACPjO,SAAS,cAAcupB,OAAOtc,EAAEoqB,eAAe9N,OAAOvC,EAAG,MAAQhZ,EAAE6vD,SAAW,yBAAyBt0C,OAAOvC,EAAG,KAAO,KAAO6B,GAAK,KAAKjkB,IAAI4iB,IAGlJL,EAAEo3C,UAAYj0C,EAAE,OAAQ,QAASlD,EAAEgxC,YACnCjxC,EAAE03C,UAAYv0C,EAAE,OAAQ,GAAIlD,EAAE+4B,QAC9Bh5B,EAAEo1C,WAAajyC,EAAE,cAAe,UAAW7b,EAAE0xC,QAe/C,GAZA7xC,GAAK6Y,EAAE61C,UAAYp1C,EAAEpkB,SAAQ,SAAUwK,GACrCmZ,EAAEsgD,aAAaz5D,MACbmZ,EAAE+/C,iBAAkB//C,EAAEg2C,oBAAsB,IAAMt1C,GAAK,IAAMA,GAAK,CACpE,EAAG,OACH,EAAG,SACHA,KAAOV,EAAEk2C,WAAYltD,EAAE1B,EAAE+pD,aAAc,WAAarxC,EAAEk2C,YAAkB,KAAMl2C,EAAEg2C,sBAAwBv1C,EAAEpkB,SAAQ,SAAUwK,GAC5H+5D,EAAKxgD,KAAK1W,IAAIrK,EAAEwH,GAAGwvD,eAAgBuK,MACjC5gD,EAAEsxC,eAAiBsP,GAAM5gD,EAAEsxC,cAAetxC,EAAEi2C,YAAc2K,GAAM5gD,EAAE4xC,UAAY,EAAI,IAAMpwC,EAAEniB,GAAG,SAAUwH,EAAGmZ,GAC5GnZ,EAAEtK,iBACK8C,EAAE2gB,MAGP7B,GAAKA,EAAE5mB,OAAQ,IAAO4mB,EAAE3oB,UAAYwqB,EAAEigD,SAASr/C,GAAIA,IAAK,IAAOzC,EAAEkzC,cAAe,CAClFrxC,EAAE8gD,YAAcj/C,EAAI7B,EAAEkgD,UAAUriE,UAAUiJ,EAAI,SAAW,SACzD,IAAI8a,EAAIzD,EAAE7nB,OACVqqE,EAAK7gD,EAAE8B,GAAK,EAAI5Y,EAAEmV,EAAE1E,OAAQ3S,EAAI,EAAI,IAGtCkZ,EAAE+gD,aACF/gD,EAAE1pB,OAASgrB,EAAItY,EAAEiX,EAAE3pB,OAAQ4B,EAAEwoB,GAAKxoB,EAAEwoB,IAAMT,EAAExG,QAAU,GAAK,GAC3DuG,EAAE+1C,YAAc/1C,EAAE+1C,aAAe,CAC/B79D,EAAG,EACHE,EAAG,GAEL+lB,EAAI,IAAMuC,GAAKV,EAAE4/C,eAAen/C,EAAI,IAAMC,EAAIV,EAAE+1C,YAAY39D,EAAI,EAChE+O,EAAIiZ,KAAK8gC,IAAI0f,GAAMD,EACnBC,IAAOz5D,EAAIA,EAAIgX,EAAImD,GAAKxa,EAAIkC,EAAE1B,EAAElP,EAAG4nB,EAAE+1C,YAAY39D,EAAI,EAAIkpB,GAAKha,EAAEpP,IAChE8nB,EAAEghD,gBAAkBh4D,EAAE4Y,EAAGza,GACzB6Y,EAAEihD,wBAA0BjhD,EAAEkhD,mBAAqBlhD,EAAEihD,sBAAsB5hE,EAAGohB,IAC9E,cAAgB3a,IAAMgB,EAAIzQ,KAAKkhE,SAAS,QAASr/D,EAAEwoB,GAAKN,KAAK1W,IAAIxR,EAAEwoB,IAAKV,EAAEghD,iBAAmB,GAAKn/C,EAAIP,EAAItB,EAAE1pB,OAAQ6Q,EAAGsZ,GAAKA,EAAErpB,QAAU0P,EAAIA,EAAE,GAAKwa,EAAItB,EAAE1pB,OAAS,GAAI2pB,GAAKD,EAAEmhD,UAAYlhD,EAAE3pB,OAAS,EAAI,EAAI8pB,KAAK4U,MAAMhV,EAAEmhD,SAAS9c,cAAgB,GAAIxkC,EAAE4B,GAAKrB,KAAK1W,IAAImW,EAAE4B,GAAIxB,IAC5QE,EAAE9pB,KAAM,mBAGVyP,EAAE2W,UAAU2kD,YAAc,SAAUv6D,GAClC,IAAImZ,EAAI3pB,KAAKX,MACTmqB,EAAIxpB,KAAKu7D,SACT9qD,EAAIzQ,KAAKC,OACT2pB,EAAI5pB,KAAK+/D,MACT11C,EAAIrqB,KAAKY,MAAQ4oB,EAAIxpB,KAAKmD,MAAQ,GAAKsN,EAG3C,OAFAA,EAAIkZ,EAAEljB,YAAczG,KAAKq/D,QAAU71C,EAAIxpB,KAAKR,OAAS,GAAKiR,EAC1D+Y,IAAMhZ,IAAM,GACLmZ,EAAE1iB,SAAS8wD,UAAU,CAAC,CAAC,IAAKnuC,EAAI5pB,KAAKY,KAAOypB,EAAGT,EAAInZ,EAAIzQ,KAAKS,KAAM,CAAC,IAAKmpB,EAAID,EAAEy1C,WAAap/D,KAAK6sD,MAAQxiC,EAAGT,EAAInZ,EAAIkZ,EAAEljB,YAAczG,KAAKq/D,SAAU7uD,IAG3Jf,EAAE2W,UAAUskD,WAAa,WACvB1qE,KAAK8qE,WAAa9qE,KAAK8qE,SAAW9qE,KAAKX,MAAM4H,SAAShB,OAAOzD,SAAS,wBAAwB4E,IAAIpH,KAAKqhE,WAAYrhE,KAAKX,MAAM6iD,YAAcliD,KAAK8qE,SAAS5jE,KAAK,CAC7JC,OAAQnH,KAAKsJ,QAAQ9E,UACrB,eAAgBxE,KAAKsJ,QAAQpE,UAC7By9C,OAAQ,MAIZlzC,EAAE2W,UAAU4kD,iBAAmB,WAC7B,IAAIx6D,EAAIxQ,KAAK+/D,MACTp2C,EAAI3pB,KAAKY,KACT4oB,EAAIxpB,KAAKS,IACTgQ,EAAIzQ,KAAKgnB,IACT4C,EAAI5pB,KAAKsJ,QAAQrI,MACjBopB,EAAI7Z,EAAImZ,EAAIH,EACZxgB,EAAIhJ,KAAKu7D,SACTnxC,EAAIpqB,KAAKC,OACTwP,EAAIma,EAAE/nB,EACN8Q,EAAIiX,EAAE7nB,EACNioB,EAAIhqB,KAAK6pE,UACTpgD,EAAIzpB,KAAKX,MAAM4H,SAAS4tD,YAAYjrC,EAAEtqB,MAAM+E,SAAU2lB,GAe1D,OAdAA,EAAIA,EAAID,KAAK1W,IAAI2W,EAAExiB,SAAQ,EAAI,GAAGhI,OAASiqB,EAAEW,EAAI,EAAG,GAAK,EACzD3Z,EAAI,CACFq5D,IAAKz/C,GAAK7Z,EAAI,EAAIC,GAClBs5D,OAAQ1/C,EAAI5Z,EAAI,EAChBu5D,KAAM3/C,GAAK7Z,EAAIC,EAAI,IACnBmZ,EAAE1lB,OACJylB,GAAKnZ,EAAIgZ,EAAIxpB,KAAKR,OAASmqB,IAAMnZ,EAAI,GAAK,IAAMxH,GAAK,EAAI,IAAMhJ,KAAK2qE,iBAAmB,GAAK,EAAE3gD,EAAGA,EAAGP,EAAEha,GAAIua,GAAGhqB,KAAK8/D,MAClHtvD,EAAI,CACF3O,EAAG2O,EAAIC,EAAIhB,EAAIka,GAAK3gB,EAAIhJ,KAAKmD,MAAQ,GAAKinB,EAAI3a,EAC9C1N,EAAGyO,EAAImZ,EAAIhX,GAAK3J,EAAIhJ,KAAKR,OAAS,GAAK4qB,EAAI3Z,EAAIkC,GAEjDmX,EAAE9pB,KAAM,wBAAyB,CAC/BirE,cAAez6D,IAEVA,GAGTf,EAAE2W,UAAU8kD,gBAAkB,SAAU16D,EAAGmZ,GACzC,IAAIH,EAAIxpB,KAAKkiE,WACb14C,EAAEhZ,KAAOgZ,EAAEhZ,GAAK,IAAIqc,EAAE7sB,KAAMwQ,EAAG,UAC/BmZ,GAAKH,EAAEhZ,GAAG8sD,OAAS9zC,EAAEhZ,GAAGiwD,OAAO,MAAM,GACrCj3C,EAAEhZ,GAAGiwD,OAAO,MAAM,EAAI,IAGxBhxD,EAAE2W,UAAU+kD,WAAa,SAAU36D,EAAGmZ,EAAGH,GACvC,IAAI/Y,EAAIzQ,KAAKsgE,QACRtgE,KAAKw/D,UAAYhvD,GAAKxQ,KAAK4E,KAAO4L,GAAKxQ,KAAKqT,KAAOrT,KAAKg+D,MAAQh+D,KAAKg+D,KAAKoN,YAAU36D,EAAED,KAAOC,EAAED,GAAK,IAAIqc,EAAE7sB,KAAMwQ,IAAKgZ,GAAK/Y,EAAED,GAAG8sD,OAAS7sD,EAAED,GAAGiwD,OAAO92C,GAAG,GAAK,GAAIlZ,EAAED,GAAGiwD,OAAO92C,KAGnLla,EAAE2W,UAAUq6C,OAAS,WACnB,IAgBI5+D,EACAopB,EAjBAtB,EAAI3pB,KACJwpB,EAAIG,EAAEtqB,MACNoR,EAAIkZ,EAAE+zC,YACN9zC,EAAID,EAAErgB,QACN+gB,EAAIV,EAAE61C,SACNx2D,EAAI2gB,EAAEg0C,cACNvzC,EAAIT,EAAEkgD,UACNp6D,EAAIka,EAAE22C,MACN3tD,EAAIgX,EAAEu4C,WACNl4C,EAAIL,EAAE+4C,eACNj5C,EAAIG,EAAE8yC,YACNjxC,EAAI7B,EAAEyhD,mBACNv6D,EAAI6Y,EAAE6zC,eACNpyC,EAAIzB,EAAEmhD,SACNhjD,EAAI6B,EAAE6gD,SACNv5D,EAAIlP,EAAEynB,EAAEviB,SAASwiD,iBAWrB,GARA9/B,EAAE04C,UAAUthE,OAAS,EACrB4oB,EAAEq4C,SAAU,EACZ,CAACvyD,EAAGkD,EAAGqX,GAAGhkB,SAAQ,SAAUwK,GAC1B2a,EAAE3a,GAAG,SAAUA,GACbA,EAAE+sB,UAAW,QAIb5T,EAAEq+C,WAAa39C,EAAG,CACpB,IAAIgB,EAAI1B,EAAEtqB,MAAMisE,aAAe3hD,EAAEs3C,KAAOzwD,EAAEmZ,EAAEs3C,IAAIr8D,KAChD+kB,EAAEw4C,oBAAsBx4C,EAAEplB,YAAcolB,EAAEi7C,wBAAwB5+D,SAAQ,SAAUwK,GAClFmZ,EAAEuhD,gBAAgB16D,EAAG6a,MAEvBriB,EAAEjI,SAAWiI,EAAEhD,SAAQ,SAAUwK,EAAGgZ,GAClCG,EAAEwhD,WAAW36D,EAAGgZ,EAAG6B,MACjBva,IAAM,IAAM6Y,EAAE/kB,KAAO+kB,EAAE+6C,UAAYj1D,GAAG,KAAOA,GAAG,GAAK,IAAIod,EAAElD,GAAI,EAAG,MAAM,IAAMla,GAAG,GAAGgxD,QAAQ,KAChGh1C,GAAKziB,EAAEhD,SAAQ,SAAUwK,EAAGoZ,GAC1BqB,OAAI,IAAuBjiB,EAAE4gB,EAAI,GAAK5gB,EAAE4gB,EAAI,GAAK9Y,EAAI6Y,EAAEtW,IAAMvC,EAC7D,GAAM8Y,EAAI,GAAKpZ,EAAImZ,EAAEtW,KAAO4X,GAAKtB,EAAEtW,KAAOmW,EAAEu9C,OAASj2D,EAAIA,KAAOkZ,EAAExZ,KAAOwZ,EAAExZ,GAAK,IAAIua,EAAEwgD,eAAe5hD,IAAK9nB,EAAI2O,EAAIM,EAAGkZ,EAAExZ,GAAGlH,QAAU,CAClIosB,KAAMjlB,EAAIA,EAAEqtD,QAAQj8D,GAAKA,EACzBwjD,GAAI50C,EAAIA,EAAEqtD,QAAQ7yC,GAAKA,EACvBtnB,MAAO8nB,EACPxgB,UAAW,6BACV+e,EAAExZ,GAAGiwD,SAAUz2C,EAAExZ,GAAG+sB,UAAW,MAEpC5T,EAAEg1C,eAAiBh1C,EAAEg1C,cAAe,GAAK/0C,EAAE4hD,WAAa,IAAIz/C,OAAOnC,EAAE6hD,WAAa,IAAIzlE,SAAQ,SAAUwK,GACtGmZ,EAAE+hD,kBAAkBl7D,OAIxB,CAACf,EAAGkD,EAAGqX,GAAGhkB,SAAQ,SAAUwK,GAC1B,IAAImZ,EAAI,GACJlZ,EAAIQ,EAAE5F,SACV8f,EAAE3a,GAAG,SAAUA,EAAGgZ,GAChBhZ,EAAE+sB,WAAa/sB,EAAEiwD,OAAOj3C,GAAG,EAAI,GAAIhZ,EAAE+sB,UAAW,EAAI5T,EAAEriB,KAAKkiB,OAE7D+B,GAAE,WACA,IAAK,IAAI/B,EAAIG,EAAE5oB,OAAQyoB,KAAMhZ,EAAEmZ,EAAEH,MAAQhZ,EAAEmZ,EAAEH,IAAI+T,WAAa/sB,EAAEmZ,EAAEH,IAAItjB,iBAAkBsK,EAAEmZ,EAAEH,OAC3FhZ,IAAMwZ,GAAKR,EAAE8hD,aAAe76D,EAAIA,EAAI,MAEzC2a,IAAMA,EAAEA,EAAEugD,SAAW,UAAY,QAAQ,CACvC/hD,EAAG5pB,KAAK+qE,YAAY3/C,EAAE4iC,iBACpB5iC,EAAEugD,UAAW,EAAIvgD,EAAEtD,EAAI,OAAS,QAAQA,IAC5CsC,GAAKtC,IAAM8B,EAAID,EAAEqhD,mBAAoB5gD,EAAEA,EAAEkzC,MAAQ,OAAS,WAAW1zC,GAAIQ,EAAEkzC,OAAQ,GACnF7zC,GAAKA,EAAEtqB,SAAWwqB,EAAExnB,UAAYwnB,EAAExnB,SAASypE,oBAC3CjiD,EAAEs3C,IAAM,CACNj6C,IAAK2C,EAAE3C,IACP3T,IAAKsW,EAAEtW,IACPzO,IAAK+kB,EAAE/kB,IACP26D,OAAQ51C,EAAE41C,OACVkH,QAAS98C,EAAE88C,QACXD,QAAS78C,EAAE68C,SAEb78C,EAAE43C,SAAU,EACZz3C,EAAE9pB,KAAM,gBAGVyP,EAAE2W,UAAUrmB,OAAS,WACnBC,KAAKo8D,UAAYp8D,KAAKygE,SAAUzgE,KAAK8hE,kBAAkB97D,SAAQ,SAAUwK,GACvEA,EAAEiwD,aAEJzgE,KAAKE,OAAO8F,SAAQ,SAAUwK,GAC5BA,EAAE+wD,SAAU,MAIhB9xD,EAAE2W,UAAUylD,aAAe,WACzB,OAAO7rE,KAAK8rE,WAAar8D,EAAEq8D,WAG7Br8D,EAAE2W,UAAUlgB,QAAU,SAAUsK,GAC9B,IAAImZ,EAAI3pB,KACJwpB,EAAIG,EAAEm4C,kBACNrxD,EAAIzQ,KAAKo9D,aAQb,GAPAtzC,EAAE9pB,KAAM,UAAW,CACjB+rE,WAAYv7D,IAEdA,GAAKgb,EAAE7B,GACP,CAACA,EAAE22C,MAAO32C,EAAEu4C,WAAYv4C,EAAE+4C,gBAAgB18D,SAAQ,SAAUwK,GAC1Dsc,EAAEtc,MAEAgZ,EAAG,IAAKhZ,EAAIgZ,EAAEzoB,OAAQyP,KAAMgZ,EAAEhZ,GAAGtK,UAKrC,IAAK,IAAI0jB,IAJT,oEAAoE3L,MAAM,KAAKjY,SAAQ,SAAUwK,GAC/FmZ,EAAEnZ,KAAOmZ,EAAEnZ,GAAKmZ,EAAEnZ,GAAGtK,cAGTyjB,EAAEk4C,wBAAyBl4C,EAAEk4C,wBAAwBj4C,GAAKD,EAAEk4C,wBAAwBj4C,GAAG1jB,UAErGilB,EAAExB,GAAG,SAAUnZ,EAAGgZ,IACf,IAAMG,EAAEkiD,eAAehtD,QAAQ2K,WAAaG,EAAEH,MAEjDxpB,KAAKo9D,aAAe3sD,GAGtBhB,EAAE2W,UAAU4lD,cAAgB,SAAUx7D,EAAGmZ,GACvC,IAGIU,EAHAb,EAAIxpB,KAAKijE,UACTxyD,EAAIkC,EAAE6W,GAAKA,EAAEq+B,MAAM,GACnBj+B,EAAI5pB,KAAKX,MAET2J,EAAIhJ,KAAKisE,MAOb,GANAniD,EAAE9pB,KAAM,gBAAiB,CACvBgJ,EAAGwH,EACH5O,MAAO+nB,IAETnZ,IAAMA,EAAIxQ,KAAKisE,OAASjsE,KAAKisE,MAAMjjE,GAE/BwgB,IAAK,KAAQC,EAAEE,KAAOlZ,GAAI,CAG5B,GAFAA,EAAIgZ,EAAEE,KAAOU,EAAI1X,EAAE,cAAgB3S,KAAKwiE,KAAO74C,EAAEuiD,aAAe,KAAMlsE,KAAKmhE,QAAUx3C,EAAE7nB,MAAQ9B,KAAKgnB,IAAM2C,EAAEwiD,QAAU9hD,EAAI7Z,IAAMxQ,KAAK+/D,MAAQvvD,EAAE47D,OAASpsE,KAAKw0C,IAAMx0C,KAAKgnB,IAAMxW,EAAE67D,OAASrsE,KAAKw0C,KAE1L/qB,EAAEY,GAAI,CACR,IAAID,EAAI,CACNtlB,MAAO6kB,IAAM3pB,KAAKmhE,QAAUx3C,EAAE9nB,EAAI8Q,EAAEgX,EAAE/gB,OAAQ+gB,EAAE5nB,IAChDwiE,gBAAiBl6C,GAEnBT,EAAEm9C,OAASllE,EAAEuoB,EAAG,CACdkiD,aAAa,EACbF,OAAQ57D,GAAKA,EAAE47D,OACfC,OAAQ77D,GAAKA,EAAE67D,OACfzqE,MAAO+nB,IAETS,EAAIpqB,KAAKghE,gBAAgB52C,IAAM,KAGjC,IAAKX,EAAEW,GAEL,YADApqB,KAAKusE,gBAIP97D,EAAIzQ,KAAKuE,aAAevE,KAAKqgE,SAC7Br3D,IAAMhJ,KAAKisE,MAAQjjE,EAAI4gB,EAAE3iB,SAAShB,OAAOzD,SAAS,8CAAgDiO,EAAI,YAAc,UAAY+Y,EAAEve,WAAa,KAAK/D,KAAK,CACvJy7C,OAAQhwC,EAAE6W,EAAEm5B,OAAQ,KACnBv7C,MAAOwiB,EAAEs4B,aAAel5C,EAAE9B,KAAK,CAChCC,OAAQqiB,EAAE7lB,QAAU8M,EAAIqX,EAAErW,MAAM,WAAW4xC,WAAW,KAAK15C,MAAQ,WACnE,eAAgBgJ,EAAE6W,EAAErmB,MAAO,KAC1B3C,IAAI,CACL,iBAAkB,SAChBgpB,EAAExlB,WAAagF,EAAE9B,KAAK,CACxBG,UAAWmiB,EAAExlB,cAEfgF,EAAEhB,OAAOd,KAAK,CACZ0iB,EAAGQ,IAEL3Z,IAAM+Y,EAAErmB,OAAS6F,EAAE9B,KAAK,CACtB,eAAgBlH,KAAKu/D,SAEvBv/D,KAAKisE,MAAMjjE,EAAIwH,OACVxQ,KAAKusE,gBAEZziD,EAAE9pB,KAAM,qBAAsB,CAC5BgJ,EAAGwH,EACH5O,MAAO+nB,KAIXla,EAAE2W,UAAUmmD,cAAgB,WAC1BvsE,KAAKisE,OAASjsE,KAAKisE,MAAM9iE,OACzB2gB,EAAE9pB,KAAM,uBAGVyP,EAAE2W,UAAUkhD,mBAAqB,WAC/B,IAAI92D,EAAIxQ,KAAKX,MAAMiK,QAAQjK,MAAM4iD,QACjC,SAAUzxC,GAAKA,EAAErR,SAAW,IAAImf,KAAK9N,EAAEpL,QAGzCqK,EAAE2W,UAAUy9C,sBAAwB,SAAUl6C,GAC5C,OAAOnZ,EAAEmZ,IAAM,EAAIA,GAGrBla,EAAE2W,UAAU1c,OAAS,SAAU8G,EAAGgZ,GAChC,IAAI/Y,EAAIzQ,KAAKX,MACbmR,EAAImZ,EAAE3pB,KAAKyhE,YAAajxD,GACxBxQ,KAAKkG,SAAQ,GACblG,KAAKrB,KAAK8R,EAAGD,GACbC,EAAE+7D,YAAa,EACf75D,EAAE6W,GAAG,IAAO/Y,EAAE1Q,UAGhB0P,EAAE2W,UAAU1V,OAAS,SAAUF,GAC7B,IAAK,IAAImZ,EAAI3pB,KAAKX,MAAOmqB,EAAIxpB,KAAKwiE,KAAM/xD,EAAIzQ,KAAKE,OAAQ0pB,EAAInZ,EAAE1P,OAAQ6oB,KAAMnZ,EAAEmZ,IAAMnZ,EAAEmZ,GAAGlZ,QAAO,GAEjG6Z,EAAEZ,EAAEw5C,KAAMnjE,MACVuqB,EAAEZ,EAAEH,GAAIxpB,MACR2pB,EAAEH,GAAGxjB,SAAQ,SAAUwK,EAAGmZ,GACxBnZ,EAAElH,QAAQrG,MAAQuN,EAAEixD,YAAYx+D,MAAQ0mB,KAE1C3pB,KAAKkG,UACLyjB,EAAE6iD,YAAa,EACf75D,EAAEnC,GAAG,IAAOmZ,EAAE5pB,UAGhB0P,EAAE2W,UAAUqmD,SAAW,SAAUj8D,EAAGmZ,GAClC3pB,KAAK0J,OAAO,CACVzI,MAAOuP,GACNmZ,IAGLla,EAAE2W,UAAUsmD,cAAgB,SAAUl8D,EAAGmZ,GACvC3pB,KAAK0J,OAAO,CACVnF,WAAYiM,GACXmZ,IAGLla,EAAEk1C,eAAiB37C,EAAEoxD,oBACrB3qD,EAAEq8D,UAAY,+CAA+C7tD,MAAM,KAC5DxO,EA7oCL,GAipCGA,KAETmd,EAAE9E,EAAG,4BAA6B,CAACA,EAAE,uBAAuB,SAAUrY,GACpE,IAIIsb,EAJA/hB,EAAIyG,EAAE+uC,SACN12B,EAAIrY,EAAEiwC,aACNx0B,EAAIzb,EAAE6wC,sBACN1tC,EAAInD,EAAE4xC,UAsDV,OAnDA,SAAW5xC,GACT,SAAS8c,IACP,OAAOvsB,KAAKX,MAAM8mD,KAAKb,aAAa5jC,MAAM1hB,KAAKX,MAAM8mD,KAAMt+B,WAG7D,SAAS9lB,EAAE6nB,GACT,aAAeA,EAAE63C,YAAYr8D,KAAOpF,KAAK+9D,cAAW,EAAS/9D,KAAK+9D,WAAa/9D,KAAK+9D,SAAW,IAAI3zC,EAAEpqB,OAGvG,IAAIiR,EAAI,GAERxB,EAAEwpD,QAAU,SAAUrvC,GAEpB,OADC,IAAM3Y,EAAE4N,QAAQ+K,KAAO3Y,EAAE3J,KAAKsiB,GAAIA,EAAEkiD,UAAUxkE,KAAK,YAAasiB,EAAExD,UAAUk/B,aAAe/4B,EAAGvjB,EAAE4gB,EAAG,OAAQ7nB,IACrG6nB,GAGT,IAAIQ,EAAI,WACN,SAASR,EAAEnZ,GACTzQ,KAAK68D,KAAOpsD,EA2Bd,OAxBAmZ,EAAExD,UAAU0+C,0BAA4B,SAAUr0D,EAAGmZ,GACnD,IAAI5gB,EAAI4gB,GAAK,CAAC,CAAC,cAAe,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,MAAO,CAAC,SAAU,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,KAAM,CAAC,SAAU,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,KAAM,CAAC,OAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAAM,CAAC,MAAO,CAAC,EAAG,IAAK,CAAC,OAAQ,CAAC,EAAG,IAAK,CAAC,QAAS,CAAC,EAAG,EAAG,EAAG,EAAG,IAAK,CAAC,OAAQ,OACzPA,EAAI5gB,EAAEA,EAAEjI,OAAS,GACjB,IAEIipB,EAFAI,EAAIxX,EAAEgX,EAAE,IACRna,EAAIma,EAAE,GAGV,IAAKI,EAAI,EAAGA,EAAIhhB,EAAEjI,SAAY6oB,EAAI5gB,EAAEghB,GAAII,EAAIxX,EAAEgX,EAAE,IAAKna,EAAIma,EAAE,KAAI5gB,EAAEghB,EAAI,IAAMvZ,IAAM2Z,EAAI3a,EAAEA,EAAE1O,OAAS,GAAK6R,EAAE5J,EAAEghB,EAAI,GAAG,KAAO,IAAIA,KAI7H,OAFAI,IAAMxX,EAAEgvC,MAAQnxC,EAAI,EAAI2Z,IAAM3a,EAAI,CAAC,EAAG,EAAG,IAElC,CACL81C,UAAWn7B,EACXo7B,MAHF/0C,EAAIya,EAAEza,EAAI2Z,EAAG3a,EAAG,SAAWma,EAAE,GAAKG,KAAK1W,IAAIyU,EAAErX,EAAI2Z,GAAI,GAAK,GAIxD6zC,SAAUr0C,EAAE,KAIhBA,EAAExD,UAAU83C,eAAiB,SAAUztD,EAAGmZ,GACxC,IAAI5gB,EAAIhJ,KAAK68D,KACTzyC,EAAIphB,EAAE3J,MAAM8mD,KAChB,OAAOn9C,EAAEy5D,kBAAoBr4C,EAAEu7B,cAAc38C,EAAEy5D,kBAAmBhyD,EAAGzH,EAAEM,QAAQuyD,YAAajyC,IAAMQ,EAAE+6B,iBAAiBv7B,EAAEg4B,MAAMwD,KAAOh7B,EAAE+6B,iBAAiBv7B,EAAE63B,KAAK2D,MAGzJx7B,EA7BD,GAgCRna,EAAEk9D,UAAYviD,EAhDhB,CAiDGW,IAAMA,EAAI,KAENA,KAET6B,EAAE9E,EAAG,+BAAgC,CAACA,EAAE,uBAAuB,SAAUrY,GACvE,IAGImD,EAHA5J,EAAIyG,EAAE+uC,SACN12B,EAAIrY,EAAE6wC,sBACNp1B,EAAIzb,EAAEoxC,KAsEV,OAnEA,SAAWpxC,GACT,SAASmD,EAAE5J,GACT,IAAI4gB,EAAI5pB,KAAK09D,YACb,gBAAkB10D,EAAEy4D,YAAYr8D,KAAOpF,KAAK09D,iBAAc,EAAS9zC,IAAM5pB,KAAK09D,YAAc,IAAIzsD,EAAEjR,OAGpG,SAASusB,IACP,IAAIvjB,EAAIhJ,KAAK09D,YACb10D,IAAMhJ,KAAKmkE,QAAU,SAAUv6C,GAC7B,OAAO5gB,EAAE80D,QAAQl0C,IAChB5pB,KAAKqkE,QAAU,SAAUz6C,GAC1B,OAAO5gB,EAAEm8D,QAAQv7C,KAIrB,IAAI7nB,EAAI,GAER0N,EAAEwpD,QAAU,SAAU7uC,GAEpB,OADC,IAAMroB,EAAE8c,QAAQuL,KAAOroB,EAAEuF,KAAK8iB,GAAIA,EAAE0hD,UAAUxkE,KAAK,eAAgB0B,EAAEohB,EAAG,OAAQxX,GAAI5J,EAAEohB,EAAG,YAAamC,IAChGnC,GAGT,IAAInZ,EAAI,WACN,SAASjI,EAAE4gB,GACT5pB,KAAK68D,KAAOjzC,EAqCd,OAlCA5gB,EAAEod,UAAUy+C,oBAAsB,SAAUj7C,EAAGnZ,EAAGzH,EAAGohB,GACnD,IAAI3a,EAAIzP,KAAK68D,KACT7yC,EAAIva,EAAEuX,IACNoE,EAAI3b,EAAEnG,QACN2H,EAAI,GAER,GADAmZ,IAAMpqB,KAAK4sE,uBAAoB,GAC3B,IAAMhjD,EAAGA,EAAIG,KAAKw2B,MAAM32B,GAAI3Y,EAAIxB,EAAEg1D,uBAAuB76C,EAAGnZ,EAAGzH,QAAQ,GAAI,KAAO4gB,EAAG,CACvF,IACI/nB,EADAopB,EAAIlB,KAAK4U,MAAMluB,GAEfqZ,EAAIsB,OAAI,EAEZ,IAAKpB,EAAI,GAAKJ,EAAI,CAAC,EAAG,EAAG,GAAK,IAAMA,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIqB,EAAIjiB,EAAI,IAAM8gB,EAAGmB,IAAK,CAC3G,IAAIZ,EAAIL,EAAEjpB,OAEV,IAAKc,EAAI,EAAGA,EAAIwoB,IAAMP,EAAGjoB,IAAK,CAC5B,IAAI2O,EAAIxQ,KAAKmlE,QAAQnlE,KAAK89D,QAAQ7yC,GAAKjB,EAAEnoB,IACzC2O,EAAIC,KAAO2Z,GAAKgB,GAAKpiB,SAAM,IAAuBoiB,GAAKna,EAAE3J,KAAK8jB,GAC9DA,EAAIpiB,IAAM8gB,GAAI,GACdsB,EAAI5a,SAGHC,EAAIzQ,KAAK89D,QAAQrtD,GAAIzH,EAAIhJ,KAAK89D,QAAQ90D,GAAI4gB,EAAIQ,EAAI3a,EAAEk1D,uBAAyBv5C,EAAEwyC,aAAch0C,EAAIsB,EAAE,SAAWtB,EAAI,KAAOA,EAAG5pB,KAAK4sE,kBAAmBxhD,EAAE4wC,mBAAqB5xC,EAAI,EAAI,IAAMphB,EAAIyH,KAAO2Z,EAAIJ,EAAIva,EAAEkuD,cAAc58D,OAASipB,IAAM,IAAKJ,EAAI9B,EAAE8B,GAAI3Y,EAAIxB,EAAEg1D,uBAAuB76C,EAAGnZ,EAAGzH,GAAGimB,IAAIjvB,KAAKmlE,SAAU/6C,IAAMpqB,KAAK4sE,kBAAoBhjD,EAAI,GAE7V,OADAQ,IAAM3a,EAAEmuD,aAAeh0C,GAChB3Y,GAGTjI,EAAEod,UAAU03C,QAAU,SAAUl0C,GAC9B,OAAOG,KAAK4zB,IAAI,GAAI/zB,IAGtB5gB,EAAEod,UAAU++C,QAAU,SAAUv7C,GAC9B,OAAOG,KAAKjf,IAAI8e,GAAKG,KAAK6zB,MAGrB50C,EAvCD,GA0CRyG,EAAEk9D,UAAY17D,EAhEhB,CAiEG2B,IAAMA,EAAI,KAENA,KAETga,EAAE9E,EAAG,iDAAkD,CAACA,EAAE,uBAAuB,SAAUrY,GACzF,IAGImD,EAHA5J,EAAIyG,EAAE+vC,MACN13B,EAAIrY,EAAElG,OACN2hB,EAAIzb,EAAE0wC,SA6GV,OA1GA,SAAW1wC,GACT,IACI8c,EADA3Z,EAAI,GAGRnD,EAAEwpD,QAAU,SAAUjwD,EAAGohB,GAGvB,OAFAmC,IAAMA,EAAIvjB,IACT,IAAM4J,EAAEiM,QAAQuL,KAAOxX,EAAEtL,KAAK8iB,GAAItC,EAAEsC,EAAEhE,UAAWrkB,EAAEqkB,YAC7CgE,GAGT,IAAIroB,EAAI,WACN,SAAS0N,KA2FT,OAzFAA,EAAE2W,UAAUymD,gBAAkB,SAAU7jE,EAAG4gB,EAAGnZ,QAC5C,IAAWA,IAAMA,EAAIzQ,KAAKsJ,SAC1B,IAAI8gB,EAAIpqB,KAAKghE,gBAAgB,CAC3Bl8D,MAAO8kB,EACP3B,OAAO,EACPu8C,YAAa/zD,EAAE+zD,cAEb/0D,EAAI,GACJqB,EAAI9Q,KAAK+/D,MASb,GARAn2C,GAAKsB,EAAElrB,KAAK4E,OAASsmB,EAAElrB,KAAKqT,MAAQrK,EAAIhJ,KAAK4E,KAAOglB,EAAI5pB,KAAK4E,KAAOoE,EAAIhJ,KAAKqT,KAAOuW,EAAI5pB,KAAKqT,IAC7FrK,EAAIhJ,KAAKghE,gBAAgB,CACvBl8D,MAAOkE,EACPif,OAAO,EACPu8C,YAAa/zD,EAAE+zD,cAEjB/zD,EAAI,EAEAzH,GAAKohB,EAAG,CACV,GAAIR,EAAG,CACL,IAAIH,EAAIzgB,EAAEkV,aAAekM,EAAElM,WAC3BzN,EAAI,EAGN,IAAKmZ,EAAI,EAAGA,EAAI5gB,EAAEjI,OAAQ6oB,GAAK,EAAG,CAChC,IAAI9B,EAAI9e,EAAE4gB,GACN3Y,EAAIjI,EAAE4gB,EAAI,GACVqB,EAAIb,EAAER,GACN/nB,EAAIuoB,EAAER,EAAI,GACd,MAAQ9B,EAAE,IAAM,MAAQA,EAAE,IAAM,MAAQ7W,EAAE,IAAM,MAAQA,EAAE,IAAM,MAAQga,EAAE,IAAM,MAAQA,EAAE,IAAM,MAAQppB,EAAE,IAAM,MAAQA,EAAE,KAAOiP,GAAKma,EAAE,KAAOnD,EAAE,IAAMmD,EAAE,IAAMxa,EAAG5O,EAAE,IAAM4O,GAAKK,GAAKma,EAAE,KAAOnD,EAAE,KAAOmD,EAAE,IAAMxa,EAAG5O,EAAE,IAAM4O,GAAIhB,EAAEnI,KAAK,CAAC,IAAKwgB,EAAE,GAAIA,EAAE,IAAK,CAAC,IAAK7W,EAAE,GAAIA,EAAE,IAAK,CAAC,IAAKpP,EAAE,GAAIA,EAAE,IAAK,CAAC,IAAKopB,EAAE,GAAIA,EAAE,IAAK,CAAC,OACjTxb,EAAEq9D,OAASrjD,GAIf,OAAOha,GAGTA,EAAE2W,UAAU2mD,YAAc,SAAU/jE,GAClC,OAAOhJ,KAAK0rE,kBAAkB1iE,EAAG,cAGnCyG,EAAE2W,UAAU4mD,YAAc,SAAUhkE,GAClC,OAAOhJ,KAAK0rE,kBAAkB1iE,EAAG,cAGnCyG,EAAE2W,UAAUslD,kBAAoB,SAAU1iE,EAAG4gB,GAC3C,IAAInZ,EAAIzQ,KACJyP,EAAIzP,KAAKyhE,YACTr3C,EAAI,IAAImC,EAAEvsB,KAAMgJ,GAGpB,GAFAhJ,KAAKo8D,UAAYhyC,EAAIA,EAAEq2C,UAEnBr2C,EAAG,CAKL,GAJApqB,KAAK2+D,eAAiB3+D,KAAK2+D,cAAe,GAAKlvD,EAAE+7D,WAAa,IAAIz/C,OAAOtc,EAAEg8D,WAAa,IAAIzlE,SAAQ,SAAU4jB,GAC5GnZ,EAAEi7D,kBAAkB9hD,OAGlBA,EAAG,CACL,IAAI9Y,EAAIrB,EAAEma,IAAM,GAChB9Y,EAAExJ,KAAK0B,GACPyG,EAAEma,GAAK9Y,EAGT9Q,KAAK8hE,kBAAkBx6D,KAAK8iB,GAG9B,OAAOA,GAGT3a,EAAE2W,UAAU6mD,qBAAuB,SAAUx9D,GAC3C,IAAIma,EAAI5pB,KAAK8hE,kBACTrxD,EAAIzQ,KAAKsJ,QACT8gB,EAAIpqB,KAAKyhE,YAEb,GAAI73C,EAAG,CACL,IAAK,IAAIwB,EAAIxB,EAAE7oB,OAAQqqB,KAAMxB,EAAEwB,GAAGjmB,KAAOsK,GAAKma,EAAEwB,GAAGllB,UAEnD,CAACuK,EAAE+6D,WAAa,GAAIphD,EAAEohD,WAAa,GAAI/6D,EAAEg7D,WAAa,GAAIrhD,EAAEqhD,WAAa,IAAIzlE,SAAQ,SAAUyK,GAC7F,IAAK2a,EAAI3a,EAAE1P,OAAQqqB,MAAO3a,EAAE2a,IAAM,IAAIjmB,KAAOsK,GAAKzG,EAAEyH,EAAGA,EAAE2a,SAK/D3b,EAAE2W,UAAU8mD,eAAiB,SAAUlkE,GACrChJ,KAAKitE,qBAAqBjkE,IAG5ByG,EAAE2W,UAAU+mD,eAAiB,SAAUnkE,GACrChJ,KAAKitE,qBAAqBjkE,IAGrByG,EA5FD,GAVV,CAwGGmD,IAAMA,EAAI,KAENA,KAETga,EAAE9E,EAAG,6CAA8C,CAACA,EAAE,kDAAmDA,EAAE,uBAAuB,SAAUrY,EAAGzG,GAC7I,IAAI8e,EAAI9e,EAAE81C,SACN5zB,EAAIliB,EAAE+1C,SACNnsC,EAAI5J,EAAEo2C,QACNr0B,EAAI/hB,EAAEq2C,wBACNxyB,EAAI7jB,EAAEw2C,MACNjzB,EAAIvjB,EAAEg1C,UACNj8C,EAAIiH,EAAEq3C,MACNpvC,EAAIjI,EAAEw3C,WACNp2B,EAAIphB,EAAE63C,KAgHV,OA9GA73C,EAAI,WACF,SAAS4gB,EAAEnZ,EAAGmZ,GACZ5pB,KAAK68D,KAAOpsD,EACZmZ,IAAM5pB,KAAKsJ,QAAUsgB,EAAG5pB,KAAKmF,GAAKykB,EAAEzkB,IAsGtC,OAnGAykB,EAAEqvC,QAAU,SAAUxoD,GACpB,OAAOhB,EAAEwpD,QAAQrvC,EAAGnZ,IAGtBmZ,EAAExD,UAAUq6C,OAAS,WACnBl0C,EAAEvsB,KAAM,UACR,IAAIyQ,EAAIzQ,KACJ4pB,EAAInZ,EAAEosD,KACN7zD,EAAI4gB,EAAEm2C,MACNtwD,EAAIma,EAAE8zC,YACNj0C,EAAIhZ,EAAEnH,QACNwe,EAAI2B,EAAE9lB,MACN4mB,EAAIH,EAAEX,EAAEk5B,OAAQ,GAChB13B,EAAIxB,EAAE3pB,OACN+B,EAAI,GACJioB,EAAIF,EAAEvqB,MAAM4H,SACZojB,EAAIZ,EAAE7J,MACNpP,EAAIC,EAAEmP,MACN4J,EAAIC,EAAE47B,GACN17B,EAAIF,EAAEiM,KACNjK,EAAIhC,EAAE3kB,MACNqmB,EAAI1a,EAAE28D,QACNz6D,EAAI,GACJ0Y,EAAIzY,EAAE+W,IAAM/W,EAAE4W,GAClB7W,EAAIC,EAAE6Y,GACN,IAAID,GAAKL,EACL6B,EAAI,CACN,MAAS,oBAAsB3B,EAAI,QAAU,UAAY5B,EAAExe,WAAa,KAEtEsgB,EAAIF,EAAI,QAAU,QAOtB,GANA5b,IAAMka,EAAIla,EAAE01D,QAAQx7C,GAAIH,EAAI/Z,EAAE01D,QAAQ37C,GAAIiC,EAAIhc,EAAE01D,QAAQ15C,IACxD7B,EAAEvqB,MAAM6iD,aAAevvC,GAAKqa,EAAE7lB,OAAS2gB,GAAK,UAAWkF,EAAE,gBAAkB5C,EAAEX,EAAEtmB,MAAO,GAAIsmB,EAAEzlB,YAAcgpB,EAAE3lB,UAAYoiB,EAAEzlB,YAAcqnB,IAAM2B,EAAEtlB,KAAOogB,GAAK,UAAW2B,EAAEnoB,cAAgB0rB,EAAE7lB,OAASsiB,EAAE7lB,YAAaopB,EAAE,gBAAkBvD,EAAEnoB,eACzOO,EAAE8gD,OAASp4B,EACXgB,GAAK,IAAMhB,GACV9a,EAAIma,EAAEi4C,wBAAwBt2C,MAAQ3B,EAAEi4C,wBAAwBt2C,GAAK9b,EAAIqa,EAAEN,EAAE,QAAU+B,GAAGrkB,KAAKrF,GAAGuF,OACnGokB,IAAM/a,EAAE28D,QAAUjiD,EAAIrB,EAAE7jB,OAAOiB,KAAK8lB,GAAG5lB,IAAIqI,IACvCkD,EAAGA,EAAIiX,EAAEo3C,gBAAgB,CAC3Bl8D,MAAO2mB,EACPvmB,UAAWimB,EAAE6iC,cACbwW,YAAa/6C,EAAE+6C,kBACT,KAAIn5C,EAAuC,OAApC1Y,EAAIiX,EAAEijD,gBAAgBljD,EAAGH,EAAGC,GAkB3C,OAjBChZ,EAAE48D,aAAepiD,IAAMha,EAAEga,GAAG,SAAUza,EAAGmZ,GACxCwB,EAAEpiB,GAAG4gB,GAAG,SAAUnZ,GAChBya,EAAEtB,GAAGjI,MAAMjR,EAAG,CAACD,UAEfC,EAAE48D,aAAc,IACnB7hD,IAAML,EAAEvB,IAAMjX,GAAKA,EAAE5R,OAASoqB,EAAEjkB,KAAK,CACpC0iB,EAAGjX,IACAwY,IAAMxY,GAAKwY,EAAEnjB,OAAQmjB,EAAEzd,QAAQ,CAClCkc,EAAGjX,KACCwY,EAAEvB,IAAMuB,EAAEhiB,OAAQqH,IAAMC,EAAEmP,MAAQpP,EAAIA,EAAEtK,aAC9CmkB,IAAMzX,EAAEyX,EAAEnpB,OAAS0R,EAAEyX,EAAExlB,aAAe8N,GAAKA,EAAE5R,QAAU,EAAI6oB,EAAEzmB,OAAS,EAAIymB,EAAEpqB,SAAWmT,EAAEm6D,QAAUziD,EAAItoB,EAAE,CACvGmC,MAAO8E,GAAKqiB,GAAK,SACjBxpB,EAAGmH,GAAKqiB,GAAK,EAAI,GACjBk7B,eAAgBv9C,GAAKqiB,GAAK,SAC1BtpB,EAAGiH,EAAIqiB,EAAI,GAAK,GAAKA,EAAI,GAAK,EAC9BlnB,SAAU6E,IAAMqiB,GAAK,IACpBhB,GAAIrqB,KAAK6gE,YAAYx2C,EAAG1X,EAAG0Y,EAAGd,IAAM/Z,GAAKA,EAAErH,OACvCsH,GAGTmZ,EAAExD,UAAUy6C,YAAc,SAAUpwD,EAAGmZ,EAAG5gB,EAAGyG,GAC3C,IAAI2a,EAAIpqB,KAAK68D,KACT7yC,EAAII,EAAE/qB,MAAM4H,SACZ6J,EAAI9Q,KAAK4f,MACb9O,IAAM9Q,KAAK4f,MAAQ9O,EAAIkZ,EAAE9oB,KAAKlB,KAAKstE,aAAa78D,GAAI,EAAG,EAAGA,EAAEjP,SAAS0F,KAAK,CACxEhD,MAAOuM,EAAE62C,WAAa72C,EAAEvM,MACxBC,SAAUsM,EAAEtM,SACZ,MAAS,oBAAsB6E,EAAI,OAAS,QAAU,WAAayH,EAAExF,WAAa,IAClF03C,OAAQlzC,IACPrI,MAAOgjB,EAAE/qB,MAAM6iD,YAAcpxC,EAAEtQ,IAAIuB,EAAE,CACtCglD,aAAc,YACbt2C,EAAEnR,SACLmQ,EAAIma,EAAE2jD,SAAW,CAAC3jD,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAI5gB,EAAI4gB,EAAE,GAAG,GAAKA,EAAE,GAAG,IACvDA,EAAIA,EAAE4jD,SAAW,CAAC5jD,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAI5gB,EAAI4gB,EAAE,GAAG,GAAKA,EAAE,GAAG,IACvD5gB,EAAIkiB,EAAEzb,GACNua,EAAIkB,EAAEtB,GACN9Y,EAAE5M,MAAMuM,GAAG,EAAI,CACb5O,EAAGmH,EACHjH,EAAGioB,EACH7mB,MAAO2kB,EAAErY,GAAKzG,EACdxJ,OAAQsoB,EAAE8B,GAAKI,IAEjBlZ,EAAEg8C,YAAc,SAAWh8C,EAAEg8C,YAAch8C,EAAEtQ,IAAI,CAC/C2C,OAAQ,KAAO2N,EAAE3M,SAAWimB,EAAE5qB,QAAUsR,EAAE47C,UAAU3qD,EAAIqoB,EAAE3pB,KAAO2pB,EAAEjnB,OAAS2N,EAAE47C,UAAU7qD,EAAIuoB,EAAExpB,OAAS,OAEzGkQ,EAAE9I,MAAK,IAGT4hB,EAAExD,UAAUknD,aAAe,SAAU78D,GACnC,OAAOmC,EAAEnC,EAAE5L,WAAa4L,EAAE5L,UAAU8X,KAAK3c,MAAQyQ,EAAEvP,MAGrD0oB,EAAExD,UAAUlgB,QAAU,WACpB2mB,EAAE7sB,KAAK68D,KAAKiF,kBAAmB9hE,aACxBA,KAAK68D,KACZ9xC,EAAE/qB,OAGG4pB,EAzGL,MAgHNgD,EAAE9E,EAAG,kBAAmB,CAACA,EAAE,2BAA4BA,EAAE,mBAAoBA,EAAE,sCAAuCA,EAAE,qCAAsCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,GAC3M,IAAImY,EAAItb,EAAEnE,OACNuhB,EAAI7jB,EAAEizC,IACN1vB,EAAIzE,EAAEkjC,WACNjpD,EAAI6Q,EAAE4rC,SACNvtC,EAAI2B,EAAEosC,MACN50B,EAAIxX,EAAEpS,IACNopB,EAAIhX,EAAEwsC,QACN3uC,EAAImC,EAAE0sC,eACNt1B,EAAIpX,EAAErJ,OACN6hB,EAAIxY,EAAEorC,UACNltC,EAAI8B,EAAEiJ,QACN4N,EAAI7W,EAAEutC,SACNrzB,EAAIla,EAAEwtC,SACN71B,EAAI3X,EAAEytC,MACNp1B,EAAIrY,EAAEiuC,KACNh/C,EAAI+Q,EAAEquC,MACNn3B,EAAIlX,EAAEwuC,YAwlBV,OAtlBA3xC,EAAI,WACF,SAAS4a,EAAE7Z,EAAGgZ,GACZxpB,KAAKytE,aAAc,EACnBztE,KAAKK,eAAY,EACjBL,KAAKkjE,WAAa,GAClBljE,KAAK86D,SAAW,EAChB96D,KAAKkV,UAAW,EAChBlV,KAAK0tE,UAAW,EAChB1tE,KAAKkqB,IAAM,GACXlqB,KAAKsJ,QAAU,GACftJ,KAAK2tE,SAAU,EACf3tE,KAAKX,MAAQmR,EACbxQ,KAAKrB,KAAK6R,EAAGgZ,GAskBf,OAnkBAa,EAAEjE,UAAUwnD,YAAc,WACxB,IAAIp9D,EAAIxQ,KAAKX,MACbmR,EAAEvJ,SAASuwD,WAAW,CACpB/1C,QAAS,SACTwY,WAAY,CACV90B,GAAI,eAAiBqL,EAAEvN,MACvBy6C,QAAS,IAEXtpC,SAAU,CAAC,CACTqN,QAAS,iBACTwY,WAAY,CACV,GAAM,cACN4zC,aAAc,IAEf,CACDpsD,QAAS,WACTwY,WAAY,CACV02B,GAAI,EACJF,GAAI,IAEL,CACDhvC,QAAS,sBACTrN,SAAU,CAAC,CACTqN,QAAS,UACTwY,WAAY,CACV70B,KAAM,SACN+gE,MAAO,OAGV,CACD1kD,QAAS,UACTrN,SAAU,CAAC,CACTqN,QAAS,eACR,CACDA,QAAS,cACTwY,WAAY,CACV,GAAM,wBAOhB5P,EAAEjE,UAAU0nD,cAAgB,SAAUt9D,GACpC,OAAOA,EAAEye,KAAI,SAAUze,GACrB,IAAImZ,EAAInZ,EAAEtQ,OAAO6tE,eACjB,OAAQpkD,GAAGnZ,EAAE5O,MAAMosE,cAAgB,SAAW,cAAgBx9D,EAAE5O,MAAMqsE,kBAAkBtxD,KAAKnM,EAAE5O,MAAO+nB,GAAGnZ,EAAE5O,MAAMosE,cAAgB,SAAW,WAAa,QAI7J3jD,EAAEjE,UAAU8nD,WAAa,SAAU19D,GACjCxQ,KAAKX,MAAMa,OAAO8F,SAAQ,SAAUwjB,GAClC,IAAIG,EAAIH,GAAKA,EAAE2kD,GACfxkD,KAAOA,EAAE4T,UAAY/sB,EAAIgZ,EAAE2kD,GAAKxkD,EAAEzjB,UAAYyjB,EAAE4T,UAAW,OAI/DlT,EAAEjE,UAAUgoD,iBAAmB,SAAU59D,GACvC,IAAIgZ,EAAIxpB,KAAK0lE,QAAU7jE,EAAE7B,MACrB2pB,EAAI,CAACnZ,EAAE69D,6BAA6B7kD,EAAE,KAG1C,OAFAG,EAAIA,EAAEoC,OAAOvb,EAAEs9D,cAActkD,KAC3BliB,KAAKkJ,EAAE69D,6BAA6B7kD,EAAE,IAAI,IACrCG,GAGTU,EAAEjE,UAAUlgB,QAAU,WACpBlG,KAAK4f,QAAU5f,KAAK4f,MAAQ5f,KAAK4f,MAAM1Z,WACvClG,KAAKie,OAASje,KAAKmuE,KAAOnuE,KAAKkuE,YAAW,GAAKluE,KAAKmuE,GAAKnuE,KAAKmuE,GAAGjoE,WACjElG,KAAKiH,WAAajH,KAAKiH,SAAWjH,KAAKiH,SAASf,UAAWuK,EAAEzQ,KAAKK,YAClEuS,EAAEgY,aAAa5qB,KAAKsuE,WACpB17D,EAAEgY,aAAa5qB,KAAKuuE,iBAGtBlkD,EAAEjE,UAAUooD,UAAY,SAAUh+D,EAAGgZ,GACnC,IAKIM,EACAra,EANAka,EAAI3pB,KAAKX,MACToR,EAAIkZ,EAAE8kD,QACN7kD,EAAID,EAAE+hC,SACNrhC,EAAIV,EAAEw/C,QACNngE,EAAI2gB,EAAEy/C,SAGNh/C,EAAI,EACJJ,EAAI,EASR,OARAxZ,EAAI3O,EAAE2O,GACNxQ,KAAK0uE,eAAiBllD,QAAK,IAAuBA,EAAE4iD,SAAW5iD,EAAI/Y,EAAEq7B,UAAUtiB,IAAK/Y,EAAI,CAAC+Y,EAAE4iD,OAASpjE,EAAGwgB,EAAE6iD,OAAShiD,IAAM7Z,EAAE,GAAGm+D,WAAal+D,EAAID,EAAE,GAAGm+D,YAAcn+D,EAAExK,SAAQ,SAAUwK,GACnLsZ,EAAItZ,EAAEtQ,OAAOQ,MACb+O,EAAIe,EAAEtQ,OAAOW,MACbupB,GAAK5Z,EAAE1O,OAAS,EAChBkoB,GAAKxZ,EAAEo+D,SAAWp+D,EAAEo+D,SAAWp+D,EAAEq+D,UAAY,IAAM,EAAIr+D,EAAE27D,OAAS,EAClE18D,GAAKqa,IAAMF,GAAKQ,GAAKC,EAAIV,EAAEu/C,WAAaz5D,EAAEuX,IAAMvX,EAAE+kC,IAAKxqB,GAAKhhB,EAAI2gB,EAAEs/C,UAAYn/C,EAAE9C,IAAM8C,EAAE0qB,MAAQpqB,GAAK3a,EAAE+kC,IAAMxrC,EAAGghB,GAAKF,EAAE0qB,IAAMnqB,OAC3HD,GAAK5Z,EAAEzP,OAAQipB,GAAKxZ,EAAEzP,OAAQ0P,EAAI,CAACmZ,EAAID,EAAEs/C,UAAYj/C,EAAII,EAAGR,EAAID,EAAEu/C,WAAa9+C,EAAIJ,GAAIhqB,KAAKqB,QAAU,EAAImP,EAAEzP,QAAUyoB,IAAMI,EAAInZ,EAAE,GAAK+Y,EAAE4iD,OAASpjE,EAAIyH,EAAE,GAAK+Y,EAAE6iD,OAAShiD,IACrK5Z,EAAEwe,IAAIlF,KAAKw2B,QAGpBl2B,EAAEjE,UAAU0oD,SAAW,WACrB,IAcIrlD,EAdAjZ,EAAIxQ,KACJwpB,EAAIxpB,KAAKX,MAAM6iD,WACfv4B,EAAI3pB,KAAKsJ,QACTmH,EAAIzQ,KAAKie,OAASje,KAAKytE,YACvBpjD,EAAI,WAAaT,EAAED,EAAE1e,WAAa,IAAM0e,EAAE1e,UAAY,IACtD6e,EAAIH,EAAErqB,MAAM46D,iBAAmBl6D,KAAK0uE,eAAiB/kD,EAAEq+B,eAAiB,OAAS,QACjFv4C,EAAI,WACNe,EAAEu+D,WAAY,GAEZ/kD,EAAI,SAAUL,GAChB,IAAIH,EAAIhZ,EAAEnR,MAAM2vE,YAChBx+D,EAAEu+D,UAAYv+D,EAAEy+D,wBAA0Bz+D,EAAEnR,MAAMovE,QAAQS,QAAQvlD,EAAEkO,cAAe,uBAC9ErnB,EAAEu+D,WAAavlD,GAAKA,EAAE2lD,YAAY3lD,EAAE2lD,cAGvCr+D,EAAI9Q,KAAKX,MAAM4H,SAEnB,GAAIuJ,EAAEoP,MAAO,CACX,IAAIwL,GAAK5a,EAAEoP,MAAM5S,SAAS,qBACzByD,IAAM2a,IAAM3a,GAAK2a,IAAM5a,EAAEtK,UAG5B,IAAKlG,KAAK4f,MAAO,CACf,GAAI5f,KAAK2tE,QAAS,CAChBviD,EAAIprB,KAAKX,MAAMiK,QAAQjK,MAAMC,MAC7B,IAAIwoB,EAAIoD,EAAE2nC,kBACV7yD,KAAKK,UAAYopB,EAAIzgB,EAAEizC,IAAIxhC,cAAc,OACzCgP,EAAExe,UAAY,+BACdmf,EAAEX,EAAG,CACHjI,SAAU,WACV/gB,IAAK,MACLy5D,cAAepwC,EACf64B,OAAQ54B,KAAK1W,IAAIrT,KAAKsJ,QAAQhK,MAAMqjD,QAAU,GAAIv3B,GAAKA,EAAEu3B,QAAU,GAAK,KAE1E5gD,EAAE0nB,EAAG,aAAcha,GACnB1N,EAAE0nB,EAAG,aAAcO,GACnBhhB,EAAEizC,IAAIjsC,KAAK+K,YAAY0O,GACvBzpB,KAAKiH,SAAW6J,EAAI,IAAIgX,EAAE2B,EAAG,EAAG,EAAG2B,OAAG,OAAQ,EAAQta,EAAEoxC,YAgB1D,GAbAzxC,EAAIzQ,KAAK4f,MAAQ9O,EAAE0Y,EAAEa,IAAMrqB,KAAK4f,MAAQ9O,EAAE8O,MAAM,GAAI,EAAG,EAAG+J,EAAEi+B,WAAO,OAAQ,EAAQj+B,EAAEnoB,aAAS,EAAQ6oB,GAAGnjB,KAAK,CAC5GuX,QAASkL,EAAElL,QACX3N,EAAG6Y,EAAEw4B,eACH34B,GAAKxpB,KAAK4f,MAAM1Y,KAAK,CACvBQ,KAAMiiB,EAAE9pB,gBACR,eAAgB8pB,EAAEroB,cACjBd,IAAImpB,EAAErqB,OAAOkB,IAAI,CAClB05D,cAAepwC,IACdvoB,OAAOooB,EAAEpoB,SACZioB,GAAKG,EAAEpoB,SAAWvB,KAAK4tE,cAAe5tE,KAAK4f,MAAM1Y,KAAK,CACpDiB,OAAQ,oBAAsBnI,KAAKX,MAAM4D,MAAQ,OAG/CuN,EAAEm9D,UAAYn9D,EAAEyN,MAAO,CACzB,IAAIhN,EAAIjR,KAAK4f,MACT/d,EAAIoP,EAAEq8C,QACNriC,EAAIha,EAAEo8C,QAEVp8C,EAAEq8C,QAAU,SAAU3jC,GACpB9nB,EAAE8a,KAAK1L,EAAGT,EAAEsqD,UACZrxC,EAAEnqB,MAAMsB,KAAO+oB,EAAI,MAGrB1Y,EAAEo8C,QAAU,SAAU1jC,GACpBsB,EAAEtO,KAAK1L,EAAGT,EAAEsqD,UACZrxC,EAAEnqB,MAAMmB,IAAMkpB,EAAI,MAItB3pB,KAAK4f,MAAM7W,GAAG,aAAc0G,GAAG1G,GAAG,aAAcihB,GAAG9iB,KAAK,CACtDy7C,OAAQ,IACPv7C,MAGL,OAAOpH,KAAK4f,OAGdyK,EAAEjE,UAAU44C,YAAc,SAAUxuD,EAAGgZ,EAAGG,GACxC,IAcI7B,EAdArX,EAAIzQ,KAAKX,MACTuqB,EAAI5pB,KAAK86D,SACTzwC,EAAI,GACJrhB,EAAIyH,EAAEi7C,UAAY/hC,EAAES,GAAK,EACzBN,EAAI9pB,KAAK2tE,QACTl+D,EAAIqa,EAAI+C,EAAE7hB,gBAAgBokE,YAAc,EAAIxlD,EAAInZ,EAAE2uD,WAClDh1C,EAAIN,EAAIC,KAAK1W,IAAIwZ,EAAE7c,KAAK+vC,aAAclzB,EAAE7hB,gBAAgB+0C,aAAclzB,EAAE7c,KAAK8e,aAAcjC,EAAE7hB,gBAAgB8jB,aAAcjC,EAAE7hB,gBAAgBqkE,cAAgB5+D,EAAEhK,YAC/JujB,EAAIvZ,EAAEg+D,QAAQa,mBACd7lD,EAAI,SAAUY,GAChB,IAAIrhB,EAAI,MAAQqhB,EAChB,MAAO,CAACA,EAAGrhB,EAAIyG,EAAI2a,EAAGphB,EAAIwH,EAAIgZ,GAAGuC,OAAOjC,EAAI,CAAC9gB,EAAIwH,EAAIwZ,EAAE2nC,OAASnoC,EAAIQ,EAAE4nC,OAAQ5oD,EAAIghB,EAAEppB,KAAOgpB,GAAKD,EAAE7nB,MAAQ2O,EAAE24D,UAAYp/C,EAAE2nC,OAAS3nC,EAAEvpB,IAAMmpB,GAAKD,EAAEwiD,MAAQ17D,EAAE04D,SAAWn/C,EAAE4nC,OAAQ,EAAG5oD,EAAIyG,EAAI2a,GAAK,CAACphB,EAAIwH,EAAIgZ,EAAGxgB,EAAI2gB,EAAE7nB,MAAQ2O,EAAE24D,SAAWz/C,EAAEwiD,MAAQ17D,EAAE04D,QAASngE,EAAIyH,EAAE24D,SAAW34D,EAAE04D,QAASngE,EAAIyH,EAAE24D,SAAW34D,EAAEw4D,UAAYx4D,EAAE04D,QAAU14D,EAAEy4D,cAEpUp4D,EAAI2Y,EAAE,KACN2B,EAAI3B,EAAE,KAGVA,IAAME,EAAE4lD,UACP9+D,EAAEs2D,OAASt2D,EAAEu+D,aAAev+D,EAAEu+D,YAAYtuE,OAAS+P,EAAEu+D,YAAYtuE,MAAM86D,WAAa/xC,GAAKA,GAE1F,IAAIxY,GAAKjR,KAAK0uE,eAAiBzjD,EAAEtB,EAAE6lD,SAAU/+D,EAAEi7C,WAAajiC,GACxD5nB,EAAI,SAAU2O,EAAGmZ,EAAGH,EAAG/Y,EAAGhB,EAAG2a,EAAGzX,GAClC,IAAI8W,EAAIK,EAAI,MAAQtZ,EAAIoZ,EAAII,EAAE4nC,OAAShoC,EAAII,EAAE2nC,OAAS/nC,EAClDuB,GAAK3B,EAAI/Y,GAAK,EACdgb,EAAIhb,EAAIhB,EAAIma,EACZ4C,EAAI/c,EAAIma,EAAInZ,EAAIkZ,EAChB7Y,EAAIrB,EAAIga,EAAID,EAAI2B,EAEpB,GADA1b,EAAIA,EAAIga,EAAI0B,EACRla,GAAKub,EAAGnC,EAAE7Z,GAAKf,OAAO,IAAKwB,GAAKwa,EAAGpB,EAAE7Z,GAAKM,OAAO,GAAI2a,EAAGpB,EAAE7Z,GAAKuZ,KAAKnlB,IAAI+N,EAAIlC,EAAG,EAAIK,EAAI9H,EAAI8H,EAAIA,EAAI9H,OAAQ,KAAIwjB,EAAsD,OAAO,EAA1DnC,EAAE7Z,GAAKuZ,KAAK1W,IAAI+W,EAAG3a,EAAIzG,EAAIwgB,EAAIG,EAAIla,EAAIA,EAAIzG,KAE/JuhB,EAAI,SAAU/Z,EAAGmZ,EAAGH,EAAG/Y,EAAGzH,GAC5B,IAAI8gB,EAEJ,OADA9gB,EAAI4gB,GAAK5gB,EAAI2gB,EAAIC,EAAIE,GAAI,EAAKO,EAAE7Z,GAAKxH,EAAIwgB,EAAI,EAAI,EAAIxgB,EAAI2gB,EAAIlZ,EAAI,EAAIkZ,EAAIlZ,EAAI,EAAIzH,EAAIwgB,EAAI,EAClFM,GAEL0C,EAAI,SAAUhc,GAChB,IAAImZ,EAAI7Y,EACRA,EAAIsa,EACJA,EAAIzB,EACJ7B,EAAItX,GAEF8a,EAAI,YACN,IAAOzpB,EAAE6f,MAAM,EAAG5Q,IAAK,IAAOyZ,EAAE7I,MAAM,EAAG0J,IAAMtD,IAAM0E,GAAE,GAAKlB,KAAOxD,EAAIuC,EAAExoB,EAAIwoB,EAAEtoB,EAAI,GAAKyqB,GAAE,GAAKlB,MAKjG,OAFC7a,EAAEi7C,UAAY,EAAI1rD,KAAKgnB,MAAQwF,IAChClB,IACOjB,GAGTA,EAAEjE,UAAUjd,KAAO,SAAUqH,GAC3B,IAAIgZ,EAAIxpB,KACR4S,EAAEgY,aAAa5qB,KAAKsuE,WACpB99D,EAAIya,EAAEza,EAAGxQ,KAAKsJ,QAAQq+C,WACtB3nD,KAAKkV,WAAalV,KAAKsuE,UAAYxkD,GAAE,WACnCN,EAAEslD,WAAW5lE,QAAQsH,OAAI,EAASA,GAClCgZ,EAAEtU,UAAW,IACZ1E,KAGL6Z,EAAEjE,UAAUznB,KAAO,SAAU6R,EAAGgZ,GAC9BxpB,KAAKX,MAAQmR,EACbxQ,KAAKsJ,QAAUkgB,EACfxpB,KAAKkjE,WAAa,GAClBljE,KAAKkqB,IAAM,CACTroB,EAAG,EACHE,EAAG,GAEL/B,KAAKkV,UAAW,EAChBlV,KAAKie,MAAQuL,EAAEvL,QAAUzN,EAAEk7C,WAAal7C,EAAEu2D,MAC1C/mE,KAAKqB,OAASmoB,EAAEnoB,QAAUrB,KAAKie,MAC/Bje,KAAK2tE,QAAU1iD,EAAEzB,EAAEmkD,WAAYn9D,EAAEi/D,oBAAsBj/D,EAAEk/D,qBAG3DrlD,EAAEjE,UAAU6oD,qBAAuB,WACjC,QAASjvE,KAAK0uE,gBAAkB1uE,KAAKsJ,QAAQ0+C,iBAG/C39B,EAAEjE,UAAUupD,kBAAoB,WAC9B,SAAU3vE,KAAKivE,yBAA2BjvE,KAAK+uE,YAGjD1kD,EAAEjE,UAAUwpD,KAAO,SAAUp/D,EAAGgZ,EAAGG,EAAGlZ,GACpC,IAAImZ,EAAI5pB,KACJqqB,EAAIT,EAAEM,IACNlhB,GAAI,IAAO4gB,EAAEtgB,QAAQi+C,YAAc39B,EAAE1U,WAAa,EAAI6U,KAAK8gC,IAAIr6C,EAAI6Z,EAAExoB,IAAM,EAAIkoB,KAAK8gC,IAAIrhC,EAAIa,EAAEtoB,IAC9F+nB,EAAIF,EAAE8kD,eAAiB,EAAI9kD,EAAE5C,IACjCgD,EAAEK,EAAG,CACHxoB,EAAGmH,GAAK,EAAIqhB,EAAExoB,EAAI2O,GAAK,EAAIA,EAC3BzO,EAAGiH,GAAKqhB,EAAEtoB,EAAIynB,GAAK,EAAIA,EACvB4pC,QAAStpC,OAAI,EAAS9gB,GAAK,EAAIqhB,EAAE+oC,QAAUzpC,GAAK,EAAIA,EACpD0pC,QAASvpC,OAAI,EAAS9gB,GAAKqhB,EAAEgpC,QAAU5iD,GAAK,EAAIA,IAElDmZ,EAAEklD,WAAW5nE,KAAKmjB,GAClBT,EAAEimD,cACF7mE,IAAM4J,EAAEgY,aAAa5qB,KAAKuuE,gBAAiBvuE,KAAKuuE,eAAiB/kE,YAAW,WAC1EogB,GAAKA,EAAEgmD,KAAKp/D,EAAGgZ,EAAGG,EAAGlZ,KACpB,MAGL4Z,EAAEjE,UAAUkK,QAAU,SAAU9f,EAAGgZ,GACjC,IAAIG,EAAI3pB,KAAKX,MACToR,EAAIzQ,KAAKsJ,QACTsgB,EAAI/nB,EAAE2O,GACN6Z,EAAIT,EAAE,GACN5gB,EAAI,GACJ8gB,EAAIrZ,EAAE5L,WAAa7E,KAAKouE,iBACxB3+D,EAAIzP,KAAKqB,OACT+oB,EAAIT,EAAEu4B,WACNl4B,EAAI,GAER,GAAIvZ,EAAEtR,SAAWkrB,EAAEnqB,OAAQ,CACzB0S,EAAEgY,aAAa5qB,KAAKsuE,WACpBtuE,KAAKytE,eAAiB38D,EAAEN,IAAMA,EAAEtQ,QAAUsQ,EAAEtQ,OAAOmlE,iBACnDrlE,KAAK0uE,eAAiB1uE,KAAKie,OAASoM,EAAEnqB,OAAO6tE,eAAeW,cAE5D,IAAIjlD,GADJjZ,EAAIxQ,KAAKwuE,UAAUh+D,EAAGgZ,IACZ,GACN1B,EAAItX,EAAE,GAYV,GAXAf,GAAKzP,KAAKytE,aAAe9jD,EAAE8kD,QAAQqB,mBAAmBlmD,GAAIA,EAAE5jB,SAAQ,SAAUwK,GAC5EA,EAAEsnD,SAAS,SACX9uD,EAAE1B,KAAKkJ,EAAEu/D,sBACP/lD,EAAI,CACNnoB,EAAGwoB,EAAEwzC,SACL97D,EAAGsoB,EAAEtoB,IACF2jE,OAAS18D,GAAKghB,EAAIK,EAAE0lD,iBACzB/vE,KAAKgnB,IAAMhe,EAAEjI,OACb+oB,EAAIA,EAAEnN,KAAKqN,EAAGhqB,MACdyP,EAAI4a,EAAEnqB,OACNF,KAAK86D,SAAW7vC,EAAExb,EAAEs+D,eAAejT,SAAU,KACzC,IAAOhxC,EAAG9pB,KAAKmJ,WAAY,CAC7B,GAAInJ,KAAKie,OAASje,KAAKytE,YAAaztE,KAAKgwE,YAAYlmD,EAAGF,OAAQ,CAC9D,IAAI3Y,EAAIwY,EACJc,EAAIzC,EAER,GADA0B,GAAKG,EAAE8kD,QAAQwB,gBAAkBh/D,EAAIuY,EAAE4iD,OAASziD,EAAEy/C,SAAU7+C,EAAIf,EAAE6iD,OAAS1iD,EAAEw/C,UACzEx/C,EAAEo9C,QAAS,IAAOt3D,EAAEnG,QAAQwkD,OAAQlkC,EAAExS,MAAK,SAAU5G,GACvD,OAAOA,EAAEtQ,OAAOgwE,kBAAkBj/D,EAAGsZ,MAerC,YADAvqB,KAAKmJ,OAbHqgB,EAAIxpB,KAAK8uE,WAAYr+D,EAAEnR,MAAM6D,QAAUinB,GAAKZ,EAAEhpB,IAAI,CACpD2C,MAAOnD,KAAKX,MAAM8wE,WAAWhtE,MAAQ,OACnCqmB,EAAEtiB,KAAK,CACThG,KAAM4oB,GAAKA,EAAE3B,KAAO2B,EAAE3B,KAAK,IAAM2B,IAC/BN,EAAEnmB,YAAY,2BAA2Bb,SAAS,oBAAsByoB,EAAEZ,EAAE+lD,WAAY3gE,EAAE2gE,aAAchmD,GAAKZ,EAAEtiB,KAAK,CACtHC,OAAQsJ,EAAE7M,aAAeymB,EAAE1mB,OAAS8L,EAAE9L,OAAS,YAC7C3D,KAAKqwE,eAAe,CACtBvuE,MAAO2nB,EACP0iD,MAAOrkD,EACPynD,SAAUllD,EAAEklD,SACZC,QAASnlD,EAAEmlD,QACXplD,EAAG5Z,EAAE,IAAM,IAMfxQ,KAAKkV,UAAYlV,KAAK4f,OAAS5f,KAAK4f,MAAM1Y,KAAK,CAC7Cw2C,QAAS,IACR11C,OACHhI,KAAKkV,UAAW,EAElBkW,EAAEprB,KAAM,aAIZqqB,EAAEjE,UAAU4pD,YAAc,SAAUx/D,EAAGgZ,GACrC,SAASG,EAAEnZ,EAAGmZ,EAAGH,EAAGI,EAAGS,GAGrB,YAFA,IAAWA,IAAMA,GAAI,GACrBb,GAAKG,EAAIiE,EAAI,EAAI7C,EAAGva,EAAIS,EAAET,EAAIoZ,EAAI,EAAGoB,EAAEpqB,KAAMoqB,EAAE6hC,MAAQjjC,GAAKnZ,EAAEk9D,QAAU5gD,EAAI,MAAQpD,GAAKyE,EAA8B5d,EAAIS,EAA/BT,EAAI6Z,EAAI7Z,EAAIoZ,EAAIhX,EAAIpC,EAAIoC,EAAYyX,EAAI7Z,EAAIwa,EAAEpqB,KAAMoqB,EAAE6hC,QAC3I,CACLhrD,EAAG2O,EACHzO,EAAG4nB,GAIP,IAAIlZ,EAAIzQ,KACJ4pB,EAAInZ,EAAEpR,MACNgrB,EAAI5Z,EAAEpR,MACN2J,EAAIqhB,EAAE+0C,WACNt1C,EAAIO,EAAE5jB,YACNgJ,EAAI4a,EAAE6+C,WACN9+C,EAAIC,EAAE++C,SACN3/C,EAAIY,EAAE8+C,QACNr4D,EAAIuZ,EAAEokD,QACNrjD,EAAIf,EAAEqlD,kBACVtkD,OAAI,IAAWA,EAAI,EAAIA,EACvB,IAAItD,EAAIuC,EAAEolD,kBACN5tE,EAAIwoB,EAAEimD,mBAKN/lD,GAJJ1oB,OAAI,IAAWA,EAAI,CACjB0sB,WAAY,EACZ5gB,UAAW,GACT9L,GACM0sB,WACV1sB,EAAIA,EAAE8L,UACN,IAAI5L,EAAIsoB,EAAE63B,WACNtvC,EAAInC,EAAEqqD,SACNtuC,EAAI/b,EAAEnH,QACNgiB,EAAI7a,EAAEnH,QAAQ7H,WACdupB,EAAIva,EAAEk9D,SAAW,iBAAoB7lD,EAAI+E,EAAE7hB,gBAAgB4pB,wBAA0B,CACvFh0B,KAAM2pB,EACNsiC,MAAOtiC,EAAIvhB,EACXvI,IAAKoB,EACLw9D,OAAQx9D,EAAIioB,GAEVwD,EAAI7c,EAAEq+D,WACNnjD,EAAI3rB,KAAKiH,UAAY2iB,EAAE3iB,SACvB2mB,KAAOhE,EAAE/oB,MAAM,KAAO+oB,EAAE/oB,MAAM,GAAG06D,UAEjCxuC,GADJnD,EAAI9Y,EAAEw+D,oBACI1uE,KACVgpB,EAAIA,EAAEnpB,IACN,IAAI2tB,EAAI3E,EAAI5nB,EACR0uE,EAAK,EACLxlD,EAAItb,EAAI2b,EACZ0B,EAAEtc,KAAOA,EAAI,EAAC,EAAIA,IAClBA,EAAIA,EAAEkM,MAAM,EAAG8M,EAAEzoB,OAAS,GAAGu9C,QAAO,SAAU9tC,EAAGoZ,EAAGS,GAClD,IAAI,IAAOT,GAAK,KAAOA,EAAG,CAOxB,IAAI5gB,GANJqhB,EAAIb,EAAEa,EAAI,IAAM,CACdmmD,UAAU,EACV1uE,MAAO0nB,EAAE,GAAG1nB,MACZqqE,MAAO18D,EACPvP,OAAQ,KAEAswE,SACN1mD,EAAI9gB,EAAIyH,EAAI4Z,EAAEnqB,OAClB0pB,EAAIA,EAAE1L,WACN,IAAIvL,EAAImX,EAAEqkD,GACNnkD,EAAIK,EAAEmmD,SACNrlD,EAAId,EAAEnqB,OACNurB,EAAI,oBAAsBR,EAAEZ,EAAE+lD,WAAYjlD,EAAEilD,WAAY,QAsB5D,GArBAz9D,IAAMA,EAAI,CACR8L,QAAS+N,EAAE/N,QACX3N,EAAG0b,EAAE21B,cACJpgD,IAAM4Q,EAAEjL,KAAO8kB,EAAE3sB,gBAAiB8S,EAAE,gBAAkB6Z,EAAElrB,aAAcqR,EAAIgZ,EAAE/L,MAAM,GAAI,EAAG,EAAG4M,EAAExC,EAAI,cAAgB,cAAU,OAAQ,EAAQwC,EAAEhrB,SAASgB,UAAUwnB,EAAI,6BAA+B,IAAM,0BAA4ByB,GAAGvkB,KAAKyL,GAAGvL,IAAIkmB,IACxP3a,EAAE4qB,UAAW,EACb5qB,EAAEzL,KAAK,CACLhG,KAAM0oB,IAER7nB,GAAK4Q,EAAEnS,IAAIgsB,EAAEltB,OAAOiC,OAAOirB,EAAEjrB,QAAQ2F,KAAK,CACxCC,OAAQqlB,EAAE5oB,aAAeymB,EAAE1mB,OAASwnB,EAAExnB,OAAS,YAIjDimB,GADAI,GADAF,EAAIA,EAAEqkD,GAAKx7D,GACLnL,WACArE,MAAQ2mB,EAAEkkC,cAChBhlD,IAAMunE,EAAKvmD,EAAExqB,OAAQurB,GAAKwlD,EAAI3iD,IAAMQ,GAAKmiD,IAEzCplD,OAAI,KADJA,EAAId,EAAEvoB,OACa,EAAIqpB,EAEvBM,OAAI,KADJA,EAAIpB,EAAE8hD,OACa,EAAI1gD,EACvB9Y,EAAI0X,EAAEnqB,OAEFmqB,EAAEmmD,SAAU,CACdrlD,EAAIf,EAAIe,EACR,IAAIra,EAAI2Y,EAAIha,EAAI,MACX,CACL,IAAI2b,EAAIzY,EAAE9R,MACNinB,EAAInV,EAAEjS,MACVyqB,EAAIC,EAAEopB,IAAMvjC,EAAEka,GAAIvY,EAAGwY,EAAEpE,IAAMpU,GAC7BD,EAAEu9D,kBAAkB,EAAGpoD,EAAE0sB,IAAM/qB,EAAIgC,EAAG,CACpCglD,SAAS,MACJ3/D,EAAIgX,EAAE0sB,IAAM/oB,GAGrBN,EAAIla,EAAEka,EAAGH,EAAEpqB,KAAOgS,EAAGoY,EAAE6hC,MAAQj6C,GAC/B,iBAAoB9B,GAAKkZ,EAAIA,EAAExqB,OAAS,EAAGisB,EAAIH,EAAIA,EAAE3O,KAAKlM,EAAGmZ,EAAGI,EAAGK,GAAKV,EAAEwB,EAAGra,EAAG9H,EAAG4gB,GAAIpZ,EAAElJ,KAAK,CAC5FpD,MAAOonB,EAAI,OAAI,EACf8nC,QAASjoC,EACTkoC,QAASviD,EACTpP,SAAUkoB,EACVhoB,MAAOyoB,EACP6gC,KAAMjgC,EAAEQ,EAAEy/B,KAAMliD,EAAI,EAAI,GACxBysB,KAAMzL,EACN9c,OAAQue,EAAE1pB,EACVosE,GAAIrkD,EACJjoB,EAAG4pB,EAAE5pB,KACDioB,EAAEyT,UAAW,EAGrB,OAAO/sB,IACN,KACF8a,GAAK9a,EAAE4G,MAAK,SAAU5G,GACrB,IAAImZ,GAAKlZ,EAAEk9D,QAAU5gD,EAAI,GAAKvc,EAAE4iD,QAChC,OAAOzpC,EAAIqB,EAAEpqB,MAAQ+oB,EAAInZ,EAAE9O,SAAWspB,EAAE6hC,OAAaljC,EAAIoD,EAAI/B,EAAEpqB,KAAO4P,EAAE9O,UAAYspB,EAAE6hC,MAAQljC,EAAIA,OAC7FnZ,EAAIA,EAAEye,KAAI,SAAUze,GACzB,IAAIC,EAAIkZ,EAAEnZ,EAAE4iD,QAAS5iD,EAAE6iD,QAAS7iD,EAAE5O,MAAM4uE,SAAUhgE,EAAE9O,UAAU,GAC9D,OAAOsoB,EAAExZ,EAAG,CACVtD,OAAQuD,EAAE1O,EACVF,EAAG4O,EAAE5O,QAGT4O,EAAEy9D,aACF3hD,EAAE/b,EAAGua,GACL,IAAIG,EAAI6B,EACJnB,EAAImB,EACRvc,EAAExK,SAAQ,SAAUwK,GAClB,IAAImZ,EAAInZ,EAAE3O,EACN2nB,EAAIhZ,EAAE9O,UACV8O,EAAIA,EAAEggE,YACA//D,EAAEk9D,SAAW5gD,EAAIpD,EAAIuB,IAAMA,EAAI6B,EAAIpD,IAAKnZ,GAAKC,EAAEk9D,SAAWziD,EAAI1B,EAAIoC,IAAMA,EAAImB,EAAIpD,OAExFnZ,EAAExK,SAAQ,SAAUwK,GAClB,IAAImZ,EAAInZ,EAAE3O,EACN2nB,EAAIhZ,EAAE4iD,QACNxpC,EAAIpZ,EAAEgkC,IACNnqB,EAAI7Z,EAAE5O,MAAM4uE,SAShB,GARA5mD,EAAI,CACFumC,gBAAY,IAAuBvmC,EAAI,SAAW,UAClD/nB,EAAG8nB,EACH5nB,EAAG6nB,EAAIwE,EACPglC,QAAS5pC,EACT6pC,QAAS7iD,EAAE6iD,SAGT5iD,EAAEk9D,SAAWhkD,EAAIH,EAAG,CACtB,IAAIxgB,EAAI+jB,EAAI7B,EACZ,EAAIliB,IAAMqhB,IAAMT,EAAE/nB,EAAI8nB,EAAI3gB,EAAG4gB,EAAEwpC,QAAU5pC,EAAIxgB,GAAIqhB,IAAMT,EAAE/nB,GAAK+pB,EAAIV,GAAK,EAAGtB,EAAEwpC,QAAU5pC,EAAIxgB,IAG5FwH,EAAE29D,GAAGjnE,KAAK0iB,MAEZpZ,EAAIC,EAAEpQ,UACN+qB,EAAI3a,EAAExJ,SACNwJ,EAAEk9D,SAAWn9D,GAAK4a,IAAMf,EAAIiD,EAAE9lB,UAAW4jB,EAAEksC,QAAQjtC,EAAElnB,MAAQknB,EAAExoB,EAAGwoB,EAAE7qB,OAAS6qB,EAAEtoB,GAAG,GAAKyO,EAAElR,MAAMsB,KAAOsqB,EAAI,KAAM1a,EAAElR,MAAMmB,IAAMmpB,EAAI,OAGpIS,EAAEjE,UAAUypD,YAAc,WACxB,GAAI7vE,KAAK0uE,gBAAkB1uE,KAAKsJ,QAAQ0+C,eAAgBhoD,KAAK0wE,SAAW1wE,KAAK0wE,QAAQxqE,cAAe,CAClG,IAAIsK,EAAIxQ,KAAKX,MACToR,EAAIzQ,KAAK4f,MACT+J,EAAI3pB,KAAKqB,OAASmP,EAAEmgE,YAAcngE,EAAEogE,WAExC,GAAIngE,GAAKkZ,EAAG,CACV,IAAIC,EAAI,CACN/nB,EAAG,EACHE,EAAG,EACHoB,MAAO,EACP3D,OAAQ,GAEVmqB,EAAI3pB,KAAKwuE,UAAU7kD,GACnB,IAAIU,EAAI5Z,EAAEjJ,UACVmiB,EAAE,IAAMnZ,EAAE44D,SAAW34D,EAAEghD,WACvB9nC,EAAE,IAAMnZ,EAAE24D,QAAU14D,EAAEihD,WACtB9nC,EAAE/nB,EAAIkoB,KAAKnlB,IAAI,EAAG+kB,EAAE,IACpBC,EAAE7nB,EAAIgoB,KAAKnlB,IAAI,EAAG+kB,EAAE,IACpBC,EAAEzmB,MAAQ,EAAIwmB,EAAE,GAAKI,KAAK1W,IAAI0W,KAAK8gC,IAAIlhC,EAAE,IAAKU,EAAElnB,MAAQwmB,EAAE,IAAMI,KAAK1W,IAAI0W,KAAK8gC,IAAIlhC,EAAE,IAAKU,EAAElnB,OAC3FymB,EAAEpqB,OAAS,EAAImqB,EAAE,GAAKI,KAAK1W,IAAI0W,KAAK8gC,IAAIlhC,EAAE,IAAKU,EAAE7qB,OAASuqB,KAAK8gC,IAAIlhC,EAAE,KAAOI,KAAK1W,IAAI0W,KAAK8gC,IAAIlhC,EAAE,IAAKU,EAAE7qB,QACvGQ,KAAK0wE,QAAU1wE,KAAK0wE,QAAQxpE,KAAK0iB,IAAM5pB,KAAK0wE,QAAUjgE,EAAExJ,SAAS8tD,KAAKnrC,GAAGpnB,SAAS,sBAAsB4E,IAAIqJ,GAAID,EAAE0xC,YAAcliD,KAAK0wE,QAAQxpE,KAAK,CAChJQ,KAAM,sBAMd2iB,EAAEjE,UAAUyqD,iBAAmB,SAAUrgE,GACvC,OAAOA,EAAEzL,QAAQ,0BAA2B,6BAA6BA,QAAQ,yCAA0C,6CAG7HslB,EAAEjE,UAAUioD,6BAA+B,SAAU79D,EAAGC,GACtD,IAAIkZ,EAAInZ,EAAEtQ,OACNspB,EAAIG,EAAEokD,eACNnkD,EAAID,EAAE9oB,MACNwpB,EAAIT,GAAKA,EAAEm0C,SACfn0C,EAAI,CACFknD,SAAUrgE,EACVsgE,YAAavgE,GAEf,IAAIxH,EAAIwgB,EAAEwnD,YACNlnD,EAAIN,EAAE/Y,EAAI,eAAiB,gBAY/B,OAXA2a,EAAEprB,KAAM,kBAAmB4pB,GAAG,SAAUnZ,GACtC4Z,IAAMrhB,GAAKygB,EAAEjZ,EAAEqF,OAAS7M,EAAIqhB,EAAE6zC,eAAe1tD,EAAEqF,IAAK2T,EAAEg+B,uBACtDn9B,GAAKrhB,IAAMwH,EAAE5O,OAAS4O,EAAE5O,MAAMqvE,iBAAmB,CAAC,QAAQjrE,SAAQ,SAAUwK,GAC1EsZ,EAAIA,EAAE/kB,QAAQ,UAAYyL,EAAI,IAAK,UAAYA,EAAI,IAAMxH,EAAI,QAE/D2gB,EAAEtqB,MAAM6iD,aAAep4B,EAAI9pB,KAAK6wE,iBAAiB/mD,IACjDrZ,EAAEvP,KAAO6pB,EAAEjB,EAAG,CACZloB,MAAO4O,EACPtQ,OAAQypB,GACP3pB,KAAKX,UAEHuqB,EAAE1oB,MAGXmpB,EAAEjE,UAAU1c,OAAS,SAAU8G,GAC7BxQ,KAAKkG,UACLqkB,GAAE,EAAIvqB,KAAKX,MAAMiK,QAAQlI,QAAQqgE,YAAajxD,GAC9CxQ,KAAKrB,KAAKqB,KAAKX,MAAOkrB,GAAE,EAAIvqB,KAAKsJ,QAASkH,KAG5C6Z,EAAEjE,UAAUiqD,eAAiB,SAAU7/D,GACrC,IAAIC,EAAIzQ,KAAKX,MACTsqB,EAAI3pB,KAAKsJ,QACTsgB,EAAInZ,EAAEg+D,QACNpkD,EAAIrqB,KAAK8uE,WACbllD,EAAIA,EAAE0lD,mBACN,IAAItmE,GAAK2gB,EAAEloB,YAAczB,KAAKg/D,aAAariD,KAAK3c,KAAMqqB,EAAElnB,MAAOknB,EAAE7qB,OAAQgR,GACrEsZ,EAAItZ,EAAE1O,MAAQ2O,EAAE24D,SACpB54D,EAAIA,EAAE27D,MAAQ17D,EAAE04D,QAEZnpE,KAAK2tE,UACPhkD,EAAIA,EAAEroB,YAAc,EAAItB,KAAK86D,SAC7B96D,KAAKiH,SAASqwD,QAAQjtC,EAAElnB,MAAQwmB,EAAGU,EAAE7qB,OAASmqB,GAAG,GAC7C,IAAMC,EAAE+nC,QAAU,IAAM/nC,EAAEgoC,SAAQxnC,EAAEpqB,KAAKK,UAAW,CACtD4wD,UAAW,SAASllC,OAAOnC,EAAE+nC,OAAQ,MAAM5lC,OAAOnC,EAAEgoC,OAAQ,OAC1D9nC,GAAKF,EAAE+nC,OAAQnhD,GAAKoZ,EAAEgoC,QAC1B9nC,GAAKF,EAAEhpB,KAAOoI,EAAEnH,EAChB2O,GAAKoZ,EAAEnpB,IAAMuI,EAAEjH,GAGjB/B,KAAK4vE,KAAK7lD,KAAKw2B,MAAMv3C,EAAEnH,GAAIkoB,KAAKw2B,MAAMv3C,EAAEjH,GAAK,GAAI+nB,EAAGtZ,IAG/C6Z,EAllBL,GAslBG5a,KAETmd,EAAE9E,EAAG,uBAAwB,CAACA,EAAE,6BAA8BA,EAAE,wCAAyCA,EAAE,0BAA2BA,EAAE,2BAA4BA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,GACjN,IAAImY,EAAI/hB,EAAEqgD,WACNx8B,EAAI/E,EAAE68B,eACNp4B,EAAIrB,EAAE5f,OACNvJ,EAAI6Q,EAAE4rC,SACNvtC,EAAI2B,EAAEwsC,QACNh1B,EAAIxX,EAAE4sC,MACN51B,EAAIhX,EAAErJ,OACNkH,EAAImC,EAAEorC,UACNh0B,EAAIpX,EAAE+sC,kBACNv0B,EAAIxY,EAAEiJ,QACN/K,EAAI8B,EAAE6oC,WACNhyB,EAAI7W,EAAEutC,SACNrzB,EAAIla,EAAE8vB,SACNnY,EAAI3X,EAAEytC,MACNp1B,EAAIrY,EAAE4tC,WACN3+C,EAAI+Q,EAAEiuC,KACN/2B,EAAIlX,EAAEwuC,YACN/2B,EAAIzX,EAAEouC,YACNxwC,EAAIoC,EAAEivC,UA+YV,OA7YA74C,EAAI,WACF,SAASwgB,IACPxpB,KAAKowE,WAAapwE,KAAK69D,cAAW,EAClC79D,KAAKguE,aAAe,QACpBhuE,KAAKmF,QAAK,EACVnF,KAAKkxE,QAAS,EACdlxE,KAAKmxE,WAAanxE,KAAKsJ,QAAUtJ,KAAKqF,UAAO,EAC7CrF,KAAK+0B,UAAW,EAChB/0B,KAAK88D,MAAQ98D,KAAKgD,UAAYhD,KAAKE,YAAS,EAC5CF,KAAKo8D,SAAU,EACfp8D,KAAK6B,OAAI,EA+XX,OA5XA2nB,EAAEpD,UAAUgrD,qBAAuB,WACjC,IAAI5gE,EAAIxQ,KACJyQ,EAAI,CACN5O,EAAG2O,EAAE6gE,UACL3zB,QAAS,GAEPl0B,EAAIhZ,EAAE8gE,oBACV9nD,EAAE+nD,SAASvrE,SAAQ,SAAU2jB,GAC3BnZ,EAAEmZ,GAAKnZ,EAAEmZ,GAAGjc,QAAQ,cAAgBic,EAAI,CACtC9nB,EAAG2O,EAAEmZ,GAAG0nD,UACRtvE,EAAGyO,EAAEmZ,GAAG6nD,UACR9zB,QAAS,GACPjtC,MAEN+Y,EAAEioD,OAAOzrE,SAAQ,SAAU2jB,GACzBnZ,EAAEmZ,GAAG3jB,SAAQ,SAAU2jB,GACrBA,EAAEjnB,SAAWinB,EAAEjc,QAAQkc,EAAE,CACvB/nB,EAAG2O,EAAE6gE,WACJ1nD,EAAE6nD,UAAY,CACf3vE,EAAG8nB,EAAE0nD,UACLtvE,EAAG4nB,EAAE6nD,WACH,YAKVhoD,EAAEpD,UAAUsrD,aAAe,SAAUlhE,EAAGC,GACtC,IAAIkZ,EAAI3pB,KAAKE,OACTmqB,EAAIV,EAAErgB,QAAQqoE,aAAehoD,EAAEgoD,YAWnC,OAVAnhE,EAAIgZ,EAAEpD,UAAUwrD,gBAAgBj1D,KAAK3c,KAAMwQ,GAC3CoZ,EAAE5pB,KAAMwQ,GACRxQ,KAAKsJ,QAAUtJ,KAAKsJ,QAAUsgB,EAAE5pB,KAAKsJ,QAASkH,GAAKA,EACnDA,EAAEqhE,cAAgB7xE,KAAK6xE,MACvBrhE,EAAEshE,mBAAqB9xE,KAAK8xE,WAC5BznD,IAAMrqB,KAAK+B,EAAIynB,EAAEpD,UAAUu5B,kBAAkBhjC,KAAK3c,KAAMqqB,IACxDrqB,KAAKguE,cAAgBhuE,KAAKkxE,OAASrvE,EAAE7B,KAAK+xE,UAAY/xE,KAAK+xE,UAAW,OAAS/xE,KAAK6B,IAAM4nB,EAAEzpB,KAAK+B,KAAO,OAAS,QACjH/B,KAAK+0B,WAAa/0B,KAAK2qC,MAAQ,UAC/B,SAAU3qC,WAAQ,IAAuByQ,GAAKkZ,EAAE9oB,OAAS8oB,EAAE9oB,MAAM0hE,WAAaviE,KAAK6B,EAAI8nB,EAAE9oB,MAAMykE,QAAQtlE,YACvG,IAAuBA,KAAK6B,GAAK8nB,EAAI3pB,KAAK6B,OAAI,IAAuB4O,EAAIkZ,EAAE67C,gBAAkB/0D,EAAIgZ,EAAEjZ,EAAE3O,IAAM8nB,EAAErgB,QAAQ0oE,iBAAmBhyE,KAAK6B,EAAI8nB,EAAE67C,cAAch1D,EAAE3O,IAC5J7B,MAGTwpB,EAAEpD,UAAUlgB,QAAU,WACpB,SAASsK,IAGP,IAAKwZ,KAFDvZ,EAAEhO,SAAWgO,EAAEwhE,WAAaxhE,EAAEqhE,cAAYznD,EAAE5Z,GAAIA,EAAEyhE,mBAE5CzhE,EAAGA,EAAEuZ,GAAK,KAGtB,IAAIvZ,EAAIzQ,KACJwpB,EAAI/Y,EAAEvQ,OACN0pB,EAAIJ,EAAEnqB,MACVmqB,EAAIA,EAAElgB,QAAQ6oE,YACd,IAEInoD,EAFAhhB,EAAI4gB,EAAE+mD,YACNlhE,EAAIsb,EAAEta,EAAEvQ,OAAOb,MAAM4H,SAASwiD,iBAElCh5C,EAAE2hE,YAAcxoD,EAAEzoB,OAAOkxE,YAAY5hE,GACrCzH,IAAMyH,EAAEqnD,WAAY1tC,EAAEphB,EAAGyH,GAAIzH,EAAEjI,SAAW6oB,EAAE+mD,YAAc,OACtDlgE,IAAMmZ,EAAEgnD,YAAYngE,EAAE0+D,aAC1B3lD,GAAKA,EAAErqB,SAAWa,KAAKoxE,uBAAwBtnD,EAAEtZ,EAAGf,EAAEpE,WAAamF,IACnEoZ,EAAE0oD,cAGJ9oD,EAAEpD,UAAU8rD,gBAAkB,SAAU1hE,GACtC,IAAImZ,EAAI3pB,MACRwQ,EAAImZ,EAAE2nD,kBAAkB9gE,IACtB+gE,SAASvrE,SAAQ,SAAUwK,GAC3BmZ,EAAEnZ,GAAKmZ,EAAEnZ,GAAGtK,aAEdsK,EAAEihE,OAAOzrE,SAAQ,SAAUwK,GACzBmZ,EAAEnZ,GAAGxK,SAAQ,SAAUwK,GACrBA,EAAE9N,SAAW8N,EAAEtK,oBAEVyjB,EAAEnZ,OAIbgZ,EAAEpD,UAAUmsD,eAAiB,SAAU/hE,EAAGgZ,EAAGI,GAC3C,IAAID,EAAI3pB,KACJqqB,EAAIrqB,KAAKE,OAAOoJ,SACnB+gB,EAAEzoB,MAAM9B,OAAO0Q,IAAMmZ,EAAErgB,SAAWqgB,EAAErgB,QAAQxJ,QAAU6pB,EAAErgB,QAAQxJ,OAAO0Q,KAAOmZ,EAAE6oD,eACjF,UAAYhiE,GAAK6Z,EAAEooD,mBAAqB7oD,EAAI,SAAUpZ,GACpDmZ,EAAEjmB,QAAUimB,EAAEjmB,OAAO,KAAM8M,EAAEkiE,SAAWliE,EAAEmiE,SAAWniE,EAAEoiE,YAEzDniE,EAAEkZ,EAAGnZ,EAAGgZ,EAAGI,IAGbJ,EAAEpD,UAAUysD,aAAe,WACzB,MAAO,oBAAsB7yE,KAAK+0B,SAAW,2BAA6B,KAAO/0B,KAAKuvE,SAAW,uBAAyB,KAAOvvE,KAAKkxE,OAAS,yBAA2B,UAAO,IAAuBlxE,KAAKowE,WAAa,qBAAuBpwE,KAAKowE,WAAa,KAAOpwE,KAAKsJ,QAAQ2B,UAAY,IAAMjL,KAAKsJ,QAAQ2B,UAAY,KAAOjL,KAAK8yE,MAAQ9yE,KAAK8yE,KAAK7nE,UAAY,IAAMjL,KAAK8yE,KAAK7nE,UAAUlG,QAAQ,sBAAuB,IAAM,KAG7aykB,EAAEpD,UAAUkrD,kBAAoB,SAAU9gE,GACxC,IAMIoZ,EANAD,EAAI3pB,KACJyQ,EAAI,GACJ+Y,EAAI,CACN+nD,SAAU,GACVE,OAAQ,IAUV,KAPAjhE,EAAIA,GAAK,CACP/N,QAAS,EACTwvE,UAAW,IAEXxvE,SAAWgO,EAAEnJ,KAAK,UAAW,eAAgB,eAC/CkJ,EAAEyhE,WAAaxhE,EAAEnJ,KAAK,YAAa,iBAAkB,aAEhDsiB,EAAInZ,EAAE1P,OAAQ6oB,KAAM,CACvB,IAAIS,EAAI5Z,EAAEmZ,GACVD,EAAEU,IAAMb,EAAE+nD,SAASjqE,KAAK+iB,GAO1B,MAJA,CAAC,YAAa,aAAarkB,SAAQ,SAAUyK,GAC3C,IAAImZ,EAAInZ,EAAI,IACZD,EAAEC,IAAMkZ,EAAEC,IAAMJ,EAAEioD,OAAOnqE,KAAKsiB,MAEzBJ,GAGTA,EAAEpD,UAAU2pD,eAAiB,WAC3B,MAAO,CACLluE,EAAG7B,KAAK69D,SACR97D,EAAG/B,KAAK+B,EACR4B,MAAO3D,KAAK2D,MACZysE,WAAYpwE,KAAKowE,WACjBv6D,IAAK7V,KAAKqF,MAAQrF,KAAK69D,SACvB39D,OAAQF,KAAKE,OACb0B,MAAO5B,KACPmxE,WAAYnxE,KAAKmxE,WACjBrU,MAAO98D,KAAK88D,OAAS98D,KAAK+yE,aAI9BvpD,EAAEpD,UAAUu5B,kBAAoB,SAAUnvC,GACxC,GAAIA,EAAG,OAAO,IAAMA,EAAEqO,QAAQ,WAAamL,EAAExZ,EAAGxQ,KAAKsJ,SAAWtJ,KAAKwQ,IAGvEgZ,EAAEpD,UAAU4sD,QAAU,WACpB,IAAIxiE,EAAIxQ,KAAKE,OACTuQ,EAAID,EAAEyiE,MACVziE,EAAIA,EAAE0iE,UAAY,IAClB,IAAI1pD,EACAI,EAAI,EAER,IAAKJ,EAAI/Y,EAAEmZ,GAAI5pB,KAAKwQ,IAAMgZ,EAAE1kB,OAAQ0kB,EAAI/Y,IAAImZ,GAI5C,OAFA5pB,KAAKmzE,gBAAkBnzE,KAAKmzE,cAAgBnzE,KAAK2D,OACjD3D,KAAK2D,MAAQ6lB,GAAKA,EAAE7lB,QAAU3D,KAAKsJ,QAAQ3F,MAAQ6lB,EAAE7lB,MAAQ3D,KAAKmzE,cAC3D3pD,GAGTA,EAAEpD,UAAUgtD,gBAAkB,WAC5B,OAAQpzE,KAAKyC,UAAYzC,KAAKyC,QAAQirD,YAAc1tD,KAAKyC,QAAQC,QAAQshB,aAAehkB,KAAKqzE,WAG/F7pD,EAAEpD,UAAUznB,KAAO,SAAUgrB,EAAGH,EAAGI,GAOjC,OANA5pB,KAAKE,OAASypB,EACd3pB,KAAK0xE,aAAaloD,EAAGI,GACrB5pB,KAAKmF,GAAK8L,EAAEjR,KAAKmF,IAAMnF,KAAKmF,GAAKqL,IACjCxQ,KAAKszE,eACL3pD,EAAEtqB,MAAMizE,aACR7hE,EAAEzQ,KAAM,aACDA,MAGTwpB,EAAEpD,UAAUwrD,gBAAkB,SAAUphE,GACtC,IAAImZ,EAAI3pB,KAAKE,OACTuQ,EAAIkZ,EAAErgB,QAAQqsB,KACd/L,EAAInZ,GAAKkZ,EAAE4pD,eAAiB,CAAC,KAC7BlpD,EAAIT,EAAE7oB,OACNiI,EAAI,GACJ8gB,EAAI,EACJra,EAAI,EACR,GAAIga,EAAEjZ,IAAM,OAASA,EAAGxH,EAAE4gB,EAAE,IAAMpZ,OAAO,GAAI4a,EAAE5a,GAAI,KAAMC,GAAKD,EAAEzP,OAASspB,IAAuB,WAAjBV,SAAWnZ,EAAE,IAAqBxH,EAAE3D,KAAOmL,EAAE,GAAK,WAAamZ,IAAM3gB,EAAEnH,EAAI2O,EAAE,IAAKsZ,KAAMra,EAAI4a,GAAI5Z,QAAK,IAAuBD,EAAEsZ,KAAO,EAAIF,EAAEna,GAAGoP,QAAQ,KAAO2K,EAAEpD,UAAUotD,kBAAkBxqE,EAAGwH,EAAEsZ,GAAIF,EAAEna,IAAMzG,EAAE4gB,EAAEna,IAAMe,EAAEsZ,IAAKA,IAAKra,QAAS,iBAAoBe,IAAMxH,EAAIwH,EAAGA,EAAEshE,aAAenoD,EAAE8pD,iBAAkB,GAAKjjE,EAAEzM,SAAW4lB,EAAE+pD,kBAAmB,IACva,OAAO1qE,GAGTwgB,EAAEpD,UAAUktD,aAAe,WACzB,IAAI9iE,EAAIxQ,KAAKE,OACTuQ,EAAID,EAAEnR,MAAM6iD,WACZ14B,EAAIhZ,EAAEnR,MAAMiK,QAAQjK,MAAM+iD,WAG9B,UAFOpiD,KAAKmzE,cAER3iE,EAAElH,QAAQqqE,aAAc,CAC1B,IAAKljE,EAAG,CAEN,IAAImZ,GADJJ,EAAIhZ,EAAElH,QAAQm6C,QAAUjzC,EAAEnR,MAAMiK,QAAQm6C,QAC9BjzC,EAAEojE,cACZpqD,EAAIA,EAAEzoB,OAGR0P,EAAID,EAAEojE,aACNpjE,EAAEojE,eACFpjE,EAAEojE,eAAiBpqD,IAAMhZ,EAAEojE,aAAe,QACrCnjE,IAAMmZ,EAAIpZ,EAAE7M,OAAQ8M,EAAID,EAAE4/D,WAEjCpwE,KAAKowE,WAAavuE,EAAE7B,KAAKsJ,QAAQ8mE,WAAY3/D,GAC7CzQ,KAAK2D,MAAQ9B,EAAE7B,KAAKsJ,QAAQ3F,MAAOimB,IAGrCJ,EAAEpD,UAAUotD,kBAAoB,SAAUhjE,EAAGC,EAAG+Y,GAK9C,OAJAA,EAAEvL,MAAM,KAAKqgC,QAAO,SAAU9tC,EAAGmZ,EAAGH,EAAGI,GAErC,OADApZ,EAAEmZ,GAAKC,EAAE7oB,OAAS,IAAMyoB,EAAI/Y,EAAIqc,EAAEtc,EAAEmZ,IAAI,GAAMnZ,EAAEmZ,GAAK,GAC9CnZ,EAAEmZ,KACRnZ,GACIA,GAGTgZ,EAAEpD,UAAU6nD,iBAAmB,SAAUz9D,GACvC,IAAImZ,EAAI3pB,KAAKE,OACTuQ,EAAIkZ,EAAEokD,eACNvkD,EAAI3nB,EAAE4O,EAAEojE,cAAe,IACvBjqD,EAAInZ,EAAEqjE,aAAe,GACrBzpD,EAAI5Z,EAAEsjE,aAAe,GAOzB,OANApqD,EAAEtqB,MAAM6iD,aAAe1xC,EAAImZ,EAAEtqB,MAAM+B,QAAQyvE,iBAAiBrgE,KAC3DmZ,EAAE4pD,eAAiB,CAAC,MAAMvtE,SAAQ,SAAU2jB,GAC3CA,EAAI,UAAYA,GACZC,GAAKS,KAAG7Z,EAAIA,EAAEzL,QAAQs5B,OAAO1U,EAAI,IAAK,KAAMC,EAAID,EAAI,IAAMU,IAC9D7Z,EAAIA,EAAEzL,QAAQs5B,OAAO1U,EAAI,IAAK,KAAMA,EAAI,MAAQH,EAAI,SAE/C+C,EAAE/b,EAAG,CACV5O,MAAO5B,KACPE,OAAQF,KAAKE,QACZypB,EAAEtqB,QAGPmqB,EAAEpD,UAAU1c,OAAS,SAAU8G,EAAGC,EAAG+Y,EAAGI,GACtC,SAASD,IACPU,EAAEqnD,aAAalhE,GACf,IAAImZ,EAAIG,GAAKO,EAAE2pD,gBACfrqD,EAAI,OAASU,EAAEtoB,GAAK4nB,EAAIA,EACxBG,GAAKH,IAAMU,EAAE5nB,QAAUqnB,EAAE5jB,iBAAkBmkB,EAAE2pD,iBAC7ClnD,EAAEtc,GAAG,KAAQsZ,GAAKA,EAAEpnB,SAAW8N,GAAKA,EAAEzM,aAAU,IAAuByM,EAAEzM,OAAOwrC,SAAWllB,EAAE5nB,QAAUqnB,EAAE5jB,WAAYsK,GAAKA,EAAEshE,YAAcznD,EAAE4nD,YAAc5nD,EAAE4nD,UAAY5nD,EAAE4nD,UAAU/rE,WAAYmkB,EAAE4pD,YAAc5pD,EAAE4pD,UAAY5pD,EAAE4pD,UAAU/tE,YAC1O8jB,EAAIK,EAAEpnB,MACN+F,EAAEkrE,qBAAqB7pD,EAAGL,GAC1BI,EAAElnB,KAAK8mB,GAAK8C,EAAE1C,EAAElnB,KAAK8mB,IAAI,IAAO8C,EAAEtc,GAAG,GAAM6Z,EAAE/gB,QAAUzH,EAAE2O,EAAG4Z,EAAElnB,KAAK8mB,IACnEhhB,EAAEu4D,QAAUv4D,EAAE28D,aAAc,GAC3B38D,EAAEmrE,UAAYnrE,EAAEorE,qBAAuB3kE,EAAE+8D,YAAa,GACvD,UAAYpiD,EAAEiqD,aAAe5kE,EAAE6kE,eAAgB,GAC/C7jE,GAAKhB,EAAE1P,OAAOypB,GAGhB,IAKIQ,EALAK,EAAIrqB,KACJgJ,EAAIqhB,EAAEnqB,OACN4pB,EAAIO,EAAE5nB,QACNgN,EAAIzG,EAAE3J,MACN+qB,EAAIphB,EAAEM,QAEVmH,EAAI5O,EAAE4O,GAAG,IACT,IAAOmZ,EAAID,IAAMU,EAAEkoD,eAAe,SAAU,CAC1CjpE,QAASkH,GACRmZ,IAGLH,EAAEpD,UAAU1V,OAAS,SAAUF,EAAGC,GAChCzQ,KAAKE,OAAOq0E,YAAYv0E,KAAKE,OAAOgD,KAAK2b,QAAQ7e,MAAOwQ,EAAGC,IAG7D+Y,EAAEpD,UAAU1iB,OAAS,SAAU8M,EAAGC,GAChC,IAAIkZ,EAAI3pB,KACJwpB,EAAIG,EAAEzpB,OACN0pB,EAAIJ,EAAEnqB,MACVW,KAAKw0E,gBAAkBhkE,EAAI3O,EAAE2O,GAAImZ,EAAEoL,UACnCpL,EAAE4oD,eAAe/hE,EAAI,SAAW,WAAY,CAC1CikE,WAAYhkE,IACX,WACDkZ,EAAEoL,SAAWpL,EAAErgB,QAAQyrB,SAAWvkB,EAClCgZ,EAAElgB,QAAQpG,KAAKsmB,EAAEtmB,KAAK2b,QAAQ8K,IAAMA,EAAErgB,QACtCqgB,EAAEmuC,SAAStnD,GAAK,UAChBC,GAAKmZ,EAAE8qD,oBAAoB1uE,SAAQ,SAAUwK,GAC3C,IAAIC,EAAID,EAAEtQ,OACVsQ,EAAEukB,UAAYvkB,IAAMmZ,IAAMnZ,EAAEukB,SAAWvkB,EAAElH,QAAQyrB,UAAW,EAAItkB,EAAEnH,QAAQpG,KAAKuN,EAAEvN,KAAK2b,QAAQrO,IAAMA,EAAElH,QAASkH,EAAEsnD,SAASluC,EAAE+mD,aAAelgE,EAAEnH,QAAQqrE,oBAAsB,WAAa,IAAKnkE,EAAE+hE,eAAe,0BAG3MvyE,KAAKw0E,iBAGdhrD,EAAEpD,UAAUwuD,YAAc,SAAUpkE,GAClC,IAAImZ,EAAI3pB,KAAKE,OAAOb,MAChBoR,EAAIkZ,EAAE8kD,QACVj+D,EAAIA,EAAIC,EAAEq7B,UAAUt7B,GAAKC,EAAEokE,6BAA6B70E,KAAM2pB,EAAE+hC,UAChEj7C,EAAEqkE,gBAAgBtkE,EAAGxQ,OAGvBwpB,EAAEpD,UAAU+oD,WAAa,WACvB,IAAI3+D,EAAIxQ,KAAKE,OAAOb,MACpBW,KAAKuyE,eAAe,YACpBvyE,KAAKE,OAAOoJ,QAAQqrE,sBAAwBnkE,EAAEmgE,aAAe,IAAI3qE,SAAQ,SAAUwK,GACjFA,EAAEsnD,cAEJtnD,EAAEmgE,YAAcngE,EAAEogE,WAAa,MAGjCpnD,EAAEpD,UAAUosD,aAAe,WACzB,IAAKxyE,KAAK+0E,kBAAmB,CAC3B,IAAIvkE,EAAIxQ,KACJyQ,EAAI8Z,EAAE/Z,EAAEtQ,OAAOoJ,QAAQ1H,MAAO4O,EAAElH,SAASxJ,OAC7C0Q,EAAE1Q,OAAS2Q,EACXwa,EAAExa,GAAG,SAAUkZ,EAAGlZ,GAChBK,EAAE6Y,IAAM5nB,EAAEyO,EAAGC,EAAGkZ,MAElB3pB,KAAK+0E,mBAAoB,IAI7BvrD,EAAEpD,UAAU0xC,SAAW,SAAUtnD,EAAGgZ,GAClC,IAWIyB,EAXAtB,EAAI3pB,KAAKE,OACTmqB,EAAIrqB,KAAK2qC,MACT3hC,EAAI2gB,EAAErgB,QAAQ9F,OAAOgN,GAAK,WAAa,GACvCsZ,EAAI+C,EAAE7qB,YAAY2nB,EAAEvkB,MAAMrB,QAAU4lB,EAAErgB,QAAQvF,OAC9CqmB,EAAIN,IAAK,IAAOA,EAAE3qB,QAClB6qB,EAAIF,GAAKA,EAAEtmB,QAAUsmB,EAAEtmB,OAAOgN,GAAK,WAAa,GAChDM,GAAI,IAAOkZ,EAAE7qB,QACbisB,EAAIprB,KAAK+D,QAAU,GACnB+jB,EAAI6B,EAAEtqB,MACNosB,EAAI3B,GAAKH,EAAEqrD,cACX/jE,EAAI0Y,EAAEsrD,KAEN1qD,EAAIZ,EAAEurD,mBAGV,MAFA1kE,EAAIA,GAAK,MAEGxQ,KAAK2qC,QAAUnhB,GAAKxpB,KAAK+0B,UAAY,WAAavkB,IAAK,IAAOxH,EAAE7J,SAAWqR,IAAMM,GAAKsZ,IAAK,IAAOJ,EAAE7qB,UAAYqR,GAAK4a,EAAE5nB,QAAU4nB,EAAE5nB,OAAOgN,KAAM,IAAO4a,EAAE5nB,OAAOgN,GAAGrR,SAAU,CAIvL,GAHAa,KAAK2qC,MAAQn6B,EACbib,IAAMR,EAAItB,EAAEqrD,cAAch1E,KAAMwQ,IAE5BxQ,KAAKyC,UAAYzC,KAAKg0E,gBAAiB,CAIzC,GAHA3pD,GAAKrqB,KAAKyC,QAAQY,YAAY,oBAAsBgnB,GACpD7Z,GAAKxQ,KAAKyC,QAAQD,SAAS,oBAAsBgO,IAE5CsX,EAAEo6B,WAAY,CACjB,IAAIngD,EAAI4nB,EAAEwrD,aAAan1E,KAAMwQ,GACzBgc,EAAI3qB,EAAEimB,EAAExe,QAAQjK,MAAMkoD,UAAWv+C,EAAEu+C,WACvC59B,EAAErgB,QAAQqrE,qBAAuBlrD,EAAE1nB,EAAE27C,YAAc19C,KAAK8xE,YAAc,IAAI9rE,SAAQ,SAAUwK,GAC1FA,GAAKA,EAAE9C,QAAQ,CACbgwC,QAAS37C,EAAE27C,SACVlxB,MACDxsB,KAAKi0E,WAAaj0E,KAAKi0E,UAAUvmE,QAAQ,CAC3CgwC,QAAS37C,EAAE27C,SACVlxB,IACHxsB,KAAKyC,QAAQiL,QAAQ3L,EAAGyqB,GAG1BvB,GAAKjrB,KAAKyC,QAAQiL,QAAQud,EAAGppB,EAAEimB,EAAExe,QAAQjK,MAAMkoD,UAAWv9B,EAAEu9B,UAAWz9B,EAAEy9B,YACzEh9B,GAAKA,EAAEphB,YAEHqH,GAAKwZ,IACPK,EAAIe,EAAEmkB,QAAU5lB,EAAE4lB,OAClBhlB,GAAKA,EAAE6qD,gBAAkB/qD,IAAME,EAAIA,EAAErkB,WACjC+kB,IAAOV,EAAGA,EAAEf,EAAI,UAAY,QAAQ,CACtC3nB,EAAGopB,EAAEppB,EACLE,EAAGkpB,EAAElpB,IACCsoB,IAAMV,EAAEurD,mBAAqB3qD,EAAIzC,EAAE7gB,SAASsoC,OAAOllB,EAAGY,EAAEppB,EAAGopB,EAAElpB,EAAGkpB,EAAE9nB,MAAO8nB,EAAEzrB,QAAQ4H,IAAIuiB,EAAE0rD,aAAc9qD,EAAE6qD,cAAgB/qD,KAChIvC,EAAEo6B,YAAc33B,GAAK,aAAevqB,KAAK2qC,OAASpgB,EAAErjB,KAAKyiB,EAAEwrD,aAAan1E,KAAMwQ,KAGjF+Z,IAAMA,EAAE/Z,GAAKxQ,KAAKs1E,SAAW,OAAS,UAAW/qD,EAAE7nB,QAAQd,MAAQ5B,KAAMuqB,EAAE/nB,SAASxC,KAAK6yE,gBAAgB,IAG3G7pE,EAAIA,EAAEisE,KACNhqD,GAAKV,EAAIvqB,KAAKyC,SAAW8nB,IAAMA,EAAE4lC,YAAc,UAC/CnnD,GAAKA,EAAEysB,MAAQlL,GAAK,WAAaU,IAAMjrB,KAAKu1E,WAAatkE,IAAM0Y,EAAEsrD,KAAOhkE,EAAI6W,EAAE7gB,SAAShB,OAAOmB,IAAImjB,EAAEihC,cAAev6C,EAAEjJ,OAAOwhB,EAAI,UAAY,QAAQ,CAClJI,EAAG5pB,KAAKw1E,SAASxsE,EAAEysB,QACjBxkB,EAAE/J,KAAK,CACT,MAAS,oCAAsCrF,EAAE7B,KAAKowE,WAAYzmD,EAAEymD,aAAepwE,KAAKiL,UAAY,IAAMjL,KAAKiL,UAAY,IAC3HklD,WAAYllC,EACZ03B,QAAS,IACP1xC,EAAErP,MAAQ5B,KAAM8nB,EAAEo6B,YAAcjxC,EAAE/J,KAAK0iB,EAAE,CAC3CliB,KAAM1H,KAAK2D,OAASgmB,EAAEhmB,MACtB,eAAgBqF,EAAE00C,SACjBjuC,EAAEu6C,qBAAqBhhD,EAAEixB,YAAc,OAAShpB,GAAKA,EAAErP,OAASqP,EAAErP,MAAM4zE,UAAYvkE,EAAEvD,QAAQ,CAC/Fkc,EAAG3Y,EAAErP,MAAM4zE,SAAS,IACnB,KAAMvkE,EAAE9H,MACXsH,EAAEzQ,KAAM,gBAAiB,CACvB2qC,MAAOn6B,MAKbgZ,EAAEpD,UAAUovD,SAAW,SAAUhlE,GAC/B,OAAOxQ,KAAKE,OAAOb,MAAM4H,SAAS2+C,QAAQ4P,OAAOzrC,KAAK4U,MAAM3+B,KAAK8B,OAAS0O,EAAGxQ,KAAKmsE,MAAQ37D,EAAG,EAAIA,EAAG,EAAIA,IAGnGgZ,EAzYL,GA6YGxgB,KAET4jB,EAAE9E,EAAG,kBAAmB,CAACA,EAAE,uBAAwBA,EAAE,mBAAoBA,EAAE,mBAAoBA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,GACzI,IAAItY,EAAInD,EAAEgC,MACNsZ,EAAI/hB,EAAElC,OACN+lB,EAAI7jB,EAAEs3B,KACN/T,EAAIrB,EAAEszB,SACNz8C,EAAImpB,EAAEhkB,KACN+J,EAAIia,EAAE1qB,IACN4pB,EAAIc,EAAEk0B,QACNx1B,EAAIsB,EAAE3hB,OACNkH,EAAIya,EAAE3qB,KACNypB,EAAIkB,EAAE8yB,UACN5yB,EAAIF,EAAEi1B,SACNrvC,EAAIoa,EAAEwX,SACNjZ,EAAIyB,EAAEs1B,WACN1zB,EAAI5B,EAAEjrB,OACNsqB,EAAIW,EAAE21B,KACN51B,EAAIC,EAAE+1B,MA8mBV,OA5mBAxxC,EAAI,WACF,SAASA,EAAEgB,EAAGmZ,GACZ5pB,KAAKy1E,eAAiB,GACtBz1E,KAAK01E,UAAY,GACjB11E,KAAK21E,eAAgB,EACrB31E,KAAK41E,eAAiB,GACtB51E,KAAKX,MAAQoR,EACbzQ,KAAK61E,YAAa,EAClB71E,KAAKsJ,QAAUsgB,EACf5pB,KAAKrB,KAAK8R,EAAGmZ,GA+lBf,OA5lBAna,EAAE2W,UAAU0pD,mBAAqB,SAAUr/D,GACzC,IACID,EADAoZ,EAAI,IAEPnZ,GAAK,IAAIzK,SAAQ,SAAUyK,GAC1BD,EAAIC,EAAEvQ,OACN0pB,EAAEtiB,KAAKkJ,GACPA,EAAEivD,cAAgB71C,EAAEtiB,KAAKkJ,EAAEivD,cAC3BjvD,EAAEslE,eAAiBlsD,EAAIA,EAAEmC,OAAOvb,EAAEslE,eAClCtlE,EAAEulE,iBAAmBnsD,EAAEtiB,KAAKkJ,EAAEulE,oBAEhC/1E,KAAKX,MAAMa,OAAO8F,SAAQ,SAAUwK,IACjC,IAAMoZ,EAAE/K,QAAQrO,GAAKA,EAAEsnD,SAAS,YAAY,GAAMtnD,EAAElH,QAAQqrE,qBAAuBnkE,EAAEwlE,oBAAoB,gBAI9GvmE,EAAE2W,UAAUlgB,QAAU,WACpB,IAAIuK,EAAIzQ,KACRA,KAAK41E,eAAe5vE,SAAQ,SAAUyK,GACpC,OAAOA,OAETzQ,KAAK41E,eAAiB,GACtB5sE,EAAEo0C,aAAe3tC,EAAEwmE,wBAA0BxmE,EAAEwmE,sBAAwBxmE,EAAEwmE,yBAA0BxmE,EAAEymE,yBAA2BzmE,EAAEymE,uBAAyBzmE,EAAEymE,2BAC7JC,cAAc1lE,EAAE89D,gBAChB9kD,EAAEhZ,GAAG,SAAUmZ,EAAGpZ,GAChBC,EAAED,QAAK,MAIXf,EAAE2W,UAAUgwD,KAAO,SAAU3lE,GAC3B,IAAImZ,EAAI5pB,KAAKX,MACTmR,EAAIoZ,EAAEtgB,QAAQjK,MACdmqB,EAAIxpB,KAAKq2E,QACT1sD,EAAI3pB,KAAKs2E,SACTttE,EAAI4gB,EAAEw/C,SACNt/C,EAAIF,EAAEu/C,QACN15D,EAAIma,EAAEq/C,UACN7+C,EAAIR,EAAEs/C,WACNl/C,EAAIhqB,KAAKu2E,YAAc,EACvB9sD,EAAIzpB,KAAKw2E,YAAc,EACvBprD,EAAIta,EAAEN,EAAEyxC,SAAWzxC,EAAEyxC,SAAWzxC,EAAEyxC,QAAQ9iD,QAAUqR,EAAEyxC,QACtDn6B,EAAItX,EAAEimE,QAAUhmE,EAAED,EAAEimE,OAAS,OAC7BxlE,EAAIR,EAAE27D,OACNnhD,EAAIxa,EAAE47D,OACN9hD,EAAIvqB,KAAK02E,gBACb,KAAKnsD,IAAMA,EAAEosD,SAAW1lE,EAAIjI,EAAIiI,EAAIjI,EAAIiI,EAAIjI,EAAIyG,IAAMwB,EAAIjI,EAAIyG,GAAIwb,EAAInB,EAAImB,EAAInB,EAAImB,EAAInB,EAAIM,IAAMa,EAAInB,EAAIM,GAAIpqB,KAAK61E,WAAa9rD,KAAK6sD,KAAK7sD,KAAK4zB,IAAI3zB,EAAI/Y,EAAG,GAAK8Y,KAAK4zB,IAAIl0B,EAAIwB,EAAG,IAAK,GAAKjrB,KAAK61E,YAAY,CACtM,IAAIh0E,EAAI+nB,EAAEitD,aAAa7sD,EAAIhhB,EAAGygB,EAAIK,EAAG,CACnCgtD,iBAAiB,KAElBltD,EAAEwqD,qBAAuBxqD,EAAEmtD,UAAY/2E,KAAKg3E,QAAUh3E,KAAKi3E,QAAUp1E,GAAKimB,GAAKyC,IAAMvqB,KAAK02E,gBAAkBnsD,EAAIX,EAAE3iB,SAAS8tD,KAAK/rD,EAAG8gB,EAAGN,EAAI,EAAI/Z,EAAGka,EAAI,EAAIS,EAAG,GAAGljB,KAAK,CACnK,MAAS,8BACTy7C,OAAQ,IACPv7C,MAAOwiB,EAAEs4B,YAAc33B,EAAErjB,KAAK,CAC/BQ,KAAM8I,EAAE0mE,qBAAuBtkE,EAAE,WAAWywC,WAAW,KAAK15C,SAE9D4gB,GAAKf,IAAMA,EAAIvY,EAAI+Y,EAAGO,EAAErjB,KAAK,CAC3B/D,MAAO4mB,KAAK8gC,IAAIrhC,GAChB3nB,GAAI,EAAI2nB,EAAI,EAAIA,GAAKQ,KAEvBO,GAAKZ,IAAMH,EAAIyB,EAAIxB,EAAGc,EAAErjB,KAAK,CAC3B1H,OAAQuqB,KAAK8gC,IAAIrhC,GACjBznB,GAAI,EAAIynB,EAAI,EAAIA,GAAKC,KAEvB5nB,IAAM0oB,GAAKa,GAAKxB,EAAEutD,IAAI1mE,EAAGD,EAAEyxC,WAI/BxyC,EAAE2W,UAAUgxD,UAAY,SAAU3mE,GAChC,IAAImZ,EAAI5pB,KAAKX,MACbuqB,EAAEytD,YAAc5mE,EAAErL,KAClBwkB,EAAE0tD,aAAc,EAChB1tD,EAAE2sD,WAAav2E,KAAKu2E,WAAa9lE,EAAE27D,OACnCxiD,EAAE4sD,WAAax2E,KAAKw2E,WAAa/lE,EAAE47D,QAGrC58D,EAAE2W,UAAUmxD,KAAO,SAAU9mE,GAC3B,IAAI4Z,EAAIrqB,KACJwQ,EAAIxQ,KAAKX,MACTmqB,EAAIxpB,KAAKw3E,WAEb,GAAIx3E,KAAK02E,gBAAiB,CACxB,IAAI/sD,EAAI3pB,KAAK02E,gBACT1tE,EAAI2gB,EAAEziB,KAAOyiB,EAAEziB,KAAK,KAAOyiB,EAAE9nB,EAC7BioB,EAAIH,EAAEziB,KAAOyiB,EAAEziB,KAAK,KAAOyiB,EAAE5nB,EAC7B0N,EAAIka,EAAEziB,KAAOyiB,EAAEziB,KAAK,SAAWyiB,EAAExmB,MACjCsmB,EAAIE,EAAEziB,KAAOyiB,EAAEziB,KAAK,UAAYyiB,EAAEnqB,OAClCsR,EAAI,CACN2mE,cAAehnE,EACf5P,MAAO,GACPH,MAAO,GACPmB,EAAGmH,EACHjH,EAAG+nB,EACH3mB,MAAOsM,EACPjQ,OAAQiqB,GAEN3B,IAAMtX,EAAEumE,SACR/2E,KAAK61E,YAAcrsD,KAAGhZ,EAAE2yD,KAAKn9D,SAAQ,SAAUwK,GACjD,GAAIA,EAAEgqD,aAAepwC,EAAE5Z,EAAE5L,OAAS4kB,GAAKa,EAAE,CACvCxpB,MAAO,QACPH,MAAO,SACP8P,EAAEgyD,SAAWp3C,EAAEpiB,IAAMoiB,EAAEtB,GAAI,CAC3B,IAAIH,EAAInZ,EAAEuvD,MACNn2C,EAAI,aAAenZ,EAAErL,KAAOoL,EAAEyxD,gBAAkB,EAChDj4C,EAAIxZ,EAAE8zD,SAAS36C,EAAI3gB,EAAI8gB,GAAKF,GAChCD,EAAInZ,EAAE8zD,SAAS36C,EAAI3gB,EAAIyG,EAAIqa,EAAIL,GAAKG,GACpC9Y,EAAEN,EAAEgyD,MAAMl7D,KAAK,CACbu1D,KAAMrsD,EACN5L,IAAKmlB,KAAKnlB,IAAIolB,EAAGL,GACjBtW,IAAK0W,KAAK1W,IAAI2W,EAAGL,KAEnB7B,GAAI,MAEJA,GAAKkC,EAAExZ,EAAG,YAAaM,GAAG,SAAU6Y,GACtCnZ,EAAEk4D,KAAK9+C,EAAED,EAAGH,EAAI,CACd+9B,WAAW,GACT,WAENn8B,EAAE5a,EAAEvN,SAAWjD,KAAK02E,gBAAkB12E,KAAK02E,gBAAgBxwE,WAC3DsjB,GAAKxpB,KAAK03E,cAGZlnE,GAAK4a,EAAE5a,EAAEvN,SAAWgO,EAAET,EAAEnQ,UAAW,CACjC6B,OAAQsO,EAAEmnE,UACRnnE,EAAE8mE,YAAc,GAAKt3E,KAAK61E,WAAYrlE,EAAE6mE,YAAcr3E,KAAK61E,WAAa71E,KAAKw3E,YAAa,EAAIx3E,KAAK01E,UAAY,KAGrHjmE,EAAE2W,UAAUwxD,mBAAqB,SAAUnnE,EAAGmZ,EAAGpZ,GAC/C,IAII6Z,EAJAb,EAAIxpB,KAAKX,MACTsqB,EAAIH,EAAEonD,WAEV,OADApnD,EAAIA,EAAEpoB,QACFuoB,GAAKH,GAAKA,EAAEmmD,oBAA4BhmD,GAE5ClZ,EAAEzK,SAAQ,SAAU2jB,GAClB,IAAIlZ,IAAMkZ,EAAE07C,iBAAmBz7C,IAAM,EAAID,EAAErgB,QAAQuuE,mBAAmBh5D,QAAQ,KAG9E,GAFA8K,EAAIA,EAAEmuD,YAAYtnE,EAAGC,IAEhBA,EAAIK,EAAE6Y,GAAG,IAAOA,EAAEzpB,WAAauQ,GAAKK,EAAEuZ,GAAG,IAAM,CAClD5Z,EAAI4Z,EAAE0tD,MAAQpuD,EAAEouD,MAChB,IAAIvuD,EAAIa,EAAE2tD,KAAOruD,EAAEquD,KACfhvE,GAAK2gB,EAAEzpB,OAAO2xE,OAASloD,EAAEzpB,OAAO2xE,MAAMlvB,SAAWt4B,EAAEnqB,OAAO2xE,OAASxnD,EAAEnqB,OAAO2xE,MAAMlvB,QACtFlyC,EAAI,GAAK,IAAMA,GAAKmZ,EAAInZ,EAAI,IAAM+Y,EAAIA,EAAI,IAAMxgB,EAAIA,EAAIqhB,EAAEnqB,OAAO+C,MAAQ0mB,EAAEzpB,OAAO+C,OAAS,EAAI,GAGjGwN,IAAM4Z,EAAIV,MAELU,IAGT5a,EAAE2W,UAAUyuD,6BAA+B,SAAUpkE,EAAGmZ,GACtD,IAAIpZ,EAAIC,EAAEvQ,OACNspB,EAAIhZ,EAAE3P,MACV2P,EAAIA,EAAE9P,MACN,IAAIipB,EAAIlZ,EAAEzN,UAEV,GAAIwmB,GAAKhZ,EAAG,CACV,IAAI6Z,EAAIE,EAAE9Z,EAAEwnE,QAASxnE,EAAE3O,OACnBkH,EAAIyH,EAAE07D,OAAS,EAEnB,OADA17D,EAAEynE,QAAUvuD,GAAKyB,EAAEzB,EAAE9nB,IAAMupB,EAAEzB,EAAE5nB,KAAOsoB,EAAIV,EAAE9nB,EAAGmH,EAAI2gB,EAAE5nB,GAC9C6nB,EAAI,CACTwiD,OAAQ57D,EAAEwW,IAAMxW,EAAEgkC,IAAMxrC,EACxBqjE,OAAQ7iD,EAAExC,IAAMwC,EAAEgrB,IAAMnqB,GACtB,CACF+hD,OAAQ/hD,EAAIb,EAAEgrB,IACd63B,OAAQrjE,EAAIwH,EAAEgkC,KAIlB,GAAI7qB,GAAKA,EAAE9nB,GAAK8nB,EAAE5nB,EAAG,MAAO,CAC1BqqE,OAAQziD,EAAE9nB,EACVwqE,OAAQ1iD,EAAE5nB,IAId0N,EAAE2W,UAAUkpD,iBAAmB,WAC7B,GAAItvE,KAAKm4E,cAAe,OAAOn4E,KAAKm4E,cACpC,IAAI1nE,EAAIzQ,KAAKX,MAAMgB,UACfupB,EAAIkD,EAAErc,GACVzQ,KAAKm4E,cAAgB,CACnBv3E,KAAMgpB,EAAEhpB,KACRH,IAAKmpB,EAAEnpB,IACPkxD,OAAQ,EACRC,OAAQ,GAEV,IAAIphD,EAAIC,EAAEovC,YAGV,OAFApvC,EAAIA,EAAEqe,aACN,EAAIte,GAAK,EAAIC,IAAMzQ,KAAKm4E,cAAcxmB,OAAS/nC,EAAEzmB,MAAQqN,EAAGxQ,KAAKm4E,cAAcvmB,OAAShoC,EAAEpqB,OAASiR,GAC5FzQ,KAAKm4E,eAGd1oE,EAAE2W,UAAUgyD,eAAiB,SAAU3nE,GACrC,IAAImZ,EAAI,CACN/oB,MAAO,GACPH,MAAO,IAQT,OANAV,KAAKX,MAAM8jE,KAAKn9D,SAAQ,SAAUwK,GAChCoZ,EAAEpZ,EAAE2wD,QAAU,QAAU,SAAS75D,KAAK,CACpCu1D,KAAMrsD,EACN1L,MAAO0L,EAAE8zD,QAAQ7zD,EAAED,EAAEuvD,MAAQ,SAAW,gBAGrCn2C,GAGTna,EAAE2W,UAAUiyD,aAAe,SAAUzuD,EAAGS,EAAG7Z,EAAGgZ,EAAGG,EAAG3gB,GAClD,IAAIyG,EAAI,GACR+Z,KAAOA,IAAMI,GACb,IAAIE,EAAI,CACNsiD,OAAQpjE,EAAIA,EAAEojE,YAAS,EACvBC,OAAQrjE,EAAIA,EAAEqjE,YAAS,EACvBhrE,OAAQsoB,GAEVK,EAAEhqB,KAAM,qBAAsB8pB,GAC9B,IAAIM,EAAIC,IAAMA,EAAEiuD,eAAiB,CAACjuD,GAAK7Z,EAAErI,QAAO,SAAUqI,GACxD,OAAOsZ,EAAE3hB,OAAS2hB,EAAE3hB,OAAOqI,GAAKA,EAAE4rD,YAAczyC,GAAKnZ,EAAE+nE,cAAgBhuD,EAAE/Z,EAAElH,QAAQxF,qBAAqB,IAAO0M,EAAE8nE,kBAE/G7uD,EAAID,IAAMxgB,EAAI4gB,EAAI5pB,KAAK43E,mBAAmBxtD,EAAGT,EAAG3gB,GAcpD,OAbAqhB,EAAIZ,GAAKA,EAAEvpB,OACXupB,IAAME,IAAMU,EAAEg7C,iBAAmBj7C,EAAI5Z,EAAErI,QAAO,SAAUqI,GACtD,OAAOsZ,EAAE3hB,OAAS2hB,EAAE3hB,OAAOqI,GAAKA,EAAE4rD,YAAczyC,GAAKnZ,EAAE+nE,cAAgBhuD,EAAE/Z,EAAElH,QAAQxF,qBAAqB,KAAQ0M,EAAE60D,oBAC9Gr/D,SAAQ,SAAUwK,GACtB,IAAImZ,EAAIlZ,EAAED,EAAEk1D,QAAQ,SAAUl1D,GAC5B,OAAOA,EAAE3O,IAAM4nB,EAAE5nB,IAAM2O,EAAE0gE,UAE3BpgE,EAAE6Y,KAAOnZ,EAAEnR,MAAMm5E,aAAe7uD,EAAInZ,EAAEioE,SAAS9uD,IAAKla,EAAEnI,KAAKqiB,OACvDla,EAAEnI,KAAKmiB,IAIbO,EAAEhqB,KAAM,oBAHR8pB,EAAI,CACF8mD,WAAYnnD,IAGP,CACLmnD,WAAY9mD,EAAE8mD,WACd5B,YAAa3kD,EACbsmD,YAAalhE,IAIjBA,EAAE2W,UAAUsyD,kBAAoB,SAAUjoE,GACxCA,EAAIA,EAAEvD,OAEN,IAAK,IAAI0c,EAAGnZ,IAAMmZ,GAAIA,EAAInZ,EAAE7O,MAAO6O,EAAIA,EAAEyT,WAEzC,OAAO0F,GAGTna,EAAE2W,UAAUuyD,kBAAoB,SAAUloE,GACxCA,EAAIA,EAAEonB,eAAiBpnB,EAAEmoE,UACzB,IAAIhvD,EAAI5pB,KAAKX,MAAM2vE,YACnBhvE,KAAKiwE,eAAgB,GACdrmD,IAAMnZ,GAAKmZ,EAAE0uD,gBAAkBt4E,KAAKkvE,QAAQz+D,EAAG,uBAAyBzQ,KAAKkvE,QAAQz+D,EAAG,qBAAuBmZ,EAAE3mB,QAAUjD,KAAKkvE,QAAQz+D,EAAG,uBAAwBmZ,EAAEulD,cAG9K1/D,EAAE2W,UAAU8oD,QAAU,SAAUz+D,EAAGmZ,GACjC,IAAK,IAAIpZ,EAAGC,GAAI,CACd,GAAID,EAAIzO,EAAE0O,EAAG,SAAU,CACrB,IAAK,IAAMD,EAAEqO,QAAQ+K,GAAI,OAAO,EAChC,IAAK,IAAMpZ,EAAEqO,QAAQ,wBAAyB,OAAO,EAGvDpO,EAAIA,EAAE8uC,gBAIV9vC,EAAE2W,UAAUznB,KAAO,SAAU8R,EAAGmZ,GAC9B5pB,KAAKsJ,QAAUsgB,EACf5pB,KAAKX,MAAQoR,EACbzQ,KAAK21E,iBAAmB/rD,EAAEvqB,MAAMS,SAAW8pB,EAAEvqB,MAAMS,OAAOwC,OAC1DtC,KAAK01E,UAAY,GACjB11E,KAAKy1E,eAAiB,GACtB3tD,IAAMrX,EAAErP,QAAU,IAAI0mB,EAAErX,EAAGmZ,EAAExoB,SAAUpB,KAAK64E,gBAAkBtuD,EAAEX,EAAExoB,QAAQy3E,iBAAiB,IAC3F74E,KAAK84E,gBAGPrpE,EAAE2W,UAAU0lB,UAAY,SAAUr7B,EAAGzH,GACnC,IAAIwH,EAAIC,EAAEsoE,QACNvvD,EAAIhZ,EAAIA,EAAEzP,OAASyP,EAAEwK,KAAK,GAAKuP,EAAE/Z,EAAEwoE,eAAgBvoE,EAAEuoE,gBAAgB,GAAKvoE,EAM9E,OALAzH,IAAMA,EAAIhJ,KAAKsvE,oBACf9+D,EAAIgZ,EAAEyvD,MAAQjwE,EAAEpI,KAChB4oB,EAAIA,EAAE0vD,MAAQlwE,EAAEvI,IAChB+P,GAAKxH,EAAE2oD,OACPnoC,GAAKxgB,EAAE4oD,OACAhoC,EAAEnZ,EAAG,CACV27D,OAAQriD,KAAKw2B,MAAM/vC,GACnB67D,OAAQtiD,KAAKw2B,MAAM/2B,MAIvB/Z,EAAE2W,UAAU+yD,iBAAmB,SAAU1oE,GACvC,IAAIzH,EAAIhJ,KAAKX,MACTmR,EAAIxH,EAAE4nE,WACVngE,EAAIzQ,KAAK8rC,UAAUr7B,GACnB,IAAI+Y,EAAIxgB,EAAEogE,SACNz/C,EAAI3gB,EAAEmgE,QACVngE,EAAEsuE,cAAgB9mE,GAAKxQ,KAAKkvE,QAAQz+D,EAAEvD,OAAQ,uBAAyB8c,EAAExZ,EAAEtQ,OAAQ,QAAS0pB,EAAEnZ,EAAG,CAC/F7O,MAAO4O,KACJxH,EAAE4nE,YAAcpgE,EAAE+hE,eAAe,QAAS9hE,KAAOmZ,EAAEnZ,EAAGzQ,KAAKo4E,eAAe3nE,IAAKzH,EAAE6tE,aAAapmE,EAAE27D,OAAS5iD,EAAG/Y,EAAE47D,OAAS1iD,EAAG,CAC7HmtD,iBAAiB,KACb9sD,EAAEhhB,EAAG,QAASyH,MAGtBhB,EAAE2W,UAAUgzD,qBAAuB,SAAU3oE,GAC3C,IAAImZ,EAAI,IAAiC,GAAzBnZ,EAAE4oE,SAAW5oE,EAAEonD,SAC/BpnD,EAAIzQ,KAAK8rC,UAAUr7B,GACfzH,EAAEqzC,WAAa,IAAM5rC,EAAEonD,QAAQ73D,KAAKs5E,qBAAqB7oE,SACzD,IAAuBA,EAAEonD,QAAUjuC,KAAG5pB,KAAKu5E,WAAW9oE,GAAImZ,GAAKnZ,EAAExH,gBAAkBwH,EAAExH,iBAAkBjJ,KAAKo3E,UAAU3mE,KAG5HhB,EAAE2W,UAAUozD,sBAAwB,SAAU/oE,GAC5C,IAAImZ,EAAImB,EAAER,EAAE9a,EAAEgqE,iBAAkB,IAC5BjpE,EAAIxQ,KAAKX,MAAM+B,QACnBoP,GAAKA,EAAEy+D,wBAA0BjvE,KAAKkvE,QAAQz+D,EAAEonB,cAAe,kCAAoCpnB,EAAIzQ,KAAK8rC,UAAUr7B,GAAImZ,IAAMnZ,EAAEonB,eAAiBpnB,EAAEmoE,aAAehvD,EAAE6kD,QAAQiL,QAAS9vD,EAAE6kD,QAAQ0J,mBAAgB,GAAS3nE,IAAMA,EAAE0E,UAAYlV,KAAK05E,UAGrPjqE,EAAE2W,UAAUuzD,sBAAwB,SAAUlpE,UACrCzQ,KAAKm4E,eAGd1oE,EAAE2W,UAAUkzD,qBAAuB,SAAU7oE,GAC3C,IAAImZ,EAAI5pB,KAAKX,MACboR,EAAIzQ,KAAK8rC,UAAUr7B,GACnBzQ,KAAK45E,qBACLnpE,EAAExH,iBAAmBwH,EAAEopE,aAAc,IACpC,cAAgBjwD,EAAEytD,aAAer3E,KAAK85E,YAAYrpE,KAAOzQ,KAAKo2E,KAAK3lE,GACpEmZ,EAAEmwD,WAAa/5E,KAAKkvE,QAAQz+D,EAAEvD,OAAQ,wBAA0B0c,EAAEitD,aAAapmE,EAAE27D,OAASxiD,EAAEw/C,SAAU34D,EAAE47D,OAASziD,EAAEu/C,QAAS,CAC1H2N,iBAAiB,MACZ92E,KAAKkvE,QAAQz+D,EAAEvD,OAAQ,yBAA2BlN,KAAK05E,OAAM,EAAI,GAAK15E,KAAK80E,gBAAgBrkE,KAGpGhB,EAAE2W,UAAU4zD,mBAAqB,SAAUvpE,GACzC,IAAImZ,EAAImB,EAAER,EAAE9a,EAAEgqE,iBAAkB,IAChC7vD,GAAKA,EAAE6kD,QAAQ8I,KAAK9mE,IAGtBhB,EAAE2W,UAAU6zD,qBAAuB,SAAUxpE,GACvCzQ,KAAK85E,YAAYrpE,GAAIzQ,KAAKs5E,qBAAqB7oE,GAAQzQ,KAAK22E,MAAMlmE,IAGxEhB,EAAE2W,UAAU8zD,sBAAwB,SAAUzpE,GACxCzQ,KAAK85E,YAAYrpE,GAAIzQ,KAAKo5E,qBAAqB3oE,IAAQzQ,KAAKu5E,WAAW9oE,GAAIzQ,KAAK22E,MAAMlmE,GAAG,KAG/FhB,EAAE2W,UAAU+zD,oBAAsB,SAAU1pE,GAC1C,IAAImZ,EAAI5pB,KAAKX,MACTmR,EAAIxQ,KAAKm4E,cACb1nE,EAAIzQ,KAAK8rC,UAAUr7B,EAAGD,GACtB,IAAIgZ,EAAII,EAAExoB,SACToP,GAAKgZ,GAAKA,EAAEmmD,qBAAuB/lD,EAAEitD,aAAapmE,EAAE27D,OAASxiD,EAAEw/C,SAAU34D,EAAE47D,OAASziD,EAAEu/C,QAAS,CAC9F2N,iBAAiB,KACb92E,KAAKkvE,QAAQz+D,EAAEvD,OAAQ,uBAAyBlN,KAAK05E,SAG7DjqE,EAAE2W,UAAUg0D,kBAAoB,SAAU3pE,GACxC,IAAImZ,EAAImB,EAAER,EAAE9a,EAAEgqE,iBAAkB,IAChC7vD,GAAKA,EAAE6kD,QAAQ8I,KAAK9mE,IAGtBhB,EAAE2W,UAAUi0D,MAAQ,SAAU5pE,GAC5B,IAAIzH,EAAIhJ,KACJwQ,EAAIxH,EAAE3J,MACNmqB,EAAIxgB,EAAE0sE,UACN/rD,EAAIlZ,EAAEsoE,SAAW,GACjBtpE,EAAIka,EAAE5oB,OACNqpB,EAAIphB,EAAEysE,eACN3rD,EAAI9gB,EAAEsxE,QACN7wD,EAAI,GACJ3Y,EAAI,IAAMrB,IAAMzG,EAAEkmE,QAAQz+D,EAAEvD,OAAQ,uBAAyBsD,EAAEkuC,iBAAmB11C,EAAE2sE,eACpFvqD,EAAI,GACJtD,EAAI9e,EAAE0tE,gBACV,EAAIjnE,EAAIzG,EAAEuxE,WAAY,EAAK,IAAM9qE,GAAKzP,KAAK64E,kBAAoB7vE,EAAEuxE,WAAY,GAC7EzwD,GAAK9gB,EAAEuxE,YAAczpE,IAAK,IAAOL,EAAE4oB,YAAc5oB,EAAExH,iBACnD,GAAGgmB,IAAItS,KAAKgN,GAAG,SAAUnZ,GACvB,OAAOxH,EAAE8iC,UAAUt7B,MAErB,eAAiBC,EAAErL,MAAQ,GAAGY,QAAQ2W,KAAKgN,GAAG,SAAUnZ,EAAGmZ,GACzDH,EAAEG,GAAK,CACLyiD,OAAQ57D,EAAE47D,OACVC,OAAQ77D,EAAE67D,WAEVjiD,EAAEvoB,EAAI,CAAC2nB,EAAE,GAAG4iD,OAAQ5iD,EAAE,IAAMA,EAAE,GAAG4iD,QAAShiD,EAAEroB,EAAI,CAACynB,EAAE,GAAG6iD,OAAQ7iD,EAAE,IAAMA,EAAE,GAAG6iD,QAAS77D,EAAE2yD,KAAKn9D,SAAQ,SAAU2jB,GAC/G,GAAIA,EAAE6wC,YAAa,CACjB,IAAI/pD,EAAID,EAAEgqE,OAAO7wD,EAAEo2C,MAAQ,IAAM,KAC7Bn2C,EAAID,EAAEs4C,gBACNz4C,EAAIG,EAAEhpB,SAASopB,KAAKnlB,IAAI2lB,EAAEZ,EAAErgB,QAAQ1E,IAAK+kB,EAAE45C,SAAU55C,EAAE45C,UACvDv6D,EAAI2gB,EAAEhpB,SAASopB,KAAK1W,IAAIkX,EAAEZ,EAAErgB,QAAQ+J,IAAKsW,EAAE65C,SAAU75C,EAAE65C,UACvDn5C,EAAIN,KAAK1W,IAAImW,EAAGxgB,GACpByH,EAAE7L,IAAMmlB,KAAKnlB,IAAI+kB,EAAE6qB,IAAKzqB,KAAKnlB,IAAI4kB,EAAGxgB,GAAK4gB,GACzCnZ,EAAE4C,IAAM0W,KAAK1W,IAAIsW,EAAE6qB,IAAM7qB,EAAE3C,IAAKqD,EAAIT,OAEpC5gB,EAAEyxE,KAAM,GAAMzxE,EAAE6vE,iBAAmB,IAAMppE,EAAIzP,KAAK80E,gBAAgB9rE,EAAE8iC,UAAUr7B,IAAM+Y,EAAEzoB,SAAWipB,EAAExZ,EAAG,WAAY,CACpHinE,cAAehnE,IACd,WACDqX,IAAM9e,EAAE0tE,gBAAkB5uD,EAAI8B,EAAE,CAC9B1jB,QAAS2mB,EACT8pD,OAAO,GACNnmE,EAAEzN,UACLiG,EAAE0xE,eAAelxD,EAAGG,EAAGF,EAAG3B,EAAGsD,EAAGhB,GAChCphB,EAAEwuE,WAAa1tD,EACf9gB,EAAE0uE,YAAYjuD,EAAG2B,MACfpiB,EAAEyxE,MAAQzxE,EAAEyxE,KAAM,EAAIz6E,KAAK05E,OAAM,EAAI,MAG3CjqE,EAAE2W,UAAUs0D,eAAiB,SAAUjqE,EAAGmZ,EAAGpZ,EAAGgZ,EAAGG,EAAG3gB,GACpDhJ,KAAKq2E,SAAWr2E,KAAK26E,yBAAwB,EAAIlqE,EAAGmZ,EAAGpZ,EAAGgZ,EAAGG,EAAG3gB,GAChEhJ,KAAKs2E,UAAYt2E,KAAK26E,yBAAwB,EAAIlqE,EAAGmZ,EAAGpZ,EAAGgZ,EAAGG,EAAG3gB,IAGnEyG,EAAE2W,UAAUu0D,wBAA0B,SAAUlqE,EAAGmZ,EAAGpZ,EAAGgZ,EAAGG,EAAG3gB,EAAGyG,EAAG2a,GACnE,IAAIC,EAAIrqB,KAAKX,MACTyqB,EAAIrZ,EAAI,IAAM,IACduZ,EAAIvZ,EAAI,IAAM,IACdgZ,EAAI,QAAUO,EACdrX,EAAIlC,EAAI,QAAU,SAClBK,EAAIuZ,EAAE,QAAU5Z,EAAI,OAAS,QAC7B2a,EAAIf,EAAEqhC,SACN5jC,EAAIuC,EAAEmwD,OAAO/pE,EAAI,IAAM,KACvBQ,EAAI,IAAM2Y,EAAE7oB,OACZoqB,EAAIvB,EAAE,GAAGH,GACTgC,GAAKxa,GAAK2Y,EAAE,GAAGH,GAEnBG,EAAI,WACF,iBAAoB/nB,GAAK,GAAKkoB,KAAK8gC,IAAI1/B,EAAIM,KAAOlB,EAAIH,GAAKL,KAAK8gC,IAAI7/B,EAAInpB,GAAKkoB,KAAK8gC,IAAI1/B,EAAIM,IAC1Fe,GAAK1b,EAAIka,GAAKT,EAAIY,EAClBF,EAAIZ,EAAE,QAAU5Z,EAAI,QAAU,WAAa8Z,GAG7C,IAAIU,EACAuB,EACAjC,EAAIH,GAAK,EACTY,EAAIxa,EAAE,GAAGiZ,GACT5nB,GAAKoP,GAAKT,EAAE,GAAGiZ,GAInB,GAHAG,KACApZ,EAAIgc,GAEI1E,EAAEljB,IAAK,CACb4L,EAAIsX,EAAEljB,IACN,IAAI7C,GAAI,OACHyO,EAAIya,EAAInD,EAAEzU,MAAQ7C,EAAIsX,EAAEzU,IAAM4X,EAAGlpB,GAAI,GAE5CA,GAAKipB,GAAK,IAAMA,EAAIvb,EAAEqa,GAAG,IAAK,iBAAoBjoB,IAAMA,GAAK,IAAMA,EAAI4N,EAAEqa,GAAG,KAAMF,KAAOna,EAAEqa,GAAK,CAACkB,EAAGnpB,GACpGupB,IAAMpiB,EAAE8gB,GAAK0C,EAAI1b,EAAG9H,EAAE2J,GAAKsY,GAC3BjiB,EAAIoiB,EAAI,EAAIb,EAAIA,EAChBZ,EAAEhX,GAAKsY,EACPtB,EAAEG,GAAKtZ,EACPgZ,EAAE4B,EAAI3a,EAAI,SAAW,SAAW,QAAUuZ,GAAKO,EAC/Cf,EAAE,YAAcQ,GAAKhhB,EAAI8H,GAAKka,EAAIhiB,EAAImiB,IAGxC1b,EAAE2W,UAAUszD,MAAQ,SAAUjpE,EAAGmZ,GAC/B,IAAIpZ,EAAIxQ,KAAKX,MACTmqB,EAAIhZ,EAAEw+D,YACNrlD,EAAInZ,EAAEogE,WACN5nE,EAAIwH,EAAEmgE,YACNtmD,EAAI7Z,EAAEpP,QACNqO,EAAI4a,GAAKA,EAAEhpB,OAAS2H,EAAI2gB,EAC5BlZ,GAAKhB,GAAKwb,EAAExb,GAAGzJ,SAAQ,SAAUwK,GAC/BA,EAAEtQ,OAAO06E,kBAAe,IAAuBpqE,EAAE1O,QAAU2O,GAAI,MAE7DA,EAAG4Z,GAAK5a,GAAKwb,EAAExb,GAAG1O,SAAWspB,EAAEiG,QAAQ7gB,GAAI4a,EAAEhpB,QAAU2H,EAAIA,EAAEhD,SAAQ,SAAUwK,GACjFA,EAAEsnD,SAAStnD,EAAEm6B,OAAO,GACpBn6B,EAAEtQ,OAAO06E,cAAgBpqE,EAAEtQ,OAAOW,MAAMoiE,WAAazyD,EAAEtQ,OAAOW,MAAMmrE,cAAc,KAAMx7D,GAAIA,EAAEtQ,OAAOQ,MAAMuiE,WAAazyD,EAAEtQ,OAAOQ,MAAMsrE,cAAc,KAAMx7D,OACxJmZ,IAAMA,EAAEmuC,SAASnuC,EAAEghB,OAAO,GAAKn6B,EAAE2yD,KAAKn9D,SAAQ,SAAUwK,GAC3DA,EAAEyyD,WAAat5C,EAAEzpB,OAAOsQ,EAAEgyD,QAAUhyD,GAAKA,EAAEw7D,cAAc,KAAMriD,SAE3DA,GAAGA,EAAEwlD,aACTnmE,GAAKA,EAAEhD,SAAQ,SAAUwK,GACvBA,EAAEsnD,cAEAtuC,GAAGA,EAAE2lD,aACT9kD,GAAKA,EAAElhB,KAAKygB,GACZ5pB,KAAK66E,iBAAmB76E,KAAK66E,eAAiB76E,KAAK66E,kBACnDrqE,EAAE2yD,KAAKn9D,SAAQ,SAAUwK,GACvBA,EAAE+7D,mBAEJvsE,KAAK86E,OAAStqE,EAAEmgE,YAAcngE,EAAEogE,WAAa,OAIjDnhE,EAAE2W,UAAU0uD,gBAAkB,SAAUlrD,EAAG5gB,GACzC,IAAIwH,EAAIxQ,KAAKX,MACTmqB,EAAIhZ,EAAEpP,SAAWoP,EAAEpP,QAAQkI,QAAQnK,QAAUqR,EAAEpP,aAAU,EACzDuoB,IAAIH,GAAIA,EAAEnoB,OACVgpB,EAAIrhB,GAAKwH,EAAEogE,WACXxmD,EAAIC,GAAKA,EAAEnqB,QAAUsQ,EAAEw+D,YAC3BhmE,EAAIhJ,KAAKq4E,aAAahuD,EAAGD,EAAG5Z,EAAEtQ,SAAU0pB,GAAK,cAAgBA,EAAExkB,UAAY4D,GAAKohB,GAAKA,EAAEmuD,aAAev4E,KAAKiwE,eAAgBtmD,EAAGC,GAC9HS,EAAIrhB,EAAE4nE,WACNxmD,EAAIphB,EAAEgmE,YACN,IAAIllD,EAAI9gB,EAAE2nE,YACV3nE,EAAIohB,GAAKA,EAAE2jD,eAAeW,gBAAkBtkD,EAAE2jD,eAAe9vD,MAC7D,IAAI+L,EAAIL,GAAKS,IAAMA,EAAEi7C,gBAErB,GAAIh7C,IAAMA,IAAM7Z,EAAEogE,YAAcpnD,GAAKA,EAAEtU,UAAW,CAUhD,IATC1E,EAAEmgE,aAAe,IAAI3qE,SAAQ,SAAUwK,IACrC,IAAMsZ,EAAEjL,QAAQrO,IAAMA,EAAEsnD,cAEvBtnD,EAAEw+D,cAAgB5kD,GAAGA,EAAEwqD,cAC3B50E,KAAK8vE,mBAAmBhmD,IACvBA,GAAK,IAAI9jB,SAAQ,SAAUwK,GAC1BA,EAAEsnD,SAAS,YAEbtnD,EAAEogE,YAAcpgE,EAAEogE,WAAW2B,eAAe,aACvCloD,EAAEnqB,OAAQ,OACfsQ,EAAEmgE,YAAc7mD,EAChBtZ,EAAEogE,WAAavmD,EACfA,EAAEkoD,eAAe,iBAAa,GAAQ,WACpC/oD,GAAKa,GAAKb,EAAE8G,QAAQtG,EAAIF,EAAIO,EAAGT,WAE5B5gB,GAAKwgB,IAAMA,EAAEtU,WAAayU,EAAIH,EAAEglD,UAAU,CAAC,IAAK5kD,GAAIpZ,EAAEqmE,aAAaltD,EAAE,GAAIA,EAAE,GAAI,CACpFmtD,iBAAiB,KACbttD,EAAE6mD,eAAe,CACrBvuE,MAAO6nB,EAAE,GACTwiD,MAAOxiD,EAAE,MAGX3pB,KAAK66E,iBAAmB76E,KAAK66E,eAAiBtuD,EAAE/b,EAAEnQ,UAAU06E,cAAe,aAAa,SAAUvqE,GAChG,IAAImZ,EAAIoB,EAAEtb,EAAEgqE,iBACR9vD,GAAGA,EAAE8kD,QAAQ0L,oBAAoB3pE,MACnCxQ,KAAK41E,eAAetuE,KAAKtH,KAAK66E,iBAClCrqE,EAAE2yD,KAAKn9D,SAAQ,SAAU2jB,GACvB,IACI3gB,EADAwgB,EAAIe,GAAGZ,EAAEs5C,WAAa,IAAIpb,MAAM,GAEpCr+B,KAAOxgB,EAAIwH,EAAEogE,aAAe5nE,EAAE9I,OAAOypB,EAAE64C,QAAU74C,IAAM3gB,EAAIyH,EAAEqZ,GAAG,SAAUtZ,GACxE,OAAOA,EAAEtQ,QAAUsQ,EAAEtQ,OAAOypB,EAAE64C,QAAU74C,OAE1C3gB,IAAMwgB,EAAIG,EAAEqiD,cAAcpiD,EAAG5gB,GAAK2gB,EAAE4iD,oBAIxC98D,EAAE2W,UAAUsxD,YAAc,SAAUjnE,EAAGmZ,GACrC,IAAIpZ,EAAIxQ,KAAKX,MACbmR,EAAEtQ,OAAO8F,SAAQ,SAAUwjB,GACzB,IAAIG,EAAIlZ,GAAK+Y,EAAEwxD,aACfxxD,EAAEqoD,QAAUroD,EAAE3oB,OAAS2oB,EAAE3oB,MAAM25D,aAAehqD,EAAEumE,WAAavtD,EAAEqoD,MAAM3qE,KAAKyiB,GAAIH,EAAE6rD,cAAgB7rD,EAAE6rD,YAAYnuE,KAAKyiB,GAAIH,EAAE6rD,YAAYvnB,KAAKlkC,EAAIpZ,EAAEsoD,SAAW,OAAQtvC,EAAEyxD,iBAAmBzxD,EAAEyxD,gBAAgB/zE,KAAKyiB,OAEjNnZ,EAAEsoD,SAAS5xD,KAAK0iB,GAAKpZ,EAAE0qE,UAGzBzrE,EAAE2W,UAAU0yD,aAAe,WACzB,IAAIroE,EAAIzQ,KACJ4pB,EAAI5pB,KAAKX,MAAMgB,UACfmQ,EAAIoZ,EAAEmxD,cACVnxD,EAAEuxD,YAAcn7E,KAAKo5E,qBAAqBjwC,KAAKnpC,MAC/C4pB,EAAE4lC,YAAcxvD,KAAKs5E,qBAAqBnwC,KAAKnpC,MAC/C4pB,EAAEylC,QAAUrvD,KAAKm5E,iBAAiBhwC,KAAKnpC,MACvCA,KAAK41E,eAAetuE,KAAKilB,EAAE3C,EAAG,aAAc5pB,KAAK25E,sBAAsBxwC,KAAKnpC,QAC5EA,KAAK41E,eAAetuE,KAAKilB,EAAE3C,EAAG,aAAc5pB,KAAKw5E,sBAAsBrwC,KAAKnpC,QAC5EyP,EAAEwmE,wBAA0BxmE,EAAEwmE,sBAAwB1pD,EAAE/b,EAAG,UAAWxQ,KAAKo6E,kBAAkBjxC,KAAKnpC,QAElG,IAAK,IAAIwpB,EAAIxpB,KAAKX,MAAM+7E,SAAS77B,cAAe/1B,GAAK,SAAWA,EAAE/H,SAAUzhB,KAAK41E,eAAetuE,KAAKilB,EAAE/C,EAAG,UAAU,kBAC3G/Y,EAAE0nE,kBACN3uD,EAAIA,EAAE+1B,cAEXv2C,EAAE6zC,WAAa78C,KAAK41E,eAAetuE,KAAKilB,EAAE3C,EAAG,aAAc5pB,KAAKk6E,sBAAsB/wC,KAAKnpC,MAAO,CAChG4+C,SAAS,KACN5+C,KAAK41E,eAAetuE,KAAKilB,EAAE3C,EAAG,YAAa5pB,KAAKi6E,qBAAqB9wC,KAAKnpC,MAAO,CACpF4+C,SAAS,KACNnvC,EAAEymE,yBAA2BzmE,EAAEymE,uBAAyB3pD,EAAE/b,EAAG,WAAYxQ,KAAKg6E,mBAAmB7wC,KAAKnpC,MAAO,CAChH4+C,SAAS,OAIbnvC,EAAE2W,UAAUwzD,mBAAqB,WAC/B,IAAInpE,EAAIzQ,KAAKX,MACTuqB,EAAI5gB,EAAElC,OAAOyjB,EAAE9a,EAAEgqE,iBAAkB,IACnC7vD,GAAKA,IAAMnZ,GAAGmZ,EAAE6kD,QAAQ+K,sBAAsB,CAChD3hD,cAAepnB,EAAEpQ,YAEnBupB,GAAKA,EAAEytD,cAAgB5nE,EAAEgqE,gBAAkBhpE,EAAExN,QAG/CwM,EAAE2W,UAAUuwD,MAAQ,SAAUlmE,EAAGmZ,GAC/B,IAAIpZ,EAAIxQ,KAAKX,MAGb,GADAW,KAAK45E,qBACD,IAAMnpE,EAAEsoE,QAAQh4E,OAClB,GAAI0P,EAAIzQ,KAAK8rC,UAAUr7B,GAASD,EAAEqmE,aAAapmE,EAAE27D,OAAS57D,EAAE44D,SAAU34D,EAAE47D,OAAS77D,EAAE24D,QAAS,CAC1F2N,iBAAiB,MACXtmE,EAAEupE,SAAU,CAGlB,GAFAnwD,GAAK5pB,KAAK80E,gBAAgBrkE,GAEtB,cAAgBA,EAAErL,KAEpB,IAAIukB,KADJC,EAAI5pB,KAAK01E,WACC,IAAK,GAAK3rD,KAAK6sD,KAAK7sD,KAAK4zB,IAAI/zB,EAAE,GAAGwiD,OAAS37D,EAAE27D,OAAQ,GAAKriD,KAAK4zB,IAAI/zB,EAAE,GAAGyiD,OAAS57D,EAAE47D,OAAQ,IAGvG9hD,EAAEZ,GAAG,IAAO3pB,KAAKq6E,MAAM5pE,QAClBmZ,GAAK5pB,KAAK05E,aACZ,IAAMjpE,EAAEsoE,QAAQh4E,QAAUf,KAAKq6E,MAAM5pE,IAG9ChB,EAAE2W,UAAU0zD,YAAc,SAAUrpE,GAClC,SAAUzQ,KAAKX,MAAMiK,QAAQjK,MAAMujD,oBAAsBnyC,EAAEsoE,SAAW,IAAMtoE,EAAEsoE,QAAQh4E,SAGxF0O,EAAE2W,UAAUmzD,WAAa,SAAU9oE,GACjC,IAAImZ,EAAI5pB,KAAKX,MACTmR,EAAIoZ,EAAEtgB,QAAQjK,MAClBuqB,EAAIA,EAAE8hC,SACN,IAAIliC,EAAIhZ,EAAE6qE,UAAY,GACtB,QAAQ/8D,KAAK7N,EAAErL,QAAUokB,EAAIe,EAAE/Z,EAAE8qE,UAAW9xD,IAC5CxpB,KAAKg3E,MAAQvmE,EAAI,IAAI6N,KAAKkL,GAC1BxpB,KAAKi3E,MAAQzmE,EAAI,IAAI8N,KAAKkL,GAC1BxpB,KAAKq2E,QAAU5lE,IAAMmZ,GAAKpZ,GAAKoZ,EAC/B5pB,KAAKs2E,SAAW9lE,IAAMoZ,GAAKnZ,GAAKmZ,EAChC5pB,KAAKs6E,QAAU7pE,GAAKD,GAGff,EAxmBL,GA4mBGA,KAETmd,EAAE9E,EAAG,oBAAqB,CAACA,EAAE,mBAAoBA,EAAE,mBAAoBA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GAC9G,SAASoD,IACP,IAAItB,EAAI,GAaR,OAXAA,EAAE5O,KAAO,SAAUvK,GACjB,OAAOzQ,KAAKyQ,IAGdA,EAAE2a,GAAG,SAAU3a,GACbmZ,EAAEtiB,KAAK,CACL2xE,MAAOxoE,EAAEwoE,MACTC,MAAOzoE,EAAEyoE,MACThsE,OAAQuD,EAAEvD,YAGP0c,EAGT,SAAShX,EAAEnC,EAAGmZ,EAAGna,EAAG2a,GAClB,IAAIJ,EAAI6C,EAAE7jB,EAAEywE,iBAAmB/vD,KAC/B,UAAYjZ,EAAE8qE,aAAe9qE,EAAE8qE,cAAgB9qE,EAAE+qE,uBAAyBxxD,IAAMA,EAAIA,EAAEykD,QAASrkD,EAAE3Z,GAAIuZ,EAAEJ,GAAG,CACxGxkB,KAAMqK,EACNvC,OAAQuD,EAAEgrE,cACVxyE,eAAgBlH,EAChBg3E,QAAS7tD,OAIb,IAAIH,EAAI/qB,MAAQA,KAAKgzD,WAAa,WAChC,IAAIviD,EAAI,SAAUmZ,EAAG5gB,GASnB,OARAyH,EAAIkW,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUgC,EAAGmZ,GACjCnZ,EAAE4hC,UAAYzoB,IACX,SAAUnZ,EAAGmZ,GAChB,IAAK,IAAI5gB,KAAK4gB,EAAGA,EAAE+C,eAAe3jB,KAAOyH,EAAEzH,GAAK4gB,EAAE5gB,KAG7CyH,EAAEmZ,EAAG5gB,IAGd,OAAO,SAAU4gB,EAAG5gB,GAClB,SAASyG,IACPzP,KAAK6N,YAAc+b,EAGrBnZ,EAAEmZ,EAAG5gB,GACL4gB,EAAExD,UAAY,OAASpd,EAAI2d,OAAOyb,OAAOp5B,IAAMyG,EAAE2W,UAAYpd,EAAEod,UAAW,IAAI3W,IAnBhD,GAsB9Bod,EAAIpd,EAAE3I,OACNylB,EAAI9c,EAAEwsC,IACNl6C,EAAI0N,EAAE6wB,KACNrvB,EAAIxB,EAAEusC,IACN5xB,EAAItC,EAAE02B,SACN50B,EAAI9B,EAAEtnB,IACNiQ,EAAIqX,EAAE04B,WACNx2B,EAAIlC,EAAEk5B,YACN51B,EAAI,GACJta,IAAMG,EAAEyqE,aAEZ,OAAO,SAAUjrE,GACf,SAASzH,IACP,OAAO,OAASyH,GAAKA,EAAEiR,MAAM1hB,KAAM6nB,YAAc7nB,KA2DnD,OAxDA+qB,EAAE/hB,EAAGyH,GAELzH,EAAE2yE,WAAa,WACb,QAASlsE,EAAEotC,WAAa5rC,EAAEyqE,eAAiBzqE,EAAE2qE,iBAG/C5yE,EAAEod,UAAUy1D,cAAgB,SAAUprE,GACpCA,EAAEzQ,KAAKX,MAAMgB,UAAWyQ,EAAI,cAAgB,gBAAiB9Q,KAAK87E,wBAClErrE,EAAEzQ,KAAKX,MAAMgB,UAAWyQ,EAAI,cAAgB,gBAAiB9Q,KAAK+7E,wBAClEtrE,EAAE8b,EAAGzb,EAAI,YAAc,cAAe9Q,KAAKg8E,sBAG7ChzE,EAAEod,UAAUlgB,QAAU,WACpBlG,KAAK67E,cAAc7xD,GACnBvZ,EAAE2V,UAAUlgB,QAAQyW,KAAK3c,OAG3BgJ,EAAEod,UAAUznB,KAAO,SAAUqK,EAAGyG,GAC9BgB,EAAE2V,UAAUznB,KAAKge,KAAK3c,KAAMgJ,EAAGyG,GAC/BzP,KAAKs6E,SAAW1wD,EAAE5gB,EAAE3I,UAAW,CAC7B,mBAAoB,OACpB,eAAgB,UAIpB2I,EAAEod,UAAU01D,uBAAyB,SAAUrrE,GAC7CmC,EAAEnC,EAAG,wBAAyB,cAAc,SAAUA,GACpD2a,EAAE3a,EAAEwrE,WAAa,CACfhD,MAAOxoE,EAAEwoE,MACTC,MAAOzoE,EAAEyoE,MACThsE,OAAQuD,EAAEgrE,mBAKhBzyE,EAAEod,UAAU21D,uBAAyB,SAAUtrE,GAC7CmC,EAAEnC,EAAG,uBAAwB,aAAa,SAAUA,GAClD2a,EAAE3a,EAAEwrE,WAAa,CACfhD,MAAOxoE,EAAEwoE,MACTC,MAAOzoE,EAAEyoE,OAEX9tD,EAAE3a,EAAEwrE,WAAW/uE,SAAWke,EAAE3a,EAAEwrE,WAAW/uE,OAASuD,EAAEgrE,mBAIxDzyE,EAAEod,UAAU41D,oBAAsB,SAAUvrE,GAC1CmC,EAAEnC,EAAG,qBAAsB,YAAY,SAAUA,UACxC2a,EAAE3a,EAAEwrE,eAIfjzE,EAAEod,UAAU0yD,aAAe,WACzBroE,EAAE2V,UAAU0yD,aAAan8D,KAAK3c,OAC7BA,KAAKs6E,SAAWt6E,KAAK64E,kBAAoB74E,KAAK67E,cAAczxD,IAGxDphB,EA7DF,CA8DLA,MAEJ4jB,EAAE9E,EAAG,wBAAyB,CAACA,EAAE,wCAAyCA,EAAE,2BAA4BA,EAAE,mBAAoBA,EAAE,wBAAyBA,EAAE,sCAAuCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,EAAGmY,GAClP,IAAI8B,EAAIpd,EAAE45C,WACN98B,EAAI9c,EAAE+5C,aACNznD,EAAIiH,EAAEsC,OACVmE,EAAIqY,EAAEu0B,UACN,IAAIprC,EAAI6W,EAAEi1B,YACVj1B,EAAIA,EAAEk0B,IACN,IAAI5xB,EAAIxX,EAAEo4C,WACNphC,EAAImB,EAAEyzB,SACN/tC,EAAIsa,EAAEtQ,cACNuP,EAAIe,EAAEvqB,IACN4qB,EAAIL,EAAEq0B,QACNtuC,EAAIia,EAAEu0B,eACN71B,EAAIsB,EAAExqB,KACNusB,EAAI/B,EAAEizB,UACNzzB,EAAIQ,EAAEo1B,SACNl1B,EAAIF,EAAEs1B,MACNx+C,EAAIkpB,EAAE81B,KACN/2B,EAAIiB,EAAEg2B,eACN12B,EAAIU,EAAEm2B,WACN1wC,EAAIua,EAAEq2B,YA+gBV,OA9gBAxuC,EAAImY,EAAEwwB,KAENxwB,EAAI,WACF,SAASvB,EAAEhZ,EAAGC,GACZzQ,KAAKk8E,SAAW,GAChBl8E,KAAKm8E,aAAen8E,KAAKgsD,SAAM,EAC/BhsD,KAAK6wC,SAAU,EACf7wC,KAAK6xE,WAAQ,EACb7xE,KAAK6/C,YAAc7/C,KAAKo8E,eAAiBp8E,KAAKq8E,aAAer8E,KAAKs8E,YAAct8E,KAAKu8E,aAAev8E,KAAKw8E,eAAiBx8E,KAAKy8E,UAAYz8E,KAAK08E,MAAQ18E,KAAK28E,MAAQ38E,KAAK48E,cAAgB58E,KAAK68E,iBAAmB78E,KAAK88E,WAAa98E,KAAK+8E,aAAe,EACxP/8E,KAAKsJ,aAAU,EACftJ,KAAKye,QAAU,EACfze,KAAKg9E,MAAQ,GACbh9E,KAAKi9E,WAAY,EACjBj9E,KAAKk9E,iBAAc,EACnBl9E,KAAKm9E,YAAcn9E,KAAKo9E,eAAiBp9E,KAAKq9E,YAAcr9E,KAAKs9E,YAAct9E,KAAKu9E,aAAe,EACnGv9E,KAAKX,MAAQmR,EACbxQ,KAAKrB,KAAK6R,EAAGC,GAiff,OA9eA+Y,EAAEpD,UAAUznB,KAAO,SAAU6R,EAAGC,GAC9BzQ,KAAKX,MAAQmR,EACbxQ,KAAKooD,WAAW33C,GAChBA,EAAEtR,UAAYa,KAAKygE,SAAU72C,EAAE5pB,KAAKX,MAAO,aAAa,WACtDW,KAAKmB,OAAOq8E,wBACVx9E,KAAKi9E,UAAYj9E,KAAKy9E,cAAgB7zD,EAAE5pB,KAAKX,MAAO,UAAU,WAChEW,KAAKmB,OAAOu8E,qBACZ19E,KAAKmB,OAAOw8E,mBACT39E,KAAKy9E,eAAiBz9E,KAAKy9E,kBAGlCj0D,EAAEpD,UAAUgiC,WAAa,SAAU53C,GACjC,IAAImZ,EAAI9nB,EAAE2O,EAAEiO,QAAS,GACrBze,KAAKsJ,QAAUkH,EACfxQ,KAAKX,MAAM6iD,aAAeliD,KAAK8mD,UAAYt2C,EAAEs2C,UAAW9mD,KAAKinD,gBAAkBh8B,EAAEjrB,KAAK8mD,UAAWt2C,EAAEy2C,kBACnGjnD,KAAK48E,cAAgBpsE,EAAEosE,eAAiB,EACxC58E,KAAK68E,iBAAmBrsE,EAAEqsE,kBAAoB,EAC9C78E,KAAKye,QAAUkL,EACf3pB,KAAK+8E,aAAepzD,EAAI,EACxB3pB,KAAKs9E,YAAcz7E,EAAE2O,EAAE8sE,YAAa,IACpCt9E,KAAKg9E,MAAQ,GACbh9E,KAAKi9E,UAAY,cAAgBzsE,EAAEi2C,SAAWzmD,KAAKX,MAAMqsD,SACzD1rD,KAAKszD,cAAW,GAGlB9pC,EAAEpD,UAAU1c,OAAS,SAAU8G,EAAGC,GAChC,IAAIkZ,EAAI3pB,KAAKX,MACbW,KAAKooD,WAAWn9B,GAAE,EAAIjrB,KAAKsJ,QAASkH,IACpCxQ,KAAKkG,UACLyjB,EAAE2qD,cAAgB3qD,EAAE6iD,YAAa,EACjC3qE,EAAE4O,GAAG,IAAOkZ,EAAE5pB,SACd+sB,EAAE9sB,KAAM,gBAGVwpB,EAAEpD,UAAUw3D,aAAe,SAAUptE,EAAGC,GAGtC,GAFAD,EAAEqtE,YAAYptE,EAAI,cAAgB,YAAY,kCAEzCzQ,KAAKX,MAAM6iD,WAAY,CAC1B,IAAIv4B,EAAI3pB,KAAKsJ,QACTsgB,EAAIpZ,EAAE4hE,WACN5oD,EAAIhZ,EAAEstE,WACN90E,EAAIwH,EAAEutE,aACNtuE,EAAIzP,KAAKinD,gBAAgBtjD,MAC7BgmB,EAAIlZ,EAAIkZ,EAAEm9B,UAAUnjD,MAAQ8L,EAC5B,IAAI4a,EAAI5Z,GAAID,EAAE7M,OAAa8L,EACvB2a,EAAI5Z,EAAElH,SAAWkH,EAAElH,QAAQvF,OAC3B+lB,EAAI,CACNpiB,KAAM2iB,GAERT,GAAKA,EAAEppB,IAAI,CACTkH,KAAMiiB,EACNhmB,MAAOgmB,IAETH,GAAKA,EAAEtiB,KAAK,CACVC,OAAQkjB,IAEVrhB,IAAMohB,GAAKphB,EAAEg1E,WAAal0D,EAAItZ,EAAE2kE,eAAgB1kE,IAAMqZ,EAAE3iB,OAAS2iB,EAAEpiB,KAAO+H,IAAKzG,EAAE9B,KAAK4iB,IAGxFgD,EAAE9sB,KAAM,oBAAqB,CAC3Bgb,KAAMxK,EACN4rD,QAAS3rD,KAIb+Y,EAAEpD,UAAUu3D,cAAgB,WAC1B39E,KAAKk8E,SAASl2E,QAAQhG,KAAKi+E,aAAcj+E,MACzCA,KAAKX,MAAM6+E,YAAcl+E,KAAKw9E,sBAGhCh0D,EAAEpD,UAAU63D,aAAe,SAAUztE,GACnC,IAAImZ,EAAI3pB,KACJyQ,EAAIzQ,KAAKsJ,QACTsgB,EAAInZ,EAAE22C,cACN59B,GAAK/Y,EAAE0tE,IACPn1E,EAAIwH,EAAE4tE,eACV3tE,EAAIzH,EAAE,GACNA,EAAIA,EAAE,GACN,IAAIyG,EAAIe,EAAE6tE,SACNh0D,EAAI7Z,EAAEqtE,YACVxzD,GAAKA,EAAE3nB,UAAYknB,EAAI,CACrB6nC,WAAYjoC,EAAI/Y,EAAIzQ,KAAKs8E,YAAc7rE,EAAI,EAAImZ,EAAI,EACnD8nC,WAAY1oD,GACXwgB,EAAI,WACLsD,EAAEnD,EAAG,oBAAqB,CACxB3O,KAAMxK,KAEP4a,EAAEf,EAAEqnC,YAAcrnC,EAAE3c,QAAQkc,OAAG,EAAQJ,IAAMa,EAAEnjB,KAAK0iB,GAAIJ,MAC3D/Z,IAAMA,EAAE5N,EAAI4O,EAAGhB,EAAE1N,EAAIiH,IAGvBwgB,EAAEpD,UAAUisD,YAAc,SAAU7hE,GAClC,IAAImZ,EAAInZ,EAAE6tE,SACV,CAAC,aAAc,aAAc,eAAgB,eAAer4E,SAAQ,SAAU2jB,GAC5EnZ,EAAEmZ,KAAOnZ,EAAEmZ,GAAKnZ,EAAEmZ,GAAGzjB,cAEvByjB,GAAK7Y,EAAEN,EAAE6tE,WAGX70D,EAAEpD,UAAUlgB,QAAU,WACpB,SAASsK,EAAEA,GACTxQ,KAAKwQ,KAAOxQ,KAAKwQ,GAAKxQ,KAAKwQ,GAAGtK,WAGhClG,KAAKs+E,cAAct4E,SAAQ,SAAU2jB,GACnC,CAAC,aAAc,eAAe3jB,QAAQwK,EAAGmZ,MAE3C,6CAA6C1L,MAAM,KAAKjY,QAAQwK,EAAGxQ,MACnEA,KAAK6wC,QAAU,MAGjBrnB,EAAEpD,UAAUo3D,mBAAqB,WAC/B,IAAIhtE,EAAIxQ,KAAK6xE,OAAS7xE,KAAK6xE,MAAMnlB,UAC7Bj8C,EAAIzQ,KAAKu+E,YAAcv+E,KAAKu8E,aAC5B3yD,EAAI5pB,KAAKq9E,YAEb,GAAI7sE,EAAG,CACL,IAAIgZ,EAAIhZ,EAAEkhD,WACV1xD,KAAKk8E,SAASl2E,SAAQ,SAAU2jB,GAC9B,IAAI3gB,EAAI2gB,EAAE00D,SAEV,GAAIr1E,EAAG,CACL,IAAIyG,EAAI+Z,EAAII,EAAI5gB,EAAEjH,GAAK/B,KAAKw+E,cAAgB,GAAK,EACjDx0D,EAAEhhB,EAAG,CACHpI,KAAM4P,EAAEihD,WAAa9nC,EAAE80D,eAAiBz1E,EAAEnH,EAAI,GAAK,KACnDpB,IAAKgP,EAAI,KACTohC,QAAS7wC,KAAKi9E,WAAaxtE,EAAI+Z,EAAI,GAAK/Z,EAAI+Z,EAAI/Y,EAAI,EAAI,GAAK,YAGhEzQ,QAIPwpB,EAAEpD,UAAUs4D,YAAc,WACxB,IAAIluE,EAAIxQ,KAAKsJ,QACTmH,EAAIzQ,KAAKye,QACTmL,EAAIpZ,EAAEvP,MACNuoB,EAAI,EACRI,EAAE1oB,OAASlB,KAAKiB,QAAUjB,KAAKiB,MAAQjB,KAAKX,MAAM4H,SAAS2Y,MAAMgK,EAAE1oB,KAAMuP,EAAI,EAAGA,EAAI,OAAG,OAAQ,OAAQ,EAAQD,EAAEhP,aAAS,EAAQ,gBAAgB0F,KAAK,CACrJy7C,OAAQ,IACN3iD,KAAKX,MAAM6iD,YAAcliD,KAAKiB,MAAMT,IAAIopB,EAAEtqB,OAAQU,KAAKiB,MAAMmG,IAAIpH,KAAK6xE,QAASjoD,EAAEzmB,OAASnD,KAAKiB,MAAMT,IAAI,CAC3G2C,MAAOnD,KAAKo8E,eAAiB,OACD5yD,GAA1BhZ,EAAIxQ,KAAKiB,MAAMuG,WAAiBhI,OAAQQ,KAAK6/C,YAAcrvC,EAAErN,MAAOnD,KAAKm8E,aAAaj1E,KAAK,CAC7FwqD,WAAYloC,KAEdxpB,KAAKq9E,YAAc7zD,GAGrBA,EAAEpD,UAAUu4D,QAAU,SAAUnuE,GAC9B,IAAImZ,EAAI3pB,KAAKsJ,QACbkH,EAAE4hE,WAAWlrE,KAAK,CAChBhG,KAAMyoB,EAAEi1D,YAAc78E,EAAE4nB,EAAEi1D,YAAapuE,EAAGxQ,KAAKX,OAASsqB,EAAE+8B,eAAe/pC,KAAKnM,MAIlFgZ,EAAEpD,UAAUy4D,WAAa,SAAUruE,GACjC,IAAImZ,EAAI3pB,KAAKX,MACToR,EAAIkZ,EAAE1iB,SACN2iB,EAAI5pB,KAAKsJ,QACTkgB,EAAIxpB,KAAKs9E,YACTt0E,EAAI4gB,EAAEw9B,eAAiB,EACvB33C,EAAIzP,KAAK8mD,UACTz8B,EAAIrqB,KAAKinD,gBACT78B,EAAI,eAAiBR,EAAE68B,OAAS5kD,EAAE+nB,EAAEk1D,aAAc,IAAM,EACxDh1D,GAAKF,EAAEu0D,IACPn0D,GAAKxZ,EAAEtQ,OACPupB,GAAKO,GAAKxZ,EAAEtQ,OAAO6+E,iBAAmBvuE,EAAEtQ,OAASsQ,EACjDsX,EAAI2B,EAAEngB,QACNwH,EAAI9Q,KAAKg/E,uBAAyBl3D,GAAKA,EAAEm3D,aACzC7zD,EAAIxB,EAAEpoB,QACNyP,EAAIT,EAAElH,QAAQ2B,UACduhB,EAAIhc,EAAE4hE,WACVtqD,EAAI0B,EAAIxgB,EAAIohB,GAAKtZ,EAAI,GAAK,GAC1B0b,IAAMhc,EAAEqtE,YAAcptE,EAAE+Y,EAAE,eAAehnB,SAAS,cAAgBinB,EAAErkB,KAAO,4BAA8BoL,EAAE4/D,YAAcn/D,EAAI,IAAMA,EAAI,KAAO+Y,EAAI,sBAAwBxZ,EAAEvN,MAAQ,KAAKiE,KAAK,CAC5Ly7C,OAAQ,IACPv7C,IAAIpH,KAAKk9E,aAAc1sE,EAAE4hE,WAAa5lD,EAAI/b,EAAEvP,KAAK,GAAI4oB,EAAIN,EAAIxgB,GAAKA,EAAGhJ,KAAKszD,UAAY,EAAGloC,GAAIzB,EAAEu4B,YAAc11B,EAAEhsB,IAAIyqB,EAAEza,EAAE4rD,QAAU3sD,EAAI4a,IAAKmC,EAAEtlB,KAAK,CAClJhD,MAAO4lB,EAAI,OAAS,QACpB64B,OAAQ,IACPv7C,IAAIoJ,EAAEqtE,aAAc79E,KAAKszD,WAAatzD,KAAK60D,YAAcpkD,EAAEokD,YAAYlrC,EAAEu4B,WAAa,GAAKzyC,EAAEpL,SAAUmoB,GAAIxsB,KAAKszD,SAAWtzD,KAAK60D,YAAYplD,EAAI,EAAIzP,KAAK48E,cAAepwD,EAAEtlB,KAAK,IAAKlH,KAAKszD,UAAWtzD,KAAKu9E,aAAe3zD,EAAE2zD,cAAgBv9E,KAAK60D,YAAYplD,EAAGma,EAAEu9B,eAAiBnnD,KAAKs9E,YAAcz7E,EAAE+nB,EAAE0zD,YAAavzD,KAAK1W,IAAIrT,KAAKu9E,aAAc,KAAMz1D,EAAI9nB,KAAKs9E,YAAct0E,EAAIohB,GAAKtZ,EAAI,GAAK,GAAIgZ,GAAK0C,EAAEtlB,KAAK,IAAKlH,KAAKs9E,YAAct0E,KAAMygB,EAAEs1D,iBAAiB/+E,KAAMwQ,GAAIxQ,KAAKk/E,eAAiBl/E,KAAKk/E,cAAc1uE,EAAGgc,EAAGpB,IAC7fta,IAAMN,EAAE6tE,UAAYr+E,KAAKg/E,uBAAyBh/E,KAAKg/E,sBAAsBxuE,GAC7ExQ,KAAK49E,aAAaptE,EAAGA,EAAE4rD,UACtBzyC,EAAEu4B,YAAczyC,EAAEtM,OAASqpB,EAAEhsB,IAAI,CAChC2C,OAAQymB,EAAEu1D,WAAan/E,KAAKm9E,aAAexzD,EAAEwmD,WAAWhtE,OAAS2kB,EAAI,OAEvE9nB,KAAK2+E,QAAQnuE,GACbmZ,EAAI6C,EAAEhlB,UACNiJ,EAAIzQ,KAAK60D,aAAe70D,KAAK60D,YAAYzqC,GAAK,EAC9C5Z,EAAE2uE,UAAY3uE,EAAEiuE,eAAiB70D,EAAEu1D,WAAa3uE,EAAE4uE,iBAAmBz1D,EAAExmB,MAAQ2kB,EAC/E9nB,KAAKq8E,aAAetyD,KAAK1W,IAAIrT,KAAKq8E,aAAc7rE,EAAE2uE,WAClDn/E,KAAKo9E,gBAAkB5sE,EAAE2uE,UACzBn/E,KAAK88E,WAAatsE,EAAEssE,WAAa/yD,KAAKw2B,MAAM/vC,EAAE6uE,mBAAqB11D,EAAEnqB,OAAS,IAAMiR,EAAIkZ,EAAEnqB,OAASiR,KAGrG+Y,EAAEpD,UAAUk5D,WAAa,SAAU9uE,GACjC,IAAImZ,EAAI3pB,KAAKsJ,QACTmH,EAAIzQ,KAAKye,QACTmL,EAAI,eAAiBD,EAAE88B,OACvBj9B,EAAIhZ,EAAEssE,WACN9zE,EAAIhJ,KAAK68E,iBACTptE,EAAIzP,KAAK48E,cACTvyD,EAAIT,EAAI/nB,EAAE8nB,EAAEm1D,aAAc,IAAM,EAChC10D,EAAIpqB,KAAKo8E,eACbzyD,EAAIA,EAAE68B,cAAgBxmD,KAAKo9E,eAAiBhzD,EAAIpqB,KAAKq8E,aAAe7rE,EAAE2uE,UACtEv1D,GAAK5pB,KAAK28E,MAAQlsE,EAAIkZ,EAAIS,IAAMpqB,KAAK28E,MAAQlsE,EAAGzQ,KAAKw8E,iBAAmBx8E,KAAK08E,OAASjtE,EAAIzP,KAAKw8E,eAAiBxzE,GAAIhJ,KAAKw8E,eAAiB,GAC1Ix8E,KAAKy8E,UAAYhtE,EAAIzP,KAAK08E,MAAQ1zE,EAClChJ,KAAKw8E,eAAiBzyD,KAAK1W,IAAImW,EAAGxpB,KAAKw8E,gBACvChsE,EAAE4tE,eAAiB,CAACp+E,KAAK28E,MAAO38E,KAAK08E,OACrC9yD,EAAI5pB,KAAK28E,OAAShzD,GAAK3pB,KAAK08E,OAASjtE,EAAI+Z,EAAIxgB,EAAGhJ,KAAKw8E,eAAiBhzD,GACtExpB,KAAK6/C,YAAc7/C,KAAKm9E,aAAepzD,KAAK1W,KAAKuW,EAAI5pB,KAAK28E,MAAQlsE,GAAKD,EAAE6tE,SAAW,EAAIh0D,GAAKV,GAAKlZ,EAAGzQ,KAAK6/C,cAG5Gr2B,EAAEpD,UAAUk4D,YAAc,WACxB,IAAI9tE,EAAI,GAQR,OAPAxQ,KAAKX,MAAMa,OAAO8F,SAAQ,SAAU2jB,GAClC,IAAIlZ,EAAIkZ,GAAKA,EAAErgB,QACfqgB,GAAK9nB,EAAE4O,EAAE8uE,cAAcn0D,EAAE3a,EAAEoyD,gBAAiB,GAAQ,KAAQryD,EAAIA,EAAEub,OAAOpC,EAAE61D,cAAgB,UAAY/uE,EAAE4jE,WAAa1qD,EAAEzmB,KAAOymB,QAEjImD,EAAE9sB,KAAM,mBAAoB,CAC1Bk8E,SAAU1rE,IAELA,GAGTgZ,EAAEpD,UAAUq5D,aAAe,WACzB,IAAIjvE,EAAIxQ,KAAKsJ,QACb,OAAOtJ,KAAKi9E,UAAYzsE,EAAEtM,MAAMk2B,OAAO,GAAK,KAAO5pB,EAAEkvE,SAAW,GAAKlvE,EAAEtM,MAAMk2B,OAAO,GAAK5pB,EAAE+1C,cAAcnsB,OAAO,GAAK5pB,EAAEi2C,OAAOrsB,OAAO,IAGvI5Q,EAAEpD,UAAUu5D,cAAgB,SAAUnvE,EAAGC,GACvC,IAAIkZ,EAAI3pB,KAAKX,MACTuqB,EAAI5pB,KAAKsJ,QACTkgB,EAAIxpB,KAAKy/E,eACbj2D,GAAK,CAAC,eAAgB,eAAgB,eAAgB,gBAAgBxjB,SAAQ,SAAUgD,EAAGyG,GACzFzG,EAAEsV,KAAKkL,KAAO4B,EAAE5a,EAAEf,MAAQka,EAAE1Y,EAAExB,IAAMsa,KAAK1W,IAAIsW,EAAE1Y,EAAExB,IAAKka,EAAExoB,QAAQsO,EAAI,GAAK,EAAI,eAAiB,eAAiB,CAAC,GAAI,GAAI,EAAG,GAAGA,GAAKma,EAAEna,EAAI,EAAI,IAAM,KAAO5N,EAAE+nB,EAAExG,OAAQ,IAAM3S,EAAEhB,IAAMka,EAAE8gD,YAAYh7D,IAAM,SAI5M+Z,EAAEpD,UAAUs3D,mBAAqB,WAC/B,IAAIltE,EAAIxQ,KAAKX,MACToR,EAAI,GACJmZ,EAAI,SAAW5pB,KAAKsJ,QAAQpF,MAChClE,KAAKk8E,SAASl2E,SAAQ,SAAU2jB,GAC9B,IAAIH,EACAxgB,EAAI4gB,EAER,GAAID,EAAEjpB,MAAO,CACXipB,EAAE9oB,MAAMyI,QAAQkyD,WAAaxyD,GAAKA,GAClC2gB,EAAE+7C,SAAWl8C,EAAIC,EAAEzgB,EAAI2gB,EAAE+7C,OAAS/7C,EAAE+7C,OAAOhpD,MAAM,GAAGgI,WAAW,SAAUlU,GACvE,OAAO+Z,EAAE/Z,EAAE27D,WAEbnjE,EAAIhJ,KAAK48E,cAAgBjzD,EAAEyoD,WAAW5qE,UAAUhI,OAASQ,KAAK68E,iBAC9D,IAAIptE,EAAIka,EAAEjpB,MAAMD,IAAM+P,EAAE24D,QACxBx/C,EAAEyyC,SAAW5yC,EAAIA,EAAIA,EAAE2iD,MAAQxiD,EAAEjpB,MAAMlB,OAAQgqB,GAAK/Z,EAAI,GAAKzG,GAAKwgB,EAAI/Z,EAAIka,EAAEjpB,MAAMlB,OAClFiR,EAAEnJ,KAAK,CACL4F,OAAQsc,EACRiM,KAAMzsB,EACNgS,KAAM2O,OAGT3pB,MACHoqB,EAAE3Z,EAAGD,EAAE04D,YAAYljE,SAAQ,SAAU2jB,GACnCA,EAAE3O,KAAKojE,gBAAkBz0D,EAAE6qB,MAAQ7qB,EAAE3O,KAAKojE,eAAe,GAAK5tE,EAAE24D,QAAU34D,EAAEgyC,QAAQ,GAAK74B,EAAE6qB,SAI/FhrB,EAAEpD,UAAUq6C,OAAS,WACnB,IAAIjwD,EAAIxQ,KAAKX,MACToR,EAAID,EAAEvJ,SACN2iB,EAAI5pB,KAAKsJ,QACTkgB,EAAIxpB,KAAKye,QACTzV,EAAIhJ,KAAKs+E,cACT7uE,EAAIzP,KAAK6xE,MACTznD,EAAIpqB,KAAKgsD,IACbhsD,KAAK28E,MAAQnzD,EACbxpB,KAAK08E,MAAQ18E,KAAK+8E,aAClB/8E,KAAKy8E,UAAYz8E,KAAK6/C,YAAc,EACpC7/C,KAAKm9E,YAAcrzD,EAAEF,EAAEzmB,MAAOqN,EAAE2/D,WAAWhtE,MAAQqmB,GACnD,IAAIQ,EAAIxZ,EAAE2/D,WAAWhtE,MAAQ,EAAIqmB,EAAII,EAAE/nB,GACtC,EAAI,CAAC,KAAM,MAAMgd,QAAQ7e,KAAKy/E,eAAe7gE,UAAU,EAAG,MAAQoL,GAAK,GACxEhqB,KAAKo8E,eAAiBp8E,KAAKm9E,aAAenzD,EAC1Cva,IAAMzP,KAAK6xE,MAAQpiE,EAAIgB,EAAE+Y,EAAE,UAAUhnB,SAASonB,EAAE3e,WAAa,IAAI/D,KAAK,CACpEy7C,OAAQ,IACPv7C,MAAOpH,KAAKm8E,aAAe1rE,EAAE+Y,IAAItiB,KAAK,CACvCy7C,OAAQ,IACPv7C,IAAIqI,GAAIzP,KAAKk9E,YAAczsE,EAAE+Y,IAAIpiB,IAAIpH,KAAKm8E,eAC7Cn8E,KAAK0+E,cACLr0D,EAAErhB,GAAG,SAAUwH,EAAGmZ,GAChB,OAAQnZ,EAAElH,SAAWkH,EAAElH,QAAQs2E,aAAe,IAAMj2D,EAAErgB,SAAWqgB,EAAErgB,QAAQs2E,aAAe,MAE5Fh2D,EAAE4xC,UAAYxyD,EAAE0b,UAChB1kB,KAAKk8E,SAAWlzE,EAChBhJ,KAAK6wC,QAAU7mB,IAAMhhB,EAAEjI,OACvBf,KAAK88E,WAAa98E,KAAKo9E,eAAiBp9E,KAAKq8E,aAAer8E,KAAKw8E,eAAiB,EAClFxzE,EAAEhD,QAAQhG,KAAK6+E,WAAY7+E,MAC3BgJ,EAAEhD,QAAQhG,KAAKs/E,WAAYt/E,MAC3BgJ,GAAKhJ,KAAKm9E,aAAen9E,KAAK6/C,aAAer2B,EAC7C,IAAIC,EAAIzpB,KAAKy8E,UAAYz8E,KAAKw8E,eAAiBx8E,KAAKq9E,YACpD5zD,EAAIzpB,KAAKkgE,eAAez2C,GACxBA,GAAKD,EACLY,IAAMpqB,KAAKgsD,IAAM5hC,EAAI3Z,EAAEskD,OAAOvyD,SAAS,yBAAyB0E,KAAK,CACnE4J,EAAG8Y,EAAEu4B,eACJ/6C,IAAIqI,IACPe,EAAE0xC,YAAc93B,EAAEljB,KAAK,CACrBC,OAAQyiB,EAAEhmB,YACV,eAAgBgmB,EAAEtoB,aAAe,EACjCoG,KAAMkiB,EAAE/pB,iBAAmB,SAC1B0B,OAAOqoB,EAAEroB,QACR,EAAIyH,GAAK,EAAIygB,GAAGW,EAAEA,EAAEqiC,OAAS,UAAY,QAAQriC,EAAE2jC,MAAMpxC,KAAK,GAAI,CACpE9a,EAAG,EACHE,EAAG,EACHoB,MAAO6F,EACPxJ,OAAQiqB,GACPW,EAAE4jC,gBACLv+C,EAAEua,EAAI,OAAS,UACfxZ,EAAE0xC,YAAc,SAAWzyC,EAAEmwC,SAAS,aAAe52C,EAAIygB,EAAI,GAC7DzpB,KAAKs8E,YAActzE,EACnBhJ,KAAKu8E,aAAe9yD,EACpBO,GAAKhqB,KAAKkE,QACVlE,KAAKi9E,WAAaj9E,KAAK29E,gBACvB7wD,EAAE9sB,KAAM,gBAGVwpB,EAAEpD,UAAUliB,MAAQ,SAAUsM,QAC5B,IAAWA,IAAMA,EAAIxQ,KAAKX,MAAM8wE,YAChC,IAAIxmD,EAAI3pB,KAAKX,MACToR,EAAIzQ,KAAKsJ,QACTsgB,EAAIpZ,EAAEzO,EACV,eAAeuc,KAAKte,KAAKy/E,iBAAmB,EAAI91D,EAAE8gD,YAAY,GAAK7gD,GAAKD,EAAE8gD,YAAY,GAAK,eAAensD,KAAKte,KAAKy/E,iBAAmB,EAAI91D,EAAE8gD,YAAY,KAAO7gD,GAAKD,EAAE8gD,YAAY,IACnL7gD,IAAMpZ,EAAEzO,IAAMyO,EAAIya,EAAEza,EAAG,CACrBzO,EAAG6nB,KAELD,EAAE2hD,cAAgBtrE,KAAK6xE,MAAMplB,QAAS,GACtCzsD,KAAK6xE,MAAM3tE,MAAM+mB,EAAExa,EAAG,CACpBtN,MAAOnD,KAAKs8E,YACZ98E,OAAQQ,KAAKu8E,aACbh2B,cAAevmD,KAAKi9E,UAAY,MAAQxsE,EAAE81C,iBACxC,EAAI/1C,IAGVgZ,EAAEpD,UAAU85C,eAAiB,SAAU1vD,GACrC,IAwBIgc,EACAvB,EAzBAtB,EAAI3pB,KACJyQ,EAAIzQ,KAAKX,MACTuqB,EAAInZ,EAAExJ,SACNuiB,EAAIxpB,KAAKsJ,QACTN,EAAIwgB,EAAEznB,EACN0N,EAAI,QAAU+Z,EAAE+8B,cAChBl8B,EAAIrqB,KAAKye,QACT2L,EAAIZ,EAAEq2D,UACN/1D,EAAIN,EAAEm9B,WACN38B,EAAInoB,EAAEioB,EAAEy9B,WAAW,GACnB99B,EAAIK,EAAEg2D,WAAa,GACnBh4D,EAAI9nB,KAAKg9E,MACTlsE,EAAI9Q,KAAKk8E,SACT9wD,EAAI,SAAU5a,GAChB,iBAAoBA,EAAI+Z,EAAErjB,KAAK,CAC7B1H,OAAQgR,IACL+Z,IAAMZ,EAAEmvC,SAAWvuC,EAAErkB,UAAWyjB,EAAEwyD,aAAaruB,QACpDnkC,EAAEwyD,aAAavsB,MAAQjmC,EAAEwyD,aAAavsB,IAAItwD,MAAMwuD,KAAOt9C,EAAI,QAAU6Z,EAAI,cAAgBA,EAAI7Z,GAAK,QAAU,SAE1GS,EAAI,SAAUT,GAGhB,OAFAmZ,EAAEnZ,GAAKoZ,EAAE4rC,OAAO,EAAG,EAAG,IAAM/rC,GAAG+nC,UAAU/nC,EAAI,EAAGA,EAAI,GAAGriB,IAAI4jB,GAC3Dva,EAAEyxC,YAAcv4B,EAAEnZ,GAAGtJ,KAAK,OAAQ,sBAC3ByiB,EAAEnZ,IAKXxH,EAAIyH,EAAE0/D,WAAW3wE,QAAUiQ,GAAKzG,EAAIA,GAAKqhB,EACzC,IAAIW,EAAIhrB,KAAK+/E,IACTx1D,EAAIvqB,KAAK84D,SAsBb,MArBA,eAAiBtvC,EAAEi9B,QAAU,WAAaj9B,EAAE+8B,eAAiB/8B,EAAEk2D,WAAa12E,GAAK,GACjFohB,IAAMphB,EAAI+gB,KAAKnlB,IAAIoE,EAAGohB,IACtBtC,EAAE/mB,OAAS,EACXyP,GAAK,EAAIxH,GAAKwH,EAAIxH,IAAK,IAAO8gB,EAAE3qB,SAAWa,KAAKu+E,WAAa/xD,EAAIzC,KAAK1W,IAAIrK,EAAI,GAAKhJ,KAAKq9E,YAAchzD,EAAG,GAAIrqB,KAAKggF,YAAcn+E,EAAE7B,KAAKggF,YAAa,GAAIhgF,KAAKigF,WAAazvE,EAAGM,EAAE9K,SAAQ,SAAUwK,EAAGmZ,GAClM,IAAIlZ,EAAID,EAAE4tE,eAAe,GACrBx0D,EAAIG,KAAKw2B,MAAM/vC,EAAE4hE,WAAW5qE,UAAUhI,QACtCgqB,EAAI1B,EAAE/mB,SACLyoB,GAAK/Y,EAAIqX,EAAE0B,EAAI,GAAKgD,IAAMvB,GAAKxa,KAAOqX,EAAE0B,EAAI,MAAI1B,EAAExgB,KAAK2jB,GAAKxa,GAAI+Y,KACrEhZ,EAAE0vE,OAAS12D,EAAI,EACfyB,IAAMna,EAAE6Y,EAAI,GAAGu2D,OAAS12D,EAAI,GAC5BG,IAAM7Y,EAAE/P,OAAS,GAAK0P,EAAImZ,EAAI9B,EAAE0B,EAAI,GAAKgD,GAAK5C,GAAK4C,IAAM1E,EAAExgB,KAAKmJ,GAAID,EAAE0vE,OAAS12D,GAC/E/Y,IAAMwa,IAAMA,EAAIxa,MACd8Z,IAAMA,EAAIZ,EAAEmvC,SAAWlvC,EAAEkvC,SAAS,EAAGzuC,EAAG,KAAM,GAAIV,EAAEwyD,aAAaruB,KAAKvjC,IAAKa,EAAEoB,GAAIxB,IAAMhrB,KAAK+/E,IAAM/0D,EAAIpB,EAAEJ,IAAItiB,KAAK,CACnHy7C,OAAQ,IACPv7C,IAAIpH,KAAK6xE,OAAQ7xE,KAAKmgF,GAAKv2D,EAAE2lB,OAAO,WAAY,EAAG,EAAG9lB,EAAGA,GAAGriB,IAAI4jB,GAAI/Z,EAAE,aAAalI,GAAG,SAAS,WAChG4gB,EAAEy2D,QAAQ,EAAGp2D,MACXhqB,KAAKqgF,MAAQz2D,EAAE1oB,KAAK,GAAI,GAAI,IAAIsB,SAAS,iCAAkCiO,EAAEyxC,YAAcp4B,EAAExqB,OAASU,KAAKqgF,MAAM7/E,IAAIspB,EAAExqB,OAAQU,KAAKqgF,MAAMj5E,IAAI4jB,GAAIhrB,KAAKsgF,KAAO12D,EAAE2lB,OAAO,gBAAiB,EAAG,EAAG9lB,EAAGA,GAAGriB,IAAI4jB,GAAI/Z,EAAE,eAAelI,GAAG,SAAS,WAC3O4gB,EAAEy2D,OAAO,EAAGp2D,OACTL,EAAEy2D,OAAO,GAAI5vE,EAAIxH,GAAKgiB,IAAMI,IAAKprB,KAAK+/E,IAAM/0D,EAAE9kB,UAAWlG,KAAKk9E,YAAYh2E,KAAK,CAClFwqD,WAAY,IACV1xD,KAAKu+E,WAAa,GACf/tE,GAGTgZ,EAAEpD,UAAUg6D,OAAS,SAAUz2D,EAAGlZ,GAChC,IAAImZ,EAAI5pB,KACJwpB,EAAIxpB,KAAKX,MACT2J,EAAIhJ,KAAKg9E,MACTvtE,EAAIzG,EAAEjI,OACNspB,EAAIrqB,KAAKu+E,WACTn0D,EAAIpqB,KAAKsJ,QAAQq9C,WACjB78B,EAAI9pB,KAAKqgF,MACTr2D,EAAIhqB,KAAKye,QACTgL,EAAIzpB,KAAKggF,YAAcr2D,EAC3BF,EAAIha,IAAMga,EAAIha,GACd,EAAIga,SAAM,IAAuBhZ,GAAK8b,EAAE9b,EAAG+Y,GAAIxpB,KAAK+/E,IAAI74E,KAAK,CAC3DuqD,WAAYznC,EACZ0nC,WAAYrnC,EAAIrqB,KAAKye,QAAU,EAAIze,KAAKq9E,YACxCltB,WAAY,YACV,CAACnwD,KAAKmgF,GAAIngF,KAAKugF,WAAWv6E,SAAQ,SAAUwK,GAC9CA,EAAEtJ,KAAK,CACL,MAAS,IAAMuiB,EAAI,iCAAmC,oCAEtDK,EAAE5iB,KAAK,CACThG,KAAMuoB,EAAI,IAAMha,IACd,CAACzP,KAAKsgF,KAAMtgF,KAAKwgF,aAAax6E,SAAQ,SAAUwK,GAClDA,EAAEtJ,KAAK,CACLrF,EAAG,GAAK7B,KAAKqgF,MAAM74E,UAAUrE,MAC7B,MAASsmB,IAAMha,EAAI,iCAAmC,mCAEvDzP,MAAOwpB,EAAE04B,aAAeliD,KAAKmgF,GAAGj5E,KAAK,CACtCQ,KAAM,IAAM+hB,EAAIW,EAAEy8B,cAAgBz8B,EAAEw8B,cAClC5mD,KAAKugF,UAAU//E,IAAI,CACrB0B,OAAQ,IAAMunB,EAAI,UAAY,YAC5BzpB,KAAKsgF,KAAKp5E,KAAK,CACjBQ,KAAM+hB,IAAMha,EAAI2a,EAAEy8B,cAAgBz8B,EAAEw8B,cAClC5mD,KAAKwgF,YAAYhgF,IAAI,CACvB0B,OAAQunB,IAAMha,EAAI,UAAY,aAC3BzP,KAAKw+E,cAAgBx1E,EAAEygB,EAAI,GAAKzpB,KAAK+8E,aAAc/8E,KAAKk9E,YAAYxvE,QAAQ,CAC/EgkD,WAAY1xD,KAAKw+E,eACfx+E,KAAKggF,YAAcv2D,EAAGzpB,KAAKw9E,qBAAsB7zD,EAAIkD,EAAEhrB,EAAE4O,EAAG+Y,EAAEviB,SAASwiD,iBAAiB,IAAMj5C,GAAE,WAClGsc,EAAElD,EAAG,cAAe,CAClBo2D,YAAav2D,MAEdE,EAAEte,YAGPme,EAAEpD,UAAU84D,cAAgB,SAAU1uE,EAAGC,EAAGmZ,GAC1C,IAAID,EAAI3pB,KACJwpB,EAAIG,EAAEtqB,MAAM4H,SAASkwD,WACrBnuD,EAAIwH,aAAa0a,EACjBzb,EAAI,sBAAwBzG,EAAI,QAAU,UAAY,UACtDqhB,EAAIV,EAAEtqB,MAAM6iD,WACZ93B,EAAI,SAAU3Z,GAChBkZ,EAAEuyD,SAASl2E,SAAQ,SAAU2jB,GAC3BnZ,IAAMmZ,GAAK,CAACA,GAAGoC,OAAOpC,EAAEmsD,cAAgB,IAAI9vE,SAAQ,SAAUwK,GAC5DA,EAAEsnD,SAASrnD,GAAIzH,WAKpB4gB,EAAI,CAACnZ,EAAGD,EAAEutE,cAAgB,CAACvtE,EAAEqtE,cAAc73E,SAAQ,SAAU4jB,GACxDA,GAAGA,EAAE7gB,GAAG,aAAa,WACvByH,EAAE4rD,SAAWhyC,EAAE,YACf5Z,EAAEsnD,SAAS,SACXtnD,EAAE4rD,SAAW5yC,EAAEhnB,SAASiN,GACxB4a,GAAK5Z,EAAEjQ,IAAImpB,EAAErgB,QAAQ09C,mBACpBj+C,GAAG,YAAY,WAChB4gB,EAAEtqB,MAAM6iD,YAAczxC,EAAEjQ,IAAIyqB,EAAEza,EAAE4rD,QAAUzyC,EAAEm9B,UAAYn9B,EAAEs9B,kBAC1D78B,EAAE,IACFZ,EAAEnmB,YAAYoM,GACde,EAAEsnD,cACD/uD,GAAG,SAAS,SAAU4gB,GACvB,IAAIlZ,EAAI,WACND,EAAEiwE,YAAcjwE,EAAEiwE,aAClBr2D,EAAE5Z,EAAE4rD,QAAU,WAAa,KAG7B5yC,EAAEnmB,YAAYoM,GACdka,EAAI,CACF+2D,aAAc/2D,GAEhBnZ,EAAE+hE,eAAiB/hE,EAAE+hE,eAAe,kBAAmB5oD,EAAGlZ,GAAKqc,EAAEtc,EAAG,kBAAmBmZ,EAAGlZ,UAKhG+Y,EAAEpD,UAAU44D,sBAAwB,SAAUxuE,GAC5CA,EAAE6tE,SAAW5tE,EAAE,QAAS,CACtBrL,KAAM,WACN6F,UAAW,6BACXqM,QAAS9G,EAAEukB,SACX4rD,eAAgBnwE,EAAEukB,UACjB/0B,KAAKsJ,QAAQ49C,kBAAmBlnD,KAAKX,MAAMgB,WAC9CupB,EAAEpZ,EAAE6tE,SAAU,SAAS,SAAU10D,GAC/BmD,EAAEtc,EAAEtQ,QAAUsQ,EAAG,gBAAiB,CAChC8G,QAASqS,EAAEzc,OAAOoK,QAClB0D,KAAMxK,IACL,WACDA,EAAE9M,gBAKD8lB,EA/fL,IAkgBH,gBAAgBlL,KAAKwJ,EAAE/H,WAAa+H,EAAE/H,UAAUC,YAAcvQ,IAAMmD,EAAEmY,EAAE3E,UAAW,gBAAgB,SAAU5V,EAAGmZ,GAC/G,IAAIlZ,EAAIzQ,KACJ4pB,EAAI,WACND,EAAEy0D,gBAAkB5tE,EAAEmM,KAAKlM,EAAGkZ,IAGhCC,IACAnZ,EAAEmwE,cAAgBp3E,WAAWogB,MAGxBmB,KAET6B,EAAE9E,EAAG,gCAAiC,CAACA,EAAE,mBAAoBA,EAAE,0BAA2BA,EAAE,wBAAyBA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,GAC/J,IAIInpB,EAJA6Q,EAAI5J,EAAE27C,eACN55B,EAAIG,EAAE9a,MACNyc,EAAI3B,EAAEu0B,YACNlzB,EAAIrB,EAAEm1B,MAyCV,OAtCA,SAAWr3C,GACT,SAASohB,EAAER,EAAGnZ,GACZ,IAAIhB,EAAImD,EAAE5Q,aAAe,GACrBooB,EAAI3Z,EAAEk0C,eACVl0C,EAAE2V,UAAUy6D,aAAepwE,EAAE2V,UAAUy6D,WAAa/4D,GACpDrX,EAAE2V,UAAUhhB,KAAOwkB,EACnBQ,IAAM3a,EAAEma,GAAKQ,GACbphB,EAAEk0C,YAAYtzB,GAAKnZ,EAGrBzH,EAAEk0C,YAAcztC,EAAEytC,YAElBl0C,EAAE83E,UAAY,SAAUl3D,EAAGnZ,QACzB,IAAWA,IAAMA,EAAI,IACrB,IAAIhB,EAAIma,EAAEtgB,QAAQjK,MAClBoQ,EAAIgB,EAAErL,MAAQqK,EAAErK,MAAQqK,EAAE6yC,mBAAqB,GAC/C,IAAIl4B,EAAIphB,EAAEk0C,YAAYztC,GAMtB,OALAzG,GAAK+hB,EAAE,IAAI,EAAInB,EAAG,CAChBm3D,iBAAkBtxE,IAGpB,mBADAA,EAAI,IAAI2a,GACgBzrB,MAAQ8Q,EAAE9Q,KAAKirB,EAAGnZ,GACnChB,GAGTzG,EAAEg4E,mBAAqB52D,EAEvBphB,EAAEi4E,WAAa,SAAUr3D,EAAGnZ,EAAGhB,EAAG2b,EAAGta,GACnC,IAAIkZ,EAAIpX,EAAE5Q,aAAe,GAMzB,OALAyO,EAAIA,GAAK,GACTuZ,EAAEJ,GAAK2C,EAAEvC,EAAEvZ,GAAIhB,GACf2a,EAAER,EAAGiD,EAAE7jB,EAAEk0C,YAAYzsC,IAAM,aAAgB2a,IAC3CpiB,EAAEk0C,YAAYtzB,GAAGxD,UAAUhhB,KAAOwkB,EAClC9Y,IAAM9H,EAAEk0C,YAAYtzB,GAAGxD,UAAUy6D,WAAah0D,EAAE/E,EAAGhX,IAC5C9H,EAAEk0C,YAAYtzB,IAlCzB,CAoCG7nB,IAAMA,EAAI,KAENA,KAET6qB,EAAE9E,EAAG,sBAAuB,CAACA,EAAE,wCAAyCA,EAAE,qBAAsBA,EAAE,2BAA4BA,EAAE,sBAAuBA,EAAE,mBAAoBA,EAAE,yBAA0BA,EAAE,qBAAsBA,EAAE,0BAA2BA,EAAE,mBAAoBA,EAAE,qCAAsCA,EAAE,iCAAkCA,EAAE,oCAAqCA,EAAE,gBAAiBA,EAAE,qBAAsBA,EAAE,+BAA+B,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,EAAGmY,EAAG8B,EAAGN,EAAGxqB,EAAGkP,EAAGmZ,EAAGR,EAAGnZ,EAAGuZ,EAAGoB,GACrgB,IAAIta,EAAIrB,EAAE/B,QACN+b,EAAIha,EAAE45C,WACNv8B,EAAIrd,EAAE+5C,aACNj/B,EAAIzC,EAAEijC,aACN9/B,EAAIC,EAAEiyC,qBACNt7D,EAAI+Q,EAAE9L,OACNgjB,EAAIlX,EAAEqpC,IACN5xB,EAAIzX,EAAEmqC,YACNvsC,EAAIoC,EAAEspC,IACN1yB,EAAI5W,EAAEopC,IACNryB,EAAI4C,EAAEo4B,eACNl5B,EAAIc,EAAE27B,YACN/8B,EAAIf,EAAE8yB,YACNvqC,EAAIqX,EAAEw0B,SACNnzB,EAAIrB,EAAE9iB,KACNskB,EAAIxB,EAAEi1B,iBACNjyB,EAAIhD,EAAEvP,cACN8Q,EAAIvB,EAAExpB,IACN2sB,EAAInD,EAAEo1B,QACNxzB,EAAI5B,EAAEs1B,eACN5yB,EAAI1C,EAAEw1B,MACN9zB,EAAI1B,EAAE5Z,MACNwc,EAAI5C,EAAEzgB,OACN23E,EAAKl3D,EAAEzpB,KACP+pB,EAAIN,EAAEg0B,UACNmjC,EAAKn3D,EAAE41B,SACPpzB,EAAIxC,EAAEnO,QACNyP,EAAItB,EAAEm2B,SACNn1B,EAAIhB,EAAE0Y,SACNpV,EAAItD,EAAEo2B,SACNz0B,EAAI3B,EAAEq2B,MACNzyB,EAAI5D,EAAEw2B,WACNzzB,EAAI/C,EAAE62B,KACNzyB,EAAIpE,EAAE82B,KACNyvB,EAAKvmD,EAAE+2B,eACPqgC,EAAKp3D,EAAEg3B,YACPqgC,EAAKr3D,EAAEi3B,MACPqgC,EAAKt3D,EAAEo3B,YACPmgC,EAAKv3D,EAAE63B,UAklCX,OAhlCApyC,EAAI,WACF,SAASA,EAAEe,EAAGmZ,EAAGlZ,GACfzQ,KAAKE,OAASF,KAAKo7E,SAAWp7E,KAAKiH,SAAWjH,KAAKyuE,QAAUzuE,KAAKsyE,WAAatyE,KAAKipE,UAAYjpE,KAAKmpE,QAAUnpE,KAAKopE,SAAWppE,KAAKkpE,WAAalpE,KAAK+C,QAAU/C,KAAKsJ,QAAUtJ,KAAK8qD,gBAAkB9qD,KAAKojB,OAASpjB,KAAKmB,OAASnB,KAAKwhF,gBAAkBxhF,KAAKk+E,WAAal+E,KAAKiD,MAAQjD,KAAKo9D,aAAep9D,KAAKK,UAAYL,KAAK4zE,aAAe5zE,KAAKk7E,QAAUl7E,KAAKo/D,WAAap/D,KAAKyG,YAAczG,KAAKw6E,OAASx6E,KAAKoqE,WAAapqE,KAAKmjE,UAAO,EACjbnjE,KAAKyhF,YAAc,GACnBzhF,KAAKU,MAAQV,KAAKa,MAAQb,KAAKyhE,YAAczhE,KAAKyqE,YAAczqE,KAAKmmD,KAAOnmD,KAAK0hF,cAAgB1hF,KAAKmwE,WAAanwE,KAAKwiD,aAAU,EAClIxiD,KAAK2hF,QAAQnxE,EAAGmZ,EAAGlZ,GA2jCrB,OAxjCAhB,EAAEpQ,MAAQ,SAAUmR,EAAGmZ,EAAGlZ,GACxB,OAAO,IAAIhB,EAAEe,EAAGmZ,EAAGlZ,IAGrBhB,EAAE2W,UAAUu7D,QAAU,SAAUnxE,EAAGmZ,EAAGlZ,GACpC6c,EAAE9c,IAAMA,EAAEwT,UAAYhkB,KAAKo7E,SAAW5qE,EAAGxQ,KAAKrB,KAAKgrB,EAAGlZ,IAAMzQ,KAAKrB,KAAK6R,EAAGmZ,IAG3Ela,EAAE2W,UAAUznB,KAAO,SAAU6R,EAAGoZ,GAC9B,IAAIJ,EAAIhZ,EAAExO,aAAe,GACzBsoB,EAAEtqB,KAAM,OAAQ,CACd44B,KAAM/Q,YACL,WACD,IAAI7e,EAAI2iB,EAAEhC,EAAGnZ,GACTf,EAAIzG,EAAE3J,MACVuuB,EAAE5kB,EAAEhH,aAAa,SAAUwO,EAAGmZ,GAC5BqB,EAAExa,KAAOA,EAAEpP,QAAUooB,EAAEG,IAAMgC,EAAEnC,EAAEG,GAAGvoB,eAAY,MAElD4H,EAAE5H,QAAQqgE,YAAcjxD,EAAEnR,OAASmR,EAAEnR,MAAMkqD,WAAa/4C,EAAEpP,QAAQqgE,aAAejxD,EAAEpP,QACnFpB,KAAKyhE,YAAcjxD,EACnBxQ,KAAKojB,OAAS,GACdpjB,KAAKwiD,QAAU,GACfxiD,KAAKw6E,OAAS,CACZpwD,EAAG,GACHxX,EAAG,IAEL5S,KAAKwhF,gBAAkB,GACvBxhF,KAAK2Q,SAAWiZ,EAChB5pB,KAAKk+E,WAAa,EAClBl+E,KAAKsJ,QAAUN,EACfhJ,KAAKmjE,KAAO,GACZnjE,KAAKE,OAAS,GACdF,KAAKmmD,KAAO31C,EAAE21C,MAAQx/B,OAAOgP,KAAKnlB,EAAE21C,MAAMplD,OAAS,IAAI0P,EAAED,EAAE21C,MAAQvzC,EAAEuzC,KACrEnmD,KAAK8qD,gBAAkBr7C,EAAEq7C,iBAAmBvgC,EAC5CvqB,KAAKkiD,WAAazyC,EAAEyyC,WACpBliD,KAAKo0E,mBAAqB3kE,EAAEmyE,SAC5B5hF,KAAKiD,MAAQpB,EAAEd,OACfc,EAAEyF,KAAKtH,MACP4S,EAAEwqC,aACFnyB,EAAEjrB,KAAMyP,GACRzP,KAAKa,MAAQ,GACbb,KAAKU,MAAQ,GACbV,KAAKsyE,WAAatyE,KAAK4zE,aAAe5zE,KAAK0hF,cAAgB,EAC3Dp3D,EAAEtqB,KAAM,aACRA,KAAK6hF,kBAITpyE,EAAE2W,UAAU07D,WAAa,SAAUtxE,GACjC,IAAImZ,EAAI3pB,KAAKsJ,QAAQjK,MACrBsqB,EAAInZ,EAAEpL,MAAQukB,EAAEvkB,MAAQukB,EAAE24B,kBAC1B,IAAI7xC,EAAI0a,EAAExB,GAMV,OALAlZ,GAAKib,EAAE,IAAI,EAAI1rB,KAAM,CACnB+gF,iBAAkBp3D,IAGpB,mBADAA,EAAI,IAAIlZ,GACgB9R,MAAQgrB,EAAEhrB,KAAKqB,KAAMwQ,GACtCmZ,GAGTla,EAAE2W,UAAU27D,cAAgB,WAC1B/hF,KAAKgiF,wBAAwBh8E,SAAQ,SAAUwK,GAC7CA,EAAEk1D,QAAUl1D,EAAEtN,OAASsN,EAAEyxE,oBAAsBzxE,EAAE5G,QAAQ4G,EAAElH,QAAQpG,MAAM,OAI7EuM,EAAE2W,UAAU47D,sBAAwB,WAClC,OAAOhiF,KAAKE,OAAO6rB,SAASpH,MAAK,SAAUnU,EAAGmZ,GAC5C,OAAOnZ,EAAEslE,aAAa/0E,QAAU4oB,EAAEmsD,aAAa/0E,OAAS4oB,EAAEmsD,aAAa/0E,OAASyP,EAAEslE,aAAa/0E,OAAS,MAI5G0O,EAAE2W,UAAU87D,YAAc,SAAU1xE,GAClC,IAAImZ,EAAI3pB,KAAKE,OACbsQ,EAAIA,GAAK,EAET,IAAK,IAAIC,EAAIkZ,EAAE5oB,OAAQyP,EAAIC,IAAKD,EAAGmZ,EAAEnZ,KAAOmZ,EAAEnZ,GAAGvN,MAAQuN,EAAGmZ,EAAEnZ,GAAGnL,KAAOskB,EAAEnZ,GAAG2xE,YAG/E1yE,EAAE2W,UAAUywD,aAAe,SAAUrmE,EAAGmZ,EAAGlZ,QACzC,IAAWA,IAAMA,EAAI,IACrB,IAAImZ,EAAI5pB,KAAK0rD,SACTliC,EAAIxpB,KAAK+C,QACTiG,EAAIhJ,KAAKopE,SACT35D,EAAIzP,KAAKmpE,QACT9+C,EAAIrqB,KAAKoiF,kBACTh4D,EAAI,EACJN,EAAI,EACRrZ,EAAEqmE,iBAAmB92E,KAAKswE,qBAAoDlmD,GAA7BN,EAAI9pB,KAAKswE,oBAA0B/hD,WAAYzE,EAAIA,EAAEnc,WACtG,IAAIqc,EAAIvZ,EAAEvQ,OAUV,GATAspB,EAAI/Y,EAAEqmE,iBAAmBzsD,GAAKb,EAG9BhZ,EAAI,CACF3O,EAHFwoB,EAAI5Z,EAAEi7C,SAAW/hC,EAAInZ,EAInBzO,EAHF4nB,EAAIlZ,EAAEi7C,SAAWl7C,EAAImZ,EAInBktD,cAAc,IAGXpmE,EAAEggE,QAAS,CACd,IAAIhnD,EAAIO,IAAMJ,EAAII,EAAEtpB,MAAQspB,EAAEnpB,QAAU,CACtC2zC,IAAKxrC,EACLge,IAAKy2B,MAEPpzB,EAAI5Z,EAAE4xE,gBAAkB54D,EAAE+qB,IAAMnqB,EAAIrhB,EAAIqhB,IACnCN,KAAK1W,IAAI+W,EAAIphB,EAAGygB,EAAE+qB,MAAQnqB,GAAKN,KAAKnlB,IAAIwlB,EAAIphB,EAAIwgB,EAAErmB,MAAOsmB,EAAE+qB,IAAM/qB,EAAEzC,OAASxW,EAAEqmE,cAAe,GAQpG,OALCpmE,EAAE6xE,SAAW9xE,EAAEqmE,eAAiBjtD,EAAII,IAAMJ,EAAII,EAAEnpB,MAAQmpB,EAAEtpB,QAAU,CACnE8zC,IAAK/kC,EACLuX,IAAKy2B,MACJhtC,EAAIA,EAAE4xE,gBAAkBz4D,EAAE4qB,IAAM7qB,EAAIla,EAAIka,IAAQI,KAAK1W,IAAIyW,EAAIra,EAAGma,EAAE4qB,MAAQ/jC,GAAKsZ,KAAKnlB,IAAIklB,EAAIra,EAAI+Z,EAAEhqB,OAAQoqB,EAAE4qB,IAAM5qB,EAAE5C,OAASxW,EAAEqmE,cAAe,IACjJvsD,EAAEtqB,KAAM,oBAAqBwQ,GACtBA,EAAEqmE,cAGXpnE,EAAE2W,UAAUrmB,OAAS,SAAUyQ,GAC7B8Z,EAAEtqB,KAAM,gBACR,IAAI2pB,EAAI3pB,KAAKo0E,mBAAqBp0E,KAAKmjE,KAAOnjE,KAAKuiF,WAAa,GAC5D9xE,EAAIzQ,KAAKE,OACT0pB,EAAI5pB,KAAKyuE,QACTjlD,EAAIxpB,KAAKmB,OACT6H,EAAIhJ,KAAKyhE,YAAYtgE,OACrBsO,EAAIzP,KAAKiH,SACTojB,EAAI5a,EAAEyF,WACNkV,EAAI,GACJN,EAAI9pB,KAAKwsE,WACTxiD,EAAIhqB,KAAKs0E,cAMb,IALAt0E,KAAKwiF,eAAiBxiF,KAAKwiF,eAAc,GACzC11D,IAAE9sB,KAAKsrE,aAAc96D,EAAQxQ,MAC7BqqB,GAAKrqB,KAAKyiF,mBACVziF,KAAK0iF,eAEAlyE,EAAIC,EAAE1P,OAAQyP,KAAM,CACvB,IAAIiZ,EAAIhZ,EAAED,GAEV,GAAIiZ,EAAEngB,QAAQnH,UAAYsnB,EAAEngB,QAAQq5E,iBAAkB,CACpD,IAAI76D,GAAI,EAER,GAAI2B,EAAE83C,QAAS,CACb,IAAI/0C,GAAI,EACR,QAKN,GAAIA,EAAG,IAAKhc,EAAIC,EAAE1P,OAAQyP,MAAMiZ,EAAIhZ,EAAED,IAAMlH,QAAQnH,WAAasnB,EAAE83C,SAAU,GAC7E9wD,EAAEzK,SAAQ,SAAUwK,GAClBA,EAAE+wD,UAAY,UAAY/wD,EAAElH,QAAQ+qE,YAAc,mBAAsB7jE,EAAEoyE,cAAgBpyE,EAAEoyE,eAAgB54D,GAAI,GAAMhhB,IAAMA,EAAE09C,gBAAkB19C,EAAE41E,eAAiB50D,GAAI,IACvKxZ,EAAEm1D,aAAer7C,EAAE9Z,EAAG,kBAExBwZ,GAAKR,GAAKA,EAAElgB,QAAQnK,UAAYqqB,EAAEi3C,SAAUzgE,KAAKs0E,eAAgB,GACjExsD,GAAK9nB,KAAK6iF,YACVl5D,EAAE3jB,SAAQ,SAAUwK,GAClBA,EAAEi1D,cACFj1D,EAAEy3D,cAEJjoE,KAAK8iF,aACLn5D,EAAE3jB,SAAQ,SAAUwK,GAClBA,EAAE+wD,UAAYz3C,GAAI,MAEpBH,EAAE3jB,SAAQ,SAAUwK,GAClB,IAAImZ,EAAInZ,EAAE5L,IAAM,IAAM4L,EAAE6C,IACxB7C,EAAEuyE,SAAWp5D,IAAMnZ,EAAEuyE,OAASp5D,EAAGS,EAAE9iB,MAAK,WACtCgjB,EAAE9Z,EAAG,mBAAoBoc,EAAEpc,EAAEi4D,UAAWj4D,EAAEk2D,uBACnCl2D,EAAEi4D,eAEV3+C,GAAKhC,IAAMtX,EAAEzQ,YAEhB+pB,GAAK9pB,KAAKgjF,eACV14D,EAAEtqB,KAAM,WACRyQ,EAAEzK,SAAQ,SAAUwK,IACjBsZ,GAAKtZ,EAAE+wD,UAAY/wD,EAAE4rD,SAAW5rD,EAAEzQ,SACnCyQ,EAAEm1D,aAAc,KAElB/7C,GAAKA,EAAE8vD,OAAM,GACbjqE,EAAEupD,OACF1uC,EAAEtqB,KAAM,UACRsqB,EAAEtqB,KAAM,UACRqqB,GAAKrqB,KAAKyiF,kBAAiB,GAC3Br4D,EAAEpkB,SAAQ,SAAUwK,GAClBA,EAAEmM,WAINlN,EAAE2W,UAAUzc,IAAM,SAAU6G,GAC1B,SAASmZ,EAAEA,GACT,OAAOA,EAAExkB,KAAOqL,GAAKmZ,EAAErgB,SAAWqgB,EAAErgB,QAAQnE,KAAOqL,EAGrD,IAAK,IAAIC,EAAIzQ,KAAKE,OAAQ0pB,EAAIs3D,EAAGlhF,KAAKmjE,KAAMx5C,IAAMu3D,EAAGlhF,KAAKE,OAAQypB,GAAIH,EAAI,GAAII,GAAKJ,EAAI/Y,EAAE1P,OAAQyoB,IAAKI,EAAIs3D,EAAGzwE,EAAE+Y,GAAGk8C,QAAU,GAAI/7C,GAEhI,OAAOC,GAGTna,EAAE2W,UAAU68D,QAAU,WACpB,IAAIzyE,EAAIxQ,KACJ2pB,EAAI3pB,KAAKsJ,QACTmH,EAAIkZ,EAAE9oB,MAAQwgF,EAAG13D,EAAE9oB,OAAS,IAChC8oB,EAAIA,EAAEjpB,MAAQ2gF,EAAG13D,EAAEjpB,OAAS,IAC5B4pB,EAAEtqB,KAAM,WACRyQ,EAAEzK,SAAQ,SAAUwK,EAAGmZ,GACrBnZ,EAAEvN,MAAQ0mB,EACVnZ,EAAEmyD,KAAM,KAEVh5C,EAAE3jB,SAAQ,SAAUwK,EAAGmZ,GACrBnZ,EAAEvN,MAAQ0mB,KAEZlZ,EAAEsb,OAAOpC,GAAG3jB,SAAQ,SAAU2jB,GAC5B,IAAI3gB,EAAEwH,EAAGmZ,MAEXW,EAAEtqB,KAAM,iBAGVyP,EAAE2W,UAAUsuD,kBAAoB,WAC9B,OAAO10E,KAAKE,OAAOo+C,QAAO,SAAU9tC,EAAGmZ,GAIrC,OAHAA,EAAEu5D,sBAAsBl9E,SAAQ,SAAU2jB,GACxCoD,EAAEpD,EAAE6qD,gBAAiB7qD,EAAEoL,WAAavkB,EAAElJ,KAAKqiB,MAEtCnZ,IACN,KAGLf,EAAE2W,UAAU+8D,kBAAoB,WAC9B,OAAOnjF,KAAKE,OAAOiI,QAAO,SAAUqI,GAClC,OAAOA,EAAEukB,aAIbtlB,EAAE2W,UAAUqmD,SAAW,SAAUj8D,EAAGmZ,EAAGlZ,GACrCzQ,KAAKojF,iBAAiB,QAAS5yE,GAC/BxQ,KAAKojF,iBAAiB,WAAYz5D,GAClC3pB,KAAKojF,iBAAiB,eAAW,GACjCpjF,KAAK0iF,aAAajyE,IAGpBhB,EAAE2W,UAAUg9D,iBAAmB,SAAU5yE,EAAGmZ,GAC1C,IAAIlZ,EAAIzQ,KACJ4pB,EAAI,UAAYpZ,EAAI,CACtB7M,MAAO,UACPU,SAAUrE,KAAKsJ,QAAQ+5E,QAAU,OAAS,QACxC,CACF1/E,MAAO,WAETimB,EAAI5pB,KAAKsJ,QAAQkH,GAAKmb,GAAG3rB,KAAKkiD,YAAc,CAC1C5iD,MAAOsqB,GACN5pB,KAAKsJ,QAAQkH,GAAImZ,GACpB,IAAIH,EAAIxpB,KAAKwQ,GACbgZ,GAAKG,IAAM3pB,KAAKwQ,GAAKgZ,EAAIA,EAAEtjB,WAC3B0jB,IAAMJ,KAAMA,EAAIxpB,KAAKiH,SAAS/F,KAAK0oB,EAAE1oB,KAAM,EAAG,EAAG0oB,EAAEpoB,SAAS0F,KAAK,CAC/DhD,MAAO0lB,EAAE1lB,MACT,MAAS,cAAgBsM,EACzBmyC,OAAQ/4B,EAAE+4B,QAAU,IACnBv7C,OAASsC,OAAS,SAAUigB,GAC7BlZ,EAAE,CACAxP,MAAO,WACPolD,SAAU,cACVC,QAAS,cACT91C,IAAImZ,IACL3pB,KAAKkiD,YAAc14B,EAAEhpB,IAAIopB,EAAEtqB,OAAQU,KAAKwQ,GAAKgZ,IAGlD/Z,EAAE2W,UAAUs8D,aAAe,SAAUlyE,GACnC,IAAImZ,EAAI,CAAC,EAAG,EAAG,GACXlZ,EAAIzQ,KAAKiH,SACT2iB,EAAI5pB,KAAKmwE,WACb,CAAC,QAAS,WAAY,WAAWnqE,SAAQ,SAAUwK,GACjD,IAII6Z,EAJAb,EAAIxpB,KAAKwQ,GACTxH,EAAIhJ,KAAKsJ,QAAQkH,GACjBf,EAAIzG,EAAEu9C,eAAiB,MAI3B,GAHA/1C,EAAI,UAAYA,EAAI,QAAUf,GAAK,EAAI,EAAI,QAAUA,EAAIka,EAAE,GAAK,EAAI,EAGhEH,EAAG,CACLxpB,KAAKkiD,aAAe73B,EAAIrhB,EAAE1J,OAAS0J,EAAE1J,MAAM+E,UAC3CgmB,EAAI5Z,EAAEokD,YAAYxqC,EAAGb,GAAG/Y,EACxB+Y,EAAEhpB,IAAI,CACJ2C,OAAQ6F,EAAE7F,OAASymB,EAAEzmB,OAAS6F,EAAEo9C,aAAe,IAAM,OAEvD,IAAIh8B,EAAIL,KAAKw2B,MAAM/2B,EAAEhiB,QAAQwB,EAAExH,SAAShC,QACxCgqB,EAAEtlB,MAAM0oB,EAAE,CACR7qB,EAAG,WAAa0N,EAAI4a,EAAI7Z,EAAI6Z,EAC5B7qB,OAAQ4qB,GACPphB,IAAI,EAAI,cACXA,EAAE02E,WAAa,QAAUjwE,EAAIka,EAAE,GAAKI,KAAKkkB,KAAKtkB,EAAE,GAAKS,GAAK,WAAa3a,IAAMka,EAAE,GAAKI,KAAKkkB,KAAKtkB,EAAE,GAAKS,QAEtGpqB,MACH2pB,EAAE,IAAM,SAAW3pB,KAAKsJ,QAAQrI,MAAMslD,eAAiB,SAAW58B,EAAE,IAAM3pB,KAAKsJ,QAAQrI,MAAMmiB,QAC7FuG,EAAE,IAAM,WAAa3pB,KAAKsJ,QAAQg9C,QAAQC,gBAAkB58B,EAAE,IAAM3pB,KAAKsJ,QAAQg9C,QAAQljC,QACzF,IAAIoG,GAAKxpB,KAAKyqE,aAAezqE,KAAKyqE,YAAYtiD,KAAK,OAASwB,EAAExB,KAAK,KACnEnoB,KAAKyqE,YAAc9gD,EACnBW,EAAEtqB,KAAM,sBACPA,KAAKwsE,YAAchjD,IAAMxpB,KAAKwsE,WAAaxsE,KAAKs0E,cAAgB9qD,EAAGxpB,KAAKsrE,aAAev+C,EAAEvc,GAAG,IAAOxQ,KAAKwsE,YAAcxsE,KAAKD,WAG9H0P,EAAE2W,UAAUk9D,aAAe,WACzB,IAAI9yE,EAAIxQ,KAAKsJ,QAAQjK,MACjBsqB,EAAInZ,EAAErN,MACVqN,EAAIA,EAAEhR,OACN,IAAIiR,EAAIzQ,KAAKo7E,SACbjuD,EAAExD,KAAO3pB,KAAKujF,eAAiBpC,EAAG1wE,EAAG,UACrC0c,EAAE3c,KAAOxQ,KAAKwjF,gBAAkBrC,EAAG1wE,EAAG,WACtCzQ,KAAKo/D,WAAar1C,KAAK1W,IAAI,EAAGsW,GAAK3pB,KAAKujF,gBAAkB,KAC1DvjF,KAAKyG,YAAcsjB,KAAK1W,IAAI,EAAGk9D,EAAG//D,EAAGxQ,KAAKo/D,cAAgB,EAAIp/D,KAAKwjF,gBAAkBxjF,KAAKwjF,gBAAkB,OAG9G/zE,EAAE2W,UAAUq8D,iBAAmB,SAAUjyE,GACvC,IAAImZ,EAAI3pB,KAAKo7E,SACb,GAAI5qE,EAAG,KAAOmZ,GAAKA,EAAErqB,OAAQqqB,EAAE85D,cAAgBl4D,EAAE5B,EAAGA,EAAE85D,oBAAqB95D,EAAE85D,aAAc95D,EAAE+5D,iBAAmB55D,EAAE9Z,KAAKimC,YAAYtsB,GAAIA,EAAE+5D,gBAAiB,GAAK/5D,EAAIA,EAAEzF,gBAAgB,KAAOyF,GAAKA,EAAErqB,QACjMwqB,EAAE9Z,KAAKvC,SAASkc,IAAMA,EAAEzF,aAAeyF,EAAE+5D,gBAAiB,EAAI55D,EAAE9Z,KAAK+K,YAAY4O,KAC7E,SAAWw3D,EAAGx3D,EAAG,WAAW,IAAOA,EAAEg6D,kBAAgBh6D,EAAE85D,YAAc,CACvE5yC,QAASlnB,EAAErqB,MAAMuxC,QACjBrxC,OAAQmqB,EAAErqB,MAAME,OAChB8E,SAAUqlB,EAAErqB,MAAMgF,UACjBkM,EAAI,CACLqgC,QAAS,QACTvsC,SAAU,UACTqlB,IAAM3pB,KAAKo7E,WAAa5qE,EAAEhR,OAAS,GAAI+rB,EAAE5B,EAAGnZ,GAAImZ,EAAEk2B,aAAel2B,EAAErqB,MAAMskF,YAAY,UAAW,QAAS,eAC5Gj6D,EAAIA,EAAEzF,cACI4F,EAAE9Z,UAIhBP,EAAE2W,UAAUy9D,aAAe,SAAUrzE,GACnCxQ,KAAKK,UAAU4K,UAAY,yBAA2BuF,GAAK,KAG7Df,EAAE2W,UAAU09D,aAAe,WACzB,IAGI96E,EAHA2gB,EAAI3pB,KAAKsJ,QACTmH,EAAIkZ,EAAEtqB,MACNmqB,EAAI+3D,IAEJ9xE,EAAIzP,KAAKo7E,SACb3rE,IAAMzP,KAAKo7E,SAAW3rE,EAAIgB,EAAE2qE,UAC5B9tD,EAAE7d,KAAOzP,KAAKo7E,SAAW3rE,EAAIqa,EAAEtd,eAAeiD,IAC9CA,GAAKic,EAAE,IAAI,EAAI1rB,MACf,IAAIqqB,EAAI+D,EAAE/C,EAAE5b,EAAG,0BACf6b,EAAEjB,IAAMxoB,EAAEwoB,IAAMxoB,EAAEwoB,GAAGihD,aAAezpE,EAAEwoB,GAAGnkB,UACzCmlB,EAAE5b,EAAG,wBAAyBzP,KAAKiD,OACnCwM,EAAEqL,UAAYsQ,EAAEi/B,UAChB55C,EAAEszE,WAAat0E,EAAEowC,aAAe7/C,KAAKyiF,mBACrCziF,KAAKsjF,eACLj5D,EAAIrqB,KAAKo/D,WACT,IAAIh1C,EAAIpqB,KAAKyG,YAwBb,GAvBA8kB,EAAE9b,EAAG,CACHnL,SAAU,WAEZtE,KAAKkiD,aAAel5C,EAAI4jB,EAAE,CACxBpL,SAAU,WACVld,SAAU,SACVnB,MAAOknB,EAAI,KACX7qB,OAAQ4qB,EAAI,KACZk9B,UAAW,OACXyO,WAAY,SACZpT,OAAQ,EACR,8BAA+B,gBAC/BqhC,WAAY,OACZ,eAAgB,eAChBC,QAAS,QACRxzE,EAAEnR,OAAS,KACdU,KAAKK,UAAYmpB,EAAIwD,EAAE,MAAO,CAC5B7nB,GAAIqkB,GACHxgB,EAAGyG,GACNzP,KAAK23E,QAAUnuD,EAAElqB,MAAM4C,OACvBlC,KAAKiH,SAAW,IAAKwJ,EAAExJ,WAAauJ,EAAIS,EAAE4hD,gBAAgBpiD,EAAExJ,UAAY2iB,GAAGJ,EAAGa,EAAGD,OAAG,EAAQ3Z,EAAE84C,UAAW5/B,EAAEu6D,WAAav6D,EAAEu6D,UAAU7sB,UAAWr3D,KAAKkiD,YACpJp1B,OAAE,EAAQ9sB,MACVA,KAAK6jF,aAAapzE,EAAExF,WAChBjL,KAAKkiD,WAAY,IAAK,IAAIl4B,KAAKL,EAAEilC,KAAM5uD,KAAKiH,SAASuwD,WAAW7tC,EAAEilC,KAAK5kC,SAAShqB,KAAKiH,SAASywD,SAASjnD,EAAEnR,OAC7GU,KAAKiH,SAASiwD,WAAal3D,KAAKiD,MAChCqnB,EAAEtqB,KAAM,sBAGVyP,EAAE2W,UAAU08D,WAAa,SAAUtyE,GACjC,IAAImZ,EAAI3pB,KAAKwiD,QACT/xC,EAAIzQ,KAAKojB,OACTwG,EAAI5pB,KAAKyqE,YACbzqE,KAAKmkF,eACLv6D,EAAE,KAAOuD,EAAE1c,EAAE,MAAQzQ,KAAKmpE,QAAUp/C,KAAK1W,IAAIrT,KAAKmpE,QAASv/C,EAAE,GAAKD,EAAE,KACpEC,EAAE,KAAOuD,EAAE1c,EAAE,MAAQzQ,KAAKokF,aAAer6D,KAAK1W,IAAIrT,KAAKokF,aAAcx6D,EAAE,GAAKD,EAAE,KAC9E3pB,KAAKmB,QAAUnB,KAAKmB,OAAO0vC,SAAW7wC,KAAKmB,OAAOw+E,cAAclvE,EAAGkZ,GACnEW,EAAEtqB,KAAM,cACRwQ,GAAKxQ,KAAKqkF,kBAGZ50E,EAAE2W,UAAUi+D,eAAiB,WAC3B,IAAI7zE,EAAIxQ,KACJ2pB,EAAInZ,EAAE45D,WAAa,CAAC,EAAG,EAAG,EAAG,GAC7B35D,EAAID,EAAE+xE,UACN34D,EAAIpZ,EAAE4S,OACNoG,EAAI,SAAUhZ,GAChBA,EAAExK,SAAQ,SAAUwK,GAClBA,EAAE4rD,SAAW5rD,EAAE05D,gBAInB15D,EAAE4jE,mBAAqB5qD,EAAEhZ,EAAE2yD,MAAQ1yD,GAAKA,EAAE1P,QAAUyoB,EAAE/Y,GACtD4Z,EAAErkB,SAAQ,SAAUyK,EAAG+Y,GACrB2D,EAAEvD,EAAEJ,MAAQhZ,EAAEC,IAAMkZ,EAAEH,OAExBhZ,EAAE8zE,gBAGJ70E,EAAE2W,UAAUrO,OAAS,SAAUvH,GAC7B,IAAImZ,EAAI3pB,KACJyQ,EAAIkZ,EAAErgB,QAAQjK,MACduqB,EAAID,EAAEyxD,SACNpyE,EAAImkB,EAAE1c,EAAEtN,QAAUgqB,EAAE1c,EAAEjR,QACtBiQ,EAAIgB,EAAEtN,OAASg+E,EAAGv3D,EAAG,SACzBnZ,EAAIA,EAAEjR,QAAU2hF,EAAGv3D,EAAG,UACtBA,EAAIpZ,EAAIA,EAAEtD,OAASsc,SACZG,EAAE8kD,QAAQ0J,cAEZnvE,GAAM2gB,EAAE46D,aAAc90E,IAAKgB,GAAMmZ,IAAMJ,GAAKI,IAAME,IACjDra,IAAMka,EAAE45D,gBAAkB9yE,IAAMkZ,EAAE65D,kBAAiBx5D,EAAEY,aAAajB,EAAE66D,eAAgB76D,EAAE66D,cAAgBlD,GAAG,WAC3G33D,EAAEtpB,WAAaspB,EAAE2tC,aAAQ,OAAQ,GAAQ,KACxC9mD,EAAI,IAAM,IACbmZ,EAAE45D,eAAiB9zE,EACnBka,EAAE65D,gBAAkB/yE,IAIxBhB,EAAE2W,UAAUq+D,UAAY,SAAUj0E,GAChC,IAAImZ,EAAI3pB,MACR,IAAOwQ,GAAKxQ,KAAK0kF,cAAe,IAAOl0E,GAAKxQ,KAAK0kF,eAAiB1kF,KAAK0kF,aAAe1kF,KAAK0kF,iBAAmB1kF,KAAK0kF,aAAe/xE,EAAE6W,EAAG,UAAU,SAAUhZ,GACzJmZ,EAAErgB,SAAWqgB,EAAE5R,OAAOvH,MACpBmC,EAAE3S,KAAM,UAAWA,KAAK0kF,gBAG9Bj1E,EAAE2W,UAAUkxC,QAAU,SAAU9mD,EAAGmZ,EAAGlZ,GACpC,IAAImZ,EAAI5pB,KACJwpB,EAAII,EAAE3iB,SACV2iB,EAAEs0D,YAAc,EAChBpxD,EAAErc,EAAGmZ,GACLnZ,EAAI+Y,EAAEigC,gBACN7/B,EAAEq1C,eAAiBr1C,EAAEnjB,YACrBmjB,EAAEu1C,cAAgBv1C,EAAEw1C,gBACpB,IAAuB5uD,IAAMoZ,EAAEtgB,QAAQjK,MAAM8D,MAAQqN,QACrD,IAAuBmZ,IAAMC,EAAEtgB,QAAQjK,MAAMG,OAASmqB,GACtDC,EAAE05D,eACF15D,EAAEs4B,aAAezxC,EAAIK,EAAIya,GAAG3B,EAAEvpB,UAAW,CACvC8C,MAAOymB,EAAEw1C,WAAa,KACtB5/D,OAAQoqB,EAAEnjB,YAAc,MACvBgK,GACHmZ,EAAE06D,cAAa,GACf96D,EAAE8tC,QAAQ1tC,EAAEw1C,WAAYx1C,EAAEnjB,YAAagK,GACvCmZ,EAAEu5C,KAAKn9D,SAAQ,SAAUwK,GACvBA,EAAE+wD,SAAU,EACZ/wD,EAAEy3D,cAEJr+C,EAAE0qD,eAAgB,EAClB1qD,EAAE4iD,YAAa,EACf5iD,EAAE84D,eACF94D,EAAEk5D,aACFl5D,EAAE7pB,OAAO0Q,GACTmZ,EAAEq1C,eAAiB,KACnB30C,EAAEV,EAAG,UACL03D,GAAG,WACD13D,GAAKU,EAAEV,EAAG,YAAa,MAAM,aACzBA,EAAEs0D,gBAELz0D,EAAEhZ,GAAGpF,WAGVoE,EAAE2W,UAAUk+D,aAAe,SAAU9zE,GACnC,IAOI4Z,EACAN,EACAE,EACAP,EAVAE,EAAI3pB,KAAK0rD,SACTj7C,EAAIzQ,KAAKiH,SACT2iB,EAAI5pB,KAAKo/D,WACT51C,EAAIxpB,KAAKyG,YACTuC,EAAIhJ,KAAKsJ,QAAQjK,MACjBoQ,EAAIzP,KAAKwiD,QACTn4B,EAAIrqB,KAAKqqE,WAKbrqE,KAAKopE,SAAWh/C,EAAIL,KAAKw2B,MAAMvgD,KAAKopE,UACpCppE,KAAKmpE,QAAUr/C,EAAIC,KAAKw2B,MAAMvgD,KAAKmpE,SACnCnpE,KAAKipE,UAAYj/C,EAAID,KAAK1W,IAAI,EAAG0W,KAAKw2B,MAAM32B,EAAIQ,EAAIpqB,KAAKJ,cACzDI,KAAKkpE,WAAaz/C,EAAIM,KAAK1W,IAAI,EAAG0W,KAAKw2B,MAAM/2B,EAAIM,EAAI9pB,KAAKokF,eAC1DpkF,KAAK2kF,UAAYh7D,EAAIF,EAAIO,EACzBhqB,KAAK4kF,UAAYj7D,EAAIK,EAAIP,EACzBzpB,KAAK6kF,gBAAkB77E,EAAE67E,iBAAmB,EAC5C7kF,KAAKmwE,WAAa1/D,EAAE0/D,WAAa,CAC/BtuE,EAAG4N,EAAE,GACL1N,EAAG0N,EAAE,GACLtM,MAAOymB,EAAIna,EAAE,GAAKA,EAAE,GACpBjQ,OAAQgqB,EAAI/Z,EAAE,GAAKA,EAAE,IAEvBzP,KAAK+C,QAAU0N,EAAE1N,QAAU,CACzBlB,EAAGuoB,EACHroB,EAAG+nB,EACH3mB,MAAO6mB,EACPxqB,OAAQiqB,GAEVE,EAAI,EAAII,KAAK4U,MAAM3+B,KAAK6kF,gBAAkB,GAC1Cj7D,EAAIG,KAAKkkB,KAAKlkB,KAAK1W,IAAIsW,EAAGU,EAAE,IAAM,GAClCb,EAAIO,KAAKkkB,KAAKlkB,KAAK1W,IAAIsW,EAAGU,EAAE,IAAM,GAClCrqB,KAAKk7E,QAAU,CACbr5E,EAAG+nB,EACH7nB,EAAGynB,EACHrmB,MAAO4mB,KAAK4U,MAAM3+B,KAAK2kF,UAAY56D,KAAK1W,IAAIsW,EAAGU,EAAE,IAAM,EAAIT,GAC3DpqB,OAAQuqB,KAAK1W,IAAI,EAAG0W,KAAK4U,MAAM3+B,KAAK4kF,UAAY76D,KAAK1W,IAAIsW,EAAGU,EAAE,IAAM,EAAIb,KAE1EhZ,IAAMxQ,KAAKmjE,KAAKn9D,SAAQ,SAAUwK,GAChCA,EAAE03D,cACF13D,EAAEs1D,wBACAr1D,EAAE2nD,iBACN9tC,EAAEtqB,KAAM,oBAAqB,CAC3B8kF,SAAUt0E,KAIdf,EAAE2W,UAAU+9D,aAAe,WACzB75D,EAAEtqB,KAAM,gBACR,IAAIwQ,EAAIxQ,KACJ2pB,EAAInZ,EAAElH,QAAQjK,MAClB,CAAC,SAAU,WAAW2G,SAAQ,SAAUyK,GACtC,IAAImZ,EAAID,EAAElZ,GACN+Y,EAAIwB,EAAEpB,GAAKA,EAAI,CAACA,EAAGA,EAAGA,EAAGA,GAC7B,CAAC,MAAO,QAAS,SAAU,QAAQ5jB,SAAQ,SAAU4jB,EAAG5gB,GACtDwH,EAAEC,GAAGzH,GAAK+jB,EAAEpD,EAAElZ,EAAImZ,GAAIJ,EAAExgB,UAG5BqhB,EAAErkB,SAAQ,SAAU2jB,EAAGlZ,GACrBD,EAAEmZ,GAAKoD,EAAEvc,EAAE4S,OAAO3S,GAAID,EAAEgyC,QAAQ/xC,OAElCD,EAAE45D,WAAa,CAAC,EAAG,EAAG,EAAG,GACzB55D,EAAE65D,WAAa,CAAC,EAAG,EAAG,EAAG,IAG3B56D,EAAE2W,UAAU48D,aAAe,WACzB,IAmBI/3D,EAnBAza,EAAIxQ,KAAKsJ,QAAQjK,MACjBsqB,EAAI3pB,KAAKiH,SACTwJ,EAAIzQ,KAAKo/D,WACTx1C,EAAI5pB,KAAKyG,YACT+iB,EAAIxpB,KAAKkiD,WACTl5C,EAAIhJ,KAAK+kF,YACTt1E,EAAIe,EAAE3Q,gBACNwqB,EAAI7Z,EAAEw0E,oBACN56D,EAAI5Z,EAAEy0E,oBACNn7D,EAAI9pB,KAAKopE,SACTp/C,EAAIhqB,KAAKmpE,QACT1/C,EAAIzpB,KAAKipE,UACTnhD,EAAI9nB,KAAKkpE,WACT18C,EAAIxsB,KAAK+C,QACT+N,EAAI9Q,KAAK84D,SACT1tC,EAAIprB,KAAKk7E,QACTvoE,EAAI3S,KAAKklF,gBACTj0E,EAAIjR,KAAKmlF,eACTn6D,EAAIhrB,KAAKolF,WAET76D,EAAI,UAER,GADA5X,IAAM3S,KAAKklF,gBAAkBvyE,EAAIgX,EAAEorC,OAAOvyD,SAAS,yBAAyB4E,MAAOmjB,EAAI,QACnFf,EAAG,IAAI3nB,EAAIopB,EAAItY,EAAEq7C,mBAEnB/iC,GADAppB,EAAI2O,EAAElP,aAAe,IACZkP,EAAEjP,OAAS,EAAI,GACxBkO,EAAI,CACF/H,KAAM+H,GAAK,SAET5N,GAAK8Q,EAAE,mBAAiBlD,EAAEtI,OAASqJ,EAAE5M,YAAa6L,EAAE,gBAAkB5N,GAC1E8Q,EAAEzL,KAAKuI,GAAGlO,OAAOiP,EAAEjP,QAErBoR,EAAE4X,GAAG,CACH1oB,EAAGopB,EAAI,EACPlpB,EAAGkpB,EAAI,EACP9nB,MAAOsN,EAAIwa,EAAIppB,EAAI,EACnBrC,OAAQoqB,EAAIqB,EAAIppB,EAAI,EACpBiP,EAAGN,EAAE2xC,eAEP53B,EAAI,UACJtZ,IAAMsZ,EAAI,OAAQvqB,KAAKmlF,eAAiBl0E,EAAI0Y,EAAEorC,OAAOvyD,SAAS,8BAA8B4E,OAC5F6J,EAAEsZ,GAAGiC,GACLhD,IAAMvY,EAAE/J,KAAK,CACXQ,KAAM2iB,GAAK,SACV9oB,OAAOiP,EAAE60E,YAAaj7D,IAAMphB,GAAKohB,IAAMphB,EAAE9B,KAAK,SAAW8B,EAAE9B,KAAK,OAAQkjB,GAAIphB,EAAE0E,QAAQ8e,IAAMxsB,KAAK+kF,YAAcp7D,EAAE0uC,MAAMjuC,EAAGN,EAAGE,EAAGP,EAAG3B,GAAG1gB,QACzI0J,EAAIA,EAAEpD,QAAQ,CACZvK,MAAOioB,EAAEjoB,MACT3D,OAAQ4rB,EAAE5rB,SACPQ,KAAK84D,SAAWnvC,EAAEmvC,SAAS1tC,GAChCb,EAAI,UACJS,IAAMT,EAAI,OAAQvqB,KAAKolF,WAAap6D,EAAIrB,EAAEorC,OAAOvyD,SAAS,0BAA0B0E,KAAK,CACvFy7C,OAAQ,IACPv7C,OACHoiB,GAAKwB,EAAE9jB,KAAK,CACVC,OAAQqJ,EAAEqyC,gBACV,eAAgBryC,EAAEq0E,iBAAmB,EACrCn9E,KAAM,SAERsjB,EAAET,GAAGS,EAAE+iC,MAAM,CACXlsD,EAAGioB,EACH/nB,EAAGioB,EACH7mB,MAAOsmB,EACPjqB,OAAQsoB,IACNkD,EAAEgjC,gBACNhuD,KAAKwsE,YAAa,EAClBliD,EAAEtqB,KAAM,sBAGVyP,EAAE2W,UAAUk/D,eAAiB,WAC3B,IAGI17D,EACAJ,EACAxgB,EALAwH,EAAIxQ,KACJ2pB,EAAInZ,EAAElH,QAAQjK,MACdoR,EAAID,EAAElH,QAAQpJ,OAIlB,CAAC,WAAY,UAAW,SAAS8F,SAAQ,SAAUyJ,GAIjD,IAHA+Z,EAAI2B,EAAExB,EAAEvkB,MAAQukB,EAAE24B,mBAClBt5C,EAAI2gB,EAAEla,IAAM+Z,GAAKA,EAAEpD,UAAU3W,GAExBma,EAAInZ,GAAKA,EAAE1P,QAASiI,GAAK4gB,MAAOJ,EAAI2B,EAAE1a,EAAEmZ,GAAGxkB,QAAUokB,EAAEpD,UAAU3W,KAAOzG,GAAI,GAEjFwH,EAAEf,GAAKzG,MAIXyG,EAAE2W,UAAUm/D,WAAa,WACvB,IAAI/0E,EAAIxQ,KACJ2pB,EAAInZ,EAAEtQ,OACVypB,EAAE3jB,SAAQ,SAAUwK,GAClBA,EAAEslE,aAAa/0E,OAAS,KAE1B4oB,EAAE3jB,SAAQ,SAAU2jB,GAClB,IAAIlZ,EAAIkZ,EAAErgB,QAAQu5D,SAClBv1C,EAAE7c,KAAOA,EAAI,cAAgBA,EAAID,EAAEtQ,OAAOypB,EAAE1mB,MAAQ,GAAKuN,EAAE7G,IAAI8G,KAAOA,EAAEgvD,eAAiB91C,IAAMlZ,EAAEqlE,aAAaxuE,KAAKqiB,GAAIA,EAAE81C,aAAehvD,EAAGA,EAAEwxE,oBAAsBt4D,EAAE67D,wBAAyB77D,EAAEyyC,QAAUrvC,EAAEpD,EAAErgB,QAAQ8yD,QAAS3rD,EAAEnH,QAAQ8yD,QAASzyC,EAAEyyC,aAEtP9xC,EAAEtqB,KAAM,oBAGVyP,EAAE2W,UAAUq/D,aAAe,WACzBzlF,KAAKE,OAAO8F,SAAQ,SAAUwK,GAC5BA,EAAEghD,YACFhhD,EAAEiwD,aAINhxD,EAAE2W,UAAUs/D,aAAe,WACzB,IAAIl1E,EAAIxQ,KACJ2pB,EAAInZ,EAAElH,QAAQ7E,OAClBklB,EAAEg8D,OAASh8D,EAAEg8D,MAAM3/E,SAAQ,SAAUyK,GACnC,IAAImZ,EAAIgD,EAAEjD,EAAErqB,MAAOmR,EAAEnR,OACjBkqB,EAAI4E,EAAExE,EAAEhpB,MAAQ4P,EAAE44D,SAClBpgE,EAAIolB,EAAExE,EAAEnpB,KAAO+P,EAAE24D,QAAU,UACxBv/C,EAAEhpB,YACFgpB,EAAEnpB,IACT+P,EAAEvJ,SAAS/F,KAAKuP,EAAEu/B,KAAMxmB,EAAGxgB,GAAG9B,KAAK,CACjCy7C,OAAQ,IACPniD,IAAIopB,GAAGxiB,UAIdqI,EAAE2W,UAAUq6C,OAAS,WACnB,IAAIjwD,EAAIxQ,KAAKmjE,KACTx5C,EAAI3pB,KAAKuiF,UACT9xE,EAAIzQ,KAAKiH,SACT2iB,EAAI5pB,KAAKsJ,QACTkgB,EAAI,SAAUhZ,GAChBA,EAAExK,SAAQ,SAAUwK,GAClBA,EAAE4rD,SAAW5rD,EAAEiwD,aAGfz3D,EAAI,EAERhJ,KAAKysE,WACLzsE,KAAKmB,OAAS,IAAI4pB,EAAE/qB,KAAM4pB,EAAEzoB,QAC5BnB,KAAK6iF,WAAa7iF,KAAK6iF,YACvB7iF,KAAK8iF,YAAW,GAChB9iF,KAAKskF,eACL16D,EAAI5pB,KAAKipE,UACTz4D,EAAE4G,MAAK,SAAU5G,GACf,GAAIA,EAAEuvD,OAASvvD,EAAE4rD,SAAW5rD,EAAElH,QAAQ7E,OAAOtF,SAAWqR,EAAEtQ,OAAOa,OAAQ,OAAOiI,EAAI,IAAI,KAE1F,IAAIyG,EAAIzP,KAAKkpE,WAAan/C,KAAK1W,IAAIrT,KAAKkpE,WAAalgE,EAAG,GACxDwH,EAAExK,SAAQ,SAAUwK,GAClBA,EAAEy3D,cAEJjoE,KAAKqkF,iBACL,IAAIh6D,EAAI,IAAMT,EAAI5pB,KAAKipE,UACnB7+C,EAAI,KAAO3a,EAAIzP,KAAKkpE,YACpB7+C,GAAKD,KAAG5Z,EAAExK,SAAQ,SAAUwK,IAC7BA,EAAEuvD,OAAS11C,IAAM7Z,EAAEuvD,OAAS31C,IAAM5Z,EAAE81D,iBAAgB,MACnDtmE,KAAK8iF,cACT9iF,KAAKgjF,eACLhjF,KAAKo0E,mBAAqB5qD,EAAEhZ,GAAKmZ,GAAKA,EAAE5oB,QAAUyoB,EAAEG,GACpD3pB,KAAK4lF,cAAgB5lF,KAAK4lF,YAAcn1E,EAAE+Y,EAAE,gBAAgBtiB,KAAK,CAC/Dy7C,OAAQ,IACPv7C,OACHpH,KAAKylF,eACLzlF,KAAK0lF,eACL1lF,KAAK6lF,aACL7lF,KAAKwiF,eAAiBxiF,KAAKwiF,gBAC3BxiF,KAAKsrE,aAAc,GAGrB77D,EAAE2W,UAAUy/D,WAAa,SAAUr1E,GACjC,IAAImZ,EAAI3pB,KACJyQ,EAAIkb,GAAE,EAAI3rB,KAAKsJ,QAAQpK,QAASsR,GACpCC,EAAEtR,UAAYa,KAAKd,UAAYc,KAAKd,QAAUc,KAAKiH,SAAS/F,KAAKuP,EAAEvP,MAAQlB,KAAK8lF,YAAc,IAAK,EAAG,GAAGtjF,SAAS,sBAAsBuG,GAAG,SAAS,WAClJ0H,EAAEtB,OAASqa,EAAEta,SAASC,KAAOsB,EAAEtB,SAC9BjI,KAAK,CACNhD,MAAOuM,EAAE+Q,SAAStd,MAClBy+C,OAAQ,IACNh5B,EAAEu4B,YAAcliD,KAAKd,QAAQsB,IAAIiQ,EAAEnR,OAAQU,KAAKd,QAAQkI,MAAMlD,MAAMuM,EAAE+Q,UAAWxhB,KAAKd,QAAQwK,OAAS,SAAU8G,GACnHmZ,EAAEzqB,QAAUyqB,EAAEzqB,QAAQgH,UACtByjB,EAAEk8D,WAAWr1E,MAIjBf,EAAE2W,UAAUlgB,QAAU,WACpB,IAKI8C,EALAwH,EAAIxQ,KACJ2pB,EAAInZ,EAAE2yD,KACN1yD,EAAID,EAAEtQ,OACN0pB,EAAIpZ,EAAEnQ,UACNmpB,EAAII,GAAKA,EAAE1F,WAQf,IANAoG,EAAE9Z,EAAG,WACLA,EAAEvJ,SAASsiD,UAAY78B,EAAE7qB,EAAG2O,GAAK3O,EAAE2O,EAAEvN,YAAS,EAC9C2P,EAAEwqC,aACF5sC,EAAE4qE,SAASjrD,gBAAgB,yBAC3BixD,EAAG5wE,GAEExH,EAAI2gB,EAAE5oB,OAAQiI,KAAM2gB,EAAE3gB,GAAK2gB,EAAE3gB,GAAG9C,UAIrC,IAFAlG,KAAK+lF,UAAY/lF,KAAK+lF,SAAS7/E,SAAWlG,KAAK+lF,SAAS7/E,UAEnD8C,EAAIyH,EAAE1P,OAAQiI,KAAMyH,EAAEzH,GAAKyH,EAAEzH,GAAG9C,UAErC,kKAAkK+X,MAAM,KAAKjY,SAAQ,SAAU2jB,GAC7L,IAAIlZ,EAAID,EAAEmZ,GACVlZ,GAAKA,EAAEvK,UAAYsK,EAAEmZ,GAAKlZ,EAAEvK,cAE9B0jB,IAAMA,EAAE9O,UAAYsQ,EAAEi/B,UAAW+2B,EAAGx3D,GAAIJ,GAAKoC,EAAEhC,IAC/CgE,EAAEpd,GAAG,SAAUmZ,EAAGlZ,UACTD,EAAEC,OAIbhB,EAAE2W,UAAUy7D,YAAc,WACxB,IAAIrxE,EAAIxQ,KACJ2pB,EAAInZ,EAAElH,QAELkH,EAAEw1E,kBAAmBx1E,EAAEw1E,oBAC1Bx1E,EAAEszE,eACFtzE,EAAE2zE,eACF3zE,EAAE8zE,eACF9zE,EAAE80E,iBACF90E,EAAEyyE,WACDz2D,EAAE7C,EAAEzpB,QAAUypB,EAAEzpB,OAAS,IAAI8F,SAAQ,SAAU2jB,GAC9CnZ,EAAEsxE,WAAWn4D,MAEfnZ,EAAE+0E,aACF/0E,EAAEuxE,gBACFz3D,EAAE9Z,EAAG,gBACLzO,IAAM8qB,EAAE8uD,aAAenrE,EAAEi+D,QAAU,IAAI5hD,EAAErc,EAAGmZ,GAAKnZ,EAAEi+D,QAAU,IAAI1sE,EAAEyO,EAAGmZ,IACtEnZ,EAAEiwD,SACFjwD,EAAEi+D,QAAQa,mBACL9+D,EAAEvJ,SAASgwD,UAAazmD,EAAEqoD,WAAWroD,EAAEooD,SAC5CpoD,EAAEiyE,kBAAiB,KAIvBhzE,EAAE2W,UAAUwyC,OAAS,WACnB54D,KAAKimF,UAAUl6D,OAAO,CAAC/rB,KAAK2Q,WAAW3K,SAAQ,SAAUwK,GACvDA,QAAK,IAAuBxQ,KAAKiD,OAASuN,EAAEkR,MAAM1hB,KAAM,CAACA,SACxDA,MACHsqB,EAAEtqB,KAAM,QACRsqB,EAAEtqB,KAAM,UACRmtB,EAAEntB,KAAKiD,QAAUjD,KAAKykF,UAAUzkF,KAAKsJ,QAAQjK,MAAM0Y,QACnD/X,KAAKkmF,4BACLlmF,KAAK64D,WAAY,GAGnBppD,EAAE2W,UAAU8/D,0BAA4B,WACtC,IAAI11E,EAAIxQ,KAAKsJ,QACTqgB,EAAI3pB,KAAKiB,MACbuP,IAAMxQ,KAAKmmF,gBAAkBnmF,KAAKiH,SAASkwD,WAAWjwD,KAAK,CACzDk/E,KAAM,MACN,aAAcz8D,GAAKA,EAAEjnB,QAAQ6nD,aAAe,KAC1C/5C,EAAE21E,gBAAiB,IAAO31E,EAAE21E,cAAchnF,SAAWusB,EAAE,qRAAqR,EAAI1rB,QAGtVyP,EAAE2W,UAAUigE,UAAY,SAAU71E,EAAGmZ,EAAGlZ,GACtC,IACI+Y,EADAI,EAAI5pB,KAcR,OAZAwQ,IAAMmZ,EAAIoD,EAAEpD,GAAG,GAAKW,EAAEV,EAAG,YAAa,CACpCtgB,QAASkH,IACR,WACDgZ,EAAII,EAAEk4D,WAAWtxE,GACjBoZ,EAAE0qD,eAAgB,EAClB1qD,EAAE27D,aACF/7D,EAAEy4D,oBAAsBz4D,EAAE5f,QAAQ4G,EAAEtN,MAAM,GAC1ConB,EAAEV,EAAG,iBAAkB,CACrB1pB,OAAQspB,IAEVG,GAAKC,EAAE7pB,OAAO0Q,OAET+Y,GAGT/Z,EAAE2W,UAAUkgE,QAAU,SAAU91E,EAAGmZ,EAAGlZ,EAAGmZ,GACvC,OAAO5pB,KAAKumF,WAAW58D,EAAI,QAAU,QAAS,CAC5CkzC,KAAMrsD,EACNzQ,OAAQ0Q,EACR82C,UAAW39B,KAIfna,EAAE2W,UAAUogE,aAAe,SAAUh2E,EAAGmZ,EAAGlZ,GACzC,OAAOzQ,KAAKumF,WAAW,YAAa,CAClC1pB,KAAMrsD,EACNzQ,OAAQ4pB,EACR49B,UAAW92C,KAIfhB,EAAE2W,UAAUmgE,WAAa,SAAU/1E,EAAGmZ,GAMpC,OALAnZ,EAAI,IAAIxH,EAAEhJ,KAAM2rB,EAAEhC,EAAEkzC,KAAM,CACxB55D,MAAOjD,KAAKwQ,GAAGzP,OACf4hE,IAAK,UAAYnyD,KAEnBuc,EAAEpD,EAAE5pB,QAAQ,IAAOC,KAAKD,OAAO4pB,EAAE49B,WAC1B/2C,GAGTf,EAAE2W,UAAUqgE,YAAc,SAAUj2E,GAClC,IAAImZ,EAAI3pB,KACJyQ,EAAIkZ,EAAErgB,QACNsgB,EAAInZ,EAAEo1C,QACNr8B,EAAI,WACNxgB,GAAKuiB,EAAEviB,EAAG,CACRpI,KAAM+oB,EAAEy/C,SAAW,KACnB3oE,IAAKkpB,EAAEw/C,QAAU,KACjBhmE,MAAOwmB,EAAEs/C,UAAY,KACrBzpE,OAAQmqB,EAAEu/C,WAAa,QAGvBlgE,EAAI2gB,EAAE+8D,WACNj3E,EAAIka,EAAEg9D,YAEV39E,IAAM2gB,EAAE+8D,WAAa19E,EAAIgkB,EAAE,MAAO,CAChC/hB,UAAW,gDACV,KAAM0e,EAAEtpB,YACXoP,IAAMka,EAAEg9D,YAAcl3E,EAAIud,EAAE,OAAQ,CAClC/hB,UAAW,4BACV,KAAMjC,GAAI2J,EAAEgX,EAAG,SAAUH,IAC5BxgB,EAAEiC,UAAY,qBACdmgB,EAAEg/B,eAAe36C,EAAGsd,EAAEvc,EAAGC,EAAEm0C,KAAKiB,QAAS,KACzCl8B,EAAEu4B,aAAe32B,EAAEviB,EAAG4jB,EAAEhD,EAAEtqB,MAAO,CAC/BqjD,OAAQ,MACLp3B,EAAE9b,EAAGma,EAAEy9B,YAAa19B,EAAEi9D,eAAiBr7D,EAAEviB,EAAG,CAC/C00C,QAAS,EACT7M,QAAS,KACP//B,EAAE9H,EAAG,CACP00C,QAAS9zB,EAAEtqB,MAAMo+C,SAAW,IAC3B,CACDryC,SAAUue,EAAEi9D,cAAgB,MAE9Bl9D,EAAEi9D,cAAe,EACjBp9D,KAGF/Z,EAAE2W,UAAU0gE,YAAc,WACxB,IAAIt2E,EAAIxQ,KAAKsJ,QACTqgB,EAAI3pB,KAAK0mF,WACb/8D,IAAMA,EAAE1e,UAAY,+CAAgDjL,KAAKkiD,YAAcpxC,EAAE6Y,EAAG,CAC1F+zB,QAAS,GACR,CACDryC,SAAUmF,EAAEq1C,QAAQkhC,cAAgB,IACpCtyD,SAAU,WACRlJ,EAAE5B,EAAG,CACHknB,QAAS,aAIf7wC,KAAK4mF,cAAe,GAGtBn3E,EAAE2W,UAAU1c,OAAS,SAAU8G,EAAGmZ,EAAGC,EAAGJ,GACtC,IASIM,EACAE,EAVAhhB,EAAIhJ,KACJyP,EAAI,CACNvQ,QAAS,aACT+B,MAAO,WACPolD,SAAU,cACVC,QAAS,cAEPj8B,EAAI7Z,EAAEw2E,oBACN58D,EAAI,GAGRE,EAAEthB,EAAG,SAAU,CACbM,QAASkH,IAEX6Z,GAAKrhB,EAAEw5E,eAAc,GAAI,GACzBhyE,EAAIgb,EAAEhb,EAAGxH,EAAEM,SACXN,EAAEy4D,YAAc91C,EAAE3iB,EAAEy4D,YAAajxD,GACjC,IAAIiZ,EAAIjZ,EAAEnR,MAEV,GAAIoqB,EAAG,CAKL,GAJAkC,GAAE,EAAI3iB,EAAEM,QAAQjK,MAAOoqB,GACvB,cAAeA,GAAKzgB,EAAE66E,aAAap6D,EAAExe,WACrC,WAAYwe,GAAKzgB,EAAEy7E,UAAUh7D,EAAE1R,QAE3B,aAAc0R,GAAK,UAAWA,GAAK,SAAUA,EAAG,CAClDzgB,EAAEs8E,iBACF,IAAIx9D,GAAI,EAGV,eAAgB2B,IAAM3B,GAAI,GAC1B,WAAY2B,GAAKwB,EAAEjrB,KAAMypB,GACzBmE,EAAEnE,GAAG,SAAUjZ,EAAGmZ,IACf,IAAM3gB,EAAEi+E,yBAAyBpoE,QAAQ,SAAW8K,KAAOG,GAAI,IAC/D,IAAM9gB,EAAEk+E,qBAAqBroE,QAAQ8K,KAAO3gB,EAAEwjE,YAAa,IAC3D,IAAMxjE,EAAEm+E,mBAAmBtoE,QAAQ8K,KAAOU,EAAIrhB,EAAEwjE,YAAa,EAAKxiD,GAAI,OAExEhhB,EAAEk5C,YAAcz4B,EAAEnqB,OAAS0J,EAAE/B,SAASywD,SAAS1uD,EAAEM,QAAQjK,MAAMC,OAAS,KAG1E0J,EAAEk5C,YAAc1xC,EAAEizC,SAAWzjD,KAAKsJ,QAAQm6C,OAASjzC,EAAEizC,QACtDjzC,EAAE21C,OAASnmD,KAAKmmD,OAAS16B,IAAMzrB,KAAKmmD,KAAO,IAAI11C,EAAED,EAAE21C,OAAQx6B,GAAE,EAAI3iB,EAAEM,QAAQ68C,KAAM31C,EAAE21C,OACnFv4B,EAAEpd,GAAG,SAAUmZ,EAAGlZ,GACZzH,EAAEyH,IAAM,mBAAsBzH,EAAEyH,GAAG/G,OAAQV,EAAEyH,GAAG/G,OAAOigB,GAAG,GAAa,mBAAsB3gB,EAAEyG,EAAEgB,IAAKzH,EAAEyG,EAAEgB,IAAIkZ,GAAQ,WAAalZ,IAAM,IAAMzH,EAAEo+E,sBAAsBvoE,QAAQpO,IAAMkb,GAAE,EAAI3iB,EAAEM,QAAQmH,GAAID,EAAEC,IAC/M,UAAYA,IAAM,IAAMzH,EAAEi+E,yBAAyBpoE,QAAQpO,KAAOqZ,GAAI,MAExE9pB,KAAKonF,sBAAsBphF,SAAQ,SAAU2jB,GAC3C,GAAInZ,EAAEmZ,GAAI,CACR,IAAIlZ,EAAI,GACRzH,EAAE2gB,GAAG3jB,SAAQ,SAAUwK,EAAGmZ,GACxBnZ,EAAElH,QAAQ+9E,YAAc52E,EAAEnJ,KAAKylB,EAAEvc,EAAElH,QAAQrG,MAAO0mB,OAEpD03D,EAAG7wE,EAAEmZ,IAAI3jB,SAAQ,SAAUwK,EAAGgZ,GAC5B,IACIa,EADA5a,EAAI0d,EAAE3c,EAAErL,IAEZsK,IAAM4a,EAAIrhB,EAAEW,IAAI6G,EAAErL,MACjBklB,GAAKrhB,EAAE2gB,KAAOU,EAAIrhB,EAAE2gB,GAAGlZ,EAAIA,EAAE+Y,GAAKA,KAAO/Z,GAAK0d,EAAE9C,EAAE/gB,QAAQnE,MAAQklB,OAAI,GACvEA,GAAKA,EAAEm4C,OAAS74C,IAAMU,EAAE3gB,OAAO8G,GAAG,GAAKoZ,IAAMS,EAAEi9D,SAAU,KACxDj9D,GAAKT,GAAK5gB,EAAEu+E,oBAAoB59D,KAAO3gB,EAAEu+E,oBAAoB59D,GAAG,GAAGjI,MAAM1Y,EAAG,CAACwH,GAAGub,OAAO/iB,EAAEu+E,oBAAoB59D,GAAG,IAAM,IAAIoC,OAAO,EAAC,KAAMu7D,SAAU,MAErJ19D,GAAK5gB,EAAE2gB,GAAG3jB,SAAQ,SAAUwK,GAC1BA,EAAE82E,SAAW92E,EAAElH,QAAQ+9E,kBAAoB72E,EAAE82E,QAAUl9D,EAAE9iB,KAAKkJ,UAIpE4Z,EAAEpkB,SAAQ,SAAUwK,GAClBA,EAAEnR,OAASmR,EAAEE,QAAUF,EAAEE,QAAO,MAElCoX,GAAK9e,EAAEm6D,KAAKn9D,SAAQ,SAAUwK,GAC5BA,EAAE9G,OAAO,IAAI,MAEfogB,GAAK9gB,EAAEg5E,wBAAwBh8E,SAAQ,SAAUwK,GAC/CA,EAAEnR,OAASmR,EAAE9G,OAAO,IAAI,KACvB1J,MACH8nB,EAAI2B,GAAKA,EAAEtmB,MACXsmB,EAAIA,IAAM6D,EAAE7D,EAAEjqB,QAAU+wE,EAAG9mD,EAAEjqB,OAAQsoB,GAAK9e,EAAEo2D,YAAc31C,EAAEjqB,QAC5DwqB,GAAKsB,EAAExD,IAAMA,IAAM9e,EAAEo2D,YAAc9zC,EAAE7B,IAAMA,IAAMzgB,EAAEvC,YAAcuC,EAAEsuD,QAAQxvC,EAAG2B,EAAGD,GAAKuD,EAAEpD,GAAG,IAAO3gB,EAAEjJ,OAAOypB,GAC3Gc,EAAEthB,EAAG,cAAe,CAClBM,QAASkH,EACTzQ,OAAQ4pB,EACR49B,UAAW/9B,KAIf/Z,EAAE2W,UAAUohE,YAAc,SAAUh3E,EAAGmZ,GACrC3pB,KAAKojF,iBAAiB,WAAY5yE,GAClCxQ,KAAK0iF,aAAa/4D,IAGpBla,EAAE2W,UAAUqhE,WAAa,SAAUj3E,EAAGmZ,GACpC3pB,KAAKojF,iBAAiB,UAAW5yE,GACjCxQ,KAAK0iF,aAAa/4D,IAGpBla,EAAE2W,UAAUshE,cAAgB,WAC1B,SAASl3E,IACPC,EAAEk3E,UAGJ,IAAIl3E,EAAIzQ,KACJ4pB,EAAID,EAAEi7B,KACNp7B,EAAI/Y,EAAEnH,QAAQjK,MAAMojD,gBACpBz5C,EAAIwgB,EAAEk5B,MACNjzC,EAAI,UAAY+Z,EAAEo+D,YAAc,eAAiBp+D,EAAEo+D,WAAa,KAAO,oBAC3Et9D,EAAEtqB,KAAM,sBAAuB,MAAM,WACnCyQ,EAAEgyC,gBAAkBhyC,EAAExJ,SAAS4wD,OAAOjuC,EAAEo8B,UAAW,KAAM,KAAMx1C,EAAGxH,GAAG9B,KAAK,CACxEhD,MAAOslB,EAAEhI,SAAStd,MAClBjD,MAAO2oB,EAAEq8B,iBACRzjD,SAAS,yBAAyB4E,MAAMlD,MAAMslB,EAAEhI,UAAU,EAAI/R,MAEnE6a,EAAEtqB,KAAM,uBAGVyP,EAAE2W,UAAUuhE,QAAU,WACpBr9D,EAAEtqB,KAAM,YAAa,CACnB6nF,gBAAgB,GACf7nF,KAAK0oE,OAGVj5D,EAAE2W,UAAUsiD,KAAO,SAAUl4D,GAC3B,IAIIxH,EAJA2gB,EAAI3pB,KACJyQ,EAAIkZ,EAAE8kD,QACN7kD,EAAID,EAAE+hC,SAAWj7C,EAAE8lE,WAAa9lE,EAAE+lE,WAClChtD,GAAI,GAEPhZ,GAAKA,EAAEq3E,gBAAkBl+D,EAAEw5C,KAAKn9D,SAAQ,SAAUwK,GACjDxH,EAAIwH,EAAEk4D,UACJj4D,EAAE8pE,WAAY,GAAM/pE,EAAE3P,MAAMkrB,OAAOvb,EAAE9P,OAAOsF,SAAQ,SAAUwK,GAChE,IAAIf,EAAIe,EAAEqsD,KACNxyC,EAAIV,EAAE+hC,SAAWj8C,EAAE7O,KAAO6O,EAAEhP,IAC5B2pB,EAAIT,EAAE+hC,SAAWrhC,EAAI5a,EAAEtM,MAAQknB,EAAI5a,EAAEjQ,OACrCsqB,EAAIra,EAAE0xD,QACN13C,GAAI,IACHK,GAAKF,GAAKS,GAAKT,GAAKQ,GAAKN,IAAMqD,EAAEvD,MAAIH,GAAI,GAC9ChZ,EAAEqZ,EAAI,QAAU,UAAYL,IAAMzgB,EAAIyG,EAAEi5D,KAAKl4D,EAAE5L,IAAK4L,EAAE6C,KAAM5D,EAAEq5D,aAAet/C,GAAI,OAEnF,IAAI/Z,EAAIka,EAAE84B,gBACVj5B,IAAM/Z,EAAIka,EAAE+9D,iBAAmBl+D,GAAKwB,EAAEvb,KAAOka,EAAE84B,gBAAkBhzC,EAAEvJ,WACnE8C,GAAK2gB,EAAE5pB,OAAOgtB,EAAEpD,EAAErgB,QAAQjK,MAAMkoD,UAAW/2C,GAAKA,EAAE+2C,UAAW,IAAM59B,EAAE2oD,cAGvE7iE,EAAE2W,UAAU+wD,IAAM,SAAU3mE,EAAGmZ,GAC7B,IAAIlZ,EAAIzQ,KACJ4pB,EAAInZ,EAAEkgE,YACVhnD,EAAI,iBAAoBA,EAAIA,EAAI,CAC9BxqB,QAASwqB,EACTvkB,KAAM,KAER,IAAIokB,EAAI/Y,EAAEnH,QAAQjK,MAClBmqB,GAAKA,EAAEy4B,UAAYz4B,EAAEy4B,QAAUt4B,GAC/B,IACIla,EADAzG,EAAI2gB,EAAEvkB,KAEVklB,EAAEtqB,KAAM,MAAO,CACby3E,cAAejnE,IACd,WACDoZ,GAAKA,EAAE5jB,SAAQ,SAAUwK,GACvBA,EAAEsnD,cAEJ,IAAInuC,EAAIlZ,EAAE5P,MACV,OAASmI,EAAI2gB,EAAIA,EAAEoC,OAAOtb,EAAE/P,OAAS,MAAQsI,IAAM2gB,EAAIlZ,EAAE/P,OACzD,IAAI8oB,EAAI,GACRG,EAAE3jB,SAAQ,SAAU2jB,GAClB,GAAIA,EAAErgB,QAAQixD,iBAAmB5wC,EAAErgB,QAAQ+9E,WAAY,CACrD,IAAIz9D,EAAID,EAAEo2C,MACN11C,EAAI7Z,EAAEoZ,EAAI,SAAW,UAErBQ,EAAI3Z,EADRmZ,EAAIA,EAAI,aAAe,cAEnBE,EAAIH,EAAEq8C,gBAAkB,EACxBv8C,EAAIE,EAAE6xC,WAAa/qD,EAAEi7C,WAAa/hC,EAAE6xC,UAAY/qD,EAAEi7C,UAAY,EAAI,EAClE1hC,EAAIL,EAAE+8C,cACN5+C,EAAI6B,EAAE26C,QAAQl6C,EAAIC,GAAG,GAAMP,EAAIL,EAC/B+C,EAAI7C,EAAE26C,QAAQl6C,EAAIT,EAAE3C,IAAMqD,GAAG,IAAOP,EAAIL,GAAKE,EAAEw3C,SAAWx3C,EAAEi4C,mBAAqB,GACjF9wD,EAAI0b,EAAI1E,EACZ2B,EAAIE,EAAE29C,qBACNl9C,EAAItZ,EAAI0b,EAAI1E,EACZA,EAAIhX,EAAIgX,EAAI0E,EACZ,IAAIpB,EAAIzB,EAAE2+C,cACT7+C,GAAKE,EAAEw3C,SAAW/1C,IAAMA,EAAEm2C,SAAW53C,EAAEzpB,OAAO8F,SAAQ,SAAUwK,GAC/D,IAAImZ,EAAInZ,EAAEs3E,kBAAiB,GAC3Bn+D,EAAInZ,EAAEk2D,YAAY/8C,EAAEo+D,OAAO,GAC3B38D,IAAMA,EAAI,CACR48D,SAAUj1E,OAAOy2D,UACjBye,UAAWl1E,OAAOy2D,YAEpBl+C,EAAE3B,EAAE45C,UAAYj4C,EAAE3B,EAAE65C,WAAap4C,EAAE48D,SAAWj+D,KAAKnlB,IAAImoB,EAAEvc,EAAElH,QAAQm6D,UAAWhmB,KAAW9zB,EAAE45C,QAASn4C,EAAE48D,UAAW58D,EAAE68D,SAAWl+D,KAAK1W,IAAI0Z,EAAEvc,EAAElH,QAAQm6D,WAAW,KAAY95C,EAAE65C,QAASp4C,EAAE68D,cAEzLx+D,EAAIM,KAAKnlB,IAAImoB,EAAE3B,GAAKA,EAAE48D,SAAUh+D,EAAEu5C,SAAUz5C,EAAIE,EAAEplB,IAAM+kB,EAAE26C,QAAQ36C,EAAEhpB,SAASqpB,EAAEplB,KAAO+kB,EAAEs4C,kBACxFz1C,EAAIzC,KAAK1W,IAAI0Z,EAAE3B,GAAKA,EAAE68D,SAAUj+D,EAAEw5C,SAAU15C,EAAIE,EAAE3W,IAAMsW,EAAE26C,QAAQ36C,EAAEhpB,SAASqpB,EAAE3W,KAAOsW,EAAEs4C,kBACxFt4C,EAAE2+C,aAAel9C,EACjBzB,EAAEq6C,YAAyB,GAAXl6C,EAAIL,EAAIW,KAAatC,GAAKgC,EAAGM,EAAIX,GAAe,GAAXK,EAAIhC,EAAI0E,KAAa1E,EAAI0E,EAAGpC,GAAKN,GAAIH,EAAEzpB,OAAOa,QAAUqpB,IAAMJ,EAAEplB,KAAOkjB,IAAMkC,EAAE3W,KAAO+W,GAAKX,GAAK3B,GAAK0E,IAAM7C,EAAE4+C,YAAYn+C,EAAGtC,GAAG,GAAI,EAAI,CAC1L1f,QAAS,SACNqI,EAAEgyC,iBAAmBr4B,IAAMX,GAAK3B,IAAM0E,GAAKxjB,EAAEiX,MAAM,OAASxP,EAAEi3E,gBAAiB/9D,EAAEm/C,YAAa,GAAKr5D,GAAI,GAAK+Z,EAAEI,GAAKS,OAG5HuD,EAAEpE,GAAG,SAAUhZ,EAAGmZ,GAChBlZ,EAAEkZ,GAAKnZ,KAETf,GAAKgB,EAAE1Q,QAAO,GACdwrB,EAAE9a,EAAEpQ,UAAW,CACb6B,OAAQ,aAKPuN,EAhkCL,GAmkCJmd,EAAEnd,EAAE2W,UAAW,CACb6/D,UAAW,GACXsB,oBAAqB,CACnB1mF,MAAO,CAAC4O,EAAE2W,UAAUkgE,QAAS,EAAC,IAC9B5lF,MAAO,CAAC+O,EAAE2W,UAAUkgE,QAAS,EAAC,IAC9BpmF,OAAQ,CAACuP,EAAE2W,UAAUigE,YAEvBe,sBAAuB,CAAC,QAAS,QAAS,UAC1CF,qBAAsB,iJAAiJjpE,MAAM,KAC7KkpE,mBAAoB,iHAAiHlpE,MAAM,KAC3IgpE,yBAA0B,iGAAiGhpE,MAAM,OAG5HxO,KAETmd,EAAE9E,EAAG,8BAA+B,CAACA,EAAE,uBAAuB,SAAUrY,GACtE,IAEIyb,EAFAliB,EAAIyG,EAAE4wC,MACNv4B,EAAIrY,EAAEoxC,KAiCV,OA9BA,SAAWpxC,GACTA,EAAEy4E,eAAiB,SAAUz4E,GAC3B,IAAImD,EAAI5S,KAAKsJ,QACTijB,EAAI9c,EAAE6tE,YACNv7E,EAAI0N,EAAE8tE,aACNtsE,EAAIlP,EAAI,EACRqoB,EAAIpqB,KAAKX,MAAM4H,SACf2iB,EAAI5pB,KAAK69E,YACbpuE,EAAIA,EAAE6jD,SAAWvpC,KAAKw2B,MAAM,GAAK9wC,EAAEolD,YAAYpkD,GAC/C,IAAIA,EAAI,GACJuZ,EAAIpX,EAAE7O,OACV/D,KAAKX,MAAM6iD,aAAezxC,EAAI,CAC5B,eAAgBmC,EAAE1N,WAAa,GAC9B0N,EAAE5O,YAAcyM,EAAEpJ,UAAYuL,EAAE5O,YACnChE,KAAK89E,WAAa1zD,EAAEnkB,KAAK,CAAC,CAAC,IAAK,EAAGwJ,GAAI,CAAC,IAAK8c,EAAG9c,KAAKjN,SAAS,oBAAoB0E,KAAKuJ,GAAGrJ,IAAIwiB,GAC9FI,IAAK,IAAOA,EAAE7qB,SAAWotB,IAAM3Z,EAAImX,KAAKnlB,IAAIkjB,EAAEkC,EAAEm+D,OAAQl3E,GAAIA,GAAI,IAAMjR,KAAKuvC,OAAO1wB,QAAQ,SAAWmL,EAAIhhB,EAAEghB,EAAG,CAC5G7mB,MAAOpB,EACPvC,OAAQuC,IACN6Q,EAAI,GAAI5S,KAAK+9E,aAAexxD,EAAInC,EAAEmlB,OAAOvvC,KAAKuvC,OAAQhjB,EAAI,EAAI3Z,EAAGnD,EAAImD,EAAG,EAAIA,EAAG,EAAIA,EAAGoX,GAAGxnB,SAAS,oBAAoB4E,IAAIwiB,GAAI2C,EAAEyxD,UAAW,IAGjJvuE,EAAE24E,cAAgB,SAAUp/E,EAAGyG,GAC7B,IAAImD,EAAI5J,EAAEu0E,aACNx7E,EAAIiH,EAAEM,QAAQ69C,aAClB13C,EAAEsuE,aAAe/9E,KAAKX,MAAM4H,SAAS8tD,KAAKhzD,GAAKiH,EAAEs0E,YAAc1qE,GAAK,EAAI,EAAG5J,EAAEsqD,SAAW1gD,EAAI,EAAG7Q,EAAI6Q,EAAI5J,EAAEs0E,YAAa1qE,EAAGkV,EAAE9e,EAAEM,QAAQ++E,aAAcz1E,EAAI,IAAIpQ,SAAS,oBAAoB0E,KAAK,CAC3Ly7C,OAAQ,IACPv7C,IAAIqI,EAAEouE,cA1Bb,CA4BG3yD,IAAMA,EAAI,KAENA,KAET0B,EAAE9E,EAAG,gCAAiC,IAAI,WACxC,MAAO,CACL5iB,UAAW,EACXutE,kBAAkB,EAClB1kB,OAAO,EACPkxB,cAAc,EACd13B,UAAW,CACTl8C,SAAU,KAEZvL,OAAQ,GACRiE,OAAQ,CACNukF,iBAAkB,EAClB9jF,UAAW,UACXU,UAAW,EACXijF,OAAQ,EACR3kF,OAAQ,CACNyhB,OAAQ,CACNsiC,WAAW,GAEb9jD,MAAO,CACL8jD,UAAW,CACTl8C,SAAU,IAEZlM,SAAS,EACTopF,WAAY,EACZC,cAAe,GAEjB9kF,OAAQ,CACN+kF,UAAW,UACXjkF,UAAW,UACXU,UAAW,KAIjBtD,MAAO,CACL9B,OAAQ,IAEVgyE,WAAY,CACVvqB,UAAW,GACXrjD,MAAO,SACPywC,OAAO,EACP9vC,UAAW,WACT,IAAI4K,EAAIzP,KAAKE,OAAOb,MAAMyrD,gBAC1B,MAAO,iBAAoB9qD,KAAK+B,EAAI,GAAK0N,EAAEzP,KAAK+B,GAAI,IAEtD0c,QAAS,EACTnf,MAAO,CACL+E,SAAU,OACVD,WAAY,OACZT,MAAO,WACPsrD,YAAa,gBAEf1I,cAAe,SACf1kD,EAAG,EACHE,EAAG,GAEL2mF,cAAe,IACfhrC,QAAS,EACTr7C,WAAY,EACZqhE,eAAe,EACflgE,OAAQ,CACNyhB,OAAQ,CACNsiC,WAAW,GAEb9jD,MAAO,CACL8jD,UAAW,CACTl8C,SAAU,IAEZm9E,cAAe,EACfzkF,OAAQ,GACRkxE,KAAM,CACJx/C,KAAM,GACNioB,QAAS,MAGbh6C,OAAQ,CACN6jD,UAAW,CACTl8C,SAAU,IAGds9E,SAAU,CACRphC,UAAW,CACTl8C,SAAU,IAEZqyC,QAAS,KAGb46B,gBAAgB,EAChBsQ,eAAgB,IAChB/Q,mBAAoB,QAGxBjrD,EAAE9E,EAAG,wBAAyB,CAACA,EAAE,wCAAyCA,EAAE,0BAA2BA,EAAE,sBAAuBA,EAAE,mBAAoBA,EAAE,+BAAgCA,EAAE,wBAAyBA,EAAE,iCAAkCA,EAAE,iCAAkCA,EAAE,mCAAoCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,EAAGmY,EAAG8B,EAAGN,EAAGxqB,EAAGkP,GAC7X,IAAImZ,EAAI3a,EAAE45C,WACNz/B,EAAIna,EAAE+5C,aACN/4C,EAAIzH,EAAE27C,eACN36B,EAAIlC,EAAEq1C,qBACN/xC,EAAIF,EAAE2xB,SACN/rC,EAAIoa,EAAEgxB,IACNzyB,EAAIyB,EAAE8wB,IACNlvB,EAAIP,EAAE2wB,YACN3yB,EAAItZ,EAAEutC,SACNvzB,EAAIha,EAAE6tC,SACNj9C,EAAIoP,EAAE8tC,SACNj1B,EAAI7Y,EAAE+tC,MACN30B,EAAIpZ,EAAEguC,iBACNzuC,EAAIS,EAAEiuC,aACN11B,EAAIvY,EAAEmuC,QACNz1B,EAAI1Y,EAAEuuC,MACN/zB,EAAIxa,EAAEb,MACN+a,EAAIla,EAAE1H,OACNoJ,EAAI1B,EAAE1Q,KACN8qB,EAAIpa,EAAE+sC,UACNxyB,EAAIva,EAAE0uC,kBACN3yB,EAAI/b,EAAE4K,QACN0P,EAAIta,EAAEkvC,SACNhzB,EAAIlc,EAAEmvC,SACNx0B,EAAI3a,EAAEovC,MACN3zB,EAAIzb,EAAEuvC,WACN90B,EAAIza,EAAE4vC,KACNj0B,EAAI3b,EAAE+vC,YACNkgC,EAAKjwE,EAAEgwC,MACP32B,EAAIrZ,EAAEmwC,YAmzCV,OAjzCA3xC,EAAI,WACF,SAASzG,IACPhJ,KAAKizE,MAAQjzE,KAAKU,MAAQV,KAAKa,MAAQb,KAAKyhE,YAAczhE,KAAK+tE,eAAiB/tE,KAAK6oF,eAAiB7oF,KAAK8oF,eAAiB9oF,KAAK0lE,OAAS1lE,KAAKsJ,QAAUtJ,KAAK81E,aAAe91E,KAAKiD,MAAQjD,KAAK41E,eAAiB51E,KAAKo9D,aAAep9D,KAAKkD,KAAOlD,KAAKX,MAAQW,KAAK+oF,QAAK,EA2xCzQ,OAxxCA//E,EAAEod,UAAUznB,KAAO,SAAU6R,EAAGmZ,GAC9B0B,EAAErrB,KAAM,OAAQ,CACdsJ,QAASqgB,IAEX,IAAIlZ,EAAIzQ,KACJ4pB,EAAIpZ,EAAEtQ,OACVF,KAAK41E,eAAiB,GACtBnlE,EAAEpR,MAAQmR,EACVC,EAAEnH,QAAUmH,EAAE23C,WAAWz+B,GACzBA,EAAIlZ,EAAEnH,QACNmH,EAAEqlE,aAAe,GACjBrlE,EAAEu4E,WACF79D,EAAE1a,EAAG,CACHpL,KAAMskB,EAAEtkB,KACRslC,MAAO,GACPyxB,SAAS,IAAOzyC,EAAEyyC,QAClBrnC,UAAU,IAAOpL,EAAEoL,WAErB/K,EAAEhqB,KAAM2pB,GACR,IAQI3gB,EARAwgB,EAAIG,EAAE7pB,QACN0pB,GAAKA,EAAElnB,OAASqnB,EAAE/nB,OAAS+nB,EAAE/nB,MAAM9B,QAAU6pB,EAAE/nB,MAAM9B,OAAOwC,OAASqnB,EAAE8oD,oBAAkBjiE,EAAEkuC,iBAAkB,GACjHjuC,EAAEw4E,WACFx4E,EAAEy4E,YACFz4E,EAAE04E,eAAenjF,SAAQ,SAAUwK,GACjCC,EAAED,EAAI,UAAYC,EAAED,EAAI,QAAU,OAEpCC,EAAEmqE,cAAgBpqE,EAAE4jE,oBAAqB,GAEzCxqD,EAAE7oB,SAAWiI,EAAI4gB,EAAEA,EAAE7oB,OAAS,IAC9B0P,EAAEs4E,GAAKr9D,EAAE1iB,GAAKA,EAAE+/E,IAAK,GAAK,EAC1Bt4E,EAAEitC,QAAUjtC,EAAEnH,QAAQo0C,QACtBltC,EAAE0xE,YAAYliF,KAAKopF,OAAOx/D,IAC1BD,EAAEwoD,aAAexoD,EAAEwoD,YAAYhzE,QAAUsR,EAAE+0E,wBAA0B/0E,EAAEi1D,QAAUj1D,EAAEvN,MAAQuN,EAAE7G,QAAQ+f,EAAEzmB,MAAM,GAC7GmoB,EAAErrB,KAAM,cAGVgJ,EAAEod,UAAUrH,GAAK,SAAUvO,GACzB,OAAOsc,EAAEtc,IAAMxQ,gBAAgB8sB,EAAEtc,IAGnCxH,EAAEod,UAAUgjE,OAAS,SAAU54E,GAC7B,IACIC,EADAkZ,EAAI3pB,KAAKsJ,QAAQrG,MAGrB,GAAIsoB,EAAE5B,GAAI,CACR,IAAKlZ,EAAID,EAAEzP,OAAQ0P,KAAM,GAAIkZ,GAAK+B,EAAElb,EAAEC,GAAGnH,QAAQrG,MAAOuN,EAAEC,GAAGs4E,IAAK,CAChEv4E,EAAEuU,OAAOtU,EAAI,EAAG,EAAGzQ,MACnB,OAGD,IAAMyQ,GAAKD,EAAEytC,QAAQj+C,MACtByQ,GAAK,OACAD,EAAElJ,KAAKtH,MAEd,OAAO0rB,EAAEjb,EAAGD,EAAEzP,OAAS,IAGzBiI,EAAEod,UAAU4iE,SAAW,WACrB,IAGIp/D,EAHApZ,EAAIxQ,KACJ2pB,EAAInZ,EAAElH,QACNmH,EAAID,EAAEnR,MAEVgsB,EAAErrB,KAAM,WAAY,MAAM,YACvBwQ,EAAE64E,WAAa,IAAIrjF,SAAQ,SAAUwjB,GACpC,IAAIxgB,EAAI,EACRyH,EAAE+Y,GAAGxjB,SAAQ,SAAUyK,GACrBmZ,EAAInZ,EAAEnH,SACFqgB,EAAEH,KAAOxgB,IAAM4gB,EAAEy9D,iBAAc,IAAuB19D,EAAEH,IAAMG,EAAEH,KAAOI,EAAEzkB,SAAM,IAAuBwkB,EAAEH,IAAM,IAAMI,EAAE3mB,SAAOuN,EAAE44E,OAAO34E,EAAEvQ,QAASsQ,EAAEgZ,GAAK/Y,EAAGA,EAAE8wD,SAAU,GAC3K33C,EAAEy9D,YAAcr+E,OAElBwH,EAAEgZ,IAAMhZ,EAAE84E,eAAiB9/D,GAAKiC,EAAE,IAAI,EAAIhb,SAG9C4a,EAAErrB,KAAM,kBAGVgJ,EAAEod,UAAU8tD,qBAAuB,SAAU1jE,EAAGmZ,GAC9C,IAAIlZ,EAAID,EAAEtQ,OACN0pB,EAAI/B,UACJ2B,EAAI+B,EAAE5B,GAAK,SAAUC,GACvB,IAAIJ,EAAI,MAAQI,GAAKnZ,EAAE84E,QAAU94E,EAAE84E,QAAQ/4E,GAAKA,EAAEoZ,GAClDnZ,EAAEmZ,EAAI,QAAQD,GAAKH,GACjB,SAAUhZ,GACZ/B,MAAM2X,UAAUuD,GAAGjI,MAAMjR,EAAED,EAAI,QAAS/B,MAAM2X,UAAU1J,MAAMC,KAAKiN,EAAG,KAExEnZ,EAAE04E,eAAenjF,QAAQwjB,IAG3BxgB,EAAEod,UAAU4hD,QAAU,WACpB,OAAOhoE,KAAKo8D,cAAW,IAAuBp8D,KAAKwjE,cAAW,IAAuBxjE,KAAKujE,SAAWvjE,KAAKo8D,SAAWp8D,KAAK+nF,OAAS,EAAI/nF,KAAK+nF,MAAMhnF,QAGpJiI,EAAEod,UAAUo/C,cAAgB,SAAUh1D,GACpC,IAKIf,EALAka,EAAI3pB,KAAKsJ,QACTmH,EAAIkZ,EAAE6/D,kBACN5/D,EAAID,EAAEqoD,eACNxoD,EAAIxpB,KAAKX,MAAM8mD,KACfn9C,EAAIhJ,KAAKklE,WAMb,OAJAl8D,EAAI0iB,EAAE1iB,EAAG2gB,EAAE8/D,WAAY,GACvBzpF,KAAK0pF,cAAgBj6E,EAAIic,EAAE1rB,KAAK0pF,cAAe//D,EAAE+/D,cAAe,GAChE9/D,GAAK2B,EAAE/a,KAAOf,GAAKe,GACnBC,IAAMkZ,EAAI,IAAIH,EAAES,KAAKjhB,GAAI,QAAUyH,EAAI+Y,EAAE4H,IAAI,OAAQzH,EAAGH,EAAE7f,IAAI,OAAQggB,GAAKla,GAAK,UAAYgB,EAAI+Y,EAAE4H,IAAI,QAASzH,EAAGH,EAAE7f,IAAI,QAASggB,GAAKla,GAAK,SAAWgB,GAAK+Y,EAAE4H,IAAI,WAAYzH,EAAGH,EAAE7f,IAAI,WAAYggB,GAAKla,GAAIA,EAAIka,EAAEu6B,UAAYl7C,GACzN4gB,GAAK2B,EAAE/a,GAAWxH,EAAIyG,GAC1BzP,KAAKklE,WAAal8D,EAAIyG,EACfzG,IAGTA,EAAEod,UAAUo/D,sBAAwB,WAClC,IAAIh1E,EAAIxQ,KAAKsJ,QACb6hB,EAAEnrB,KAAM,CACNulE,gBAAgB,EAChBokB,QAAQ,EACR1H,oBAAoB,EACpB2H,SAAS,IAEXpgE,EAAEhZ,EAAEnO,cAAgBmO,EAAEnO,WAAa,IAGrC2G,EAAEod,UAAUgiC,WAAa,SAAU53C,GACjC,IAAImZ,EAAI3pB,KAAKX,MACTuqB,EAAID,EAAErgB,QACNN,EAAI4gB,EAAE5nB,YACNyN,EAAIka,EAAE83C,aAAe,GACzBjxD,EAAIob,EAAEpb,GACNmZ,EAAIA,EAAEu4B,WACN,IAAI73B,EAAI,CACNroB,YAAagH,EACby4D,YAAajxD,GAEf6a,EAAErrB,KAAM,aAAcqqB,GACtB,IAAID,EAAIC,EAAEroB,YAAYhC,KAAKoF,MACvB0kB,EAAIra,EAAEzN,aAAe,GAmBzB,OAlBAhC,KAAKyhE,YAAcp3C,EAAEo3C,YACrBhyD,EAAImc,EAAExB,EAAGphB,EAAE9I,OAAQuP,EAAEzN,aAAeyN,EAAEzN,YAAYhC,KAAKoF,MAAOoL,GAC9DxQ,KAAK+tE,eAAiBniD,EAAEnb,EAAErP,QAASqP,EAAEzO,YAAY9B,QAAUuQ,EAAEzO,YAAY9B,OAAOkB,QAASqP,EAAEzO,YAAYhC,KAAKoF,MAAMhE,QAASwoB,EAAExoB,QAAQqgE,YAAaz4D,EAAE9I,QAAU8I,EAAE9I,OAAOkB,QAAS4H,EAAEhJ,KAAKoF,MAAMhE,QAASoP,EAAEpP,SACxMpB,KAAKs4E,eAAiB5sD,EAAElb,EAAE8nE,eAAgBxuD,EAAE9pB,KAAKoF,OAAS0kB,EAAE9pB,KAAKoF,MAAMkzE,eAAgBxuD,EAAE5pB,QAAU4pB,EAAE5pB,OAAOo4E,kBAAgBt4E,KAAK+tE,eAAe1sE,QAAWrB,KAAKqlE,kBAAuB51D,EAAE6oE,gBACzL,OAASluD,EAAErmB,eAAiB0L,EAAE1L,OAC9B/D,KAAKkzE,SAAWzjE,EAAEyjE,SAClBlqE,EAAIhJ,KAAKizE,OAASxjE,EAAEwjE,OAAS,IAAIv2D,SAChCjN,EAAEo6E,gBAAkBp6E,EAAEq6E,mBAAqBr6E,EAAEwjE,QAAUrpD,EAAI,CAC1D9kB,MAAO2K,EAAEzP,KAAKkzE,SAAW,cAAgBzjE,EAAEg0D,WAAa,EACxDx4D,UAAW,uBACV0e,IAAMC,EAAEjmB,MAAQ8L,EAAEo6E,cAAejgE,EAAE6+D,UAAYh5E,EAAEq6E,mBAAoB9gF,EAAE1B,KAAKsiB,IAC/E5gB,EAAEjI,QAAUyoB,EAAExgB,EAAEA,EAAEjI,OAAS,GAAG+D,QAAUkE,EAAE1B,KAAKqiB,EAAI,GAAK,CACtDhmB,MAAO3D,KAAK2D,MACZ8kF,UAAWzoF,KAAKyoF,YAElBp9D,EAAErrB,KAAM,kBAAmB,CACzBsJ,QAASmG,IAEJA,GAGTzG,EAAEod,UAAU+7D,QAAU,WACpB,OAAOz2D,EAAE1rB,KAAKsJ,QAAQjE,KAAM,WAAarF,KAAKiD,MAAQ,KAGxD+F,EAAEod,UAAU2jE,UAAY,SAAUv5E,EAAGmZ,EAAGlZ,GACtC,IAAImZ,EAAI5pB,KAAKX,MACT2J,EAAIhJ,KAAKyhE,YACThyD,EAAIe,EAAI,QACR6Z,EAAI7Z,EAAI,UACR4Z,EAAI3Z,EAAIA,EAAE1P,OAAS2qB,EAAE9B,EAAEtgB,QAAQjK,MAAMmR,EAAI,SAAUoZ,EAAEpZ,EAAI,UAE7D,IAAKmZ,EAAG,CACN,IAAIG,EAAI4B,EAAE1iB,EAAEyG,GAAIzG,EAAE,IAAMyG,IACxB+Z,EAAEM,KAAOF,EAAE1pB,OAAOa,SAAW6oB,EAAES,GAAK,GAAIrhB,EAAE,IAAMyG,GAAKqa,EAAIF,EAAES,GAAKD,EAAGR,EAAES,IAAM,GAC3E5Z,IAAMkZ,EAAIlZ,EAAEqZ,SAGd,IAAuBA,IAAM9pB,KAAKyP,GAAKqa,GACvC9pB,KAAKwQ,GAAKmZ,GAGZ3gB,EAAEod,UAAU6iE,SAAW,WACrBjpF,KAAKX,MAAM6iD,WAAaliD,KAAK+pF,UAAU,SAAW/pF,KAAKsJ,QAAQqqE,aAAe3zE,KAAK2D,MAAQ,UAAY3D,KAAK+pF,UAAU,QAAS/pF,KAAKsJ,QAAQ3F,OAAS8M,EAAEzO,YAAYhC,KAAKoF,MAAMzB,MAAO3D,KAAKX,MAAMiK,QAAQm6C,SAG1Mz6C,EAAEod,UAAU88D,oBAAsB,WAChC,OAAQljF,KAAKgqF,eAAiBhqF,KAAK0lE,OAAS1lE,KAAKkD,OAAS,IAG5D8F,EAAEod,UAAU8iE,UAAY,WACtBlpF,KAAK+pF,UAAU,SAAU/pF,KAAKsJ,QAAQvF,OAAOwrC,OAAQvvC,KAAKX,MAAMiK,QAAQs8C,UAG1E58C,EAAEod,UAAU6jE,eAAiB,SAAUz5E,EAAGmZ,GACxC,IAIIla,EACA4a,EALA5Z,EAAID,EAAErL,GACNykB,EAAIpZ,EAAE3O,EACN2nB,EAAIxpB,KAAK0lE,OACT18D,EAAIhJ,KAAKsJ,QAAQ6oE,YAGrB,GAAI1hE,GAAGzH,EAAIhJ,KAAKX,MAAMsK,IAAI8G,cAAiBsa,IAAMtb,EAAIzG,QAAQ,IAAIhJ,KAAKy/D,cAAgBz/D,KAAKiiF,oBAAsBjiF,KAAKsJ,QAAQ0oE,kBAAoBviE,EAAI,SAAUka,GAC9J,OAAQA,EAAE29D,SAAW39D,EAAE1mB,QAAUuN,EAAEvN,OAClC+F,GAAKA,EAAEkhF,YAAcz6E,EAAI,SAAUka,GACpC,OAAQA,EAAE29D,SAAW39D,EAAEtkB,OAASmL,EAAEnL,MAChCrF,KAAKsJ,QAAQ0oE,iBAAmBviE,EAAI,SAAUka,GAChD,OAAQA,EAAE29D,SAAW39D,EAAErgB,QAAQzH,IAAM2O,EAAE3O,MACrC4N,EAAIkD,EAAE6W,EAAG/Z,KAAQ,OAErB,GAAIA,EAAG,CACL,IAAI2a,EAAI3a,GAAKA,EAAExM,WACf,IAAuBmnB,IAAMC,GAAI,GAMnC,YAHA,IAAuBD,GAAKmB,EAAE3B,KAAOQ,EAAIpqB,KAAK4jE,MAAM/kD,QAAQ+K,EAAGD,KAC9D,IAAMS,QAAK,IAAuBA,GAAKpqB,KAAKmqF,UAAY//D,EAAIA,GAAKpqB,KAAKoqF,UAAYhgE,EAAIpqB,KAAKoqF,UAAYhgE,IACvGC,GAAKkB,EAAEnB,IAAMZ,EAAEY,IAAMZ,EAAEY,GAAGk9D,UAAYl9D,OAAI,GACpCA,GAGTphB,EAAEod,UAAUikE,WAAa,SAAU75E,EAAGmZ,GACpC,IAMIG,EACAL,EACAO,EARAvZ,EAAIzQ,KAAKsJ,QACTsgB,EAAInZ,EAAE0hE,YACNnpE,EAAIhJ,KAAK0lE,OACTj2D,EAAI,GACJ4a,EAAIrqB,KAAKulE,eACTn7C,EAAI5Z,EAAEzP,SAAWiI,EAAEjI,OAInB+mB,GAAI,EAYR,GAXA9nB,KAAKklE,WAAa,KAClB10D,EAAExK,SAAQ,SAAUwK,EAAGmZ,GACrB,IAAIF,EAAID,EAAEhZ,IAAMxQ,KAAK6gF,WAAWz6D,UAAUwrD,gBAAgBj1D,KAAK,CAC7Dzc,OAAQF,MACPwQ,IAAM,GACLsX,EAAI2B,EAAE5nB,EAEN4nB,EAAEtkB,IAAMomB,EAAEzD,KACwB,KAAhC2B,EAAIzpB,KAAKiqF,eAAexgE,EAAGO,UAAgB,IAAuBP,EAAIha,EAAEnI,KAAKkJ,GAAKxH,EAAEygB,IAAMjZ,IAAMC,EAAEvN,KAAKumB,IAAMzgB,EAAEygB,GAAG/f,OAAO8G,GAAG,EAAI,MAAM,GAAKxH,EAAEygB,GAAG69D,SAAU,EAAIj9D,IAAML,EAAIP,EAAI,IAAMzgB,EAAEygB,KAAOzgB,EAAEygB,GAAG69D,SAAU,KAAMl9D,GAAKT,IAAMF,GAAKG,GAAKA,EAAEzqB,SAAWa,KAAKsqF,kBAAgBxgE,GAAI,IAC1Qra,EAAEnI,KAAKkJ,KACbxQ,MACC8pB,EAAG,IAAKtZ,EAAIxH,EAAEjI,OAAQyP,MAAOiZ,EAAIzgB,EAAEwH,MAAQiZ,EAAE69D,SAAW79D,EAAE/Y,QAAU+Y,EAAE/Y,QAAO,EAAIiZ,QAASS,GAAKR,GAAKA,EAAEzqB,QAAU2oB,GAAI,GAAMtX,EAAExK,SAAQ,SAAUwK,EAAGmZ,GACnJnZ,IAAMxH,EAAE2gB,GAAG5nB,GAAKiH,EAAE2gB,GAAGjgB,QAAUV,EAAE2gB,GAAGjgB,OAAO8G,GAAG,EAAI,MAAM,MACtDf,EAAE1O,OAAS,GAIf,OAHAiI,EAAEhD,SAAQ,SAAUwK,GAClBA,IAAMA,EAAE82E,SAAU,QAEfx/D,IACLrY,EAAEzJ,SAAQ,SAAUwK,GAClBxQ,KAAKuqF,SAAS/5E,GAAG,EAAI,KAAM,MAAM,KAChCxQ,MACH,OAASA,KAAKklE,YAAcllE,KAAK4jE,OAAS5jE,KAAK4jE,MAAM7iE,SAAWf,KAAKklE,WAAaj6C,EAAEjrB,KAAK4jE,OAAQ5jE,KAAKwlE,kBAC/F,IAGTx8D,EAAEod,UAAUxc,QAAU,SAAU4G,EAAGmZ,EAAGlZ,EAAGmZ,GACvC,IAAIJ,EAAIxpB,KACJgJ,EAAIwgB,EAAEk8C,OACNj2D,EAAIzG,GAAKA,EAAEjI,QAAU,EACrBspB,EAAIb,EAAElgB,QACN8gB,EAAIZ,EAAEnqB,MACNyqB,EAAIO,EAAE8nD,YACN1oD,EAAID,EAAE3oB,MACNmpB,EAAIK,EAAEu+D,eACN9gE,EAAI9nB,KAAK4jE,MACT9yD,EAAI9Q,KAAK+nF,MACT38D,EAAI5B,EAAE+pD,cACVnoD,EAAIA,GAAKA,EAAErqB,OACX,IACI4R,EADA6Z,EAAInC,EAAEsL,KAEN1kB,EAAI,EACJga,EAAI,EACJV,EAAI,KAER,IAAKH,EAAE9gB,QAAQjK,MAAMgjD,kBAAmB,CACtCh4B,EAAEnnB,aAAesmB,EAAElgB,QAAQpG,KAC3BsmB,EAAEi4C,YAAYv+D,aAAesmB,EAAEi4C,YAAYv+D,KAC3C,IAAIrB,EAAI+pB,GAAE,EAAIpb,GAShB,GALA3O,GADA2O,EAAI3O,GAAK2O,GAAK,IACRzP,OACN4oB,EAAI+B,EAAE/B,GAAG,GACTG,GAAKA,EAAE3qB,UAAYqR,EAAIxQ,KAAKwqF,SAASh6E,IACrC4Z,EAAE9gB,QAAQjK,MAAMgjD,oBAAqB,IAAOz4B,GAAK/nB,GAAK4N,IAAM+Z,EAAE2gE,UAAY3gE,EAAEwgE,gBAAkBxgE,EAAE4yC,UAAY5yC,EAAEihE,mBAAqB93E,EAAI3S,KAAKqqF,WAAW75E,EAAGC,KAErJkC,EAAG,CAMN,GALA6W,EAAE07C,WAAa,KACf17C,EAAEoqD,aAAe,EACjB5zE,KAAKmpF,eAAenjF,SAAQ,SAAUwK,GACpCgZ,EAAEhZ,EAAI,QAAQzP,OAAS,KAErBipB,GAAKnoB,EAAImoB,EACX,GAAIO,EAAIf,EAAEkhE,mBAAmBl6E,GAAI+a,EAAEhB,GAAI,IAAK9Z,EAAI,EAAGA,EAAI5O,EAAG4O,IAAKqX,EAAErX,GAAKzQ,KAAKwlE,gBAAiB10D,EAAEL,GAAKD,EAAEC,QAAQ,GAAIuc,EAAEzC,GACjH,GAAIa,EACF,GAAIb,EAAExpB,SAAWqqB,EAAG,IAAK3a,EAAI,EAAGA,EAAI5O,EAAG4O,IAAKqX,EAAErX,GAAKzQ,KAAKwlE,gBAAiB10D,EAAEL,GAAKD,EAAEC,QAAQ,IAAKA,EAAI,EAAGA,EAAI5O,EAAG4O,IAAKmZ,EAAIpZ,EAAEC,GAAIqX,EAAErX,GAAKmZ,EAAE,GAAI9Y,EAAEL,GAAKmZ,EAAElN,MAAM,EAAG0O,EAAI,QAC1J,GAAIoB,IAA8Cvb,EAAI,IAA5CA,EAAIub,EAAE3N,QAAQ,MAAuC5N,EAAI,EAAGga,EAAI,IAA5CA,EAAIuB,EAAE3N,QAAQ,MAAuCoM,EAAI,GAAI,IAAMV,EAAExpB,SAAWkqB,EAAI,GAAIha,IAAMga,EAAG,IAAKxa,EAAI,EAAGA,EAAI5O,EAAG4O,IAAKqX,EAAErX,GAAKzQ,KAAKwlE,gBAAiB10D,EAAEL,GAAKD,EAAEC,GAAGwa,QAAQ,IAAKxa,EAAI,EAAGA,EAAI5O,EAAG4O,IAAKmZ,EAAIpZ,EAAEC,GAAIqX,EAAErX,GAAKmZ,EAAE3Y,GAAIH,EAAEL,GAAKmZ,EAAEqB,QAClQQ,EAAE,IAAI,EAAIrB,QACZ,IAAK3Z,EAAI,EAAGA,EAAI5O,EAAG4O,SAAK,IAAuBD,EAAEC,KAAOmZ,EAAI,CACjE1pB,OAAQspB,GACPA,EAAEq3D,WAAWz6D,UAAUsrD,aAAahwD,MAAMkI,EAAG,CAACpZ,EAAEC,KAAM+Y,EAAE0qD,qBAAqBtqD,EAAGnZ,IAKnF,IAJAK,GAAKqc,EAAErc,EAAE,KAAO2a,EAAE,IAAI,EAAIrB,GAC1BZ,EAAEtmB,KAAO,GACTsmB,EAAElgB,QAAQpG,KAAOsmB,EAAEi4C,YAAYv+D,KAAOsN,EAEjCC,EAAIhB,EAAGgB,KAAMzH,EAAEyH,IAAMzH,EAAEyH,GAAGvK,SAAW8C,EAAEyH,GAAGvK,UAE/CujB,IAAMA,EAAEq5C,SAAWr5C,EAAEs5C,cACrBv5C,EAAE+3C,QAAUn3C,EAAEoiD,YAAa,EAC3BhjD,EAAEm8C,cAAgB38D,EAClByH,GAAI,EAGN,UAAY4Z,EAAEgqD,aAAer0E,KAAK4lE,cAAe5lE,KAAK6lE,kBACtDl8C,GAAKS,EAAErqB,OAAO0Q,IAGhBzH,EAAEod,UAAUokE,SAAW,SAAUh6E,GAC/B,IAAImZ,EAAI3pB,KACJyQ,EAAIkZ,EAAErgB,QAAQ6oE,YAAYwY,SAAW,IACrC/gE,EAAI,SAAUpZ,EAAGmZ,GACnB,OAAOH,EAAEG,IAAMnZ,EAAEqwE,WAAWz6D,UAAUwrD,gBAAgBj1D,KAAK,CACzDzc,OAAQsQ,GACPmZ,IAAM,IAsBX,OAnBAnZ,EAAExK,SAAQ,SAAUyK,EAAG+Y,GACrBhZ,EAAEgZ,GAAKI,EAAED,EAAGlZ,GACZD,EAAEgZ,GAAGvmB,MAAQumB,IACZxpB,MACHwQ,EAAEub,SAASpH,MAAK,SAAUnU,EAAGmZ,GAG3B,OAFAnZ,EAAIgb,EAAE/a,EAAGD,IACTmZ,EAAI6B,EAAE/a,EAAGkZ,IACEnZ,GAAK,EAAImZ,EAAInZ,EAAI,EAAI,KAC/BxK,SAAQ,SAAUwK,EAAGmZ,GACtBnZ,EAAE3O,EAAI8nB,IACL3pB,MACH2pB,EAAEmsD,cAAgBnsD,EAAEmsD,aAAa9vE,SAAQ,SAAU2jB,GACjD,IAAIlZ,EAAIkZ,EAAErgB,QACNkgB,EAAI/Y,EAAEvN,KACVuN,EAAE0hE,aAAe1hE,EAAE0hE,YAAYhzE,UAAYqqB,IAAMA,EAAExjB,SAAQ,SAAUyK,EAAGzH,GACtEwgB,EAAExgB,GAAK4gB,EAAED,EAAGlZ,GACZD,EAAExH,KAAOwgB,EAAExgB,GAAGnH,EAAI2O,EAAExH,GAAGnH,EAAG2nB,EAAExgB,GAAG/F,MAAQ+F,MACrC2gB,EAAE/f,QAAQ4f,GAAG,OAEZhZ,GAGTxH,EAAEod,UAAU0hE,iBAAmB,SAAUt3E,GACvC,IAAImZ,EAAI3pB,KAAKa,MACT4P,EAAIzQ,KAAKsJ,QACTsgB,EAAInZ,EAAEi4E,cACNl/D,EAAIhZ,GAAKxQ,KAAK4qF,oBAAsBn6E,EAAEm6E,mBACtC5hF,EAAIhJ,KAAK46E,YACbpqE,EAAImZ,GAAKA,EAAE06C,QACX5zD,KAAOkZ,IAAMA,EAAE+zC,aACf,IAAIjuD,EAAI,EACJ4a,EAAIrqB,KAAK4jE,MACTx5C,EAAIpqB,KAAK+nF,MACTj+D,EAAI9pB,KAAKulE,eACT97C,GAAI,EACJO,EAAIK,EAAEtpB,OAEV,GAAI4oB,EAAG,CAEL,IAAI7B,GADJ2B,EAAIE,EAAE+8C,eACI9hE,IACNkM,EAAI2Y,EAAEpW,IACVoW,KAAOE,EAAEplB,YAAcolB,EAAEqoB,MAAMjxC,QAGjC,GAAIiI,GAAKhJ,KAAK2pF,SAAWngE,KAAOI,GAAKI,EAAIJ,GAAK5pB,KAAKgnE,WAAY,GAAI38C,EAAEL,EAAI,GAAKlC,GAAKuC,EAAE,GAAKvZ,EAAGuZ,EAAI,GAAID,EAAI,QAAQ,GAAIpqB,KAAK+nF,QAAU19D,EAAE,GAAKvC,GAAKuC,EAAEL,EAAI,GAAKlZ,GAAI,CAC7J,IAAIsa,EAAIprB,KAAK6qF,SAAS7qF,KAAK4jE,MAAO5jE,KAAK+nF,MAAOjgE,EAAGhX,GACjDuZ,EAAIe,EAAEw4C,MACNx5C,EAAIgB,EAAE28D,MACNt4E,EAAI2b,EAAEw9B,MACNx9B,GAAI,EAGN,IAAKxB,EAAIS,EAAEtpB,QAAU,IAAK6oB,GAAI,GAAqD,GAAjDD,EAAIlZ,EAAID,EAAE6Z,EAAET,IAAMpZ,EAAE6Z,EAAET,EAAI,IAAMS,EAAET,GAAKS,EAAET,EAAI,WAAc,IAAuBjX,GAAKgX,EAAIhX,GAAI,IAAIA,EAAIgX,OAAO,EAAIA,GAAKG,IAAML,IAAMgC,EAAE,IAAI,EAAIzrB,KAAKX,OAAQyqB,GAAI,GAEhM,MAAO,CACL85C,MAAOv5C,EACP09D,MAAO39D,EACP+/D,QAAS/+D,EACTg/D,UAAW36E,EACXgzD,kBAAmB9vD,IAIvB3J,EAAEod,UAAUw/C,YAAc,SAAUp1D,GAClC,IAAImZ,EAAI3pB,KAAKa,MACb,GAAIb,KAAK46E,cAAgB56E,KAAKuhE,UAAY53C,EAAE43C,UAAYvhE,KAAKU,MAAM6gE,UAAY/wD,EAAG,OAAO,EACzFA,EAAIxQ,KAAK8nF,mBACT9nF,KAAKmqF,QAAU35E,EAAE25E,QACjBnqF,KAAKoqF,UAAY55E,EAAE45E,UACnBpqF,KAAK8oF,eAAiBt4E,EAAEozD,MACxB5jE,KAAK6oF,eAAiBr4E,EAAEu3E,MACxB/nF,KAAKyiE,kBAAoBziE,KAAK8qF,eAAiBt6E,EAAEiyD,kBACjDp3C,EAAErrB,KAAM,qBAGVgJ,EAAEod,UAAUykE,SAAW,SAAUr6E,EAAGmZ,EAAGlZ,EAAGmZ,EAAGJ,GAC3C,IACI/Z,EADAzG,EAAIwH,EAAEzP,OAENspB,EAAI,EACJD,EAAIphB,EAGR,IAFAwgB,EAAIkC,EAAElC,EAAGxpB,KAAK+qF,cAETt7E,EAAI,EAAGA,EAAIzG,EAAGyG,IAAK,GAAIe,EAAEf,IAAMgB,EAAG,CACrC4Z,EAAIN,KAAK1W,IAAI,EAAG5D,EAAI+Z,GACpB,MAGF,IAAK/Y,EAAIhB,EAAGgB,EAAIzH,EAAGyH,IAAK,GAAID,EAAEC,GAAKmZ,EAAG,CACpCQ,EAAI3Z,EAAI+Y,EACR,MAGF,MAAO,CACLo6C,MAAOpzD,EAAEkM,MAAM2N,EAAGD,GAClB29D,MAAOp+D,EAAEjN,MAAM2N,EAAGD,GAClBw+B,MAAOv+B,EACPw+B,IAAKz+B,IAITphB,EAAEod,UAAUy/C,eAAiB,WAC3B,IAAIr1D,EAAIxQ,KAAKsJ,QACTqgB,EAAI3pB,KAAKgrF,eAAiBx6E,EAAEtN,KAC5BuN,EAAIzQ,KAAK8oF,eACTl/D,EAAI5pB,KAAK6oF,eACTr/D,EAAIxpB,KAAK6gF,WACT73E,EAAIyH,EAAE1P,OACN0O,EAAIzP,KAAKoqF,WAAa,EACtB//D,EAAIrqB,KAAKgqF,eACT5/D,EAAI5Z,EAAEmlB,KACN7L,EAAI,GACRtZ,EAAIA,EAAEy6E,cAAgBz6E,EAAEy6E,aAAaC,SAAWz7E,EAAI,EACpD,IAAIga,EACAO,EACAlC,EAAI9nB,KAAKkD,KAEb,IAAK4kB,IAAMuC,EAAG,CACZ,IAAIvZ,EAAI,GACRA,EAAE/P,OAAS4oB,EAAE5oB,OACb+mB,EAAI9nB,KAAKkD,KAAO4N,EAKlB,IAFAsZ,GAAKC,IAAMrqB,KAAKsJ,QAAQqsB,MAAO,GAE1B3L,EAAI,EAAGA,EAAIhhB,EAAGghB,IAAK,CAGtB,GAFAlZ,EAAIrB,EAAIua,EAEJK,EAAG,CACL,IAAIe,GAAI,IAAI5B,GAAI7qB,KAAKqB,KAAM,CAACyQ,EAAEuZ,IAAI+B,OAAOm1D,EAAGt3D,EAAEI,MAC9CoB,EAAE+/D,UAAYnrF,KAAKorF,SAAS56E,EAAIwZ,GAChCoB,EAAE+/D,UAAU7hF,UAAY8hB,EAAE9hB,QAAU8hB,EAAE+/D,UAAU7hF,QAAS6hB,EAAEC,EAAGA,EAAE+/D,UAAU7hF,gBAAiB8hB,EAAE0mD,iBACvF1mD,EAAItD,EAAEhX,UAAO,IAAuB6Y,EAAE7Y,KAAOgX,EAAEhX,GAAKsa,GAAI,IAAI5B,GAAI7qB,KAAKqB,KAAM2pB,EAAE7Y,GAAIL,EAAEuZ,KAE3FoB,IAAMA,EAAEnoB,MAAQonB,EAAI7Z,EAAIwZ,EAAIlZ,EAAGgZ,EAAEE,GAAKoB,GAIxC,GADAprB,KAAKsJ,QAAQqsB,KAAOvL,EAChBtC,IAAM9e,KAAOygB,EAAI3B,EAAE/mB,SAAWspB,GAAI,IAAKL,EAAI,EAAGA,EAAIP,EAAGO,IAAKA,IAAMva,GAAK4a,IAAML,GAAKhhB,GAAI8e,EAAEkC,KAAOlC,EAAEkC,GAAGkoD,kBAAmBpqD,EAAEkC,GAAGloB,WAAQ,GACtI9B,KAAKkD,KAAO4kB,EACZ9nB,KAAK0lE,OAAS57C,EACduB,EAAErrB,KAAM,wBAGVgJ,EAAEod,UAAU09C,aAAe,SAAUtzD,GACnC,MAAO,CACL5L,IAAK/C,EAAE2O,GACP6C,IAAK4X,EAAEza,KAIXxH,EAAEod,UAAUsgD,YAAc,SAAUl2D,EAAGmZ,GACrC,IAAIlZ,EAAIzQ,KAAKa,MACT+oB,EAAI5pB,KAAKU,MACT8oB,EAAIxpB,KAAK8oF,gBAAkB9oF,KAAK4jE,MAChC56D,EAAI,GACJyG,EAAIzP,KAAKulE,eAAiBvlE,KAAK+qF,aAAe,EAClDnhE,IAAIA,GAAIA,EAAE+3C,mBACV,IAAIt3C,EACAD,EAAI,EACJN,EAAI,EACJL,EAAI,EAEJO,GADJxZ,EAAIA,GAAKxQ,KAAKqrF,cAAgBrrF,KAAK6oF,gBAAkB,IAC3C9nF,OAEV,GAAI0P,EAAG,CACL,IAAIqX,EAAIrX,EAAEi2D,cACVt8C,EAAItC,EAAEljB,IACNklB,EAAIhC,EAAEzU,IAGR,IAAKgX,EAAI,EAAGA,EAAIL,EAAGK,IAAK,CACtB,IAAIe,EAAI5B,EAAEa,GACVvC,EAAItX,EAAE6Z,GACN,IAAIvZ,GAAKya,EAAEzD,IAAMkF,EAAElF,MAAQA,EAAE/mB,QAAU,EAAI+mB,IAAM8B,GAEjD,GADAwB,EAAIzB,GAAK3pB,KAAK4qF,oBAAsB5qF,KAAKsJ,QAAQshF,oBAAsB5qF,KAAKmqF,UAAY15E,IAAM+Y,EAAEa,EAAI5a,IAAM2b,IAAMhB,IAAMZ,EAAEa,EAAI5a,IAAM2b,IAAMtB,EACpIhZ,GAAKsa,EAAG,GAAIta,EAAIgX,EAAE/mB,OAAQ,KAAO+P,KAAMya,EAAEzD,EAAEhX,MAAQ9H,EAAEygB,KAAO3B,EAAEhX,SAAS9H,EAAEygB,KAAO3B,EAWtF,OARAtX,EAAI,CACF86E,YAAatiF,EACbu6D,QAAS1hE,EAAEmH,GACXw6D,QAASv4C,EAAEjiB,IAEbqiB,EAAErrB,KAAM,mBAAoB,CAC1BurF,aAAc/6E,IAETA,GAGTxH,EAAEod,UAAU29C,cAAgB,WAC1B,IAAIvzD,EAAIxQ,KAAK0mE,cAGb,OAFA1mE,KAAKujE,QAAU/yD,EAAE+yD,QACjBvjE,KAAKwjE,QAAUhzD,EAAEgzD,QACVhzD,GAGTxH,EAAEod,UAAUskE,mBAAqB,SAAUl6E,GACzC,IAAK,IAAImZ,EAAInZ,EAAEzP,OAAQ0P,EAAI,EAAGmZ,EAAI,KAAM,OAASA,GAAKnZ,EAAIkZ,GAAIC,EAAIpZ,EAAEC,GAAIA,IAExE,OAAOmZ,GAGT5gB,EAAEod,UAAUorC,UAAY,WACtBxxD,KAAK8oF,gBAAkB9oF,KAAK4lE,cAC5B5lE,KAAK6lE,iBACL,IAaI50D,EACAga,EAdAtB,EAAI3pB,KAAKsJ,QACTmH,EAAIkZ,EAAExnB,SACNynB,EAAI5pB,KAAKa,MACTmI,EAAI4gB,EAAErlB,WACNkL,EAAIzP,KAAKiiF,mBACT53D,EAAIrqB,KAAKU,MACT0pB,EAAIpqB,KAAK0lE,OACTj8C,EAAIW,EAAErpB,OACNipB,EAAIhqB,KAAKwrF,yBACT1jE,IAAMkC,EACNoB,EAAIzB,EAAE85C,UACN3yD,EAAI6Y,EAAE8hE,mBAAqBrgE,EAAI,EAC/BzY,EAAI3S,KAAKkzE,UAAY,IAGrB3oD,EAAIxX,OAAOy2D,UAEf,IAAKv4D,EAAI,EAAGA,EAAIwY,EAAGxY,IAAK,CACtB,IAAIpP,EAAIuoB,EAAEnZ,GACNka,EAAItpB,EAAEA,EACNE,OAAI,EACJ0pB,OAAI,EACJ7Y,EAAI/Q,EAAEE,EACN+qB,EAAIjrB,EAAEioE,IACNv9C,EAAI9b,GAAK4Z,EAAEloB,UAAYkoB,EAAEloB,SAASupF,QAAQ1rF,KAAK2rF,WAAa/4E,GAAK9B,EAAI,EAAIsa,GAAK,IAAM,IAAMprB,KAAK4rF,UAInG,IAHIvhE,EAAEs3C,qBAAuBt3C,EAAEw5C,sBAAsBjxD,IAAMgX,EAAE+3C,qBAAuB/3C,EAAEi6C,sBAAsB14C,MAAItpB,EAAEqvE,QAAS,GAC3HrvE,EAAEC,MAAQmpB,EAAIza,EAAEsZ,EAAEF,EAAE4nC,UAAUrmC,EAAG,EAAG,EAAG,EAAG,EAAGnB,EAAG,UAAYhqB,KAAKoF,OAAQ,IAAK,MAE1EqL,GAAKzQ,KAAKo8D,SAAW7vC,GAAKA,EAAEpB,GAAI,CAClC,IAAID,EAAIlrB,KAAK6rF,kBAAkB3gE,EAAGC,EAAGnrB,KAAKiD,OAC1CpB,EAAEqvE,SAAqBzlD,GAAV1pB,EAAIwqB,EAAEpB,IAAUu6C,OAAOx6C,EAAErV,MAaxC,GAVAmX,EAAEvB,KAAOqB,EAAIrB,EAAE,GAAI7Y,EAAI6Y,EAAE,GAAIqB,IAAMhc,GAAKoa,EAAErV,MAAQ0W,EAAEpB,GAAG2gE,OAASh/D,EAAIpB,EAAEH,EAAEH,IAAMA,EAAGf,EAAEzlB,MAAOylB,EAAEs3C,oBAAsB,GAAK70C,IAAMA,EAAI,MAAOjrB,EAAEi7D,MAAQj7D,EAAEkxE,WAAahxE,EAAE+6D,MAAOj7D,EAAEsvE,WAAapvE,EAAE+6D,OAASj7D,EAAEE,EAAIA,EAAE+6D,MAAQ,IAAKj7D,EAAE+G,OAASgK,EAAG5S,KAAK+rF,iBAAmBhqF,EAAEiqF,UAAUhsF,KAAKG,cAAgB,EAAGH,KAAKisF,MAAQ,IAChTpqF,EAAEqqF,QAAU1iE,EAAEsD,GAAKhD,EAAEO,EAAEmnC,UAAU1kC,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,KAAO,KAC9D9sB,KAAKmsF,aAAev5E,EAAI5S,KAAKmsF,WAAWC,YAAYx5E,EAAG3B,IACvDpP,EAAEsqE,WAAQ,EACV5gD,EAAE3Y,SAA2C,KAApC7Q,EAAIsoB,EAAEmnC,UAAU5+C,GAAG,GAAI,GAAI,GAAI,MAAkC/Q,EAAEsqE,MAAQriD,EAAE/nB,GAAI,IAAK,MAC/FF,EAAEyzE,SAAWt1E,KAAKqsF,cAAcxqF,GAChCA,EAAEo2E,QAAUnwD,EAAItX,EAAEoZ,EAAE4nC,UAAUrmC,EAAG,EAAG,EAAG,EAAG,EAAGnB,IAAMiB,EACnDppB,EAAE0tE,SAAW1tE,EAAE8Q,IAAMgX,EAAEhX,EAAI,cAAgByY,GAAK,GAChDvpB,EAAEg8D,SAAWnyC,EAAE1iB,GAAKA,EAAEnH,EAAEA,GAAIA,EAAEA,IAEzBA,EAAEqvE,SAAU,IAAOrvE,EAAEu6D,QAAS,MACjC,IAAuBvvC,IAAMtC,EAAIR,KAAKnlB,IAAI2lB,EAAGR,KAAK8gC,IAAI5/B,EAAI4B,KAC1D,IAAIA,EAAI5B,EAGVppB,EAAEixE,KAAO9yE,KAAKizE,MAAMlyE,OAASc,EAAEmxE,eAAY,GAC1CnxE,EAAEY,SAAWzC,KAAK6xE,OAASpiE,IAAM5N,EAAEy7D,OAAQ,GAG9Ct9D,KAAKssF,oBAAsB/hE,EAC3Bc,EAAErrB,KAAM,mBAGVgJ,EAAEod,UAAUmmE,eAAiB,SAAU/7E,EAAGmZ,EAAGlZ,GAC3C,IAAImZ,EAAI5pB,KAAKX,MACb,OAAQmR,GAAKxQ,KAAK0lE,QAAU,IAAIv9D,QAAO,SAAUqI,GAC/C,QAAOmZ,IAAMC,EAAEitD,aAAarmE,EAAE1O,MAAO0O,EAAE27D,MAAO,CAC5CzgB,SAAU9hC,EAAE8hC,cACJ,IAAOl7C,EAAE4rD,UAAY3rD,IAAMD,EAAE0gE,YAI3CloE,EAAEod,UAAUomE,WAAa,WACvB,IAAIh8E,EAAIxQ,KAAKX,MACTsqB,EAAI3pB,KAAKa,MACT4P,EAAIzQ,KAAKU,MACTkpB,EAAIgC,EAAEpb,EAAE0qE,SAGZ,OAFAvxD,GAAKA,EAAE3C,MAAQxW,EAAEm0E,YAAc/6D,EAAEzmB,MAAQwmB,EAAE3C,KAC3CvW,GAAKA,EAAEuW,MAAQxW,EAAEo0E,YAAch7D,EAAEpqB,OAASiR,EAAEuW,KACrC4C,GAGT5gB,EAAEod,UAAUqmE,iBAAmB,WAC7B,OAAOzsF,KAAK0sF,eAAiB1sF,KAAKsJ,QAAQzI,OAAS,GAAK,KAAOb,KAAKsJ,QAAQ5I,OAAS,IAGvFsI,EAAEod,UAAUumE,QAAU,WACpB,IAAIn8E,EAAIxQ,KAAKX,MACTsqB,EAAI3pB,KAAK6xE,MACTphE,EAAIzQ,KAAKq1E,YACTzrD,EAAIpZ,EAAEixE,YACVjxE,EAAIA,EAAEvJ,SACN,IAAIuiB,EAAIxpB,KAAKwsF,aACTxjF,EAAIhJ,KAAKysF,mBACTh9E,EAAIma,EAAE5gB,GACVyG,EAAIA,EAAE/B,QAAQ8b,GAAKI,EAAE5gB,GAAKyG,EAAIe,EAAEsoD,SAAStvC,GACzCG,GAAKA,EAAEmkC,MAAK,IAAO9tD,KAAKsJ,QAAQwkD,UAAO,EAASr+C,GAChDgB,GAAKA,EAAEq9C,QAGT9kD,EAAEod,UAAU1Y,QAAU,SAAU8C,GAC9B,IAAImZ,EAAI3pB,KAAKX,MACToR,EAAIzQ,KAAK6xE,MACTjoD,EAAI5pB,KAAKq1E,YACT7rD,EAAIG,EAAE+hC,SACN1iD,EAAIohB,EAAEpqB,KAAKsJ,QAAQi+C,WACnB93C,EAAI,CAACzP,KAAKysF,mBAAoBzjF,EAAEqC,SAAUrC,EAAEsmB,OAAQtmB,EAAE2rC,OAAOxsB,OAC7DkC,EAAIV,EAAE83D,YAAYhyE,GAClBqa,EAAIH,EAAE83D,YAAYhyE,EAAI,KAC1B,GAAIe,GAAKC,EAAGzH,EAAIhJ,KAAKwsF,aAAcniE,EAAIA,EAAEnjB,KAAK,SAAU8B,EAAExJ,SAAWwJ,EAAE7F,MAAQ,EAAGqmB,IAAMxgB,EAAEnH,EAAI8nB,EAAEu/C,YAAa7+C,EAAIV,EAAE1iB,SAAS6xD,SAAS9vD,GAAI2gB,EAAE83D,YAAYhyE,GAAK4a,EAAGP,EAAIH,EAAE1iB,SAAS6xD,SAAS,CACrLj3D,EAAG2nB,GAAKG,EAAEg7D,WAAa,GAAK,IAAM,GAClC5iF,EAAGynB,GAAKG,EAAEy/C,UAAYz/C,EAAEw/C,QACxBhmE,MAAO,GACP3D,OAAQgqB,EAAIG,EAAEy1C,WAAaz1C,EAAEljB,cAC3BkjB,EAAE83D,YAAYhyE,EAAI,KAAOqa,GAAIrZ,EAAEq9C,KAAKzjC,GAAIT,GAAKA,EAAEkkC,KAAKhkC,QAAQ,GAAIO,IAAMA,EAAErd,SAAS,wBAAyB,CAC5G2c,EAAI3pB,KAAKwsF,aACT,IAAI/iE,EAAIzgB,EAAE4F,KACVgb,GAAKA,EAAElnB,QAAQioD,WAAW5pD,SAAWiI,EAAE4F,KAAO,SAAU4B,EAAGmZ,GACzDF,GAAKA,EAAE/H,MAAMiI,EAAG9B,WAChBiC,GAAKA,EAAEpnB,SAAWonB,EAAE5iB,KAAKyiB,EAAE1K,KAAM,UAAY0K,EAAE1K,KAAOzO,EAAI,GAAKA,KAEjE6Z,EAAE7nB,SAAS,wBAAwBkL,QAAQic,EAAG3gB,KAIlDA,EAAEod,UAAUwmE,aAAe,WACzB,IAAIp8E,EAAIxQ,KACRA,KAAK2sF,UACLjgE,EAAE1sB,KAAKX,MAAMoiF,aAAa,SAAU93D,EAAGlZ,EAAGmZ,GACxCD,IAAMnZ,EAAEnR,MAAMgB,UAAU+L,cAAc,oBAAoB2f,OAAOpC,EAAExkB,GAAI,UAAYwkB,EAAEzjB,iBAAkB0jB,EAAEnZ,OAE3GzQ,KAAK6sF,mBAAoB,EACzBxhE,EAAErrB,KAAM,iBAGVgJ,EAAEod,UAAU0mE,WAAa,WACvB,IAMIr9E,EACA4a,EAPA7Z,EAAIxQ,KAAK0lE,OACT/7C,EAAI3pB,KAAKX,MACToR,EAAIzQ,KAAKsJ,QAAQvF,OACjB6lB,EAAI5pB,KAAKA,KAAK+sF,eAAiB/sF,KAAKq1E,YACpC7rD,EAAIxpB,KAAKa,MACTmI,EAAI0iB,EAAEjb,EAAEtR,UAAUqqB,IAAKA,EAAE62C,WAAgB,KAAMrgE,KAAKssF,qBAAuB77E,EAAE63E,iBAAmB73E,EAAE03E,QAGtG,IAAI,IAAO13E,EAAEtR,SAAWa,KAAK0zE,iBAAkB,IAAKjkE,EAAI,EAAGA,EAAIe,EAAEzP,OAAQ0O,IAAK,CAC5E,IAAI2a,EAAI5Z,EAAEf,GACNqa,GAAKO,EAAID,EAAE3nB,SAAW,UAAY,OAClCgnB,EAAIW,EAAErmB,QAAU,GAChBimB,IAAMI,EAAErmB,OAEZ,IAAKiF,QAAK,IAAuBygB,EAAEtqB,SAAWsqB,EAAEtqB,WAAairB,EAAE8mD,SAAU,IAAO9mD,EAAEgyC,QAAS,CACzF,IAAIt0C,EAAI4D,EAAEjC,EAAE8lB,OAAQvvC,KAAKuvC,OAAQ,QAC7BnkB,EAAIprB,KAAKg1E,cAAc5qD,EAAGA,EAAE2K,UAAY,UAC5C/0B,KAAKiiF,qBAAuB73D,EAAEinD,UAAY7nD,EAAEgyC,WAAapwC,EAAEjoB,OAAS,GAAKqmB,EAAErmB,OAC3E,IAAI2N,GAAI,IAAOsZ,EAAEkrD,SACjBjrD,EAAIA,EAAEvZ,EAAI,OAAS,QAAQA,GAAGpD,QAAQ0d,GAAKta,IAAM,GAAKsa,EAAEjoB,OAAS,IAAMinB,EAAE4iE,YAAc5iE,EAAE3nB,QAAU4nB,EAAIV,EAAE1iB,SAASsoC,OAAOznB,EAAGsD,EAAEvpB,EAAGupB,EAAErpB,EAAGqpB,EAAEjoB,MAAOioB,EAAE5rB,OAAQwqB,EAAIP,EAAIhZ,GAAGrJ,IAAIwiB,GAAI5pB,KAAKiiF,oBAAsBt4D,EAAE2hD,cAAgBjhD,EAAEnjB,KAAK,CAC9NrF,EAAGuoB,EAAEinD,YACHvnD,EAAI,YACRO,GAAK,YAAcP,GAAKO,EAAEvZ,EAAI,OAAS,QAAQA,GAAGpD,QAAQ0d,GACtDf,IAAMV,EAAEu4B,YAAY73B,EAAEP,GAAG9pB,KAAKm1E,aAAa/qD,EAAGA,EAAE2K,UAAY,WAChE1K,GAAKA,EAAE7nB,SAAS4nB,EAAEyoD,gBAAgB,QAC7BxoD,IAAMD,EAAE3nB,QAAU4nB,EAAEnkB,aAI/B8C,EAAEod,UAAU4uD,cAAgB,SAAUxkE,EAAGmZ,GACvC,IAAIlZ,EAAIzQ,KAAKsJ,QACTsgB,EAAInZ,EAAE1M,OACNylB,EAAIhZ,EAAEzM,QAAU,GAChBiF,EAAIwgB,EAAE+lB,QAAU3lB,EAAE2lB,OAClB9/B,EAAIic,EAAElC,EAAE2+D,OAAQv+D,GAAKA,EAAEu+D,QAS3B,OARAx+D,IAAMC,EAAIA,EAAEpmB,OAAOmmB,GAAIA,EAAIH,EAAEhmB,QAAUgmB,EAAEhmB,OAAOmmB,GAAIla,EAAIic,EAAE/B,GAAKA,EAAEw+D,OAAQv+D,GAAKA,EAAEu+D,OAAQ14E,GAAKA,GAAKma,GAAKA,EAAE2+D,YAAc,KACvH/3E,EAAEw8E,SAAWhkF,GAAK,IAAMA,EAAE6V,QAAQ,OAClCrO,EAAEw8E,WAAav9E,EAAI,GACnBe,EAAI+a,EAAE9b,GAAK,CACT5N,EAAG4O,EAAEs9C,MAAQhkC,KAAK4U,MAAMnuB,EAAE1O,MAAQ2N,GAAKe,EAAE1O,MAAQ2N,EACjD1N,EAAGyO,EAAE27D,MAAQ18D,GACX,GACJA,IAAMe,EAAErN,MAAQqN,EAAEhR,OAAS,EAAIiQ,GACxBe,GAGTxH,EAAEod,UAAU+uD,aAAe,SAAU3kE,EAAGmZ,GACtC,IAAIlZ,EAAIzQ,KAAKsJ,QAAQvF,OACjB6lB,EAAIpZ,GAAKA,EAAElH,QACXkgB,EAAII,GAAKA,EAAE7lB,QAAU,GACrBiF,EAAI4gB,GAAKA,EAAEjmB,MACX8L,EAAIe,GAAKA,EAAE7M,MACX0mB,EAAI7Z,GAAKA,EAAEsiE,MAAQtiE,EAAEsiE,KAAKnvE,MAC1BymB,EAAIpqB,KAAK2D,MAab,OAZA6M,EAAIkb,EAAElC,EAAEtkB,UAAWuL,EAAEvL,WACrB0kB,EAAI,EACJQ,EAAIphB,GAAKqhB,GAAK5a,GAAK2a,EACnBphB,EAAIwgB,EAAEi/D,WAAah4E,EAAEg4E,WAAar+D,EAClC3a,EAAI+Z,EAAEhlB,WAAaiM,EAAEjM,WAAa4lB,EAClCT,EAAIA,GAAK,SACTlZ,EAAIA,EAAEjN,OAAOmmB,IAAM,GACnBA,EAAIH,EAAEhmB,QAAUgmB,EAAEhmB,OAAOmmB,IAAM,GAC/BnZ,EAAIkb,EAAE/B,EAAEzkB,UAAWuL,EAAEvL,UAAWsL,EAAIkb,EAAE/B,EAAE6+D,cAAe/3E,EAAE+3E,cAAe,IACxEx/E,EAAI2gB,EAAE8+D,WAAah4E,EAAEg4E,WAAaz/E,EAG3B,CACL7B,OAHFsI,EAAIka,EAAEnlB,WAAaiM,EAAEjM,WAAaiL,EAIhC,eAAgBe,EAChB9I,KAAMsB,EACN00C,QALF9zB,EAAI8B,EAAE/B,EAAE+zB,QAASjtC,EAAEitC,QAAS9zB,KAS9B5gB,EAAEod,UAAUlgB,QAAU,SAAUsK,GAC9B,IAKI6Z,EACAD,EACAN,EAPArZ,EAAIzQ,KACJ4pB,EAAInZ,EAAEpR,MACNmqB,EAAI,mBAAmBlL,KAAKmL,EAAE1J,UAAUC,WACxChX,EAAIyH,EAAEvN,MAAQ,GAclB,IATAmoB,EAAE5a,EAAG,UAAW,CACdw8E,oBAAqBz8E,IAEvBxQ,KAAKktF,aAAa18E,IACjBC,EAAE44E,WAAa,IAAIrjF,SAAQ,SAAUwK,IACnCsZ,EAAIrZ,EAAED,KAAOsZ,EAAE5pB,SAAWypB,EAAEG,EAAE5pB,OAAQuQ,GAAIqZ,EAAEy3C,QAAUz3C,EAAEq+C,aAAc,MAEzE13D,EAAE2hE,YAAc3hE,EAAEpR,MAAM8B,OAAOkxE,YAAY5hE,GAEtC4Z,EAAIrhB,EAAEjI,OAAQspB,MAAOD,EAAIphB,EAAEqhB,KAAOD,EAAElkB,SAAWkkB,EAAElkB,UAEtDuK,EAAE08E,OAAS18E,EAAE08E,MAAMnnF,SAAQ,SAAUwK,GACnC,OAAOA,EAAEtK,aAEX+K,EAAE2Z,aAAana,EAAE28E,kBACjB1gE,EAAEjc,GAAG,SAAUD,EAAGmZ,GAChBnZ,aAAazO,IAAMyO,EAAE68E,SAAyD78E,EAAzCgZ,GAAK,UAAYG,EAAI,OAAS,gBAErEC,EAAEolD,cAAgBv+D,IAAMmZ,EAAEolD,iBAAc,GACxCrlD,EAAEC,EAAE1pB,OAAQuQ,GACZmZ,EAAEs4D,cACFx1D,EAAEjc,GAAG,SAAUkZ,EAAGC,GAChBpZ,GAAK,aAAeoZ,UAAYnZ,EAAEmZ,OAItC5gB,EAAEod,UAAUknE,WAAa,WACvB,IAUItjE,EACAlC,EACAsD,EACAta,EACA6B,EACA1B,EACAga,EACAppB,EAjBA2O,EAAIxQ,KACJ2pB,EAAI3pB,KAAKX,MACToR,EAAIkZ,EAAE1iB,SACN2iB,EAAI5pB,KAAKizE,MACTzpD,EAAIxpB,KAAKmtF,OAAS,GAClBnkF,EAAIhJ,KAAKutF,MACT99E,EAAIzP,KAAKwtF,KACTnjE,EAAIN,KAAK1W,IAAIsW,EAAEy1C,WAAYz1C,EAAEljB,aAC7B2jB,EAAIpqB,MAAMA,KAAKkzE,UAAY,KAAO,QAClCzpD,EAAIE,EAAE+hC,SASNnhC,GAAI,EAER,GAAIX,EAAE7oB,SAAWiI,GAAKyG,IAAM2a,QAAK,IAAuBA,EAAExlB,IAAK,CAC7D,IAAIumB,EAAIf,EAAEoxC,SACNz5D,EAAIqoB,EAAE21C,MACV/2D,IAAMhJ,KAAKytF,UAAYzkF,EAAEG,OACzBsG,GAAKA,EAAEtG,OACP,IAAIsiB,EAAIrB,EAAEs8C,cACV98C,EAAE5jB,SAAQ,SAAU4jB,EAAG4C,GACrBxC,EAAImB,EAAIppB,EAAI4nB,EAAEs/C,UAAY,EAAIlnE,EAAI,EAAIqoB,EAAEzpB,SAAS8qB,EAAE7mB,MAAQ,EAC3DolB,EAAIF,EAAE4B,EAAE5D,EAAGkC,GAAI,EAAGK,GAClBvC,EAAIgC,EAAEC,KAAKw2B,MAAMn2B,EAAEzpB,SAAS+qB,EAAE9B,EAAE9kB,MAAO2mB,EAAEpY,MAAM,IAAO,GAAI,EAAGgX,GAC7DE,IAAMP,EAAIlC,EAAIsC,EAAEzpB,SAAS8qB,EAAEpY,MAC3BvC,EAAIiZ,KAAK8gC,IAAI7gC,EAAIlC,GACjBnV,EAAIoX,KAAKnlB,IAAIolB,EAAGlC,GAChB7W,EAAI8Y,KAAK1W,IAAI2W,EAAGlC,GAChBsC,EAAE+2C,SAAW/1C,EAAI,CACfvpB,EAAG4nB,EAAIxY,EAAI0B,EACX5Q,EAAG,EACHoB,MAAO2N,EACPtR,OAAQ6qB,GACPtoB,IAAMqpB,EAAEvpB,EAAI8nB,EAAEu/C,WAAa99C,EAAEvpB,KAAOupB,EAAI,CACzCvpB,EAAG,EACHE,EAAG0nB,EAAIxY,EAAI0B,EACXxP,MAAOknB,EACP7qB,OAAQsR,GACP/O,IAAMqpB,EAAErpB,EAAI4nB,EAAEs/C,UAAY79C,EAAErpB,IAC/B0nB,GAAKhZ,EAAEi9E,QAAUtiE,EAAIhB,EAAE+2C,QAAU,CAC/Bt/D,EAAG,EACHE,EAAGopB,EAAIxY,EAAI1B,EACXzR,OAAQ4rB,EAAEjoB,MACVA,MAAOwmB,EAAEy1C,YACP,CACFv9D,EAAGupB,EAAErpB,EAAI4nB,EAAEy/C,SAAWz/C,EAAEwmD,WAAWtuE,EACnCE,EAAG,EACHoB,MAAOioB,EAAE5rB,OACTA,OAAQmqB,EAAEljB,cAEZ+iB,EAAEgD,GAAKhD,EAAEgD,GAAG9e,QAAQ0d,GAAK5B,EAAEgD,GAAK/b,EAAEqoD,SAAS1tC,GAC3CH,EAAIza,EAAE,aAAegc,GACrB3qB,EAAI2O,EAAE,cAAgBgc,GACtBxjB,GAAKnH,GAAKA,EAAEisD,KAAKtkC,EAAEgD,IACnB/c,GAAKwb,GAAKA,EAAE6iC,KAAKtkC,EAAEgD,IACnBjC,EAAIX,EAAE9kB,MAAQ2mB,EAAEpY,IAChB7C,EAAEm9E,YAAc,IAAM7lE,IAAMA,OAAI,MAElC9nB,KAAKmtF,MAAQ3jE,OACRhZ,EAAE4rD,UAAYpzD,GAAKA,EAAEhB,OAAQyH,GAAKA,EAAEzH,SAG7CgB,EAAEod,UAAUwnE,aAAe,SAAUp9E,GACnC,SAASmZ,IACP,CAAC,QAAS,eAAe3jB,SAAQ,SAAU2jB,GACzClZ,EAAEkZ,KAAOC,EAAE3iB,SAASymF,OAASj9E,EAAEkZ,GAAGziB,KAAK,CACrC/D,MAAOsN,EAAE/P,MAAMsmB,IACfxnB,OAAQiR,EAAE5P,MAAMmmB,MACdvW,EAAEkZ,GAAGxmB,MAAQsN,EAAE/P,MAAMsmB,IAAKvW,EAAEkZ,GAAGnqB,OAASiR,EAAE5P,MAAMmmB,IAAKvW,EAAEkZ,GAAGymC,QAAO3/C,EAAEo9E,gBAAsBr9E,OAIjG,IAAIC,EAAIzQ,KACJ4pB,EAAInZ,EAAEpR,MACVoR,EAAE5P,QAAU4P,EAAEmlE,eAAetuE,KAAKijB,EAAEX,EAAG,SAAUD,IAAKA,IAAKlZ,EAAEm9E,aAAejkE,IAG9E3gB,EAAEod,UAAU0nE,UAAY,SAAUt9E,EAAGmZ,EAAGlZ,EAAGmZ,EAAG5gB,GAC5C,IAAIyG,EAAIzP,KAAKwQ,GACT6Z,GAAK5a,EAST,OARAgB,EAAI,CACF0/C,WAAY1/C,EACZkyC,OAAQ/4B,GAAK,SAEf,IAAuB5pB,KAAK09C,SAAW19C,KAAKX,MAAM6iD,YAAc,aAAeliD,KAAK2qC,QAAUl6B,EAAEitC,QAAU19C,KAAK09C,SAC/GrzB,IAAMrqB,KAAKwQ,GAAKf,EAAIzP,KAAKX,MAAM4H,SAASuiB,IAAIpiB,IAAI4B,IAChDyG,EAAEjN,SAAS,cAAgBmnB,EAAI,sBAAwB3pB,KAAKiD,MAAQ,eAAiBjD,KAAKoF,KAAO,YAAcokB,EAAExpB,KAAKowE,YAAc,oBAAsBpwE,KAAKowE,WAAa,IAAM,KAAOpwE,KAAKsJ,QAAQ2B,WAAa,KAAOwE,EAAEzC,SAAS,sBAAwB,sBAAwB,KAAK,GAC1RyC,EAAEvI,KAAKuJ,GAAG4Z,EAAI,OAAS,WAAWrqB,KAAKg7E,cAChCvrE,GAGTzG,EAAEod,UAAU40D,WAAa,WACvB,IAAIxqE,EAAIxQ,KAAKX,MACTsqB,EAAI3pB,KAAKa,MACT4P,EAAIzQ,KAAKU,MAEb,OADA8P,EAAEk7C,WAAa/hC,EAAIlZ,EAAGA,EAAIzQ,KAAKa,OACxB,CACL4wD,WAAY9nC,EAAIA,EAAE/oB,KAAO4P,EAAE44D,SAC3B1X,WAAYjhD,EAAIA,EAAEhQ,IAAM+P,EAAE24D,QAC1BxX,OAAQ,EACRC,OAAQ,IAIZ5oD,EAAEod,UAAU8mE,aAAe,SAAU18E,GACnCA,GAAKoc,EAAE5sB,MACPA,KAAK41E,eAAe70E,SAAWf,KAAK41E,eAAe5vE,SAAQ,SAAUwK,GACnEA,OACExQ,KAAK41E,eAAe70E,OAAS,IAGnCiI,EAAEod,UAAUq6C,OAAS,WACnB,IAAIjwD,EAAIxQ,KACJ2pB,EAAInZ,EAAEnR,MACNoR,EAAID,EAAElH,QACNsgB,EAAIQ,EAAE3Z,EAAE82C,WACR/9B,EAAIhZ,EAAE4rD,QAAU,UAAY,SAC5BpzD,EAAIyH,EAAEkyC,OACNlzC,EAAIe,EAAE86D,YACNjhD,EAAIV,EAAEi8D,YACN97D,EAAIH,EAAE+hC,SACV/hC,GAAKnZ,EAAEq8E,mBAAqBljE,EAAE1iB,SAASmoD,MAAQxlC,EAAEve,SAAW,EAC5DggB,EAAErrB,KAAM,UACR,IAAIypB,EAAIjZ,EAAEs9E,UAAU,QAAS,SAAUtkE,EAAGxgB,EAAGqhB,GAC7C7Z,EAAE6kE,YAAc7kE,EAAEs9E,UAAU,cAAe,UAAWtkE,EAAGxgB,EAAGqhB,IAC5D,IAAO5Z,EAAEq9C,MAAQt9C,EAAEm8E,UACnBn8E,EAAE9C,SAAWic,GAAKnZ,EAAE9C,SAAQ,GAC5B+b,EAAEiiC,WAAWhgC,EAAElb,EAAEu9E,WAAYv9E,EAAEoqE,cAAe9wD,EAC9CtZ,EAAEw9E,YAAcx9E,EAAEw9E,YAAax9E,EAAE88E,cACjC98E,EAAE4rD,SAAW5rD,EAAEs8E,aACft8E,EAAEy9E,gBAAkBz9E,EAAEy9E,iBACtBz9E,EAAE09E,cAAgB19E,EAAE09E,eACpB19E,EAAEq/D,cAAe,IAAOr/D,EAAElH,QAAQxF,qBAAuB0M,EAAEq/D,cAC3Dr/D,EAAEo9E,aAAa9jE,GACftZ,EAAE9C,SAAWic,GAAKnZ,EAAE9C,UACpB+B,IAAMka,GAAKC,EAAE+qB,QAAUhrB,GAAKC,EAAE+qB,OAAQnkC,EAAE48E,iBAAmB9iE,GAAE,WAC3D9Z,EAAEo8E,iBACDjjE,GAAK,IACRnZ,EAAE+wD,SAAU,EACZ/wD,EAAE86D,aAAc,EAChBjgD,EAAE7a,EAAG,gBAGPxH,EAAEod,UAAUrmB,OAAS,WACnB,IAAIyQ,EAAIxQ,KAAKX,MACTsqB,EAAI3pB,KAAKuhE,SAAWvhE,KAAK2lE,YACzBl1D,EAAIzQ,KAAK6xE,MACTjoD,EAAI5pB,KAAKa,MACT2oB,EAAIxpB,KAAKU,MACb+P,IAAMD,EAAEk7C,UAAYj7C,EAAEvJ,KAAK,CACzB/D,MAAOqN,EAAEy4D,UACTzpE,OAAQgR,EAAE04D,aACRz4D,EAAE/C,QAAQ,CACZ+jD,WAAY/lC,EAAE9B,GAAKA,EAAEhpB,KAAM4P,EAAE44D,UAC7B1X,WAAYhmC,EAAElC,GAAKA,EAAE/oB,IAAK+P,EAAE24D,YAE9BnpE,KAAKwxD,YACLxxD,KAAKygE,SACL92C,UAAY3pB,KAAKwoE,QAGnBx/D,EAAEod,UAAU0xD,YAAc,SAAUtnE,EAAGmZ,GACrC,IAAIlZ,EAAIzQ,KAAKa,MACT+oB,EAAI5pB,KAAKU,MACT8oB,EAAIxpB,KAAKX,MAAMqsD,SACnB,OAAO1rD,KAAKmuF,aAAa,CACvBlW,QAASzuD,EAAI/Y,EAAEuW,IAAMxW,EAAE67D,OAAS57D,EAAE+jC,IAAMhkC,EAAE47D,OAAS37D,EAAE+jC,IACrD23B,MAAO3iD,EAAII,EAAE5C,IAAMxW,EAAE47D,OAASxiD,EAAE4qB,IAAMhkC,EAAE67D,OAASziD,EAAE4qB,KAClD7qB,EAAGnZ,IAGRxH,EAAEod,UAAUgoE,YAAc,SAAU59E,GAClC,SAASmZ,EAAEnZ,EAAGoZ,EAAGJ,GACf,IAAIxgB,EAAIwH,GAAKA,EAAEzP,OAEf,GAAIiI,EAAG,CACL,IAAIyG,EAAIgB,EAAE49E,YAAYzkE,EAAIJ,GAK1B,OAJAhZ,EAAEmU,MAAK,SAAUnU,EAAGmZ,GAClB,OAAOnZ,EAAEf,GAAKka,EAAEla,MAGX,CACL7N,MAAO4O,EAFTxH,EAAI+gB,KAAK4U,MAAM31B,EAAI,IAGjBpI,KAAM+oB,EAAEnZ,EAAEkM,MAAM,EAAG1T,GAAI4gB,EAAI,EAAGJ,GAC9BqjC,MAAOljC,EAAEnZ,EAAEkM,MAAM1T,EAAI,GAAI4gB,EAAI,EAAGJ,KAKtCxpB,KAAKsuF,gBAAiB,EACtB,IAAI79E,EAAIzQ,KACJ4pB,GAAK,EAAInZ,EAAEnH,QAAQuuE,mBAAmBh5D,QAAQ,KAAO,EAAI,SACtDpO,EAAE+3D,OACTl+C,GAAE,WACA7Z,EAAE+3D,OAAS7+C,EAAElZ,EAAE87E,eAAe,MAAO97E,EAAE8nE,aAAc3uD,EAAGA,GACxDnZ,EAAE69E,gBAAiB,IAClB79E,EAAEnH,QAAQilF,OAAS/9E,GAAK,eAAiBA,EAAEpL,KAAO,EAAI,IAG3D4D,EAAEod,UAAU+nE,aAAe,SAAU39E,EAAGmZ,EAAGlZ,GAkBzC,IAAIzH,EAAIhJ,KACJyP,EAAIzP,KAAKquF,YAAY,GACrBhkE,EAAIrqB,KAAKquF,YAAY,GACrBjkE,EAAIT,EAAI,QAAU,OAGtB,GAFAA,GAAK,EAAI3gB,EAAEM,QAAQuuE,mBAAmBh5D,QAAQ,KAAO,EAAI,EACzD7e,KAAKwoE,QAAUxoE,KAAKsuF,gBAAkBtuF,KAAKouF,YAAY39E,GACnDzQ,KAAKwoE,OAAQ,OAvBjB,SAAS5+C,EAAEpZ,EAAGmZ,EAAGlZ,EAAGqZ,GAClB,IAAIL,EAAIE,EAAE/nB,MACNooB,EAAIhhB,EAAEqlF,YAAY59E,EAAIqZ,GACtBhC,EAAI2B,EACJ2B,EAAI5B,EAAEhZ,EAAEf,KAAO+Z,EAAEC,EAAEha,IAAMsa,KAAK4zB,IAAIntC,EAAEf,GAAKga,EAAEha,GAAI,GAAK,KACpDqB,EAAI0Y,EAAEhZ,EAAE6Z,KAAOb,EAAEC,EAAEY,IAAMN,KAAK4zB,IAAIntC,EAAE6Z,GAAKZ,EAAEY,GAAI,GAAK,KASxD,OARAvZ,GAAKsa,GAAK,IAAMta,GAAK,GACrB2Y,EAAEuuD,KAAOxuD,EAAE1Y,GAAKiZ,KAAK6sD,KAAK9lE,GAAKiC,OAAOy2D,UACtC//C,EAAEsuD,MAAQvuD,EAAE4B,GAAKrB,KAAK6sD,KAAKxrD,GAAKrY,OAAOy2D,UAGvCp+C,EAAI,GAFJpB,EAAIxZ,EAAEwZ,GAAKP,EAAEO,IAED,QAAU,OACtBL,EAFA7Y,EAAI,EAAIkZ,EAAI,OAAS,WAEclC,GAA1BhX,EAAI8Y,EAAEpZ,EAAGmZ,EAAE7Y,GAAIL,EAAI,EAAGqZ,IAAUM,GAAKtC,EAAEsC,GAAKtZ,EAAI2Y,GACzDE,EAAEyB,IAAMrB,KAAK6sD,KAAK5sD,EAAIA,GAAKlC,EAAEsC,KAAiCtC,GAA1BtX,EAAIoZ,EAAEpZ,EAAGmZ,EAAEyB,GAAI3a,EAAI,EAAGqZ,IAAUM,GAAKtC,EAAEsC,GAAK5Z,EAAIsX,GAC7EA,EASe8B,CAAEpZ,EAAGxQ,KAAKwoE,OAAQ7+C,EAAGA,IAG/C3gB,EAAEod,UAAUolE,uBAAyB,WACnC,IAAIh7E,EAAIxQ,KAAKsJ,QACTqgB,EAAInZ,EAAEnO,WACNoO,EAAIzQ,KAAKa,MAGb,MADA,aADA2P,EAAIA,EAAEy1D,kBACcz1D,EAAIC,EAAE+qD,UAAY,GAAK,IACpCjwC,EAAE/a,GAAKA,GAAKmZ,GAAKlZ,EAAEpO,YAAc,GAG1C2G,EAAEod,UAAUimE,cAAgB,SAAU77E,GACpC,IAAImZ,EAAI3pB,KAAKX,MACToR,EAAIzQ,KAAKa,MACT+oB,EAAI5pB,KAAKU,MACb,YAAO,IAAuB8P,EAAE27D,YAAS,IAAuB37D,EAAE1O,OAAS,GAAK0O,EAAE27D,OAAS37D,EAAE27D,QAAUviD,EAAIA,EAAE5C,IAAM2C,EAAEu/C,aAAe,GAAK14D,EAAE1O,OAAS0O,EAAE1O,QAAU2O,EAAIA,EAAEuW,IAAM2C,EAAEs/C,YAGhLjgE,EAAEod,UAAUypD,YAAc,WACxB,IAAIr/D,EAAIxQ,KACJ2pB,EAAInZ,EAAElH,QACNmH,EAAIkZ,EAAE6kE,YACN5kE,EAAI,GAAGmC,OAAOtb,EAAID,EAAEi+E,SAAWj+E,EAAEk+E,WACjCllE,EAAIhZ,EAAEnR,MACN2J,EAAIwgB,EAAEilD,QACNh/D,EAAI+Z,EAAEviB,SACNojB,EAAIb,EAAElgB,QAAQlI,QAAQymD,KACtBz9B,EAAI5Z,EAAEkgE,QACN5mD,EAAI,SAAUH,GACZH,EAAEwlD,cAAgBx+D,GAAGA,EAAEokE,eAEzBnrD,EAAI,qBAAuB3Y,EAAI,KAAQ,MAAQ,IAEnDsZ,EAAIA,EAAEljB,KAAK,CACT0iB,EAAGA,IACApZ,EAAE+8E,QAAU/8E,EAAEkgE,QAAUjhE,EAAExJ,KAAK2jB,GAAG1iB,KAAK,CAC1CipD,WAAY3/C,EAAE4rD,QAAU,UAAY,SACpCzZ,OAAQ,IACPngD,SAASiO,EAAI,0BAA4B,2BAA2BrJ,IAAIoJ,EAAEqhE,OAAQroD,EAAE04B,YAAc1xC,EAAEkgE,QAAQxpE,KAAK,CAClH,iBAAkB,QAClB,kBAAmB,QACnBC,OAAQsiB,EACR/hB,KAAM+I,EAAIgZ,EAAI,OACd,eAAgBjZ,EAAE+8E,MAAMv/B,eAAiBv9C,EAAI,EAAI,EAAI4Z,KACnD,CAAC7Z,EAAEkgE,QAASlgE,EAAE6kE,YAAa7kE,EAAEyqE,iBAAiBj1E,SAAQ,SAAUwK,GAC9DA,IAAMA,EAAEhO,SAAS,sBAAsBuG,GAAG,YAAa+gB,GAAG/gB,GAAG,YAAY,SAAUyH,GACrFxH,EAAE2vE,kBAAkBnoE,MAClBmZ,EAAEznB,SAAWsnB,EAAE04B,YAAc1xC,EAAEhQ,IAAI,CACrC0B,OAAQynB,EAAEznB,SACRkpB,IAAI5a,EAAEzH,GAAG,aAAc+gB,OAE7BuB,EAAErrB,KAAM,qBAGVgJ,EAAEod,UAAUmkE,SAAW,SAAU/5E,EAAGmZ,EAAGlZ,EAAGmZ,EAAGJ,GAC3C,IAAIxgB,EAAIhJ,KAAKsJ,QACTmG,EAAIzP,KAAKkD,KACTmnB,EAAIrqB,KAAKX,MACT+qB,EAAIpqB,KAAKa,MACbupB,EAAIA,GAAKA,EAAEm4C,UAAYn4C,EAAE4nB,MACzB,IAEIhoB,EAFAF,EAAI9gB,EAAE9F,KACNumB,EAAIzpB,KAAK4jE,MAEbj6C,EAAI+B,EAAE/B,GAAG,GACT,IAAI7B,EAAI,CACN5nB,OAAQF,MAEVA,KAAK6gF,WAAWz6D,UAAUsrD,aAAahwD,MAAMoG,EAAG,CAACtX,IACjD,IAAI4a,EAAItD,EAAEjmB,EACNiP,EAAI2Y,EAAE1oB,OACV,GAAIf,KAAKulE,gBAAkBn6C,EAAI3B,EAAE3Y,EAAI,GAAI,IAAKkZ,GAAI,EAAIlZ,GAAK2Y,EAAE3Y,EAAI,GAAKsa,GAAIta,IAC1E9Q,KAAKk0E,qBAAqBpsD,EAAG,SAAUhX,EAAG,EAAG,GAC7C9Q,KAAKk0E,qBAAqBpsD,EAAGhX,GAC7BsZ,GAAKtC,EAAEziB,OAAS+kB,EAAEgB,GAAKtD,EAAEziB,MACzBykB,EAAE/E,OAAOjU,EAAG,EAAGN,IACXwZ,GAAKhqB,KAAKgrF,iBAAehrF,KAAKkD,KAAK6hB,OAAOjU,EAAG,EAAG,MAAO9Q,KAAK4lE,eAChE,UAAY58D,EAAEqrE,YAAcr0E,KAAK6lE,iBACjCp1D,IAAMhB,EAAE,IAAMA,EAAE,GAAGiB,OAASjB,EAAE,GAAGiB,QAAO,IAAOjB,EAAE8uC,QAASv+C,KAAKk0E,qBAAqBpsD,EAAG,SAAUgC,EAAEy0B,WACnG,IAAO/0B,GAAK6B,EAAErrB,KAAM,WAAY,CAC9B4B,MAAOkmB,IAET9nB,KAAK2lE,YAAc3lE,KAAKuhE,SAAU,EAClC53C,GAAKU,EAAEtqB,OAAO6pB,IAGhB5gB,EAAEod,UAAUmuD,YAAc,SAAU/jE,EAAGmZ,EAAGlZ,GACxC,IAAI+Y,EAAIxpB,KACJgJ,EAAIwgB,EAAEtmB,KACNuM,EAAIzG,EAAEwH,GACN6Z,EAAIb,EAAEk8C,OACNt7C,EAAIZ,EAAEnqB,MACNyqB,EAAI,WACNO,GAAKA,EAAEtpB,SAAWiI,EAAEjI,QAAUspB,EAAEtF,OAAOvU,EAAG,GAC1CxH,EAAE+b,OAAOvU,EAAG,GACZgZ,EAAElgB,QAAQpG,KAAK6hB,OAAOvU,EAAG,GACzBgZ,EAAE0qD,qBAAqBzkE,GAAK,CAC1BvP,OAAQspB,GACP,SAAUhZ,EAAG,GAChBf,GAAKA,EAAEvJ,UACPsjB,EAAE+3C,SAAU,EACZ/3C,EAAEm8C,aAAc,EAChBh8C,GAAKS,EAAErqB,UAGT6pB,EAAEnZ,EAAG2Z,GACLT,EAAI+B,EAAE/B,GAAG,GACTla,EAAIA,EAAE8iE,eAAe,SAAU,KAAMzoD,GAAKA,KAG5C9gB,EAAEod,UAAU1V,OAAS,SAAUF,EAAGmZ,EAAGlZ,EAAGmZ,GACtC,SAASJ,IACPxgB,EAAE9C,QAAQ0jB,GACVna,EAAE6kE,cAAgB7kE,EAAE+8D,YAAa,EACjC/8D,EAAE81E,aACF75D,EAAElb,GAAG,IAAOf,EAAE1P,OAAO4pB,GAGvB,IAAI3gB,EAAIhJ,KACJyP,EAAIzG,EAAE3J,OACV,IAAOoR,EAAI4a,EAAEriB,EAAG,SAAU,KAAMwgB,GAAKA,KAGvCxgB,EAAEod,UAAU1c,OAAS,SAAU8G,EAAGmZ,GAChCnZ,EAAI6Z,EAAE7Z,EAAGxQ,KAAKyhE,aACdp2C,EAAErrB,KAAM,SAAU,CAChBsJ,QAASkH,IAEX,IAUIwZ,EAVAvZ,EAAIzQ,KACJ4pB,EAAInZ,EAAEpR,MACNmqB,EAAI/Y,EAAEgxD,YACNz4D,EAAIyH,EAAEk+E,aAAel+E,EAAErL,KACvBqK,EAAIma,EAAEtgB,QAAQtH,YACdooB,EAAI0C,EAAE9jB,GAAGod,UACT0D,EAAIrZ,EAAEo8E,mBAAqB,CAC7BtlC,WAAW,GAET99B,EAAI,GAEJ3B,EAAI,CAAC,eAAgB,kBAAmB,cACxCsD,EAAI5a,EAAEpL,MAAQokB,EAAEpkB,MAAQwkB,EAAEtgB,QAAQjK,MAAM+F,KACxC0L,IAAM9Q,KAAKsqF,gBAAkBl/D,GAAKA,IAAMprB,KAAKoF,WAAQ,IAAuBoL,EAAEi5E,iBAAc,IAAuBj5E,EAAEk5E,oBAAiB,IAAuBl5E,EAAEwhE,gBAAkBxhE,EAAEo+E,QAAUp+E,EAAEq+E,SAAWp+E,EAAEq+E,iBAAiB,iBAAmBr+E,EAAEq+E,iBAAiB,eAAiBr+E,EAAEq+E,iBAAiB,kBAAoBr+E,EAAEq+E,iBAAiB,sBAAwBr+E,EAAEq+E,iBAAiB,SAmB7X,GAlBA1jE,EAAIA,GAAKpiB,EACT8H,IAAMgX,EAAExgB,KAAK,OAAQ,cAAe,SAAU,gBAAiB,iBAAkB,iBAAkB,aAAc,UAAW,mBAAoB,kBAAmB,QAAS,QAAS,SAAU,QAAS,SAAU,UAAW,OAAQ,OAAQ,OAAQ,SAAS,IAAOkJ,EAAE4rD,SAAWt0C,EAAExgB,KAAK,OAAQ,SAAUmJ,EAAE04E,eAAenjF,SAAQ,SAAUwK,GAC5UsX,EAAExgB,KAAKkJ,EAAI,WACTA,EAAEtN,OAASsN,EAAE2hE,aAAehnD,EAAE1a,EAAEnH,QAAQ6oE,YAAa3hE,EAAE2hE,aAAcnyE,KAAK4J,QAAQ4G,EAAEtN,MAAM,KAC9FsN,EAAIob,EAAEpC,EAAGM,EAAG,CACV7mB,WAAO,IAAuBumB,EAAEvmB,MAAQwN,EAAExN,MAAQumB,EAAEvmB,MACpDwmF,WAAY/9D,EAAEjc,GAAKA,EAAEvP,QAAUuP,EAAEvP,OAAOupF,WAAYjgE,EAAEigE,WAAYh5E,EAAEmzD,MAAM,MACxE9yD,GAAK,CACP5N,KAAMuN,EAAEnH,QAAQpG,MACfsN,GACHM,GAAKN,EAAEtN,OAASsN,EAAEtN,KAAOuN,EAAEnH,QAAQpG,OACnC4kB,EAAI,CAAC,QAAS,cAAe,kBAAmB,kBAAkBiE,OAAOjE,IACvE9hB,SAAQ,SAAUwK,GAClBsX,EAAEtX,GAAKC,EAAED,UACFC,EAAED,MAEXf,GAAI,EAEAqd,EAAE1B,IACJ,GAAI3b,EAAI2b,IAAM3a,EAAErL,KAAMqL,EAAEC,QAAO,GAAI,GAAI,GAAI,GAAKjB,EAAG,GAAIkX,OAAOuf,eAAgBvf,OAAOuf,eAAez1B,EAAGqc,EAAE1B,GAAGhF,eAAgB,CAG1H,IAAK4D,KAFLF,EAAInD,OAAOgG,eAAehQ,KAAKlM,EAAG,aAAeA,EAAEstC,SAEzC3zB,EAAG3Z,EAAEuZ,QAAK,EAEpBmB,EAAE1a,EAAGqc,EAAE1B,GAAGhF,WACV0D,EAAIrZ,EAAEstC,SAAWj0B,SAAWrZ,EAAEstC,eAE3BtyB,EAAE,IAAI,EAAI7B,EAAG,CAClBm3D,iBAAkB31D,IAQpB,GALAtD,EAAE9hB,SAAQ,SAAUwK,GAClBC,EAAED,GAAKsX,EAAEtX,MAEXC,EAAE9R,KAAKirB,EAAGpZ,GAENM,GAAK9Q,KAAK0lE,OAAQ,CACpB,IAAI/yD,EAAIlC,EAAEnH,SACV,IAAOqJ,EAAEypD,SAAW3yC,EAAEhnB,QAAU,EAAGgnB,EAAEwoD,UAAY,GAAKxhE,EAAEgjE,kBAAoBjjE,EAAImC,EAAE5O,OAAQqmB,EAAIzX,EAAEm/D,YAAathE,IAAK,IAAOA,EAAErR,UAAYqqB,EAAEzlB,QAAUylB,EAAEzlB,OAAOwrC,UAAY/+B,EAAE++B,SAAW9lB,EAAEhnB,QAAU,GAAI2nB,IAAK,IAAOA,EAAEjrB,UAAYsqB,EAAEwoD,UAAY,IAC7OjyE,KAAK0lE,OAAO1/D,SAAQ,SAAUwK,GAC5BA,GAAKA,EAAEtQ,SAAWsQ,EAAE8iE,eAAgB3sD,OAAOgP,KAAKlM,GAAG1oB,QAAUyP,EAAE0hE,gBAAgBzoD,IAAI,IAAO9W,EAAE4sE,cAAgB/uE,EAAE4hE,YAAcxoD,EAAEzoB,OAAOkxE,YAAY7hE,MAChJxQ,MAGLyQ,EAAEk+E,YAAc3lF,EAChB4gB,EAAE27D,aACF91E,GAAKgB,EAAEqlE,aAAa/0E,SAAW0P,EAAEk1D,aAAc,GAC/Ct6C,EAAErrB,KAAM,eACR0rB,EAAE/B,GAAG,IAAOC,EAAE7pB,SAAO+Q,QAAI,IAG3B9H,EAAEod,UAAU2oE,QAAU,SAAUv+E,GAC9BxQ,KAAKqF,KAAOrF,KAAKsJ,QAAQjE,KAAOrF,KAAKyhE,YAAYp8D,KAAOmL,EACxDxQ,KAAKX,MAAMi1E,eAAgB,GAG7BtrE,EAAEod,UAAU0oE,iBAAmB,SAAUt+E,GACvC,IAAImZ,EAAI3pB,KAAKsJ,QAAQkH,GACjBC,EAAIzQ,KAAKX,MAAMiK,QAAQtH,YACvB4nB,EAAI5pB,KAAKyhE,YAAYjxD,GACzB,OAAOoZ,EAAID,IAAMC,EAAID,IAAM+B,EAAEjb,GAAKA,EAAEzQ,KAAKoF,OAASqL,EAAEzQ,KAAKoF,MAAMoL,GAAIC,GAAKA,EAAEvQ,QAAUuQ,EAAEvQ,OAAOsQ,GAAImZ,IAGnG3gB,EAAEod,UAAUwuD,YAAc,WACxB,IAAIpkE,EAAIxQ,KAAKX,MACTsqB,EAAInZ,EAAEw+D,YACVx+D,EAAEi+D,QAAQmL,qBACNjwD,GAAKA,IAAM3pB,MAAM2pB,EAAEwlD,aACvBnvE,KAAKsJ,QAAQxJ,OAAOkvF,WAAa3jE,EAAErrB,KAAM,aACzCA,KAAK83D,SAAS,SACdtnD,EAAEw+D,YAAchvE,MAGlBgJ,EAAEod,UAAU+oD,WAAa,WACvB,IAAI3+D,EAAIxQ,KAAKsJ,QACTqgB,EAAI3pB,KAAKX,MACToR,EAAIkZ,EAAEvoB,QACNwoB,EAAID,EAAEinD,WACVjnD,EAAEqlD,YAAc,KACZplD,GAAGA,EAAEulD,aACTnvE,MAAQwQ,EAAE1Q,OAAOmvF,UAAY5jE,EAAErrB,KAAM,aACpCyQ,GAAKzQ,KAAKs4E,gBAAkB7nE,EAAEpP,SAAWrB,KAAKqlE,iBAAmB50D,EAAEtH,OACpEwgB,EAAEzpB,OAAO8F,SAAQ,SAAUwK,GACzBA,EAAEsnD,SAAS,IAAI,OAInB9uD,EAAEod,UAAU0xC,SAAW,SAAUtnD,EAAGmZ,GAClC,IAAIlZ,EAAIzQ,KACJ4pB,EAAInZ,EAAEnH,QACNkgB,EAAI/Y,EAAE88E,MACNvkF,EAAI4gB,EAAE+qD,oBACNllE,EAAIma,EAAEpmB,OACN6mB,EAAIqB,EAAEjc,EAAEe,GAAK,WAAaf,EAAEe,GAAK,UAAU+2C,UAAW92C,EAAEpR,MAAMiK,QAAQjK,MAAMkoD,WAC5En9B,EAAIR,EAAE1kB,UACN4kB,EAAI,EACJL,EAAIG,EAAE8zB,QAGV,GAFAltC,EAAIA,GAAK,GAELC,EAAEk6B,QAAUn6B,IAAM,CAACC,EAAEohE,MAAOphE,EAAE4kE,YAAa5kE,EAAEwqE,iBAAiBj1E,SAAQ,SAAU2jB,GAClFA,IAAMlZ,EAAEk6B,OAAShhB,EAAEtmB,YAAY,qBAAuBoN,EAAEk6B,OAAQn6B,GAAKmZ,EAAEnnB,SAAS,qBAAuBgO,OACrGC,EAAEk6B,MAAQn6B,GAAIC,EAAEpR,MAAM6iD,YAAa,CACrC,GAAIzyC,EAAEe,KAAM,IAAOf,EAAEe,GAAGrR,QAAS,OAEjC,GADAqR,IAAM4Z,EAAI3a,EAAEe,GAAGtL,WAAaklB,GAAK3a,EAAEe,GAAGg4E,eAAiB,GAAI/+D,EAAIiC,EAAEjc,EAAEe,GAAGktC,QAASj0B,IAC3ED,IAAMA,EAAEniB,UAAW,IAAKuiB,EAAI,CAC9B,eAAgBQ,GACfZ,EAAE9b,QAAQkc,EAAGS,GAAI5Z,EAAE,cAAgBqZ,IAAKrZ,EAAE,cAAgBqZ,GAAGpc,QAAQkc,EAAGS,GAAIP,GAAK,EACpF9gB,GAAK,CAACyH,EAAEohE,MAAOphE,EAAE4kE,YAAa5kE,EAAEwqE,gBAAiBxqE,EAAEy+E,eAAelpF,SAAQ,SAAUwK,GAClFA,GAAKA,EAAE9C,QAAQ,CACbgwC,QAASj0B,GACRY,MAIPV,GAAK3gB,GAAKyH,EAAEi1D,QAAUj1D,EAAEulE,oBAAoBxlE,QAAK,IAGnDxH,EAAEod,UAAU4vD,oBAAsB,SAAUxlE,GAC1CxQ,KAAK0lE,OAAO1/D,SAAQ,SAAU2jB,GAC5BA,EAAEmuC,UAAYnuC,EAAEmuC,SAAStnD,OAI7BxH,EAAEod,UAAUq6D,WAAa,SAAUjwE,EAAGmZ,GACpC,IAAIlZ,EAAIzQ,KACJ4pB,EAAInZ,EAAEpR,MACNmqB,EAAI/Y,EAAE2hE,WACNppE,EAAI4gB,EAAEtgB,QAAQjK,MAAMkjD,mBACpB9yC,EAAIgB,EAAE2rD,QACN/xC,GAAK5Z,EAAE2rD,QAAU5rD,EAAIC,EAAEnH,QAAQ8yD,QAAU3rD,EAAEgxD,YAAYrF,aAAU,IAAuB5rD,GAAKf,EAAIe,GAAK,OAAS,OACnH,CAAC,QAAS,kBAAmB,cAAe,UAAW,MAAMxK,SAAQ,SAAUwK,GACzEC,EAAED,IAAIC,EAAED,GAAG6Z,QAEbT,EAAEolD,cAAgBv+D,IAAMmZ,EAAEgnD,YAAchnD,EAAEgnD,WAAW1wE,UAAYuQ,GAAGA,EAAE0+D,aAC1E3lD,GAAKI,EAAEzoB,OAAOy8E,aAAantE,EAAGD,GAC9BC,EAAE8wD,SAAU,EACZ9wD,EAAEnH,QAAQnH,UAAYynB,EAAE1pB,OAAO8F,SAAQ,SAAUwK,GAC/CA,EAAElH,QAAQnH,UAAYqO,EAAE4rD,UAAY5rD,EAAE+wD,SAAU,MAElD9wD,EAAEqlE,aAAa9vE,SAAQ,SAAU2jB,GAC/BA,EAAE82D,WAAWjwE,GAAG,MAElBxH,IAAM4gB,EAAE4iD,YAAa,GACrBnhD,EAAE5a,EAAG4Z,IACL,IAAOV,GAAKC,EAAE7pB,UAGhBiJ,EAAEod,UAAUpe,KAAO,WACjBhI,KAAKygF,YAAW,IAGlBz3E,EAAEod,UAAUjd,KAAO,WACjBnJ,KAAKygF,YAAW,IAGlBz3E,EAAEod,UAAU1iB,OAAS,SAAU8M,GAC7BxQ,KAAK+0B,SAAWvkB,EAAIxQ,KAAKsJ,QAAQyrB,cAAW,IAAuBvkB,GAAKxQ,KAAK+0B,SAAWvkB,EACxFxQ,KAAKq+E,WAAar+E,KAAKq+E,SAAS/mE,QAAU9G,GAC1C6a,EAAErrB,KAAMwQ,EAAI,SAAW,aAGzBxH,EAAEod,UAAU8pD,kBAAoB,SAAU1/D,EAAGmZ,EAAGlZ,GAI9C,YAHA,IAAWA,IAAMA,EAAI,IACrBA,EAAEvQ,OAASF,KACXyQ,EAAEqmE,iBAAkB,EACb92E,KAAKX,MAAMw3E,aAAarmE,EAAGmZ,EAAGlZ,IAGvCzH,EAAE27C,eAAiB93B,EACZ7jB,EA7xCL,GAgyCJmiB,EAAE1b,EAAE2W,UAAW,CACbijE,UAAW,CAAC,QAAS,SACrB7mB,KAAM,SACNoR,aAAc,EACdmX,aAAc,EACdxS,aAAa,EACbwG,iBAAkBnsE,EAAEs1E,eACpBtN,aAAa,EACbyT,YAAa,CAAC,UAAW,SACzBlF,eAAgB,CAAC,IAAK,KACtBtI,WAAY91D,EACZw6C,gBAAgB,EAChBokB,QAAQ,IAEVp9D,EAAErsB,OAASuP,EAGJA,KAETmd,EAAE9E,EAAG,mCAAoC,CAACA,EAAE,wCAAyCA,EAAE,qBAAsBA,EAAE,uBAAwBA,EAAE,yBAA0BA,EAAE,qCAAsCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,EAAGmY,GAC3P,IAAI8B,EAAIpd,EAAEkO,KACN4O,EAAIxB,EAAEyzB,SACNz8C,EAAIgpB,EAAEtQ,cACNxJ,EAAI8Z,EAAEq0B,QACNh1B,EAAIW,EAAEs1B,MACNz2B,EAAImB,EAAE81B,KACVt0B,EAAEzE,EAAG,qBAAqB,SAAUrX,GAClC,IAAImZ,EAAI5pB,KAAKsJ,QAAQjK,MAAM8vF,mBACvB1/E,EAAIma,GAAKA,EAAEwlE,SAGf,GAFAxlE,EAAIA,GAAKA,EAAElL,WAEN1e,KAAKiH,SAASsiD,UAAW,CAC5B,GAAI95C,GACF,GAAIzP,KAAKyvE,kBAAoBhgE,EAAIsa,KAAK1W,IAAI,EAAG5D,EAAIzP,KAAKo/D,YAAa,CACjEp/D,KAAKoiF,kBAAoBpiF,KAAKiH,SAASm7E,kBAAoBh4D,EAAEpqB,KAAK+C,SAClE/C,KAAK+C,QAAQI,MAAQnD,KAAKipE,WAAax5D,EACvCzP,KAAK0rD,SAAW1rD,KAAKk7E,QAAQ17E,QAAUiQ,EAAIzP,KAAKk7E,QAAQ/3E,OAASsM,EACjE,IAAIqY,EAAI,CACN,EAAG,CACDziB,KAAM,QACNP,MAAO2K,UAIRma,IAAM5pB,KAAK0vE,kBAAoBjgE,EAAIsa,KAAK1W,IAAI,EAAGuW,EAAI5pB,KAAKyG,aAAcwK,EAAExB,KAAOzP,KAAKoiF,kBAAoBpiF,KAAKiH,SAASm7E,kBAAoBh4D,EAAEpqB,KAAK+C,SAAU/C,KAAK+C,QAAQvD,OAASQ,KAAKkpE,YAAcz5D,EAAGzP,KAAK0rD,SAAW1rD,KAAKk7E,QAAQ/3E,OAASsM,EAAIzP,KAAKk7E,QAAQ17E,QAAUiQ,EAAGqY,EAAI,CACpR,EAAG,CACDziB,KAAM,SACNP,MAAO2K,MAIXqY,IAAMrX,EAAEq0E,UAAY9kF,KAAKmjE,KAAKn9D,SAAQ,SAAUyK,GAC9CqX,EAAErX,EAAEqvD,MAAQrvD,EAAEuwD,gBAAkB,WAC9B,IAAIp3C,EAAI9B,EAAErX,EAAEqvD,MAAMz6D,KACdoK,EAAIzP,KAAK4pB,GACb5pB,KAAK4pB,GAAKna,EAAIqY,EAAErX,EAAEqvD,MAAMh7D,MACxB,IAAIslB,EAAIphB,EAAEod,UAAU46C,gBAAgBt/C,MAAM1hB,KAAM6nB,WAEhD,OADA7nB,KAAK4pB,GAAKna,EACH2a,IACJ3Z,EAAEy3D,cAAez3D,EAAEq1D,6BAI9Bv5C,EAAEzE,EAAG,UAAU,WACb9nB,KAAKyvE,mBAAqBzvE,KAAK0vE,mBAAqB1vE,KAAKqvF,gBAAkBrvF,KAAKqvF,iBAAkBrvF,KAAKsvF,cAAgBtvF,KAAKuvF,UAAYvvF,KAAKsvF,gBAG/IxnE,EAAE1B,UAAUipE,eAAiB,WAC3B,IAAI5+E,EAAIzQ,KACJ4pB,EAAI,CACN4lE,wBAAyB,QACzBC,UAAW,SACXC,UAAW,UAEb1vF,KAAKyvE,oBAAsB7lD,EAAE6lE,UAAY,QACzCzvF,KAAK0vE,oBAAsB9lD,EAAE8lE,UAAY,QACzC1vF,KAAK2vF,gBAAkB5tF,EAAE,MAAO,CAC9BkJ,UAAW,+BACV,CACDuW,SAAU,YACTxhB,KAAKo7E,UACRp7E,KAAKswE,mBAAqBvuE,EAAE,MAAO,CACjCkJ,UAAW,wBACV2e,EAAG5pB,KAAK2vF,iBACXpjE,EAAEvsB,KAAKswE,mBAAoB,UAAU,WACnC7/D,EAAEg+D,gBAAkBh+D,EAAEg+D,QAAQ0J,iBAEhCn4E,KAAK4vF,eAAiB7tF,EAAE,MAAO,CAC7BkJ,UAAW,8BACV,KAAMjL,KAAKswE,oBACdtwE,KAAK4vF,eAAe70E,YAAY/a,KAAKK,WACrCL,KAAKqvF,eAAiB,MAGxBvnE,EAAE1B,UAAUypE,kBAAoB,WAC9B,IAGIpgF,EAHAgB,EAAIzQ,KAAKK,UACTupB,EAAI5pB,KAAK8vF,cACT9mF,EAAI,yTAAyTiV,MAAM,KAEvUje,KAAKyvE,oBAAsBzvE,KAAK0rD,SAAWj8C,EAAI,oBAAsBzP,KAAKyvE,mBAAqBzvE,KAAK0rD,UAAqC1rD,KAAK0vE,oBAAsB1vE,KAAK0rD,SAA1Dj8C,EAAI,oBAA2FzP,KAAK0vE,mBAAqB1vE,KAAK0rD,WAAaj8C,EAAI,qBAC9PA,GAAKzG,EAAE1B,KAAUmI,EAAI,gCAAsCA,EAAI,+CAC/DzG,EAAEhD,SAAQ,SAAUgD,GAClB,GAAGhD,QAAQ2W,KAAKlM,EAAEiB,iBAAiB1I,IAAI,SAAUyH,IAC9CA,EAAEi6C,eAAiB9gC,EAAEkyB,OAASlyB,EAAEoiC,IAAMpiC,EAAEoiC,IAAI9nC,YAAYnJ,YAAYtK,GACrEA,EAAEnR,MAAM46D,cAAgB,cAK9BpyC,EAAE1B,UAAUkpE,WAAa,WACvB,IAAI7+E,GAAKzQ,KAAKuvF,SACVvmF,EAAIhJ,KAAKsJ,QAAQjK,MACjBoQ,EAAIzG,EAAEmmF,mBACN/kE,EAAIxX,EAAEigD,kBACVpiD,GAAKzQ,KAAKuvF,SAAWxtF,EAAE,MAAO,CAC5BkJ,UAAW,oBACV,CACDuW,SAAU,WACVld,SAAU,SACV41D,cAAe,OACfvX,QAAS35C,EAAE1J,OAAS0J,EAAE1J,MAAMqjD,QAAU,GAAK,EAC3CliD,IAAK,GACJ,MAAM,GAAKT,KAAKswE,oBAAsBtwE,KAAKswE,mBAAmBpsD,WAAWspC,aAAaxtD,KAAKuvF,SAAUvvF,KAAKswE,oBAAqBtwE,KAAKo7E,SAAS97E,MAAMgF,SAAW,UAAWtE,KAAK8vF,cAAgB9mF,EAAI,IAAIohB,EAAEpqB,KAAKuvF,SAAUvvF,KAAKo/D,WAAYp/D,KAAKyG,YAAazG,KAAKsJ,QAAQjK,MAAMC,OAAQU,KAAK+vF,eAAiB/mF,EAAE/C,OAAOiB,KAAK,CAC1TQ,KAAM1H,KAAKsJ,QAAQjK,MAAMQ,iBAAmB,OAC5C,eAAgB+pB,EAAEna,EAAEiuC,QAAS,KAC7BiF,QAAS,IACRngD,SAAS,8BAA8B4E,MAAOmlB,EAAEvsB,KAAM,qBAAsBA,KAAK6vF,mBAAoBtjE,EAAEvsB,KAAM,sBAAuBA,KAAK6vF,mBAAoBtjE,EAAEvsB,KAAM,oBAAqBA,KAAK6vF,oBAAsB7vF,KAAK8vF,cAAcx4B,QAAQt3D,KAAKo/D,WAAYp/D,KAAKyG,cACrQzG,KAAKgwF,iBAAmBv/E,KAAGzQ,KAAKgwF,iBAAkB,EAAIhwF,KAAK6vF,qBAC/D7mF,EAAIhJ,KAAKo/D,YAAcp/D,KAAKyvE,mBAAqB,GACjDrlD,EAAIpqB,KAAKyG,aAAezG,KAAK0vE,mBAAqB,GAClD7iD,EAAE7sB,KAAKK,WACPL,KAAKK,UAAUf,MAAM6D,MAAQ6F,EAAI,KACjChJ,KAAKK,UAAUf,MAAME,OAAS4qB,EAAI,KAClCpqB,KAAKiH,SAASkwD,WAAWjwD,KAAK,CAC5B/D,MAAO6F,EACPxJ,OAAQ4qB,EACR+tC,QAAS,CAAC,EAAG,EAAGnvD,EAAGohB,GAAGjC,KAAK,OAE7BnoB,KAAKklF,gBAAgBh+E,KAAK,CACxB/D,MAAO6F,EACPxJ,OAAQ4qB,IAEVpqB,KAAKswE,mBAAmBhxE,MAAME,OAASQ,KAAKyG,YAAc,KAC1DgK,IAAMhB,EAAEwgF,kBAAoBjwF,KAAKswE,mBAAmB/hD,WAAavuB,KAAKyvE,kBAAoBhgE,EAAEwgF,iBAAkBxgF,EAAEygF,kBAAoBlwF,KAAKswE,mBAAmB3iE,UAAY3N,KAAK0vE,kBAAoBjgE,EAAEygF,kBACnM9lE,EAAIpqB,KAAKoqE,WACT35D,EAAIzQ,KAAKmpE,QAAU/+C,EAAE,GAAK,EAC1B3a,EAAIzP,KAAKopE,SAAWh/C,EAAE,GAAK,EAC3BphB,EAAIhJ,KAAKmpE,QAAUnpE,KAAKkpE,WAAa9+C,EAAE,GAAK,EAC5CA,EAAIpqB,KAAKopE,SAAWppE,KAAKipE,UAAY7+C,EAAE,GAAK,EAC5C,IAAIX,EAAIzpB,KAAKopE,SAAWppE,KAAKipE,WAAajpE,KAAKyvE,mBAAqB,GAChE3nD,EAAI9nB,KAAKmpE,QAAUnpE,KAAKkpE,YAAclpE,KAAK0vE,mBAAqB,GACpEj/D,EAAIzQ,KAAKyvE,kBAAoB,CAAC,CAAC,IAAK,EAAGh/D,GAAI,CAAC,IAAKzQ,KAAKopE,SAAW,EAAG34D,GAAI,CAAC,IAAKzQ,KAAKopE,SAAW,EAAGpgE,GAAI,CAAC,IAAK,EAAGA,GAAI,CAAC,KAAM,CAAC,IAAKygB,EAAGhZ,GAAI,CAAC,IAAKzQ,KAAKo/D,WAAY3uD,GAAI,CAAC,IAAKzQ,KAAKo/D,WAAYp2D,GAAI,CAAC,IAAKygB,EAAGzgB,GAAI,CAAC,MAAQhJ,KAAK0vE,kBAAoB,CAAC,CAAC,IAAKjgE,EAAG,GAAI,CAAC,IAAKA,EAAGzP,KAAKmpE,QAAU,GAAI,CAAC,IAAK/+C,EAAGpqB,KAAKmpE,QAAU,GAAI,CAAC,IAAK/+C,EAAG,GAAI,CAAC,KAAM,CAAC,IAAK3a,EAAGqY,GAAI,CAAC,IAAKrY,EAAGzP,KAAKyG,aAAc,CAAC,IAAK2jB,EAAGpqB,KAAKyG,aAAc,CAAC,IAAK2jB,EAAGtC,GAAI,CAAC,MAAQ,CAAC,CAAC,IAAK,EAAG,IAC1a,iBAAmB9nB,KAAKmwF,eAAiBnwF,KAAK+vF,eAAe7oF,KAAK,CAChE0iB,EAAGnZ,KAIP8b,EAAEvjB,EAAG,aAAa,WAChBhJ,KAAKX,MAAM2wF,iBAAkB,KAE/BzjE,EAAErB,EAAG,QAAQ,WACXlrB,KAAKX,MAAM2wF,iBAAkB,QAIjCpjE,EAAE9E,EAAG,4BAA6B,CAACA,EAAE,wCAAyCA,EAAE,qBAAsBA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GAC7I,IAMI7W,EANAia,EAAIzb,EAAE65C,qBACN12C,EAAIkV,EAAE02B,SACNzzB,EAAIjD,EAAEu3B,wBACNxyB,EAAI/E,EAAEk2B,UACNzxB,EAAIzE,EAAEq4B,SACNp+C,EAAI+lB,EAAE04B,WA0GV,OAvGA,SAAWx3C,GACT,SAAS4gB,IACP,IAAInZ,EAAIzQ,KAAKmC,SAEb,GAAIsO,EAAG,CACL,IAAImZ,EAAInZ,EAAEi7E,OACV3pF,EAAE6nB,GAAG,SAAUnZ,EAAGzH,GAChB+hB,EAAEta,GACFmZ,EAAE5gB,GAAK,QAETyH,GAAKA,EAAE2/E,iBAAmB3/E,EAAE2/E,gBAAgBlqF,WAIhD,SAASuK,IACPzQ,KAAKmC,WAAanC,KAAKmC,SAAW,IAAIioB,EAAEpqB,OAG1C,IAAIyP,EAAI,GAERzG,EAAEiwD,QAAU,SAAUjwD,GAEpB,OADC,IAAMyG,EAAEoP,QAAQ7V,KAAOyG,EAAEnI,KAAK0B,GAAI4J,EAAE5J,EAAG,OAAQyH,GAAImC,EAAE5J,EAAG,UAAW4gB,IAC7D5gB,GAGT,IAAIohB,EAAI,WACN,SAAS3Z,EAAEA,GACTzQ,KAAKqwF,UAAY,GACjBrwF,KAAK0rF,OAAS,GACd1rF,KAAKswF,cAAgB,EACrBtwF,KAAK68D,KAAOpsD,EAmEd,OAhEAA,EAAE2V,UAAUu9C,YAAc,WACxB,IAIIv5C,EAJA3Z,EAAIzQ,KAAK68D,KACTjzC,EAAInZ,EAAEvQ,OACN8I,EAAIyH,EAAEnH,QAAQmyD,eACdhsD,EAAIma,EAAE7oB,OAGV,IAAK0P,EAAE0wD,QAAS,CAGd,IAFAnhE,KAAK4mE,eAAgB,EAEhBx8C,EAAI3a,EAAG2a,KAAM,CAChB,IAAIN,EAAIF,EAAE5gB,EAAIohB,EAAI3a,EAAI2a,EAAI,GAC1BN,EAAEymE,mBACFzmE,EAAE0mE,mBAGJ,IAAKpmE,EAAI,EAAGA,EAAI3a,EAAG2a,IAAKR,EAAEQ,GAAGqmE,eAE7B5jE,EAAEpc,EAAG,sBAITA,EAAE2V,UAAUiiD,YAAc,WACxB,IAAKroE,KAAK68D,KAAKsE,QAAS,CACtB,GAAInhE,KAAKqwF,UAAW,IAAI5/E,EAAIzQ,KAAK0rF,OAAS1rF,KAAKqwF,UAC/CtuF,EAAE0O,GAAG,SAAUA,GACb1O,EAAE0O,GAAG,SAAUA,GACbA,EAAEigF,WAAajgF,EAAEqsD,cAMzBrsD,EAAE2V,UAAUgiD,YAAc,WACxB,IAAI33D,EAAIzQ,KACJ4pB,EAAInZ,EAAEi7E,OACVj7E,EAAEosD,KAAKsE,SAAWp/D,EAAE6nB,GAAG,SAAUA,GAC/B7nB,EAAE6nB,GAAG,SAAU5gB,EAAGyG,GAChB8c,EAAEvjB,EAAEs+E,UAAYt+E,EAAEs+E,QAAU72E,EAAE6/E,eAAiBtnF,EAAE9C,iBAAkB0jB,EAAEna,KAAOzG,EAAE8zD,MAAQ,KAAM9zD,EAAE0nF,WAAa,aAKjHjgF,EAAE2V,UAAUwlD,kBAAoB,WAC9B,IAAIn7D,EAAIzQ,KAAK68D,KACTjzC,EAAInZ,EAAEpR,MACN2J,EAAI4gB,EAAE3iB,SACNwI,EAAIzP,KAAK0rF,OACbj7E,EAAIya,EAAEtB,EAAGnZ,EAAEnH,QAAQozD,aAAejsD,EAAEnH,QAAQozD,YAAYnV,YAAa,GACrE,IAAIn9B,EAAIpqB,KAAKowF,gBAAkBpwF,KAAKowF,iBAAmBpnF,EAAEwgB,EAAE,gBAAgBtiB,KAAK,CAC9Ey7C,OAAQ,EACRjF,QAAS,IACRt2C,MACHgjB,EAAEonC,UAAU5nC,EAAEw/C,SAAUx/C,EAAEu/C,SAC1BpnE,EAAE0N,GAAG,SAAUgB,GACb1O,EAAE0O,GAAG,SAAUA,GACbA,EAAEgwD,OAAOr2C,SAGbA,EAAE1c,QAAQ,CACRgwC,QAAS,GACRjtC,IAGEA,EAxED,GA2ERzH,EAAE2jE,UAAYviD,EApGhB,CAqGGnZ,IAAMA,EAAI,KAENA,KAET2b,EAAE9E,EAAG,yBAA0B,CAACA,EAAE,qBAAsBA,EAAE,uBAAwBA,EAAE,2BAA4BA,EAAE,mBAAoBA,EAAE,yBAA0BA,EAAE,6BAA8BA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,EAAGmY,EAAG8B,GACrP,IAAIN,EAAIzE,EAAExc,OACNvJ,EAAI8qB,EAAEqyB,aACNjuC,EAAI4b,EAAEuyB,QACNh1B,EAAIyC,EAAEwyB,wBACNz1B,EAAIiD,EAAEhR,QACNpL,EAAIoc,EAAEszB,SACNn2B,EAAI6C,EAAE2zB,WACNp1B,EAAIyB,EAAEg0B,KACN/vC,EAAI,WACN,SAAS8Y,EAAEnZ,EAAGmZ,EAAG5gB,EAAGyG,EAAG2a,GACrB,IAAIC,EAAI5Z,EAAEpR,MAAMqsD,SAChB1rD,KAAK68D,KAAOpsD,EACZzQ,KAAK2wF,WAAa3nF,EAClBhJ,KAAKsJ,QAAUsgB,EAAIA,GAAK,GACxB5pB,KAAK6B,EAAI4N,EACTzP,KAAK88D,MAAQ,KACb98D,KAAK0lE,OAAS,GACd1lE,KAAK4wF,gBAAiB,EACtB5wF,KAAKkkC,MAAQ9Z,EACbpqB,KAAK6wF,WAAa7wF,KAAK8wF,UAAY,EACnC9wF,KAAKssD,aAAe,CAClBpoD,MAAO0lB,EAAE1lB,QAAUmmB,EAAIrhB,EAAI,OAAS,QAAU,UAC9Cu9C,cAAe38B,EAAE28B,gBAAkBl8B,EAAI,SAAWrhB,EAAI,SAAW,OACjEjH,EAAG6nB,EAAE7nB,EACLF,EAAG+nB,EAAE/nB,GAEP7B,KAAKsnD,UAAY19B,EAAE09B,YAAcj9B,EAAIrhB,EAAI,QAAU,OAAS,UAwD9D,OArDA4gB,EAAExD,UAAUlgB,QAAU,WACpBkkB,EAAEpqB,KAAMA,KAAK68D,OAGfjzC,EAAExD,UAAUq6C,OAAS,SAAUhwD,GAC7B,IAAImZ,EAAI5pB,KAAK68D,KAAKx9D,MACd2J,EAAIhJ,KAAKsJ,QACTmG,EAAIzG,EAAEsC,OACVmE,EAAIA,EAAI8c,EAAE9c,EAAGzP,KAAM4pB,GAAK5gB,EAAEnE,UAAU8X,KAAK3c,MACzCA,KAAK4f,MAAQ5f,KAAK4f,MAAM1Y,KAAK,CAC3BhG,KAAMuO,EACN0gD,WAAY,YACRnwD,KAAK4f,MAAQgK,EAAE3iB,SAAS2Y,MAAMnQ,EAAG,KAAM,KAAMzG,EAAE4+C,MAAO,KAAM,KAAM5+C,EAAExH,SAAS,EAAI,gBAAiBiO,EAAI,CAC1GqB,EAAG9H,EAAEm5C,cAAgB,EACrBjhD,KAAMuO,EACNtL,SAAU6E,EAAE7E,SACZsa,QAAS2M,EAAEpiB,EAAEyV,QAAS,GACtB0xC,WAAY,UACXvmC,EAAEs4B,aAAezyC,EAAE/H,KAAOsB,EAAEnJ,gBAAiB4P,EAAEtI,OAAS6B,EAAEpF,YAAa6L,EAAE,gBAAkBzG,EAAE1H,YAAatB,KAAK4f,MAAMpf,IAAIwI,EAAE1J,QAASU,KAAK4f,MAAM1Y,KAAKuI,GAAIzP,KAAK4f,MAAMisC,OAAS7rD,KAAK4f,MAAMxY,IAAIqJ,IAC9LzQ,KAAK4f,MAAMmxE,UAAYnnE,EAAEg7D,WAG3Bh7D,EAAExD,UAAU4lE,UAAY,SAAUpiE,EAAG5gB,EAAGyG,EAAG2a,EAAGN,GAC5C,IAAIO,EAAIrqB,KAAK68D,KACTrsD,EAAI6Z,EAAEhrB,MACV+qB,EAAIC,EAAEmnC,UAAUnnC,EAAEloB,SAASykE,cAAgB,IAAMx8C,GAAQpqB,KAAK88D,MAAO,EAAG,EAAG,EAAG,GAC9ErtD,EAAI4a,EAAEmnC,UAAU/hD,GAAQ,GACxBA,EAAIwB,EAAEmZ,IAAML,KAAK8gC,IAAIzgC,EAAI3a,GACzBma,EAAIwB,EAAEtB,EAAGtZ,EAAE3P,MAAM,GAAG2wD,UAAUxxD,KAAK6B,IAAM+nB,EACzCS,EAAIpZ,EAAEmZ,IAAMpqB,KAAKgxF,YAAYxgF,EAAGxQ,KAAM4pB,EAAGQ,EAAGphB,EAAGyG,EAAG4a,GAClDrhB,EAAIhJ,KAAK4f,MACTnQ,EAAIzP,KAAK2wF,WACT/mE,EAAI,YAAcwB,EAAEprB,KAAKsJ,QAAQhF,SAAU,WAC3C,IAAIklB,EAAIxpB,KAAKsnD,UACbt+C,GAAKqhB,IAAMP,EAAI9gB,EAAExB,UAAW4iB,EAAIphB,EAAEyV,QAAS+K,EAAI,SAAWA,EAAIhZ,EAAEk7C,UAAYthC,EAAIA,EAAI,UAAYZ,EAAIM,EAAE3mB,MAAQqN,EAAEk7C,UAAY,WAAaliC,EAAIM,EAAE3mB,MAAQ,EAAIqN,EAAEk7C,SAAWj8C,EAAIqa,EAAE3mB,MAAQinB,GAAKA,EAAIN,EAAE3mB,MAAQ,EAAGsM,EAAIe,EAAEk7C,SAAW5hC,EAAEtqB,OAAS,EAAIiQ,GAAK2a,EAAIN,EAAEtqB,OAAQQ,KAAKssD,aAAazqD,EAAIupB,EAAEprB,KAAKsJ,QAAQzH,EAAG,GAAI7B,KAAKssD,aAAavqD,EAAIqpB,EAAEprB,KAAKsJ,QAAQvH,EAAG,GAAIsoB,EAAExoB,GAAK2nB,EAAGa,EAAEtoB,GAAK0N,EAAGzG,EAAE9E,MAAMlE,KAAKssD,aAAc,KAAMjiC,GAAI7Z,EAAEqmE,aAAa7tE,EAAE0jD,UAAU7qD,EAAI2nB,EAAIxpB,KAAKssD,aAAazqD,EAAGmH,EAAE0jD,UAAU3qD,EAAI0N,EAAIzP,KAAKssD,aAAavqD,GAAKiH,EAAEhB,QAAUgB,EAAEG,OAAQygB,GAAI,GAAKA,GAAKhX,EAAEwT,UAAU6qE,iBAAiBt0E,KAAK3c,KAAK68D,KAAM7zD,EAAGhJ,KAAKssD,aAActjD,EAAE0jD,UAAW5iC,EAAGO,GAAIrhB,EAAE9B,KAAK,CACnnBrF,EAAGmH,EAAE0jD,UAAU7qD,EACfE,EAAGiH,EAAE0jD,UAAU3qD,IACbqpB,GAAGxB,GAAK5pB,KAAKsJ,QAAQszD,MAAM,MAASpsD,EAAIC,EAAEzH,EAAEnH,IAAM4O,EAAEzH,EAAEjH,IAAMyO,EAAEqmE,aAAa7tE,EAAEnH,EAAIuoB,EAAIphB,EAAE7F,MAAO6F,EAAEjH,IAAMyO,EAAEqmE,aAAa7tE,EAAEnH,EAAIuoB,EAAGphB,EAAEjH,KAAOiH,EAAEG,UAG/IygB,EAAExD,UAAU4qE,YAAc,SAAUvgF,EAAGmZ,EAAG5gB,EAAGyG,EAAG2a,EAAGC,EAAG7Z,GACpD,IAAIgZ,EAAII,EAAEizC,KAAKrB,SACX7xC,EAAIlZ,EAAEi7C,SACN5hC,EAAItZ,EAAEhR,OAASgR,EAAEgkC,KAAO7qB,EAAIlZ,EAAE24D,SAAW34D,EAAE04D,SAE/C,OADAv/C,EAAIA,EAAE+mE,aAAennE,IAAMI,EAAE+mE,YAAcnnE,EACpC,CACL3nB,EAAG8nB,EAAIC,EAAIna,EAAIe,EAAEq8C,MAAQp9C,EAAI4a,EAAI7Z,EAAEgkC,IAAM/jC,EAAE24D,SAAWpgE,EAAIyH,EAAE5P,MAAM,GAAGq+D,OAASzuD,EAAE24D,SAChFrnE,EAAG4nB,EAAInZ,EAAEhR,OAASwJ,EAAIohB,EAAIR,EAAIE,EAAIra,EAAI4a,EAAIP,EAAIra,EAC9CtM,MAAOwmB,EAAIU,EAAID,EACf5qB,OAAQmqB,EAAIS,EAAIC,IAIbT,EA1ED,GA+KR,OAlGA5gB,EAAEod,UAAUy8D,UAAY,WACtB,IAAIpyE,EAAIzQ,KACJ4pB,EAAInZ,EAAEi7C,SACVj7C,EAAE/P,MAAMsF,SAAQ,SAAUyK,GACxBA,EAAEtO,UAAYsO,EAAEtO,SAASupF,QAAUj7E,EAAE6xD,mBAAqB7xD,EAAEtO,SAASkuF,UAAY5/E,EAAEtO,SAASupF,WAE9Fj7E,EAAEvQ,OAAO8F,SAAQ,SAAUgD,GACzB,IAAIyG,EAAIzG,EAAEnI,OAASmI,EAAEnI,MAAMyI,SAAW,IACrCN,EAAEM,QAAQnH,WAAY,IAAO6G,EAAEozD,UAAW,IAAO3rD,EAAEnH,QAAQjK,MAAMkjD,qBAAuBv5C,EAAE4iF,SAAW,CAAC5iF,EAAE5D,KAAMgmB,EAAEpiB,EAAEM,QAAQ46B,MAAO,IAAKta,EAAIna,EAAEhP,IAAMgP,EAAE7O,KAAMgpB,EAAIna,EAAEjQ,OAASiQ,EAAEtM,OAAOglB,YAIvL4C,EAAEkuC,QAAQxpD,GAEVmD,EAAEwT,UAAUoqE,iBAAmB,WAC7B,IAAI//E,EAAIzQ,KAAKU,MAAMyB,SACnBnC,KAAKsJ,QAAQq5E,mBAAqB3iF,KAAK+e,GAAG,WAAa/e,KAAK+e,GAAG,kBAAoB/e,KAAKsJ,QAAQnH,UAAY,EAAInC,KAAKX,MAAMa,OAAOa,OAAS6R,EAAEwT,UAAUmqE,iBAAiB5zE,KAAK3c,KAAM,SAAWyQ,GAAKuZ,EAAEvZ,EAAEi7E,QAAQ,SAAU9hE,EAAG5gB,GAC1N,UAAYA,EAAE0T,OAAO,KAAOsN,EAAEJ,GAAG,SAAUnZ,GACzC,OAAOA,EAAEvK,oBACAuK,EAAEi7E,OAAO1iF,QAIxB4J,EAAEwT,UAAUmqE,iBAAmB,SAAU9/E,GACvC,IAAIzH,EAAIyH,GAAKzQ,KAAKsJ,QAAQnH,SAE1B,GAAI6G,KAAM,IAAOhJ,KAAKo8D,UAAW,IAAOp8D,KAAKX,MAAMiK,QAAQjK,MAAMkjD,oBAAqB,CACpF,IAAI9yC,EAAIzP,KAAK8oF,eACT1+D,EAAIpqB,KAAK6oF,eACTp/D,EAAI,GACJK,EAAIM,EAAErpB,OACNspB,EAAIrqB,KAAKsJ,QACTkH,EAAI6Z,EAAEo5C,UACNj6C,EAAI4B,EAAEf,EAAEohE,oBAAsBj7E,EAAG,GACrC6Z,EAAIA,EAAE6Z,MAEN,IAKI3X,EACArB,EANAvB,EAAI,KADRlZ,EAAIA,EAAI,GAAKzQ,KAAKoF,KAAO,IAAI2mB,OAAO/iB,GAAKhJ,KAAK4rF,UAE1C5hE,EAAIhqB,KAAK2rF,UACT7jE,EAAI9nB,KAAKU,MACTiS,EAAImV,EAAE3lB,SAASupF,OACf94E,EAAIkV,EAAE3lB,SAASkuF,UAKnB,IAFAvoE,EAAE3lB,SAASmuF,eAAiB,EAEvBplE,EAAI,EAAGA,EAAIpB,EAAGoB,IAAK,CACtB,IAAIK,EAAI9b,EAAEyb,GACN2B,EAAIzC,EAAEc,GACNH,EAAI/qB,KAAK6rF,kBAAkB9gE,EAAGQ,EAAGvrB,KAAKiD,OACtCypB,EAAI3B,EAAElV,IACN6V,GAAKa,EAAIvC,GAAK6C,GAAKrD,EAAI,EAAIhZ,IAAMmZ,EAAIlZ,EACzCkC,EAAE+Y,KAAO/Y,EAAE+Y,GAAK,IAChB/Y,EAAE+Y,GAAGH,KAAO3Y,EAAE8Y,IAAM9Y,EAAE8Y,GAAGH,IAAM5Y,EAAE+Y,GAAGH,GAAK3Y,EAAE8Y,GAAGH,GAAI5Y,EAAE+Y,GAAGH,GAAGuxC,MAAQ,MAAQnqD,EAAE+Y,GAAGH,GAAK,IAAIza,EAAEgX,EAAGA,EAAExe,QAAQozD,YAAanwC,EAAGhB,EAAGlB,IAC1HqB,EAAI/Y,EAAE+Y,GAAGH,GACT,OAASsB,GAAKnB,EAAEg6C,OAAOh5C,GAAKhB,EAAEg6C,OAAO1lE,KAAKiD,OAAS,CAACmoB,EAAEM,EAAEglE,WAAYlnE,IAAKvY,EAAEya,EAAEglE,cAAgBhlE,EAAEogE,KAAOp/D,GAAIhB,EAAE47D,QAAUx/D,EAAE3lB,SAASmuF,cAAe,EAAIvlE,EAAE9nB,QAAS,IAAOjD,KAAKkxF,eAAiBxlE,EAAEg6C,OAAOh5C,GAAG,GAAKhB,EAAEg6C,OAAO1lE,KAAKiD,MAAQ,IAAMsoB,EAAI,MAAM,KAAOG,EAAEg6C,OAAOh5C,GAAKhB,EAAEg6C,OAAO1lE,KAAKiD,OAAS,KAC/R,YAAc+F,GAAKujB,EAAIA,EAAI9b,EAAIkZ,EAAGK,GAAKrX,EAAE4Z,IAAM5Z,EAAE4Z,GAAGhB,IAAMgB,EAAI5Z,EAAE4Z,GAAGhB,GAAIG,EAAEoxC,MAAQvwC,EAAEuwC,MAAQ/yC,KAAK1W,IAAIkZ,EAAEuwC,MAAOpxC,EAAEoxC,OAAS/yC,KAAK8gC,IAAIh+B,IAAM,GAAKnB,EAAEoxC,MAAQ/6D,EAAE2pB,EAAEoxC,OAAS/yC,KAAK8gC,IAAIh+B,IAAM,KAAO,UAAY7jB,GAAK4gB,EAAEiD,KAAOA,EAAIA,EAAE,IAAK,OAASA,IAAMnB,EAAEoxC,OAASpxC,EAAEoxC,OAAS,GAAK,IAAMpxC,EAAEoxC,MAAQ/6D,EAAE2pB,EAAEoxC,OAASjwC,GAAK,IAC1SnB,EAAEglE,WAAa,UAAY1nF,GAAK0iB,EAAEoxC,OAAS,GAAK,EAAI1xC,EAAEM,EAAEglE,WAAYlnE,IAAMqD,GAAK,GAC/E,OAASA,IAAMnB,EAAEg6C,OAAOh5C,GAAGplB,KAAKokB,EAAEglE,YAAajnE,EAAEyB,GAAKQ,EAAEglE,WAAYhlE,EAAEklE,gBAAiB,GAGzF,YAAc5nF,IAAM8e,EAAE3lB,SAASykE,eAAgB,GAC/C,UAAY59D,IAAMhJ,KAAKqrF,aAAe5hE,GACtC3B,EAAE3lB,SAASkuF,UAAY,KAI3Bz9E,EAAEwT,UAAUqqE,aAAe,WACzB,IAIIrmE,EAJA3Z,EAAIzQ,KACJ4pB,EAAInZ,EAAEm7E,SACN5iF,EAAIyH,EAAE/P,MAAMyB,SAASupF,OACrBj8E,EAAIgB,EAAEq4E,eAENh/D,EAAIrZ,EAAEnH,QAAQnH,SAClBsO,EAAEqZ,EAAI,YAAc,CAACF,EAAG,IAAMA,GAAG5jB,SAAQ,SAAU4jB,GACjD,IAAK,IAAkBJ,EAAGG,EAAjBnZ,EAAIf,EAAE1O,OAAcyP,KAAUgZ,EAAI/Z,EAAEe,GAAI4Z,EAAI3Z,EAAEo7E,kBAAkBzhE,EAAGZ,EAAG/Y,EAAExN,MAAO2mB,IAAID,GAAKH,EAAIxgB,EAAE4gB,IAAM5gB,EAAE4gB,GAAGJ,KAAOA,EAAEk8C,OAAOt7C,EAAEvU,OAAMpF,EAAEqZ,EAAI,WAAWH,EAAGH,EAAGhZ,OAIrKoC,EAAEwT,UAAU+qE,eAAiB,SAAU1gF,EAAGmZ,EAAG5gB,GAC3C4gB,EAAIA,EAAEkzC,MAAQ,IAAMlzC,EAAEkzC,MAAQ,EAC9BrsD,EAAE,GAAK1O,EAAE0O,EAAE,GAAKmZ,GAChBnZ,EAAE,GAAK1O,EAAE0O,EAAE,GAAKmZ,GAChB5pB,KAAKqrF,aAAariF,GAAKyH,EAAE,IAG3BmC,EAAEwT,UAAUylE,kBAAoB,SAAUp7E,EAAGmZ,EAAG5gB,EAAGyG,GAQjD,OAPCwB,EAAER,IAAMA,EAAE5O,IAAM+nB,GAAKna,GAAKgB,EAAEm7E,WAAan8E,EAAIgB,EAAI,CAChD5O,EAAG+nB,EACH3mB,MAAO,EACP4S,IAAKpG,EACLm8E,SAAUn8E,GACRgB,EAAExN,QACNwN,EAAEoF,IAAM,CAAC7M,EAAG4gB,EAAGnZ,EAAExN,OAAOklB,OACjB1X,GAGTya,EAAEkmE,UAAYtgF,EAEPoa,EAAEkmE,aAEXxkE,EAAE9E,EAAG,4BAA6B,CAACA,EAAE,yBAA0BA,EAAE,iCAAkCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GAC1I,IAAIoD,EAAIlrB,MAAQA,KAAKgzD,WAAa,WAChC,IAAIhqD,EAAI,SAAUyG,EAAGqY,GASnB,OARA9e,EAAI2d,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUzF,EAAGyG,GACjCzG,EAAEqpC,UAAY5iC,IACX,SAAUzG,EAAGyG,GAChB,IAAK,IAAIma,KAAKna,EAAGA,EAAEkd,eAAe/C,KAAO5gB,EAAE4gB,GAAKna,EAAEma,KAG7C5gB,EAAEyG,EAAGqY,IAGd,OAAO,SAAUrY,EAAGqY,GAClB,SAAS7W,IACPjR,KAAK6N,YAAc4B,EAGrBzG,EAAEyG,EAAGqY,GACLrY,EAAE2W,UAAY,OAAS0B,EAAInB,OAAOyb,OAAOta,IAAM7W,EAAEmV,UAAY0B,EAAE1B,UAAW,IAAInV,IAnBhD,GAsB9B2B,EAAIkV,EAAEs3B,QACNr0B,EAAIjD,EAAEu4B,MAgFV,OA9EAv4B,EAAI,SAAU9e,GACZ,SAAS8e,IACP,IAAIrY,EAAI,OAASzG,GAAKA,EAAE0Y,MAAM1hB,KAAM6nB,YAAc7nB,KAIlD,OAHAyP,EAAEvM,UAAO,EACTuM,EAAEnG,aAAU,EACZmG,EAAEi2D,YAAS,EACJj2D,EAmET,OAhEAyb,EAAEpD,EAAG9e,GAEL8e,EAAE1B,UAAU4nE,UAAY,WACtB,IAAIhlF,EAAIhJ,KACJyP,EAAIzP,KAAKsJ,QACT8gB,GAAKpqB,KAAKqxF,YAAcrxF,KAAKsxF,cAAc30E,KAAK3c,MAChD4pB,EAAI5pB,KAAKX,MAAM6iD,WACfzxC,EAAI,CAAC,CAAC,QAAS,qBACnBmZ,GAAKnZ,EAAE,GAAGnJ,KAAKmI,EAAEjL,WAAaxE,KAAK2D,OAAS,UAAW8L,EAAEzL,YACzDyM,EAAIzH,EAAEuoF,eAAe9gF,IACnBzK,SAAQ,SAAUyK,EAAGqX,GACrB,IAAIkC,EAAIvZ,EAAE,GACNgZ,EAAIzgB,EAAEghB,GACNoB,EAAI3B,EAAI,UAAY,OACxBA,GAAKA,EAAE1iB,KAAOiC,EAAEwoF,sBAAwB,KAAOpnE,EAAEqnE,KAAMhoE,EAAE/b,QAAQ,CAC/Dkc,EAAGQ,KACCA,EAAErpB,SAAWiI,EAAEghB,GAAKP,EAAIzgB,EAAE3J,MAAM4H,SAAShB,KAAKmkB,GAAG5nB,SAASiO,EAAE,IAAIvJ,KAAK,CACzEy7C,OAAQ,IACPv7C,IAAI4B,EAAE6oE,QACTpoD,IAAMG,IAAMI,EAAI,CACd7iB,OAAQsJ,EAAE,GACV,eAAgBhB,EAAEvK,UAClBwC,KAAMsB,EAAE0oF,WAAa1oF,EAAErF,OAAS,QAC/B8M,EAAE,GAAKuZ,EAAE3iB,UAAYoJ,EAAE,GAAK,WAAahB,EAAEkiF,UAAY3nE,EAAE,kBAAoBA,EAAE,mBAAqB,SAAUP,EAAE2B,GAAGpB,GAAGzoB,OAAO,EAAIumB,GAAKrY,EAAElO,SAC3IkoB,IAAMA,EAAE5iB,OAASujB,EAAEqnE,KAAMhoE,EAAEw/B,OAAS7+B,EAAE6+B,YAI1CnhC,EAAE1B,UAAUkrE,aAAe,SAAUtoF,EAAGyG,EAAG2a,GACzC,IAIItZ,EAJA8Y,EAAI5pB,KACJyQ,EAAImZ,EAAEtgB,QACN0gB,EAAI,GACJlC,EAAI,GAEJ2B,EAAIhZ,EAAE7B,KAENqC,GADJjI,EAAIA,GAAK4gB,EAAE87C,QACDlK,SAeV,OAdAvqD,GAAKjI,EAAE0b,WACN+E,EAAI,CACHojC,MAAO,EACPD,OAAQ,GACRnjC,IAAMA,GAAK,IAAMxY,IAAMwY,EAAI,EAAIA,IACjCzgB,EAAIhJ,KAAKusF,eAAevjF,GAAG,IAAMyH,EAAEmhF,eAAiBniF,IAAM2a,KACxDpkB,SAAQ,SAAUolB,EAAGna,GACrB,IAAIpP,EAAIupB,EAAEtpB,MACNgoB,EAAIsB,EAAE+gD,MACN9hD,EAAIrhB,EAAEiI,EAAI,IACbma,EAAE0lE,WAAazmE,GAAKA,EAAEwmE,cAAgBzmE,IAAMtZ,GAAI,GACjDsa,EAAE8lD,SAAWt+D,EAAEnD,IAAM,EAAIwB,EAAIH,GAAKL,EAAEmhF,aAAexmE,EAAE8lD,SAAWzhE,EAAIqB,GAAI,GAAM,IAAMG,GAAKH,EAAIG,EAAI,CAAC,CAAC,IAAKma,EAAEtpB,MAAOspB,EAAE+gD,QAAUviD,EAAEioE,eAAiB5gF,EAAI,CAAC2Y,EAAEioE,eAAe7oF,EAAGoiB,EAAGna,IAAMwY,GAAKxY,EAAI,IAAMwY,EAAI,CAAC,CAAC,IAAKY,EAAEvoB,MAAOgoB,IAAM,IAAML,EAAI,CAAC,CAAC,KAAMY,EAAEvoB,MAAQD,GAAK,EAAGwoB,EAAE8hD,OAAQ,CAAC,KAAM9hD,EAAEvoB,MAAQD,GAAK,EAAGioB,IAAM,CAAC,CAAC,IAAKjoB,EAAGwoB,EAAE8hD,SAAW7kE,KAAK,CAAC,IAAKzF,EAAGioB,IAAO7Y,EAAI,CAAC,CAAC,IAAKpP,EAAGioB,IAAKhC,EAAExgB,KAAK8jB,EAAEvpB,GAAI4nB,IAAM3B,EAAExgB,KAAK8jB,EAAEvpB,GAAI,IAAM4nB,GAAK3B,EAAExgB,KAAK8jB,EAAEvpB,IAAKmoB,EAAE1iB,KAAKoa,MAAMsI,EAAG/Y,GAAIH,GAAI,MAE1bkZ,EAAEynE,KAAO3pE,EACF8B,EAAE8kE,UAAY1kE,GAGvBlC,EAAE1B,UAAUmrE,eAAiB,SAAUvoF,GAMrC,OALAhJ,KAAKizE,MAAMjtE,SAAQ,SAAUyJ,EAAG2a,GAC9BA,EAAI,CAAC,cAAgBA,EAAG,0CAA4CA,EAAI,KAAO3a,EAAExE,WAAa,KAC9FjL,KAAKX,MAAM6iD,YAAc93B,EAAE9iB,KAAKmI,EAAE9L,OAAS3D,KAAK2D,MAAO8L,EAAEzL,WAAahE,KAAKsJ,QAAQtF,WACnFgF,EAAE1B,KAAK8iB,KACNpqB,MACIgJ,GAGT8e,EAAE68B,eAAiB55B,EAAEtb,EAAEk1C,eAAgB,IAChC78B,EAzEL,CA0EFrY,GAEFzG,EAAEg4E,mBAAmB,OAAQl5D,GAEtBA,KAET8E,EAAE9E,EAAG,4BAA6B,CAACA,EAAE,uBAAwBA,EAAE,+BAAgCA,EAAE,iCAAkCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,GAC7K,IAAItY,EAAI5S,MAAQA,KAAKgzD,WAAa,WAChC,IAAIhqD,EAAI,SAAU4gB,EAAGnZ,GASnB,OARAzH,EAAI2d,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUgC,EAAGmZ,GACjCnZ,EAAE4hC,UAAYzoB,IACX,SAAUnZ,EAAGmZ,GAChB,IAAK,IAAI5gB,KAAK4gB,EAAGA,EAAE+C,eAAe3jB,KAAOyH,EAAEzH,GAAK4gB,EAAE5gB,KAG7CA,EAAE4gB,EAAGnZ,IAGd,OAAO,SAAUmZ,EAAGnZ,GAClB,SAAShB,IACPzP,KAAK6N,YAAc+b,EAGrB5gB,EAAE4gB,EAAGnZ,GACLmZ,EAAExD,UAAY,OAAS3V,EAAIkW,OAAOyb,OAAO3xB,IAAMhB,EAAE2W,UAAY3V,EAAE2V,UAAW,IAAI3W,IAnBhD,GAsB9Bsb,EAAItb,EAAEgC,MACNob,EAAI/E,EAAEo1B,YAAYr5C,KAEtB4L,EAAIyb,EAAE3hB,OACN,IAAIgjB,EAAIrB,EAAEm1B,MACNt+C,EAAImpB,EAAEs1B,WACNvvC,EAAIia,EAAE21B,KAsLV,OApLA31B,EAAI,SAAUliB,GACZ,SAAS4gB,IACP,IAAInZ,EAAI,OAASzH,GAAKA,EAAE0Y,MAAM1hB,KAAM6nB,YAAc7nB,KAIlD,OAHAyQ,EAAEvN,UAAO,EACTuN,EAAEnH,aAAU,EACZmH,EAAEi1D,YAAS,EACJj1D,EAqKT,OAlKAmC,EAAEgX,EAAG5gB,GAEL4gB,EAAExD,UAAU4nE,UAAY,WACtBhuF,KAAKyuF,SAAW,GAChBzlF,EAAEod,UAAU4nE,UAAUtsE,MAAM1hB,MAC5B,IAAIyQ,EAAIzQ,KACJ4pB,EAAI5pB,KAAKyuF,SACTh/E,EAAIzP,KAAKsJ,QACT8gB,EAAI,CAAC,CAAC,OAAQ,kBAAmBpqB,KAAK2D,MAAO8L,EAAEg5E,YACnDzoF,KAAKizE,MAAMjtE,SAAQ,SAAU4jB,EAAG5gB,GAC9BohB,EAAE9iB,KAAK,CAAC,aAAe0B,EAAG,wCAA0CA,EAAI,IAAM4gB,EAAE3e,UAAW2e,EAAEjmB,OAAS8M,EAAE9M,MAAOimB,EAAE6+D,WAAah5E,EAAEg5E,eAElIr+D,EAAEpkB,SAAQ,SAAUgD,GAClB,IAAIohB,EAAIphB,EAAE,GACNghB,EAAI,GACJP,EAAIhZ,EAAE2Z,GACNtC,EAAI2B,EAAI,UAAY,OACxBA,GAAKA,EAAE1iB,KAAO0J,EAAE+gF,sBAAwB,KAAO5nE,EAAE6nE,KAAMhoE,EAAE/b,QAAQ,CAC/Dkc,EAAGA,MACEI,EAAE24B,OAAS,GAAGl5B,EAAIhZ,EAAE2Z,GAAK3Z,EAAEpR,MAAM4H,SAAShB,KAAK2jB,GAAGpnB,SAASwG,EAAE,IAAI5B,IAAIqJ,EAAEohE,QAAU5oB,QAAS,GACjGx4C,EAAEpR,MAAM6iD,aAAel4B,EAAEtiB,KAAOuJ,EAAEjI,EAAE,GAAI+hB,EAAE/hB,EAAE,IAAIq6C,WAAWpyC,EAAExB,EAAEqiF,YAAa,MAAMnoF,QAClF8f,EAAE3B,GAAGkC,GACLP,EAAE5iB,OAAS+iB,EAAE6nE,KACbhoE,EAAEsoE,UAAYtiF,EAAEb,KAAO,EAAI,MAI/Bgb,EAAExD,UAAUkrE,aAAe,SAAU7gF,GACnC,IAAImZ,EAAIiD,EAAEzG,UAAUkrE,aAChBtoF,EAAIhJ,KAAKsJ,QACTmG,EAAIzG,EAAE7G,SACNioB,EAAIpqB,KAAKU,MACTonB,EAAI,GACJyC,EAAI,GACJU,EAAIjrB,KAAKiD,MACTpB,EAAIuoB,EAAEjoB,SAASupF,OAAO1rF,KAAK4rF,UAC3B9hE,EAAI9gB,EAAEy6D,UACNp5C,EAAIN,KAAKw2B,MAAMn2B,EAAEi/C,aAAargE,EAAEy6D,YACpCz6D,EAAIiI,EAAEjI,EAAE4oF,aAAc,YAAcniF,GAEpC,IAAIe,EAAI,SAAUA,EAAGmZ,EAAGC,GACtB,IAAI5gB,EAAIyH,EAAED,GACVA,EAAIf,GAAK5N,EAAEmH,EAAEnH,GAAG6jE,OAAOz6C,GACvB,IAAIzB,EAAIxgB,EAAE4gB,EAAI,SAAW,EAIzB,GAHAA,EAAI5gB,EAAE4gB,EAAI,UAAY,EACtB5gB,GAAI,EAEA4gB,GAAKJ,EAAG,CACV,IAAIQ,GAAKR,EAAIhZ,EAAE,GAAKA,EAAE,IAAMoZ,EACxBH,EAAIjZ,EAAE,GAAKoZ,EACf5gB,IAAMwgB,OACA/Z,GAAKgB,EAAEkZ,IAAMlZ,EAAEkZ,GAAGunD,SAAWlnD,EAAIP,EAAIK,QAE7C,IAAuBE,IAAMO,EAAEjjB,KAAK,CAClCxF,MAAOqpB,EACPghD,MAAO,OAASniD,EAAIK,EAAID,EAAEi/C,aAAar/C,GACvCknD,OAAQloE,EACRgpF,SAAS,IACPlqE,EAAExgB,KAAK,CACTxF,MAAOqpB,EACPghD,MAAO,OAAS1iD,EAAIY,EAAID,EAAEi/C,aAAa5/C,GACvCwoE,SAAS,MAIbxhF,EAAIA,GAAKzQ,KAAK0lE,OACdj2D,IAAMgB,EAAIzQ,KAAKkyF,eAAezhF,IAE9B,IAAK,IAAI+Y,EAAI,EAAGG,EAAIlZ,EAAE1P,OAAQyoB,EAAIG,IAAKH,EAAG,CACxC/Z,IAAMgB,EAAE+Y,GAAGsnE,UAAYrgF,EAAE+Y,GAAGqnE,WAAapgF,EAAE+Y,GAAG2oE,SAAW1hF,EAAE+Y,GAAG4oE,eAAY,GAC1E,IAAI3mE,EAAIhb,EAAE+Y,GAAG0nD,OACT/lD,EAAIla,EAAER,EAAE+Y,GAAG6oE,UAAW5hF,EAAE+Y,GAAG1nB,OAC3B6Q,EAAIlD,EAAIwB,EAAER,EAAE+Y,GAAG0iE,QAAS7hE,GAAKA,EAC5BoB,IAAKziB,IAAGA,GAAKwH,EAAEgZ,EAAGA,EAAI,EAAG,QAASiC,IAAMhc,GAAKzG,IAAMuhB,EAAEjjB,KAAKmJ,EAAE+Y,IAAK1B,EAAExgB,KAAK,CAC3EzF,EAAG2nB,EACH1nB,MAAOqpB,EACPghD,MAAOx5D,KACJ3J,GAAKwH,EAAEgZ,EAAGA,EAAI,EAAG,UAYxB,OATAhZ,EAAIoZ,EAAEjN,KAAK3c,KAAMuqB,GAAG,GAAI,GACxBzC,EAAE0zC,UAAW,GAEZ7oD,GADD8Y,EAAI7B,EAAEjN,KAAK3c,KAAM8nB,GAAG,GAAI,IACjB,KAAO,MAAQnV,EAAE,KAAO8Y,EAAE,GAAK,CAAC,IAAK9Y,EAAE,GAAIA,EAAE,MACpD8Y,EAAIjb,EAAEub,OAAON,IACX1qB,QAAU0qB,EAAEnkB,KAAK,CAAC,MACpBsiB,EAAIA,EAAEjN,KAAK3c,KAAMuqB,GAAG,EAAIvhB,GACxByiB,EAAEgmE,KAAOjhF,EAAEihF,KACXzxF,KAAKyuF,SAAWhjE,EACT7B,GAGTA,EAAExD,UAAU8rE,eAAiB,SAAUzhF,GACrC,IAAImZ,EAAI5pB,KACJgJ,EAAI,GACJyG,EAAI,GACJ2a,EAAIpqB,KAAKa,MACTinB,EAAI9nB,KAAKU,MACT6pB,EAAIzC,EAAE3lB,SAASupF,OAAO1rF,KAAK4rF,UAC3B3gE,EAAI,GACJppB,EAAIimB,EAAE5nB,OACN4pB,EAAIjoB,EAAEd,OACNspB,EAAIvC,EAAExe,QAAQmyD,eAAiB,GAAK,EACpCjrD,EAAI3O,EAAEgd,QAAQ+K,GAGlB,GAFAnZ,EAAIA,GAAKzQ,KAAK0lE,OAEV1lE,KAAKsJ,QAAQnH,SAAU,CACzB,IAAK,IAAIqnB,EAAI,EAAGA,EAAI/Y,EAAE1P,OAAQyoB,IAAK/Y,EAAE+Y,GAAG2oE,SAAW1hF,EAAE+Y,GAAG4oE,eAAY,EAAQnnE,EAAExa,EAAE+Y,GAAG3nB,GAAK4O,EAAE+Y,GAE1FznB,EAAEwoB,GAAG,SAAU/Z,EAAGmZ,GAChB,OAASnZ,EAAEssD,OAASrtD,EAAEnI,KAAKqiB,MAE7Bla,EAAEkV,MAAK,SAAUnU,EAAGmZ,GAClB,OAAOnZ,EAAImZ,KAEb,IAAIA,EAAI9nB,EAAEotB,KAAI,SAAUze,GACtB,OAAOA,EAAE4rD,WAEX3sD,EAAEzJ,SAAQ,SAAUyK,EAAG+Y,GACrB,IACIC,EACA2B,EAFApB,EAAI,EAGR,GAAIiB,EAAExa,KAAOwa,EAAExa,GAAGygE,OAAQloE,EAAE1B,KAAK2jB,EAAExa,IAAK,EAAE,EAAG,GAAGzK,SAAQ,SAAUgD,GAChE,IAAIohB,EAAI,IAAMphB,EAAI,YAAc,WAC5BghB,EAAIO,EAAE9a,EAAE+Z,EAAIxgB,IACZ8e,EAAI,EACR,GAAIkC,EAAG,IAAK,IAAIlZ,EAAIN,EAAG,GAAKM,GAAKA,EAAIgZ,GAAI,CACvC,IAAInX,EAAI9Q,EAAEiP,GAAG7N,OACbwmB,EAAIO,EAAE07C,OAAO/yD,MACPA,IAAMiX,EAAE3mB,MAAQgoB,EAAExa,GAAG2Z,IAAK,EAAKT,EAAE7Y,KAAOsa,EAAIb,EAAE9Z,GAAGi1D,OAAO/yD,MAAQmV,GAAKsD,EAAE,GAAKA,EAAE,KACpFta,GAAKuZ,EAEPY,EAAExa,GAAG,IAAMzH,EAAI,aAAe,aAAe8e,SACvC,CACN,IAAK,IAAIhX,EAAIN,EAAG,GAAKM,GAAKA,EAAIgZ,GAAI,CAChC,GAAIL,EAAIc,EAAE9Z,GAAGi1D,OAAO7jE,EAAEiP,GAAG7N,OAAQ,CAC/B+mB,EAAIP,EAAE,GACN,MAGF3Y,GAAKuZ,EAGPL,EAAI/Y,EAAE+Y,EAAG,GACTA,EAAIlC,EAAE0pC,UAAUxnC,EAAG,EAAG,EAAG,EAAG,GAC5BhhB,EAAE1B,KAAK,CACL4pE,QAAQ,EACRpvE,MAAOsoB,EAAEonC,UAAU/gD,EAAG,EAAG,EAAG,EAAG,GAC/B5O,EAAG4O,EACH07D,MAAOniD,EACPkiE,QAASliE,QAMjB,OAAOhhB,GAGT4gB,EAAE+6B,eAAiBp4B,EAAEM,EAAE83B,eAAgB,CACrC8e,UAAW,IAEN75C,EA3KL,CA4KFiD,GAEFpd,EAAEyb,EAAE9E,UAAW,CACb8qE,cAAc,EACdnS,iBAAkB/1E,EAAEo/E,gBAEtBtgE,EAAEk5D,mBAAmB,OAAQ91D,GAEtBA,KAET0B,EAAE9E,EAAG,gCAAiC,CAACA,EAAE,iCAAkCA,EAAE,uBAAuB,SAAUrY,EAAGzG,GAC/G,IAAI8e,EAAI9nB,MAAQA,KAAKgzD,WAAa,WAChC,IAAIhqD,EAAI,SAAUyG,EAAGqY,GASnB,OARA9e,EAAI2d,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUzF,EAAGyG,GACjCzG,EAAEqpC,UAAY5iC,IACX,SAAUzG,EAAGyG,GAChB,IAAK,IAAIma,KAAKna,EAAGA,EAAEkd,eAAe/C,KAAO5gB,EAAE4gB,GAAKna,EAAEma,KAG7C5gB,EAAEyG,EAAGqY,IAGd,OAAO,SAAUrY,EAAGqY,GAClB,SAAS7W,IACPjR,KAAK6N,YAAc4B,EAGrBzG,EAAEyG,EAAGqY,GACLrY,EAAE2W,UAAY,OAAS0B,EAAInB,OAAOyb,OAAOta,IAAM7W,EAAEmV,UAAY0B,EAAE1B,UAAW,IAAInV,IAnBhD,GAsB9Bia,EAAIzb,EAAEytC,YAAYr5C,KAClB+O,EAAI5J,EAAEq3C,MACNt1B,EAAI/hB,EAAE63C,KAgDV,OA9CA73C,EAAI,SAAUA,GACZ,SAASyG,IACP,IAAIA,EAAI,OAASzG,GAAKA,EAAE0Y,MAAM1hB,KAAM6nB,YAAc7nB,KAIlD,OAHAyP,EAAEvM,UAAO,EACTuM,EAAEnG,aAAU,EACZmG,EAAEi2D,YAAS,EACJj2D,EAmCT,OAhCAqY,EAAErY,EAAGzG,GAELyG,EAAE2W,UAAUyrE,eAAiB,SAAU7oF,EAAGyG,EAAG2a,GAC3C,IAAIR,EAAIna,EAAE3N,OAAS,EACf2O,EAAIhB,EAAE08D,OAAS,EACfniD,EAAIhhB,EAAEohB,EAAI,GAGd,GAFAA,EAAIphB,EAAEohB,EAAI,GAENJ,IAAMA,EAAEknD,SAAU,IAAOlnD,EAAEioE,UAAYxiF,EAAEuiF,SAAW5nE,IAAMA,EAAE8mD,SAAU,IAAO9mD,EAAE6nE,UAAYxiF,EAAEuiF,QAAS,CACxGhpF,EAAIghB,EAAEmiD,OAAS,EACf,IAAIrkD,EAAIsC,EAAEtoB,OAAS,EACnBsoB,EAAIA,EAAE+hD,OAAS,EACf,IAAIr7D,EAAI,EACJ2Y,GAAK,IAAMG,GAAKI,EAAEloB,OAAS,IAAM,IACjCmP,GAAK,IAAMR,EAAIzH,GAAK,IAEpBuhB,GAAK,IAAM9Z,EAAI2Z,GAAK,KADxBtC,GAAK,IAAM8B,EAAI9B,GAAK,OAEd2B,IAAM3Y,GAAKyZ,EAAItZ,IAAM6W,EAAI8B,IAAM9B,EAAI2B,GAAKhZ,EAAI8Z,GAElDA,GAAKzZ,GADLG,GAAKH,GAED9H,GAAKiI,EAAIR,EAAyB8Z,EAAI,EAAI9Z,GAA5BQ,EAAI8Y,KAAK1W,IAAIrK,EAAGyH,IAAqBQ,EAAIjI,GAAKiI,EAAIR,IAA0B8Z,EAAI,EAAI9Z,GAA5BQ,EAAI8Y,KAAKnlB,IAAIoE,EAAGyH,KAC1F8Z,EAAIH,GAAKG,EAAI9Z,EAAyBQ,EAAI,EAAIR,GAA5B8Z,EAAIR,KAAK1W,IAAI+W,EAAG3Z,IAAqB8Z,EAAIH,GAAKG,EAAI9Z,IAA0BQ,EAAI,EAAIR,GAA5B8Z,EAAIR,KAAKnlB,IAAIwlB,EAAG3Z,KAC1FhB,EAAE6iF,WAAaxqE,EACfrY,EAAE8iF,WAAahoE,EAKjB,OAFA9a,EAAI,CAAC,IAAKsb,EAAEf,EAAEsoE,WAAYtoE,EAAEloB,MAAO,GAAIipB,EAAEf,EAAEuoE,WAAYvoE,EAAEmiD,MAAO,GAAIphD,EAAEtB,EAAGG,EAAG,GAAImB,EAAE9Z,EAAGR,EAAG,GAAImZ,EAAGnZ,GAC/FuZ,EAAEsoE,WAAatoE,EAAEuoE,gBAAa,EACvB9iF,GAGTA,EAAEk1C,eAAiB/xC,EAAEsY,EAAEy5B,gBAChBl1C,EAzCL,CA0CFyb,GAEFzb,EAAEuxE,mBAAmB,SAAUh4E,GAExBA,KAET4jB,EAAE9E,EAAG,wCAAyC,CAACA,EAAE,iCAAkCA,EAAE,+BAAgCA,EAAE,iCAAkCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,GACnM,IAAItY,EAAI5S,MAAQA,KAAKgzD,WAAa,WAChC,IAAIhqD,EAAI,SAAUyG,EAAGma,GASnB,OARA5gB,EAAI2d,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUgC,EAAGmZ,GACjCnZ,EAAE4hC,UAAYzoB,IACX,SAAUnZ,EAAGmZ,GAChB,IAAK,IAAI5gB,KAAK4gB,EAAGA,EAAE+C,eAAe3jB,KAAOyH,EAAEzH,GAAK4gB,EAAE5gB,KAG7CA,EAAEyG,EAAGma,IAGd,OAAO,SAAUna,EAAGma,GAClB,SAASnZ,IACPzQ,KAAK6N,YAAc4B,EAGrBzG,EAAEyG,EAAGma,GACLna,EAAE2W,UAAY,OAASwD,EAAIjD,OAAOyb,OAAOxY,IAAMnZ,EAAE2V,UAAYwD,EAAExD,UAAW,IAAI3V,IAnBhD,GAsB9Bsa,EAAIjD,EAAEo1B,YACNrwB,EAAI9B,EAAEyiE,KAEVziE,EAAIA,EAAEyiE,KAAKpnE,UACX,IAAImG,EAAIrB,EAAE3hB,OACNxH,EAAImpB,EAAEm1B,MAwBV,OAtBAn1B,EAAI,SAAUliB,GACZ,SAASohB,IACP,IAAIR,EAAI,OAAS5gB,GAAKA,EAAE0Y,MAAM1hB,KAAM6nB,YAAc7nB,KAIlD,OAHA4pB,EAAE1mB,UAAO,EACT0mB,EAAE87C,YAAS,EACX97C,EAAEtgB,aAAU,EACLsgB,EAKT,OAFAhX,EAAEwX,EAAGphB,GACLohB,EAAEu6B,eAAiB5iD,EAAE0N,EAAEk1C,eAAgB93B,EAAE83B,gBAClCv6B,EAXL,CAYF3a,GAEF8c,EAAErB,EAAE9E,UAAW,CACbkrE,aAAcvmE,EAAEumE,aAChBY,eAAgBnnE,EAAEmnE,eAClBlE,UAAWjjE,EAAEijE,UACbjP,iBAAkB/1E,EAAEo/E,gBAEtBtgE,EAAEk5D,mBAAmB,aAAc91D,GAE5BA,KAET0B,EAAE9E,EAAG,gCAAiC,CAACA,EAAE,wCAAyCA,EAAE,uBAAwBA,EAAE,mBAAoBA,EAAE,+BAAgCA,EAAE,yBAA0BA,EAAE,iCAAkCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,EAAGmY,EAAG8B,GACvR,IAAIN,EAAIvsB,MAAQA,KAAKgzD,WAAa,WAChC,IAAIviD,EAAI,SAAUmZ,EAAGpZ,GASnB,OARAC,EAAIkW,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAU+B,EAAGmZ,GACjCnZ,EAAE6hC,UAAY1oB,IACX,SAAUnZ,EAAGmZ,GAChB,IAAK,IAAIlZ,KAAKkZ,EAAGA,EAAEgD,eAAelc,KAAOD,EAAEC,GAAKkZ,EAAElZ,KAG7CA,EAAEmZ,EAAGpZ,IAGd,OAAO,SAAUoZ,EAAGpZ,GAClB,SAASxH,IACPhJ,KAAK6N,YAAc+b,EAGrBnZ,EAAEmZ,EAAGpZ,GACLoZ,EAAExD,UAAY,OAAS5V,EAAImW,OAAOyb,OAAO5xB,IAAMxH,EAAEod,UAAY5V,EAAE4V,UAAW,IAAIpd,IAnBhD,GAsB9BjH,EAAI0N,EAAE45C,WACNp4C,EAAIjI,EAAEyI,MACN2Y,EAAItC,EAAE+0B,SAEVptC,EAAIqY,EAAEwY,KACN,IAAI1W,EAAIiD,EAAEmyB,MACNvuC,EAAIoc,EAAErsB,IACNwpB,EAAI6C,EAAEuyB,QACNh0B,EAAIyB,EAAEtjB,OACNuH,EAAI+b,EAAEmxB,UACNv0B,EAAIoD,EAAEhR,QACNiR,EAAID,EAAEszB,SACN51B,EAAIsC,EAAEwzB,MACNp1B,EAAI4B,EAAEg0B,KACNh/C,EAAIgrB,EAAE2zB,WAuTV,OArTA3zB,EAAI,SAAU7jB,GACZ,SAASyG,IACP,IAAIe,EAAI,OAASxH,GAAKA,EAAE0Y,MAAM1hB,KAAM6nB,YAAc7nB,KAMlD,OALAwQ,EAAElP,iBAAc,EAChBkP,EAAEtN,UAAO,EACTsN,EAAEqhE,WAAQ,EACVrhE,EAAElH,aAAU,EACZkH,EAAEk1D,YAAS,EACJl1D,EA+RT,OA5RA+b,EAAE9c,EAAGzG,GAELyG,EAAE2W,UAAU1Y,QAAU,SAAU8C,GAC9B,IAAIC,EAAIzQ,KACJ2pB,EAAI3pB,KAAKU,MACTsI,EAAIyH,EAAEnH,QACNmG,EAAIzP,KAAKX,MAAMqsD,SACfrhC,EAAI,GACJD,EAAI3a,EAAI,aAAe,aAC3B,GAAIe,EAAG6Z,EAAEunC,OAAS,KAAMphD,EAAIoZ,EAAED,EAAEhpB,SAASqI,EAAEy6D,WAAY95C,EAAE6qB,IAAK7qB,EAAE6qB,IAAM7qB,EAAE3C,KAAMvX,EAAI4a,EAAEonC,WAAajhD,EAAImZ,EAAE3C,IAAMqD,EAAEqnC,WAAalhD,EAAGC,EAAEyqE,SAAWzqE,EAAEk8E,UAAWl8E,EAAEohE,MAAM3qE,KAAKmjB,OAAQ,CAC5K,IAAIP,EAAI/W,OAAOtC,EAAEohE,MAAM3qE,KAAKkjB,IAC5B3Z,EAAEohE,MAAMnkE,QAAQ,CACdkkD,OAAQ,GACPxmC,EAAErpB,EAAE0O,EAAEnH,QAAQi+C,WAAY,CAC3B34C,KAAM,SAAU4B,EAAGoZ,GACjBnZ,EAAEohE,QAAUxnD,EAAED,GAAKN,EAAIF,EAAE4qB,KAAO7qB,EAAE6qB,IAAM1qB,GAAIrZ,EAAEohE,MAAM3qE,KAAKmjB,UAMjE5a,EAAE2W,UAAUznB,KAAO,SAAU6R,EAAGC,GAC9BzH,EAAEod,UAAUznB,KAAK+iB,MAAM1hB,KAAM6nB,WAC7B,IAAI8B,EAAI3pB,MACRwQ,EAAImZ,EAAEtqB,OACJisE,aAAe96D,EAAEtQ,OAAO8F,SAAQ,SAAUwK,GAC1CA,EAAEpL,OAASukB,EAAEvkB,OAASoL,EAAE+wD,SAAU,OAItC9xD,EAAE2W,UAAUosE,iBAAmB,WAC7B,IAAIhiF,EAAIxQ,KACJyQ,EAAID,EAAElH,QACNqgB,EAAInZ,EAAE3P,MACN+oB,EAAIpZ,EAAE9P,MACNsI,EAAI2gB,EAAErgB,QAAQmyD,eAClBzyD,EAAI2gB,EAAE6xC,WAAaxyD,IAAM2gB,EAAE6xC,UAAYxyD,EACvC,IACIqhB,EADA5a,EAAI,GAEJ2a,EAAI,GACR,IAAO3Z,EAAEgiF,SAAWroE,EAAI,EAAI5Z,EAAEnR,MAAMa,OAAO8F,SAAQ,SAAUyK,GAC3D,IAAIkZ,EAAIlZ,EAAE/P,MACNsI,EAAIyH,EAAEnH,QAEV,GAAImH,EAAErL,OAASoL,EAAEpL,OAASqL,EAAE2rD,UAAY5rD,EAAEnR,MAAMiK,QAAQjK,MAAMkjD,qBAAuB34B,EAAE5C,MAAQ2C,EAAE3C,KAAO4C,EAAE4qB,MAAQ7qB,EAAE6qB,IAAK,CACvH,GAAIxrC,EAAE7G,UAAY,UAAY6G,EAAE7G,SAAU,CACxCkoB,EAAI5Z,EAAEm7E,cACN,IAAuBn8E,EAAE4a,KAAO5a,EAAE4a,GAAKD,KACvC,IAAIZ,EAAI/Z,EAAE4a,QACL,IAAOrhB,EAAEypF,WAAajpE,EAAIY,KAEjC3Z,EAAE2T,YAAcoF,MAGpB,IAAIM,EAAIC,KAAKnlB,IAAImlB,KAAK8gC,IAAIlhC,EAAE41C,SAAW51C,EAAEu8C,SAAWv8C,EAAEu8C,QAAQC,OAAS11D,EAAEpO,YAAcsnB,EAAE84C,mBAAqB94C,EAAEi0C,cAAgB,GAAIj0C,EAAE3C,KAClIc,EAAIgC,EAAIrZ,EAAEiiF,aACV1oE,GAAKF,EAAI,EAAIhC,IAAMsC,GAAK,GAQ5B,OAPA3Z,EAAIsZ,KAAKnlB,IAAI6L,EAAEkiF,eAAiBhpE,EAAE3C,IAAKiE,EAAExa,EAAEmiF,WAAY5oE,GAAK,EAAI,EAAIvZ,EAAErO,gBACtEoO,EAAEqiF,cAAgB,CAChB1vF,MAAOsN,EACPxQ,QAAS+pB,EAAIvZ,GAAK,GAAKqX,IAAMtX,EAAE4T,aAAe,IAAMpb,EAAI,EAAI,IAAMghB,EAAIF,EAAI,IAAM9gB,GAAK,EAAI,GACzF8pF,YAAa9oE,EACb+oE,YAAa3oE,GAER5Z,EAAEqiF,eAGXpjF,EAAE2W,UAAU4sE,SAAW,SAAUxiF,EAAGC,EAAGkZ,EAAGC,GACxC,IAAI5gB,EAAIhJ,KAAKX,MACTmqB,EAAIxpB,KAAKsB,YACTmO,IAAM+Z,EAAI,EAAI,GAAK,GASvB,OARAA,EAAIA,EAAI,EAAI,GAAK,EACjBxgB,EAAE0iD,UAAY1iD,EAAE/B,SAASymF,QAAUlkE,GAAK,GACxCxpB,KAAKsJ,QAAQykD,QAAUpkC,EAAII,KAAKw2B,MAAM/vC,EAAImZ,GAAKla,EAA0Bka,GAAvBnZ,EAAIuZ,KAAKw2B,MAAM/vC,GAAKf,GACtEma,EAAIG,KAAKw2B,MAAM9vC,EAAImZ,GAAKJ,EACxB/Z,EAAI,IAAMsa,KAAK8gC,IAAIp6C,IAAM,GAAKmZ,EAE9BA,GADAnZ,EAAIsZ,KAAKw2B,MAAM9vC,GAAK+Y,EAEpB/Z,GAAKma,MAAQnZ,EAAGmZ,GAAK,GACd,CACL/nB,EAAG2O,EACHzO,EAAG0O,EACHtN,MAAOwmB,EACPnqB,OAAQoqB,IAIZna,EAAE2W,UAAU6sE,wBAA0B,SAAUziF,EAAGC,EAAGkZ,EAAGC,GACvD,IAAI5gB,EAAIhJ,KACJwpB,EAAIxpB,KAAKsJ,QAAQnH,SAErB,IAAKwnB,EAAEunD,QAAU,EAAItnD,EAAEmpE,YAAa,CAClC,IAAItjF,EAAIzP,KAAKU,MAAM4I,QAAQmyD,eACvBpxC,EAAI,EACJD,EAAI3a,EAAI,GAAKma,EAAEmpE,YACnBlxF,EAAE7B,KAAKU,MAAMyB,UAAYnC,KAAKU,MAAMyB,SAASupF,QAAQ,SAAUl7E,GAC7D,GAAI,iBAAoBmZ,EAAE9nB,IAAM2O,EAAIA,EAAEmZ,EAAE9nB,EAAEqc,aAAc,CACtD,IAAIzN,EAAID,EAAEk1D,OAAO18D,EAAE/F,OACf2mB,EAAIpZ,EAAEssD,MACVtzC,GAAK/Y,IAAM4Z,EAAID,GAAI5Z,EAAEogF,iBAAmBnhF,EAAI2a,IAAMA,MAAQX,EAAEhZ,KAAO4Z,EAAI5Z,EAAE,GAAI2Z,EAAIR,GAAK,OAG1FpZ,GAAKmZ,EAAE7nB,OAAS,KAAOsoB,EAAI,GAAKR,EAAEkpE,YAAcriF,GAAK,EAAIA,EAAI4Z,EAAIT,EAAEkpE,YAGrE,OAAOtiF,GAGTf,EAAE2W,UAAUorC,UAAY,WACtB,IAAIhhD,EAAIxQ,KACJyQ,EAAID,EAAEnR,MACNsqB,EAAInZ,EAAElH,QACNN,EAAIwH,EAAE0iF,MAAQ,EAAI1iF,EAAEiyD,kBAAoBjyD,EAAE3P,MAAM0+D,OACpDv2D,EAAIwH,EAAElP,YAAc2pB,EAAEtB,EAAEroB,YAAa0H,EAAI,EAAI,GAC7C,IAAIyG,EAAIe,EAAE3P,MACNwpB,EAAI7Z,EAAE9P,MACN0pB,EAAIT,EAAE85C,UACN35C,EAAItZ,EAAE2iF,oBAAsB9oE,EAAEg/C,aAAaj/C,GAC3CtC,EAAImD,EAAEtB,EAAEypE,eAAgB,GACxB3pE,EAAIjZ,EAAEgiF,mBACNpnE,EAAI3B,EAAEtmB,MACN2N,EAAIN,EAAErQ,aAAespB,EAAExpB,OACvBgR,EAAIT,EAAE+yD,QACN1hE,EAAI2O,EAAEgzD,QACNj5C,EAAI/Z,EAAEy7E,KAAOliE,KAAK1W,IAAI+X,EAAG,EAAI,EAAIpiB,GACrCyH,EAAEi7C,WAAa5hC,GAAK,IACpBH,EAAEvnB,eAAiBmoB,EAAIR,KAAKkkB,KAAK1jB,IACjC3X,EAAEwT,UAAUorC,UAAU9vC,MAAMlR,GAC5BA,EAAEk1D,OAAO1/D,SAAQ,SAAUgD,GACzB,IAAIwgB,EAAIyB,EAAEjiB,EAAEkjF,QAASpiE,GACjBnX,EAAI,IAAMoX,KAAK8gC,IAAIrhC,GACnB2B,EAAIniB,EAAElH,OAAS,EACnB6Q,EAAIiX,EAAE5gB,EAAEmjE,OAAQx5D,EAAG0X,EAAErD,IAAMrU,GAC3B,IAAIC,EAAImX,KAAKnlB,IAAI+N,EAAG6W,GAChBznB,EAAIgoB,KAAK1W,IAAIV,EAAG6W,GAAK5W,EACrB6Y,EAAIL,EACJmB,EAAIpB,EAAIra,EACRoa,EAAIX,EACRzC,GAAKiC,KAAK8gC,IAAI9oD,GAAK+lB,IAAM/lB,EAAI+lB,EAAGqD,GAAKd,EAAEmxC,WAAaxyD,EAAEumE,UAAYllD,EAAEmxC,UAAYxyD,EAAEumE,SAAUziD,EAAE1C,IAAM0C,EAAEjrB,IAAMmH,EAAEjH,IAAMqoB,GAAKvoB,GAAKuoB,IAAMC,EAAEzlB,KAAO,GAAKwlB,IAAMnZ,IAAMpP,IAAMwoB,EAAEhX,KAAO,IAAM+W,KAAOe,GAAKA,GAAIvY,EAAImX,KAAK8gC,IAAIj4C,EAAIkX,GAAKhC,EAAI0B,EAAI1B,EAAIgC,GAAKqB,EAAIrD,EAAI,IAClPkC,EAAEhhB,EAAEM,QAAQspF,cAAgBnnE,EAAIP,EAAInB,KAAKkkB,KAAKjlC,EAAEM,QAAQspF,YAAarmE,GAAKxC,KAAKw2B,OAAO90B,EAAIL,GAAK,IAC/FzB,EAAEg5D,mBAAqBp2D,EAAI/b,EAAEyiF,wBAAwB1mE,EAAGd,EAAGziB,EAAGygB,IAC9DzgB,EAAEqqF,KAAO9mE,EACTvjB,EAAE4pF,WAAannE,EACfziB,EAAE2lE,WAAal+D,EAAEi7C,SAAW,CAAC9hC,EAAES,EAAErD,IAAMqD,EAAEmqB,IAAM/jC,EAAE24D,SAAWz2D,EAAG0X,EAAEmqB,IAAM/jC,EAAE24D,SAAU/+C,EAAErD,IAAMqD,EAAEmqB,IAAM/jC,EAAE24D,UAAW35D,EAAEuX,IAAMvX,EAAE+kC,IAAM/jC,EAAE04D,QAAU58C,EAAIrB,EAAI,EAAGnpB,GAAK,CAAC0N,EAAE7O,KAAO6P,EAAE24D,SAAW78C,EAAIrB,EAAI,EAAGtB,EAAEjX,EAAI0X,EAAEmqB,IAAM/jC,EAAE04D,QAAS9+C,EAAEmqB,IAAM/jC,EAAE04D,QAAS9+C,EAAErD,IAAMqD,EAAEmqB,IAAM/jC,EAAE04D,SAAUpnE,GACtQiH,EAAEqqE,UAAY7iE,EAAEqwE,WAAWz6D,UAAUitD,WAAa,OAClDrqE,EAAEhG,UAAYwN,EAAEwiF,SAAStxE,MAAMlR,EAAGxH,EAAEkoE,OAAS,CAAC3kD,EAAGzC,EAAGoB,EAAG,GAAK,CAACqB,EAAG3Z,EAAGsY,EAAGnpB,QAI1E0N,EAAE2W,UAAU4nE,UAAY,WACtBhuF,KAAK6xE,MAAM7xE,KAAKkzF,MAAQ,WAAa,eAAe,0BAGtDzjF,EAAE2W,UAAU+uD,aAAe,SAAU3kE,EAAGC,GACtC,IAAIkZ,EAAI3pB,KAAKsJ,QACTsgB,EAAI5pB,KAAKszF,oBAAsB,GAC/BtqF,EAAI4gB,EAAEziB,QAAU,cAChBqiB,EAAII,EAAE,iBAAmB,cACzBna,EAAIe,GAAKA,EAAE7M,OAAS3D,KAAK2D,MACzB0mB,EAAI7Z,GAAKA,EAAExH,IAAM2gB,EAAE3gB,IAAMyG,EAC7Bma,EAAIpZ,GAAKA,EAAElH,QAAQtF,WAAa2lB,EAAE3lB,UAClC,IAAIomB,EAAI5Z,GAAKA,EAAEgZ,IAAMG,EAAEH,IAAMxpB,KAAKwpB,IAAM,EACpCM,EAAImB,EAAEza,GAAKA,EAAEktC,QAAS/zB,EAAE+zB,QAAS,GAErC,GAAIltC,GAAKxQ,KAAKizE,MAAMlyE,OAAQ,CAC1B,IAAI+mB,EAAItX,EAAEwiE,UACVvjE,EAAIe,EAAElH,QAAQ3F,OAASmkB,IAAMA,EAAEnkB,OAAS6M,EAAE2iE,gBAAkBnzE,KAAK2D,MACjEmkB,IAAMuC,EAAIvC,EAAElkB,aAAeymB,EAAGT,EAAI9B,EAAE9jB,WAAa4lB,EAAGQ,EAAItC,EAAExmB,aAAe8oB,GAW3E,OARA3Z,GAAKD,IAAyEC,GAAnED,EAAI+Z,EAAEZ,EAAEnmB,OAAOiN,GAAID,EAAElH,QAAQ9F,QAAUgN,EAAElH,QAAQ9F,OAAOiN,IAAM,KAAW8iF,WAAY9jF,EAAIe,EAAE7M,YAAS,IAAuB8M,GAAKQ,EAAExB,GAAG2zC,SAAS5yC,EAAE+iF,YAAY5pF,OAAS8F,EAAG4a,EAAI7Z,EAAExH,IAAMqhB,EAAGD,EAAI5Z,EAAEgZ,IAAMY,EAAGR,EAAIpZ,EAAExM,WAAa4lB,EAAGE,EAAImB,EAAEza,EAAEktC,QAAS5zB,IACxP9gB,EAAI,CACFtB,KAAM+H,EACNtI,OAAQkjB,EACR,eAAgBD,EAChBszB,QAAS5zB,GAEXF,IAAM5gB,EAAE3B,UAAYuiB,GACb5gB,GAGTyG,EAAE2W,UAAU0mE,WAAa,WACvB,IAKIr9E,EALAe,EAAIxQ,KACJyQ,EAAIzQ,KAAKX,MACTsqB,EAAInZ,EAAElH,QACNsgB,EAAInZ,EAAExJ,SACN+B,EAAI2gB,EAAE6pE,gBAAkB,IAE5BhjF,EAAEk1D,OAAO1/D,SAAQ,SAAUwjB,GACzB,IAAIa,EAAIb,EAAE/mB,QACN2nB,IAAMC,EACNP,EAAIO,GAAK5Z,EAAE6hE,WAAatpE,EAAI,UAAY,OAExC8jB,EAAEtD,EAAE2iD,QAAU,OAAS3iD,EAAEznB,GAC3B0N,EAAI+Z,EAAExmB,UACNqnB,GAAKb,EAAE4pD,oBAAsB/oD,EAAIA,EAAEnkB,WACnCsK,EAAEyxE,qBAAuBz4D,EAAE6nD,UAAY7gE,EAAE3P,MAAM26D,WAAa/rD,GAAIA,EAAEtM,OAAa,GAAKqN,EAAE3P,MAAMsC,OAC5FknB,IAAMb,EAAE/mB,QAAU4nB,EAAIT,EAAEJ,EAAE6pD,WAAW5jE,GAAGrI,IAAIoiB,EAAEqoD,OAASrhE,EAAEqhE,SAAWrhE,EAAEyxE,oBAAsBxxE,EAAE66D,aAAe76D,EAAE6hE,WAAatpE,IAAMqhB,EAAEnjB,KAAK,CACvIrF,EAAG2nB,EAAE6nD,YACHjnD,GAAI,EAAIN,EAAI,WACZO,GAAKD,GAAGC,EAAEP,GAAGS,EAAE9a,IACfka,EAAEw4B,cAAc93B,EAAEP,GAAG,CACvBhZ,EAAG6Y,EAAEw4B,eAEP1xC,EAAEyxC,YAAc73B,EAAEP,GAAGtZ,EAAE2kE,aAAa3rD,EAAGA,EAAEuL,UAAY,WAAWxzB,QAAO,IAAOioB,EAAEiqE,aAAe9pE,EAAEpoB,OAAQ,KAAMooB,EAAExnB,WAAawnB,EAAEw4B,cAChI93B,IAAMA,EAAE7nB,SAASgnB,EAAEqpD,gBAAgB,GAAKxoD,EAAEnjB,KAAK,CAC7CipD,WAAY3mC,EAAE4yC,QAAU,UAAY,aAEjC/xC,IAAMb,EAAE/mB,QAAU4nB,EAAEnkB,eAI/BuJ,EAAE2W,UAAUypD,YAAc,WACxB,IAOIpgE,EAPAe,EAAIxQ,KACJ4pB,EAAIpZ,EAAEnR,MACNsqB,EAAIC,EAAE6kD,QACNzlE,EAAI,SAAUwH,GAChB,IAAIC,EAAIkZ,EAAE+uD,kBAAkBloE,QAC5B,IAAuBC,IAAMkZ,EAAEsmD,eAAgB,EAAIx/D,EAAEmkE,YAAYpkE,KAInEA,EAAEk1D,OAAO1/D,SAAQ,SAAUwK,GACzBf,EAAIga,EAAEjZ,EAAEshE,YAActhE,EAAEshE,WAAathE,EAAEyhE,UAAY,CAACzhE,EAAEyhE,WAAa,GACnEzhE,EAAE/N,UAAY+N,EAAE/N,QAAQC,QAAQd,MAAQ4O,GACxCf,EAAEzJ,SAAQ,SAAUyK,GAClBA,EAAEm/C,IAAMn/C,EAAEm/C,IAAIhuD,MAAQ4O,EAAIC,EAAE/N,QAAQd,MAAQ4O,QAGhDA,EAAEkjF,eAAiBljF,EAAEmjF,cAAc3tF,SAAQ,SAAUwjB,GAC/ChZ,EAAEgZ,KACJhZ,EAAEgZ,GAAGhnB,SAAS,sBAAsBuG,GAAG,YAAaC,GAAGD,GAAG,YAAY,SAAUyH,GAC9EmZ,EAAEgvD,kBAAkBnoE,MAElB4Z,GAAG5Z,EAAEgZ,GAAGzgB,GAAG,aAAcC,IAC5B4gB,EAAEs4B,YAAc1xC,EAAElH,QAAQpH,QAAUsO,EAAEgZ,GAAGhpB,IAAIiQ,GAAGjQ,IAAI,CACnD0B,OAAQsO,EAAElH,QAAQpH,aAGpBsO,EAAEkjF,cAAe,GACrB5iF,EAAE9Q,KAAM,qBAGVyP,EAAE2W,UAAU1V,OAAS,WACnB,IAAIF,EAAIxQ,KACJyQ,EAAID,EAAEnR,MACVoR,EAAE66D,aAAe76D,EAAEvQ,OAAO8F,SAAQ,SAAUyK,GAC1CA,EAAErL,OAASoL,EAAEpL,OAASqL,EAAE8wD,SAAU,MAEpC3uD,EAAEwT,UAAU1V,OAAOgR,MAAMlR,EAAGqX,YAG9BpY,EAAEk1C,eAAiBp6B,EAAE3X,EAAE+xC,eAAgB,CACrCxC,aAAc,EACdwgC,kBAAkB,EAClB+P,aAAc,GACd3uF,OAAQ,KACR3B,aAAc,GACdgxF,eAAgB,EAChB1K,cAAe,GACfrmF,WAAY,KACZmB,OAAQ,CACNC,MAAO,CACLwxE,MAAM,EACNse,WAAY,IAEd7vF,OAAQ,CACNC,MAAO,UACPC,YAAa,YAGjBkuE,WAAY,CACV5tE,WAAO,EACPqiD,mBAAe,EACfxkD,OAAG,GAEL0pF,oBAAoB,EACpBnT,gBAAgB,EAChBl3E,QAAS,CACP05D,SAAU,GAEZ2I,UAAW,EACX7/D,YAAa,YAER6L,EAvSL,CAwSFmD,GAEFwY,EAAEyB,EAAEzG,UAAW,CACb2kE,aAAc,EACdxS,aAAa,EACbwG,iBAAkB7zD,EAAEk9D,cACpBc,UAAWz5E,EACXk8E,WAAW,EACXgI,cAAe,CAAC,QAAS,qBAE3B5oE,EAAEi2D,mBAAmB,SAAUn0D,GAGxBA,KAETD,EAAE9E,EAAG,2BAA4B,CAACA,EAAE,wCAAyCA,EAAE,2BAA4BA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GAClJ,IAUIkC,EAVAkB,EAAIzb,EAAE65C,qBACN12C,EAAI5J,EAAEsC,OACNyf,EAAIjD,EAAEs3B,QACNvyB,EAAI/E,EAAEve,OACNgjB,EAAIzE,EAAEk2B,UACNj8C,EAAI+lB,EAAEjM,QACN5K,EAAI6W,EAAEu4B,MACNj2B,EAAItC,EAAE04B,WACN52B,EAAI9B,EAAE+4B,KACNpwC,EAAIqX,EAAEm5B,MAqNV,OAlNA,SAAWj4C,GACT,SAASyG,EAAEgB,EAAGD,EAAGxH,EAAG2gB,EAAGla,GACrB,IAAI+Z,EAAIxpB,KACJqqB,EAAIrqB,KAAKX,MACT+qB,EAAIpqB,KAAK46E,aAAevwD,EAAEqhC,SAC1B5hC,EAAI9pB,KAAKiiF,mBACTn6D,EAAI8B,EAAEnZ,EAAEmjF,OAASnjF,EAAEmjF,MAAMC,QAASpjF,EAAE3O,OACpCkoB,EAAIvZ,EAAE07D,MACN1iD,EAAIzgB,EAAE7E,SACNinB,EAAIpiB,EAAE9E,MACN4M,EAAIia,EAAEjD,IAAMiD,EAAEf,IAAMK,EAAEwsD,aAAa/uD,EAAGiC,KAAKw2B,MAAMv2B,GAAI,CACvD0hC,SAAUthC,EACVi4D,iBAAiB,EACjBniF,OAAQspB,IAENvY,EAAI,SAAU0Y,GAChBG,GAAKN,EAAE3oB,QAAUgB,GAAK2nB,EAAEsqE,qBAAqBrjF,EAAGD,EAAGf,EAAGqB,EAAG6Y,IAEvD9nB,EAAI,YAAc+nB,EAAE5gB,EAAE1E,SAAUwlB,EAAI,OAAS,WAC7CmB,EAAIjrB,KAAKo8D,UAAW,IAAO3rD,EAAE2rD,UAAY3rD,EAAEvQ,OAAO6zF,SAAWjqE,IAAMjoB,GAAKiP,GAAK8Y,EAAE5gB,EAAEgrF,SAAUh0F,KAAKsJ,QAAQnH,WAAawnB,GAAKU,EAAEwsD,aAAa/uD,EAAGsC,EAAIT,EAAE9nB,EAAI,EAAI8nB,EAAE5nB,EAAI4nB,EAAEnqB,OAAS,EAAG,CAChLksD,SAAUthC,EACVi4D,iBAAiB,EACjBniF,OAAQspB,KAGV,GAAIyB,GAAKF,EAAEjD,IAAMiD,EAAEf,GAAI,CACrBP,GAAKjZ,EAAEtJ,KAAK,CACVhD,MAAOknB,IAETA,EAAI5a,EAAEhJ,SAAQ,GACd,IAAI+iB,EAAI,CAAC,EAAG,GACR3X,EAAIyX,EAAEpjB,SAAS4tD,YAAYxqC,EAAE63B,gBAAa,EAASl5C,EAAE1J,MAAM+E,SAAUmM,GAAGC,EAC5EkZ,EAAIkD,EAAE,CACJhrB,EAAGuoB,EAAIpqB,KAAKU,MAAMsmB,IAAMgD,EAAIlC,EAC5B/lB,EAAGgoB,KAAKw2B,MAAMn2B,EAAIpqB,KAAKa,MAAMmmB,IAAMc,EAAIkC,GACvC7mB,MAAO,EACP3D,OAAQ,GACPmqB,GACHkD,EAAE7jB,EAAG,CACH7F,MAAOioB,EAAEjoB,MACT3D,OAAQ4rB,EAAE5rB,SAEZiqB,GAAK5nB,GAAI,EAAI0oB,EAAIF,EAAEpjB,SAAS8xD,QAAQnmD,EAAG6W,GAAI3B,EAAI,CAC7CjmB,EAAG8nB,EAAE9nB,GAAKmH,EAAEnH,GAAK,GAAK8nB,EAAExmB,MAAQ,EAAIonB,EAAE1oB,EACtCE,EAAG4nB,EAAE5nB,GAAKiH,EAAEjH,GAAK,GAAK,CACpBtB,IAAK,EACLspE,OAAQ,GACR1K,OAAQ,GACRr2D,EAAEu9C,eAAiB58B,EAAEnqB,QACtB+qB,EAAI,CAACa,EAAEvpB,EAAIkR,OAAOvC,EAAEtJ,KAAK,MAAOkkB,EAAErpB,EAAIgR,OAAOvC,EAAEtJ,KAAK,OAAQ+J,EAAE6W,GAAItX,EAAEf,EAAI,OAAS,WAAWqY,KAAO7W,EAAE0Y,GAAInZ,EAAEtM,MAAM8E,OAAG,EAAQ2gB,GAAI7B,EAAItX,EAAEk8C,WACzI7qD,GAAK,GAAK8nB,EAAEnqB,OAASQ,KAAKixF,iBAAiBzgF,EAAGxH,EAAG8e,EAAGsD,EAAGzB,EAAGla,GAAKma,EAAE5gB,EAAE4zD,MAAM,KAAQjzC,EAAI7B,EAAEjmB,EAAGoP,EAAI6W,EAAE/lB,EAAG4nB,GAAKY,EAAE,GAAItZ,GAAKsZ,EAAE,GAAIU,EAAIZ,EAAEwsD,aAAaltD,EAAG1Y,EAAG,CAChJoxE,iBAAiB,EACjBniF,OAAQspB,KACJa,EAAEwsD,aAAaltD,EAAIyB,EAAEjoB,MAAO8N,EAAIma,EAAE5rB,OAAQ,CAC9C6iF,iBAAiB,EACjBniF,OAAQspB,KAENxgB,EAAE4+C,QAAUn+B,GAAGjZ,EAAEf,EAAI,OAAS,WAAW,CAC3C2jD,QAAShpC,EAAIC,EAAE4+C,UAAYx4D,EAAE07D,MAAQ17D,EAAE3O,MACvCuxD,QAASjpC,EAAIC,EAAE6+C,WAAaz4D,EAAE3O,MAAQ2O,EAAE07D,QAI5C18D,GAAKqa,IAAMtZ,EAAEi8C,QAAS,GACtBxhC,GAAKnB,IAAMjoB,EAAI2O,EAAExI,QAAUwI,EAAErH,OAAQqH,EAAEi8C,QAAS,GAQlD,SAASziC,IACP,IAAIhhB,EAAIhJ,KACJwQ,EAAIxH,EAAE3J,MACNmqB,EAAIxgB,EAAEM,QACNqgB,EAAI3gB,EAAE08D,OACNj2D,EAAIzG,EAAEsiE,aAAe,EACrBxhD,EAAItZ,EAAEvJ,SACN+iB,EAAIR,EAAEsoD,WAEN1mD,EAAIpB,EAAEu9B,UAQV,GAPAn8B,EAAIpB,EAAE2qB,MAAQzpB,EAAE1a,EAAG4a,EAAGpiB,GAAK,CACzB2rC,MAAO,EACPtpC,SAAU,GAEZ2e,EAAIiB,EAAEA,EAAEza,EAAElH,QAAQtH,aAAewO,EAAElH,QAAQtH,YAAY9B,QAAUsQ,EAAElH,QAAQtH,YAAY9B,OAAO4xE,WAAYthE,EAAElH,QAAQtH,aAAewO,EAAElH,QAAQtH,YAAYgH,EAAE5D,OAASoL,EAAElH,QAAQtH,YAAYgH,EAAE5D,MAAM0sE,YAAa9nD,GAC/MuC,EAAEvsB,KAAM,kBAEJ+B,EAAEioB,IAAMA,EAAE7qB,SAAW6J,EAAEyqE,gBAAiB,CAC1C,IAAI3iE,EAAI9H,EAAE8kF,UAAU,kBAAmB,cAAer+E,EAAI,UAAY,SAAUua,EAAE24B,QAAU,GAC5F7xC,EAAE5J,KAAK,CACLw2C,SAAUjuC,KAEXA,IAAMA,EAAIzG,EAAEiyE,mBAAqBjyE,EAAEozD,SAAWtrD,EAAE9I,OAAQyH,EAAE+Z,EAAE+9B,UAAY,UAAY,QAAQ,CAC3F7J,QAAS,GACRtyB,IACHzB,EAAE3jB,SAAQ,SAAU2jB,GACdlZ,EAAEwa,EAAEjB,EAAGL,EAAEsqE,WAAatqE,EAAErgB,SAAWqgB,EAAErgB,QAAQwoE,aAC/C9rE,SAAQ,SAAUyK,EAAGhB,GACrB,IAAI4a,EAAI5Z,EAAEtR,WAAawqB,EAAEunD,QAAUvnD,EAAEuqE,kBAjC7C,SAAWzjF,EAAGD,GACZ,IAAIoZ,EAAIpZ,EAAErI,OACV,OAAOyhB,IAAKpZ,EAAIoZ,EAAEuqE,SAAU1jF,EAAIA,EAAEmZ,EAAEqU,UAAWrU,EAAIA,EAAE9kB,MAAO,MAAQ0L,GAAKC,EAAImZ,GAAK,MAAQpZ,GAAKC,EAAImZ,GAAK,OAASpZ,GAAKC,GAAKmZ,GAAK,OAASpZ,GAAKC,GAAKmZ,GAAK,OAASpZ,GAAKC,GAAKmZ,GAAK,QAAUpZ,GAAKC,IAAMmZ,GA+BtI9B,CAAE6B,EAAGlZ,GAC1DuZ,EAAIL,EAAEyqE,WAAazqE,EAAEyqE,WAAW3kF,GAAKka,EAAEsqD,UACvCxqD,EAAIE,EAAEmoD,WAAanoD,EAAEmoD,WAAWriE,GAAKka,EAAEsoD,UACvC7mD,GAAK3B,EACLxY,EAAI2Y,EAAEnZ,EAAEqqD,SAAUnxC,EAAE0qE,eAExB,GAAIhqE,EAAG,CACL,IAAI1X,EAAIgX,EAAEomD,iBACNluE,EAAI+nB,EAAEnZ,EAAEkZ,EAAEqkD,aAAe,UAAWv9D,EAAEnF,QAC1CqH,EAAIoY,EAAElpB,GAAK+Q,EAAE/Q,EAAG8Q,EAAGnC,IAAMC,EAAEkZ,EAAEqkD,aAAe,cAAgBv9D,EAAE5L,WAAW8X,KAAKhK,EAAGlC,GACjF5O,EAAI4O,EAAEnR,MACN,IAAI2rB,EAAIxa,EAAEtM,SACVqM,EAAE0xC,aAAergD,EAAE8B,MAAQimB,EAAEnZ,EAAE9M,MAAO9B,EAAE8B,MAAOqF,EAAErF,MAAO,WAAY,aAAe9B,EAAE8B,OAASgmB,EAAE2qE,cAAgBxqE,EAAEqjC,YAAYxjC,EAAEhmB,OAASqF,EAAErF,OAAQ9B,EAAE8B,OAASonB,EAAE9Z,IAAMR,EAAEujF,QAAU,EAAI/iF,GAAKuY,EAAErnB,SAAWwnB,EAAE2qE,cAAgB,kBAAoB3qE,EAAE2qE,cAAe9qE,EAAEtnB,SAAWL,EAAEK,OAASsnB,EAAEtnB,SACzR,IAAIqoB,EAAI,CACNzZ,EAAGL,EAAE0xC,cAAgB,EACrBh+C,SAAU8mB,EACVxM,QAAShO,EAAEgO,QACXkkC,OAAQ,GAEVnyC,EAAE0xC,aAAe33B,EAAE7iB,KAAO+I,EAAE5Q,gBAAiB0qB,EAAEpjB,OAASsJ,EAAE7M,YAAa2mB,EAAE,gBAAkB9Z,EAAEnP,aAC7F8oB,EAAEG,GAAG,SAAU/Z,EAAGC,QAChB,IAAuBD,UAAY+Z,EAAE9Z,OAIxCgZ,GAAKY,GAAKU,EAAEpY,MAAQ8W,EAAEmmC,OAAUn/C,EAAEjP,UAAYioB,EAAEtlB,UAAYsM,EAAEtM,UAAYslB,EAAEtlB,WAAasM,EAAEtM,YAAcinB,GAAI,EAAIzB,EAAEsoD,UAAYxoD,EAAIE,EAAEsoD,WAAatoD,EAAEsoD,UAAU/rE,UAAWyjB,EAAEmoD,aAAe,IAAMnoD,EAAEmoD,WAAW/wE,cAAgB4oB,EAAEmoD,kBAAoBnoD,EAAEmoD,WAAWriE,IAAKA,UAAYka,EAAEsoD,UAAWjoD,IAAML,EAAEsqD,UAAYtqD,EAAEsqD,UAAU/tE,UAAWyjB,EAAEyqE,aAAe,IAAMzqE,EAAEyqE,WAAWrzF,cAAgB4oB,EAAEyqE,kBAAoBzqE,EAAEyqE,WAAW3kF,MACja4a,GAAKU,EAAEpY,IAAM8W,EAAIc,EAAErpB,KAAOyR,GAAKgX,EAAEmoD,WAAanoD,EAAEmoD,YAAc,GAAIroD,EAAIE,EAAEmoD,WAAWriE,GAAKwb,EAAInB,EAAE5oB,KAAKyR,EAAG,EAAG,EAAGlC,EAAEjP,SAASgB,SAAS,yBAA2BsnB,EAAElK,MAAMjN,EAAG,EAAG,EAAGlC,EAAEm3C,MAAO,KAAM,KAAMn3C,EAAEjP,QAAS,KAAM,cAAeiO,IAAMka,EAAEsoD,UAAYxoD,GAAIA,EAAEjnB,SAAS,gCAAkCmnB,EAAEymD,WAAa,KAAO3/D,EAAExF,WAAa,KAAOwF,EAAEjP,QAAU,sBAAwB,MAAOioB,EAAEngB,QAAUmH,EAAGgZ,EAAEviB,KAAKqjB,GAAI/Z,EAAE0xC,YAAcz4B,EAAEjpB,IAAIqB,GAAGN,OAAOkP,EAAElP,QAASkoB,EAAEoiC,OAASpiC,EAAEriB,IAAI0J,GAAIL,EAAE8jF,WAAa9jF,EAAEjP,UAAYioB,EAAE8mC,YAAY5mC,EAAE6qE,kBAAoB7qE,EAAE6qE,iBAAiB/qE,IAAME,EAAElnB,QAASgO,EAAE8jF,UAAW5qE,EAAE8qE,gBAAkBhkF,EAAE8jF,SAASp1F,UAAYwqB,EAAE8qE,cAAgB9qE,EAAE8qE,cAAcvuF,YAAa8C,EAAE0rF,eAAe/qE,EAAGF,EAAGhZ,EAAG,KAAM2a,IAAM3B,GAAKA,EAAEtgB,aAKttBojB,EAAEvsB,KAAM,uBAGV,SAASorB,EAAE3a,EAAGD,EAAGoZ,EAAGD,EAAG3gB,EAAGyG,GACxB,IAAI+Z,EAAIxpB,KAAKX,MACTgrB,EAAI7Z,EAAEtM,MACNkmB,EAAI5Z,EAAE+1C,cACNz8B,EAAIrZ,EAAEu7C,IAAM,EAAIv7C,EAAEgO,SAAW,EAC7BqJ,EAAItX,EAAE3O,EACVimB,OAAI,IAAWA,EAAI,EAAIA,EACvB,IAAI2B,EAAIjZ,EAAEzO,EACV0nB,OAAI,IAAWA,EAAI,EAAIA,EACvB,IAAIO,GAAKJ,EAAE/nB,GAAK,GAAKioB,EAErB,GAAI,EAAIE,EAAG,CACT,UAAYK,GAAK,GAAKvC,GAAKtX,EAAEtM,MAAQ,OAAQsM,EAAEwjF,QAAS,GAAMlsE,GAAKkC,EACnE,IAAIoB,GAAI,EAUV,OAPApB,GAAKJ,EAAE/nB,GAAK,GAAK8nB,EAAExmB,MAAQ2mB,GACvBN,EAAEy/C,YAAc,SAAW5+C,GAAK,GAAKvC,GAAKtX,EAAEtM,MAAQ,QAASsM,EAAEwjF,QAAS,GAAMlsE,GAAK0B,EAAEy/C,UAAYj/C,EAAGoB,GAAI,GAE5G,GADApB,EAAIJ,EAAE7nB,EAAI+nB,KACA,WAAaM,GAAK,GAAKX,GAAKjZ,EAAE+1C,cAAgB,MAAO/1C,EAAEwjF,QAAS,GAAMvqE,GAAKO,EAAGoB,GAAI,IAC5FpB,GAAKJ,EAAE7nB,GAAK,GAAK4nB,EAAEnqB,OAASsqB,GACxBN,EAAE0/C,aAAe,QAAU9+C,GAAK,GAAKX,GAAKjZ,EAAE+1C,cAAgB,SAAU/1C,EAAEwjF,QAAS,GAAMvqE,GAAKD,EAAE0/C,WAAal/C,EAAGoB,GAAI,GACtHA,IAAM5a,EAAE3O,EAAIimB,EAAGtX,EAAEzO,EAAI0nB,EAAGhZ,EAAEg8C,QAAUh9C,EAAGgB,EAAEvM,MAAMsM,OAAG,EAAQxH,IACnDoiB,EAGT,SAASH,EAAExa,EAAGD,GACZ,IACImZ,EADAC,EAAI,GAER,GAAI7nB,EAAE0O,KAAO1O,EAAEyO,GAAIoZ,EAAInZ,EAAEwe,KAAI,SAAUxe,GACrC,OAAOQ,EAAER,EAAGD,WACN,GAAIzO,EAAEyO,KAAOzO,EAAE0O,GAAImZ,EAAIpZ,EAAEye,KAAI,SAAUze,GAC7C,OAAOS,EAAER,EAAGD,WACN,GAAIzO,EAAE0O,IAAM1O,EAAEyO,GAAI,IAAKmZ,EAAII,KAAK1W,IAAI5C,EAAE1P,OAAQyP,EAAEzP,QAAS4oB,KAAMC,EAAED,GAAK1Y,EAAER,EAAEkZ,GAAInZ,EAAEmZ,SAASC,EAAI3Y,EAAER,EAAGD,GAC1G,OAAOoZ,EAGT,SAAS/nB,EAAE4O,EAAGD,EAAGoZ,EAAGD,EAAG3gB,GACrB,IAAIwgB,EAAIxpB,KAAKX,MACToQ,EAAI+Z,EAAEkiC,SACNthC,EAAIpqB,KAAKa,MACTwpB,EAAID,EAAEoxC,SACN1xC,EAAIra,EAAIe,EAAEhR,OAAS,EAAIgR,EAAErN,MAAQ,EACrCsN,GAAKA,EAAIA,EAAEmiF,YAAcniF,EAAI,EAAI,EACjCD,EAAE6gE,UAAY5hE,EAAIzG,EAAEnH,EAAIwoB,GAAKP,EAAIrZ,EAAI2Z,EAAEjnB,MAAQ2mB,EAAIrZ,EACnDD,EAAEghE,UAAY/hE,EAAI4a,EAAIrqB,KAAKU,MAAMlB,OAASsqB,EAAIrZ,GAAKqZ,EAAIrZ,EAAIzH,EAAEjH,EAC7D4nB,EAAI,WAAanZ,EAAE2/C,aAAe3/C,EAAExI,OAAQwI,EAAEtJ,KAAK,CACjDw2C,QAAS,IACRhwC,QAAQ,CACTgwC,QAAS,KACLltC,EAAEtJ,KAAK,CACXw2C,QAAS,IACRhwC,QAAQ,CACTgwC,QAAS,QACR,EAAQltC,EAAErH,MACbqgB,EAAE8hD,cAAgB1hD,GAAKpZ,EAAEtJ,KAAK,CAC5BrF,EAAG2O,EAAE6gE,UACLtvE,EAAGyO,EAAEghE,YACHhhE,EAAEi8C,QAAS,GAGjB,IAAI3iC,EAAI,GAER9gB,EAAEiwD,QAAU,SAAUxoD,GACpB,IAAK,IAAMqZ,EAAEjL,QAAQpO,GAAI,CACvB,IAAID,EAAIC,EAAE2V,UACV0D,EAAExiB,KAAKmJ,GACPD,EAAEkkF,eAAiBjlF,EACnBe,EAAEy9E,eAAiBjkE,EACnBxZ,EAAEygF,iBAAmB7lE,EACrB5a,EAAEsjF,qBAAuBjyF,IA5M/B,CA+MGmoB,IAAMA,EAAI,KAGNA,KAET4C,EAAE9E,EAAG,mCAAoC,CAACA,EAAE,4BAA6BA,EAAE,iCAAkCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GACpJ,IAGI+E,EAHA3B,EAAIliB,EAAE9I,OACN0S,EAAIkV,EAAEu4B,MACNt1B,EAAIjD,EAAE+4B,KAkCV,OA/BA,SAAW73C,GACT,SAAS8e,EAAE9e,EAAG4gB,EAAGnZ,EAAGhB,EAAGqY,GACrB,IAAIsC,EAAIpqB,KAAKX,MAAMqsD,SACfjiC,EAAIzgB,EAAE9I,OACN8pB,GAAKP,EAAE5oB,MAAQ4oB,EAAE5oB,MAAMmmB,IAAMhnB,KAAKX,MAAMslF,YAAc,EAC1Dl7D,GAAKA,EAAE/oB,MAAQ+oB,EAAE/oB,MAAMsmB,IAAMhnB,KAAKX,MAAMulF,YAAc,EACtD,IAAIx5D,EAAIpiB,EAAE4qF,OAAS5qF,EAAEhG,UACjBiO,EAAI8Z,EAAE/hB,EAAE2rF,MAAO3rF,EAAEmjE,MAAQphD,EAAE/qB,KAAKmzF,oBAAqB1pE,IACrD5nB,EAAIkpB,EAAEta,EAAEujF,SAAUh0F,KAAKsJ,QAAQnH,UACnCipB,IAAgB,GAAV3b,EAAImD,EAAEwY,IAAUrpB,IAAM0N,EAAEjQ,QAAUiQ,EAAE1N,EAAG0N,EAAE1N,EAAI,GAA4B,GAAxBqpB,EAAI3b,EAAE1N,EAAI0N,EAAEjQ,OAASiqB,IAAY2B,EAAI3b,EAAEjQ,SAAWiQ,EAAEjQ,QAAU4rB,GAAIhB,IAAM3a,EAAI,CACjI5N,EAAG4nB,EAAIha,EAAE1N,EAAI0N,EAAEjQ,OACfuC,EAAGioB,EAAIva,EAAE5N,EAAI4N,EAAEtM,MACfA,MAAOsM,EAAEjQ,OACTA,OAAQiQ,EAAEtM,QACRtB,IAAMuoB,GAAK3a,EAAE5N,GAAKoP,EAAI,EAAIxB,EAAEtM,MAAOsM,EAAEtM,MAAQ,IAAMsM,EAAE1N,GAAKkP,EAAIxB,EAAEjQ,OAAS,EAAGiQ,EAAEjQ,OAAS,KAC3FiR,EAAEvM,MAAQ6mB,EAAEta,EAAEvM,OAAQkmB,GAAKvoB,EAAI,SAAWoP,EAAI,QAAU,QACxDR,EAAE81C,cAAgBx7B,EAAEta,EAAE81C,cAAen8B,GAAKvoB,EAAI,SAAWoP,EAAI,MAAQ,UACrEia,EAAE9E,UAAUsuE,eAAe/3E,KAAK3c,KAAMgJ,EAAG4gB,EAAGnZ,EAAGhB,EAAGqY,GAClDrX,EAAEujF,QAAUhrF,EAAEsrF,eAAiB1qE,EAAEppB,IAAI,CACnCmD,MAAOqF,EAAEsrF,gBAIb,IAAIrjF,EAAI,GAERjI,EAAEiwD,QAAU,SAAUjwD,GACpByG,EAAEwpD,QAAQ/tC,IACT,IAAMja,EAAE4N,QAAQ7V,KAAOiI,EAAE3J,KAAK0B,GAAIA,EAAEod,UAAUsuE,eAAiB5sE,IA3BpE,CA6BG+E,IAAMA,EAAI,KAENA,KAETD,EAAE9E,EAAG,0BAA2B,CAACA,EAAE,iCAAkCA,EAAE,iCAAkCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GAChJ,IAAIoD,EAAIlrB,MAAQA,KAAKgzD,WAAa,WAChC,IAAIhqD,EAAI,SAAUyG,EAAGqY,GASnB,OARA9e,EAAI2d,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUzF,EAAGyG,GACjCzG,EAAEqpC,UAAY5iC,IACX,SAAUzG,EAAGyG,GAChB,IAAK,IAAIma,KAAKna,EAAGA,EAAEkd,eAAe/C,KAAO5gB,EAAE4gB,GAAKna,EAAEma,KAG7C5gB,EAAEyG,EAAGqY,IAGd,OAAO,SAAUrY,EAAGqY,GAClB,SAAS7W,IACPjR,KAAK6N,YAAc4B,EAGrBzG,EAAEyG,EAAGqY,GACLrY,EAAE2W,UAAY,OAAS0B,EAAInB,OAAOyb,OAAOta,IAAM7W,EAAEmV,UAAY0B,EAAE1B,UAAW,IAAInV,IAnBhD,GAsB9B2B,EAAIkV,EAAEve,OACNwhB,EAAIjD,EAAEu4B,MAqBV,OAnBAv4B,EAAI,SAAU9e,GACZ,SAAS8e,IACP,IAAIrY,EAAI,OAASzG,GAAKA,EAAE0Y,MAAM1hB,KAAM6nB,YAAc7nB,KAIlD,OAHAyP,EAAEvM,UAAO,EACTuM,EAAEnG,aAAU,EACZmG,EAAEi2D,YAAS,EACJj2D,EAKT,OAFAyb,EAAEpD,EAAG9e,GACL8e,EAAE68B,eAAiB55B,EAAEtb,EAAEk1C,eAAgB,IAChC78B,EAXL,CAYFrY,GAEFmD,EAAEkV,EAAE1B,UAAW,CACbslC,UAAU,IAEZ1iD,EAAEg4E,mBAAmB,MAAOl5D,GAErBA,KAET8E,EAAE9E,EAAG,kCAAmC,CAACA,EAAE,iCAAkCA,EAAE,uBAAuB,SAAUrY,EAAGzG,GACjH,IAAI8e,EAAI9nB,MAAQA,KAAKgzD,WAAa,WAChC,IAAIhqD,EAAI,SAAUyG,EAAG2a,GASnB,OARAphB,EAAI2d,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUmb,EAAGnZ,GACjCmZ,EAAEyoB,UAAY5hC,IACX,SAAUmZ,EAAGnZ,GAChB,IAAK,IAAIzH,KAAKyH,EAAGA,EAAEkc,eAAe3jB,KAAO4gB,EAAE5gB,GAAKyH,EAAEzH,MAG3CyG,EAAG2a,IAGd,OAAO,SAAU3a,EAAG2a,GAClB,SAASR,IACP5pB,KAAK6N,YAAc4B,EAGrBzG,EAAEyG,EAAG2a,GACL3a,EAAE2W,UAAY,OAASgE,EAAIzD,OAAOyb,OAAOhY,IAAMR,EAAExD,UAAYgE,EAAEhE,UAAW,IAAIwD,IAnBhD,GAsB9BsB,EAAIzb,EAAEytC,YACNtqC,EAAIsY,EAAEjpB,OACN8oB,EAAIG,EAAErnB,KAEVqnB,EAAIliB,EAAEw1C,SACN,IAAI3xB,EAAI7jB,EAAEO,OACNgjB,EAAIvjB,EAAEq3C,MAwEV,OAtEAr3C,EAAI,SAAUA,GACZ,SAASyG,IACP,IAAIA,EAAI,OAASzG,GAAKA,EAAE0Y,MAAM1hB,KAAM6nB,YAAc7nB,KAIlD,OAHAyP,EAAEvM,UAAO,EACTuM,EAAEnG,aAAU,EACZmG,EAAEi2D,YAAS,EACJj2D,EAgDT,OA7CAqY,EAAErY,EAAGzG,GAELyG,EAAE2W,UAAUwuE,YAAc,WACxB,IAAI5rF,EAAIhJ,KACJ4pB,EAAI5pB,KAAKsJ,QAAQurF,OACjBpkF,EAAIzQ,KAAK0lE,OAAO3kE,OACpB6oB,GAAK5pB,KAAK0lE,OAAO1/D,SAAQ,SAAUyJ,EAAG2a,GACpC,CAAC,IAAK,KAAKpkB,SAAQ,SAAU8hB,EAAG2B,GAC9B,IAAIO,EAAI,OAASlC,EAAE6M,cAEnB,GAAI/K,EAAE9B,KAAOrY,EAAEyhE,OAAQ,CACrB,IAAI9lD,EAAIpiB,EAAE8e,EAAI,QACVhX,EAAI8Y,EAAE9B,GAAKsD,EAAEm0C,OAEjB,GAAIn0C,IAAMA,EAAE0pE,MAAO,CACjB,IAAI7jF,EAAI8Y,KAAK1W,IAAI,EAAG5D,EAAEua,GAAKlZ,GAC3Bsa,EAAIrB,KAAKnlB,IAAIwmB,EAAEpE,IAAKvX,EAAEua,GAAKlZ,GAC3B2Y,EAAI,IAAMM,KAAKmmC,IAAI9lC,EAAIX,EAAIhZ,GAC3BhB,EAAEua,GAAK/Y,GAAKma,EAAIna,IAAMwY,EAAIM,KAAK4U,MAAMlV,IACrC,MAAQ3B,IAAMrY,EAAEwoE,QAAUxoE,EAAE3N,gBAOtC2N,EAAE2W,UAAU4nE,UAAY,WACtBhuF,KAAKsJ,QAAQpE,UAAY8D,EAAEod,UAAU4nE,UAAUrxE,KAAK3c,MAAQA,KAAKutF,QAAUvtF,KAAKutF,MAAQvtF,KAAKutF,MAAMrnF,YAGrGuJ,EAAEk1C,eAAiBp4B,EAAExB,EAAE45B,eAAgB,CACrCz/C,UAAW,EACX2yE,mBAAoB,KACpBgd,OAAQ,CACNhzF,EAAG,EACHE,EAAG,GAELgC,OAAQ,CACN5E,SAAS,GAEXiC,QAAS,CACP0mD,aAAc,sGACdC,YAAa,sDAGVt4C,EAtDL,CAuDFsb,GAEF8B,EAAE7jB,EAAEod,UAAW,CACbypD,YAAaj9D,EAAEwT,UAAUypD,YACzB8Z,QAAQ,EACRpkB,gBAAgB,EAChBF,iBAAiB,EACjBsuB,cAAe,CAAC,QAAS,cAAe,mBACxCoB,qBAAqB,IAEvB7pE,EAAEliB,EAAG,kBAAkB,WACrBhJ,KAAK40F,iBAEPnlF,EAAEuxE,mBAAmB,UAAWh4E,GAEzBA,KAET4jB,EAAE9E,EAAG,8BAA+B,CAACA,EAAE,mBAAoBA,EAAE,yBAA0BA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GAC9H,IAKI/lB,EALAmpB,EAAIzb,EAAEitC,QACN9pC,EAAIkV,EAAEk2B,UACNjzB,EAAIjD,EAAEq4B,SACNtzB,EAAI/E,EAAE+4B,KACNt0B,EAAIzE,EAAEi5B,eAyCV,OAtCA,SAAWtxC,GACTA,EAAEulF,UAAY,WACZ,IAAIvlF,EAAIzP,KAAKsJ,QACTsgB,EAAI5pB,KAAKX,MACToR,EAAI,GAAKhB,EAAEwlF,cAAgB,GAC3BntE,EAAI8B,EAAEq/C,UAAY,EAAIx4D,EACtB2a,EAAIxB,EAAEs/C,WAAa,EAAIz4D,EACvBK,EAAIrB,EAAEm9C,OACNnjC,EAAIM,KAAKnlB,IAAIkjB,EAAGsD,GAChBna,EAAIxB,EAAEylF,UACN3qE,EAAI9a,EAAEgmB,KACNxK,EAAIxb,EAAE0lF,WAAa,EAMvB,IALA,iBAAoB5qE,IAAMA,EAAI6U,WAAW7U,IACzC,iBAAoBU,IAAMA,EAAImU,WAAWnU,IACzCxb,EAAI,CAACod,EAAE/b,EAAE,GAAI,OAAQ+b,EAAE/b,EAAE,GAAI,OAAQ+b,EAAEtC,GAAK,EAAIA,OAAI,EAAS9a,EAAEgmB,KAAM,QAAS5I,EAAE5B,GAAK,EAAIA,OAAI,EAASxb,EAAE0lF,WAAa,EAAG,QACvHvrE,EAAEwrE,SAAWp1F,gBAAgBgJ,IAAMyG,EAAE,GAAK,GAEtCqB,EAAI,EAAG,EAAIA,IAAKA,EAAGyZ,EAAI9a,EAAEqB,GAAI8Y,EAAI,EAAI9Y,GAAK,IAAMA,GAAK,KAAKwN,KAAKiM,GAAI9a,EAAEqB,GAAKyb,EAAEhC,EAAG,CAACzC,EAAGsD,EAAG3B,EAAGha,EAAE,IAAIqB,KAAO8Y,EAAInZ,EAAI,GAOnH,OALAhB,EAAE,GAAKA,EAAE,KAAOA,EAAE,GAAKA,EAAE,IACzBsb,EAAE9Z,IAAM,EAAIA,EAAIxB,EAAE,IAAM,EAAIwB,IAAMxB,EAAE,GAAKA,EAAE,GAAK,EAAIwB,GACpD2B,EAAE5S,KAAM,iBAAkB,CACxBwnE,UAAW/3D,IAENA,GAGTA,EAAE4lF,sBAAwB,SAAUrsF,EAAG4gB,GAGrC,OAFA5gB,EAAI+hB,EAAE/hB,GAAKA,EAAI,EACf4gB,EAAImB,EAAEnB,IAAMA,EAAI5gB,GAAK,IAAM4gB,EAAI5gB,EAAI4gB,EAAI5gB,EAAI,IACpC,CACL4/C,MAAO19B,GAAKliB,GAAK,IACjB6/C,IAAK39B,GAAKtB,GAAK,MAhCrB,CAmCG7nB,IAAMA,EAAI,KAGNA,KAET6qB,EAAE9E,EAAG,yBAA0B,CAACA,EAAE,wCAAyCA,EAAE,wBAAyBA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,GAC7I,IAAIoD,EAAIlrB,MAAQA,KAAKgzD,WAAa,WAChC,IAAIhqD,EAAI,SAAU4gB,EAAGnZ,GASnB,OARAzH,EAAI2d,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUgC,EAAGmZ,GACjCnZ,EAAE4hC,UAAYzoB,IACX,SAAUnZ,EAAGmZ,GAChB,IAAK,IAAI5gB,KAAK4gB,EAAGA,EAAE+C,eAAe3jB,KAAOyH,EAAEzH,GAAK4gB,EAAE5gB,KAG7CA,EAAE4gB,EAAGnZ,IAGd,OAAO,SAAUmZ,EAAGnZ,GAClB,SAAShB,IACPzP,KAAK6N,YAAc+b,EAGrB5gB,EAAE4gB,EAAGnZ,GACLmZ,EAAExD,UAAY,OAAS3V,EAAIkW,OAAOyb,OAAO3xB,IAAMhB,EAAE2W,UAAY3V,EAAE2V,UAAW,IAAI3W,IAnBhD,GAsB9BmD,EAAInD,EAAE+5C,aACNz+B,EAAIjD,EAAE02B,SACN3xB,EAAI/E,EAAEs3B,QAEV3vC,EAAIqY,EAAEve,OACN,IAAIgjB,EAAIzE,EAAEq4B,SACNp+C,EAAI+lB,EAAE+4B,KACN5vC,EAAI6W,EAAEi5B,eAmHV,OAjHA/3C,EAAI,SAAUA,GACZ,SAAS4gB,IACP,IAAInZ,EAAI,OAASzH,GAAKA,EAAE0Y,MAAM1hB,KAAM6nB,YAAc7nB,KAIlD,OAHAyQ,EAAE4jF,mBAAgB,EAClB5jF,EAAEnH,aAAU,EACZmH,EAAEvQ,YAAS,EACJuQ,EAyET,OAtEAya,EAAEtB,EAAG5gB,GAEL4gB,EAAExD,UAAUkvE,iBAAmB,WAC7B,IAAI7kF,EAAIzQ,KAAKu1F,cACT3rE,EAAI5pB,KAAKE,OAAOoJ,QAAQwoE,WACxB9oE,EAAIhJ,KAAKw1F,gBACT/lF,EAAIma,EAAE6rE,eAEV,OADAzsF,EAAEyG,KAAOA,EAAIzG,EAAEyG,IACRA,EAAEkN,KAAK3c,KAAM,CAClB6B,EAAG4O,EAAEilF,MAAM7zF,EACXE,EAAG0O,EAAEilF,MAAM3zF,EACX4zF,UAAWllF,EAAEklF,WACZllF,EAAEmlF,kBAAmBhsE,IAG1BA,EAAExD,UAAUyvE,aAAe,WACzB,OAAO71F,KAAK81F,OAAS91F,KAAK+1F,kBAAoB,CAC5CtkC,WAAY,EACZC,WAAY,IAIhB9nC,EAAExD,UAAUovD,SAAW,SAAU/kE,GAC/B,IAAImZ,EAAI5pB,KAAKgD,UACb,OAAOhD,KAAK81F,SAAW91F,KAAKo8D,QAAU,GAAKp8D,KAAKE,OAAOb,MAAM4H,SAAS2+C,QAAQ0P,IAAI1rC,EAAE/nB,EAAG+nB,EAAE7nB,EAAG6nB,EAAE9Y,EAAIL,EAAGmZ,EAAE9Y,EAAIL,EAAG,CAC5G0kD,OAAQvrC,EAAE9Y,EAAI,EACd83C,MAAOh/B,EAAEg/B,MACTC,IAAKj/B,EAAEi/B,OAIXj/B,EAAExD,UAAUznB,KAAO,WACjB,IAAI8R,EAAIzQ,KACRgJ,EAAEod,UAAUznB,KAAK+iB,MAAM1hB,KAAM6nB,WAC7B7nB,KAAKqF,KAAOtD,EAAE/B,KAAKqF,KAAM,SAEzB,IAAIukB,EAAI,SAAUA,GAChBnZ,EAAEiM,MAAM,WAAakN,EAAExkB,OAKzB,OAFA2lB,EAAE/qB,KAAM,SAAU4pB,GAClBmB,EAAE/qB,KAAM,WAAY4pB,GACb5pB,MAGT4pB,EAAExD,UAAU2rD,QAAU,WACpB,OAAOxlD,EAAEvsB,KAAK+B,IAAM,GAAK/B,KAAK+B,GAGhC6nB,EAAExD,UAAUq6D,WAAa,SAAUhwE,EAAGmZ,GACpC,IAAI5gB,EAAIhJ,KACJyP,EAAIzP,KAAKE,OACTkqB,EAAI3a,EAAEpQ,MACNyoB,EAAIrY,EAAEnG,QAAQ0sF,kBAClBpsE,EAAI7nB,EAAE6nB,EAAG9B,GACTrX,IAAMzQ,KAAKo8D,UAAYp8D,KAAKo8D,QAAUp8D,KAAKsJ,QAAQ8yD,QAAU3rD,OAAI,IAAuBA,GAAKzQ,KAAKo8D,QAAU3rD,EAAGhB,EAAEnG,QAAQpG,KAAKuM,EAAEvM,KAAK2b,QAAQ7e,OAASA,KAAKsJ,QAAS,CAAC,UAAW,YAAa,YAAa,eAAetD,SAAQ,SAAU4jB,GACrO5gB,EAAE4gB,IAAI5gB,EAAE4gB,GAAGnZ,EAAI,OAAS,QAAQA,MAClCzQ,KAAKoyE,YAAchoD,EAAEjpB,OAAOy8E,aAAa59E,KAAMyQ,GAAIA,GAAK,UAAYzQ,KAAK2qC,OAAS3qC,KAAK83D,SAAS,IAAKhwC,IAAMrY,EAAE8xD,SAAU,GAAK33C,GAAKQ,EAAErqB,WAGzI6pB,EAAExD,UAAU1J,MAAQ,SAAUjM,EAAGmZ,EAAG5gB,GAClC,IAAIyG,EAAIzP,KAAKE,OACb0S,EAAE5J,EAAGyG,EAAEpQ,OACP0C,EAAE6nB,GAAG,GACL5pB,KAAK81F,OAAS91F,KAAKsJ,QAAQwsF,OAASjpE,EAAEpc,GAAKA,GAAKzQ,KAAK81F,OACrDrmF,EAAEnG,QAAQpG,KAAKuM,EAAEvM,KAAK2b,QAAQ7e,OAASA,KAAKsJ,QAC5CtJ,KAAKyC,SAAWzC,KAAKyC,QAAQiL,QAAQ1N,KAAK61F,gBAC1C71F,KAAKi2F,aAAej2F,KAAKi2F,YAAYvoF,QAAQ1N,KAAK61F,iBAG7CjsE,EA/EL,CAgFF5gB,GAEFyG,EAAEzG,EAAEod,UAAW,CACbovE,gBAAiB,CACfU,YAAa,SAAUltF,EAAG4gB,EAAGnZ,GAC3B,IAAIhB,EAAIma,EAAEusE,QAEV,OADAvsE,EAAIA,EAAEwsE,gBACC,CAAC,CAAC,IAAKptF,EAAEnH,EAAGmH,EAAEjH,GAAI0O,EAAE4lF,cAAgB,CAAC,IAAKrtF,EAAEnH,GAAK,SAAWmH,EAAE2sF,WAAa,EAAI,GAAI3sF,EAAEjH,EAAG,EAAI0N,EAAE5N,EAAI+nB,EAAE/nB,EAAG,EAAI4N,EAAE1N,EAAI6nB,EAAE7nB,EAAG0N,EAAE5N,EAAG4N,EAAE1N,GAAK,CAAC,IAAK0N,EAAE5N,EAAG4N,EAAE1N,GAAI,CAAC,IAAK6nB,EAAE/nB,EAAG+nB,EAAE7nB,KAEzKu0F,SAAU,SAAUttF,EAAG4gB,GAErB,OADAA,EAAIA,EAAEwsE,gBACC,CAAC,CAAC,IAAKptF,EAAEnH,EAAGmH,EAAEjH,GAAI,CAAC,IAAK6nB,EAAE/nB,EAAG+nB,EAAE7nB,KAExCw0F,YAAa,SAAUvtF,EAAG4gB,EAAGnZ,GAC3BmZ,EAAIA,EAAEwsE,gBACN,IAAI3mF,EAAIzP,KAAKE,OACTkqB,EAAI3a,EAAEm9C,OAAO,GACb9kC,EAAIrY,EAAEpQ,MAAM4pE,UACZx/C,EAAIha,EAAEpQ,MAAM+pE,SAChB35D,EAAIzG,EAAE2sF,UACN,IAAI/iF,EAAI5S,KAAKgD,UAAU8N,EASvB,OARAL,EAAIQ,EAAER,EAAE+lF,cAAe,GAEvB/lF,EAAI,CAAC,IADLqX,EAAI,SAAWrY,EAAI2a,EAAIxX,GAAKkV,EAAI2B,EAAIW,EAAIxX,IAAM,EAAInC,GAAKgZ,GAAKW,EAAIxX,GAAKnC,EACxDzH,EAAEjH,GACfqoB,GAAI,GACA,SAAW3a,EAAIqY,EAAI9e,EAAEnH,GAAKimB,EAAI8B,EAAE/nB,EAAIimB,EAAI9e,EAAEnH,GAAKimB,EAAI8B,EAAE/nB,KAAGuoB,GAAI,GAChEphB,EAAI,CAAC,CAAC,IAAKA,EAAEnH,EAAGmH,EAAEjH,IAClBqoB,GAAKphB,EAAE1B,KAAKmJ,GACZzH,EAAE1B,KAAK,CAAC,IAAKsiB,EAAE/nB,EAAG+nB,EAAE7nB,IACbiH,MAINA,KAET4jB,EAAE9E,EAAG,0BAA2B,CAACA,EAAE,+BAAgCA,EAAE,iCAAkCA,EAAE,mBAAoBA,EAAE,+BAAgCA,EAAE,0BAA2BA,EAAE,yBAA0BA,EAAE,iCAAkCA,EAAE,gCAAiCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,EAAGmY,EAAG8B,EAAGN,EAAGxqB,GACxV,IAAIkP,EAAIjR,MAAQA,KAAKgzD,WAAa,WAChC,IAAIviD,EAAI,SAAUmZ,EAAG5gB,GASnB,OARAyH,EAAIkW,OAAOuf,gBAAkB,CAC3BmM,UAAW,cACA5jC,OAAS,SAAUgC,EAAGmZ,GACjCnZ,EAAE4hC,UAAYzoB,IACX,SAAUnZ,EAAGmZ,GAChB,IAAK,IAAI5gB,KAAK4gB,EAAGA,EAAE+C,eAAe3jB,KAAOyH,EAAEzH,GAAK4gB,EAAE5gB,KAG7CyH,EAAEmZ,EAAG5gB,IAGd,OAAO,SAAU4gB,EAAG5gB,GAClB,SAASyG,IACPzP,KAAK6N,YAAc+b,EAGrBnZ,EAAEmZ,EAAG5gB,GACL4gB,EAAExD,UAAY,OAASpd,EAAI2d,OAAOyb,OAAOp5B,IAAMyG,EAAE2W,UAAYpd,EAAEod,UAAW,IAAI3W,IAnBhD,GAsB9B2a,EAAI3a,EAAE4lF,sBAEVvtE,EAAIA,EAAEwY,KACN,IAAI1W,EAAI7nB,EAAEi9C,MACNvuC,EAAI1O,EAAEwH,OACNygB,EAAIjoB,EAAEi8C,UACN5yB,EAAIrpB,EAAEs+C,MACNvvC,EAAI/O,EAAE8+C,KACNp3B,EAAI1nB,EAAEg/C,eA2QV,OAzQAh/C,EAAI,SAAU0O,GACZ,SAASzH,IACP,IAAI4gB,EAAI,OAASnZ,GAAKA,EAAEiR,MAAM1hB,KAAM6nB,YAAc7nB,KAMlD,OALA4pB,EAAEgjC,YAAS,EACXhjC,EAAE1mB,UAAO,EACT0mB,EAAE6sE,sBAAmB,EACrB7sE,EAAEtgB,aAAU,EACZsgB,EAAE87C,YAAS,EACJ97C,EA4OT,OAzOA3Y,EAAEjI,EAAGyH,GAELzH,EAAEod,UAAU1Y,QAAU,SAAU+C,GAC9B,IAAImZ,EAAI5pB,KACJgJ,EAAI4gB,EAAE87C,OACNj2D,EAAIma,EAAE8sE,cACVjmF,GAAKzH,EAAEhD,SAAQ,SAAUwK,GACvB,IAAIC,EAAID,EAAE/N,QACNknB,EAAInZ,EAAExN,UACVyN,GAAKkZ,IAAMlZ,EAAEvJ,KAAK,CAChB4J,EAAGA,EAAEN,EAAEmmF,OAAQ/sE,EAAEgjC,QAAUhjC,EAAEgjC,OAAO,GAAK,GACzChE,MAAOn5C,EACPo5C,IAAKp5C,IACHgB,EAAE/C,QAAQ,CACZoD,EAAG6Y,EAAE7Y,EACL83C,MAAOj/B,EAAEi/B,MACTC,IAAKl/B,EAAEk/B,KACNj/B,EAAEtgB,QAAQi+C,gBAIjBv+C,EAAEod,UAAUwwE,UAAY,WACtB,IAAInmF,EAAIzQ,KAAK02F,cACT9sE,EAAI5pB,KAAK62F,YACT7tF,EAAIhJ,KAAKsJ,QAEb,GAAI,IAAMtJ,KAAK88D,OAAS98D,KAAK4sD,OAAQ,CACnC,IAAIn9C,EAAIzP,KAAK4sD,OAAO,GAChBp8C,EAAIxQ,KAAK4sD,OAAO,GACpB5sD,KAAKutF,QAAUvtF,KAAKutF,MAAQvtF,KAAKX,MAAM4H,SAASquD,IAAI7lD,EAAGe,EAAGxQ,KAAK4sD,OAAO,GAAK,EAAG,EAAGn8C,EAAGmZ,GAAGpnB,SAAS,2BAA2B4E,IAAIpH,KAAK6xE,QACpI7xE,KAAKutF,MAAMrmF,KAAK,CACd0iB,EAAG2C,EAAE+oC,IAAI7lD,EAAGe,EAAGxQ,KAAK4sD,OAAO,GAAK,EAAG,EAAG,CACpChE,MAAOn4C,EACPo4C,IAAKj/B,EACLurC,OAAQn1D,KAAK4sD,OAAO,GAAK,MAG7B5sD,KAAKX,MAAM6iD,YAAcliD,KAAKutF,MAAMrmF,KAAK,CACvC,eAAgB8B,EAAE1H,YAClBoG,KAAMsB,EAAEy/E,WAAa,OACrBthF,OAAQ6B,EAAErF,OAAS,iBAEhB3D,KAAKutF,QAAUvtF,KAAKutF,MAAQvtF,KAAKutF,MAAMrnF,YAGhD8C,EAAEod,UAAU0mE,WAAa,WACvB,IAAIr8E,EAAIzQ,KAAKX,MAAM4H,SACnBjH,KAAK0lE,OAAO1/D,SAAQ,SAAU4jB,GAC5BA,EAAEnnB,SAAWmnB,EAAEwpD,oBAAsBxpD,EAAEnnB,QAAUmnB,EAAEnnB,QAAQyD,WAC3D0jB,EAAEnnB,UAAYmnB,EAAEnnB,QAAUgO,EAAEmZ,EAAEypD,WAAWzpD,EAAE5mB,WAAWoE,IAAIwiB,EAAE1pB,OAAO2xE,OAAQjoD,EAAEktE,kBAAmB,OAIpG9tF,EAAEod,UAAUy/C,eAAiB,WAC3Bp1D,EAAE2V,UAAUy/C,eAAelpD,KAAK3c,MAChCA,KAAK4iF,gBAGP55E,EAAEod,UAAU2wE,KAAO,SAAUtmF,EAAGzH,EAAGyG,GACjC,IAAI4a,EAAIrqB,KAAK4sD,OACTp8C,EAAIxQ,KAAKg3F,MAAQh3F,KAAKg3F,MAAMvnF,EAAExM,QAAU,EAAIonB,EAAE,GAAK,EAEvD,OADA5Z,EAAIsZ,KAAKktE,KAAKrtE,GAAGnZ,EAAI4Z,EAAE,KAAO7Z,EAAIf,EAAE4kF,gBAAiB,EAAG,IACjDhqE,EAAE,IAAMrhB,GAAK,EAAI,GAAK+gB,KAAKq0B,IAAI3tC,IAAMD,EAAIf,EAAE4kF,gBAAkB,EAAI5kF,EAAE4kF,eAAiBrrF,GAAK,EAAI,GAAKhJ,KAAKsJ,QAAQwoE,WAAWrzD,QAAU,IAG7IzV,EAAEod,UAAU4hD,QAAU,WACpB,QAAShoE,KAAK8oF,eAAe/nF,QAG/BiI,EAAEod,UAAU8nE,aAAe,WACzB,IAII19E,EACAgZ,EACAG,EACAS,EAPA3Z,EAAIzQ,KACJ4pB,EAAInZ,EAAEpR,MACN2J,EAAI4gB,EAAE3iB,SACNwI,EAAIgB,EAAEnH,QAAQ/H,OAKlBvB,KAAK42F,aACJnnF,GAAKgB,EAAEwlF,aAAersE,EAAEs4B,aAAezxC,EAAEwlF,YAAcjtF,EAAEwgB,EAAE,UAAUtiB,KAAK,CACzEy7C,QAAS,IACRv7C,IAAIqJ,EAAEohE,QACTphE,EAAEi1D,OAAO1/D,SAAQ,SAAUqkB,GACzB,IAAIvC,EAAI,GAGR,GAFA0B,EAAIa,EAAE5nB,SAED4nB,EAAE6mD,QAAU1nD,EAAG,CAClB,IAAIM,OAAI,EACRM,EAAIC,EAAErnB,UACNwN,EAAI6Z,EAAEwrE,eACNjsE,EAAEs4B,aAAep4B,EAAIO,EAAE4rE,YAAaxmF,IAAMqa,IAAMA,EAAIO,EAAE4rE,YAAcjtF,EAAEwgB,EAAE,UAAUpiB,IAAIqJ,EAAEwlF,cAAensE,GAAKA,EAAE5iB,KAAKsJ,GAAImZ,EAAIlZ,EAAE0kE,aAAa9qD,EAAGA,EAAE0K,UAAY,WAC3J1K,EAAEysE,kBAAoBttE,EAAE8mC,mBAAmB7/C,EAAEm8C,QAAQ1lD,KAAKkjB,GAAGljB,KAAKsJ,GAAIoZ,EAAEs4B,YAAc14B,EAAEtiB,KAAKyiB,GAAGziB,KAAK,CACnG,kBAAmB,UAClB3F,OAAOkO,EAAGqa,GAAIO,EAAEysE,kBAAmB,IAAOttE,EAAE8mC,mBAAmB7/C,EAAEm8C,QAAShjC,EAAEs4B,YAAc92B,GAAE,EAAItD,EAAG6B,GAAIyB,GAAE,EAAItD,EAAGsC,EAAG5Z,GAAIgZ,EAAE9b,QAAQoa,IACpI0B,EAAEtiB,KAAK,CACLipD,WAAY9lC,EAAE+xC,QAAU,UAAY,WAEtC5yC,EAAEhnB,SAAS6nB,EAAEwoD,gBAAgB,QACxBrpD,IAAMa,EAAE5nB,QAAU+mB,EAAEtjB,eAI/B8C,EAAEod,UAAU8wE,YAAc,SAAUzmF,EAAGmZ,GACrCnZ,EAAEkU,MAAK,SAAUlU,EAAGzH,GAClB,YAAO,IAAuByH,EAAE0mF,QAAUnuF,EAAEmuF,MAAQ1mF,EAAE0mF,OAASvtE,MAInE5gB,EAAEod,UAAUorC,UAAY,SAAU/gD,GAChCuZ,EAAEhqB,KAAM,aACRA,KAAK6lE,iBACL,IAAIj8C,EAAI5pB,KAAKsJ,QACTN,EAAI4gB,EAAEqrE,aACNxlF,EAAIzG,GAAK4gB,EAAEtoB,aAAe,GAC1BkP,EAAI4Z,EAAER,EAAEwtE,WAAYxtE,EAAEytE,UACtB7tE,EAAIxpB,KAAK02F,cAAgBlmF,EAAEo4C,MAC/Bp4C,GAAKxQ,KAAK62F,YAAcrmF,EAAEq4C,KAAOr/B,EACjC,IAAIG,EAAI3pB,KAAK0lE,OACT59C,EAAI8B,EAAEkoD,WAAWhX,SACrBlxC,EAAIA,EAAEosE,kBACN,IACI/kF,EADAma,EAAIzB,EAAE5oB,OAEN6R,EAAI,EAGR,IAFAnC,IAAMzQ,KAAK4sD,OAASn8C,EAAIzQ,KAAKg1F,aAExB/jF,EAAI,EAAGA,EAAIma,EAAGna,IAAK,CACtB,IAAIsZ,EAAIZ,EAAE1Y,GACNga,EAAIzB,EAAI5W,EAAIpC,GACf+Z,EAAEwnD,WAAanoD,IAAMW,EAAE6xC,UAAYxpD,GAAK2X,EAAE4mD,WAAa,KACxD,IAAIpvE,EAAIynB,EAAI5W,EAAIpC,EACZ+b,EAAI,CACN1qB,EAAG4O,EAAE,GACL1O,EAAG0O,EAAE,GACLK,EAAGL,EAAE,GAAK,EACV0kD,OAAQ1kD,EAAE,GAAK,EACfm4C,MAAO7+B,KAAKw2B,MAAM,IAAMt1B,GAAK,IAC7B49B,IAAK9+B,KAAKw2B,MAAM,IAAMx+C,GAAK,KAE7BwoB,EAAE8oD,UAAY,MACd9oD,EAAEvnB,UAAYupB,EACdhC,EAAE8pE,cAAgBvjF,EAAEyZ,EAAEjhB,QAAQwoE,YAAcvnD,EAAEjhB,QAAQwoE,WAAWhX,SAAUhzC,GAC3EyC,EAAE8pE,cAAgB5qE,EAAEc,EAAE8pE,cAAe9nE,EAAEzb,GACvC9Q,KAAKy2F,iBAAmB1sE,KAAK1W,IAAIrT,KAAKy2F,kBAAoB,EAAGlsE,EAAE8pE,gBAC/DtyF,GAAKA,EAAIkpB,GAAK,GACV,IAAMlB,KAAK4yB,GAAK56C,GAAK,EAAIgoB,KAAK4yB,GAAK56C,GAAKgoB,KAAK4yB,GAAK,IAAM56C,GAAK,EAAIgoB,KAAK4yB,IAC1EpyB,EAAEwrE,kBAAoB,CACpBtkC,WAAY1nC,KAAKw2B,MAAMx2B,KAAKq0B,IAAIr8C,GAAKiH,GACrC0oD,WAAY3nC,KAAKw2B,MAAMx2B,KAAKmmC,IAAInuD,GAAKiH,IAEvCujB,EAAIxC,KAAKq0B,IAAIr8C,GAAK0O,EAAE,GAAK,EACzB,IAAIya,EAAInB,KAAKmmC,IAAInuD,GAAK0O,EAAE,GAAK,EAC7B8Z,EAAEokD,WAAa,CAACl+D,EAAE,GAAK,GAAK8b,EAAG9b,EAAE,GAAK,GAAKya,GAC3CX,EAAE+sE,KAAOv1F,GAAKgoB,KAAK4yB,GAAK,GAAK56C,EAAIgoB,KAAK4yB,GAAK,EAAI,EAAI,EACnDpyB,EAAE4sE,MAAQp1F,EACVkpB,EAAIlB,KAAKnlB,IAAI6K,EAAG8a,EAAE8pE,cAAgB,GAClC9pE,EAAEgrE,cAAgB,CAChBgC,QAAS,CACP11F,EAAG4O,EAAE,GAAK8b,EAAIxC,KAAKq0B,IAAIr8C,GAAKwoB,EAAE8pE,cAC9BtyF,EAAG0O,EAAE,GAAKya,EAAInB,KAAKmmC,IAAInuD,GAAKwoB,EAAE8pE,eAEhC,MAAS,GACTsB,UAAW,EAAIprE,EAAE8pE,cAAgB,SAAW9pE,EAAE+sE,KAAO,QAAU,OAC/D1B,kBAAmB,CACjBO,QAAS,CACPt0F,EAAG4O,EAAE,GAAK8b,EAAIxC,KAAKq0B,IAAIr8C,GAAKkpB,EAC5BlpB,EAAG0O,EAAE,GAAKya,EAAInB,KAAKmmC,IAAInuD,GAAKkpB,GAE9BmrE,gBAAiB,CACfv0F,EAAG4O,EAAE,GAAK8b,EACVxqB,EAAG0O,EAAE,GAAKya,KAMlBlB,EAAEhqB,KAAM,mBAGVgJ,EAAEod,UAAUw8D,aAAe,WACzB,IAGInzE,EAHAgB,EAAIzQ,KAAK0lE,OACT97C,EAAInZ,EAAE1P,OACNiI,EAAIhJ,KAAKsJ,QAAQ0sF,kBAEjBxlF,EAAI,EAER,IAAKf,EAAI,EAAGA,EAAIma,EAAGna,IAAK,CACtB,IAAI+Z,EAAI/Y,EAAEhB,IACT+Z,EAAEuoD,WAAa/oE,IAAMwgB,EAAE4yC,UAAY5rD,GAAKgZ,EAAEznB,GAK7C,IAFA/B,KAAK88D,MAAQtsD,EAERf,EAAI,EAAGA,EAAIma,EAAGna,KAAK+Z,EAAI/Y,EAAEhB,IAAM0hE,WAAa,EAAI3gE,IAAMgZ,EAAE4yC,UAAYpzD,GAAKwgB,EAAEznB,EAAIyO,EAAI,IAAM,EAAGgZ,EAAEszC,MAAQtsD,GAG7GxH,EAAE27C,eAAiBv5B,EAAEL,EAAE45B,eAAgB,CACrCiI,OAAQ,CAAC,KAAM,MACfkB,MAAM,EACN6lB,cAAc,EACd7B,WAAY,CACVnV,cAAc,EACd66B,iBAAkB,EAClB/B,eAAgB,cAChBe,cAAe,MACf17B,SAAU,GACV37D,SAAS,EACT0F,UAAW,WACT,OAAO7E,KAAK4B,MAAMsvE,YAAS,EAASlxE,KAAK4B,MAAMyD,MAEjDgxF,eAAe,EACfx0F,EAAG,GAEL4mF,eAAW,EACXuN,mBAAmB,EACnBrhB,qBAAqB,EACrBN,WAAY,QACZtwE,OAAQ,KACR0xB,KAAM,KACN8pD,cAAc,EACd0V,aAAc,GACd3c,gBAAgB,EAChBl3E,QAAS,CACPstE,eAAe,GAEjB9qE,YAAa,UACbtC,YAAa,EACb4D,eAAW,EACX1B,OAAQ,CACNC,MAAO,CACL8vF,WAAY,OAIXvqF,EApPL,CAqPF+hB,GAEFta,EAAE1O,EAAEqkB,UAAW,CACbijE,UAAW,GACX9Q,aAAa,EACbyV,eAAW,EACXjP,iBAAkB7zD,EAAEk9D,cACpBvY,YAAa7mE,EAAEod,UAAUypD,YACzBmlB,UAAWvlF,EAAEulF,UACb9L,UAAWphE,EACX8yD,aAAa,EACbvV,iBAAiB,EACjB8P,aAAcnsE,EAAEod,UAAU+uD,aAC1B0L,WAAYjuE,EACZ2yD,gBAAgB,EAChBuS,YAAahwD,EACb6rE,cAAe,CAAC,QAAS,qBAE3B9mE,EAAEm0D,mBAAmB,MAAOj/E,GAErBA,KAET6qB,EAAE9E,EAAG,6BAA8B,CAACA,EAAE,4BAA6BA,EAAE,mBAAoBA,EAAE,sCAAuCA,EAAE,iCAAkCA,EAAE,uBAAuB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,GACnN,IASIwY,EATAL,EAAI/hB,EAAEs3B,KACNzT,EAAI/E,EAAEkjC,WACNz+B,EAAIrB,EAAEhrB,OACN6B,EAAI6Q,EAAEksC,SACN7tC,EAAI2B,EAAEosC,MACN50B,EAAIxX,EAAEwsC,QACNx1B,EAAIhX,EAAEytC,MACN5vC,EAAImC,EAAEiuC,KACN72B,EAAIpX,EAAEmuC,eA0LV,OAvLA,SAAW/3C,GACT,SAAS8e,IACP,IAeIoD,EACAH,EACA+B,EACAF,EACAhB,EACAY,EACAlB,EACAN,EACAsC,EACA3B,EACAiC,EACAb,EA1BA/jB,EAAIhJ,KACJyP,EAAIzG,EAAE9F,KACNsN,EAAIxH,EAAE3J,MACNmqB,EAAIxgB,EAAEM,QAAQwoE,YAAc,GAC5BnoD,EAAIH,EAAEguE,iBACN1vE,EAAItX,EAAEy4D,UACNx/C,EAAIjZ,EAAE04D,WACNl/C,EAAIxZ,EAAE44D,SACNh+C,EAAIrB,KAAKw2B,MAAM/vC,EAAE4uD,WAAa,GAC9BtuD,EAAI9H,EAAE4jD,OACN37C,EAAIH,EAAE,GAAK,EACXjP,EAAIiP,EAAE,GACN8B,EAAI,CAAC,GAAI,IACT2X,EAAI,CAAC,EAAG,EAAG,EAAG,GACdU,EAAIjiB,EAAEyuF,qBAaVzuF,EAAEozD,UAAY5yC,EAAErqB,SAAW6J,EAAEyqE,mBAAqBhkE,EAAEzJ,SAAQ,SAAUwK,GACpEA,EAAEyhE,WAAazhE,EAAE4rD,SAAW5rD,EAAEyhE,UAAUylB,YAAclnF,EAAEyhE,UAAU/qE,KAAK,CACrE/D,MAAO,SACN3C,IAAI,CACL2C,MAAO,OACP4jD,aAAc,SACZv2C,EAAEyhE,UAAUylB,WAAY,MAC1BnrE,EAAEnG,UAAU6nE,eAAevsE,MAAM1Y,GAAIyG,EAAEzJ,SAAQ,SAAUwK,GAC3DA,EAAEyhE,YAAczhE,EAAE4rD,SAAWxpD,EAAEpC,EAAE8mF,MAAMhwF,KAAKkJ,GAAIA,EAAEyhE,UAAU0lB,KAAO,MAAOvtE,EAAEZ,EAAElqB,MAAM6D,SAAWinB,EAAE5Z,EAAElH,QAAQwoE,YAActhE,EAAElH,QAAQwoE,WAAWxyE,OAASkR,EAAElH,QAAQwoE,WAAWxyE,MAAM6D,QAAUqN,EAAEyhE,UAAUzqE,UAAUrE,MAAQioB,IAAM5a,EAAEyhE,UAAUzxE,IAAI,CAC9O2C,MAAO4mB,KAAKw2B,MAAM,GAAKn1B,GAAK,OAC1B5a,EAAEyhE,UAAUylB,WAAY,KAAQlnF,EAAEyhE,UAAYzhE,EAAEyhE,UAAU/rE,UAAWsK,EAAEshE,YAAc,IAAMthE,EAAEshE,WAAW/wE,eAAiByP,EAAEshE,gBAC7Hl/D,EAAE5M,SAAQ,SAAU4jB,EAAGna,GACzB,IAEI2b,EAFAf,EAAIT,EAAE7oB,OACN+oB,EAAI,GAGR,GAAIO,EAAG,CAGL,GAFArhB,EAAEkuF,YAAYttE,EAAGna,EAAI,IAEjB,EAAIzG,EAAEytF,iBAAkB,CAC1B,IAAI9jF,EAAIoX,KAAK1W,IAAI,EAAGxR,EAAIoP,EAAIjI,EAAEytF,kBAC1B7jF,EAAImX,KAAKnlB,IAAI/C,EAAIoP,EAAIjI,EAAEytF,iBAAkBjmF,EAAE04D,YAC/Ct/C,EAAE5jB,SAAQ,SAAUyK,GAClB,EAAIA,EAAE4jF,eAAiB5jF,EAAEwhE,YAAcxhE,EAAEhQ,IAAMspB,KAAK1W,IAAI,EAAGxR,EAAIoP,EAAIR,EAAE4jF,eAAgB5jF,EAAE4uD,OAASt1C,KAAKnlB,IAAI/C,EAAIoP,EAAIR,EAAE4jF,cAAe7jF,EAAE04D,YAAa99C,EAAI3a,EAAEwhE,UAAUzqE,UAAUhI,QAAU,GAAIiR,EAAEmnF,cAAgB,CACzM1qF,OAAQuD,EAAE8kF,cAAcgC,QAAQx1F,EAAI0O,EAAEhQ,IAAM2qB,EAAI,EAChDqK,KAAMrK,EACN8/B,KAAMz6C,EAAE1O,GACP+nB,EAAExiB,KAAKmJ,EAAEmnF,mBAGd/qE,EAAE/C,EADFnX,EAAIC,EAAIwY,EAAIzY,EACJA,EAAI,GAGd,IAAKib,EAAI,EAAGA,EAAIvD,EAAGuD,IAAK,CAQtB,GAPA1C,EAAItB,EAAEgE,GACNpB,EAAItB,EAAEqqE,cACN3oE,EAAI1B,EAAE+mD,UACNtmD,GAAI,IAAOT,EAAEkxC,QAAU,SAAW,UAClC9uC,EAAI3a,EAAI6Z,EAAE+qE,QAAQx1F,EAClB+nB,GAAKM,EAAEc,EAAE0sE,sBAAmB,IAAuB1sE,EAAE0sE,cAAcpjD,IAAM7oB,EAAI,UAAYL,EAAIJ,EAAE0sE,cAAcniE,KAAMnI,EAAIrC,EAAE4sE,oBAAoB3sE,YACtIA,EAAE4sE,cACLtuE,EAAEuuE,QAAS/sE,EAAIC,EAAE8sE,QAAQ7sE,EAAGja,EAAGH,QAAQ,OAAQ0Y,EAAEgjC,SACnD,IAAK,aACHxhC,EAAIC,EAAE+sE,kBAAkBpuE,EAAGna,EAAGqY,EAAGkC,GACjC,MAEF,IAAK,YACHgB,EAAIC,EAAEgtE,iBAAiBrrE,EAAGnd,EAAGqY,EAAGkC,GAChC,MAEF,QACEgB,EAAIC,EAAEitE,oBAAoBlvF,EAAGkiB,EAAGoC,EAAG3a,GAEvCia,EAAEurE,MAAQ,CACRhoC,WAAYxkC,EACZznB,MAAOsoB,EAAEmpE,WAEX5oE,EAAI7B,EAAE5hB,QAAQwoE,YAAc,GAC5BllD,EAAE+qE,KAAO,CACP91F,EAAGmpB,EAAIva,EAAEsc,EAAElrB,EAAG2nB,EAAE3nB,IAAM,CACpBjB,KAAM+oB,EACNkjC,OAAQljC,GACR6C,EAAEmpE,YAAc,GAClB5zF,EAAGurB,EAAI7c,EAAEsc,EAAEhrB,EAAGynB,EAAEznB,GAAK,IAEvByqB,EAAEkpE,MAAM7zF,EAAImpB,EACZwB,EAAEkpE,MAAM3zF,EAAIurB,EACZ7c,EAAE+Y,EAAEozC,MAAM,KAAQhxC,EAAIgB,EAAEplB,UAAUrE,MAAOwP,EAAI,KAAMqY,EAAIY,EAAIjC,GAAK,IAAMla,GAAKkD,EAAIoX,KAAKw2B,MAAM30B,EAAIZ,EAAIrB,GAAIY,EAAE,GAAKR,KAAK1W,IAAIV,EAAG4X,EAAE,KAAOS,EAAIY,EAAI9D,EAAI6B,GAAK,IAAMla,IAAMkD,EAAIoX,KAAKw2B,MAAMv1B,EAAIY,EAAI9D,EAAI6B,GAAIY,EAAE,GAAKR,KAAK1W,IAAIV,EAAG4X,EAAE,KAAM,EAAI+C,EAAIhC,EAAI,EAAIf,EAAE,GAAKR,KAAK1W,IAAI0W,KAAKw2B,MAAWj1B,EAAI,EAARgC,GAAY/C,EAAE,IAAM+C,EAAIhC,EAAI,EAAI7B,IAAMc,EAAE,GAAKR,KAAK1W,IAAI0W,KAAKw2B,MAAMjzB,EAAIhC,EAAI,EAAI7B,GAAIc,EAAE,KAAMqC,EAAEwrE,aAAezlF,QAGjX,IAAM5Q,EAAEwoB,IAAMvqB,KAAKq4F,wBAAwB9tE,MAAQvqB,KAAKs4F,kBAAmBt4F,KAAK0lE,OAAO1/D,SAAQ,SAAU2jB,GAIzG,IAAIla,EAHNsd,EAAInD,EAAEJ,EAAGG,EAAErgB,QAAQwoE,aAEf/mD,EAAIta,EAAEsc,EAAEwrE,eAAgB,MAE1BzrE,EAAInD,EAAEsqD,WAEDrnD,EAAIjD,EAAEsoD,YAAcrlD,EAAE+qE,MAAQhuE,EAAEyyC,SAAW,EAAIzyC,EAAE0qE,eACpD1oE,EAAIiB,EAAEurE,MAAMhoC,YACR1gD,GAAKqd,KAAGnD,EAAEsqD,UAAYnnD,EAAItc,EAAEvJ,SAAShB,OAAOzD,SAAS,qDAAuDmnB,EAAEymD,YAAczmD,EAAE1e,UAAY,IAAM0e,EAAE1e,UAAY,KAAK7D,IAAI4B,EAAEiyE,iBAAkBzqE,EAAE0xC,YAAcp1B,EAAE5lB,KAAK,CACpN,eAAgB6jB,EAChB5jB,OAAQ4lB,EAAEyrE,gBAAkB7uE,EAAEhmB,OAAS,aAEzCmpB,EAAErd,EAAI,OAAS,WAAW,CACxBma,EAAGD,EAAE2rE,qBAEPxoE,EAAE5lB,KAAK,aAAcykB,IAChBmB,IAAMnD,EAAEsqD,UAAYnnD,EAAE5mB,gBAKnC,SAASklB,IACPprB,KAAK0lE,OAAO1/D,SAAQ,SAAUyK,GAC5B,IACID,EADAoZ,EAAInZ,EAAEwhE,UAEVroD,GAAKnZ,EAAE2rD,WAAa5rD,EAAIoZ,EAAE+tE,OAAS/tE,EAAEwuE,eAAiBxuE,EAAEuuE,MAAMh1F,MAAQ4mB,KAAK1W,IAAIuW,EAAEpiB,UAAUrE,MAAQymB,EAAEwuE,aAAc,GAAIxuE,EAAEppB,IAAI,CAC3H2C,MAAOymB,EAAEuuE,MAAMh1F,MAAQ,KACvB4jD,cAAe/mD,KAAKsJ,QAAQwoE,WAAWxyE,OAAS,IAAIynD,cAAgB,aAClEn9B,EAAE8tE,WAAY,GAAK9tE,EAAE1iB,KAAK0iB,EAAEuuE,OAAQvuE,EAAEA,EAAE6uE,MAAQ,UAAY,QAAQjoF,GAAIoZ,EAAE6uE,OAAQ,GAAM7uE,GAAKA,EAAE1iB,KAAK,CACtGnF,GAAI,eAEC0O,EAAEmnF,gBACR53F,MAGL,SAAS8Q,EAAEL,GACT,IAAImZ,EAAI5pB,KAAK4sD,OACTp8C,EAAIxQ,KAAKsJ,QACTN,EAAIwH,EAAEo8C,OACNjjC,EAAInZ,EAAEkoF,SAAW,GACjBjpF,EAAI,OAASe,EAAEilB,KAEnB,IAAKhmB,EAAG,CACN,GAAI,OAASzG,EAAE,GAAI,IAAIohB,EAAIL,KAAK1W,IAAIuW,EAAE,GAAKG,KAAK1W,IAAI5C,EAAE,GAAIA,EAAE,IAAKkZ,QAAQS,EAAIL,KAAK1W,IAAIuW,EAAE,GAAKnZ,EAAE,GAAKA,EAAE,GAAIkZ,GAAIC,EAAE,KAAOnZ,EAAE,GAAKA,EAAE,IAAM,EACtI,OAASzH,EAAE,GAAKohB,EAAInZ,EAAEmZ,EAAGT,EAAGC,EAAE,GAAKG,KAAK1W,IAAI5C,EAAE,GAAIA,EAAE,MAAQ2Z,EAAInZ,EAAEmZ,EAAGT,EAAGC,EAAE,GAAKnZ,EAAE,GAAKA,EAAE,IAAKmZ,EAAE,KAAOnZ,EAAE,GAAKA,EAAE,IAAM,GACrH2Z,EAAIR,EAAE,IAAMA,EAAE,GAAKQ,EAAGR,EAAE,GAAKG,KAAKnlB,IAAI4L,EAAE0kF,UAAYnrE,KAAK1W,IAAI,EAAG+W,EAAI,EAAI5Z,EAAE0kF,WAAanrE,KAAK1W,IAAI,EAAG2W,EAAExZ,EAAE2kF,WAAa,EAAG/qE,IAAKA,GAAIpqB,KAAKwxD,UAAU5nC,GAAI5pB,KAAKiuF,gBAAkBjuF,KAAKiuF,kBAAoBx+E,GAAI,EAGzM,OAAOA,EAGT,IAAImD,EAAI,GACJ/Q,EAAI,CACNg2F,oBAAqB,SAAUpnF,GAC7B,OAAOA,EAAEhQ,IAAMgQ,EAAEmnF,cAAcpjD,KAEjC0jD,oBAAqB,SAAUznF,EAAGmZ,EAAGpZ,EAAGxH,GACtC,OAAOyH,EAAEsmF,KAAKvmF,EAAIoZ,EAAEnpB,IAAM,GAAK+P,EAAIoZ,EAAEy1C,OAAS,EAAIr2D,EAAIwH,EAAGoZ,EAAE0tE,KAAM1tE,IAEnEmuE,QAAS,SAAUtnF,EAAGmZ,EAAGpZ,GACvB,OAAOA,EAAE,IAAMC,EAAE6mF,MAAQ,EAAI,IAAM1tE,EAAInZ,EAAE4jF,gBAE3C4D,iBAAkB,SAAUxnF,EAAGmZ,EAAGpZ,EAAGxH,GAEnC,OADAyH,EAAIA,EAAEjJ,UAAUrE,MACTymB,EAAInZ,EAAIzH,EAAIwH,EAAIC,EAAIzH,GAE7BgvF,kBAAmB,SAAUvnF,EAAGmZ,EAAGpZ,EAAGxH,GACpC,IACIyG,EADAka,EAAI,EAMR,OAJAlZ,EAAEzK,SAAQ,SAAUwK,IAClBf,EAAIe,EAAEyhE,UAAUzqE,UAAUrE,OACtBwmB,IAAMA,EAAIla,MAETma,EAAID,EAAI3gB,EAAIwH,EAAImZ,EAAI3gB,IAI/BA,EAAEiwD,QAAU,SAAUxoD,GACpBhB,EAAEwpD,QAAQ1sC,IACT,IAAM3Z,EAAEiM,QAAQpO,KAAOmC,EAAEtL,KAAKmJ,IAAIA,EAAIA,EAAE2V,WAAaqxE,qBAAuB51F,EAAG4O,EAAEikF,eAAiB3pE,EAAGta,EAAEw9E,eAAiBnmE,EAAGrX,EAAE6nF,gBAAkBltE,EAAG3a,EAAE4nF,wBAA0BvnF,IAnLnL,CAqLGsa,IAAMA,EAAI,KAENA,KAETwB,EAAE9E,EAAG,sCAAuC,CAACA,EAAE,uBAAwBA,EAAE,uBAAuB,SAAUrY,EAAGzG,GAC3G,SAAS8e,EAAE9e,EAAGyG,GACZ,IAAIma,GAAI,EAER,GAAI5gB,EAAG,CACL,IAAIyH,EAAIzH,EAAE03D,WACV13D,EAAE2vF,aAAeloF,IAAMzH,EAAE0jD,WAAa1jD,EAAEyjD,QAAUzjD,EAAEyH,EAAI,cAAgB,YAAY,gCAAiCmZ,GAAI,EAAI5gB,EAAE0jD,UAAUhP,QAAUjtC,EAAGzH,EAAEA,EAAE4vF,MAAQ,UAAY,QAAQ5vF,EAAE0jD,UAAW,MAAM,WACvMj9C,EAAEyyC,YAAcl5C,EAAExI,IAAI,CACpB05D,cAAezpD,EAAI,OAAS,YAE5BmC,EAAEnD,EAAG,8BAAgCzG,EAAE9B,KAAK,CAC9Cw2C,QAASjtC,KAEXzH,EAAE4vF,OAAQ,EAGZ,OAAOhvE,EAGT,IAAIsB,EAAIliB,EAAEw1C,SACN5rC,EAAI5J,EAAEg1C,UACNjzB,EAAI/hB,EAAE6S,QACNgR,EAAI7jB,EAAEm3C,SACN5zB,EAAIvjB,EAAEw3C,WACNz+C,EAAIiH,EAAE63C,KACV31B,EAAEzb,EAAG,UAAU,WACb,IAAIzG,EAAIhJ,KACJyP,EAAI,IACPzP,KAAKwhF,iBAAmB,IAAIx7E,SAAQ,SAAU4jB,GAC7Cna,EAAIA,EAAEsc,OAAOnC,SAEd5pB,KAAKU,OAAS,IAAIsF,SAAQ,SAAU4jB,GACnCA,EAAEznB,UAAYynB,EAAEtgB,QAAQozD,cAAgB9yC,EAAEtgB,QAAQozD,YAAYC,cAAgBpwC,EAAE3C,EAAEznB,SAASupF,QAAQ,SAAUj7E,GAC3G8b,EAAE9b,GAAG,SAAUA,GACbA,EAAEmP,OAASnQ,EAAEnI,KAAKmJ,EAAEmP,iBAIzB5f,KAAKE,QAAU,IAAI8F,SAAQ,SAAU4jB,GACpC,IAAInZ,EAAImZ,EAAEtgB,QAAQwoE,WAClBloD,EAAEwyC,WAAY,IAAO3rD,EAAEtR,SAAWyqB,EAAE6pD,mBAAqBhjE,EAAI,SAAUA,GACrE,OAAOA,EAAEzK,SAAQ,SAAUyK,GACzBA,EAAE2rD,UAAYrxC,EAAEta,EAAEqhE,YAAcrhE,EAAEqhE,WAAarhE,EAAEwhE,UAAY,CAACxhE,EAAEwhE,WAAa,IAAIjsE,SAAQ,SAAU4jB,GACjG,IAAIQ,EAAIR,EAAEtgB,QACVsgB,EAAEmnE,UAAYhvF,EAAEqoB,EAAE2mE,UAAWtgF,EAAEsgF,UAAWtgF,EAAEzN,WAAayN,EAAEzN,UAAUxD,QACrE4qB,EAAEuyC,cAAgB/yC,EAAE+uE,WAAa/uE,EAAE8zB,QAAS9zB,EAAE82C,WAAa,EAAG54C,EAAE8B,EAAG5gB,IAAMyG,EAAEnI,KAAKsiB,UAGnFnZ,EAAEmZ,EAAEvF,OAAS,IAAK5T,EAAEmZ,EAAE87C,YAE3B1lE,KAAK64F,sBAAsBppF,MAG7BA,EAAE2W,UAAUyyE,sBAAwB,SAAU7vF,GAC5C,IAGIghB,EACAoB,EACAta,EALArB,EAAIzP,KACJ4pB,EAAI5gB,EAAEjI,OACN0P,EAAIhB,EAAExI,SAINwiB,GAAI,EAEJxY,EAAI,SAAU2Y,GAChB,IAAI5gB,EAGAwgB,EAFA/Z,EAAIma,EAAEoiC,IAAM,EAAIpiC,EAAEnL,SAAW,EAC7BjO,EAAIxH,EAAI,EAGZ,GAAI4gB,KAAOA,EAAE8iC,WAAa9iC,EAAE6iC,QAAS,CACnC,IAAI9iC,EAAIC,EAAE8iC,WAAa,CACrB7qD,EAAG+nB,EAAE1iB,KAAK,KACVnF,EAAG6nB,EAAE1iB,KAAK,MAERkjB,EAAIR,EAAE4hC,YACV5hC,EAAEzmB,QAAU6F,EAAI4gB,EAAEpiB,UAAWoiB,EAAEzmB,MAAQ6F,EAAE7F,MAAOymB,EAAEpqB,OAASwJ,EAAExJ,OAAQwJ,EAAIyH,EAAEokD,YAAY,KAAMjrC,EAAElnB,SAAS0nB,GACxG,IAAItC,EAAI8B,EAAEzmB,MAAQ,EAAIsM,EAMtB,OALC+Z,EAAI,CACH5oB,KAAM,IACNgsD,OAAQ,MACRC,MAAO,KACPjjC,EAAEkjC,aAAet8C,GAAKgZ,EAAI1B,EAAI+E,EAAEjD,EAAE/nB,IAAMkoB,KAAKw2B,MAAM32B,EAAE/nB,KAAO+nB,EAAE6nC,aAAejhD,EAAIoZ,EAAE/nB,EAAI+nB,EAAE6nC,YACpF,CACL5vD,EAAG8nB,EAAE9nB,GAAKuoB,EAAEqnC,YAAc,GAAKhiD,GAAKe,GAAK,GACzCzO,EAAG4nB,EAAE5nB,GAAKqoB,EAAEsnC,YAAc,GAAKjiD,EAAIzG,EACnC7F,MAAOymB,EAAEzmB,MAAQ,EAAIsM,EACrBjQ,OAAQoqB,EAAEpqB,OAAS,EAAIiQ,KAK7B,IAAK2b,EAAI,EAAGA,EAAIxB,EAAGwB,KAASpB,EAAIhhB,EAAEoiB,MAAIpB,EAAE2uE,WAAa3uE,EAAE0zB,QAAS1zB,EAAE02C,WAAa,EAAG12C,EAAE8uE,YAAc7nF,EAAE+Y,IAMpG,IAJAhhB,EAAE2b,MAAK,SAAUlU,EAAGmZ,GAClB,OAAQA,EAAEmnE,WAAa,IAAMtgF,EAAEsgF,WAAa,MAGzC3lE,EAAI,EAAGA,EAAIxB,EAAGwB,IAAK,CACtB,IAAIb,GAAKtZ,EAAIjI,EAAEoiB,KAAOna,EAAE6nF,YAExB,IAAK9uE,EAAIoB,EAAI,EAAGpB,EAAIJ,IAAKI,EAAG,CAC1B,IAAIiB,GAAKna,EAAI9H,EAAEghB,KAAOlZ,EAAEgoF,aACvBvuE,IAAMU,GAAKha,IAAMH,GAAK,IAAMG,EAAEyvD,YAAc,IAAM5vD,EAAE4vD,YAAc,WAAazvD,EAAEk/C,YAAc,WAAar/C,EAAEq/C,YAAcllC,EAAEppB,GAAK0oB,EAAE1oB,EAAI0oB,EAAEpnB,OAAS8nB,EAAEppB,EAAIopB,EAAE9nB,OAASonB,EAAE1oB,GAAKopB,EAAElpB,GAAKwoB,EAAExoB,EAAIwoB,EAAE/qB,QAAUyrB,EAAElpB,EAAIkpB,EAAEzrB,QAAU+qB,EAAExoB,KAAOkP,EAAE8/E,UAAYjgF,EAAEigF,UAAY9/E,EAAIH,GAAG4vD,WAAa,IAIrR13D,EAAEhD,SAAQ,SAAUyK,GAClBqX,EAAErX,EAAGhB,KAAOga,GAAI,MAElBA,GAAK7W,EAAEnD,EAAG,qCAGdmd,EAAE9E,EAAG,qBAAsB,CAACA,EAAE,uBAAuB,SAAUrY,GAC7D,IASI2a,EATAphB,EAAIyG,EAAElG,OACNue,EAAIrY,EAAElP,KACN2qB,EAAIzb,EAAEoM,QACNjJ,EAAInD,EAAEizB,SACN3X,EAAItb,EAAE4wC,MACNxzB,EAAIpd,EAAE+wC,WACNj0B,EAAI9c,EAAEoxC,KACN9+C,EAAI0N,EAAEwxC,MACNhwC,EAAIxB,EAAEoyC,UAkEV,OA/DA,SAAWj4B,GACT,IAAInZ,EAAI,GAERmZ,EAAEqvC,QAAU,SAAUrvC,GAEpB,OADC,IAAMnZ,EAAEoO,QAAQ+K,KAAOnZ,EAAEnJ,KAAKsiB,GAAI5gB,EAAE4gB,EAAExD,UAAW3W,EAAE2W,YAC7CwD,GAGT,IAAIna,EAAI,WACN,SAASgB,KAgDT,OA9CAA,EAAE2V,UAAU2yE,eAAiB,SAAUtoF,GAQrC,IAAIzH,EAAIhJ,KACJyP,EAAI,GAER,OAVA,SAASma,EAAEnZ,EAAGhB,EAAG2a,EAAGC,GAClB,IAAI7Z,EACJqc,EAAEpc,GAAG,SAAUA,EAAGkZ,GAChB,IAAKU,IAAM,EAAIrhB,EAAEo+E,sBAAsBvoE,QAAQ8K,IAAMla,EAAEka,GAAI,IAAKlZ,EAAI1O,EAAE0O,GAAI2Z,EAAET,GAAK,GAAInZ,EAAI,EAAGA,EAAIuZ,KAAK1W,IAAI5C,EAAE1P,OAAQ0O,EAAEka,GAAG5oB,QAASyP,IAAKf,EAAEka,GAAGnZ,UAAO,IAAWC,EAAED,GAAK4Z,EAAET,GAAGnZ,GAAKf,EAAEka,GAAGnZ,IAAM4Z,EAAET,GAAGnZ,GAAK,GAAIoZ,EAAEnZ,EAAED,GAAIf,EAAEka,GAAGnZ,GAAI4Z,EAAET,GAAGnZ,GAAI6Z,EAAI,UAAUzX,EAAEnC,IAAM2Z,EAAET,GAAKuB,EAAEza,GAAK,GAAK,GAAImZ,EAAEnZ,EAAGhB,EAAEka,IAAM,GAAIS,EAAET,GAAIU,EAAI,IAAMD,EAAET,QAAK,IAAuBla,EAAEka,GAAK,KAAOla,EAAEka,MAMjWC,CAAEnZ,EAAGzQ,KAAKsJ,QAASmG,EAAG,GACfA,GAGTgB,EAAE2V,UAAU4yE,oBAAsB,SAAUvoF,EAAGmZ,GAC7C,IAAI5gB,EAAIyH,EAAEjL,WACTwD,EAAE2H,UAAY,WACb,OAAO3Q,KAAKo/D,YAAc7yC,EAAEvjB,EAAE1F,SAAUyP,OAAOy2D,YAAcxpE,KAAKyG,aAAe8lB,EAAEvjB,EAAE62E,UAAW9sE,OAAOy2D,YAAcxpE,KAAKo/D,YAAc7yC,EAAEvjB,EAAEomF,SAAU,IAAMpvF,KAAKyG,aAAe8lB,EAAEvjB,EAAE0V,UAAW,KAC9L/B,KAAK3c,OAAS4pB,EAAEtiB,KAAKmJ,EAAEwoF,MAG5BxoF,EAAE2V,UAAUo8D,cAAgB,SAAU/xE,EAAGmZ,GACvC,IAAI5gB,EAAIhJ,KACJyP,EAAIzP,KAAKsJ,QAAQhE,WACjB8kB,EAAIpqB,KAAKk5F,kBACTzvE,EAAI,IACPG,GAAKna,GAAKA,EAAElK,OAASkK,EAAElK,MAAMS,SAAQ,SAAUyK,QAC9C,IAAuBA,EAAEwoF,MAAQxoF,EAAEwoF,IAAMhoF,KACzCjI,EAAEgwF,oBAAoBvoF,EAAGgZ,KACxBzpB,MACH4pB,EAAImB,EAAErJ,WAAM,EAAQ+H,EAAEwF,KAAI,SAAUxe,GAClC,OAAOqX,GAAGrY,GAAK,IAAIlK,OAAS,IAAI,SAAUqkB,GACxC,OAAOA,EAAEqvE,MAAQxoF,QAElBwe,KAAI,SAAUxe,GACf,OAAOA,GAAKA,EAAEhL,iBAEhBmkB,EAAEo9D,qBAAsB,GACxBv9D,EAAIA,EAAEvL,iBAAc,MACbkM,GAAKA,EAAE+uE,WAAa/uE,GAAKpqB,KAAK0J,OAAO0gB,EAAEgvE,YAAa3oF,GAAG,GAAKgZ,IAAKW,EAAIpqB,KAAK+4F,eAAenvE,IAAMo9D,qBAAsB,EAAIhnF,KAAKk5F,kBAAoB,CACvJC,QAAS1vE,EACT4vE,cAAezvE,EACfwvE,YAAahvE,GACZpqB,KAAK0J,OAAOkgB,EAAGnZ,GAAG,IAAOzQ,KAAKk5F,uBAAoB,IAGhDzoF,EAjDD,GARV,CA2DG2Z,IAAMA,EAAI,KAINA,KAETwC,EAAE9E,EAAG,4BAA6B,CAACA,EAAE,mBAAoBA,EAAE,qBAAsBA,EAAE,0BAA2BA,EAAE,wBAAyBA,EAAE,wCAAyCA,EAAE,6BAA8BA,EAAE,2BAA4BA,EAAE,sCAAuCA,EAAE,mCAAoCA,EAAE,oCAAqCA,EAAE,qCAAsCA,EAAE,sCAAuCA,EAAE,qBAAsBA,EAAE,6BAA8BA,EAAE,gCAAiCA,EAAE,8CAA+CA,EAAE,qBAAsBA,EAAE,mBAAoBA,EAAE,wBAAyBA,EAAE,mBAAoBA,EAAE,qBAAsBA,EAAE,yBAA0BA,EAAE,uBAAwBA,EAAE,yBAA0BA,EAAE,iCAAkCA,EAAE,iCAAkCA,EAAE,oCAAqCA,EAAE,2BAA4BA,EAAE,8BAA+BA,EAAE,4BAA6BA,EAAE,sBAAuBA,EAAE,uBAAwBA,EAAE,kBAAkB,SAAUrY,EAAGzG,EAAG8e,EAAGoD,EAAGtY,EAAGmY,EAAG8B,EAAGN,EAAGxqB,EAAGkP,EAAGmZ,EAAGR,EAAGnZ,EAAGuZ,EAAGoB,EAAGta,EAAG2Y,EAAGqD,EAAGvC,EAAGU,EAAGppB,EAAGioB,EAAGO,EAAG7Z,EAAGgZ,EAAGG,EAAG8B,EAAGN,EAAGxY,EAAGia,EAAGpB,EAAGwB,EAAGzB,GAsF1oC,OArFA9b,EAAE/B,QAAUkF,EAAElF,QACd+B,EAAE45C,WAAaz2C,EAAEy2C,WACjB55C,EAAE65C,qBAAuB12C,EAAE02C,qBAC3B75C,EAAE+5C,aAAe52C,EAAE42C,aACnB/5C,EAAEkO,KAAO/K,EAAE+K,KACXlO,EAAEi5C,OAASx9B,EAAEw9B,OACbj5C,EAAE6pF,IAAMvuE,EACRtb,EAAE8pF,KAAO9oF,EACThB,EAAE+pF,MAAQnvE,EACV5a,EAAEpQ,MAAQgrB,EAAEhrB,MACZoQ,EAAEgqF,GAAKvuE,EACPzb,EAAEiqF,OAAS5vE,EACXra,EAAE87D,eAAiBz6D,EACnBrB,EAAEgvC,MAAQl0B,EACV9a,EAAEkqF,QAAU93F,EAAE85E,aAAe95E,EAAIopB,EACjCxb,EAAEmqF,OAASppF,EACXf,EAAEoqF,WAAa93F,EACf0N,EAAEqqF,YAAc7oF,EAChBxB,EAAEsqF,KAAOtwE,EACTha,EAAEuqF,KAAOzuE,EACT9b,EAAEwqF,QAAUntE,EACZrd,EAAEszC,MAAQ/1B,EACVvd,EAAE9L,MAAQqpB,EAAEvb,MACZmY,EAAEqvC,QAAQhoD,GACVmZ,EAAE6uC,QAAQl3D,GACV0N,EAAEk1C,eAAiB78B,EAAE68B,eACrBl1C,EAAE04C,WAAargC,EAAEqgC,WACjB14C,EAAE02C,KAAOr+B,EAAEogC,YACXz4C,EAAE24C,WAAatgC,EAAEsgC,WACjB34C,EAAEi1C,WAAa73B,EAAE63B,WACjBj1C,EAAEnE,OAASuhB,EAAEvhB,OACbmE,EAAEs7C,aAAel+B,EAAEk+B,aACnBt7C,EAAE+uC,SAAWx1C,EAAEw1C,SACf/uC,EAAEqvC,SAAW91C,EAAE81C,SACfrvC,EAAEsvC,SAAW/1C,EAAE+1C,SACftvC,EAAEvI,KAAO8B,EAAE9B,KACXuI,EAAEmb,aAAe5hB,EAAE4hB,aACnBnb,EAAEyvC,aAAel2C,EAAEk2C,aACnBzvC,EAAEgL,cAAgBzR,EAAEyR,cACpBhL,EAAEjP,IAAMwI,EAAExI,IACViP,EAAE2vC,QAAUp2C,EAAEo2C,QACd3vC,EAAE4vC,wBAA0Br2C,EAAEq2C,wBAC9B5vC,EAAE6vC,eAAiBt2C,EAAEs2C,eACrB7vC,EAAEu7C,WAAaz+B,EAAEy+B,WACjBv7C,EAAE+vC,MAAQx2C,EAAEw2C,MACZ/vC,EAAEW,MAAQpH,EAAEoH,MACZX,EAAElG,OAASP,EAAEO,OACbkG,EAAEgwC,YAAcz2C,EAAEy2C,YAClBhwC,EAAElP,KAAOyI,EAAEzI,KACXkP,EAAEuuC,UAAYh1C,EAAEg1C,UAChBvuC,EAAEiwC,aAAe12C,EAAE02C,aACnBjwC,EAAEmwC,SAAW52C,EAAE42C,SACfnwC,EAAEuwC,QAAUh3C,EAAEg3C,QACdvwC,EAAEoM,QAAU7S,EAAE6S,QACdpM,EAAEwwC,QAAUj3C,EAAEi3C,QACdxwC,EAAEywC,aAAel3C,EAAEk3C,aACnBzwC,EAAEgsC,WAAazyC,EAAEyyC,WACjBhsC,EAAE0wC,SAAWn3C,EAAEm3C,SACf1wC,EAAEizB,SAAW15B,EAAE05B,SACfjzB,EAAE2wC,SAAWp3C,EAAEo3C,SACf3wC,EAAEkmB,KAAO3sB,EAAE2sB,KACXlmB,EAAE4wC,MAAQr3C,EAAEq3C,MACZ5wC,EAAE6wC,sBAAwBt3C,EAAEs3C,sBAC5B7wC,EAAE+wC,WAAax3C,EAAEw3C,WACjB/wC,EAAExP,OAAS+I,EAAE/I,OACbwP,EAAEmxC,IAAM53C,EAAE43C,IACVnxC,EAAEoxC,KAAO73C,EAAE63C,KACXpxC,EAAEqxC,KAAO93C,EAAE83C,KACXrxC,EAAEsxC,eAAiB/3C,EAAE+3C,eACrBtxC,EAAEuxC,YAAch4C,EAAEg4C,YAClBvxC,EAAEwxE,WAAaz3D,EAAEy3D,WACjBxxE,EAAEwxC,MAAQj4C,EAAEi4C,MACZxxC,EAAEyxC,WAAal4C,EAAEk4C,WACjBzxC,EAAE2xC,YAAcp4C,EAAEo4C,YAClB3xC,EAAE4xC,UAAYr4C,EAAEq4C,UAChB5xC,EAAEoyC,UAAY74C,EAAE64C,UAChBpyC,EAAEqyC,aAAe94C,EAAE84C,aACnBryC,EAAE8rC,KAAOvyC,EAAEuyC,KACX9vB,EAAEwtC,QAAQtvC,GACViD,EAAEqsC,QAAQzoD,GACVwZ,EAAEivC,QAAQxoD,GACV2a,EAAE6tC,QAAQxoD,GACVkC,EAAEsmD,QAAQ9tC,GACVra,EAAEmoD,QAAQxoD,GACV+a,EAAEytC,QAAQ5uC,GACH5a,KAETqY,EAAE,6BAA6BoyE,SAAWpyE,EACnCA,EAAE,8BA5paqBxb,EAAOid,SAAWqD,EAAW,QAAIA,EAAGtgB,EAAOid,QAAU/iB,EAAEhI,SAAWouB,EAAEpmB,GAAKomB,QAEtG,KAFwJ,aACvJ,OAAOA,EAAEpmB,IACV,8CCVH,QASWgK,IAMR,SAAUA,GACX,SAASM,EAAEN,EAAGmZ,EAAG5nB,EAAG+O,GAClBN,EAAEmc,eAAehD,KAAOnZ,EAAEmZ,GAAK7Y,EAAE4Q,MAAM,KAAM3f,GAAI,mBAAsB4rB,aAAeluB,OAAOyb,cAAc,IAAIyS,YAAY,yBAA0B,CACnJD,OAAQ,CACNznB,KAAM0jB,EACNrd,OAAQkE,EAAEmZ,QAMhB7Y,EADAN,EAAIA,EAAIA,EAAE0pF,SAAW,GAChB,wBAAyB,CAAC1pF,EAAE,mBAAoBA,EAAE,uBAAuB,SAAUA,EAAGmZ,GACzF,IAAI7Y,EAAIN,EAAEyrC,IACNhrC,EAAI0Y,EAAElP,cACNgR,EAAI9B,EAAE21B,eACN3sC,EAAIgX,EAAE02B,MACNn1B,EAAIvB,EAAE62B,WACN3zB,EAAI,CACNjT,KAAM,SAAUpJ,GACd,IAAImZ,EAAI,CACN1Z,KAAM,mBACNkqF,IAAK,kBACLj5F,KAAM,aACNk5F,MAAO,4BAELtwE,EAAI,IAAIuwE,eACZ,IAAK7pF,EAAElB,IAAK,OAAO,EACnBwa,EAAE7N,MAAMzL,EAAEpL,MAAQ,OAAOuvB,cAAenkB,EAAElB,KAAK,GAC/CkB,EAAET,SAAWS,EAAET,QAAQ,iBAAmB+Z,EAAEwwE,iBAAiB,eAAgB3wE,EAAEnZ,EAAE+pF,UAAY,SAAW5wE,EAAEzoB,MAC1GgqB,EAAE1a,EAAET,SAAS,SAAUS,EAAGmZ,GACxBG,EAAEwwE,iBAAiB3wE,EAAGnZ,MAExBA,EAAEgqF,eAAiB1wE,EAAE0wE,aAAehqF,EAAEgqF,cAEtC1wE,EAAE2wE,mBAAqB,WACrB,GAAI,IAAM3wE,EAAEuG,WAAY,CACtB,GAAI,MAAQvG,EAAE2uB,OAAQ,CACpB,GAAI,SAAWjoC,EAAEgqF,aAAc,CAC7B,IAAI7wE,EAAIG,EAAE4wE,aACV,GAAI,SAAWlqF,EAAE+pF,SAAU,IACzB5wE,EAAInY,KAAKC,MAAMkY,GACf,MAAOsB,GACP,GAAIA,aAAatD,MAEf,YADAnX,EAAEJ,OAASI,EAAEJ,MAAM0Z,EAAGmB,KAM5B,OAAOza,EAAEsJ,SAAWtJ,EAAEsJ,QAAQ6P,EAAGG,GAGnCtZ,EAAEJ,OAASI,EAAEJ,MAAM0Z,EAAGA,EAAE4wE,gBAI5BlqF,EAAEtN,MAAQ,iBAAoBsN,EAAEtN,OAASsN,EAAEtN,KAAOsO,KAAKmpF,UAAUnqF,EAAEtN,OACnE4mB,EAAE8wE,KAAKpqF,EAAEtN,OAEX23F,QAAS,SAAUrqF,EAAGmZ,GACpBkD,EAAEjT,KAAK,CACLtK,IAAKkB,EACLsJ,QAAS6P,EACT4wE,SAAU,OACVxqF,QAAS,CACP,eAAgB,iBAItB2lC,KAAM,SAAUllC,EAAGmZ,EAAGG,GACpB,IAAI/nB,EAAIkP,EAAE,OAAQ0B,EAAE,CAClB7C,OAAQ,OACR6P,OAAQnP,EACRsqF,QAAS,uBACRhxE,GAAI,CACL+mB,QAAS,QACR//B,EAAEd,MACLkb,EAAEvB,GAAG,SAAUnZ,EAAGmZ,GAChB1Y,EAAE,QAAS,CACT7L,KAAM,SACNC,KAAMskB,EACN7kB,MAAO0L,QACN,EAAQzO,MAEbA,EAAEqX,SACFqS,EAAE1pB,KAIN,OAAO8qB,KAET/b,EAAEN,EAAG,qBAAsB,CAACA,EAAE,uBAAwBA,EAAE,mBAAoBA,EAAE,yBAA0BA,EAAE,wBAAyBA,EAAE,iCAAkCA,EAAE,qBAAsBA,EAAE,4BAA4B,SAAUA,EAAGmZ,EAAG7Y,EAAG8b,EAAGnB,EAAG9Y,EAAGuY,GACvP,SAASja,EAAET,GACT,SAAUA,KAAOA,EAAEuqF,SAAWvqF,EAAEwqF,QAAUxqF,EAAEyqF,aAG9C,IAAIl5F,EAAI4nB,EAAEsyB,IACNzvB,EAAI1b,EAAE8I,KACNkQ,EAAI2B,EAAEyxB,YACN7xB,EAAIH,EAAEi9B,WACVx+B,EAAIhX,EAAE6rC,SAEN,IAAIvzB,EAAItY,EAAEysC,QACN7zB,EAAI5Y,EAAEpJ,OACNyhB,EAAIrY,EAAEqrC,UACNtyB,EAAI/Y,EAAEwtC,SACN5zB,EAAI5Z,EAAE0tC,MACN/1B,EAAI3X,EAAE6tC,WACNz1B,EAAIpY,EAAEkuC,KACNj1B,EAAIjZ,EAAEsuC,MACNn0B,EAAI,WACN,SAAStc,EAAEC,EAAG+Y,EAAG/Z,QACf,IAAW+Z,IAAMA,EAAI,IACrBxpB,KAAKk7F,cAAgB1qF,EAAE0qF,cACvBl7F,KAAKi9C,YAAc,CACjB,aAAc,CACZkG,MAAO,uDACPg4C,OAAQ,SAAU1qF,GAChB,OAAOA,EAAIwZ,KAAKq6B,KAAK7zC,EAAE,GAAIA,EAAE,GAAK,GAAIA,EAAE,IAAMiZ,MAGlD,aAAc,CACZy5B,MAAO,uDACPg4C,OAAQ,SAAU1qF,GAChB,OAAOA,EAAIwZ,KAAKq6B,KAAK7zC,EAAE,GAAIA,EAAE,GAAK,GAAIA,EAAE,IAAMiZ,KAEhD0xE,YAAa,cAEf,aAAc,CACZj4C,MAAO,uDACPg4C,OAAQ,SAAU1qF,GAChB,OAAOA,EAAIwZ,KAAKq6B,KAAK7zC,EAAE,GAAIA,EAAE,GAAK,GAAIA,EAAE,IAAMiZ,MAGlD,WAAY,CACVy5B,MAAO,uDACPg4C,OAAQ,SAAU1qF,GAChB,IAAKA,EAAG,OAAOiZ,IACf,IAAIE,GAAKnZ,EAAE,GAEX,OADAmZ,EAAIA,GAAI,IAAIK,MAAOoxE,cAAgB,IAAMzxE,EAAI,KAAOA,EAAI,IACjDK,KAAKq6B,IAAI16B,EAAGnZ,EAAE,GAAK,GAAIA,EAAE,KAElC2qF,YAAa,YAEf,WAAY,CACVj4C,MAAO,uDACPg4C,OAAQ,SAAU1qF,GAChB,OAAOA,EAAIwZ,KAAKq6B,KAAK7zC,EAAE,GAAK,IAAKA,EAAE,GAAK,GAAIA,EAAE,IAAMiZ,OAI1D1pB,KAAKX,MAAQoQ,EACbzP,KAAKyF,aAAe+jB,EACpBxpB,KAAKsJ,QAAUmH,EACfzQ,KAAKs7F,WAAa,GAClBt7F,KAAKrB,KAAK8R,EAAG+Y,EAAG/Z,GAqflB,OAlfAe,EAAEtN,KAAO,SAAUuN,EAAG+Y,EAAG/Z,GAEvB,YADA,IAAW+Z,IAAMA,EAAI,IACd,IAAIhZ,EAAEC,EAAG+Y,EAAG/Z,IAGrBe,EAAE0qF,cAAgB,SAAUzqF,GAC1B,IAAI+Y,EAAG/Z,EAEP,GAAIgB,EAAG,CACL,IAAID,EAAI,GACJoZ,EAAInZ,EAAE1P,OAEV,IAAKyoB,EAAI,EAAGA,EAAII,EAAGJ,IAAK,CACtB,IAAIa,EAAI5Z,EAAE+Y,GAAGzoB,OAEb,IAAK0O,EAAI,EAAGA,EAAI4a,EAAG5a,IAAKe,EAAEf,KAAOe,EAAEf,GAAK,IAAKe,EAAEf,GAAG+Z,GAAK/Y,EAAE+Y,GAAG/Z,IAIhE,OAAOe,GAGTA,EAAE4V,UAAUznB,KAAO,SAAU8R,EAAG+Y,EAAGhZ,GACjC,IAAIf,EAAIgB,EAAEq1C,aAWV,GAVAt8B,IAAMxpB,KAAKyF,aAAe+jB,GAC1BhZ,IAAMxQ,KAAKX,MAAQmR,GACnB,MAAQf,GAAK,MAAQA,IAAMA,OAAI,GAC/BzP,KAAKsJ,QAAUmH,EACfzQ,KAAKu7F,QAAU9qF,EAAE8qF,SAAWv7F,KAAKk7F,cAAczqF,EAAEgU,OAAS,GAC1DzkB,KAAKw7F,gBAAkBzwE,EAAEta,EAAE+qF,gBAAiBx7F,KAAKw7F,iBAAiB,GAClEx7F,KAAKy7F,aAAehsF,GAAK,IAAI4uB,OAAO,cAAgB5uB,EAAI,kBACxD,IAAWzP,KAAK07F,iBAAmB9wE,aAAa5qB,KAAK07F,iBACrD17F,KAAKs7F,WAAa,GAEdt7F,KAAKu7F,QAAQx6F,OAAQ,CACvBf,KAAK27F,YACL,IAAI/xE,GAAK3Y,EAAER,GAGbmZ,IAAMA,EAAI5pB,KAAK47F,iBACfhyE,IAAMA,IAAM5pB,KAAK67F,WAAW96F,QAC5B6oB,IAAMA,IAAM5pB,KAAK87F,aAAa/6F,QAC9B6oB,IAAMA,EAAI5pB,KAAK+7F,2BACdnyE,GAAKnZ,EAAEurF,eAAiBvrF,EAAEurF,iBAG7BxrF,EAAE4V,UAAU61E,sBAAwB,WAClC,IAAIxrF,EAAIzQ,KAAKyF,aACT+jB,EAAIxpB,KAAKsJ,QACTkH,EAAI,GACJxH,EAAI,SAAUyH,GAChB,OAAQqZ,EAAErZ,GAAK,QAAQ2V,UAAUmtD,eAAiB,CAAC,IAAIxyE,QAErD6oB,EAAInZ,GAAKA,EAAEpR,OAASoR,EAAEpR,MAAM+F,KAC5BilB,EAAI,GACJD,EAAI,GAERZ,EAAIA,GAAKA,EAAE0yE,eAAiBzrF,GAAKA,EAAEvQ,QAAUuQ,EAAEvQ,OAAO+uB,KAAI,WACxD,MAAO,CACLptB,EAAG,OAED,GACN,IACImoB,EADAnoB,EAAI,GAEP4O,GAAKA,EAAEvQ,QAAU,IAAI8F,SAAQ,SAAUyK,GACtC4Z,EAAE/iB,KAAK0B,EAAEyH,EAAErL,MAAQwkB,OAErBJ,EAAExjB,SAAQ,SAAUyK,GAClBD,EAAElJ,KAAKmJ,EAAE5O,GAAK,MAEhB,IAAM2O,EAAEzP,QAAUyP,EAAElJ,KAAK,GACzBkiB,EAAExjB,SAAQ,SAAUwjB,GAClB,IAAIhZ,EAAI,IAAIkc,EACRjd,EAAI4a,EAAExoB,IAAMmH,EAAE4gB,GACd9B,GAAKrX,GAAKA,EAAEvQ,QAAU,IAAI2B,IAAM,GAChC8nB,EAAIG,EAAEhC,EAAE1iB,MAAQwkB,GAAK,QAAQxD,UAAUmtD,cACvC3gE,EAAI+W,GAAK,CAAC,KAMd,KALCsB,EAAEzB,EAAE3nB,IAAMimB,EAAE8yD,cAAgBjxD,IAAMnZ,EAAE2rF,gBAAgB3yE,EAAE3nB,EAAG,KAC1DyoB,EAAEd,GAAG,SAAU/Y,EAAG+Y,GAChB,MAAQA,GAAKhZ,EAAE2rF,gBAAgB1rF,EAAG+Y,MAG/BQ,EAAI,EAAGA,EAAIva,EAAGua,IAAKxZ,EAAE4rF,UAAUxpF,EAAEoX,KAAOxZ,EAAE2rF,qBAAgB,EAAQvpF,EAAEoX,IAEzEI,EAAE9iB,KAAKkJ,GACP3O,YAGF,KADA2nB,EAAIM,EAAEF,GAAK,QAAQxD,UAAUmtD,iBACA/pD,EAAI,CAAC,MAClCxpB,KAAKq8F,WAAa,CAChBvyF,OAAQd,EAAE4gB,GACV0yE,SAAU9rF,EACV+rF,WAAYlyE,EACZmyE,eAAgBpyE,EAChBqyE,oBAAqBjzE,IAIzBhZ,EAAE4V,UAAUu1E,UAAY,WACtB37F,KAAKsJ,QAAQozF,uBAAyB18F,KAAKu7F,QAAUv7F,KAAKk7F,cAAcl7F,KAAKu7F,UAC7Ev7F,KAAKi8F,wBACLj8F,KAAK28F,cACL,IAAO38F,KAAK48F,UAAY58F,KAAKy0B,YAG/BjkB,EAAE4V,UAAUy1E,SAAW,SAAUprF,GAC/B,SAAS+Y,EAAE/Y,EAAG+Y,EAAGhZ,EAAGoZ,GAClB,SAASna,EAAE+Z,GACTY,EAAI3Z,EAAE+Y,GACNG,EAAIlZ,EAAE+Y,EAAI,GACVM,EAAIrZ,EAAE+Y,EAAI,GAGZ,SAASxgB,EAAEyH,GACTqX,EAAE/mB,OAASwpB,EAAI,GAAKzC,EAAExgB,KAAK,CAACmJ,IAC5BqX,EAAEyC,GAAGzC,EAAEyC,GAAGxpB,OAAS,KAAO0P,GAAKqX,EAAEyC,GAAGjjB,KAAKmJ,GAG3C,SAASgZ,IACP5nB,EAAIoP,GAAKA,EAAI+Y,KAAO/Y,EAAGma,EAAI,MAAQtY,MAAMssB,WAAWhU,KAAOyxE,SAASzxE,IAAMA,EAAIgU,WAAWhU,GAAIpiB,EAAE,WAAa8J,MAAMmX,KAAKxY,MAAM2Z,IAAMpiB,EAAE,WAAaoiB,EAAIA,EAAErmB,QAAQ,MAAO,KAAMiE,EAAE,SAAUqhB,EAAEtpB,OAASwpB,EAAI,GAAKF,EAAE/iB,KAAK,IAAKkJ,IAAM6Z,EAAEE,GAAGf,GAAK4B,GAAIA,EAAI,KAAMb,IAAKtZ,GAG9P,IAAIka,EAAI,EACJf,EAAI,GACJT,EAAI,GACJG,EAAI,GACJsB,EAAI,GACJna,EAAI,EACJsZ,EAAI,EAER,GAAI9Z,EAAEqW,OAAO/lB,QAAU,MAAQ0P,EAAEqW,OAAO,GAAI,CAC1C,KAAOqE,EAAI1a,EAAE1P,OAAQoqB,IAAK,GAAI1b,EAAE0b,GAAI,MAAQf,EAAG,IAAK3a,IAAI0b,GAAIA,EAAI1a,EAAE1P,SAAW,MAAQqpB,GAAK,MAAQT,GAAK,MAAQG,KACzG,MAAQM,GAAK,MAAQA,GAAK,MAAQT,KAAGyB,GAAKhB,GAC9C3a,IAAI0b,QACCvB,GAAKA,EAAEQ,GAAKR,EAAEQ,GAAGA,EAAGgB,IAAM3B,IAAMW,IAAMxX,EAAI6W,IAAM2B,GAAKhB,EAE5DX,KAgEJ,IAAIG,EAAI5pB,KACJqqB,EAAIrqB,KAAKu7F,QAAU,GACnBnxE,EAAI3Z,GAAKzQ,KAAKsJ,QACdzH,OAAI,IAAuBuoB,EAAE0yE,aAAe1yE,EAAE0yE,YAAc1yE,EAAE0yE,YAAc,EAC5E9yE,EAAII,EAAE2yE,WAAahqF,OAAOy2D,UAC1B1hD,EAAI,GACJ2B,EAAI,CACN,IAAK,EACL,IAAK,EACL,KAAM,GAEJE,EAAIS,EAAE4yE,IACVvsF,OAAI,IAAuB2Z,EAAE6yE,UAAY7yE,EAAE6yE,SAAW7yE,EAAE6yE,SAAW,EACnE,IAAInzE,EAAIM,EAAE8yE,QAAUnqF,OAAOy2D,UACvBp+C,EAAI,EAGR,GAFAzB,GAAKS,EAAE+yE,cAAgBxzE,EAAIS,EAAE+yE,YAAYxgF,KAAK3c,KAAM2pB,IAEhDA,EAAG,CAIL,GAHAA,EAAIA,EAAE5kB,QAAQ,QAAS,MAAMA,QAAQ,MAAO,MAAMkZ,MAAMmM,EAAEgzE,eAAiB,QACtE3sF,GAAK,EAAIA,KAAGA,EAAI,KAChBqZ,GAAKA,GAAKH,EAAE5oB,UAAQ+oB,EAAIH,EAAE5oB,OAAS,GACpCqpB,EAAEizE,cAAe,IAAIzqF,EAAIwX,EAAEizE,mBAAmBzqF,EAAI,KAAMA,EAjF9D,SAAWnC,GACT,IAEIhB,EAFA+Z,EAAI,EACJhZ,EAAI,EA4BR,OA1BAC,EAAE2G,MAAK,SAAU3G,EAAGmZ,GAClB,IAAIna,GAAI,EACJzG,EAAI,GACR,GAAI,GAAK4gB,EAAG,OAAO,EAEnB,IAAK,IAAIQ,EAAI,EAAGA,EAAI3Z,EAAE1P,OAAQqpB,IAAK,CACjCR,EAAInZ,EAAE2Z,GACN,IAAIC,EAAI5Z,EAAE2Z,EAAI,GACVT,EAAIlZ,EAAE2Z,EAAI,GACd,GAAI,MAAQR,EAAG,MACf,GAAI,MAAQA,EACV,GAAIna,GACF,GAAI,MAAQka,GAAK,MAAQU,EAAG,CAC1B,KAAO,MAAQA,GAAKD,EAAI3Z,EAAE1P,QAASspB,EAAI5Z,IAAI2Z,QAE3C,IAAuBX,EAAEY,IAAMZ,EAAEY,KACjC5a,GAAI,QAEDA,GAAI,YACN,IAAuBga,EAAEG,IAAM5gB,EAAIA,EAAE8d,OAAQhU,MAAMmX,KAAKxY,MAAMzI,MAAO8J,MAAM9J,IAAM6zF,SAAS7zF,IAAeygB,EAAEG,KAAM5gB,EAAI,IAAMA,GAAK4gB,EACvI,MAAQA,GAAKpZ,IACb,MAAQoZ,GAAKJ,QAGjB/Z,EAAIga,EAAE,KAAOA,EAAE,KAAO,IAAM,IAC5BW,EAAE07B,eAAiB17B,EAAE07B,aAAet8B,EAAIhZ,EAAI,IAAM,IAAKoZ,EAAE6xE,aAAe,IAAIp9D,OAAO,cAAgBjU,EAAE07B,aAAe,cAC7Gr2C,EAmDyDe,CAAEmZ,GAClE,IAAI1Y,EAAI,EAER,IAAKma,EAAI3a,EAAG2a,GAAKtB,EAAGsB,IAAK,MAAQzB,EAAEyB,GAAG,GAAKna,IAAMuY,EAAEG,EAAEyB,GAAIA,EAAI3a,EAAIQ,GAEjEmZ,EAAEkzE,aAAe,IAAMlzE,EAAEkzE,YAAYv8F,SAAW+mB,EAAE/mB,SAAW+mB,EAAE,GAAG/mB,QAAU,SAAW+mB,EAAE,GAAG,IAAMsC,EAAEs6B,aAAet6B,EAAEs6B,WArDvH,SAAWj0C,EAAG+Y,GACZ,IAKIG,EALAnZ,EAAI,GACJf,EAAI,GACJzG,EAAI,GACJqhB,EAAI,EACJZ,GAAI,EAIR,MAFKD,GAAKA,EAAI/Y,EAAE1P,UAAQyoB,EAAI/Y,EAAE1P,QAEvBspB,EAAIb,EAAGa,IAAK,QAAI,IAAuB5Z,EAAE4Z,IAAM5Z,EAAE4Z,IAAM5Z,EAAE4Z,GAAGtpB,OAAQ,CACzE,IAAI+mB,EAAIrX,EAAE4Z,GAAGvD,OAAO/hB,QAAQ,MAAO,KAAKA,QAAQ,MAAO,KAAKA,QAAQ,MAAO,KAAKkZ,MAAM,KAGtF,IAFAjV,EAAI,CAAC,GAAI,GAAI,IAER2gB,EAAI,EAAGA,EAAI7B,EAAE/mB,OAAQ4oB,IAAKA,EAAI3gB,EAAEjI,SAAW+mB,EAAE6B,GAAK9mB,SAASilB,EAAE6B,GAAI,IAAK7B,EAAE6B,KAAOla,EAAEka,IAAMla,EAAEka,IAAMla,EAAEka,GAAK7B,EAAE6B,GAAK7B,EAAE6B,GAAKla,EAAEka,QAAI,IAAuBnZ,EAAEmZ,GAAKnZ,EAAEmZ,KAAO7B,EAAE6B,KAAOnZ,EAAEmZ,IAAK,GAAMnZ,EAAEmZ,GAAK7B,EAAE6B,GAAI,GAAK7B,EAAE6B,GAAK3gB,EAAE2gB,GAAK,IAAM7B,EAAE6B,GAAK,KAAO,OAAS,GAAK7B,EAAE6B,IAAM,IAAM7B,EAAE6B,IAAM3gB,EAAE2gB,GAAK,KAAMF,GAAI,GAAMzgB,EAAE2gB,GAAG5oB,SAAWiI,EAAE2gB,GAAK,QAGpU,GAAIF,EAAG,CACL,IAAKE,EAAI,EAAGA,EAAInZ,EAAEzP,OAAQ4oB,KAAK,IAAOnZ,EAAEmZ,GAAK,GAAKla,EAAEka,IAAM,OAAS3gB,EAAE2gB,IAAM,SAAW3gB,EAAE2gB,KAAO3gB,EAAE2gB,GAAK,MAAQ,GAAKla,EAAEka,IAAM,OAAS3gB,EAAE2gB,KAAO3gB,EAAE2gB,GAAK,MAIpJ,OAFA,IAAM3gB,EAAEjI,QAAU,OAASiI,EAAE,IAAM,OAASA,EAAE,KAAOA,EAAE,GAAK,MAC5DyH,EAAIzH,EAAEmf,KAAK,MACHiC,EAAE6yB,aAAerzB,EAAEqzB,aAAaxsC,GAAKA,GAAKua,EAAE,oBAAqB,cAG3E,MAAO,aA6B2HhiB,CAAEqhB,EAAE,KACtIrqB,KAAK27F,YAGP,OAAOtxE,GAGT7Z,EAAE4V,UAAU01E,WAAa,WACvB,IAAIrrF,EAAIzQ,KAAKsJ,QACTkgB,EAAIxpB,KAAKu7F,SAAW,GACpB/qF,EAAIC,EAAEwsF,UAAY,EAClBj0F,EAAIyH,EAAEysF,QAAUnqF,OAAOy2D,UACvB5/C,EAAInZ,EAAEqsF,aAAe,EACrBnzE,EAAIlZ,EAAEssF,WAAahqF,OAAOy2D,UAQ9B,OAPA/4D,EAAE0T,QAAuB,iBAAb1T,EAAIA,EAAE0T,SAAiC1T,EAAI1O,EAAEyK,eAAeiE,IAAK,GAAGzK,QAAQ2W,KAAKlM,EAAEnD,qBAAqB,OAAO,SAAUmD,EAAGhB,GACtIA,GAAKe,GAAKf,GAAKzG,GAAK,GAAGhD,QAAQ2W,KAAKlM,EAAE2D,UAAU,SAAU3D,EAAGzH,GAC3D,IAAIqhB,EAAIb,EAAExgB,EAAI4gB,GACVQ,EAAI,EACR,IAAK,OAAS3Z,EAAEgR,SAAW,OAAShR,EAAEgR,UAAYzY,GAAK4gB,GAAK5gB,GAAK2gB,EAAG,IAAKH,EAAExgB,EAAI4gB,KAAOJ,EAAExgB,EAAI4gB,GAAK,IAAKJ,EAAExgB,EAAI4gB,GAAGna,EAAIe,GAAKC,EAAEqK,UAAWrL,EAAIe,GAAK4Z,QAAK,IAAWC,EAAE5a,EAAIe,EAAI4Z,IAAKC,EAAE5a,EAAIe,EAAI4Z,GAAK,KAAMA,UAElMpqB,KAAK27F,aACFnyE,GAGThZ,EAAE4V,UAAUw1E,cAAgB,WA6C1B,IAAIprF,EAAIxQ,KACJyP,EAAIzP,KAAKX,MACT2J,EAAIhJ,KAAKsJ,QACTsgB,EAAI5gB,EAAEu0F,cACN5zE,EAAI4C,EAAEvjB,GACNohB,EAAI,EACJvoB,EAAI,KAAOmH,EAAEw0F,iBAAmB,GACpC,QAAKvsF,EAAEjI,KACP,IAAMnH,IAAMA,EAAI,YACTmH,EAAEgyF,cACFhyF,EAAE+xF,eACF/xF,EAAEiyF,WAvDT,SAASxqF,EAAE+Y,GACT,SAASa,EAAEV,EAAGU,EAAGvC,GACf,SAAS2B,IACPG,GAAKna,EAAEguF,cAAgB9zE,IAAMnZ,EAAEkrF,gBAAkBlyF,WAAWiH,EAAG5O,IAGjE,OAAK8nB,GAAM,yBAAyBrL,KAAKqL,IACzCH,IAAMoB,aAAapa,EAAEkrF,iBAAkBjsF,EAAEguF,YAAc9zE,GACvD6C,EAAE,CACAld,IAAKqa,EACL4wE,SAAUzyE,GAAK,OACfhO,QAAS,SAAUrJ,GACjBhB,GAAKA,EAAEvP,QAAUmqB,EAAE5Z,GACnBgZ,KAEFrZ,MAAO,SAAUK,EAAGD,GAElB,OADA,IAAM4Z,GAAKX,IACJzgB,EAAEoH,OAASpH,EAAEoH,MAAMI,EAAGC,OAG1B,IAd6CkZ,GAAK3gB,EAAEoH,OAASpH,EAAEoH,MAAM,gBAAgB,GAiB9Fia,EAAEV,EAAEqxE,QAAQ,SAAUvqF,GACpBhB,EAAE/F,OAAO,CACPxG,KAAM,CACJ85F,IAAKvsF,OAGR,SAAW4Z,EAAEV,EAAEoxE,SAAS,SAAUtqF,GACnChB,EAAE/F,OAAO,CACPxG,KAAM,CACJuhB,KAAMhU,SAGN4Z,EAAEV,EAAEsxE,YAAY,SAAUxqF,GAC9BhB,EAAE/F,OAAO,CACPxG,KAAM,CACJq4F,QAAS9qF,QAkBjBA,EAAE,GACKQ,EAAEjI,KAGXwH,EAAE4V,UAAU21E,uBAAyB,WAkBnC,IAAIvrF,EAAIxQ,KACJyP,EAAIzP,KAAKsJ,QACTqgB,EAAIla,EAAEiuF,qBACN9zE,EAAI5pB,KAAKX,MACTgrB,EAAIN,KAAK1W,IAAI,KAAO5D,EAAE+tF,iBAAmB,GAAI,KAC7CpzE,EAAI,WACN,GAAI3a,EAAEkuF,uBAAwB,OAAOluF,EAAEkuF,uBACvC,IAAIltF,GAAK,6BAA6B2pB,OAAO3qB,EAAEqtF,aAAe,IAAM,OAASrtF,EAAEwtF,UAAY,GAAK,GAC5FzsF,EAAI,6BAA6B4pB,OAAOrP,EAAEtb,EAAEstF,WAAY,KAAO,KAEnE,OADA9xE,EAAExb,EAAEytF,UAAY1sF,GAAKf,EAAEytF,OAAS,GACzB,GAAKzsF,EAAI,IAAIsb,OAAOvb,IAkB7B,OAfAmZ,WAAala,EAAEiuF,qBA9Bf,SAASjtF,EAAE+Y,GACT,IAAII,EAAI,CAAC,gDAAiDD,EAAG,SAAUS,IAAK,kHAAoH3a,EAAEmuF,cAAcz1E,KAAK,KACrNqE,EAAE,CACAld,IAAKsa,EACL2wE,SAAU,OACVzgF,QAAS,SAAU8P,GACjBJ,EAAEI,GACFna,EAAE8tF,gBAAkB/sF,EAAEkrF,gBAAkBlyF,YAAW,WACjDiH,EAAE+Y,KACDa,KAELja,MAAO,SAAUK,EAAGD,GAClB,OAAOf,EAAEW,OAASX,EAAEW,MAAMI,EAAGC,MAkBEA,EAAE,SAAUA,GAE/C,KADAA,EAAIA,EAAE2mB,SACI,IAAM3mB,EAAE1P,OAAQ,OAAO,EACjC,IAAIyoB,EAAI/Y,EAAE6tC,QAAO,SAAU7tC,EAAGD,GAC5B,OAAOuZ,KAAK1W,IAAI5C,EAAGD,EAAEzP,UACpB,GACH0P,EAAEzK,SAAQ,SAAUyK,GAClB,IAAK,IAAID,EAAI,EAAGA,EAAIgZ,EAAGhZ,SAAK,IAAuBC,EAAED,KAAOC,EAAED,GAAK,SAErEoZ,GAAKA,EAAE1pB,OAAS0pB,EAAElgB,OAAO,CACvBxG,KAAM,CACJq4F,QAAS9qF,MAEPD,EAAE+qF,QAAU9qF,EAAGD,EAAEmrF,kBAElB,GAGTnrF,EAAE4V,UAAUU,KAAO,SAAUrW,EAAGD,GAE9B,MADA,iBAAoBC,IAAMA,EAAIA,EAAE1L,QAAQ,aAAc,IAAKyL,GAAK,aAAa8N,KAAK7N,KAAOA,EAAIA,EAAE1L,QAAQ,MAAO,KAAM/E,KAAKy7F,eAAiBhrF,EAAIA,EAAE1L,QAAQ/E,KAAKy7F,aAAc,WACpKhrF,GAGTD,EAAE4V,UAAUu2E,WAAa,WACvB,IAAK,IAAIlsF,EAAIzQ,KAAKu7F,SAAW,GAAI/qF,EAAIC,EAAE1P,OAAQyP,KAAMxQ,KAAK69F,YAAYptF,EAAED,GAAIA,IAG9EA,EAAE4V,UAAUy3E,YAAc,SAAUptF,EAAGD,GACrC,IAAIf,EAAIzP,KAAKs7F,WACT3xE,EAAI3pB,KAAKu7F,QACT3xE,EAAI5pB,KAAKw7F,gBACThyE,GAAK,IAAMxpB,KAAKq8F,WAAWC,SAASz9E,QAAQrO,GAC5C4Z,EAAI,GACJN,EAAI9pB,KAAKyF,aACTukB,GAAKhqB,KAAKsJ,QAAQg0F,aAAe,IAAI9sF,GACzCsZ,EAAIN,IAAMM,GAAKA,EAAEjpB,OAAS,aAAe+qB,EAAE9B,EAAEjpB,OAAO,GAAGuE,MAAQ,WAAa4kB,GAC5E,IAEI/Y,EACAH,EAHAgX,EAAImD,EAAExa,EAAEpL,MACRokB,EAAIhZ,EAAE1P,OAIV,IAAK0O,EAAEe,KAAOf,EAAEe,GAAK,IAAKiZ,KAAM,CAC9B,IAAI2B,EAAIhB,EAAEX,IAAMhZ,EAAEgZ,GACd7W,EAAI5S,KAAK8mB,KAAKsE,GACdzY,EAAI3S,KAAK8mB,KAAKsE,GAAG,GACjBb,EAAI6U,WAAWzsB,QACnB,IAAuBlD,EAAEe,GAAGiZ,KAAOha,EAAEe,GAAGiZ,GAAK7W,GAC7CkX,GAAK,IAAML,GAAKG,IAAM9B,EAAIrX,EAAEgZ,GAAK,GAAK7W,GAAKD,IAAM4X,GAAK9Z,EAAEgZ,GAAKc,EAAG,QAAUA,GAAK,UAAYP,EAAIvZ,EAAEqtF,YAAa,EAAKrtF,EAAEstF,WAAY,OAAI,IAAuBttF,EAAEgZ,EAAI,KAAO3Y,EAAIyZ,EAAI9Z,EAAEgZ,EAAI,MAAQ7W,GAAKA,EAAE7R,SAAWkQ,EAAIjR,KAAKg+F,UAAU5yE,IAAK5B,GAAKkC,EAAEza,IAAM,UAAY+Y,GAAKI,EAAEX,GAAK2B,EAAG3a,EAAEgZ,GAAKxY,EAAGR,EAAEqtF,YAAa,OAAI,IAAuBrtF,EAAEgZ,EAAI,MAAO2B,EAAIna,EAAIR,EAAEgZ,EAAI,MAAU3Y,QAAK,IAAuBA,IAAM9Q,KAAKi+F,mBAAqBj+F,KAAK0kD,WAAa1kD,KAAKi+F,kBAAmBx0E,EAAIhZ,EAAE1P,OAAQf,KAAKi+F,kBAAoBj+F,KAAKi9C,YAAYj9C,KAAK0kD,YAAY02C,aAAe3qF,EAAEytF,UAAW,GAAKptF,EAAIsa,KAAO3a,EAAEgZ,GAAK,KAAO7W,EAAI,KAAOA,EAAG,IAAM6W,IAAMhZ,EAAEqtF,YAAcrtF,EAAEstF,aAAettF,EAAE0tF,OAAQ,KAI1pB,GADA30E,GAAK/Y,EAAE0tF,QAAUx0E,EAAEnZ,GAAKf,EAAEe,IACtBgZ,GAAK1Y,GAAK9Q,KAAKsJ,QAAQqb,KAAM,IAAKnU,EAAI,EAAGA,EAAImZ,EAAE5oB,OAAQyP,IAAKmZ,EAAEnZ,GAAGkU,UAAWkF,GAAKD,EAAEnZ,GAAGytC,QAAQt0B,EAAEnZ,GAAGw4C,QAGzGx4C,EAAE4V,UAAU43E,UAAY,SAAUvtF,GAChC,IACIkZ,EAEAC,EAHApZ,EAAIxQ,KAAKsJ,QAAQ00F,UAEjBh1F,EAAIhJ,KAAKsJ,QAAQo7C,YAAc1kD,KAAK0kD,WAExC,GAAIl0C,EAAG,IAAI6Z,EAAI7Z,EAAEC,QAAQ,GAAI,iBAAoBA,EAAG,CAClD,GAAIzH,GAAIwH,EAAIxQ,KAAKi9C,YAAYj0C,MAAQwH,EAAIxQ,KAAKi9C,YAAY,gBAAiBrzB,EAAInZ,EAAEwP,MAAMzP,EAAE2yC,UAAY94B,EAAI7Z,EAAE2qF,OAAOvxE,SAAS,IAAKD,KAAK3pB,KAAKi9C,YAAa,GAAIzsC,EAAIxQ,KAAKi9C,YAAYtzB,GAAIC,EAAInZ,EAAEwP,MAAMzP,EAAE2yC,OAAQ,CACxMnjD,KAAK0kD,WAAa/6B,EAClB3pB,KAAKi+F,kBAAoBztF,EAAE4qF,YAC3B/wE,EAAI7Z,EAAE2qF,OAAOvxE,GACb,MAEFA,IAAMnZ,EAAEwP,MAAM,wBAA0BxP,EAAIA,EAAE1L,QAAQ,qCAAsC,WAAWA,QAAQ,wBAAyB,MAAMA,QAAQ,wBAAyB,aAAiC,iBAAnB6kB,EAAIK,KAAKxY,MAAMhB,KAA6B,OAASmZ,GAAKA,EAAEs6B,QAAU75B,EAAIT,EAAEs6B,UAAY,IAAMt6B,EAAEm6B,oBAAsBr4B,EAAE9B,KAAOS,EAAIT,EAAI,IAAM,IAAIK,KAAKL,GAAGm6B,sBAExV,OAAO15B,GAGT7Z,EAAE4V,UAAUg4E,QAAU,WACpB,GAAIp+F,KAAKu7F,QAAS,OAAOv7F,KAAKk7F,cAAcl7F,KAAKu7F,SAAS7+E,MAAM,IAGlElM,EAAE4V,UAAUw2E,OAAS,WACnB,GAAI58F,KAAKsJ,QAAQszF,OAAQ,OAAO58F,KAAKsJ,QAAQszF,OAAOjgF,KAAK3c,KAAMA,KAAKu7F,UAGtE/qF,EAAE4V,UAAUqO,SAAW,WACrB,IAGIzrB,EACA4gB,EACAS,EALA5Z,EAAIzQ,KAAKu7F,QACT/qF,EAAIxQ,KAAKsJ,QACTqgB,EAAI,GAKR,GAAInZ,EAAEikB,UAAYjkB,EAAEwrF,cAAe,CACjC,GAAIh8F,KAAKw7F,gBAAiB,IAAK5xE,EAAI,EAAGA,EAAInZ,EAAE1P,OAAQ6oB,IAAK,CACvD,IAAIQ,EAAI3Z,EAAEmZ,GACVqB,EAAEb,EAAE/kB,QAAU+kB,EAAE/kB,KAAO0lB,EAAEX,EAAEm0B,QAAS,IAAIrgC,YAE1CkM,EAAI,GACJ,IAAIN,EAAIrZ,EAAE1P,OACNipB,EAAIhqB,KAAKq8F,WAAWG,eACxB5yE,EAAI,GACJ,IAAI9B,EAAI,GAER,IAAKuC,EAAI,EAAGA,EAAIP,EAAGO,GAAK,EAAGT,EAAEtiB,MAAK,GAElC,IAAKwiB,EAAI,EAAGA,EAAIE,EAAEjpB,OAAQ+oB,GAAK,EAAG,CAChC,IAAIL,EAAIO,EAAEF,GAAGu0E,6BAEb,IAAKh0E,EAAI,EAAGA,EAAIZ,EAAE1oB,OAAQspB,GAAK,EAAGT,EAAEH,EAAEY,KAAM,EAG9C,IAAKA,EAAI,EAAGA,EAAIT,EAAE7oB,OAAQspB,GAAK,EAAGT,EAAES,IAAMvC,EAAExgB,KAAK+iB,GAEjD,IAAKT,EAAI,EAAGA,EAAI5pB,KAAKq8F,WAAWG,eAAez7F,OAAQ6oB,KAAKI,EAAIhqB,KAAKq8F,WAAWG,eAAe5yE,IAAM00E,gBAAgBx2E,IAAM6B,EAAEriB,KAAK0iB,GAElI,KAAO,EAAIlC,EAAE/mB,QAAS,CAMpB,KALAipB,EAAI,IAAI0C,GACNyvE,gBAAgB,EAAG,MAEpB,KADDvyE,EAAI9B,EAAEjJ,QAAQ,KACFiJ,EAAE/C,OAAO6E,EAAG,GAEnBA,EAAI,EAAGA,EAAI5pB,KAAKq8F,WAAWvyF,OAAQ8f,IAAKI,EAAEmyE,qBAAgB,EAAQn8F,KAAKq8F,WAAWI,oBAAoB7yE,IAE3GI,EAAEs0E,gBAAgBx2E,IAAM6B,EAAEriB,KAAK0iB,GAIjC,GADA,EAAIL,EAAE5oB,QAAU,EAAI4oB,EAAE,GAAG40E,QAAQx9F,aAA+C,KAApC+mB,EAAIrX,EAAEkZ,EAAE,GAAG40E,QAAQ,GAAGn6E,gBAA2C0D,EAAEg2E,WAAa90F,EAAI,WAAa8e,EAAEi2E,YAAc/0F,EAAI,aAC7J,aAAeA,EAAG,IAAK4gB,EAAI,EAAGA,EAAID,EAAE5oB,OAAQ6oB,IAAK,IAAKI,EAAIL,EAAEC,GAAI9B,EAAI,EAAGA,EAAIkC,EAAEu0E,QAAQx9F,OAAQ+mB,IAAK,MAAQkC,EAAEu0E,QAAQz2E,GAAG02E,aAAex0E,EAAEu0E,QAAQz2E,GAAG02E,WAAa,QAEpK,IAAK50E,EAAI,EAAGA,EAAID,EAAE5oB,OAAQ6oB,IAAK,CAI7B,IAHAI,EAAIL,EAAEC,GACN9B,EAAI,GAECuC,EAAI,EAAGA,EAAI5Z,EAAE,GAAG1P,OAAQspB,IAAKvC,EAAEuC,GAAKL,EAAEy0E,KAAKhuF,EAAG4Z,GAEnDD,EAAER,GAAK,CACL1mB,KAAM4kB,GAERkC,EAAE3kB,OAAS+kB,EAAER,GAAGvkB,KAAO2kB,EAAE3kB,MACzB,aAAe2D,IAAMohB,EAAER,GAAGg/D,eAAiB,GAG7Cn4E,EAAI,CACFvQ,OAAQkqB,GAEVphB,IAAMyH,EAAE5P,MAAQ,CACduE,KAAM4D,GACL,aAAeA,IAAMyH,EAAE5P,MAAMs7D,aAAc,IAC9C3rD,EAAEikB,UAAYjkB,EAAEikB,SAAShkB,GACzBD,EAAEwrF,eAAiBxrF,EAAEwrF,cAAcvrF,KAIvCD,EAAE4V,UAAU1c,OAAS,SAAU+G,EAAGD,GAChC,IAAImZ,EAAI3pB,KAAKX,MACT2J,EAAI2gB,EAAErgB,QACVmH,IAAMA,EAAEurF,cAAgB,SAAUvrF,GAChCA,IAAMA,EAAE5P,OAAS8oB,EAAE9oB,MAAM,IAAM4P,EAAE5P,MAAMuE,OAASukB,EAAE9oB,MAAM,GAAGyI,QAAQlE,aAAeqL,EAAE5P,MAAO8oB,EAAEjgB,OAAO+G,EAAGD,GAAG,KACzG+b,GAAE,EAAIvjB,EAAE9F,KAAMuN,GAAIzH,EAAE9F,MAAQ8F,EAAE9F,KAAKw6F,uBAAyBjtF,EAAE8qF,gBAAkBvyF,EAAE9F,KAAKq4F,QAASv7F,KAAKrB,KAAKqK,EAAE9F,QAG1GsN,EAliBD,GAqiBRmZ,EAAEnZ,EAAG,QAAQ,SAAUA,GACrB,IAAIC,EAAIzQ,KACJ2pB,EAAInZ,EAAEooB,KAAK,GACXnpB,EAAI4b,IAAInoB,KACR8F,EAAIwH,EAAEooB,KAAK,IAAM,IACpBnpB,GAAKzG,GAAKA,EAAE9F,QAAUuN,EAAEiuF,aAAejuF,EAAEiuF,YAAa,EAAIjvF,EAAI8c,EAAE9c,EAAGzG,EAAE9F,MAAOuN,EAAEvN,KAAO,IAAI4pB,EAAEvB,EAAE9b,EAAG,CAC/FusF,cAAe,SAAUxrF,GACvB,IAAIoZ,EACJ,GAAIjD,OAAOgG,eAAehQ,KAAK3T,EAAG,UAAW,GAAI,iBAAoBA,EAAE9I,OAAQ,IAAK0pB,EAAIG,KAAK1W,IAAIrK,EAAE9I,OAAOa,OAAQyP,GAAKA,EAAEtQ,OAASsQ,EAAEtQ,OAAOa,OAAS,GAAI6oB,KAAM,CAC5J,IAAIna,EAAIzG,EAAE9I,OAAO0pB,IAAM,GACvB5gB,EAAE9I,OAAO0pB,GAAK2C,EAAE9c,EAAGe,GAAKA,EAAEtQ,OAASsQ,EAAEtQ,OAAO0pB,GAAK,gBACrC5gB,EAAE9I,OAChB8I,EAAIujB,EAAE/b,EAAGxH,GACTyH,EAAE9R,KAAKqK,EAAG2gB,MAEV3gB,EAAGyH,GAAID,EAAEvH,qBAGf,IAAIyjB,EAAI,WACN,SAASlc,IACPxQ,KAAKu+F,QAAU,GACfv+F,KAAK2+F,cAAe,EA6DtB,OA1DAnuF,EAAE4V,UAAUk4E,gBAAkB,SAAU7tF,GACtC,IAAID,GAAI,EAOR,OANAxQ,KAAKu+F,QAAQv4F,SAAQ,SAAUwK,QAC7B,IAAuBA,EAAE4T,cAAgB5T,EAAE4T,YAAc3T,EAAE8tC,YAE7Dv+C,KAAKu+F,QAAQv4F,SAAQ,SAAUyK,QAC7B,IAAuBA,EAAE2T,cAAgB5T,GAAI,MAExCA,GAGTA,EAAE4V,UAAUq4E,KAAO,SAAUhuF,EAAGD,GAC9B,IAAImZ,EAAI3pB,KAAK2+F,aACT31F,EAAI2gB,EAAI,GAAK,GAMjB,GALA3pB,KAAKu+F,QAAQv4F,SAAQ,SAAU4jB,GAC7B,IAAIna,EAAIgB,EAAEmZ,EAAExF,aAAa5T,GACzBmZ,EAAI3gB,EAAE1B,KAAKmI,GAAK,EAAIma,EAAE40E,WAAW3/E,QAAQ,KAAO+N,EAAExG,UAAUotD,kBAAkBxqE,EAAGyG,EAAGma,EAAE40E,YAAcx1F,EAAE4gB,EAAE40E,YAAc/uF,UAGpH,IAAuBzP,KAAKqF,MAAQ,GAAKrF,KAAKu+F,QAAQx9F,OAAQ,CAChE,IAAI6oB,EAAI5pB,KAAKq+F,6BACb,GAAKz0E,EAAE7oB,SAAW6oB,EAAE20B,QAAS30B,EAAEjF,MAAK,SAAUlU,EAAGD,GAC/C,OAAOC,EAAID,KACTxQ,KAAKqF,KAAOoL,EAAEmZ,EAAE20B,SAASl5C,MAG/B,OAAO2D,GAGTwH,EAAE4V,UAAU+1E,gBAAkB,SAAU1rF,EAAGD,GACzCxQ,KAAKu+F,QAAQj3F,KAAK,CAChB8c,YAAa3T,EACb+tF,WAAYhuF,IAEd,MAAQA,GAAK,MAAQA,QAAK,IAAuBA,IAAMxQ,KAAK2+F,cAAe,IAG7EnuF,EAAE4V,UAAUi4E,2BAA6B,WACvC,IACI7tF,EADAC,EAAI,GAGR,IAAKD,EAAI,EAAGA,EAAIxQ,KAAKu+F,QAAQx9F,OAAQyP,GAAK,EAAG,CAC3C,IAAImZ,EAAI3pB,KAAKu+F,QAAQ/tF,QACrB,IAAuBmZ,EAAEvF,aAAe3T,EAAEnJ,KAAKqiB,EAAEvF,aAGnD,OAAO3T,GAGTD,EAAE4V,UAAUg2E,UAAY,SAAU3rF,GAChC,IAAID,EAEJ,IAAKA,EAAI,EAAGA,EAAIxQ,KAAKu+F,QAAQx9F,OAAQyP,GAAK,EAExC,GADQxQ,KAAKu+F,QAAQ/tF,GACfguF,aAAe/tF,EAAG,OAAO,GAI5BD,EAhED,GAoER,OAAOsc,KAEThc,EAAEN,EAAG,8BAA+B,CAACA,EAAE,mBAAoBA,EAAE,yBAA0BA,EAAE,wBAAwB,SAAUA,EAAGmZ,EAAG7Y,GAC/HN,EAAEoJ,KAAO+P,EAAE/P,KACXpJ,EAAEtN,KAAO4N,EAAE5N,KACXsN,EAAEqqF,QAAUlxE,EAAEkxE,QACdrqF,EAAEklC,KAAO/rB,EAAE+rB,KACXllC,EAAE5R,KAAOkS,EACTN,EAAEouF,cAAgBj1E,MAtvBUrd,EAAOid,SAAW/Y,EAAW,QAAIA,EAAGlE,EAAOid,QAAU/Y,IAAkD,EAAkC,CAAC,cAIvK,KAJsL,EAAF,SAAYM,GAG/L,OAFAN,EAAEM,GACFN,EAAE3R,WAAaiS,EACRN,GACR,4CCdH,QASWA,IAMR,SAAUA,GACX,SAAS3O,EAAE2O,EAAG+Z,EAAGT,EAAGsB,GAClB5a,EAAEmc,eAAepC,KAAO/Z,EAAE+Z,GAAKa,EAAE1J,MAAM,KAAMoI,GAAI,mBAAsB6D,aAAeluB,OAAOyb,cAAc,IAAIyS,YAAY,yBAA0B,CACnJD,OAAQ,CACNznB,KAAMskB,EACNje,OAAQkE,EAAE+Z,QAMhB1oB,EADA2O,EAAIA,EAAIA,EAAE0pF,SAAW,GAChB,4BAA6B,CAAC1pF,EAAE,uBAAwBA,EAAE,mBAAoBA,EAAE,0BAA2BA,EAAE,qBAAsBA,EAAE,6BAA6B,SAAUA,EAAG+Z,EAAGT,EAAGsB,EAAGpB,GAC3L,IAAInoB,EAAImoB,EAAE1e,OACV0e,EAAIoB,EAAEozB,SACN,IAAItzB,EAAIE,EAAEo1B,WACN3zB,EAAIzB,EAAE7hB,OACN0hB,EAAIG,EAAE4yB,UACN7yB,EAAIC,EAAEi1B,MACNt+C,EAAIqpB,EAAEy1B,KACNn1B,EAAIN,EAAEg0B,QACNr0B,EAAIK,EAAEg1B,SA4QV,OA3QAvzB,EAAE/C,EAAE66B,eAAeC,KAAM,CACvBi6C,eAAgB,SAGlB/0E,EAAI,WACF,SAAStZ,EAAEC,EAAGmZ,GACZ5pB,KAAK6xE,WAAQ,EACb7xE,KAAK+oB,KAAO,GACZ/oB,KAAK8+F,YAAc,GACnB9+F,KAAKuhE,SAAU,EACfvhE,KAAK++F,MAAQ,EACb/+F,KAAKsJ,aAAU,EACfsgB,EAAIuB,EAAE1a,EAAEnH,QAAQlK,WAAaqR,EAAEnH,QAAQlK,UAAU4/F,cAAexuF,EAAEyuF,0BAA2BxuF,EAAEnH,QAAQq9C,YAAcl2C,EAAEnH,QAAQq9C,WAAWu4C,YAAat1E,GACvJ5pB,KAAKX,MAAQoR,EACbzQ,KAAKsJ,QAAUsgB,GAAK,GAkOtB,OA/NApZ,EAAE4V,UAAU+4E,iBAAmB,SAAU1uF,GACvCzQ,KAAKo/F,QAAQ3uF,GACbzQ,KAAKq/F,WACLr/F,KAAKuhE,SAAU,GAGjB/wD,EAAE4V,UAAUg5E,QAAU,SAAU3uF,GAC9BzQ,KAAK+oB,KAAOtY,GAGdD,EAAE4V,UAAUi5E,SAAW,WACrBr/F,KAAK++F,MAAQ/+F,KAAK+oB,KAAKhoB,QAAUf,KAAK+oB,KAAKhoB,OAAS,GAGtDyP,EAAE4V,UAAUk5E,SAAW,WACrB,OAAOt/F,KAAK++F,OAGdvuF,EAAE4V,UAAUm5E,cAAgB,SAAU9uF,GACpC,IAAID,EAAIxQ,KAAKX,MACT2J,EAAIhJ,KAAKsJ,QACT8gB,EAAI5Z,EAAElH,QAAQs7C,KACdp7B,EAAIznB,EAAEiH,EAAEsC,OAAQtC,EAAEw2F,aAAe,eAAiB,kBAMtD,OALAp1E,EAAIA,GAAKroB,EAAEqoB,EAAEq1E,YAAar1E,EAAEy0E,gBAC5BpuF,EAAIzH,EAAEnE,WAAamE,EAAEnE,UAAU4L,IAAM5O,EAAE2nB,EAAG,CACxCu1E,MAAOtuF,EAAEivF,cACRlvF,IAAM,IACRua,EAAEta,KAAOA,EAAE1P,QAAU,OAAc0P,IAAMib,EAAEtB,KAAO3Z,EAAIzH,EAAEw2F,aAAep1E,EAAI,KAAYA,GACjF3Z,GAGTD,EAAE4V,UAAUrmB,OAAS,WACnBC,KAAKuhE,SAAWvhE,KAAKygE,SACrBzgE,KAAK6xE,OAAS7xE,KAAK6xE,MAAM3tE,QACzBlE,KAAKuhE,SAAU,GAGjB/wD,EAAE4V,UAAUq6C,OAAS,WACnB,IAAIjwD,EAAIxQ,KAAKX,MACTuqB,EAAI5pB,KAAKsJ,SACZtJ,KAAK6xE,OAASjoD,IAAM5pB,KAAK6xE,MAAQrhE,EAAEvJ,SAASuiB,EAAE,qBAAqBhnB,SAAS,gDAAgD0E,KAAK,CAChIy7C,OAAQ/4B,EAAE+4B,SACTv7C,OACHwiB,EAAE41E,aAAex/F,KAAK2/F,wBAA0B3/F,KAAK4/F,qBACrD5/F,KAAK6/F,yBAGPrvF,EAAE4V,UAAUu5E,sBAAwB,WAClC3/F,KAAK8/F,sBACL9/F,KAAK+/F,wBACL//F,KAAKggG,qBACLhgG,KAAKigG,uBAGPzvF,EAAE4V,UAAUw5E,mBAAqB,WAC/B,IAAIpvF,EAAIxQ,KAAKX,MACTuqB,EAAI5pB,KAAK+oB,KACT/f,EAAIhJ,KAAKsJ,QAAQ42F,cACrBlgG,KAAKigG,sBACL,IAAI71E,EAAIpqB,KAAK6xE,MAAQ7xE,KAAK6xE,MAAMrqE,UAAUrE,MAAQ6F,EAClD4gB,EAAIA,EAAEA,EAAE7oB,OAAS,IAChByP,EAAEwuF,eAAiB,EAAIh/F,KAAK++F,MAAQvuF,EAAEwuF,cAAgBh/F,KAAKmgG,aAAav2E,EAAGQ,EAAGphB,GAAKwH,EAAEwuF,gBAAkB,EAAIh/F,KAAK++F,MAAQ/+F,KAAKogG,qBAAuBpgG,KAAK8/F,wBAG5JtvF,EAAE4V,UAAUy5E,sBAAwB,SAAUrvF,GAC5C,GAAIxQ,KAAK6xE,MAAO,CACd,IAAIphE,EAAIzQ,KAAKsJ,QACTN,EAAIyH,EAAE4vF,YACNj2E,EAAI3Z,EAAE+Q,SACNgI,EAAI,UAAY/Y,EAAEm3E,YAAc,eAAiBn3E,EAAEm3E,gBAAa,EAAS,oBACzEv9D,EAAIrqB,KAAK6xE,MAAMrqE,UACnBiJ,EAAI,GAAKzH,EAAEyV,SAAW,GAAKhO,EAAEyvF,cAC7B91E,EAAEjnB,MAAQknB,EAAElnB,MAAQsN,EACpB2Z,EAAE5qB,OAAS6qB,EAAE7qB,OAASiR,EACtB4Z,EAAIc,EAAEf,GACN5Z,IAAM6Z,EAAExoB,GAAK2O,GACbxQ,KAAKsJ,QAAQ60E,MAAQ9zD,EAAExoB,GAAKuoB,EAAEjnB,OAC9BknB,EAAEtoB,EAAIA,EAAEsoB,EAAEtoB,EAAG/B,KAAKsgG,QAAS,GAC3BtgG,KAAK6xE,MAAM3tE,MAAMmmB,GAAG,EAAIb,KAI5BhZ,EAAE4V,UAAU+5E,aAAe,SAAU3vF,EAAGoZ,EAAG5gB,GACzC,IAAIyH,EAAIzQ,KACJwpB,EAAIxpB,KAAKX,MACTgrB,EAAI5Z,EAAEnH,QACNqJ,EAAIwY,EAAEd,EAAEg2E,aAQZ,OAPAz2E,EAAIJ,EAAEviB,SAAS4wD,OAAOpnD,EAAE8uF,cAAc/uF,GAAIoZ,EAAG5gB,GAAG,SAAU4gB,GACxD,IACIJ,EADAxgB,EAAIqhB,EAAEvqB,QAAUuqB,EAAEvqB,OAAOwC,MAE7B0G,IAAMwgB,EAAIxgB,EAAE2T,KAAKlM,EAAGmZ,EAAGpZ,KACvB,IAAOgZ,IAAMI,EAAE22E,SAAWl2E,EAAEm1E,aAAehvF,EAAEuuF,MAAQtuF,EAAEsuF,MAAQ,EAAG9zE,EAAExa,EAAG,KAAMmZ,MAC5EjX,GAAGnQ,SAAS,iCAAiC4E,IAAIqJ,EAAEohE,OACtDroD,EAAE04B,YAAct4B,EAAE1iB,KAAKmjB,EAAE/qB,OAClBsqB,GAGTpZ,EAAE4V,UAAUo6E,gBAAkB,SAAUhwF,EAAGoZ,GACzC,IAAInZ,EAAIzQ,KAAKX,MACT+qB,EAAIpqB,KAAKsJ,QAAQm3F,UAGrB,OAFAjwF,EAAIC,EAAExJ,SAAS2Y,MAAMwK,EAAElpB,KAAMsP,EAAGoZ,OAAG,OAAQ,OAAQ,GAAQ,GAAIpnB,SAAS,oCAAoC4E,IAAIpH,KAAK6xE,OACrHphE,EAAEyxC,YAAc1xC,EAAEhQ,IAAI4pB,EAAE9qB,OACjBkR,GAGTA,EAAE4V,UAAU1c,OAAS,SAAU8G,GAC7B2a,GAAE,EAAInrB,KAAKsJ,QAASkH,GACpBxQ,KAAKkG,UACLlG,KAAKuhE,SAAU,GAGjB/wD,EAAE4V,UAAUg6E,mBAAqB,WAC/B,IAAI5vF,EAAIxQ,KAAKX,MACTuqB,EAAI5pB,KAAK+oB,KAAK/oB,KAAK++F,MAAQ,GAC/BvuF,EAAEwuF,eAAiBxuF,EAAEwuF,cAAc93F,KAAK,CACtChG,KAAMlB,KAAKu/F,cAAc31E,MAI7BpZ,EAAE4V,UAAUlgB,QAAU,WACpBlG,KAAK8/F,sBACL9/F,KAAKigG,qBAAoB,GACzBjgG,KAAK6xE,OAAS7xE,KAAK6xE,MAAM3rE,UACzBlG,KAAK6xE,WAAQ,GAGfrhE,EAAE4V,UAAU65E,oBAAsB,SAAUzvF,GAC1C,IAAIC,EAAIzQ,KAAK8+F,YACb5zE,EAAEza,GAAG,SAAUmZ,EAAGQ,IACZ5Z,GAAMC,EAAE2Z,GAAGrC,WAAS6B,EAAInZ,EAAE2Z,IAAMytC,QAAUjuC,EAAEiuC,OAAO3xD,UAAW0jB,EAAE62E,WAAa72E,EAAE62E,UAAUv6F,iBAAkB0jB,EAAEiuC,cAAejuC,EAAE62E,iBAAkBhwF,EAAE2Z,OAExJ5Z,IAAMxQ,KAAK8+F,YAAc,KAG3BtuF,EAAE4V,UAAU05E,oBAAsB,WAChC9/F,KAAKX,MAAM2/F,gBAAkBh/F,KAAKX,MAAM2/F,cAAc94F,UAAWlG,KAAKX,MAAM2/F,mBAAgB,IAG9FxuF,EAAE4V,UAAU25E,sBAAwB,WAClC70E,EAAElrB,KAAK8+F,aAAa,SAAUtuF,GAC5BA,EAAEuX,SAAU,MAIhBvX,EAAE4V,UAAU45E,mBAAqB,WAC/B,IAUI/uF,EAVAT,EAAIxQ,KACJ4pB,EAAIpZ,EAAEsuF,YACN91F,EAAIwH,EAAElH,QAAQ42F,cACd91E,EAAI5Z,EAAEuY,KACNS,EAAIhZ,EAAElH,QAAQ60E,IACdxrE,EAAI6W,GAAK,EAAI,EACbM,EAAI,SAAUtZ,EAAGC,GACnB,OAAOkC,EAAInC,EAAEhJ,UAAUrE,MAAQwP,EAAIlC,GAEjCK,EAAIN,EAAEqhE,MAAQ/nD,EAAEtZ,EAAEqhE,MAAO7oE,GAAKA,EAGlCohB,EAAEpkB,SAAQ,SAAUyK,EAAG4Z,GAGrB,GAFAA,EAAIA,IAAMD,EAAErpB,OAAS,EAEjB6oB,EAAEnZ,EAAEsuF,OAAQ,CAEd,IAAI/0E,GADJ/Y,EAAI2Y,EAAEnZ,EAAEsuF,QACElnC,OACV,GAAI5mD,EAAEwvF,WAAap2E,EAAGpZ,EAAEwvF,WAAap2E,IAAMpZ,EAAEwvF,UAAUv6F,iBAAkB+K,EAAEwvF,eAAgB,CAIzF,GAHA3vF,GAAK6B,EAAI3J,EACTiI,EAAEwvF,UAAYjwF,EAAEgwF,gBAAgB1vF,EAAG9H,GAE/BwgB,EAAG,CACL,IAAI4B,EAAIna,EAAEwvF,UACVr1E,EAAEomC,UAAU1gD,EAAIsa,EAAE5jB,UAAUrE,MAAO6F,GAGrC8H,GAAKgZ,EAAE7Y,EAAEwvF,UAAWz3F,GAEtB4gB,EAAEnZ,EAAEsuF,OAAOh3E,SAAU,OAChBiC,EAAIxZ,EAAE2vF,aAAa1vF,EAAGK,EAAG9H,GAAIwgB,GAAKQ,EAAEwnC,UAAU1gD,EAAIkZ,EAAExiB,UAAUrE,MAAO6F,GAAI8H,GAAKgZ,EAAEE,EAAGhhB,GAAIqhB,IAAMe,EAAI5a,EAAEgwF,gBAAgB1vF,EAAG9H,GAAIwgB,GAAK4B,EAAEomC,UAAU1gD,EAAIsa,EAAE5jB,UAAUrE,MAAO6F,GAAI8H,GAAKgZ,EAAEsB,EAAGpiB,IAAK4gB,EAAEnZ,EAAEsuF,OAAS,CACvMlnC,OAAQ7tC,EACRy2E,UAAWr1E,EACXrD,SAAS,GAGXiC,GAAKA,EAAE8tC,SAASztC,EAAI,EAAI,OAI5B7Z,EAAEyuF,0BAA4B,CAC5BoB,YAAa,CACX34F,KAAM,OACNlI,OAAQ,GACRif,QAAS,EACT,eAAgB,EAChBkkC,OAAQ,EACRn/C,OAAQ,CACNE,OAAQ,CACNgE,KAAM,SAGVpI,MAAO,CACLqE,MAAO,YAGXu8F,cAAe,EACfxgB,UAAU,EACVp0E,YAAQ,EACRs8E,WAAY,UACZzJ,KAAK,EACL38D,SAAU,CACRtd,MAAO,OACPqiD,cAAe,MACf1kD,EAAG,EACHE,OAAG,GAEL0+F,UAAW,CACTv/F,KAAM,IACN5B,MAAO,CACLqE,MAAO,YAGX67F,cAAc,EACdlgG,MAAO,GACPkC,SAAS,EACTmhD,OAAQ,GAEHnyC,EA5OL,GA+OJ+Z,EAAEm2E,cAAgBn2E,EAAEm2E,YAAc52E,EAAGE,EAAExZ,EAAG,cAAc,WACtD,IAAIA,EAAIxQ,KAAKk/F,YAEb,GAAI1uF,IAAMA,EAAElH,QAAQo2E,UAAYlvE,EAAEuuF,MAAO,CACvC,IAAItuF,EAAID,EAAElH,QACNsgB,EAAInZ,EAAE4vF,YACVz2E,GAAKA,EAAEpqB,QAAU,GAAK,GAAKoqB,EAAEnL,SAAW,GAAKhO,EAAEyvF,cAE/C,YADAzvF,EAAIA,EAAE+Q,SAAS+kC,gBACGvmD,KAAKokF,cAAgBpkF,KAAKokF,cAAgB,GAAKx6D,EAAGpZ,EAAE8vF,QAAU12E,GAAK,WAAanZ,GAAKzQ,KAAKmpE,SAAWv/C,EAAGpZ,EAAE8vF,SAAW12E,GAAKpZ,EAAE8vF,aAAU,MAExJt2E,EAAExZ,EAAG,UAAU,WACjBxQ,KAAKk/F,aAAel/F,KAAKk/F,YAAYn/F,YACnCiqB,EAAExZ,EAAG,WAAW,WAClBxQ,KAAKk/F,cAAgBl/F,KAAKk/F,YAAYh5F,UAAWlG,KAAKk/F,iBAAc,MAClEl1E,EAAExZ,EAAG,sBAAsB,WAC7B,GAAIxQ,KAAKk/F,YAAa,CACpB,IAAI1uF,EAAIxQ,KAAKyiD,iBAAmBziD,KAAKyiD,gBAAgBj7C,UACjDiJ,EAAIzQ,KAAKk/F,YAAY51F,QACzBkH,GAAK,UAAYC,EAAE+Q,SAAStd,OAAS,YAAcuM,EAAEm3E,YAAc5nF,KAAKk/F,YAAYW,uBAAuBrvF,EAAErN,MAAQsN,EAAEyvF,mBAEvHl2E,EAAExZ,EAAG,aAAa,SAAUA,IAC9B,IAAOA,EAAEq3E,gBAAkB7nF,KAAKk/F,aAAel/F,KAAKk/F,YAAYW,4BAG3D/1E,KAETjoB,EAAE2O,EAAG,0BAA2B,CAACA,EAAE,wCAAyCA,EAAE,qBAAsBA,EAAE,uBAAwBA,EAAE,uBAAwBA,EAAE,iCAAkCA,EAAE,2BAA4BA,EAAE,mBAAoBA,EAAE,0BAA2BA,EAAE,wBAAyBA,EAAE,yBAA0BA,EAAE,iCAAkCA,EAAE,oCAAqCA,EAAE,qBAAsBA,EAAE,qBAAsBA,EAAE,+BAA+B,SAAUA,EAAG+Z,EAAGT,EAAGsB,EAAGpB,EAAGnoB,EAAGqpB,EAAGF,EAAGC,EAAGE,EAAGppB,EAAG2pB,EAAGX,EAAGpY,EAAGlC,GAClhB,SAASmZ,EAAEpZ,GACT,IAAIf,EAAIzG,EAAEhJ,KAAKX,MAAMiK,QAAQlK,UAAUmoD,WACvC/2C,IAAMA,EAAErH,OAAQ2jB,GAAE,WAChBtc,GAAKA,EAAEq7C,OAASr7C,EAAEnI,WACjB0hB,KAAK1W,IAAI5D,EAAEpE,SAAW,GAAI,KAG/B,IAAIrC,EAAIwH,EAAE64C,WACNj/B,EAAIc,EAAEoV,KACV9vB,EAAIwa,EAAE25B,eACN,IAAIn7B,EAAI7W,EAAE6rC,SACNn0B,EAAI1X,EAAEquC,YACNz0B,EAAI5Z,EAAEpJ,OACNuH,EAAI6B,EAAEqrC,UACN/sC,EAAI0B,EAAE0tC,MACNxzB,EAAIla,EAAE6tC,WACN/0B,EAAI9Y,EAAEkuC,KACN/zB,EAAIna,EAAEyuC,YACVr/C,EAAIA,EAAEm7C,YAAYyjD,IAClB,IAAI/zE,EAAI,EACRL,EAAE/b,EAAEo0C,KAAM,IACVp0C,EAAEpR,UAAY,CACZwhG,qBAAsB,CACpB1+F,OAAQ,UACRyB,MAAO,UACPS,WAAY,OACZy8F,eAAgB,aAElBC,qBAAsB,CACpB5+F,OAAQ,UACRyB,MAAO,UACPS,WAAY,OACZy8F,eAAgB,aAElBt5C,UAAW,CACTl8C,SAAU,KAEZ2zF,cAAe,CACbx9E,SAAU,CACRtd,MAAO,QACPrC,GAAI,GACJE,EAAG,MAKT2pB,EAAEtF,UAAUK,QAAQL,UAAU/d,OAAS,SAAUmI,GAC/CxQ,KAAKkH,KAAK,CACRw2C,QAAS,GACTyS,WAAY,YACXziD,QAAQ,CACTgwC,QAASjyB,EAAEzrB,KAAK0gE,WAAY,IAC3BlwD,GAAK,CACNnF,SAAU,OAIdye,EAAE1D,UAAU26E,qBAAuB,SAAUvwF,EAAGmZ,GAC9C3pB,KAAKghG,2BAA2BxwF,EAAGmZ,GACnC3pB,KAAKihG,kBAGPn3E,EAAE1D,UAAU46E,2BAA6B,SAAUxwF,EAAGmZ,GACpD,IAKIF,EALAha,EAAIe,EAAEtQ,OACN4nB,EAAIrY,EAAE5O,MACN4P,EAAIhB,EAAE/O,MACNkS,EAAI,GACJgX,EAAI,GAEJ4C,EAAIxsB,KAAKkiD,WAAa,CACxBkuB,WAAY3kD,EAAEjb,EAAE4/D,WAAY3gE,EAAE2gE,aAC5B,CACFzsE,MAAO6M,EAAE7M,OAAS8L,EAAE9L,OAEtB3D,KAAKkhG,kBAAoBlhG,KAAKkhG,gBAAkB,IAChD,IAAIl4F,EAAIyG,EAAEnG,QAAQ63F,cAAgB,GACjC13E,EAAIzpB,KAAKkhG,gBAAgBlhG,KAAKkhG,gBAAgBngG,OAAS,KAAO0oB,EAAE23E,cAAgBp4F,IAAMygB,OAAI,GAC3FE,EAAI4C,EAAEA,EAAE,CACN80E,YAAaz0E,KACZJ,GAAI7C,GACP,IAAIH,EAAI/Z,EAAEi2D,OAAO7mD,QAAQrO,GACzBf,EAAEpQ,MAAMa,OAAO8F,SAAQ,SAAUwK,GAC/BA,EAAE3P,QAAUinB,GAAKtX,EAAE8wF,aAAe9wF,EAAElH,QAAQ+3F,YAAc7wF,EAAElH,QAAQ+3F,aAAez0E,IAAKpc,EAAElH,QAAQi4F,YAAc/wF,EAAEixD,YAAY8/B,YAAa/wF,EAAElH,QAAQ63F,aAAe3wF,EAAElH,QAAQ63F,cAAgBn4F,EAAGygB,GAAK7W,EAAI6W,EAAE+3E,YAAa53E,EAAIH,EAAEg4E,qBAAuB7uF,EAAEtL,KAAKkJ,GAAIA,EAAEkxF,cAAgBzwF,EAAE,CACnRowF,YAAa7wF,EAAElH,QAAQ+3F,YACvBF,aAAc3wF,EAAElH,QAAQ63F,aACxBpsE,SAAUvkB,EAAElH,QAAQyrB,UACnBvkB,EAAEixD,aAAc73C,EAAEtiB,KAAKkJ,EAAEkxF,oBAE9BlxF,EAAI+b,EAAE,CACJ60E,YAAap4F,EACb24F,cAAelyF,EAAEnG,QACjBs4F,oBAAqBnyF,EAAEiyF,cACvBD,mBAAoB73E,EACpB43E,YAAa5uF,EACb5P,UAAWwN,EAAExN,UACbwwD,KAAMhjD,EAAE/N,QAAU+N,EAAE/N,QAAQ+E,UAAY,GACxC7D,MAAO6M,EAAE0gE,OAAS9lD,EAAE3Z,MAAM+a,EAAE7oB,OAAO0/C,WAAW,GAAG15C,MAAQ6iB,EAAE7oB,MAC3Dk+F,mBAAoBl4E,EACpBm4E,aAAcryF,EAAEnG,QAAQpG,KAAKsmB,GAC7Bu4E,WAAYv4E,EACZw4E,YAAa,CACXC,KAAMn6E,GAAKA,EAAE0+C,QACb07B,KAAMp6E,GAAKA,EAAE2+C,QACb07B,KAAM1xF,GAAKA,EAAE+1D,QACb47B,KAAM3xF,GAAKA,EAAEg2D,SAEfhkB,gBAAiBziD,KAAKyiD,iBACrBj2B,GACHxsB,KAAKkhG,gBAAgB55F,KAAKkJ,GAC1BsX,GAAKA,EAAEkqB,QAAUlqB,EAAEkqB,MAAMjxC,OAAS,IAClC4oB,EAAInZ,EAAE6xF,YAAcriG,KAAKqmF,UAAU18D,GAAG,IACpCrgB,QAAQ63F,aAAen4F,EAAI,EAC7B8e,IAAMA,EAAEw6E,OAASx6E,EAAE0sB,IAAK1sB,EAAE0+C,QAAU1+C,EAAE2+C,QAAU,KAAMh2D,EAAE+1D,QAAU/1D,EAAEg2D,QAAU,MAC9Eh3D,EAAErK,OAASukB,EAAEvkB,OAASukB,EAAEjc,QAAUic,EAAE44E,kBAAoBn4E,EAAGT,EAAErgB,QAAQi+C,WAAY,IAGnFz9B,EAAE1D,UAAU66E,eAAiB,WAC3B,IAAIzwF,EAAIxQ,KAAKkhG,gBAEb,GAAI1wF,GAAK,EAAIA,EAAEzP,OAAQ,CACrB,IAAI4oB,EAAInZ,EAAEA,EAAEzP,OAAS,GAAGqgG,YACxBphG,KAAKkhG,gBAAgBl7F,SAAQ,SAAUwK,GACrCA,EAAE4wF,cAAgBz3E,GAAKnZ,EAAEgxF,YAAYx7F,SAAQ,SAAUwK,GACrDA,EAAElH,SAAWkH,EAAElH,QAAQ63F,eAAiBx3E,GAAKnZ,EAAEE,QAAO,SAK5D1Q,KAAKyiD,kBAAoBziD,KAAKyiD,gBAAgBt5C,cAAenJ,KAAKyiD,iBAClEziD,KAAKyuE,QAAQiL,QACb5oE,EAAE9Q,KAAM,kBACRA,KAAKD,SACL+Q,EAAE9Q,KAAM,wBAGV,IAAIqrB,EAAI,SAAU7a,GAChB,IAAImZ,EAAI,GAYR,OAXCnZ,EAAIA,EAAE0wF,kBAAoB1wF,EAAEzP,SAAW4oB,EAAE,IAAMA,EAAEriB,KAAK,CACrDy3F,MAAO,EACPW,aAAclvF,EAAE,GAAGmxF,gBACjBnxF,EAAExK,SAAQ,SAAUwK,EAAGf,GACzBe,EAAE4wF,YAAc,EAAIz3E,EAAEA,EAAE5oB,OAAS,GAAGg+F,OAASp1E,EAAEriB,KAAK,CAClDy3F,MAAOvuF,EAAE4wF,YAAc,EACvB1B,aAAczuF,EAAE,CACd5L,KAAMmL,EAAE6xF,YAAYh9F,MACnBmL,EAAEsxF,oBAGFn4E,GAGTG,EAAE1D,UAAUo8E,QAAU,WACpB,GAAIxiG,KAAKkhG,iBAAmB,IAAMlhG,KAAKkhG,gBAAgBngG,OAAQ,CAC7D+P,EAAE9Q,KAAM,iBAER,IAAK,IAAkG4S,EAAG5J,EAAGygB,EAAGD,EAAvGhZ,EAAIxQ,KAAM2pB,EAAInZ,EAAE0wF,gBAAiBzwF,EAAIkZ,EAAEA,EAAE5oB,OAAS,GAAGqgG,YAAat5E,EAAI6B,EAAE5oB,OAAQ6oB,EAAIpZ,EAAEtQ,OAAoBkqB,EAAI,SAAUT,GAC/HC,EAAE5jB,SAAQ,SAAUwK,GAClBA,EAAElH,QAAQ+3F,cAAgB13E,EAAE03E,cAAgB5xF,EAAIe,MAElD,IAAIf,EAAIA,GAAKe,EAAE61E,UAAU18D,GAAG,GAC5Bla,EAAErK,OAASqkB,EAAErkB,MAAQqK,EAAEgzF,mBAAqBhzF,EAAE/B,QAAU+B,EAAEgzF,kBAC1D94E,IAAM3gB,EAAE44F,sBAAwBp4E,EAAI/Z,IACnC4a,EAAI7Z,EAAE0wF,gBAAgBngG,OAAQ+mB,KAAM,IAAI9e,EAAI2gB,EAAE7B,IAAMs5E,cAAgB3wF,EAAG,CAGxE,GAFAkZ,EAAEq/B,QACFv/B,EAAIzgB,EAAEq5F,aACChjG,MAAO,IAAKuT,EAAIgX,EAAE7oB,OAAQ6R,KAAM,GAAIgX,EAAEhX,GAAGtJ,QAAQnE,KAAO6D,EAAE64F,mBAAmB18F,IAAMykB,EAAEhX,GAAGtJ,QAAQ63F,eAAiB1wF,EAAI,EAAG,CAC7HgZ,EAAIG,EAAEhX,GACN,MAEF6W,EAAEm6C,MAAQ,GACVn6C,EAAE5oB,OAAS4oB,EAAE5oB,MAAMmxC,QAAU,IAAM3nB,GAAKvC,IAAMuC,KAAOZ,EAAE5oB,MAAMmxC,MAAMjxC,OAAS,GAC5EiI,EAAEy4F,mBAAmBz7F,QAAQokB,GAC7BtZ,EAAEN,EAAG,UAAW,CACdmxF,cAAe34F,EAAE44F,qBAAuB54F,EAAE24F,gBAE5Cn4E,EAAEpkB,OAASqkB,EAAErkB,OAASokB,EAAEk5E,eAAiB15F,EAAGwgB,EAAElgB,QAAQi+C,UAAY/2C,EAAElH,QAAQlK,UAAUmoD,UAAW99B,EAAEk5E,oBAAsBl5E,EAAEpqB,OAASoqB,EAAEk5E,mBAAmB35F,IACzJwgB,EAAElgB,QAAQ63F,aAAe1wF,EACzBgZ,EAAE/Y,QAAO,GACT8Y,EAAE3oB,QAAU+R,EAAI5J,EAAEg5F,YAAax4E,EAAE3oB,MAAM0nE,YAAY31D,EAAEqvF,KAAMrvF,EAAEsvF,MAAM,GAAK14E,EAAE9oB,MAAM6nE,YAAY31D,EAAEuvF,KAAMvvF,EAAEwvF,MAAM,IAC5Gp5F,EAAEy5C,kBAAoBjyC,EAAEiyC,gBAAkBz5C,EAAEy5C,iBAG9C3xC,EAAEN,EAAG,gBACLxQ,KAAKD,SACLC,KAAK4iG,UAAY5iG,KAAK4iG,QAAQ7hG,OAAS,GACvC+P,EAAEN,EAAG,gBAITgZ,EAAEM,EAAG,aAAa,WAChB,IAAItZ,EAAIxQ,KACRwQ,EAAEpR,UAAY,CACZC,MAAOmR,EACPqyF,YAAaj5E,EACblgB,OAAQ,SAAUigB,EAAGla,GACnBwB,GAAE,EAAIT,EAAElH,QAAQlK,UAAWuqB,GAC3B8B,EAAEhc,GAAG,IAAOe,EAAEzQ,cAIpBypB,EAAEM,EAAG,UAAU,YACZ9pB,KAAKa,OAAS,IAAImF,SAAQ,SAAUwK,GACnCA,EAAEsyF,SAAW,GACbtyF,EAAEtQ,OAAO8F,SAAQ,SAAU2jB,GACzB,IAAIla,EACAgB,EAAIkZ,EAAEi6C,OAAS,GACfh6C,EAAID,EAAE+7C,OAEV,IAAKj2D,EAAI,EAAGA,EAAIgB,EAAE1P,OAAQ0O,IAAK,CAC7B,IAAIzG,EAAI2gB,EAAErgB,QAAQpG,KAAKuM,GACvB,iBAAoBzG,IAAMA,EAAI2gB,EAAEk3D,WAAWz6D,UAAUwrD,gBAAgBj1D,KAAK,CACxEzc,OAAQypB,GACP3gB,IAAM5J,YAAcoR,EAAEsyF,SAASryF,EAAEhB,MAAQe,EAAEsyF,SAASryF,EAAEhB,IAAM,IAAKzG,EAAIyG,GAAKka,EAAEygE,WAAa,GAAI55E,EAAEsyF,SAASryF,EAAEhB,IAAInI,OAAKsiB,GAAK,GAAK5gB,GAAKA,EAAI4gB,EAAE7oB,SAAS6oB,EAAE5gB,SAG1J6jB,EAAErc,EAAE8vD,MAAOv1C,EAAE3E,UAAU28E,iBAG3Bv5E,EAAE0B,EAAEw1E,YAAa,MAAM,SAAUlwF,GAC/B,IAAImZ,EAAI3pB,KAAKX,MACbmR,EAAIxQ,KAAKs/F,WAAa9uF,EAAE+vF,SAExB,IAAK,IAAI9wF,EAAI,EAAGA,EAAIe,EAAGf,IAAKka,EAAE64E,aAEhCh5E,EAAEM,EAAG,kBAAkB,WACrB,IAAItZ,EAAIxQ,KAAKsJ,QAAQlK,UACrBoR,EAAIA,GAAKA,EAAE0uF,YACXl/F,KAAKk/F,cAAgBl/F,KAAKk/F,YAAc,IAAIzuF,EAAEzQ,KAAMwQ,IACpDxQ,KAAKk/F,YAAYC,iBAAiB9zE,EAAErrB,UAEtCwpB,EAAEM,EAAG,gBAAgB,WACnB9pB,KAAKk/F,aAAel/F,KAAKk/F,YAAYC,iBAAiB9zE,EAAErrB,UAE1DwpB,EAAEM,EAAG,UAAU,SAAUtZ,GACvB,IAAImZ,EAAI3pB,KAAKk/F,YACTzuF,EAAID,EAAElH,QAAQlK,WAAaoR,EAAElH,QAAQlK,UAAU8/F,YACnDv1E,GAAKlZ,GAAKkZ,EAAEjgB,OAAO8G,EAAElH,QAAQlK,UAAU8/F,gBAGzCl1E,EAAE5D,UAAUq8E,iBAAmB,SAAUjyF,GACvC,IAAKA,EAAG,CACN,IAAImZ,EAAI3pB,KACJyQ,EAAIkZ,EAAE+4E,eACV1iG,KAAK0lE,OAAO1/D,SAAQ,SAAUwK,GAC5B,IAAImZ,EAAInZ,EAAEyhE,UACVzhE,EAAE/N,SAAW+N,EAAE/N,QAAQ0G,OACvBwgB,IAAMA,EAAEojC,OAAS,WAAapjC,EAAEziB,KAAK,cAAeyiB,EAAEojC,SAAWpjC,EAAExgB,OAAQqH,EAAEyjE,WAAazjE,EAAEyjE,UAAU9qE,YAExG2jB,GAAE,WACA,GAAInD,EAAE+7C,OAAQ,CACZ,IAAIl1D,EAAI,GACRmZ,EAAEzmB,KAAK8C,SAAQ,SAAU2jB,GACvBnZ,EAAElJ,KAAKqiB,MAETA,EAAEtF,QAAU7T,EAAIA,EAAEub,OAAOpC,EAAEtF,QAC3B7T,EAAExK,SAAQ,SAAUwK,EAAGmZ,GAErB,IAAIla,EAAI,SADRka,EAAIA,KAAOlZ,GAAKA,EAAEsxF,YAAc,OAAS,gBACb,EACxBn4E,EAAIpZ,EAAEyhE,UACNzhE,EAAE/N,SAAS+N,EAAE/N,QAAQknB,GAAGla,GAC5Bma,IAAMA,EAAEmjC,SAAWnjC,EAAEvhB,SAAUmI,EAAEyjE,WAAazjE,EAAEyjE,UAAU5rE,gBAG7D0hB,KAAK1W,IAAIrT,KAAKX,MAAMiK,QAAQlK,UAAUmoD,UAAUl8C,SAAW,GAAI,WAC3DrL,KAAK0N,UAIhBsc,EAAE5D,UAAUm8E,iBAAmB,SAAU/xF,GACvC,IAGIoZ,EAHAD,EAAI3pB,KACJyQ,EAAIzQ,KAAKX,MACToQ,EAAIgB,EAAEywF,gBAEN13E,EAAIxgB,EAAEyH,EAAEnH,QAAQlK,UAAUmoD,WAC1Bn9B,EAAIpqB,KAAKa,MACT4oB,EAAIhZ,EAAEyxC,WACV1xC,IAAMf,EAAEzJ,SAAQ,SAAUwK,GACxBmZ,EAAErgB,QAAQ+3F,cAAgB7wF,EAAEqxF,mBAAmBR,cAAgBz3E,EAAIpZ,EAAExN,UAAWymB,IAAMG,EAAEliB,KAAO8I,EAAE7M,WAC/FimB,EAAE/nB,GAAK4pB,EAAErB,EAAEk4E,OAAQl4E,EAAEoqB,KAAOpqB,EAAEoqB,IAAKx0C,KAAK0lE,OAAO1/D,SAAQ,SAAUwK,GACnE,IAAIC,EAAID,EAAExN,UACVymB,IAAMhZ,EAAE/I,KAAO8I,EAAE7M,OACjB6M,EAAE/N,SAAW+N,EAAE/N,QAAQyE,KAAK0iB,GAAGlc,QAAQ6e,EAAE/b,EAAExN,UAAW,CACpD0E,KAAM8I,EAAE7M,OAASgmB,EAAEhmB,QACjB6lB,MACF/Y,EAAErR,WAAaqR,EAAErR,UAAUyjG,YAAY7iG,KAAKi7E,wBAAyBj7E,KAAK0N,UAGhFsc,EAAE5D,UAAUu8E,mBAAqB,SAAUnyF,GACzC,IAAImZ,EAAI3gB,EAAEhJ,KAAKX,MAAMiK,QAAQlK,UAAUmoD,WACnC92C,EAAIzQ,KAAK6xE,MACTjoD,EAAInZ,IAAMzQ,KAAKX,MAAM2jG,YACrBvzF,EAAIzP,KACRyP,EAAEkkF,cAAc3tF,SAAQ,SAAUwK,GAC5Bf,EAAEe,IAAIf,EAAEe,GAAGzH,GAAG,gBAEpB6gB,UAAY5pB,KAAK6xE,MACjB7xE,KAAK0lE,OAAO1/D,SAAQ,SAAUgD,GAC5B,IAAIwgB,EAAIxgB,EAAEvG,QACNqlB,EAAItX,EAAExN,UACNonB,EAAI,WACNZ,EAAEtjB,UACFuK,GAAKmZ,IAAMnZ,EAAIA,EAAEvK,YAGnBsjB,GAAK1B,WAAa9e,EAAEvG,QAASgN,EAAEpQ,MAAM6iD,aAAep6B,EAAEpgB,KAAO8I,EAAE7M,OAAQgmB,EAAEte,SAAWme,EAAE9b,QAAQoa,EAAG7W,EAAE0Y,EAAG,CACpG8K,SAAUrK,MACLZ,EAAEtiB,KAAK4gB,GAAIsC,UAItBroB,GAAKwqB,EAAExqB,EAAEqkB,UAAW,CAClBq8E,iBAAkBz4E,EAAE5D,UAAUq8E,iBAC9BE,mBAAoB34E,EAAE5D,UAAUu8E,mBAChCJ,iBAAkB,SAAU/xF,GAC1B,IAAImZ,EAAI3pB,KAAKX,MAAM6hG,gBAAgBlhG,KAAKX,MAAM6hG,gBAAgBngG,OAAS,GACnE0P,EAAIzQ,KAAKX,MAAMiK,QAAQlK,UAAUmoD,UAGrC,GAFAvnD,KAAK+e,GAAG,UAAYtO,EAAEpF,SAAW,GAE7BrL,KAAK4sD,OAAQ,CACf,IAAIhjC,EAAID,EAAE3mB,UACNyM,EAAIma,EAAEg/B,MACN5/C,GAAK4gB,EAAEi/B,IAAMp5C,GAAKzP,KAAK0lE,OAAO3kE,OAC9ByoB,EAAIxpB,KAAKX,MAAM6iD,WACnB1xC,IAAMxQ,KAAK0lE,OAAO1/D,SAAQ,SAAUwK,EAAGsX,GACrC,IAAIsC,EAAI5Z,EAAExN,UACVwmB,IAAMI,EAAEliB,KAAOiiB,EAAEhmB,MAAOymB,EAAE1iB,KAAO8I,EAAE7M,OAC/B6M,EAAE/N,SAAS+N,EAAE/N,QAAQyE,KAAK+J,EAAE2Y,EAAG,CACjCg/B,MAAOn5C,EAAIqY,EAAI9e,EACf6/C,IAAKp5C,GAAKqY,EAAI,GAAK9e,KACjByH,EAAI,UAAY,QAAQ2Z,EAAG3Z,MAC7BzQ,KAAKX,MAAMD,WAAaY,KAAKX,MAAMD,UAAUyjG,YAAY7iG,KAAKi7E,wBAAyBj7E,KAAK0N,aAKtGud,EAAE7E,UAAU68E,YAAc,WACxBjjG,KAAKkjG,gBAGPj4E,EAAE7E,UAAU88E,aAAe,SAAU1yF,EAAGmZ,EAAGlZ,GACzC,IAAImZ,EAAI5pB,KAAKE,OAAOb,MAChBoQ,EAAIma,EAAEtgB,QAAQlK,UACd4J,GAAKyG,EAAEvP,QAAU,IAAIa,OAGzB,IAFA6oB,EAAEg5E,UAAYh5E,EAAEg5E,QAAU,IAEnB55F,MAAQwgB,GAAI,GAAI/Z,EAAEvP,OAAO8I,GAAG7D,KAAOnF,KAAKZ,YAAc,IAAMwqB,EAAEg5E,QAAQ/jF,QAAQ7e,KAAKZ,WAAY,CACpG,IAAIoqB,EAAI/Z,EAAEvP,OAAO8I,GACjB4gB,EAAEg5E,QAAQt7F,KAAKtH,KAAKZ,WAGtB0R,EAAE8Y,EAAG,YAAa,CAChBhoB,MAAO5B,KACP2hG,cAAen4E,EACfq0C,SAAUl0C,EACV8tD,cAAehnE,EACfi1D,YAAQ,IAAuB/7C,GAAK3pB,KAAKE,OAAOW,MAAMsiG,YAAYx5E,GAAGjN,MAAM,KAC1E,SAAUiN,GACX,IAAIlZ,EAAIkZ,EAAE/nB,MAAM1B,QAAUypB,EAAE/nB,MAAM1B,OAAOb,MACrCuqB,EAAID,EAAEg4E,cACVlxF,GAAKmZ,IAAMpZ,EAAIC,EAAEuwF,2BAA2Br3E,EAAE/nB,MAAOgoB,GAAKnZ,EAAEswF,qBAAqBp3E,EAAE/nB,MAAOgoB,QAI9FW,EAAEnE,UAAUg9E,kBAAoB,SAAU5yF,EAAGmZ,GAC3C3pB,KAAKmjG,YAAY3yF,GAAGxK,SAAQ,SAAUyK,GACpCA,GAAKA,EAAEvQ,QAAUuQ,EAAEvQ,OAAOk8D,SAAW3rD,EAAEyyF,cAAgBzyF,EAAEyyF,cAAa,EAAI1yF,EAAGmZ,MAE/E3pB,KAAKX,MAAM4hG,kBAGb12E,EAAEnE,UAAU+8E,YAAc,SAAU3yF,GAClC,OAAOxQ,KAAK8iG,UAAY9iG,KAAK8iG,SAAStyF,IAAM,IAG9Cua,EAAE3E,UAAU28E,UAAY,WACtB,IAAIvyF,EAAIxQ,KAAKw0C,IACT7qB,EAAI3pB,KAAK4f,MACTnP,EAAIzQ,KAAK68D,KACTjzC,EAAI,UAAYnZ,EAAE+xD,MAAQ/xD,EAAE0yF,YAC5Bn6F,EAAI4gB,GAAKnZ,EAAE0yF,YAAY3yF,GACvB4Z,EAAI3Z,EAAEpR,MAAM6iD,WAChBt4B,IAAMD,GAAK3gB,GAAKA,EAAEjI,QAAU4oB,EAAEo5E,WAAY,EAAIp5E,EAAE05E,aAAej5E,IAAMT,EAAE05E,YAAcpyF,EAAE0Y,EAAEolC,SAAUplC,EAAEnnB,SAAS,mCAAoCmnB,EAAE25E,wBAA0Bj5E,EAAEV,EAAEjnB,QAAS,SAAUinB,EAAE25E,uBAAyB95E,EAAEG,EAAEjnB,QAAS,SAAS,SAAUinB,GAC9PA,EAAE1gB,iBACFwH,EAAE2yF,kBAAkB5yF,EAAGmZ,MACrBS,GAAKT,EAAEnpB,IAAIiQ,EAAEpR,MAAMiK,QAAQlK,UAAUwhG,uBAAyBj3E,GAAKA,EAAEo5E,WAAap5E,EAAE25E,yBAA2Bl5E,IAAMT,EAAEolC,OAAS,GAAIplC,EAAEnpB,IAAImpB,EAAE05E,cAAe15E,EAAE25E,yBAA0B35E,EAAEtmB,YAAY,sCAG3MmmB,EAAEyB,EAAG,aAAa,WAEhB,OADAjrB,KAAKZ,YAAcY,KAAKujG,uBAAyBvjG,KAAKujG,qBAAuB/5E,EAAExpB,KAAM,QAASurB,IACvFvrB,QAETwpB,EAAEyB,EAAG,UAAU,SAAUza,IACvBA,EAAIA,EAAElH,SAAW,IACflK,YAAcY,KAAKujG,qBAAuBvjG,KAAKujG,qBAAuB/5E,EAAExpB,KAAM,QAASurB,IAAM/a,EAAEpR,gBAAa,IAAWoR,EAAEpR,WAAaY,KAAKujG,uBAAyBvjG,KAAKujG,qBAAuBvjG,KAAKujG,2BAGzM,IAAIh4E,EAAI,SAAU/a,GAChB,IAAImZ,EAAI3pB,KAAKE,OACbypB,EAAE9oB,QAAS,IAAO8oB,EAAEtqB,MAAMiK,QAAQlK,UAAUokG,oBAAsB75E,EAAE9oB,MAAMuiG,kBAAkBpjG,KAAK6B,EAAG2O,GAAKxQ,KAAKkjG,kBAAa,OAAQ,EAAQ1yF,IAG7IgZ,EAAE2B,EAAG,uBAAuB,WAC1B,IAAI3a,EAAIxQ,KAAKX,MAAMiK,QAAQlK,UAAU0hG,qBACjCn3E,EAAI3pB,KAAKX,MAAM4H,SACfwJ,EAAIzQ,KAAKX,MAAM6iD,WACnBliD,KAAK0lE,OAAO1/D,SAAQ,SAAU4jB,GAC5B,IAAI5gB,EAAI4gB,EAAEtgB,QAAQwoE,WACdriE,EAAIgc,EAAE7B,EAAEqqE,UAAWjrF,GAAKA,EAAE1J,MAAO,IACrCsqB,EAAExqB,WAAawqB,EAAEqoD,YAAc,aAAezhE,EAAE7M,OAAS8M,IAAMhB,EAAE9L,MAAQgmB,EAAEwjC,YAAYvjC,EAAEjmB,OAAS3D,KAAK2D,QAASqF,GAAKA,EAAErF,QAAU8L,EAAE9L,MAAQqF,EAAErF,OAAQimB,EAAEqoD,UAAUzvE,SAAS,mCAAoCiO,GAAKmZ,EAAEqoD,UAAUzxE,IAAIgQ,GAAGhQ,IAAIiP,MACzOzP,SAGL,IAAI0sB,EAAI,SAAUlc,EAAGC,EAAGmZ,EAAG5gB,GACzBwH,EAAEoZ,EAAI,WAAa,eAAe,8BAClC5gB,GAAKwH,EAAEhQ,IAAI,CACT0B,OAAQuO,KAIZ+Y,EAAE2B,EAAG,oBAAoB,WACvB,IAAI3a,EAAIxQ,KAAKX,MAAM6iD,WACnBliD,KAAK0lE,OAAO1/D,SAAQ,SAAUyK,GAC5BA,EAAErR,WAAaqR,EAAEhO,SAAWiqB,EAAEjc,EAAEhO,QAAS,WAAW,EAAI+N,SAG5DgZ,EAAEyB,EAAG,iBAAiB,WACpB,IAAIza,EAAIxQ,KAAKE,OAAOb,MAAM6iD,WAC1BliD,KAAKZ,WAAaY,KAAKE,OAAO+0E,MAAQ,UAAYj1E,KAAK2qC,MAAQje,EAAE1sB,KAAKE,OAAO+0E,KAAM,WAAW,EAAIzkE,GAAKxQ,KAAKE,OAAO+0E,MAAQvoD,EAAE1sB,KAAKE,OAAO+0E,KAAM,QAAQ,EAAIzkE,MAE7JgZ,EAAEM,EAAG,WAAW,WACd9pB,KAAKyiD,kBAAoBziD,KAAKyiD,gBAAkBziD,KAAKyiD,gBAAgBv8C,cAEvEsjB,EAAEM,EAAG,cAAc,WACjB9pB,KAAKyiD,iBAAmBziD,KAAK0nF,sBAGjC7lF,EAAE2O,EAAG,mCAAoC,IAAI,gBA5tBflE,EAAOid,SAAW/Y,EAAW,QAAIA,EAAGlE,EAAOid,QAAU/Y,IAAkD,EAAuC,CAAC,cAI5K,KAJ2L,EAAF,SAAY3O,GAGpM,OAFA2O,EAAE3O,GACF2O,EAAE3R,WAAagD,EACR2O,GACR,gDCdH,OAaA,SAAW1G,EAAQqoB,GACjB,aAE4D,iBAAnB7lB,EAAOid,QAQ9Cjd,EAAOid,QAAUzf,EAAOtL,SAAW2zB,EAAQroB,GAAQ,GAAQ,SAAUygB,GACnE,IAAKA,EAAE/rB,SACL,MAAM,IAAImpB,MAAM,4CAGlB,OAAOwK,EAAQ5H,IAGjB4H,EAAQroB,GAnBZ,CAsBqB,oBAAXrK,OAAyBA,OAASO,MAAM,SAAUP,EAAQgkG,GAKlE,aAEA,IAAIC,EAAM,GACNC,EAAWh9E,OAAOoe,eAClBroB,EAAQgnF,EAAIhnF,MACZknF,EAAOF,EAAIE,KAAO,SAAUC,GAC9B,OAAOH,EAAIE,KAAKjnF,KAAKknF,IACnB,SAAUA,GACZ,OAAOH,EAAI33E,OAAOrK,MAAM,GAAImiF,IAE1Bv8F,EAAOo8F,EAAIp8F,KACXuX,EAAU6kF,EAAI7kF,QACdilF,EAAa,GACb5lF,EAAW4lF,EAAW5lF,SACtBqmB,EAASu/D,EAAWn3E,eACpBo3E,EAAax/D,EAAOrmB,SACpB8lF,EAAuBD,EAAWpnF,KAAKgK,QACvCs9E,EAAU,GAEVxoD,EAAa,SAAoBniB,GAQnC,MAAsB,mBAARA,GAA8C,iBAAjBA,EAAIkG,UAA6C,mBAAblG,EAAIte,MAGjFkpF,EAAW,SAAkB5qE,GAC/B,OAAc,MAAPA,GAAeA,IAAQA,EAAI75B,QAGhCjB,EAAWiB,EAAOjB,SAClB2lG,EAA4B,CAC9B/+F,MAAM,EACN0rC,KAAK,EACLszD,OAAO,EACPC,UAAU,GAGZ,SAASC,EAAQp9E,EAAM2G,EAAMouB,GAE3B,IAAI91C,EACA+S,EACAqrF,GAHJtoD,EAAMA,GAAOz9C,GAGIic,cAAc,UAG/B,GAFA8pF,EAAOrjG,KAAOgmB,EAEV2G,EACF,IAAK1nB,KAAKg+F,GAWRjrF,EAAM2U,EAAK1nB,IAAM0nB,EAAK9J,cAAgB8J,EAAK9J,aAAa5d,KAGtDo+F,EAAO5pF,aAAaxU,EAAG+S,GAK7B+iC,EAAI9N,KAAKpzB,YAAYwpF,GAAQrgF,WAAW+xB,YAAYsuD,GAGtD,SAASnmE,EAAO9E,GACd,OAAW,MAAPA,EACKA,EAAM,GAIO,iBAARA,GAAmC,mBAARA,EAAqBwqE,EAAW5lF,EAASvB,KAAK2c,KAAS,gBAAkBA,EAOpH,IAAI0O,EAAU,QAEdv0B,EAAS,SAAUkgB,EAAU6wE,GAG3B,OAAO,IAAI/wF,EAAOoM,GAAGlhB,KAAKg1B,EAAU6wE,IAiTtC,SAASC,EAAYnrE,GAKnB,IAAIv4B,IAAWu4B,GAAO,WAAYA,GAAOA,EAAIv4B,OACzCqE,EAAOg5B,EAAO9E,GAElB,OAAImiB,EAAWniB,KAAQ4qE,EAAS5qE,KAIhB,UAATl0B,GAA+B,IAAXrE,GAAkC,iBAAXA,GAAuBA,EAAS,GAAKA,EAAS,KAAKu4B,GA1TvG7lB,EAAOoM,GAAKpM,EAAO2S,UAAY,CAE7BmZ,OAAQyI,EACRn6B,YAAa4F,EAEb1S,OAAQ,EACR2jG,QAAS,WACP,OAAOhoF,EAAMC,KAAK3c,OAIpB2J,IAAK,SAAUuN,GAEb,OAAW,MAAPA,EACKwF,EAAMC,KAAK3c,MAIbkX,EAAM,EAAIlX,KAAKkX,EAAMlX,KAAKe,QAAUf,KAAKkX,IAIlDytF,UAAW,SAAUC,GAEnB,IAAIC,EAAMpxF,EAAO4sC,MAAMrgD,KAAK6N,cAAe+2F,GAI3C,OAFAC,EAAIC,WAAa9kG,KAEV6kG,GAGT/7F,KAAM,SAAU6H,GACd,OAAO8C,EAAO3K,KAAK9I,KAAM2Q,IAE3Bse,IAAK,SAAUte,GACb,OAAO3Q,KAAK2kG,UAAUlxF,EAAOwb,IAAIjvB,MAAM,SAAU0T,EAAMvN,GACrD,OAAOwK,EAASgM,KAAKjJ,EAAMvN,EAAGuN,QAGlCgJ,MAAO,WACL,OAAO1c,KAAK2kG,UAAUjoF,EAAMgF,MAAM1hB,KAAM6nB,aAE1C7T,MAAO,WACL,OAAOhU,KAAK+M,GAAG,IAEjBqhC,KAAM,WACJ,OAAOpuC,KAAK+M,IAAI,IAElBg4F,KAAM,WACJ,OAAO/kG,KAAK2kG,UAAUlxF,EAAO4qC,KAAKr+C,MAAM,SAAUglG,EAAO7+F,GACvD,OAAQA,EAAI,GAAK,OAGrB8+F,IAAK,WACH,OAAOjlG,KAAK2kG,UAAUlxF,EAAO4qC,KAAKr+C,MAAM,SAAUglG,EAAO7+F,GACvD,OAAOA,EAAI,OAGf4G,GAAI,SAAU5G,GACZ,IAAI6gB,EAAMhnB,KAAKe,OACXwQ,GAAKpL,GAAKA,EAAI,EAAI6gB,EAAM,GAC5B,OAAOhnB,KAAK2kG,UAAUpzF,GAAK,GAAKA,EAAIyV,EAAM,CAAChnB,KAAKuR,IAAM,KAExDs3C,IAAK,WACH,OAAO7oD,KAAK8kG,YAAc9kG,KAAK6N,eAIjCvG,KAAMA,EACNqd,KAAM++E,EAAI/+E,KACVI,OAAQ2+E,EAAI3+E,QAGdtR,EAAOlK,OAASkK,EAAOoM,GAAGtW,OAAS,WACjC,IAAID,EACAjE,EACAyrC,EACAo0D,EACAC,EACAC,EACAl4F,EAAS2a,UAAU,IAAM,GACzB1hB,EAAI,EACJpF,EAAS8mB,UAAU9mB,OACnBskG,GAAO,EAoBX,IAlBsB,kBAAXn4F,IACTm4F,EAAOn4F,EAEPA,EAAS2a,UAAU1hB,IAAM,GACzBA,KAIoB,iBAAX+G,GAAwBuuC,EAAWvuC,KAC5CA,EAAS,IAIP/G,IAAMpF,IACRmM,EAASlN,KACTmG,KAGKA,EAAIpF,EAAQoF,IAEjB,GAAgC,OAA3BmD,EAAUue,UAAU1hB,IAEvB,IAAKd,KAAQiE,EACX47F,EAAO57F,EAAQjE,GAGF,cAATA,GAAwB6H,IAAWg4F,IAKnCG,GAAQH,IAASzxF,EAAO6xF,cAAcJ,KAAUC,EAAc12F,MAAMoN,QAAQqpF,MAC9Ep0D,EAAM5jC,EAAO7H,GAGX+/F,EADED,IAAgB12F,MAAMoN,QAAQi1B,GACxB,GACEq0D,GAAgB1xF,EAAO6xF,cAAcx0D,GAGvCA,EAFA,GAKVq0D,GAAc,EAEdj4F,EAAO7H,GAAQoO,EAAOlK,OAAO87F,EAAMD,EAAOF,SACxB58F,IAAT48F,IACTh4F,EAAO7H,GAAQ6/F,IAOvB,OAAOh4F,GAGTuG,EAAOlK,OAAO,CAEZg8F,QAAS,UAAYv9D,EAAUje,KAAK6U,UAAU75B,QAAQ,MAAO,IAE7DygG,SAAS,EACTp1F,MAAO,SAAUe,GACf,MAAM,IAAIwW,MAAMxW,IAElBmvB,KAAM,aACNglE,cAAe,SAAUhsE,GACvB,IAAIsO,EAAO69D,EAGX,SAAKnsE,GAA8B,oBAAvBpb,EAASvB,KAAK2c,QAI1BsO,EAAQ+7D,EAASrqE,KAQM,mBADvBmsE,EAAOlhE,EAAO5nB,KAAKirB,EAAO,gBAAkBA,EAAM/5B,cACbk2F,EAAWpnF,KAAK8oF,KAAUzB,IAEjE0B,cAAe,SAAUpsE,GACvB,IAAIj0B,EAEJ,IAAKA,KAAQi0B,EACX,OAAO,EAGT,OAAO,GAITqsE,WAAY,SAAUz+E,EAAM5d,EAAS2yC,GACnCqoD,EAAQp9E,EAAM,CACZk9E,MAAO96F,GAAWA,EAAQ86F,OACzBnoD,IAELnzC,KAAM,SAAUwwB,EAAK3oB,GACnB,IAAI5P,EACAoF,EAAI,EAER,GAAIs+F,EAAYnrE,GAGd,IAFAv4B,EAASu4B,EAAIv4B,OAENoF,EAAIpF,IACgC,IAArC4P,EAASgM,KAAK2c,EAAInzB,GAAIA,EAAGmzB,EAAInzB,IADhBA,UAMnB,IAAKA,KAAKmzB,EACR,IAAyC,IAArC3oB,EAASgM,KAAK2c,EAAInzB,GAAIA,EAAGmzB,EAAInzB,IAC/B,MAKN,OAAOmzB,GAGTssE,UAAW,SAAUlC,EAAKmC,GACxB,IAAIhB,EAAMgB,GAAW,GAUrB,OARW,MAAPnC,IACEe,EAAY99E,OAAO+8E,IACrBjwF,EAAO4sC,MAAMwkD,EAAoB,iBAARnB,EAAmB,CAACA,GAAOA,GAEpDp8F,EAAKqV,KAAKkoF,EAAKnB,IAIZmB,GAET7kD,QAAS,SAAUtsC,EAAMgwF,EAAKv9F,GAC5B,OAAc,MAAPu9F,GAAe,EAAI7kF,EAAQlC,KAAK+mF,EAAKhwF,EAAMvN,IAIpDk6C,MAAO,SAAUrsC,EAAOygC,GAKtB,IAJA,IAAIztB,GAAOytB,EAAO1zC,OACdwQ,EAAI,EACJpL,EAAI6N,EAAMjT,OAEPwQ,EAAIyV,EAAKzV,IACdyC,EAAM7N,KAAOsuC,EAAOljC,GAItB,OADAyC,EAAMjT,OAASoF,EACR6N,GAETqqC,KAAM,SAAUumD,EAAOj0F,EAAUy/C,GAQ/B,IAPA,IACI51B,EAAU,GACVr0B,EAAI,EACJpF,EAAS6jG,EAAM7jG,OACf+kG,GAAkB11C,EAGfjqD,EAAIpF,EAAQoF,KACEwK,EAASi0F,EAAMz+F,GAAIA,KAEd2/F,GACtBtrE,EAAQlzB,KAAKs9F,EAAMz+F,IAIvB,OAAOq0B,GAGTvL,IAAK,SAAU21E,EAAOj0F,EAAUo1F,GAC9B,IAAIhlG,EACA+D,EACAqB,EAAI,EACJ0+F,EAAM,GAEV,GAAIJ,EAAYG,GAGd,IAFA7jG,EAAS6jG,EAAM7jG,OAERoF,EAAIpF,EAAQoF,IAGJ,OAFbrB,EAAQ6L,EAASi0F,EAAMz+F,GAAIA,EAAG4/F,KAG5BlB,EAAIv9F,KAAKxC,QAKb,IAAKqB,KAAKy+F,EAGK,OAFb9/F,EAAQ6L,EAASi0F,EAAMz+F,GAAIA,EAAG4/F,KAG5BlB,EAAIv9F,KAAKxC,GAMf,OAAO8+F,EAAKiB,IAGdmB,KAAM,EAGN/B,QAASA,IAGW,mBAAXtiE,SACTluB,EAAOoM,GAAG8hB,OAAOiL,UAAY82D,EAAI/hE,OAAOiL,WAI1Cn5B,EAAO3K,KAAK,uEAAuEmV,MAAM,MAAM,SAAU8qE,EAAI1jF,GAC3Gy+F,EAAW,WAAaz+F,EAAO,KAAOA,EAAKw0B,iBAkB7C,IAAIosE,EAWJ,SAAUxmG,GACR,IAAI0G,EACA89F,EACAiC,EACAC,EACAC,EACAC,EACAC,EACA5iG,EACA6iG,EACAC,EACAC,EAEJC,EACIloG,EACAmoG,EACAC,EACAC,EACAC,EACAtsE,EACA/sB,EAEJ83F,EAAU,SAAW,EAAI,IAAIt7E,KACzB88E,EAAetnG,EAAOjB,SACtBwoG,EAAU,EACVntF,EAAO,EACPotF,EAAaC,KACbC,EAAaD,KACbE,EAAgBF,KAChBG,EAAyBH,KACzBI,EAAY,SAAU92F,EAAGC,GAK3B,OAJID,IAAMC,IACRg2F,GAAe,GAGV,GAGTliE,EAAS,GAAG5X,eACR+2E,EAAM,GACN16C,EAAM06C,EAAI16C,IACVu+C,EAAa7D,EAAIp8F,KACjBA,EAAOo8F,EAAIp8F,KACXoV,EAAQgnF,EAAIhnF,MAGhBmC,EAAU,SAAUkK,EAAMrV,GAIxB,IAHA,IAAIvN,EAAI,EACJ6gB,EAAM+B,EAAKhoB,OAERoF,EAAI6gB,EAAK7gB,IACd,GAAI4iB,EAAK5iB,KAAOuN,EACd,OAAOvN,EAIX,OAAQ,GAENqhG,EAAW,6HAGfC,EAAa,sBAEbC,EAAa,oFAEbztE,EAAa,2BAA4BytE,EAAa,OAASD,EAC/D,gBAAkBA,EAElB,2DAA6DC,EAAa,OAASD,EAAa,OAC5FE,EAAU,KAAOD,EAAP,wFAGeztE,EAHf,eAMd2tE,EAAc,IAAIvpE,OAAOopE,EAAa,IAAK,KACvCI,EAAQ,IAAIxpE,OAAO,uEAAsE,KACzFypE,EAAS,IAAIzpE,OAAO,8CACpB0pE,EAAe,IAAI1pE,OAAO,wEAC1B2pE,EAAW,IAAI3pE,OAAOopE,EAAa,MACnCQ,EAAU,IAAI5pE,OAAOspE,GACrBO,EAAc,IAAI7pE,OAAO,IAAMqpE,EAAa,KAC5CS,EAAY,CACd,GAAM,IAAI9pE,OAAO,MAAQqpE,EAAa,KACtC,MAAS,IAAIrpE,OAAO,QAAUqpE,EAAa,KAC3C,IAAO,IAAIrpE,OAAO,KAAOqpE,EAAa,SACtC,KAAQ,IAAIrpE,OAAO,IAAMpE,GACzB,OAAU,IAAIoE,OAAO,IAAMspE,GAC3B,MAAS,IAAItpE,OAAO,4LAAyL,KAC7M,KAAQ,IAAIA,OAAO,OAASmpE,EAAW,KAAM,KAG7C,aAAgB,IAAInpE,OAAO,6IAA2I,MAEpK+pE,EAAQ,SACRC,EAAU,sCACVC,EAAU,SACVC,EAAU,yBAEdC,EAAa,mCACTC,GAAW,OAGfC,GAAY,IAAIrqE,OAAO,8DAA8D,KACjFsqE,GAAY,SAAUC,EAAQC,GAChC,IAAI7+B,EAAO,KAAO4+B,EAAOlsF,MAAM,GAAK,MACpC,OAAOmsF,IAKP7+B,EAAO,EAAInjD,OAAOiiF,aAAa9+B,EAAO,OAAWnjD,OAAOiiF,aAAa9+B,GAAQ,GAAK,MAAe,KAAPA,EAAe,SAI3G++B,GAAa,sDACTC,GAAa,SAAUC,EAAIC,GAC7B,OAAIA,EAES,OAAPD,EACK,IAIFA,EAAGvsF,MAAM,GAAI,GAAK,KAAOusF,EAAG30D,WAAW20D,EAAGloG,OAAS,GAAGmd,SAAS,IAAM,IAIvE,KAAO+qF,GAMhBE,GAAgB,WACdzC,KAEE0C,GAAqBC,IAAc,SAAU31F,GAC/C,OAAyB,IAAlBA,EAAKssB,UAAqD,aAAhCtsB,EAAKsQ,SAAS6V,gBAC9C,CACDhW,IAAK,aACLgX,KAAM,WAIR,IACEvzB,EAAKoa,MAAMgiF,EAAMhnF,EAAMC,KAAKoqF,EAAap8C,YAAao8C,EAAap8C,YAInE+4C,EAAIqD,EAAap8C,WAAW5pD,QAAQy+B,SACpC,MAAOx2B,GACP1B,EAAO,CACLoa,MAAOgiF,EAAI3iG,OACX,SAAUmM,EAAQo8F,GAChB/B,EAAW7lF,MAAMxU,EAAQwP,EAAMC,KAAK2sF,KAGtC,SAAUp8F,EAAQo8F,GAIhB,IAHA,IAAI/3F,EAAIrE,EAAOnM,OACXoF,EAAI,EAED+G,EAAOqE,KAAO+3F,EAAInjG,OAEzB+G,EAAOnM,OAASwQ,EAAI,IAK1B,SAAS00F,GAAOtyE,EAAU6wE,EAASqB,EAAS0D,GAC1C,IAAIz/E,EACA3jB,EACAuN,EACA81F,EACAvpF,EACAwpF,EACAC,EACAC,EAAanF,GAAWA,EAAQzpB,cAEpCv7C,EAAWglE,EAAUA,EAAQhlE,SAAW,EAGxC,GAFAqmE,EAAUA,GAAW,GAEG,iBAAblyE,IAA0BA,GAAyB,IAAb6L,GAA+B,IAAbA,GAA+B,KAAbA,EACnF,OAAOqmE,EAIT,IAAK0D,IACH7C,EAAYlC,GACZA,EAAUA,GAAWhmG,EAEjBooG,GAAgB,CAGlB,GAAiB,KAAbpnE,IAAoBvf,EAAQuoF,EAAWplE,KAAKzP,IAE9C,GAAI7J,EAAI7J,EAAM,IAEZ,GAAiB,IAAbuf,EAAgB,CAClB,KAAI9rB,EAAO8wF,EAAQh4F,eAAesd,IAShC,OAAO+7E,EALP,GAAInyF,EAAKvO,KAAO2kB,EAEd,OADA+7E,EAAQv+F,KAAKoM,GACNmyF,OAUX,GAAI8D,IAAej2F,EAAOi2F,EAAWn9F,eAAesd,KAAOrc,EAAS+2F,EAAS9wF,IAASA,EAAKvO,KAAO2kB,EAEhG,OADA+7E,EAAQv+F,KAAKoM,GACNmyF,MAIN,IAAI5lF,EAAM,GAEf,OADA3Y,EAAKoa,MAAMmkF,EAASrB,EAAQl3F,qBAAqBqmB,IAC1CkyE,EACF,IAAK/7E,EAAI7J,EAAM,KAAOgkF,EAAQ72F,wBAA0Bo3F,EAAQp3F,uBAErE,OADA9F,EAAKoa,MAAMmkF,EAASrB,EAAQp3F,uBAAuB0c,IAC5C+7E,EAKX,GAAI5B,EAAQ2F,MAAQvC,EAAuB1zE,EAAW,QAAUkzE,IAAcA,EAAUvoF,KAAKqV,MAEhF,IAAb6L,GAAqD,WAAnCglE,EAAQxgF,SAAS6V,eAA6B,CAU9D,GATA6vE,EAAc/1E,EACdg2E,EAAanF,EAQI,IAAbhlE,IAAmBwoE,EAAS1pF,KAAKqV,IAAao0E,EAAazpF,KAAKqV,IAAY,CAkB9E,KAhBAg2E,EAAalB,GAASnqF,KAAKqV,IAAak2E,GAAYrF,EAAQtgF,aAAesgF,KAGxDA,GAAYP,EAAQv+F,SAEjC8jG,EAAMhF,EAAQzgF,aAAa,OAC7BylF,EAAMA,EAAIzkG,QAAQgkG,GAAYC,IAE9BxE,EAAQ7pF,aAAa,KAAM6uF,EAAMjE,IAMrCp/F,GADAsjG,EAASpD,EAAS1yE,IACP5yB,OAEJoF,KACLsjG,EAAOtjG,IAAMqjG,EAAM,IAAMA,EAAM,UAAY,IAAMM,GAAWL,EAAOtjG,IAGrEujG,EAAcD,EAAOthF,KAAK,KAG5B,IAEE,OADA7gB,EAAKoa,MAAMmkF,EAAS8D,EAAWj4F,iBAAiBg4F,IACzC7D,EACP,MAAOkE,GACP1C,EAAuB1zE,GAAU,GACjC,QACI61E,IAAQjE,GACVf,EAAQr0E,gBAAgB,QAQlC,OAAOzsB,EAAOiwB,EAAS5uB,QAAQ8iG,EAAO,MAAOrD,EAASqB,EAAS0D,GAUjE,SAASrC,KACP,IAAIvxE,EAAO,GAYX,OAVA,SAASxT,EAAMtM,EAAK/Q,GAOlB,OALI6wB,EAAKruB,KAAKuO,EAAM,KAAOqwF,EAAK8D,oBAEvB7nF,EAAMwT,EAAK4oB,SAGbp8B,EAAMtM,EAAM,KAAO/Q,GAW9B,SAASmlG,GAAapqF,GAEpB,OADAA,EAAG0lF,IAAW,EACP1lF,EAQT,SAASqqF,GAAOrqF,GACd,IAAIhW,EAAKrL,EAASic,cAAc,YAEhC,IACE,QAASoF,EAAGhW,GACZ,MAAOb,GACP,OAAO,EACP,QAEIa,EAAGqa,YACLra,EAAGqa,WAAW+xB,YAAYpsC,GAI5BA,EAAK,MAUT,SAASsgG,GAAUC,EAAOzzE,GAIxB,IAHA,IAAI+sE,EAAM0G,EAAMnsF,MAAM,KAClB9X,EAAIu9F,EAAI3iG,OAELoF,KACL+/F,EAAKmE,WAAW3G,EAAIv9F,IAAMwwB,EAW9B,SAAS2zE,GAAa95F,EAAGC,GACvB,IAAI85F,EAAM95F,GAAKD,EACXg6F,EAAOD,GAAsB,IAAf/5F,EAAEgvB,UAAiC,IAAf/uB,EAAE+uB,UAAkBhvB,EAAEi6F,YAAch6F,EAAEg6F,YAE5E,GAAID,EACF,OAAOA,EAIT,GAAID,EACF,KAAOA,EAAMA,EAAI/zC,aACf,GAAI+zC,IAAQ95F,EACV,OAAQ,EAKd,OAAOD,EAAI,GAAK,EAQlB,SAASk6F,GAAkBtlG,GACzB,OAAO,SAAUsO,GAEf,MAAgB,UADLA,EAAKsQ,SAAS6V,eACEnmB,EAAKtO,OAASA,GAS7C,SAASulG,GAAmBvlG,GAC1B,OAAO,SAAUsO,GACf,IAAIrO,EAAOqO,EAAKsQ,SAAS6V,cACzB,OAAiB,UAATx0B,GAA6B,WAATA,IAAsBqO,EAAKtO,OAASA,GASpE,SAASwlG,GAAqB5qE,GAE5B,OAAO,SAAUtsB,GAIf,MAAI,SAAUA,EAQRA,EAAKwQ,aAAgC,IAAlBxQ,EAAKssB,SAEtB,UAAWtsB,EACT,UAAWA,EAAKwQ,WACXxQ,EAAKwQ,WAAW8b,WAAaA,EAE7BtsB,EAAKssB,WAAaA,EAMtBtsB,EAAKunB,aAAe+E,GAG3BtsB,EAAKunB,cAAgB+E,GAAYopE,GAAmB11F,KAAUssB,EAGzDtsB,EAAKssB,WAAaA,EAGhB,UAAWtsB,GACbA,EAAKssB,WAAaA,GAa/B,SAAS6qE,GAAuBhrF,GAC9B,OAAOoqF,IAAa,SAAUjoE,GAE5B,OADAA,GAAYA,EACLioE,IAAa,SAAUV,EAAM/uE,GAKlC,IAJA,IAAIjpB,EACAu5F,EAAejrF,EAAG,GAAI0pF,EAAKxoG,OAAQihC,GACnC77B,EAAI2kG,EAAa/pG,OAEdoF,KACDojG,EAAKh4F,EAAIu5F,EAAa3kG,MACxBojG,EAAKh4F,KAAOipB,EAAQjpB,GAAKg4F,EAAKh4F,WAaxC,SAASs4F,GAAYrF,GACnB,OAAOA,QAAmD,IAAjCA,EAAQl3F,sBAAwCk3F,EAi/B3E,IAAKr+F,KA7+BL89F,EAAUgC,GAAOhC,QAAU,GAO3BmC,EAAQH,GAAOG,MAAQ,SAAU1yF,GAC/B,IAAIykB,EAAYzkB,GAAQA,EAAKg3C,aACzBi8C,EAAUjzF,IAASA,EAAKqnE,eAAiBrnE,GAAM1I,gBAInD,OAAQo9F,EAAM9pF,KAAK6Z,GAAawuE,GAAWA,EAAQ3iF,UAAY,SASjE0iF,EAAcT,GAAOS,YAAc,SAAU74E,GAC3C,IAAIk9E,EACAC,EACA/uD,EAAMpuB,EAAOA,EAAKktD,eAAiBltD,EAAOk5E,EAM9C,OAAI9qD,GAAOz9C,GAA6B,IAAjBy9C,EAAIzc,UAAmByc,EAAIjxC,iBAMlD27F,GADAnoG,EAAWy9C,GACQjxC,gBACnB47F,GAAkBR,EAAM5nG,GAOpBuoG,GAAgBvoG,IAAawsG,EAAYxsG,EAASysG,cAAgBD,EAAUvqG,MAAQuqG,IAElFA,EAAUvsG,iBACZusG,EAAUvsG,iBAAiB,SAAU0qG,IAAe,GAC3C6B,EAAUE,aACnBF,EAAUE,YAAY,WAAY/B,KAStClF,EAAQv+F,MAAQwkG,IAAO,SAAUrgG,GAE/B,OADA88F,EAAQ5rF,YAAYlR,GAAIkR,YAAYvc,EAASic,cAAc,aACrB,IAAxB5Q,EAAG6H,mBAAqC7H,EAAG6H,iBAAiB,uBAAuB3Q,UAQnGkjG,EAAQhqE,WAAaiwE,IAAO,SAAUrgG,GAEpC,OADAA,EAAGoB,UAAY,KACPpB,EAAGka,aAAa,gBAM1BkgF,EAAQ32F,qBAAuB48F,IAAO,SAAUrgG,GAE9C,OADAA,EAAGkR,YAAYvc,EAAS2sG,cAAc,MAC9BthG,EAAGyD,qBAAqB,KAAKvM,UAGvCkjG,EAAQ72F,uBAAyBm7F,EAAQjqF,KAAK9f,EAAS4O,wBAKvD62F,EAAQmH,QAAUlB,IAAO,SAAUrgG,GAEjC,OADA88F,EAAQ5rF,YAAYlR,GAAI1E,GAAKogG,GACrB/mG,EAAS6sG,oBAAsB7sG,EAAS6sG,kBAAkB9F,GAASxkG,UAGzEkjG,EAAQmH,SACVlF,EAAK/9F,OAAW,GAAI,SAAUhD,GAC5B,IAAImmG,EAASnmG,EAAGJ,QAAQ2jG,GAAWC,IACnC,OAAO,SAAUj1F,GACf,OAAOA,EAAKqQ,aAAa,QAAUunF,IAIvCpF,EAAK3lG,KAAS,GAAI,SAAU4E,EAAIq/F,GAC9B,QAAsC,IAA3BA,EAAQh4F,gBAAkCo6F,EAAgB,CACnE,IAAIlzF,EAAO8wF,EAAQh4F,eAAerH,GAClC,OAAOuO,EAAO,CAACA,GAAQ,OAI3BwyF,EAAK/9F,OAAW,GAAI,SAAUhD,GAC5B,IAAImmG,EAASnmG,EAAGJ,QAAQ2jG,GAAWC,IACnC,OAAO,SAAUj1F,GACf,IAAIma,OAAwC,IAA1Bna,EAAK63F,kBAAoC73F,EAAK63F,iBAAiB,MACjF,OAAO19E,GAAQA,EAAK/oB,QAAUwmG,IAMlCpF,EAAK3lG,KAAS,GAAI,SAAU4E,EAAIq/F,GAC9B,QAAsC,IAA3BA,EAAQh4F,gBAAkCo6F,EAAgB,CACnE,IAAI/4E,EACA1nB,EACAy+F,EACAlxF,EAAO8wF,EAAQh4F,eAAerH,GAElC,GAAIuO,EAAM,CAIR,IAFAma,EAAOna,EAAK63F,iBAAiB,QAEjB19E,EAAK/oB,QAAUK,EACzB,MAAO,CAACuO,GAOV,IAHAkxF,EAAQJ,EAAQ6G,kBAAkBlmG,GAClCgB,EAAI,EAEGuN,EAAOkxF,EAAMz+F,MAGlB,IAFA0nB,EAAOna,EAAK63F,iBAAiB,QAEjB19E,EAAK/oB,QAAUK,EACzB,MAAO,CAACuO,GAKd,MAAO,MAMbwyF,EAAK3lG,KAAU,IAAI0jG,EAAQ32F,qBAAuB,SAAUu2B,EAAK2gE,GAC/D,YAA4C,IAAjCA,EAAQl3F,qBACVk3F,EAAQl3F,qBAAqBu2B,GAC3BogE,EAAQ2F,IACVpF,EAAQ9yF,iBAAiBmyB,QAD3B,GAGL,SAAUA,EAAK2gE,GACjB,IAAI9wF,EACA83F,EAAM,GACNrlG,EAAI,EAER0/F,EAAUrB,EAAQl3F,qBAAqBu2B,GAEvC,GAAY,MAARA,EAAa,CACf,KAAOnwB,EAAOmyF,EAAQ1/F,MACE,IAAlBuN,EAAK8rB,UACPgsE,EAAIlkG,KAAKoM,GAIb,OAAO83F,EAGT,OAAO3F,GAGTK,EAAK3lG,KAAY,MAAI0jG,EAAQ72F,wBAA0B,SAAUnC,EAAWu5F,GAC1E,QAA8C,IAAnCA,EAAQp3F,wBAA0Cw5F,EAC3D,OAAOpC,EAAQp3F,uBAAuBnC,IAS1C67F,EAAgB,GAMhBD,EAAY,IAER5C,EAAQ2F,IAAMrB,EAAQjqF,KAAK9f,EAASkT,qBAGtCw4F,IAAO,SAAUrgG,GACf,IAAIkI,EAMJ40F,EAAQ5rF,YAAYlR,GAAIiR,UAAY,UAAYyqF,EAAZ,qBAAkDA,EAAlD,kEAKhC17F,EAAG6H,iBAAiB,wBAAwB3Q,QAC9C8lG,EAAUv/F,KAAK,yCAKZuC,EAAG6H,iBAAiB,cAAc3Q,QACrC8lG,EAAUv/F,KAAK,mCAAoCkgG,EAAW,KAI3D39F,EAAG6H,iBAAiB,QAAU6zF,EAAU,MAAMxkG,QACjD8lG,EAAUv/F,KAAK,OAQjByK,EAAQvT,EAASic,cAAc,UACzBE,aAAa,OAAQ,IAC3B9Q,EAAGkR,YAAYhJ,GAEVlI,EAAG6H,iBAAiB,aAAa3Q,QACpC8lG,EAAUv/F,KAAK,mFAMZuC,EAAG6H,iBAAiB,YAAY3Q,QACnC8lG,EAAUv/F,KAAK,YAMZuC,EAAG6H,iBAAiB,KAAO6zF,EAAU,MAAMxkG,QAC9C8lG,EAAUv/F,KAAK,YAKjBuC,EAAG6H,iBAAiB,QACpBm1F,EAAUv/F,KAAK,kBAEjB4iG,IAAO,SAAUrgG,GACfA,EAAGiR,UAAY,oFAGf,IAAI/I,EAAQvT,EAASic,cAAc,SACnC1I,EAAM4I,aAAa,OAAQ,UAC3B9Q,EAAGkR,YAAYhJ,GAAO4I,aAAa,OAAQ,KAGvC9Q,EAAG6H,iBAAiB,YAAY3Q,QAClC8lG,EAAUv/F,KAAK,sCAK8B,IAA3CuC,EAAG6H,iBAAiB,YAAY3Q,QAClC8lG,EAAUv/F,KAAK,WAAY,aAK7Bq/F,EAAQ5rF,YAAYlR,GAAIm2B,UAAW,EAEa,IAA5Cn2B,EAAG6H,iBAAiB,aAAa3Q,QACnC8lG,EAAUv/F,KAAK,WAAY,aAK7BuC,EAAG6H,iBAAiB,QACpBm1F,EAAUv/F,KAAK,aAIf28F,EAAQwH,gBAAkBlD,EAAQjqF,KAAKkc,EAAUmsE,EAAQnsE,SAAWmsE,EAAQ+E,uBAAyB/E,EAAQgF,oBAAsBhF,EAAQiF,kBAAoBjF,EAAQkF,qBACzK3B,IAAO,SAAUrgG,GAGfo6F,EAAQ6H,kBAAoBtxE,EAAQ7d,KAAK9S,EAAI,KAG7C2wB,EAAQ7d,KAAK9S,EAAI,aACjBi9F,EAAcx/F,KAAK,KAAMqgG,MAI7Bd,EAAYA,EAAU9lG,QAAU,IAAIs9B,OAAOwoE,EAAU1+E,KAAK,MAC1D2+E,EAAgBA,EAAc/lG,QAAU,IAAIs9B,OAAOyoE,EAAc3+E,KAAK,MAItE4iF,EAAaxC,EAAQjqF,KAAKqoF,EAAQoF,yBAIlCt+F,EAAWs9F,GAAcxC,EAAQjqF,KAAKqoF,EAAQl5F,UAAY,SAAU+C,EAAGC,GACrE,IAAIu7F,EAAuB,IAAfx7F,EAAEgvB,SAAiBhvB,EAAExF,gBAAkBwF,EAC/Cy7F,EAAMx7F,GAAKA,EAAEyT,WACjB,OAAO1T,IAAMy7F,MAAUA,GAAwB,IAAjBA,EAAIzsE,YAAmBwsE,EAAMv+F,SAAWu+F,EAAMv+F,SAASw+F,GAAOz7F,EAAEu7F,yBAA4D,GAAjCv7F,EAAEu7F,wBAAwBE,MACjJ,SAAUz7F,EAAGC,GACf,GAAIA,EACF,KAAOA,EAAIA,EAAEyT,YACX,GAAIzT,IAAMD,EACR,OAAO,EAKb,OAAO,GAMT82F,EAAYyD,EAAa,SAAUv6F,EAAGC,GAEpC,GAAID,IAAMC,EAER,OADAg2F,GAAe,EACR,EAIT,IAAIyF,GAAW17F,EAAEu7F,yBAA2Bt7F,EAAEs7F,wBAE9C,OAAIG,IAYU,GAHdA,GAAW17F,EAAEuqE,eAAiBvqE,KAAOC,EAAEsqE,eAAiBtqE,GAAKD,EAAEu7F,wBAAwBt7F,GACvF,KAEoBwzF,EAAQkI,cAAgB17F,EAAEs7F,wBAAwBv7F,KAAO07F,EAMvE17F,GAAKhS,GAAYgS,EAAEuqE,eAAiBgsB,GAAgBt5F,EAASs5F,EAAcv2F,IACrE,EAONC,GAAKjS,GAAYiS,EAAEsqE,eAAiBgsB,GAAgBt5F,EAASs5F,EAAct2F,GACtE,EAIF+1F,EAAY3nF,EAAQ2nF,EAAWh2F,GAAKqO,EAAQ2nF,EAAW/1F,GAAK,EAGpD,EAAVy7F,GAAe,EAAI,IACxB,SAAU17F,EAAGC,GAEf,GAAID,IAAMC,EAER,OADAg2F,GAAe,EACR,EAGT,IAAI8D,EACApkG,EAAI,EACJimG,EAAM57F,EAAE0T,WACR+nF,EAAMx7F,EAAEyT,WACRmoF,EAAK,CAAC77F,GACN87F,EAAK,CAAC77F,GAEV,IAAK27F,IAAQH,EAMX,OAAOz7F,GAAKhS,GAAY,EAAIiS,GAAKjS,EAAW,EAE5C4tG,GAAO,EAAIH,EAAM,EAAIzF,EAAY3nF,EAAQ2nF,EAAWh2F,GAAKqO,EAAQ2nF,EAAW/1F,GAAK,EAC5E,GAAI27F,IAAQH,EACjB,OAAO3B,GAAa95F,EAAGC,GAMzB,IAFA85F,EAAM/5F,EAEC+5F,EAAMA,EAAIrmF,YACfmoF,EAAGpuD,QAAQssD,GAKb,IAFAA,EAAM95F,EAEC85F,EAAMA,EAAIrmF,YACfooF,EAAGruD,QAAQssD,GAIb,KAAO8B,EAAGlmG,KAAOmmG,EAAGnmG,IAClBA,IAGF,OAAOA,EACPmkG,GAAa+B,EAAGlmG,GAAImmG,EAAGnmG,IAMvBkmG,EAAGlmG,IAAM4gG,GAAgB,EAAIuF,EAAGnmG,IAAM4gG,EAAe,EAErD,GAEKvoG,GAjZEA,GAoZXynG,GAAOzrE,QAAU,SAAU+xE,EAAM3vF,GAC/B,OAAOqpF,GAAOsG,EAAM,KAAM,KAAM3vF,IAGlCqpF,GAAOwF,gBAAkB,SAAU/3F,EAAM64F,GAGvC,GAFA7F,EAAYhzF,GAERuwF,EAAQwH,iBAAmB7E,IAAmBS,EAAuBkF,EAAO,QAAUzF,IAAkBA,EAAcxoF,KAAKiuF,OAAY1F,IAAcA,EAAUvoF,KAAKiuF,IACtK,IACE,IAAI1H,EAAMrqE,EAAQ7d,KAAKjJ,EAAM64F,GAE7B,GAAI1H,GAAOZ,EAAQ6H,mBAEnBp4F,EAAKlV,UAAuC,KAA3BkV,EAAKlV,SAASghC,SAC7B,OAAOqlE,EAET,MAAO77F,GACPq+F,EAAuBkF,GAAM,GAIjC,OAAOtG,GAAOsG,EAAM/tG,EAAU,KAAM,CAACkV,IAAO3S,OAAS,GAGvDklG,GAAOx4F,SAAW,SAAU+2F,EAAS9wF,GAUnC,OAJK8wF,EAAQzpB,eAAiBypB,IAAYhmG,GACxCkoG,EAAYlC,GAGP/2F,EAAS+2F,EAAS9wF,IAG3BuyF,GAAO/+F,KAAO,SAAUwM,EAAMrO,IAMvBqO,EAAKqnE,eAAiBrnE,IAASlV,GAClCkoG,EAAYhzF,GAGd,IAAImM,EAAKqmF,EAAKmE,WAAWhlG,EAAKw0B,eAE9B3gB,EAAM2G,GAAM0kB,EAAO5nB,KAAKupF,EAAKmE,WAAYhlG,EAAKw0B,eAAiBha,EAAGnM,EAAMrO,GAAOuhG,QAAkBt+F,EACjG,YAAeA,IAAR4Q,EAAoBA,EAAM+qF,EAAQhqE,aAAe2sE,EAAiBlzF,EAAKqQ,aAAa1e,IAAS6T,EAAMxF,EAAK63F,iBAAiBlmG,KAAU6T,EAAIszF,UAAYtzF,EAAIpU,MAAQ,MAGxKmhG,GAAO2C,OAAS,SAAU6D,GACxB,OAAQA,EAAM,IAAI1nG,QAAQgkG,GAAYC,KAGxC/C,GAAO71F,MAAQ,SAAUe,GACvB,MAAM,IAAIwW,MAAM,0CAA4CxW,IAQ9D80F,GAAOyG,WAAa,SAAU7G,GAC5B,IAAInyF,EACAi5F,EAAa,GACbp7F,EAAI,EACJpL,EAAI,EAMR,GAJAsgG,GAAgBxC,EAAQ2I,iBACxBpG,GAAavC,EAAQ4I,YAAchH,EAAQnpF,MAAM,GACjDmpF,EAAQlhF,KAAK2iF,GAETb,EAAc,CAChB,KAAO/yF,EAAOmyF,EAAQ1/F,MAChBuN,IAASmyF,EAAQ1/F,KACnBoL,EAAIo7F,EAAWrlG,KAAKnB,IAIxB,KAAOoL,KACLs0F,EAAQ9gF,OAAO4nF,EAAWp7F,GAAI,GAOlC,OADAi1F,EAAY,KACLX,GAQTM,EAAUF,GAAOE,QAAU,SAAUzyF,GACnC,IAAIma,EACAg3E,EAAM,GACN1+F,EAAI,EACJq5B,EAAW9rB,EAAK8rB,SAEpB,GAAKA,GAME,GAAiB,IAAbA,GAA+B,IAAbA,GAA+B,KAAbA,EAAiB,CAG9D,GAAgC,iBAArB9rB,EAAK62C,YACd,OAAO72C,EAAK62C,YAGZ,IAAK72C,EAAOA,EAAK+5C,WAAY/5C,EAAMA,EAAOA,EAAK8iD,YAC7CquC,GAAOsB,EAAQzyF,QAGd,GAAiB,IAAb8rB,GAA+B,IAAbA,EAC3B,OAAO9rB,EAAKo5F,eAhBZ,KAAOj/E,EAAOna,EAAKvN,MAEjB0+F,GAAOsB,EAAQt4E,GAkBnB,OAAOg3E,GAGTqB,EAAOD,GAAO8G,UAAY,CAExB/C,YAAa,GACbgD,aAAc/C,GACdhqF,MAAOkoF,EACPkC,WAAY,GACZ9pG,KAAM,GACN0sG,SAAU,CACR,IAAK,CACHppF,IAAK,aACL7P,OAAO,GAET,IAAK,CACH6P,IAAK,cAEP,IAAK,CACHA,IAAK,kBACL7P,OAAO,GAET,IAAK,CACH6P,IAAK,oBAGTqpF,UAAW,CACT,KAAQ,SAAUjtF,GAShB,OARAA,EAAM,GAAKA,EAAM,GAAGlb,QAAQ2jG,GAAWC,IAEvC1oF,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAM,IAAIlb,QAAQ2jG,GAAWC,IAEtD,OAAb1oF,EAAM,KACRA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAGvBA,EAAMvD,MAAM,EAAG,IAExB,MAAS,SAAUuD,GA2BjB,OAhBAA,EAAM,GAAKA,EAAM,GAAG4Z,cAES,QAAzB5Z,EAAM,GAAGvD,MAAM,EAAG,IAEfuD,EAAM,IACTgmF,GAAO71F,MAAM6P,EAAM,IAKrBA,EAAM,KAAOA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAAK,GAAkB,SAAbA,EAAM,IAA8B,QAAbA,EAAM,KACvFA,EAAM,KAAOA,EAAM,GAAKA,EAAM,IAAmB,QAAbA,EAAM,KACjCA,EAAM,IACfgmF,GAAO71F,MAAM6P,EAAM,IAGdA,GAET,OAAU,SAAUA,GAClB,IAAIktF,EACAC,GAAYntF,EAAM,IAAMA,EAAM,GAElC,OAAIkoF,EAAiB,MAAE7pF,KAAK2B,EAAM,IACzB,MAILA,EAAM,GACRA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAC1BmtF,GAAYnF,EAAQ3pF,KAAK8uF,KACpCD,EAAS9G,EAAS+G,GAAU,MAC5BD,EAASC,EAASvuF,QAAQ,IAAKuuF,EAASrsG,OAASosG,GAAUC,EAASrsG,UAElEkf,EAAM,GAAKA,EAAM,GAAGvD,MAAM,EAAGywF,GAC7BltF,EAAM,GAAKmtF,EAAS1wF,MAAM,EAAGywF,IAIxBltF,EAAMvD,MAAM,EAAG,MAG1BvU,OAAQ,CACN,IAAO,SAAUklG,GACf,IAAIrpF,EAAWqpF,EAAiBtoG,QAAQ2jG,GAAWC,IAAW9uE,cAC9D,MAA4B,MAArBwzE,EAA2B,WAChC,OAAO,GACL,SAAU35F,GACZ,OAAOA,EAAKsQ,UAAYtQ,EAAKsQ,SAAS6V,gBAAkB7V,IAG5D,MAAS,SAAU/Y,GACjB,IAAIqiG,EAAUrG,EAAWh8F,EAAY,KACrC,OAAOqiG,IAAYA,EAAU,IAAIjvE,OAAO,0BAA2BpzB,EAAY,IAAMw8F,EAAa,SAAWR,EAAWh8F,GAAW,SAAUyI,GAC3I,OAAO45F,EAAQhvF,KAA+B,iBAAnB5K,EAAKzI,WAA0ByI,EAAKzI,gBAA0C,IAAtByI,EAAKqQ,cAAgCrQ,EAAKqQ,aAAa,UAAY,QAG1J,KAAQ,SAAU1e,EAAM8uF,EAAUrqD,GAChC,OAAO,SAAUp2B,GACf,IAAIwU,EAAS+9E,GAAO/+F,KAAKwM,EAAMrO,GAE/B,OAAc,MAAV6iB,EACkB,OAAbisE,GAGJA,IAILjsE,GAAU,GAGU,MAAbisE,EAAmBjsE,IAAW4hB,EAAqB,OAAbqqD,EAAoBjsE,IAAW4hB,EAAqB,OAAbqqD,EAAoBrqD,GAAmC,IAA1B5hB,EAAOrJ,QAAQirB,GAA4B,OAAbqqD,EAAoBrqD,GAAS5hB,EAAOrJ,QAAQirB,IAAU,EAAiB,OAAbqqD,EAAoBrqD,GAAS5hB,EAAOxL,OAAOotB,EAAM/oC,UAAY+oC,EAAqB,OAAbqqD,GAAqB,IAAMjsE,EAAOnjB,QAAQ6iG,EAAa,KAAO,KAAK/oF,QAAQirB,IAAU,EAAiB,OAAbqqD,IAAoBjsE,IAAW4hB,GAAS5hB,EAAOxL,MAAM,EAAGotB,EAAM/oC,OAAS,KAAO+oC,EAAQ,QAIjc,MAAS,SAAU1kC,EAAMmoG,EAAMC,EAAWx5F,EAAOo6B,GAC/C,IAAIzI,EAA8B,QAArBvgC,EAAKsX,MAAM,EAAG,GACvB+wF,EAA6B,SAAnBroG,EAAKsX,OAAO,GACtBgxF,EAAkB,YAATH,EACb,OAAiB,IAAVv5F,GAAwB,IAATo6B,EACtB,SAAU16B,GACR,QAASA,EAAKwQ,YACZ,SAAUxQ,EAAMi6F,EAAUxT,GAC5B,IAAIh4E,EACAyrF,EACAC,EACAhgF,EACAigF,EACAllD,EACA/kC,EAAM8hB,IAAW8nE,EAAU,cAAgB,kBAC3Ch2F,EAAS/D,EAAKwQ,WACd7e,EAAOqoG,GAAUh6F,EAAKsQ,SAAS6V,cAC/Bk0E,GAAY5T,IAAQuT,EACpBlD,GAAO,EAEX,GAAI/yF,EAAQ,CAEV,GAAIkuB,EAAQ,CACV,KAAO9hB,GAAK,CAGV,IAFAgK,EAAOna,EAEAma,EAAOA,EAAKhK,IACjB,GAAI6pF,EAAS7/E,EAAK7J,SAAS6V,gBAAkBx0B,EAAyB,IAAlBwoB,EAAK2R,SACvD,OAAO,EAKXopB,EAAQ/kC,EAAe,SAATze,IAAoBwjD,GAAS,cAG7C,OAAO,EAKT,GAFAA,EAAQ,CAAC6kD,EAAUh2F,EAAOg2C,WAAah2C,EAAOu2F,WAE1CP,GAAWM,GAab,IAHAvD,GADAsD,GADA3rF,GADAyrF,GAHAC,GADAhgF,EAAOpW,GACW8tF,KAAa13E,EAAK03E,GAAW,KAGtB13E,EAAKogF,YAAcJ,EAAWhgF,EAAKogF,UAAY,KACpD7oG,IAAS,IACX,KAAO4hG,GAAW7kF,EAAM,KACtBA,EAAM,GAC1B0L,EAAOigF,GAAar2F,EAAOkzC,WAAWmjD,GAE/BjgF,IAASigF,GAAajgF,GAAQA,EAAKhK,KAC1C2mF,EAAOsD,EAAY,IAAMllD,EAAMI,OAE7B,GAAsB,IAAlBn7B,EAAK2R,YAAoBgrE,GAAQ38E,IAASna,EAAM,CAClDk6F,EAAYxoG,GAAQ,CAAC4hG,EAAS8G,EAAWtD,GACzC,YAmBJ,GAdIuD,IASFvD,EADAsD,GADA3rF,GADAyrF,GAHAC,GADAhgF,EAAOna,GACW6xF,KAAa13E,EAAK03E,GAAW,KAGtB13E,EAAKogF,YAAcJ,EAAWhgF,EAAKogF,UAAY,KACpD7oG,IAAS,IACX,KAAO4hG,GAAW7kF,EAAM,KAM/B,IAATqoF,EAEF,MAAO38E,IAASigF,GAAajgF,GAAQA,EAAKhK,KAAS2mF,EAAOsD,EAAY,IAAMllD,EAAMI,UAC3E0kD,EAAS7/E,EAAK7J,SAAS6V,gBAAkBx0B,EAAyB,IAAlBwoB,EAAK2R,cAAqBgrE,IAEzEuD,KAIFH,GAHAC,EAAahgF,EAAK03E,KAAa13E,EAAK03E,GAAW,KAGtB13E,EAAKogF,YAAcJ,EAAWhgF,EAAKogF,UAAY,KAC5D7oG,GAAQ,CAAC4hG,EAASwD,IAG5B38E,IAASna,MAUrB,OADA82F,GAAQp8D,KACQp6B,GAASw2F,EAAOx2F,GAAU,GAAKw2F,EAAOx2F,GAAS,KAIrE,OAAU,SAAUk6F,EAAQlsE,GAK1B,IAAIpJ,EACA/Y,EAAKqmF,EAAKyB,QAAQuG,IAAWhI,EAAKiI,WAAWD,EAAOr0E,gBAAkBosE,GAAO71F,MAAM,uBAAyB89F,GAIhH,OAAIruF,EAAG0lF,GACE1lF,EAAGmiB,GAIRniB,EAAG9e,OAAS,GACd63B,EAAO,CAACs1E,EAAQA,EAAQ,GAAIlsE,GACrBkkE,EAAKiI,WAAWxhF,eAAeuhF,EAAOr0E,eAAiBowE,IAAa,SAAUV,EAAM/uE,GAKzF,IAJA,IAAI3mB,EACAu6F,EAAUvuF,EAAG0pF,EAAMvnE,GACnB77B,EAAIioG,EAAQrtG,OAEToF,KAELojG,EADA11F,EAAMgL,EAAQ0qF,EAAM6E,EAAQjoG,OACdq0B,EAAQ3mB,GAAOu6F,EAAQjoG,OAEpC,SAAUuN,GACb,OAAOmM,EAAGnM,EAAM,EAAGklB,KAIhB/Y,IAGX8nF,QAAS,CAEP,IAAOsC,IAAa,SAAUt2E,GAI5B,IAAI5hB,EAAQ,GACR8zF,EAAU,GACVwI,EAAU/H,EAAQ3yE,EAAS5uB,QAAQ8iG,EAAO,OAC9C,OAAOwG,EAAQ9I,GAAW0E,IAAa,SAAUV,EAAM/uE,EAASmzE,EAAUxT,GAKxE,IAJA,IAAIzmF,EACA46F,EAAYD,EAAQ9E,EAAM,KAAMpP,EAAK,IACrCh0F,EAAIojG,EAAKxoG,OAENoF,MACDuN,EAAO46F,EAAUnoG,MACnBojG,EAAKpjG,KAAOq0B,EAAQr0B,GAAKuN,OAG1B,SAAUA,EAAMi6F,EAAUxT,GAK7B,OAJApoF,EAAM,GAAK2B,EACX26F,EAAQt8F,EAAO,KAAMooF,EAAK0L,GAE1B9zF,EAAM,GAAK,MACH8zF,EAAQ78C,UAGpB,IAAOihD,IAAa,SAAUt2E,GAC5B,OAAO,SAAUjgB,GACf,OAAOuyF,GAAOtyE,EAAUjgB,GAAM3S,OAAS,MAG3C,SAAYkpG,IAAa,SAAU/oG,GAEjC,OADAA,EAAOA,EAAK6D,QAAQ2jG,GAAWC,IACxB,SAAUj1F,GACf,OAAQA,EAAK62C,aAAe47C,EAAQzyF,IAAOmL,QAAQ3d,IAAS,MAUhE,KAAQ+oG,IAAa,SAAUrlD,GAO7B,OALKsjD,EAAY5pF,KAAKsmC,GAAQ,KAC5BqhD,GAAO71F,MAAM,qBAAuBw0C,GAGtCA,EAAOA,EAAK7/C,QAAQ2jG,GAAWC,IAAW9uE,cACnC,SAAUnmB,GACf,IAAI66F,EAEJ,GACE,GAAIA,EAAW3H,EAAiBlzF,EAAKkxC,KAAOlxC,EAAKqQ,aAAa,aAAerQ,EAAKqQ,aAAa,QAE7F,OADAwqF,EAAWA,EAAS10E,iBACA+qB,GAAyC,IAAjC2pD,EAAS1vF,QAAQ+lC,EAAO,YAE9ClxC,EAAOA,EAAKwQ,aAAiC,IAAlBxQ,EAAK8rB,UAE1C,OAAO,MAIX,OAAU,SAAU9rB,GAClB,IAAI5G,EAAOrN,EAAOyP,UAAYzP,EAAOyP,SAASpC,KAC9C,OAAOA,GAAQA,EAAK4P,MAAM,KAAOhJ,EAAKvO,IAExC,KAAQ,SAAUuO,GAChB,OAAOA,IAASizF,GAElB,MAAS,SAAUjzF,GACjB,OAAOA,IAASlV,EAAS6iC,iBAAmB7iC,EAASgwG,UAAYhwG,EAASgwG,gBAAkB96F,EAAKtO,MAAQsO,EAAKvE,OAASuE,EAAK+6F,WAG9H,QAAW7D,IAAqB,GAChC,SAAYA,IAAqB,GACjC,QAAW,SAAUl3F,GAGnB,IAAIsQ,EAAWtQ,EAAKsQ,SAAS6V,cAC7B,MAAoB,UAAb7V,KAA0BtQ,EAAK4D,SAAwB,WAAb0M,KAA2BtQ,EAAKqhB,UAEnF,SAAY,SAAUrhB,GAQpB,OALIA,EAAKwQ,YAEPxQ,EAAKwQ,WAAWwqF,eAGO,IAAlBh7F,EAAKqhB,UAGd,MAAS,SAAUrhB,GAKjB,IAAKA,EAAOA,EAAK+5C,WAAY/5C,EAAMA,EAAOA,EAAK8iD,YAC7C,GAAI9iD,EAAK8rB,SAAW,EAClB,OAAO,EAIX,OAAO,GAET,OAAU,SAAU9rB,GAClB,OAAQwyF,EAAKyB,QAAe,MAAEj0F,IAGhC,OAAU,SAAUA,GAClB,OAAO40F,EAAQhqF,KAAK5K,EAAKsQ,WAE3B,MAAS,SAAUtQ,GACjB,OAAO20F,EAAQ/pF,KAAK5K,EAAKsQ,WAE3B,OAAU,SAAUtQ,GAClB,IAAIrO,EAAOqO,EAAKsQ,SAAS6V,cACzB,MAAgB,UAATx0B,GAAkC,WAAdqO,EAAKtO,MAA8B,WAATC,GAEvD,KAAQ,SAAUqO,GAChB,IAAIxM,EACJ,MAAuC,UAAhCwM,EAAKsQ,SAAS6V,eAA2C,SAAdnmB,EAAKtO,OAEjB,OAArC8B,EAAOwM,EAAKqQ,aAAa,UAA2C,SAAvB7c,EAAK2yB,gBAGrD,MAASgxE,IAAuB,WAC9B,MAAO,CAAC,MAEV,KAAQA,IAAuB,SAAU8D,EAAe5tG,GACtD,MAAO,CAACA,EAAS,MAEnB,GAAM8pG,IAAuB,SAAU8D,EAAe5tG,EAAQihC,GAC5D,MAAO,CAACA,EAAW,EAAIA,EAAWjhC,EAASihC,MAE7C,KAAQ6oE,IAAuB,SAAUC,EAAc/pG,GAGrD,IAFA,IAAIoF,EAAI,EAEDA,EAAIpF,EAAQoF,GAAK,EACtB2kG,EAAaxjG,KAAKnB,GAGpB,OAAO2kG,KAET,IAAOD,IAAuB,SAAUC,EAAc/pG,GAGpD,IAFA,IAAIoF,EAAI,EAEDA,EAAIpF,EAAQoF,GAAK,EACtB2kG,EAAaxjG,KAAKnB,GAGpB,OAAO2kG,KAET,GAAMD,IAAuB,SAAUC,EAAc/pG,EAAQihC,GAG3D,IAFA,IAAI77B,EAAI67B,EAAW,EAAIA,EAAWjhC,EAASihC,EAAWjhC,EAASA,EAASihC,IAE/D77B,GAAK,GACZ2kG,EAAaxjG,KAAKnB,GAGpB,OAAO2kG,KAET,GAAMD,IAAuB,SAAUC,EAAc/pG,EAAQihC,GAG3D,IAFA,IAAI77B,EAAI67B,EAAW,EAAIA,EAAWjhC,EAASihC,IAElC77B,EAAIpF,GACX+pG,EAAaxjG,KAAKnB,GAGpB,OAAO2kG,OAIb5E,EAAKyB,QAAa,IAAIzB,EAAKyB,QAAY,GAE7B,CACRiH,OAAO,EACPvwB,UAAU,EACVwwB,MAAM,EACNC,UAAU,EACVz2C,OAAO,GAEP6tC,EAAKyB,QAAQxhG,GAAKukG,GAAkBvkG,GAGtC,IAAKA,IAAK,CACRiT,QAAQ,EACRsgE,OAAO,GAEPwsB,EAAKyB,QAAQxhG,GAAKwkG,GAAmBxkG,GAIvC,SAASgoG,MAuET,SAASrE,GAAWliF,GAKlB,IAJA,IAAIzhB,EAAI,EACJ6gB,EAAMY,EAAO7mB,OACb4yB,EAAW,GAERxtB,EAAI6gB,EAAK7gB,IACdwtB,GAAY/L,EAAOzhB,GAAGrB,MAGxB,OAAO6uB,EAGT,SAAS01E,GAAcgF,EAASU,EAAYjjB,GAC1C,IAAIjoE,EAAMkrF,EAAWlrF,IACjBmrF,EAAOD,EAAWl0E,KAClBhlB,EAAMm5F,GAAQnrF,EACdorF,EAAmBnjB,GAAgB,eAARj2E,EAC3Bq5F,EAAWr1F,IACf,OAAOk1F,EAAW/6F,MAClB,SAAUN,EAAM8wF,EAASrK,GACvB,KAAOzmF,EAAOA,EAAKmQ,IACjB,GAAsB,IAAlBnQ,EAAK8rB,UAAkByvE,EACzB,OAAOZ,EAAQ36F,EAAM8wF,EAASrK,GAIlC,OAAO,GAET,SAAUzmF,EAAM8wF,EAASrK,GACvB,IAAIgV,EACAvB,EACAC,EACAuB,EAAW,CAACpI,EAASkI,GAEzB,GAAI/U,GACF,KAAOzmF,EAAOA,EAAKmQ,IACjB,IAAsB,IAAlBnQ,EAAK8rB,UAAkByvE,IACrBZ,EAAQ36F,EAAM8wF,EAASrK,GACzB,OAAO,OAKb,KAAOzmF,EAAOA,EAAKmQ,IACjB,GAAsB,IAAlBnQ,EAAK8rB,UAAkByvE,EAMzB,GAFArB,GAHAC,EAAan6F,EAAK6xF,KAAa7xF,EAAK6xF,GAAW,KAGtB7xF,EAAKu6F,YAAcJ,EAAWn6F,EAAKu6F,UAAY,IAEpEe,GAAQA,IAASt7F,EAAKsQ,SAAS6V,cACjCnmB,EAAOA,EAAKmQ,IAAQnQ,MACf,KAAKy7F,EAAWvB,EAAY/3F,KAASs5F,EAAS,KAAOnI,GAAWmI,EAAS,KAAOD,EAErF,OAAOE,EAAS,GAAKD,EAAS,GAK9B,GAFAvB,EAAY/3F,GAAOu5F,EAEfA,EAAS,GAAKf,EAAQ36F,EAAM8wF,EAASrK,GACvC,OAAO,EAOjB,OAAO,GAIX,SAASkV,GAAeC,GACtB,OAAOA,EAASvuG,OAAS,EAAI,SAAU2S,EAAM8wF,EAASrK,GAGpD,IAFA,IAAIh0F,EAAImpG,EAASvuG,OAEVoF,KACL,IAAKmpG,EAASnpG,GAAGuN,EAAM8wF,EAASrK,GAC9B,OAAO,EAIX,OAAO,GACLmV,EAAS,GAcf,SAASC,GAASjB,EAAWr/E,EAAK9mB,EAAQq8F,EAASrK,GAOjD,IANA,IAAIzmF,EACA87F,EAAe,GACfrpG,EAAI,EACJ6gB,EAAMsnF,EAAUvtG,OAChB0uG,EAAgB,MAAPxgF,EAEN9oB,EAAI6gB,EAAK7gB,KACVuN,EAAO46F,EAAUnoG,MACdgC,IAAUA,EAAOuL,EAAM8wF,EAASrK,KACnCqV,EAAaloG,KAAKoM,GAEd+7F,GACFxgF,EAAI3nB,KAAKnB,KAMjB,OAAOqpG,EAGT,SAASE,GAAWxC,EAAWv5E,EAAU06E,EAASsB,EAAYC,EAAYC,GASxE,OARIF,IAAeA,EAAWpK,KAC5BoK,EAAaD,GAAWC,IAGtBC,IAAeA,EAAWrK,KAC5BqK,EAAaF,GAAWE,EAAYC,IAG/B5F,IAAa,SAAUV,EAAM1D,EAASrB,EAASrK,GACpD,IAAI3pD,EACArqC,EACAuN,EACAo8F,EAAS,GACTC,EAAU,GACVC,EAAcnK,EAAQ9kG,OAE1B6jG,EAAQ2E,GAlDZ,SAA0B51E,EAAUs8E,EAAUpK,GAI5C,IAHA,IAAI1/F,EAAI,EACJ6gB,EAAMipF,EAASlvG,OAEZoF,EAAI6gB,EAAK7gB,IACd8/F,GAAOtyE,EAAUs8E,EAAS9pG,GAAI0/F,GAGhC,OAAOA,EA0CWqK,CAAiBv8E,GAAY,IAAK6wE,EAAQhlE,SAAW,CAACglE,GAAWA,EAAS,IAE1F2L,GAAYjD,IAAc3D,GAAS51E,EAA+DixE,EAAnD2K,GAAS3K,EAAOkL,EAAQ5C,EAAW1I,EAASrK,GACvFiW,EAAa/B,EACjBuB,IAAerG,EAAO2D,EAAY8C,GAAeL,GACjD,GACA9J,EAAUsK,EAOV,GALI9B,GACFA,EAAQ8B,EAAWC,EAAY5L,EAASrK,GAItCwV,EAMF,IALAn/D,EAAO++D,GAASa,EAAYL,GAC5BJ,EAAWn/D,EAAM,GAAIg0D,EAASrK,GAE9Bh0F,EAAIqqC,EAAKzvC,OAEFoF,MACDuN,EAAO88B,EAAKrqC,MACdiqG,EAAWL,EAAQ5pG,MAAQgqG,EAAUJ,EAAQ5pG,IAAMuN,IAKzD,GAAI61F,GACF,GAAIqG,GAAc1C,EAAW,CAC3B,GAAI0C,EAAY,CAKd,IAHAp/D,EAAO,GACPrqC,EAAIiqG,EAAWrvG,OAERoF,MACDuN,EAAO08F,EAAWjqG,KAEpBqqC,EAAKlpC,KAAK6oG,EAAUhqG,GAAKuN,GAI7Bk8F,EAAW,KAAMQ,EAAa,GAAI5/D,EAAM2pD,GAM1C,IAFAh0F,EAAIiqG,EAAWrvG,OAERoF,MACAuN,EAAO08F,EAAWjqG,MAAQqqC,EAAOo/D,EAAa/wF,EAAQ0qF,EAAM71F,GAAQo8F,EAAO3pG,KAAO,IACrFojG,EAAK/4D,KAAUq1D,EAAQr1D,GAAQ98B,UAMrC08F,EAAab,GAASa,IAAevK,EAAUuK,EAAWrrF,OAAOirF,EAAaI,EAAWrvG,QAAUqvG,GAE/FR,EACFA,EAAW,KAAM/J,EAASuK,EAAYjW,GAEtC7yF,EAAKoa,MAAMmkF,EAASuK,MAM5B,SAASC,GAAkBzoF,GAsBzB,IArBA,IAAI0oF,EACAjC,EACA98F,EACAyV,EAAMY,EAAO7mB,OACbwvG,EAAkBrK,EAAK+G,SAASrlF,EAAO,GAAGxiB,MAC1CorG,EAAmBD,GAAmBrK,EAAK+G,SAAS,KACpD9mG,EAAIoqG,EAAkB,EAAI,EAE9BE,EAAepH,IAAc,SAAU31F,GACrC,OAAOA,IAAS48F,IACfE,GAAkB,GACjBE,EAAkBrH,IAAc,SAAU31F,GAC5C,OAAOmL,EAAQyxF,EAAc58F,IAAS,IACrC88F,GAAkB,GACjBlB,EAAW,CAAC,SAAU57F,EAAM8wF,EAASrK,GACvC,IAAI0K,GAAO0L,IAAoBpW,GAAOqK,IAAY+B,MAAuB+J,EAAe9L,GAAShlE,SAAWixE,EAAa/8F,EAAM8wF,EAASrK,GAAOuW,EAAgBh9F,EAAM8wF,EAASrK,IAG9K,OADAmW,EAAe,KACRzL,IAGF1+F,EAAI6gB,EAAK7gB,IACd,GAAIkoG,EAAUnI,EAAK+G,SAASrlF,EAAOzhB,GAAGf,MACpCkqG,EAAW,CAACjG,GAAcgG,GAAeC,GAAWjB,QAC/C,CAGL,IAFAA,EAAUnI,EAAK/9F,OAAOyf,EAAOzhB,GAAGf,MAAMsc,MAAM,KAAMkG,EAAOzhB,GAAGq0B,UAEhD+qE,GAAU,CAIpB,IAFAh0F,IAAMpL,EAECoL,EAAIyV,IACLk/E,EAAK+G,SAASrlF,EAAOrW,GAAGnM,MADdmM,KAMhB,OAAOm+F,GAAWvpG,EAAI,GAAKkpG,GAAeC,GAAWnpG,EAAI,GAAK2jG,GAC9DliF,EAAOlL,MAAM,EAAGvW,EAAI,GAAG4lB,OAAO,CAC5BjnB,MAA8B,MAAvB8iB,EAAOzhB,EAAI,GAAGf,KAAe,IAAM,MACxCL,QAAQ8iG,EAAO,MAAOwG,EAASloG,EAAIoL,GAAK8+F,GAAkBzoF,EAAOlL,MAAMvW,EAAGoL,IAAKA,EAAIyV,GAAOqpF,GAAkBzoF,EAASA,EAAOlL,MAAMnL,IAAKA,EAAIyV,GAAO8iF,GAAWliF,IAGnK0nF,EAAShoG,KAAK+mG,GAIlB,OAAOgB,GAAeC,GA2RxB,OAxlBAnB,GAAW/nF,UAAY8/E,EAAKyK,QAAUzK,EAAKyB,QAC3CzB,EAAKiI,WAAa,IAAIA,GAEtB9H,EAAWJ,GAAOI,SAAW,SAAU1yE,EAAUi9E,GAC/C,IAAIxC,EACAnuF,EACA2H,EACAxiB,EACAyrG,EACApH,EACAqH,EACAC,EAAS5J,EAAWxzE,EAAW,KAEnC,GAAIo9E,EACF,OAAOH,EAAY,EAAIG,EAAOr0F,MAAM,GAOtC,IAJAm0F,EAAQl9E,EACR81E,EAAS,GACTqH,EAAa5K,EAAKgH,UAEX2D,GAAO,CAwBZ,IAAKzrG,KAtBAgpG,KAAYnuF,EAAQ6nF,EAAO1kE,KAAKytE,MAC/B5wF,IAEF4wF,EAAQA,EAAMn0F,MAAMuD,EAAM,GAAGlf,SAAW8vG,GAG1CpH,EAAOniG,KAAKsgB,EAAS,KAGvBwmF,GAAU,GAENnuF,EAAQ8nF,EAAa3kE,KAAKytE,MAC5BzC,EAAUnuF,EAAMs+B,QAChB32B,EAAOtgB,KAAK,CACVxC,MAAOspG,EAEPhpG,KAAM6a,EAAM,GAAGlb,QAAQ8iG,EAAO,OAEhCgJ,EAAQA,EAAMn0F,MAAM0xF,EAAQrtG,SAIjBmlG,EAAK/9F,SACX8X,EAAQkoF,EAAU/iG,GAAMg+B,KAAKytE,KAAaC,EAAW1rG,MAAU6a,EAAQ6wF,EAAW1rG,GAAM6a,MAC3FmuF,EAAUnuF,EAAMs+B,QAChB32B,EAAOtgB,KAAK,CACVxC,MAAOspG,EACPhpG,KAAMA,EACNo1B,QAASva,IAEX4wF,EAAQA,EAAMn0F,MAAM0xF,EAAQrtG,SAIhC,IAAKqtG,EACH,MAOJ,OAAOwC,EAAYC,EAAM9vG,OAAS8vG,EAAQ5K,GAAO71F,MAAMujB,GACvDwzE,EAAWxzE,EAAU81E,GAAQ/sF,MAAM,IAoXrC4pF,EAAUL,GAAOK,QAAU,SAAU3yE,EAAU1T,GAG7C,IAAI9Z,EACA6qG,EAAc,GACdC,EAAkB,GAClBF,EAAS3J,EAAczzE,EAAW,KAEtC,IAAKo9E,EAAQ,CAQX,IANK9wF,IACHA,EAAQomF,EAAS1yE,IAGnBxtB,EAAI8Z,EAAMlf,OAEHoF,MACL4qG,EAASV,GAAkBpwF,EAAM9Z,KAEtBo/F,GACTyL,EAAY1pG,KAAKypG,GAEjBE,EAAgB3pG,KAAKypG,GAKzBA,EAAS3J,EAAczzE,EAjJ3B,SAAkCs9E,EAAiBD,GACjD,IAAIE,EAAQF,EAAYjwG,OAAS,EAC7BowG,EAAYF,EAAgBlwG,OAAS,EACrCqwG,EAAe,SAAU7H,EAAM/E,EAASrK,EAAK0L,EAASwL,GACxD,IAAI39F,EACAnC,EACA88F,EACAiD,EAAe,EACfnrG,EAAI,IACJmoG,EAAY/E,GAAQ,GACpBgI,EAAa,GACbC,EAAgBjL,EAEpB3B,EAAQ2E,GAAQ4H,GAAajL,EAAK3lG,KAAU,IAAE,IAAK8wG,GAEnDI,EAAgBzK,GAA4B,MAAjBwK,EAAwB,EAAIznF,KAAK6U,UAAY,GACpE5X,EAAM49E,EAAM7jG,OAahB,IAXIswG,IAKF9K,EAAmB/B,GAAWhmG,GAAYgmG,GAAW6M,GAMhDlrG,IAAM6gB,GAA4B,OAApBtT,EAAOkxF,EAAMz+F,IAAaA,IAAK,CAClD,GAAIgrG,GAAaz9F,EAAM,CAWrB,IAVAnC,EAAI,EAKCizF,GAAW9wF,EAAKqnE,eAAiBv8E,IACpCkoG,EAAYhzF,GACZymF,GAAOyM,GAGFyH,EAAU4C,EAAgB1/F,MAC/B,GAAI88F,EAAQ36F,EAAM8wF,GAAWhmG,EAAU27F,GAAM,CAC3C0L,EAAQv+F,KAAKoM,GACb,MAIA29F,IACFrK,EAAUyK,GAKVP,KAEEx9F,GAAQ26F,GAAW36F,IACrB49F,IAIE/H,GACF+E,EAAUhnG,KAAKoM,IAerB,GARA49F,GAAgBnrG,EAQZ+qG,GAAS/qG,IAAMmrG,EAAc,CAG/B,IAFA//F,EAAI,EAEG88F,EAAU2C,EAAYz/F,MAC3B88F,EAAQC,EAAWiD,EAAY/M,EAASrK,GAG1C,GAAIoP,EAAM,CAER,GAAI+H,EAAe,EACjB,KAAOnrG,KACCmoG,EAAUnoG,IAAMorG,EAAWprG,KAC/BorG,EAAWprG,GAAK6iD,EAAIrsC,KAAKkpF,IAM/B0L,EAAahC,GAASgC,GAIxBjqG,EAAKoa,MAAMmkF,EAAS0L,GAEhBF,IAAc9H,GAAQgI,EAAWxwG,OAAS,GAAKuwG,EAAeN,EAAYjwG,OAAS,GACrFklG,GAAOyG,WAAW7G,GAUtB,OALIwL,IACFrK,EAAUyK,EACVlL,EAAmBiL,GAGdlD,GAGT,OAAO4C,EAAQjH,GAAamH,GAAgBA,EA8BTM,CAAyBT,EAAiBD,IAE3ED,EAAOp9E,SAAWA,EAGpB,OAAOo9E,GAaTrtG,EAASuiG,GAAOviG,OAAS,SAAUiwB,EAAU6wE,EAASqB,EAAS0D,GAC7D,IAAIpjG,EACAyhB,EACAlN,EACAtV,EACA7E,EACAoxG,EAA+B,mBAAbh+E,GAA2BA,EAC7C1T,GAASspF,GAAQlD,EAAS1yE,EAAWg+E,EAASh+E,UAAYA,GAI9D,GAHAkyE,EAAUA,GAAW,GAGA,IAAjB5lF,EAAMlf,OAAc,CAItB,IAFA6mB,EAAS3H,EAAM,GAAKA,EAAM,GAAGvD,MAAM,IAExB3b,OAAS,GAAkC,QAA5B2Z,EAAQkN,EAAO,IAAIxiB,MAAsC,IAArBo/F,EAAQhlE,UAAkBonE,GAAkBV,EAAK+G,SAASrlF,EAAO,GAAGxiB,MAAO,CAGvI,KAFAo/F,GAAW0B,EAAK3lG,KAAS,GAAEma,EAAM8f,QAAQ,GAAGz1B,QAAQ2jG,GAAWC,IAAYnE,IAAY,IAAI,IAGzF,OAAOqB,EACE8L,IACTnN,EAAUA,EAAQtgF,YAGpByP,EAAWA,EAASjX,MAAMkL,EAAO22B,QAAQz5C,MAAM/D,QAMjD,IAFAoF,EAAIgiG,EAAwB,aAAE7pF,KAAKqV,GAAY,EAAI/L,EAAO7mB,OAEnDoF,MACLuU,EAAQkN,EAAOzhB,IAEX+/F,EAAK+G,SAAS7nG,EAAOsV,EAAMtV,QAI/B,IAAI7E,EAAO2lG,EAAK3lG,KAAK6E,MAEfmkG,EAAOhpG,EAAKma,EAAM8f,QAAQ,GAAGz1B,QAAQ2jG,GAAWC,IAAYF,GAASnqF,KAAKsJ,EAAO,GAAGxiB,OAASykG,GAAYrF,EAAQtgF,aAAesgF,IAAU,CAK5I,GAHA58E,EAAO7C,OAAO5e,EAAG,KACjBwtB,EAAW41E,EAAKxoG,QAAU+oG,GAAWliF,IAInC,OADAtgB,EAAKoa,MAAMmkF,EAAS0D,GACb1D,EAGT,OASR,OADC8L,GAAYrL,EAAQ3yE,EAAU1T,IAAQspF,EAAM/E,GAAUoC,EAAgBf,GAAUrB,GAAWiE,GAASnqF,KAAKqV,IAAak2E,GAAYrF,EAAQtgF,aAAesgF,GACnJqB,GAKT5B,EAAQ4I,WAAatH,EAAQtnF,MAAM,IAAI0G,KAAK2iF,GAAWn/E,KAAK,MAAQo9E,EAGpEtB,EAAQ2I,mBAAqBnG,EAE7BC,IAGAzC,EAAQkI,aAAejC,IAAO,SAAUrgG,GAEtC,OAAwE,EAAjEA,EAAGkiG,wBAAwBvtG,EAASic,cAAc,gBAKtDyvF,IAAO,SAAUrgG,GAEpB,OADAA,EAAGiR,UAAY,mBAC+B,MAAvCjR,EAAG4jD,WAAW1pC,aAAa,YAElComF,GAAU,0BAA0B,SAAUz2F,EAAMrO,EAAM+gG,GACxD,IAAKA,EACH,OAAO1yF,EAAKqQ,aAAa1e,EAA6B,SAAvBA,EAAKw0B,cAA2B,EAAI,MAOpEoqE,EAAQhqE,YAAeiwE,IAAO,SAAUrgG,GAG3C,OAFAA,EAAGiR,UAAY,WACfjR,EAAG4jD,WAAW9yC,aAAa,QAAS,IACW,KAAxC9Q,EAAG4jD,WAAW1pC,aAAa,aAElComF,GAAU,SAAS,SAAUz2F,EAAMk+F,EAAOxL,GACxC,IAAKA,GAAyC,UAAhC1yF,EAAKsQ,SAAS6V,cAC1B,OAAOnmB,EAAKuJ,gBAObitF,IAAO,SAAUrgG,GACpB,OAAsC,MAA/BA,EAAGka,aAAa,gBAEvBomF,GAAU3C,GAAU,SAAU9zF,EAAMrO,EAAM+gG,GACxC,IAAIltF,EAEJ,IAAKktF,EACH,OAAsB,IAAf1yF,EAAKrO,GAAiBA,EAAKw0B,eAAiB3gB,EAAMxF,EAAK63F,iBAAiBlmG,KAAU6T,EAAIszF,UAAYtzF,EAAIpU,MAAQ,QAKpHmhG,GAnkET,CAokEExmG,GAEFgU,EAAOlT,KAAO0lG,EACdxyF,EAAO84F,KAAOtG,EAAO8G,UAErBt5F,EAAO84F,KAAK,KAAO94F,EAAO84F,KAAK5E,QAC/Bl0F,EAAOi5F,WAAaj5F,EAAOo+F,OAAS5L,EAAOyG,WAC3Cj5F,EAAOvS,KAAO+kG,EAAOE,QACrB1yF,EAAOq+F,SAAW7L,EAAOG,MACzB3yF,EAAOhG,SAAWw4F,EAAOx4F,SACzBgG,EAAOs+F,eAAiB9L,EAAO2C,OAE/B,IAAI/kF,EAAM,SAAUnQ,EAAMmQ,EAAKmuF,GAI7B,IAHA,IAAI5D,EAAU,GACVz3C,OAAqBruD,IAAV0pG,GAEPt+F,EAAOA,EAAKmQ,KAA2B,IAAlBnQ,EAAK8rB,UAChC,GAAsB,IAAlB9rB,EAAK8rB,SAAgB,CACvB,GAAIm3B,GAAYljD,EAAOC,GAAMqL,GAAGizF,GAC9B,MAGF5D,EAAQ9mG,KAAKoM,GAIjB,OAAO06F,GAGL6D,EAAW,SAAUxoF,EAAG/V,GAG1B,IAFA,IAAI06F,EAAU,GAEP3kF,EAAGA,EAAIA,EAAE+sC,YACK,IAAf/sC,EAAE+V,UAAkB/V,IAAM/V,GAC5B06F,EAAQ9mG,KAAKmiB,GAIjB,OAAO2kF,GAGL8D,EAAgBz+F,EAAO84F,KAAKtsF,MAAMkyF,aAEtC,SAASnuF,EAAStQ,EAAMrO,GACtB,OAAOqO,EAAKsQ,UAAYtQ,EAAKsQ,SAAS6V,gBAAkBx0B,EAAKw0B,cAG/D,IAAIu4E,EAAa,kEAEjB,SAASC,EAAOz1F,EAAU01F,EAAW56F,GACnC,OAAI+jC,EAAW62D,GACN7+F,EAAO4qC,KAAKzhC,GAAU,SAAUlJ,EAAMvN,GAC3C,QAASmsG,EAAU31F,KAAKjJ,EAAMvN,EAAGuN,KAAUgE,KAK3C46F,EAAU9yE,SACL/rB,EAAO4qC,KAAKzhC,GAAU,SAAUlJ,GACrC,OAAOA,IAAS4+F,IAAc56F,KAKT,iBAAd46F,EACF7+F,EAAO4qC,KAAKzhC,GAAU,SAAUlJ,GACrC,OAAOmL,EAAQlC,KAAK21F,EAAW5+F,IAAS,IAAMgE,KAK3CjE,EAAOtL,OAAOmqG,EAAW11F,EAAUlF,GAG5CjE,EAAOtL,OAAS,SAAUokG,EAAM3H,EAAOltF,GACrC,IAAIhE,EAAOkxF,EAAM,GAMjB,OAJIltF,IACF60F,EAAO,QAAUA,EAAO,KAGL,IAAjB3H,EAAM7jG,QAAkC,IAAlB2S,EAAK8rB,SACtB/rB,EAAOlT,KAAKkrG,gBAAgB/3F,EAAM64F,GAAQ,CAAC74F,GAAQ,GAGrDD,EAAOlT,KAAKi6B,QAAQ+xE,EAAM94F,EAAO4qC,KAAKumD,GAAO,SAAUlxF,GAC5D,OAAyB,IAAlBA,EAAK8rB,cAIhB/rB,EAAOoM,GAAGtW,OAAO,CACfhJ,KAAM,SAAUozB,GACd,IAAIxtB,EACA0+F,EACA79E,EAAMhnB,KAAKe,OACXyR,EAAOxS,KAEX,GAAwB,iBAAb2zB,EACT,OAAO3zB,KAAK2kG,UAAUlxF,EAAOkgB,GAAUxrB,QAAO,WAC5C,IAAKhC,EAAI,EAAGA,EAAI6gB,EAAK7gB,IACnB,GAAIsN,EAAOhG,SAAS+E,EAAKrM,GAAInG,MAC3B,OAAO,MAQf,IAFA6kG,EAAM7kG,KAAK2kG,UAAU,IAEhBx+F,EAAI,EAAGA,EAAI6gB,EAAK7gB,IACnBsN,EAAOlT,KAAKozB,EAAUnhB,EAAKrM,GAAI0+F,GAGjC,OAAO79E,EAAM,EAAIvT,EAAOi5F,WAAW7H,GAAOA,GAE5C18F,OAAQ,SAAUwrB,GAChB,OAAO3zB,KAAK2kG,UAAU0N,EAAOryG,KAAM2zB,GAAY,IAAI,KAErDjc,IAAK,SAAUic,GACb,OAAO3zB,KAAK2kG,UAAU0N,EAAOryG,KAAM2zB,GAAY,IAAI,KAErD5U,GAAI,SAAU4U,GACZ,QAAS0+E,EAAOryG,KAEI,iBAAb2zB,GAAyBu+E,EAAc5zF,KAAKqV,GAAYlgB,EAAOkgB,GAAYA,GAAY,IAAI,GAAO5yB,UAK7G,IAAIwxG,EAKJ/J,EAAa,uCACF/0F,EAAOoM,GAAGlhB,KAAO,SAAUg1B,EAAU6wE,EAASpkE,GACvD,IAAIngB,EAAOvM,EAEX,IAAKigB,EACH,OAAO3zB,KAOT,GAFAogC,EAAOA,GAAQmyE,EAES,iBAAb5+E,EAAuB,CAShC,KANE1T,EAFkB,MAAhB0T,EAAS,IAAgD,MAAlCA,EAASA,EAAS5yB,OAAS,IAAc4yB,EAAS5yB,QAAU,EAE7E,CAAC,KAAM4yB,EAAU,MAEjB60E,EAAWplE,KAAKzP,MAIZ1T,EAAM,IAAOukF,EAgCpB,OAAKA,GAAWA,EAAQjlE,QACrBilE,GAAWpkE,GAAM7/B,KAAKozB,GAGvB3zB,KAAK6N,YAAY22F,GAASjkG,KAAKozB,GAlCtC,GAAI1T,EAAM,GAAI,CAMZ,GALAukF,EAAUA,aAAmB/wF,EAAS+wF,EAAQ,GAAKA,EAGnD/wF,EAAO4sC,MAAMrgD,KAAMyT,EAAO++F,UAAUvyF,EAAM,GAAIukF,GAAWA,EAAQhlE,SAAWglE,EAAQzpB,eAAiBypB,EAAUhmG,GAAU,IAErH4zG,EAAW9zF,KAAK2B,EAAM,KAAOxM,EAAO6xF,cAAcd,GACpD,IAAKvkF,KAASukF,EAER/oD,EAAWz7C,KAAKigB,IAClBjgB,KAAKigB,GAAOukF,EAAQvkF,IAEpBjgB,KAAKkH,KAAK+Y,EAAOukF,EAAQvkF,IAK/B,OAAOjgB,KAUP,OARA0T,EAAOlV,EAASgO,eAAeyT,EAAM,OAInCjgB,KAAK,GAAK0T,EACV1T,KAAKe,OAAS,GAGTf,KAUN,OAAI2zB,EAAS6L,UAClBx/B,KAAK,GAAK2zB,EACV3zB,KAAKe,OAAS,EACPf,MAEEy7C,EAAW9nB,QACErrB,IAAf83B,EAAKhU,MAAsBgU,EAAKhU,MAAMuH,GAC7CA,EAASlgB,GAGJA,EAAOmyF,UAAUjyE,EAAU3zB,QAI/BomB,UAAY3S,EAAOoM,GAExB0yF,EAAa9+F,EAAOjV,GACpB,IAAIi0G,EAAe,iCAEnBC,EAAmB,CACjBt+F,UAAU,EACVuO,UAAU,EACVkY,MAAM,EACNH,MAAM,GA8DR,SAASi4E,EAAQpI,EAAK1mF,GACpB,MAAQ0mF,EAAMA,EAAI1mF,KAA0B,IAAjB0mF,EAAI/qE,WAE/B,OAAO+qE,EA/DT92F,EAAOoM,GAAGtW,OAAO,CACfqS,IAAK,SAAU1O,GACb,IAAIi+C,EAAU13C,EAAOvG,EAAQlN,MACzB8nB,EAAIqjC,EAAQpqD,OAChB,OAAOf,KAAKmI,QAAO,WAGjB,IAFA,IAAIhC,EAAI,EAEDA,EAAI2hB,EAAG3hB,IACZ,GAAIsN,EAAOhG,SAASzN,KAAMmrD,EAAQhlD,IAChC,OAAO,MAKfoH,QAAS,SAAUw/F,EAAWvI,GAC5B,IAAI+F,EACApkG,EAAI,EACJ2hB,EAAI9nB,KAAKe,OACTqtG,EAAU,GACVjjD,EAA+B,iBAAd4hD,GAA0Bt5F,EAAOs5F,GAEtD,IAAKmF,EAAc5zF,KAAKyuF,GACtB,KAAO5mG,EAAI2hB,EAAG3hB,IACZ,IAAKokG,EAAMvqG,KAAKmG,GAAIokG,GAAOA,IAAQ/F,EAAS+F,EAAMA,EAAIrmF,WAEpD,GAAIqmF,EAAI/qE,SAAW,KAAO2rB,EAAUA,EAAQloD,MAAMsnG,IAAQ,EACzC,IAAjBA,EAAI/qE,UAAkB/rB,EAAOlT,KAAKkrG,gBAAgBlB,EAAKwC,IAAa,CAClEqB,EAAQ9mG,KAAKijG,GACb,MAMR,OAAOvqG,KAAK2kG,UAAUyJ,EAAQrtG,OAAS,EAAI0S,EAAOi5F,WAAW0B,GAAWA,IAG1EnrG,MAAO,SAAUyQ,GAEf,OAAKA,EAKe,iBAATA,EACFmL,EAAQlC,KAAKlJ,EAAOC,GAAO1T,KAAK,IAIlC6e,EAAQlC,KAAK3c,KACpB0T,EAAK6rB,OAAS7rB,EAAK,GAAKA,GAVf1T,KAAK,IAAMA,KAAK,GAAGkkB,WAAalkB,KAAKgU,QAAQ4+F,UAAU7xG,QAAU,GAY5EqG,IAAK,SAAUusB,EAAU6wE,GACvB,OAAOxkG,KAAK2kG,UAAUlxF,EAAOi5F,WAAWj5F,EAAO4sC,MAAMrgD,KAAK2J,MAAO8J,EAAOkgB,EAAU6wE,OAEpFqO,QAAS,SAAUl/E,GACjB,OAAO3zB,KAAKoH,IAAgB,MAAZusB,EAAmB3zB,KAAK8kG,WAAa9kG,KAAK8kG,WAAW38F,OAAOwrB,OAUhFlgB,EAAO3K,KAAK,CACV2O,OAAQ,SAAU/D,GAChB,IAAI+D,EAAS/D,EAAKwQ,WAClB,OAAOzM,GAA8B,KAApBA,EAAO+nB,SAAkB/nB,EAAS,MAErDnX,QAAS,SAAUoT,GACjB,OAAOmQ,EAAInQ,EAAM,eAEnBo/F,aAAc,SAAUp/F,EAAMq1E,EAAIipB,GAChC,OAAOnuF,EAAInQ,EAAM,aAAcs+F,IAEjCn3E,KAAM,SAAUnnB,GACd,OAAOi/F,EAAQj/F,EAAM,gBAEvBgnB,KAAM,SAAUhnB,GACd,OAAOi/F,EAAQj/F,EAAM,oBAEvB4E,QAAS,SAAU5E,GACjB,OAAOmQ,EAAInQ,EAAM,gBAEnBk/F,QAAS,SAAUl/F,GACjB,OAAOmQ,EAAInQ,EAAM,oBAEnBq/F,UAAW,SAAUr/F,EAAMq1E,EAAIipB,GAC7B,OAAOnuF,EAAInQ,EAAM,cAAes+F,IAElCgB,UAAW,SAAUt/F,EAAMq1E,EAAIipB,GAC7B,OAAOnuF,EAAInQ,EAAM,kBAAmBs+F,IAEtCC,SAAU,SAAUv+F,GAClB,OAAOu+F,GAAUv+F,EAAKwQ,YAAc,IAAIupC,WAAY/5C,IAEtDU,SAAU,SAAUV,GAClB,OAAOu+F,EAASv+F,EAAK+5C,aAEvB9qC,SAAU,SAAUjP,GAClB,OAA4B,MAAxBA,EAAKu/F,iBAGTtP,EAASjwF,EAAKu/F,iBACLv/F,EAAKu/F,iBAMVjvF,EAAStQ,EAAM,cACjBA,EAAOA,EAAKsG,SAAWtG,GAGlBD,EAAO4sC,MAAM,GAAI3sC,EAAKi3C,gBAE9B,SAAUtlD,EAAMwa,GACjBpM,EAAOoM,GAAGxa,GAAQ,SAAU2sG,EAAOr+E,GACjC,IAAIy6E,EAAU36F,EAAOwb,IAAIjvB,KAAM6f,EAAImyF,GAsBnC,MApBuB,UAAnB3sG,EAAKqX,OAAO,KACdiX,EAAWq+E,GAGTr+E,GAAgC,iBAAbA,IACrBy6E,EAAU36F,EAAOtL,OAAOwrB,EAAUy6E,IAGhCpuG,KAAKe,OAAS,IAEX2xG,EAAiBrtG,IACpBoO,EAAOi5F,WAAW0B,GAIhBqE,EAAan0F,KAAKjZ,IACpB+oG,EAAQ1pF,WAIL1kB,KAAK2kG,UAAUyJ,OAG1B,IAAI8E,EAAgB,oBA0MpB,SAASC,EAASvgG,GAChB,OAAOA,EAGT,SAASwgG,EAAQ5qF,GACf,MAAMA,EAGR,SAAS6qF,EAAWvuG,EAAOyW,EAASk0B,EAAQ6jE,GAC1C,IAAIxjG,EAEJ,IAEMhL,GAAS22C,EAAW3rC,EAAShL,EAAMwpC,SACrCx+B,EAAO6M,KAAK7X,GAAO+U,KAAK0B,GAASg/B,KAAK9K,GAC7B3qC,GAAS22C,EAAW3rC,EAAShL,EAAMuH,MAC5CyD,EAAO6M,KAAK7X,EAAOyW,EAASk0B,GAK5Bl0B,EAAQmG,WAAMpZ,EAAW,CAACxD,GAAO4X,MAAM42F,IAKzC,MAAOxuG,GAGP2qC,EAAO/tB,WAAMpZ,EAAW,CAACxD,KAtM7B2O,EAAO8/F,UAAY,SAAUjqG,GAG3BA,EAA6B,iBAAZA,EAlCnB,SAAuBA,GACrB,IAAIoS,EAAS,GAIb,OAHAjI,EAAO3K,KAAKQ,EAAQ2W,MAAMizF,IAAkB,IAAI,SAAUzmG,EAAG+mG,GAC3D93F,EAAO83F,IAAQ,KAEV93F,EA6BiC+3F,CAAcnqG,GAAWmK,EAAOlK,OAAO,GAAID,GAEnF,IACAoqG,EAEAC,EAEAC,EAEAC,EAEA9qF,EAAO,GAEPssB,EAAQ,GAERy+D,GAAe,EAEfC,EAAO,WAOL,IALAF,EAASA,GAAUvqG,EAAQ8B,KAG3BwoG,EAAQF,GAAS,EAEVr+D,EAAMt0C,OAAQ+yG,GAAe,EAGlC,IAFAH,EAASt+D,EAAMkJ,UAENu1D,EAAc/qF,EAAKhoB,SAE4B,IAAlDgoB,EAAK+qF,GAAapyF,MAAMiyF,EAAO,GAAIA,EAAO,KAAiBrqG,EAAQ0qG,cAErEF,EAAc/qF,EAAKhoB,OACnB4yG,GAAS,GAMVrqG,EAAQqqG,SACXA,GAAS,GAGXD,GAAS,EAELG,IAGA9qF,EADE4qF,EACK,GAEA,KAKbnhG,EAAO,CAELpL,IAAK,WA0BH,OAzBI2hB,IAEE4qF,IAAWD,IACbI,EAAc/qF,EAAKhoB,OAAS,EAC5Bs0C,EAAM/tC,KAAKqsG,IAGb,SAAUvsG,EAAIwxB,GACZnlB,EAAO3K,KAAK8vB,GAAM,SAAUnsB,EAAGs5F,GACzBtqD,EAAWsqD,GACRz8F,EAAQuoG,QAAWr/F,EAAKoJ,IAAImqF,IAC/Bh9E,EAAKzhB,KAAKy+F,GAEHA,GAAOA,EAAIhlG,QAA0B,WAAhBq9B,EAAO2nE,IAErC3+F,EAAI2+F,MARV,CAWGl+E,WAEC8rF,IAAWD,GACbK,KAIG/zG,MAGT0Q,OAAQ,WAYN,OAXA+C,EAAO3K,KAAK+e,WAAW,SAAUpb,EAAGs5F,GAGlC,IAFA,IAAI9iG,GAEIA,EAAQwQ,EAAOusC,QAAQ+lD,EAAKh9E,EAAM9lB,KAAW,GACnD8lB,EAAKhE,OAAO9hB,EAAO,GAEfA,GAAS6wG,GACXA,OAIC9zG,MAIT4b,IAAK,SAAUiE,GACb,OAAOA,EAAKpM,EAAOusC,QAAQngC,EAAIkJ,IAAS,EAAIA,EAAKhoB,OAAS,GAG5DsqC,MAAO,WAKL,OAJItiB,IACFA,EAAO,IAGF/oB,MAKTuvB,QAAS,WAGP,OAFAskF,EAASx+D,EAAQ,GACjBtsB,EAAO4qF,EAAS,GACT3zG,MAETggC,SAAU,WACR,OAAQjX,GAKVkrF,KAAM,WAOJ,OANAJ,EAASx+D,EAAQ,GAEZs+D,GAAWD,IACd3qF,EAAO4qF,EAAS,IAGX3zG,MAET6zG,OAAQ,WACN,QAASA,GAGXK,SAAU,SAAU1P,EAAS5rE,GAW3B,OAVKi7E,IAEHj7E,EAAO,CAAC4rE,GADR5rE,EAAOA,GAAQ,IACOlc,MAAQkc,EAAKlc,QAAUkc,GAC7Cyc,EAAM/tC,KAAKsxB,GAEN86E,GACHK,KAIG/zG,MAGT+zG,KAAM,WAEJ,OADAvhG,EAAK0hG,SAASl0G,KAAM6nB,WACb7nB,MAGT4zG,MAAO,WACL,QAASA,IAIb,OAAOphG,GAoCTiB,EAAOlK,OAAO,CACZ4qG,SAAU,SAAUtqE,GAClB,IAAIuqE,EAAS,CAEb,CAAC,SAAU,WAAY3gG,EAAO8/F,UAAU,UAAW9/F,EAAO8/F,UAAU,UAAW,GAAI,CAAC,UAAW,OAAQ9/F,EAAO8/F,UAAU,eAAgB9/F,EAAO8/F,UAAU,eAAgB,EAAG,YAAa,CAAC,SAAU,OAAQ9/F,EAAO8/F,UAAU,eAAgB9/F,EAAO8/F,UAAU,eAAgB,EAAG,aAC7Q5oE,EAAQ,UACR2D,EAAU,CACZ3D,MAAO,WACL,OAAOA,GAET0pE,OAAQ,WAEN,OADAC,EAASz6F,KAAKgO,WAAW0yB,KAAK1yB,WACvB7nB,MAET,MAAS,SAAU6f,GACjB,OAAOyuB,EAAQjiC,KAAK,KAAMwT,IAG5B00F,KAAM,WAGJ,IAAIC,EAAM3sF,UACV,OAAOpU,EAAO0gG,UAAS,SAAUM,GAC/BhhG,EAAO3K,KAAKsrG,GAAQ,SAAUrrB,EAAI2rB,GAEhC,IAAI70F,EAAK47B,EAAW+4D,EAAIE,EAAM,MAAQF,EAAIE,EAAM,IAIhDJ,EAASI,EAAM,KAAI,WACjB,IAAIC,EAAW90F,GAAMA,EAAG6B,MAAM1hB,KAAM6nB,WAEhC8sF,GAAYl5D,EAAWk5D,EAASrmE,SAClCqmE,EAASrmE,UAAUsmE,SAASH,EAASpmE,QAAQx0B,KAAK46F,EAASl5F,SAASg/B,KAAKk6D,EAAShlE,QAElFglE,EAASC,EAAM,GAAK,QAAQ10G,KAAM6f,EAAK,CAAC80F,GAAY9sF,iBAI1D2sF,EAAM,QACLlmE,WAELjiC,KAAM,SAAUgvC,EAAapC,EAAY47D,GACvC,IAAIC,EAAW,EAEf,SAASv5F,EAAQw5F,EAAOT,EAAU39E,EAASq+E,GACzC,OAAO,WACL,IAAI3rE,EAAOrpC,KACP44B,EAAO/Q,UACPotF,EAAa,WACf,IAAIN,EAAUtoG,EAId,KAAI0oG,EAAQD,GAAZ,CAOA,IAHAH,EAAWh+E,EAAQjV,MAAM2nB,EAAMzQ,MAGd07E,EAAShmE,UACxB,MAAM,IAAInkB,UAAU,4BAOtB9d,EAAOsoG,IAGa,iBAAbA,GAA6C,mBAAbA,IAA4BA,EAAStoG,KAExEovC,EAAWpvC,GAET2oG,EACF3oG,EAAKsQ,KAAKg4F,EAAUp5F,EAAQu5F,EAAUR,EAAUnB,EAAU6B,GAAUz5F,EAAQu5F,EAAUR,EAAUlB,EAAS4B,KAGzGF,IACAzoG,EAAKsQ,KAAKg4F,EAAUp5F,EAAQu5F,EAAUR,EAAUnB,EAAU6B,GAAUz5F,EAAQu5F,EAAUR,EAAUlB,EAAS4B,GAAUz5F,EAAQu5F,EAAUR,EAAUnB,EAAUmB,EAASY,eAMhKv+E,IAAYw8E,IACd9pE,OAAO/gC,EACPswB,EAAO,CAAC+7E,KAKTK,GAAWV,EAASa,aAAa9rE,EAAMzQ,MAI5Cpb,EAAUw3F,EAAUC,EAAa,WAC/B,IACEA,IACA,MAAOjsG,GACHyK,EAAO0gG,SAASiB,eAClB3hG,EAAO0gG,SAASiB,cAAcpsG,EAAGwU,EAAQ63F,YAMvCN,EAAQ,GAAKD,IAGXn+E,IAAYy8E,IACd/pE,OAAO/gC,EACPswB,EAAO,CAAC5vB,IAGVsrG,EAASgB,WAAWjsE,EAAMzQ,MAS5Bm8E,EACFv3F,KAII/J,EAAO0gG,SAASoB,eAClB/3F,EAAQ63F,WAAa5hG,EAAO0gG,SAASoB,gBAGvC91G,EAAO+J,WAAWgU,KAKxB,OAAO/J,EAAO0gG,UAAS,SAAUM,GAE/BL,EAAO,GAAG,GAAGhtG,IAAImU,EAAQ,EAAGk5F,EAAUh5D,EAAWo5D,GAAcA,EAAa1B,EAAUsB,EAASS,aAE/Fd,EAAO,GAAG,GAAGhtG,IAAImU,EAAQ,EAAGk5F,EAAUh5D,EAAWJ,GAAeA,EAAc83D,IAE9EiB,EAAO,GAAG,GAAGhtG,IAAImU,EAAQ,EAAGk5F,EAAUh5D,EAAWxC,GAAcA,EAAam6D,OAC3E9kE,WAILA,QAAS,SAAUhV,GACjB,OAAc,MAAPA,EAAc7lB,EAAOlK,OAAO+vB,EAAKgV,GAAWA,IAGnDgmE,EAAW,GAiDf,OA/CA7gG,EAAO3K,KAAKsrG,GAAQ,SAAUjuG,EAAGuuG,GAC/B,IAAI3rF,EAAO2rF,EAAM,GACbc,EAAcd,EAAM,GAIxBpmE,EAAQomE,EAAM,IAAM3rF,EAAK3hB,IAErBouG,GACFzsF,EAAK3hB,KAAI,WAGPujC,EAAQ6qE,IAGVpB,EAAO,EAAIjuG,GAAG,GAAGopB,QAEjB6kF,EAAO,EAAIjuG,GAAG,GAAGopB,QACjB6kF,EAAO,GAAG,GAAGH,KACbG,EAAO,GAAG,GAAGH,MAMflrF,EAAK3hB,IAAIstG,EAAM,GAAGX,MAIlBO,EAASI,EAAM,IAAM,WAEnB,OADAJ,EAASI,EAAM,GAAK,QAAQ10G,OAASs0G,OAAWhsG,EAAYtI,KAAM6nB,WAC3D7nB,MAMTs0G,EAASI,EAAM,GAAK,QAAU3rF,EAAKmrF,YAGrC5lE,EAAQA,QAAQgmE,GAEZzqE,GACFA,EAAKltB,KAAK23F,EAAUA,GAIfA,GAGTmB,KAAM,SAAUC,GACd,IACAn9D,EAAY1wB,UAAU9mB,OAEtBoF,EAAIoyC,EAEJo9D,EAAkBlnG,MAAMtI,GACpByvG,EAAgBl5F,EAAMC,KAAKkL,WAE/BguF,EAAUpiG,EAAO0gG,WAEjB2B,EAAa,SAAU3vG,GACrB,OAAO,SAAUrB,GACf6wG,EAAgBxvG,GAAKnG,KACrB41G,EAAczvG,GAAK0hB,UAAU9mB,OAAS,EAAI2b,EAAMC,KAAKkL,WAAa/iB,IAE1DyzC,GACNs9D,EAAQV,YAAYQ,EAAiBC,KAM3C,GAAIr9D,GAAa,IACf86D,EAAWqC,EAAaG,EAAQh8F,KAAKi8F,EAAW3vG,IAAIoV,QAASs6F,EAAQpmE,QAAS8I,GAEtD,YAApBs9D,EAAQlrE,SAAyB8Q,EAAWm6D,EAAczvG,IAAMyvG,EAAczvG,GAAGkG,OACnF,OAAOwpG,EAAQxpG,OAKnB,KAAOlG,KACLktG,EAAWuC,EAAczvG,GAAI2vG,EAAW3vG,GAAI0vG,EAAQpmE,QAGtD,OAAOomE,EAAQvnE,aAKnB,IAAIynE,EAAc,yDAElBtiG,EAAO0gG,SAASiB,cAAgB,SAAUhlG,EAAO8zB,GAG3CzkC,EAAOoL,SAAWpL,EAAOoL,QAAQ2yC,MAAQptC,GAAS2lG,EAAYz3F,KAAKlO,EAAM/K,OAC3E5F,EAAOoL,QAAQ2yC,KAAK,8BAAgCptC,EAAMF,QAASE,EAAM8zB,MAAOA,IAIpFzwB,EAAOuiG,eAAiB,SAAU5lG,GAChC3Q,EAAO+J,YAAW,WAChB,MAAM4G,MAKV,IAAI6lG,EAAYxiG,EAAO0gG,WAsCvB,SAAS+B,IACP13G,EAASy5B,oBAAoB,mBAAoBi+E,GACjDz2G,EAAOw4B,oBAAoB,OAAQi+E,GACnCziG,EAAO2Y,QAvCT3Y,EAAOoM,GAAGuM,MAAQ,SAAUvM,GAO1B,OANAo2F,EAAU5pG,KAAKwT,GAGd1P,OAAM,SAAUC,GACfqD,EAAOuiG,eAAe5lG,MAEjBpQ,MAGTyT,EAAOlK,OAAO,CAEZi8F,SAAS,EAGT2Q,UAAW,EAEX/pF,MAAO,SAAUgqF,KAEF,IAATA,IAAkB3iG,EAAO0iG,UAAY1iG,EAAO+xF,WAKhD/xF,EAAO+xF,SAAU,GAEJ,IAAT4Q,KAAmB3iG,EAAO0iG,UAAY,GAK1CF,EAAUd,YAAY32G,EAAU,CAACiV,QAGrCA,EAAO2Y,MAAM/f,KAAO4pG,EAAU5pG,KAYF,aAAxB7N,EAAS6xB,YAAqD,YAAxB7xB,EAAS6xB,aAA6B7xB,EAASwM,gBAAgBqrG,SAEvG52G,EAAO+J,WAAWiK,EAAO2Y,QAGzB5tB,EAASC,iBAAiB,mBAAoBy3G,GAE9Cz2G,EAAOhB,iBAAiB,OAAQy3G,IAKlC,IAAII,EAAS,SAAU1R,EAAO/kF,EAAIhK,EAAK/Q,EAAOyxG,EAAWC,EAAUC,GACjE,IAAItwG,EAAI,EACJ6gB,EAAM49E,EAAM7jG,OACZ21G,EAAc,MAAP7gG,EAEX,GAAoB,WAAhBuoB,EAAOvoB,GAGT,IAAK1P,KAFLowG,GAAY,EAEF1gG,EACRygG,EAAO1R,EAAO/kF,EAAI1Z,EAAG0P,EAAI1P,IAAI,EAAMqwG,EAAUC,QAG1C,QAAcnuG,IAAVxD,IACTyxG,GAAY,EAEP96D,EAAW32C,KACd2xG,GAAM,GAGJC,IAEED,GACF52F,EAAGlD,KAAKioF,EAAO9/F,GACf+a,EAAK,OAEL62F,EAAO72F,EAEPA,EAAK,SAAUnM,EAAMijG,EAAM7xG,GACzB,OAAO4xG,EAAK/5F,KAAKlJ,EAAOC,GAAO5O,MAKjC+a,GACF,KAAO1Z,EAAI6gB,EAAK7gB,IACd0Z,EAAG+kF,EAAMz+F,GAAI0P,EAAK4gG,EAAM3xG,EAAQA,EAAM6X,KAAKioF,EAAMz+F,GAAIA,EAAG0Z,EAAG+kF,EAAMz+F,GAAI0P,KAK3E,OAAI0gG,EACK3R,EAIL8R,EACK72F,EAAGlD,KAAKioF,GAGV59E,EAAMnH,EAAG+kF,EAAM,GAAI/uF,GAAO2gG,GAI/BI,EAAY,QACZC,EAAa,YAEjB,SAASC,EAAWC,EAAMC,GACxB,OAAOA,EAAOriF,cAMhB,SAASsiF,EAAUhrE,GACjB,OAAOA,EAAOlnC,QAAQ6xG,EAAW,OAAO7xG,QAAQ8xG,EAAYC,GAG9D,IAAII,EAAa,SAAUC,GAOzB,OAA0B,IAAnBA,EAAM33E,UAAqC,IAAnB23E,EAAM33E,YAAoB23E,EAAM33E,UAGjE,SAAS5gC,IACPoB,KAAKulG,QAAU9xF,EAAO8xF,QAAU3mG,EAAK43B,MAGvC53B,EAAK43B,IAAM,EACX53B,EAAKwnB,UAAY,CACfjE,MAAO,SAAUg1F,GAEf,IAAIryG,EAAQqyG,EAAMn3G,KAAKulG,SAuBvB,OArBKzgG,IACHA,EAAQ,GAIJoyG,EAAWC,KAGTA,EAAM33E,SACR23E,EAAMn3G,KAAKulG,SAAWzgG,EAItB6hB,OAAOyB,eAAe+uF,EAAOn3G,KAAKulG,QAAS,CACzCzgG,MAAOA,EACPyjB,cAAc,MAMfzjB,GAETssB,IAAK,SAAU+lF,EAAOj0G,EAAM4B,GAC1B,IAAIma,EACAkD,EAAQniB,KAAKmiB,MAAMg1F,GAGvB,GAAoB,iBAATj0G,EACTif,EAAM80F,EAAU/zG,IAAS4B,OAGzB,IAAKma,KAAQ/b,EACXif,EAAM80F,EAAUh4F,IAAS/b,EAAK+b,GAIlC,OAAOkD,GAETxY,IAAK,SAAUwtG,EAAOthG,GACpB,YAAevN,IAARuN,EAAoB7V,KAAKmiB,MAAMg1F,GACtCA,EAAMn3G,KAAKulG,UAAY4R,EAAMn3G,KAAKulG,SAAS0R,EAAUphG,KAEvDygG,OAAQ,SAAUa,EAAOthG,EAAK/Q,GAY5B,YAAYwD,IAARuN,GAAqBA,GAAsB,iBAARA,QAA8BvN,IAAVxD,EAClD9E,KAAK2J,IAAIwtG,EAAOthG,IASzB7V,KAAKoxB,IAAI+lF,EAAOthG,EAAK/Q,QAGJwD,IAAVxD,EAAsBA,EAAQ+Q,IAEvCnF,OAAQ,SAAUymG,EAAOthG,GACvB,IAAI1P,EACAgc,EAAQg1F,EAAMn3G,KAAKulG,SAEvB,QAAcj9F,IAAV6Z,EAAJ,CAIA,QAAY7Z,IAARuN,EAAmB,CAarB1P,GARE0P,EAHEpH,MAAMoN,QAAQhG,GAGVA,EAAIoZ,IAAIgoF,IAEdphG,EAAMohG,EAAUphG,MAGHsM,EAAQ,CAACtM,GAAOA,EAAIoK,MAAMizF,IAAkB,IAGnDnyG,OAER,KAAOoF,YACEgc,EAAMtM,EAAI1P,UAKTmC,IAARuN,GAAqBpC,EAAOiyF,cAAcvjF,MAKxCg1F,EAAM33E,SACR23E,EAAMn3G,KAAKulG,cAAWj9F,SAEf6uG,EAAMn3G,KAAKulG,YAIxBv9B,QAAS,SAAUmvC,GACjB,IAAIh1F,EAAQg1F,EAAMn3G,KAAKulG,SACvB,YAAiBj9F,IAAV6Z,IAAwB1O,EAAOiyF,cAAcvjF,KAGxD,IAAIi1F,EAAW,IAAIx4G,EACfy4G,EAAW,IAAIz4G,EAUf04G,GAAS,gCACTC,GAAa,SA2BjB,SAASC,GAAS9jG,EAAMmC,EAAK3S,GAC3B,IAAImC,EAGJ,QAAaiD,IAATpF,GAAwC,IAAlBwQ,EAAK8rB,SAI7B,GAHAn6B,EAAO,QAAUwQ,EAAI9Q,QAAQwyG,GAAY,OAAO19E,cAG5B,iBAFpB32B,EAAOwQ,EAAKqQ,aAAa1e,IAEK,CAC5B,IACEnC,EAnCR,SAAiBA,GACf,MAAa,SAATA,GAIS,UAATA,IAIS,SAATA,EACK,KAILA,KAAUA,EAAO,IACXA,EAGNo0G,GAAOh5F,KAAKpb,GACPsO,KAAKC,MAAMvO,GAGbA,GAaMk7F,CAAQl7F,GACf,MAAO8F,IAGTquG,EAASjmF,IAAI1d,EAAMmC,EAAK3S,QAExBA,OAAOoF,EAIX,OAAOpF,EAGTuQ,EAAOlK,OAAO,CACZy+D,QAAS,SAAUt0D,GACjB,OAAO2jG,EAASrvC,QAAQt0D,IAAS0jG,EAASpvC,QAAQt0D,IAEpDxQ,KAAM,SAAUwQ,EAAMrO,EAAMnC,GAC1B,OAAOm0G,EAASf,OAAO5iG,EAAMrO,EAAMnC,IAErCu0G,WAAY,SAAU/jG,EAAMrO,GAC1BgyG,EAAS3mG,OAAOgD,EAAMrO,IAIxBqyG,MAAO,SAAUhkG,EAAMrO,EAAMnC,GAC3B,OAAOk0G,EAASd,OAAO5iG,EAAMrO,EAAMnC,IAErCy0G,YAAa,SAAUjkG,EAAMrO,GAC3B+xG,EAAS1mG,OAAOgD,EAAMrO,MAG1BoO,EAAOoM,GAAGtW,OAAO,CACfrG,KAAM,SAAU2S,EAAK/Q,GACnB,IAAIqB,EACAd,EACAnC,EACAwQ,EAAO1T,KAAK,GACZoqG,EAAQ12F,GAAQA,EAAKumB,WAEzB,QAAY3xB,IAARuN,EAAmB,CACrB,GAAI7V,KAAKe,SACPmC,EAAOm0G,EAAS1tG,IAAI+J,GAEE,IAAlBA,EAAK8rB,WAAmB43E,EAASztG,IAAI+J,EAAM,iBAAiB,CAG9D,IAFAvN,EAAIikG,EAAMrpG,OAEHoF,KAGDikG,EAAMjkG,IAGsB,KAF9Bd,EAAO+kG,EAAMjkG,GAAGd,MAEPwZ,QAAQ,WACfxZ,EAAO4xG,EAAU5xG,EAAKqX,MAAM,IAC5B86F,GAAS9jG,EAAMrO,EAAMnC,EAAKmC,KAKhC+xG,EAAShmF,IAAI1d,EAAM,gBAAgB,GAIvC,OAAOxQ,EAIT,MAAmB,iBAAR2S,EACF7V,KAAK8I,MAAK,WACfuuG,EAASjmF,IAAIpxB,KAAM6V,MAIhBygG,EAAOt2G,MAAM,SAAU8E,GAC5B,IAAI5B,EAMJ,GAAIwQ,QAAkBpL,IAAVxD,EAKV,YAAawD,KAFbpF,EAAOm0G,EAAS1tG,IAAI+J,EAAMmC,UAUbvN,KAFbpF,EAAOs0G,GAAS9jG,EAAMmC,IALb3S,OAYT,EAIFlD,KAAK8I,MAAK,WAERuuG,EAASjmF,IAAIpxB,KAAM6V,EAAK/Q,QAEzB,KAAMA,EAAO+iB,UAAU9mB,OAAS,EAAG,MAAM,IAE9C02G,WAAY,SAAU5hG,GACpB,OAAO7V,KAAK8I,MAAK,WACfuuG,EAAS3mG,OAAO1Q,KAAM6V,SAI5BpC,EAAOlK,OAAO,CACZ8rC,MAAO,SAAU3hC,EAAMtO,EAAMlC,GAC3B,IAAImyC,EAEJ,GAAI3hC,EAYF,OAXAtO,GAAQA,GAAQ,MAAQ,QACxBiwC,EAAQ+hE,EAASztG,IAAI+J,EAAMtO,GAEvBlC,KACGmyC,GAAS5mC,MAAMoN,QAAQ3Y,GAC1BmyC,EAAQ+hE,EAASd,OAAO5iG,EAAMtO,EAAMqO,EAAOmyF,UAAU1iG,IAErDmyC,EAAM/tC,KAAKpE,IAIRmyC,GAAS,IAGpBuiE,QAAS,SAAUlkG,EAAMtO,GACvBA,EAAOA,GAAQ,KAEf,IAAIiwC,EAAQ5hC,EAAO4hC,MAAM3hC,EAAMtO,GAC3ByyG,EAAcxiE,EAAMt0C,OACpB8e,EAAKw1B,EAAMkJ,QACXu5D,EAAQrkG,EAAOskG,YAAYrkG,EAAMtO,GAM1B,eAAPya,IACFA,EAAKw1B,EAAMkJ,QACXs5D,KAGEh4F,IAGW,OAATza,GACFiwC,EAAM4I,QAAQ,qBAIT65D,EAAMn6F,KACbkC,EAAGlD,KAAKjJ,GAnBC,WACTD,EAAOmkG,QAAQlkG,EAAMtO,KAkBD0yG,KAGjBD,GAAeC,GAClBA,EAAMzsE,MAAM0oE,QAIhBgE,YAAa,SAAUrkG,EAAMtO,GAC3B,IAAIyQ,EAAMzQ,EAAO,aACjB,OAAOgyG,EAASztG,IAAI+J,EAAMmC,IAAQuhG,EAASd,OAAO5iG,EAAMmC,EAAK,CAC3Dw1B,MAAO53B,EAAO8/F,UAAU,eAAensG,KAAI,WACzCgwG,EAAS1mG,OAAOgD,EAAM,CAACtO,EAAO,QAASyQ,YAK/CpC,EAAOoM,GAAGtW,OAAO,CACf8rC,MAAO,SAAUjwC,EAAMlC,GACrB,IAAI6qC,EAAS,EAQb,MANoB,iBAAT3oC,IACTlC,EAAOkC,EACPA,EAAO,KACP2oC,KAGElmB,UAAU9mB,OAASgtC,EACdt6B,EAAO4hC,MAAMr1C,KAAK,GAAIoF,QAGfkD,IAATpF,EAAqBlD,KAAOA,KAAK8I,MAAK,WAC3C,IAAIusC,EAAQ5hC,EAAO4hC,MAAMr1C,KAAMoF,EAAMlC,GAErCuQ,EAAOskG,YAAY/3G,KAAMoF,GAEZ,OAATA,GAA8B,eAAbiwC,EAAM,IACzB5hC,EAAOmkG,QAAQ53G,KAAMoF,OAI3BwyG,QAAS,SAAUxyG,GACjB,OAAOpF,KAAK8I,MAAK,WACf2K,EAAOmkG,QAAQ53G,KAAMoF,OAGzB4yG,WAAY,SAAU5yG,GACpB,OAAOpF,KAAKq1C,MAAMjwC,GAAQ,KAAM,KAIlCkpC,QAAS,SAAUlpC,EAAMk0B,GACvB,IAAIkyE,EACAhmD,EAAQ,EACR7Q,EAAQlhC,EAAO0gG,WACfv3F,EAAW5c,KACXmG,EAAInG,KAAKe,OACTwa,EAAU,aACJiqC,GACN7Q,EAAMwgE,YAAYv4F,EAAU,CAACA,KAWjC,IAPoB,iBAATxX,IACTk0B,EAAMl0B,EACNA,OAAOkD,GAGTlD,EAAOA,GAAQ,KAERe,MACLqlG,EAAM4L,EAASztG,IAAIiT,EAASzW,GAAIf,EAAO,gBAE5BomG,EAAIngE,QACbma,IACAgmD,EAAIngE,MAAMjkC,IAAImU,IAKlB,OADAA,IACOo5B,EAAMrG,QAAQhV,MAGzB,IAAI2+E,GAAO,sCAAsCtzE,OAC7CuzE,GAAU,IAAI75E,OAAO,iBAAmB45E,GAAO,cAAe,KAC9DE,GAAY,CAAC,MAAO,QAAS,SAAU,QACvCntG,GAAkBxM,EAASwM,gBAE3BotG,GAAa,SAAU1kG,GACzB,OAAOD,EAAOhG,SAASiG,EAAKqnE,cAAernE,IAEzC2kG,GAAW,CACbA,UAAU,GAQRrtG,GAAgBm1B,cAClBi4E,GAAa,SAAU1kG,GACrB,OAAOD,EAAOhG,SAASiG,EAAKqnE,cAAernE,IAASA,EAAKysB,YAAYk4E,MAAc3kG,EAAKqnE,gBAI5F,IAAIu9B,GAAqB,SAAU5kG,EAAM7J,GAKvC,MAA8B,UAF9B6J,EAAO7J,GAAM6J,GAEDpU,MAAMuxC,SAA6C,KAAvBn9B,EAAKpU,MAAMuxC,SAInDunE,GAAW1kG,IAAyC,SAAhCD,EAAOjT,IAAIkT,EAAM,YAGvC,SAAS6kG,GAAU7kG,EAAMuL,EAAMu5F,EAAYC,GACzC,IAAIC,EACAC,EACAC,EAAgB,GAChBC,EAAeJ,EAAQ,WACzB,OAAOA,EAAMlO,OACX,WACF,OAAO92F,EAAOjT,IAAIkT,EAAMuL,EAAM,KAE5B65F,EAAUD,IACVrwD,EAAOgwD,GAAcA,EAAW,KAAO/kG,EAAOslG,UAAU95F,GAAQ,GAAK,MAEzE+5F,EAAgBtlG,EAAK8rB,WAAa/rB,EAAOslG,UAAU95F,IAAkB,OAATupC,IAAkBswD,IAAYZ,GAAQ90E,KAAK3vB,EAAOjT,IAAIkT,EAAMuL,IAExH,GAAI+5F,GAAiBA,EAAc,KAAOxwD,EAAM,CAS9C,IANAswD,GAAoB,EAEpBtwD,EAAOA,GAAQwwD,EAAc,GAE7BA,GAAiBF,GAAW,EAErBF,KAGLnlG,EAAOnU,MAAMoU,EAAMuL,EAAM+5F,EAAgBxwD,IAEpC,EAAImwD,IAAU,GAAKA,EAAQE,IAAiBC,GAAW,MAAS,IACnEF,EAAgB,GAGlBI,GAAgCL,EAGlCK,GAAgC,EAChCvlG,EAAOnU,MAAMoU,EAAMuL,EAAM+5F,EAAgBxwD,GAEzCgwD,EAAaA,GAAc,GAe7B,OAZIA,IACFQ,GAAiBA,IAAkBF,GAAW,EAE9CJ,EAAWF,EAAW,GAAKQ,GAAiBR,EAAW,GAAK,GAAKA,EAAW,IAAMA,EAAW,GAEzFC,IACFA,EAAMjwD,KAAOA,EACbiwD,EAAM7vD,MAAQowD,EACdP,EAAM5vD,IAAM6vD,IAITA,EAGT,IAAIO,GAAoB,GAExB,SAASC,GAAkBxlG,GACzB,IAAI88B,EACAyL,EAAMvoC,EAAKqnE,cACX/2D,EAAWtQ,EAAKsQ,SAChB6sB,EAAUooE,GAAkBj1F,GAEhC,OAAI6sB,IAIJL,EAAOyL,EAAIjsC,KAAK+K,YAAYkhC,EAAIxhC,cAAcuJ,IAC9C6sB,EAAUp9B,EAAOjT,IAAIgwC,EAAM,WAC3BA,EAAKtsB,WAAW+xB,YAAYzF,GAEZ,SAAZK,IACFA,EAAU,SAGZooE,GAAkBj1F,GAAY6sB,EACvBA,GAGT,SAASsoE,GAASv8F,EAAU5U,GAO1B,IANA,IAAI6oC,EACAn9B,EACA0jB,EAAS,GACTn0B,EAAQ,EACRlC,EAAS6b,EAAS7b,OAEfkC,EAAQlC,EAAQkC,KACrByQ,EAAOkJ,EAAS3Z,IAEN3D,QAIVuxC,EAAUn9B,EAAKpU,MAAMuxC,QAEjB7oC,GAIc,SAAZ6oC,IACFzZ,EAAOn0B,GAASm0G,EAASztG,IAAI+J,EAAM,YAAc,KAE5C0jB,EAAOn0B,KACVyQ,EAAKpU,MAAMuxC,QAAU,KAIE,KAAvBn9B,EAAKpU,MAAMuxC,SAAkBynE,GAAmB5kG,KAClD0jB,EAAOn0B,GAASi2G,GAAkBxlG,KAGpB,SAAZm9B,IACFzZ,EAAOn0B,GAAS,OAEhBm0G,EAAShmF,IAAI1d,EAAM,UAAWm9B,KAMpC,IAAK5tC,EAAQ,EAAGA,EAAQlC,EAAQkC,IACT,MAAjBm0B,EAAOn0B,KACT2Z,EAAS3Z,GAAO3D,MAAMuxC,QAAUzZ,EAAOn0B,IAI3C,OAAO2Z,EAGTnJ,EAAOoM,GAAGtW,OAAO,CACfvB,KAAM,WACJ,OAAOmxG,GAASn5G,MAAM,IAExBmJ,KAAM,WACJ,OAAOgwG,GAASn5G,OAElBgoB,OAAQ,SAAU2iB,GAChB,MAAqB,kBAAVA,EACFA,EAAQ3qC,KAAKgI,OAAShI,KAAKmJ,OAG7BnJ,KAAK8I,MAAK,WACXwvG,GAAmBt4G,MACrByT,EAAOzT,MAAMgI,OAEbyL,EAAOzT,MAAMmJ,aAKrB,IAMMymD,GACA79C,GAPFqnG,GAAiB,wBACjBC,GAAW,iCACXC,GAAc,qCAIZ1pD,GADWpxD,EAAS+6G,yBACLx+F,YAAYvc,EAASic,cAAc,SAClD1I,GAAQvT,EAASic,cAAc,UAK7BE,aAAa,OAAQ,SAC3B5I,GAAM4I,aAAa,UAAW,WAC9B5I,GAAM4I,aAAa,OAAQ,KAC3Bi1C,GAAI70C,YAAYhJ,IAGhBkyF,EAAQuV,WAAa5pD,GAAI9qC,WAAU,GAAMA,WAAU,GAAMkpF,UAAU12F,QAGnEs4C,GAAI90C,UAAY,yBAChBmpF,EAAQwV,iBAAmB7pD,GAAI9qC,WAAU,GAAMkpF,UAAU/wF,aAIzD2yC,GAAI90C,UAAY,oBAChBmpF,EAAQyV,SAAW9pD,GAAIo+C,UAIzB,IAAI2L,GAAU,CAIZC,MAAO,CAAC,EAAG,UAAW,YACtBC,IAAK,CAAC,EAAG,oBAAqB,uBAC9B51F,GAAI,CAAC,EAAG,iBAAkB,oBAC1B61F,GAAI,CAAC,EAAG,qBAAsB,yBAC9BC,SAAU,CAAC,EAAG,GAAI,KASpB,SAASC,GAAOxV,EAAS3gE,GAGvB,IAAIghE,EAUJ,OAPEA,OAD0C,IAAjCL,EAAQl3F,qBACXk3F,EAAQl3F,qBAAqBu2B,GAAO,UACG,IAA7B2gE,EAAQ9yF,iBAClB8yF,EAAQ9yF,iBAAiBmyB,GAAO,KAEhC,QAGIv7B,IAARu7B,GAAqBA,GAAO7f,EAASwgF,EAAS3gE,GACzCpwB,EAAO4sC,MAAM,CAACmkD,GAAUK,GAG1BA,EAIT,SAASoV,GAAcrV,EAAOsV,GAI5B,IAHA,IAAI/zG,EAAI,EACJ2hB,EAAI88E,EAAM7jG,OAEPoF,EAAI2hB,EAAG3hB,IACZixG,EAAShmF,IAAIwzE,EAAMz+F,GAAI,cAAe+zG,GAAe9C,EAASztG,IAAIuwG,EAAY/zG,GAAI,eAjCtFwzG,GAAQQ,MAAQR,GAAQS,MAAQT,GAAQU,SAAWV,GAAQrzD,QAAUqzD,GAAQC,MAC7ED,GAAQW,GAAKX,GAAQG,GAEhB7V,EAAQyV,SACXC,GAAQY,SAAWZ,GAAQD,OAAS,CAAC,EAAG,+BAAgC,cAiC1E,IAAItR,GAAQ,YAEZ,SAASoS,GAAc5V,EAAOJ,EAASiW,EAASC,EAAWC,GAYzD,IAXA,IAAIjnG,EACA83F,EACA3nE,EACA0X,EACAq/D,EACArpG,EACAspG,EAAWrW,EAAQ+U,yBACnBl1F,EAAQ,GACRle,EAAI,EACJ2hB,EAAI88E,EAAM7jG,OAEPoF,EAAI2hB,EAAG3hB,IAGZ,IAFAuN,EAAOkxF,EAAMz+F,KAEQ,IAATuN,EAEV,GAAqB,WAAjB0qB,EAAO1qB,GAGTD,EAAO4sC,MAAMh8B,EAAO3Q,EAAK8rB,SAAW,CAAC9rB,GAAQA,QACxC,GAAK00F,GAAM9pF,KAAK5K,GAEhB,CASL,IARA83F,EAAMA,GAAOqP,EAAS9/F,YAAYypF,EAAQ/pF,cAAc,QAExDopB,GAAOw1E,GAASj2E,KAAK1vB,IAAS,CAAC,GAAI,KAAK,GAAGmmB,cAC3C0hB,EAAOo+D,GAAQ91E,IAAQ81E,GAAQI,SAC/BvO,EAAI1wF,UAAYygC,EAAK,GAAK9nC,EAAOqnG,cAAcpnG,GAAQ6nC,EAAK,GAE5DhqC,EAAIgqC,EAAK,GAEFhqC,KACLi6F,EAAMA,EAAIwC,UAKZv6F,EAAO4sC,MAAMh8B,EAAOmnF,EAAI7gD,aAExB6gD,EAAMqP,EAASptD,YAEXlD,YAAc,QApBlBlmC,EAAM/c,KAAKk9F,EAAQt1D,eAAex7B,IA6BxC,IAHAmnG,EAAStwD,YAAc,GACvBpkD,EAAI,EAEGuN,EAAO2Q,EAAMle,MAElB,GAAIu0G,GAAajnG,EAAOusC,QAAQtsC,EAAMgnG,IAAc,EAC9CC,GACFA,EAAQrzG,KAAKoM,QAejB,GATAknG,EAAWxC,GAAW1kG,GAEtB83F,EAAMwO,GAAOa,EAAS9/F,YAAYrH,GAAO,UAErCknG,GACFX,GAAczO,GAIZiP,EAGF,IAFAlpG,EAAI,EAEGmC,EAAO83F,EAAIj6F,MACZ+nG,GAAYh7F,KAAK5K,EAAKtO,MAAQ,KAChCq1G,EAAQnzG,KAAKoM,GAMrB,OAAOmnG,EAGT,IAAIE,GAAiB,sBAErB,SAASC,KACP,OAAO,EAGT,SAASC,KACP,OAAO,EAST,SAASC,GAAWxnG,EAAMtO,GACxB,OAAOsO,IAMT,WACE,IACE,OAAOlV,EAAS6iC,cAChB,MAAO85E,KATOC,KAAkC,UAATh2G,GAY3C,SAAS2D,GAAG2K,EAAM2nG,EAAO1nF,EAAUzwB,EAAM2c,EAAIyY,GAC3C,IAAIgjF,EAAQl2G,EAEZ,GAAqB,iBAAVi2G,EAAoB,CAQ7B,IAAKj2G,IANmB,iBAAbuuB,IAETzwB,EAAOA,GAAQywB,EACfA,OAAWrrB,GAGA+yG,EACXtyG,GAAG2K,EAAMtO,EAAMuuB,EAAUzwB,EAAMm4G,EAAMj2G,GAAOkzB,GAG9C,OAAO5kB,EAoBT,GAjBY,MAARxQ,GAAsB,MAAN2c,GAElBA,EAAK8T,EACLzwB,EAAOywB,OAAWrrB,GACH,MAANuX,IACe,iBAAb8T,GAET9T,EAAK3c,EACLA,OAAOoF,IAGPuX,EAAK3c,EACLA,EAAOywB,EACPA,OAAWrrB,KAIJ,IAAPuX,EACFA,EAAKo7F,QACA,IAAKp7F,EACV,OAAOnM,EAgBT,OAbY,IAAR4kB,IACFgjF,EAASz7F,EAETA,EAAK,SAAUtd,GAGb,OADAkR,IAAS8P,IAAIhhB,GACN+4G,EAAO55F,MAAM1hB,KAAM6nB,YAI5BhI,EAAGmmF,KAAOsV,EAAOtV,OAASsV,EAAOtV,KAAOvyF,EAAOuyF,SAG1CtyF,EAAK5K,MAAK,WACf2K,EAAOlR,MAAM6E,IAAIpH,KAAMq7G,EAAOx7F,EAAI3c,EAAMywB,MA4Y5C,SAAS4nF,GAAe1xG,EAAIzE,EAAM81G,GAE3BA,GASL9D,EAAShmF,IAAIvnB,EAAIzE,GAAM,GACvBqO,EAAOlR,MAAM6E,IAAIyC,EAAIzE,EAAM,CACzB+yB,WAAW,EACXxB,QAAS,SAAUp0B,GACjB,IAAIi5G,EACAtzF,EACAuzF,EAAQrE,EAASztG,IAAI3J,KAAMoF,GAE/B,GAAsB,EAAlB7C,EAAMm5G,WAAiB17G,KAAKoF,IAI9B,GAAKq2G,EAAM16G,QAoCC0S,EAAOlR,MAAMyyG,QAAQ5vG,IAAS,IAAIu2G,cAC5Cp5G,EAAMa,uBAlBN,GAfAq4G,EAAQ/+F,EAAMC,KAAKkL,WACnBuvF,EAAShmF,IAAIpxB,KAAMoF,EAAMq2G,GAIzBD,EAAWN,EAAWl7G,KAAMoF,GAC5BpF,KAAKoF,KAGDq2G,KAFJvzF,EAASkvF,EAASztG,IAAI3J,KAAMoF,KAEJo2G,EACtBpE,EAAShmF,IAAIpxB,KAAMoF,GAAM,GAEzB8iB,EAAS,GAGPuzF,IAAUvzF,EASZ,OAPA3lB,EAAMuc,2BACNvc,EAAM0G,iBAMCif,GAAUA,EAAOpjB,WAanB22G,EAAM16G,SAEfq2G,EAAShmF,IAAIpxB,KAAMoF,EAAM,CACvBN,MAAO2O,EAAOlR,MAAM6F,QAEpBqL,EAAOlK,OAAOkyG,EAAM,GAAIhoG,EAAO0H,MAAMiL,WAAYq1F,EAAM/+F,MAAM,GAAI1c,QAGnEuC,EAAMuc,qCArEqBxW,IAA3B8uG,EAASztG,IAAIE,EAAIzE,IACnBqO,EAAOlR,MAAM6E,IAAIyC,EAAIzE,EAAM41G,IAvYjCvnG,EAAOlR,MAAQ,CACbuH,OAAQ,GACR1C,IAAK,SAAUsM,EAAM2nG,EAAO1kF,EAASzzB,EAAMywB,GACzC,IAAIioF,EACAC,EACArQ,EACA1rG,EACAmR,EACA6qG,EACA9G,EACAl9E,EACA1yB,EACA22G,EACAC,EACAC,EAAW7E,EAASztG,IAAI+J,GAE5B,GAAKwjG,EAAWxjG,GAuChB,IAlCIijB,EAAQA,UAEVA,GADAilF,EAAcjlF,GACQA,QACtBhD,EAAWioF,EAAYjoF,UAKrBA,GACFlgB,EAAOlT,KAAKkrG,gBAAgBzgG,GAAiB2oB,GAI1CgD,EAAQqvE,OACXrvE,EAAQqvE,KAAOvyF,EAAOuyF,SAIlBlmG,EAASm8G,EAASn8G,UACtBA,EAASm8G,EAASn8G,OAAS6mB,OAAOyb,OAAO,QAGrCy5E,EAAcI,EAASC,UAC3BL,EAAcI,EAASC,OAAS,SAAUlzG,GAGxC,YAAyB,IAAXyK,GAA0BA,EAAOlR,MAAM45G,YAAcnzG,EAAE5D,KAAOqO,EAAOlR,MAAM65G,SAAS16F,MAAMhO,EAAMmU,gBAAavf,IAM/H2I,GADAoqG,GAASA,GAAS,IAAIp7F,MAAMizF,IAAkB,CAAC,KACrCnyG,OAEHkQ,KAEL7L,EAAO42G,GADPxQ,EAAMuP,GAAe33E,KAAKi4E,EAAMpqG,KAAO,IACjB,GACtB8qG,GAAcvQ,EAAI,IAAM,IAAIvtF,MAAM,KAAK0G,OAElCvf,IAKL4vG,EAAUvhG,EAAOlR,MAAMyyG,QAAQ5vG,IAAS,GAExCA,GAAQuuB,EAAWqhF,EAAQ2G,aAAe3G,EAAQqH,WAAaj3G,EAE/D4vG,EAAUvhG,EAAOlR,MAAMyyG,QAAQ5vG,IAAS,GAExC02G,EAAYroG,EAAOlK,OAAO,CACxBnE,KAAMA,EACN42G,SAAUA,EACV94G,KAAMA,EACNyzB,QAASA,EACTqvE,KAAMrvE,EAAQqvE,KACdryE,SAAUA,EACVw+E,aAAcx+E,GAAYlgB,EAAO84F,KAAKtsF,MAAMkyF,aAAa7zF,KAAKqV,GAC9DwE,UAAW4jF,EAAW5zF,KAAK,MAC1ByzF,IAEG9jF,EAAWh4B,EAAOsF,OACtB0yB,EAAWh4B,EAAOsF,GAAQ,IACjBk3G,cAAgB,EAEpBtH,EAAQuH,QAAqE,IAA5DvH,EAAQuH,MAAM5/F,KAAKjJ,EAAMxQ,EAAM64G,EAAYF,IAC3DnoG,EAAKjV,kBACPiV,EAAKjV,iBAAiB2G,EAAMy2G,IAK9B7G,EAAQ5tG,MACV4tG,EAAQ5tG,IAAIuV,KAAKjJ,EAAMooG,GAElBA,EAAUnlF,QAAQqvE,OACrB8V,EAAUnlF,QAAQqvE,KAAOrvE,EAAQqvE,OAKjCryE,EACFmE,EAAS/S,OAAO+S,EAASwkF,gBAAiB,EAAGR,GAE7ChkF,EAASxwB,KAAKw0G,GAIhBroG,EAAOlR,MAAMuH,OAAO1E,IAAQ,IAIhCsL,OAAQ,SAAUgD,EAAM2nG,EAAO1kF,EAAShD,EAAU6oF,GAChD,IAAIjrG,EACAkrG,EACAjR,EACA1rG,EACAmR,EACA6qG,EACA9G,EACAl9E,EACA1yB,EACA22G,EACAC,EACAC,EAAW7E,EAASpvC,QAAQt0D,IAAS0jG,EAASztG,IAAI+J,GAEtD,GAAKuoG,IAAcn8G,EAASm8G,EAASn8G,QAArC,CAQA,IAFAmR,GADAoqG,GAASA,GAAS,IAAIp7F,MAAMizF,IAAkB,CAAC,KACrCnyG,OAEHkQ,KAKL,GAHA7L,EAAO42G,GADPxQ,EAAMuP,GAAe33E,KAAKi4E,EAAMpqG,KAAO,IACjB,GACtB8qG,GAAcvQ,EAAI,IAAM,IAAIvtF,MAAM,KAAK0G,OAElCvf,EAAL,CAeA,IAPA4vG,EAAUvhG,EAAOlR,MAAMyyG,QAAQ5vG,IAAS,GAExC0yB,EAAWh4B,EADXsF,GAAQuuB,EAAWqhF,EAAQ2G,aAAe3G,EAAQqH,WAAaj3G,IACpC,GAC3BomG,EAAMA,EAAI,IAAM,IAAIntE,OAAO,UAAY09E,EAAW5zF,KAAK,iBAAmB,WAE1Es0F,EAAYlrG,EAAIumB,EAAS/2B,OAElBwQ,KACLuqG,EAAYhkF,EAASvmB,IAEhBirG,GAAeR,IAAaF,EAAUE,UAAerlF,GAAWA,EAAQqvE,OAAS8V,EAAU9V,MAAWwF,IAAOA,EAAIltF,KAAKw9F,EAAU3jF,YAAiBxE,GAAYA,IAAamoF,EAAUnoF,WAAyB,OAAbA,IAAqBmoF,EAAUnoF,YAClOmE,EAAS/S,OAAOxT,EAAG,GAEfuqG,EAAUnoF,UACZmE,EAASwkF,gBAGPtH,EAAQtkG,QACVskG,EAAQtkG,OAAOiM,KAAKjJ,EAAMooG,IAO5BW,IAAc3kF,EAAS/2B,SACpBi0G,EAAQ0H,WAAyE,IAA7D1H,EAAQ0H,SAAS//F,KAAKjJ,EAAMqoG,EAAYE,EAASC,SACxEzoG,EAAOutC,YAAYttC,EAAMtO,EAAM62G,EAASC,eAGnCp8G,EAAOsF,SArCd,IAAKA,KAAQtF,EACX2T,EAAOlR,MAAMmO,OAAOgD,EAAMtO,EAAOi2G,EAAMpqG,GAAI0lB,EAAShD,GAAU,GAyChElgB,EAAOiyF,cAAc5lG,IACvBs3G,EAAS1mG,OAAOgD,EAAM,mBAG1B0oG,SAAU,SAAUO,GAClB,IAAIx2G,EACAoL,EACAszF,EACAuJ,EACA0N,EACAc,EACAhkF,EAAO,IAAInqB,MAAMoZ,UAAU9mB,QAE/BwB,EAAQkR,EAAOlR,MAAMs6G,IAAIF,GACrB7kF,GAAYs/E,EAASztG,IAAI3J,KAAM,WAAa2mB,OAAOyb,OAAO,OAAO7/B,EAAM6C,OAAS,GAChF4vG,EAAUvhG,EAAOlR,MAAMyyG,QAAQzyG,EAAM6C,OAAS,GAIlD,IAFAwzB,EAAK,GAAKr2B,EAEL4D,EAAI,EAAGA,EAAI0hB,UAAU9mB,OAAQoF,IAChCyyB,EAAKzyB,GAAK0hB,UAAU1hB,GAKtB,GAFA5D,EAAM2yB,eAAiBl1B,MAEnBg1G,EAAQ8H,cAAyD,IAA1C9H,EAAQ8H,YAAYngG,KAAK3c,KAAMuC,GAA1D,CASA,IAJAq6G,EAAenpG,EAAOlR,MAAMu1B,SAASnb,KAAK3c,KAAMuC,EAAOu1B,GAEvD3xB,EAAI,GAEIioG,EAAUwO,EAAaz2G,QAAU5D,EAAM02B,wBAI7C,IAHA12B,EAAMk5E,cAAgB2yB,EAAQ16F,KAC9BnC,EAAI,GAEIuqG,EAAY1N,EAAQt2E,SAASvmB,QAAUhP,EAAM22B,iCAG9C32B,EAAMw6G,aAAsC,IAAxBjB,EAAU3jF,YAAuB51B,EAAMw6G,WAAWz+F,KAAKw9F,EAAU3jF,aACxF51B,EAAMu5G,UAAYA,EAClBv5G,EAAMW,KAAO44G,EAAU54G,UAGXoF,KAFZu8F,IAAQpxF,EAAOlR,MAAMyyG,QAAQ8G,EAAUE,WAAa,IAAIE,QAAUJ,EAAUnlF,SAASjV,MAAM0sF,EAAQ16F,KAAMklB,MAG1E,KAAxBr2B,EAAM2lB,OAAS28E,KAClBtiG,EAAM0G,iBACN1G,EAAMa,oBAYhB,OAJI4xG,EAAQgI,cACVhI,EAAQgI,aAAargG,KAAK3c,KAAMuC,GAG3BA,EAAM2lB,SAEf4P,SAAU,SAAUv1B,EAAOu1B,GACzB,IAAI3xB,EACA21G,EACArP,EACAwQ,EACAC,EACAN,EAAe,GACfN,EAAgBxkF,EAASwkF,cACzB/R,EAAMhoG,EAAM2K,OAEhB,GAAIovG,GAEJ/R,EAAI/qE,YAKa,UAAfj9B,EAAM6C,MAAoB7C,EAAMs1D,QAAU,GAC1C,KAAO0yC,IAAQvqG,KAAMuqG,EAAMA,EAAIrmF,YAAclkB,KAG3C,GAAqB,IAAjBuqG,EAAI/qE,WAAmC,UAAfj9B,EAAM6C,OAAqC,IAAjBmlG,EAAIvqE,UAAoB,CAI5E,IAHAi9E,EAAkB,GAClBC,EAAmB,GAEd/2G,EAAI,EAAGA,EAAIm2G,EAAen2G,SAKCmC,IAA1B40G,EAFJzQ,GAFAqP,EAAYhkF,EAAS3xB,IAELwtB,SAAW,OAGzBupF,EAAiBzQ,GAAOqP,EAAU3J,aAAe1+F,EAAOg5F,EAAKzsG,MAAMiD,MAAMsnG,IAAQ,EAAI92F,EAAOlT,KAAKksG,EAAKzsG,KAAM,KAAM,CAACuqG,IAAMxpG,QAGvHm8G,EAAiBzQ,IACnBwQ,EAAgB31G,KAAKw0G,GAIrBmB,EAAgBl8G,QAClB67G,EAAat1G,KAAK,CAChBoM,KAAM62F,EACNzyE,SAAUmlF,IAiBpB,OATA1S,EAAMvqG,KAEFs8G,EAAgBxkF,EAAS/2B,QAC3B67G,EAAat1G,KAAK,CAChBoM,KAAM62F,EACNzyE,SAAUA,EAASpb,MAAM4/F,KAItBM,GAETO,QAAS,SAAU93G,EAAM+3G,GACvBz2F,OAAOyB,eAAe3U,EAAO0H,MAAMiL,UAAW/gB,EAAM,CAClDijB,YAAY,EACZC,cAAc,EACd5e,IAAK8xC,EAAW2hE,GAAQ,WACtB,GAAIp9G,KAAKy3E,cACP,OAAO2lC,EAAKp9G,KAAKy3E,gBAEjB,WACF,GAAIz3E,KAAKy3E,cACP,OAAOz3E,KAAKy3E,cAAcpyE,IAG9B+rB,IAAK,SAAUtsB,GACb6hB,OAAOyB,eAAepoB,KAAMqF,EAAM,CAChCijB,YAAY,EACZC,cAAc,EACdkE,UAAU,EACV3nB,MAAOA,QAKf+3G,IAAK,SAAUplC,GACb,OAAOA,EAAchkE,EAAO8xF,SAAW9tB,EAAgB,IAAIhkE,EAAO0H,MAAMs8D,IAE1Eu9B,QAAS,CACPqI,KAAM,CAEJC,UAAU,GAEZh7G,MAAO,CAELi6G,MAAO,SAAUr5G,GAGf,IAAI2G,EAAK7J,MAAQkD,EAQjB,OANIk2G,GAAe96F,KAAKzU,EAAGzE,OAASyE,EAAGvH,OAAS0hB,EAASna,EAAI,UAE3D0xG,GAAe1xG,EAAI,QAASmxG,KAIvB,GAET5yG,QAAS,SAAUlF,GAGjB,IAAI2G,EAAK7J,MAAQkD,EAOjB,OALIk2G,GAAe96F,KAAKzU,EAAGzE,OAASyE,EAAGvH,OAAS0hB,EAASna,EAAI,UAC3D0xG,GAAe1xG,EAAI,UAId,GAITkwG,SAAU,SAAUx3G,GAClB,IAAI2K,EAAS3K,EAAM2K,OACnB,OAAOksG,GAAe96F,KAAKpR,EAAO9H,OAAS8H,EAAO5K,OAAS0hB,EAAS9W,EAAQ,UAAYkqG,EAASztG,IAAIuD,EAAQ,UAAY8W,EAAS9W,EAAQ,OAG9IqwG,aAAc,CACZP,aAAc,SAAUz6G,QAGD+F,IAAjB/F,EAAM2lB,QAAwB3lB,EAAMk1E,gBACtCl1E,EAAMk1E,cAAcoC,YAAct3E,EAAM2lB,YAwFlDzU,EAAOutC,YAAc,SAAUttC,EAAMtO,EAAM82G,GAErCxoG,EAAKukB,qBACPvkB,EAAKukB,oBAAoB7yB,EAAM82G,IAInCzoG,EAAO0H,MAAQ,SAAU21B,EAAKK,GAE5B,KAAMnxC,gBAAgByT,EAAO0H,OAC3B,OAAO,IAAI1H,EAAO0H,MAAM21B,EAAKK,GAI3BL,GAAOA,EAAI1rC,MACbpF,KAAKy3E,cAAgB3mC,EACrB9wC,KAAKoF,KAAO0rC,EAAI1rC,KAGhBpF,KAAKm5B,mBAAqB2X,EAAIzc,uBAA6C/rB,IAAzBwoC,EAAIzc,mBAClC,IAApByc,EAAI+oC,YAAwBmhC,GAAaC,GAIzCj7G,KAAKkN,OAAS4jC,EAAI5jC,QAAkC,IAAxB4jC,EAAI5jC,OAAOsyB,SAAiBsR,EAAI5jC,OAAOgX,WAAa4sB,EAAI5jC,OACpFlN,KAAKy7E,cAAgB3qC,EAAI2qC,cACzBz7E,KAAK63B,cAAgBiZ,EAAIjZ,eAEzB73B,KAAKoF,KAAO0rC,EAIVK,GACF19B,EAAOlK,OAAOvJ,KAAMmxC,GAItBnxC,KAAKw9G,UAAY1sE,GAAOA,EAAI0sE,WAAavzF,KAAKC,MAE9ClqB,KAAKyT,EAAO8xF,UAAW,GAKzB9xF,EAAO0H,MAAMiL,UAAY,CACvBvY,YAAa4F,EAAO0H,MACpBge,mBAAoB8hF,GACpBhiF,qBAAsBgiF,GACtB/hF,8BAA+B+hF,GAC/BwC,aAAa,EACbx0G,eAAgB,WACd,IAAID,EAAIhJ,KAAKy3E,cACbz3E,KAAKm5B,mBAAqB6hF,GAEtBhyG,IAAMhJ,KAAKy9G,aACbz0G,EAAEC,kBAGN7F,gBAAiB,WACf,IAAI4F,EAAIhJ,KAAKy3E,cACbz3E,KAAKi5B,qBAAuB+hF,GAExBhyG,IAAMhJ,KAAKy9G,aACbz0G,EAAE5F,mBAGN0b,yBAA0B,WACxB,IAAI9V,EAAIhJ,KAAKy3E,cACbz3E,KAAKk5B,8BAAgC8hF,GAEjChyG,IAAMhJ,KAAKy9G,aACbz0G,EAAE8V,2BAGJ9e,KAAKoD,oBAITqQ,EAAO3K,KAAK,CACV40G,QAAQ,EACR3kF,SAAS,EACTM,YAAY,EACZ2/C,gBAAgB,EAChBtG,SAAS,EACThlD,QAAQ,EACRiwF,YAAY,EACZhrC,SAAS,EACTsG,OAAO,EACPC,OAAO,EACPtG,UAAU,EACVtsD,MAAM,EACN,MAAQ,EACRY,MAAM,EACN02F,UAAU,EACV/nG,KAAK,EACLgoG,SAAS,EACThmD,QAAQ,EACRwhB,SAAS,EACTpB,SAAS,EACT6lC,SAAS,EACT/sD,SAAS,EACTC,SAAS,EACTirB,WAAW,EACXV,aAAa,EACbwiC,SAAS,EACTC,SAAS,EACTC,eAAe,EACfrlC,WAAW,EACXG,SAAS,EACTnjE,OAAO,GACNnC,EAAOlR,MAAM46G,SAChB1pG,EAAO3K,KAAK,CACV+T,MAAO,UACPmgB,KAAM,aACL,SAAU53B,EAAMu2G,GACjBloG,EAAOlR,MAAMyyG,QAAQ5vG,GAAQ,CAE3Bm3G,MAAO,WAML,OAFAhB,GAAev7G,KAAMoF,EAAM81G,KAEpB,GAET9yG,QAAS,WAIP,OAFAmzG,GAAev7G,KAAMoF,IAEd,GAIT20G,SAAU,WACR,OAAO,GAET4B,aAAcA,MAWlBloG,EAAO3K,KAAK,CACVqtB,WAAY,YACZC,WAAY,WACZ8nF,aAAc,cACdC,aAAc,eACb,SAAUC,EAAMvB,GACjBppG,EAAOlR,MAAMyyG,QAAQoJ,GAAQ,CAC3BzC,aAAckB,EACdR,SAAUQ,EACVX,OAAQ,SAAU35G,GAChB,IAAIsiG,EACA33F,EAASlN,KACTq+G,EAAU97G,EAAMs1B,cAChBikF,EAAYv5G,EAAMu5G,UAStB,OANKuC,IAAWA,IAAYnxG,GAAWuG,EAAOhG,SAASP,EAAQmxG,MAC7D97G,EAAM6C,KAAO02G,EAAUE,SACvBnX,EAAMiX,EAAUnlF,QAAQjV,MAAM1hB,KAAM6nB,WACpCtlB,EAAM6C,KAAOy3G,GAGRhY,OAIbpxF,EAAOoM,GAAGtW,OAAO,CACfR,GAAI,SAAUsyG,EAAO1nF,EAAUzwB,EAAM2c,GACnC,OAAO9W,GAAG/I,KAAMq7G,EAAO1nF,EAAUzwB,EAAM2c,IAEzCyY,IAAK,SAAU+iF,EAAO1nF,EAAUzwB,EAAM2c,GACpC,OAAO9W,GAAG/I,KAAMq7G,EAAO1nF,EAAUzwB,EAAM2c,EAAI,IAE7C0D,IAAK,SAAU83F,EAAO1nF,EAAU9T,GAC9B,IAAIi8F,EAAW12G,EAEf,GAAIi2G,GAASA,EAAMpyG,gBAAkBoyG,EAAMS,UAIzC,OAFAA,EAAYT,EAAMS,UAClBroG,EAAO4nG,EAAMnmF,gBAAgB3R,IAAIu4F,EAAU3jF,UAAY2jF,EAAUE,SAAW,IAAMF,EAAU3jF,UAAY2jF,EAAUE,SAAUF,EAAUnoF,SAAUmoF,EAAUnlF,SACnJ32B,KAGT,GAAqB,iBAAVq7G,EAAoB,CAE7B,IAAKj2G,KAAQi2G,EACXr7G,KAAKujB,IAAIne,EAAMuuB,EAAU0nF,EAAMj2G,IAGjC,OAAOpF,KAaT,OAViB,IAAb2zB,GAA0C,mBAAbA,IAE/B9T,EAAK8T,EACLA,OAAWrrB,IAGF,IAAPuX,IACFA,EAAKo7F,IAGAj7G,KAAK8I,MAAK,WACf2K,EAAOlR,MAAMmO,OAAO1Q,KAAMq7G,EAAOx7F,EAAI8T,SAI3C,IAGA2qF,GAAe,wBAEfC,GAAW,oCACPC,GAAe,2CAEnB,SAASC,GAAmB/qG,EAAMsG,GAChC,OAAIgK,EAAStQ,EAAM,UAAYsQ,EAA8B,KAArBhK,EAAQwlB,SAAkBxlB,EAAUA,EAAQyzC,WAAY,OACvFh6C,EAAOC,GAAMU,SAAS,SAAS,IAGjCV,EAIT,SAASgrG,GAAchrG,GAErB,OADAA,EAAKtO,MAAsC,OAA9BsO,EAAKqQ,aAAa,SAAoB,IAAMrQ,EAAKtO,KACvDsO,EAGT,SAASirG,GAAcjrG,GAOrB,MANsC,WAAjCA,EAAKtO,MAAQ,IAAIsX,MAAM,EAAG,GAC7BhJ,EAAKtO,KAAOsO,EAAKtO,KAAKsX,MAAM,GAE5BhJ,EAAKyc,gBAAgB,QAGhBzc,EAGT,SAASkrG,GAAe9tE,EAAK+tE,GAC3B,IAAI14G,EAAG2hB,EAAG1iB,EAAgB05G,EAAUC,EAAUj/G,EAE9C,GAAsB,IAAlB++G,EAAKr/E,SAAT,CAKA,GAAI43E,EAASpvC,QAAQl3B,KAEnBhxC,EADWs3G,EAASztG,IAAImnC,GACNhxC,QAKhB,IAAKsF,KAFLgyG,EAAS1mG,OAAOmuG,EAAM,iBAET/+G,EACX,IAAKqG,EAAI,EAAG2hB,EAAIhoB,EAAOsF,GAAMrE,OAAQoF,EAAI2hB,EAAG3hB,IAC1CsN,EAAOlR,MAAM6E,IAAIy3G,EAAMz5G,EAAMtF,EAAOsF,GAAMe,IAO9CkxG,EAASrvC,QAAQl3B,KACnBguE,EAAWzH,EAASf,OAAOxlE,GAC3BiuE,EAAWtrG,EAAOlK,OAAO,GAAIu1G,GAC7BzH,EAASjmF,IAAIytF,EAAME,KAKvB,SAASC,GAASluE,EAAK+tE,GACrB,IAAI76F,EAAW66F,EAAK76F,SAAS6V,cAEZ,UAAb7V,GAAwBo1F,GAAe96F,KAAKwyB,EAAI1rC,MAClDy5G,EAAKvnG,QAAUw5B,EAAIx5B,QACG,UAAb0M,GAAqC,aAAbA,IACjC66F,EAAK5hG,aAAe6zB,EAAI7zB,cAI5B,SAASgiG,GAASC,EAAYtmF,EAAMjoB,EAAUgqG,GAE5C/hF,EAAOgrE,EAAKhrE,GACZ,IAAIiiF,EACA7mG,EACAymG,EACA0E,EACAtxF,EACAouB,EACA91C,EAAI,EACJ2hB,EAAIo3F,EAAWn+G,OACfq+G,EAAWt3F,EAAI,EACfhjB,EAAQ8zB,EAAK,GACbymF,EAAkB5jE,EAAW32C,GAEjC,GAAIu6G,GAAmBv3F,EAAI,GAAsB,iBAAVhjB,IAAuBm/F,EAAQuV,YAAc+E,GAASjgG,KAAKxZ,GAChG,OAAOo6G,EAAWp2G,MAAK,SAAU7F,GAC/B,IAAIuP,EAAO0sG,EAAWnyG,GAAG9J,GAErBo8G,IACFzmF,EAAK,GAAK9zB,EAAM6X,KAAK3c,KAAMiD,EAAOuP,EAAKw9B,SAGzCivE,GAASzsG,EAAMomB,EAAMjoB,EAAUgqG,MAInC,GAAI7yF,IAEF9T,GADA6mG,EAAWL,GAAc5hF,EAAMsmF,EAAW,GAAGnkC,eAAe,EAAOmkC,EAAYvE,IAC9DltD,WAEkB,IAA/BotD,EAASlwD,WAAW5pD,SACtB85G,EAAW7mG,GAITA,GAAS2mG,GAAS,CAMpB,IAJAwE,GADA1E,EAAUhnG,EAAOwb,IAAI+qF,GAAOa,EAAU,UAAW6D,KAC5B39G,OAIdoF,EAAI2hB,EAAG3hB,IACZ0nB,EAAOgtF,EAEH10G,IAAMi5G,IACRvxF,EAAOpa,EAAO2xF,MAAMv3E,GAAM,GAAM,GAE5BsxF,GAGF1rG,EAAO4sC,MAAMo6D,EAAST,GAAOnsF,EAAM,YAIvCld,EAASgM,KAAKuiG,EAAW/4G,GAAI0nB,EAAM1nB,GAGrC,GAAIg5G,EAKF,IAJAljE,EAAMw+D,EAAQA,EAAQ15G,OAAS,GAAGg6E,cAElCtnE,EAAOwb,IAAIwrF,EAASkE,IAEfx4G,EAAI,EAAGA,EAAIg5G,EAAYh5G,IAC1B0nB,EAAO4sF,EAAQt0G,GAEXmzG,GAAYh7F,KAAKuP,EAAKzoB,MAAQ,MAAQgyG,EAASd,OAAOzoF,EAAM,eAAiBpa,EAAOhG,SAASwuC,EAAKpuB,KAChGA,EAAKijB,KAA2C,YAAnCjjB,EAAKzoB,MAAQ,IAAIy0B,cAE5BpmB,EAAO6rG,WAAazxF,EAAKw2E,UAC3B5wF,EAAO6rG,SAASzxF,EAAKijB,IAAK,CACxBszD,MAAOv2E,EAAKu2E,OAASv2E,EAAK9J,aAAa,UACtCk4B,GAGLqoD,EAAQz2E,EAAK08B,YAAYxlD,QAAQy5G,GAAc,IAAK3wF,EAAMouB,IAQtE,OAAOijE,EAGT,SAASxuG,GAAOgD,EAAMigB,EAAU4rF,GAK9B,IAJA,IAAI1xF,EACAxJ,EAAQsP,EAAWlgB,EAAOtL,OAAOwrB,EAAUjgB,GAAQA,EACnDvN,EAAI,EAEoB,OAApB0nB,EAAOxJ,EAAMle,IAAaA,IAC3Bo5G,GAA8B,IAAlB1xF,EAAK2R,UACpB/rB,EAAO+rG,UAAUxF,GAAOnsF,IAGtBA,EAAK3J,aACHq7F,GAAYnH,GAAWvqF,IACzBosF,GAAcD,GAAOnsF,EAAM,WAG7BA,EAAK3J,WAAW+xB,YAAYpoB,IAIhC,OAAOna,EAGTD,EAAOlK,OAAO,CACZuxG,cAAe,SAAU9qE,GACvB,OAAOA,GAETo1D,MAAO,SAAU1xF,EAAM+rG,EAAeC,GACpC,IAAIv5G,EACA2hB,EACA63F,EACAC,EACAxa,EAAQ1xF,EAAKoR,WAAU,GACvB+6F,EAASzH,GAAW1kG,GAExB,KAAKuwF,EAAQwV,gBAAqC,IAAlB/lG,EAAK8rB,UAAoC,KAAlB9rB,EAAK8rB,UAAqB/rB,EAAOq+F,SAASp+F,IAK/F,IAHAksG,EAAe5F,GAAO5U,GAGjBj/F,EAAI,EAAG2hB,GAFZ63F,EAAc3F,GAAOtmG,IAEO3S,OAAQoF,EAAI2hB,EAAG3hB,IACzC64G,GAASW,EAAYx5G,GAAIy5G,EAAaz5G,IAK1C,GAAIs5G,EACF,GAAIC,EAIF,IAHAC,EAAcA,GAAe3F,GAAOtmG,GACpCksG,EAAeA,GAAgB5F,GAAO5U,GAEjCj/F,EAAI,EAAG2hB,EAAI63F,EAAY5+G,OAAQoF,EAAI2hB,EAAG3hB,IACzCy4G,GAAee,EAAYx5G,GAAIy5G,EAAaz5G,SAG9Cy4G,GAAelrG,EAAM0xF,GAYzB,OAPAwa,EAAe5F,GAAO5U,EAAO,WAEZrkG,OAAS,GACxBk5G,GAAc2F,GAAeC,GAAU7F,GAAOtmG,EAAM,WAI/C0xF,GAEToa,UAAW,SAAU5a,GAOnB,IANA,IAAI1hG,EACAwQ,EACAtO,EACA4vG,EAAUvhG,EAAOlR,MAAMyyG,QACvB7uG,EAAI,OAEqBmC,KAArBoL,EAAOkxF,EAAMz+F,IAAmBA,IACtC,GAAI+wG,EAAWxjG,GAAO,CACpB,GAAIxQ,EAAOwQ,EAAK0jG,EAAS7R,SAAU,CACjC,GAAIriG,EAAKpD,OACP,IAAKsF,KAAQlC,EAAKpD,OACZk1G,EAAQ5vG,GACVqO,EAAOlR,MAAMmO,OAAOgD,EAAMtO,GAE1BqO,EAAOutC,YAAYttC,EAAMtO,EAAMlC,EAAKg5G,QAO1CxoG,EAAK0jG,EAAS7R,cAAWj9F,EAGvBoL,EAAK2jG,EAAS9R,WAGhB7xF,EAAK2jG,EAAS9R,cAAWj9F,OAMnCmL,EAAOoM,GAAGtW,OAAO,CACfu2G,OAAQ,SAAUnsF,GAChB,OAAOjjB,GAAO1Q,KAAM2zB,GAAU,IAEhCjjB,OAAQ,SAAUijB,GAChB,OAAOjjB,GAAO1Q,KAAM2zB,IAEtBzyB,KAAM,SAAU4D,GACd,OAAOwxG,EAAOt2G,MAAM,SAAU8E,GAC5B,YAAiBwD,IAAVxD,EAAsB2O,EAAOvS,KAAKlB,MAAQA,KAAKqrC,QAAQviC,MAAK,WAC3C,IAAlB9I,KAAKw/B,UAAoC,KAAlBx/B,KAAKw/B,UAAqC,IAAlBx/B,KAAKw/B,WACtDx/B,KAAKuqD,YAAczlD,QAGtB,KAAMA,EAAO+iB,UAAU9mB,SAE5Bmf,OAAQ,WACN,OAAO++F,GAASj/G,KAAM6nB,WAAW,SAAUnU,GACnB,IAAlB1T,KAAKw/B,UAAoC,KAAlBx/B,KAAKw/B,UAAqC,IAAlBx/B,KAAKw/B,UACzCi/E,GAAmBz+G,KAAM0T,GAC/BqH,YAAYrH,OAIzBqsG,QAAS,WACP,OAAOd,GAASj/G,KAAM6nB,WAAW,SAAUnU,GACzC,GAAsB,IAAlB1T,KAAKw/B,UAAoC,KAAlBx/B,KAAKw/B,UAAqC,IAAlBx/B,KAAKw/B,SAAgB,CACtE,IAAItyB,EAASuxG,GAAmBz+G,KAAM0T,GACtCxG,EAAOsgD,aAAa95C,EAAMxG,EAAOugD,iBAIvCuyD,OAAQ,WACN,OAAOf,GAASj/G,KAAM6nB,WAAW,SAAUnU,GACrC1T,KAAKkkB,YACPlkB,KAAKkkB,WAAWspC,aAAa95C,EAAM1T,UAIzCigH,MAAO,WACL,OAAOhB,GAASj/G,KAAM6nB,WAAW,SAAUnU,GACrC1T,KAAKkkB,YACPlkB,KAAKkkB,WAAWspC,aAAa95C,EAAM1T,KAAKw2D,iBAI9CnrB,MAAO,WAIL,IAHA,IAAI33B,EACAvN,EAAI,EAEmB,OAAnBuN,EAAO1T,KAAKmG,IAAaA,IACT,IAAlBuN,EAAK8rB,WAEP/rB,EAAO+rG,UAAUxF,GAAOtmG,GAAM,IAE9BA,EAAK62C,YAAc,IAIvB,OAAOvqD,MAETolG,MAAO,SAAUqa,EAAeC,GAG9B,OAFAD,EAAiC,MAAjBA,GAAgCA,EAChDC,EAAyC,MAArBA,EAA4BD,EAAgBC,EACzD1/G,KAAKivB,KAAI,WACd,OAAOxb,EAAO2xF,MAAMplG,KAAMy/G,EAAeC,OAG7C1vE,KAAM,SAAUlrC,GACd,OAAOwxG,EAAOt2G,MAAM,SAAU8E,GAC5B,IAAI4O,EAAO1T,KAAK,IAAM,GAClBmG,EAAI,EACJ2hB,EAAI9nB,KAAKe,OAEb,QAAcuH,IAAVxD,GAAyC,IAAlB4O,EAAK8rB,SAC9B,OAAO9rB,EAAKoH,UAId,GAAqB,iBAAVhW,IAAuBw5G,GAAahgG,KAAKxZ,KAAW60G,IAASN,GAASj2E,KAAKt+B,IAAU,CAAC,GAAI,KAAK,GAAG+0B,eAAgB,CAC3H/0B,EAAQ2O,EAAOqnG,cAAch2G,GAE7B,IACE,KAAOqB,EAAI2hB,EAAG3hB,IAGU,KAFtBuN,EAAO1T,KAAKmG,IAAM,IAETq5B,WACP/rB,EAAO+rG,UAAUxF,GAAOtmG,GAAM,IAC9BA,EAAKoH,UAAYhW,GAIrB4O,EAAO,EACP,MAAO1K,KAGP0K,GACF1T,KAAKqrC,QAAQnrB,OAAOpb,KAErB,KAAMA,EAAO+iB,UAAU9mB,SAE5BshB,YAAa,WACX,IAAIs4F,EAAU,GAEd,OAAOsE,GAASj/G,KAAM6nB,WAAW,SAAUnU,GACzC,IAAI+D,EAASzX,KAAKkkB,WAEdzQ,EAAOusC,QAAQhgD,KAAM26G,GAAW,IAClClnG,EAAO+rG,UAAUxF,GAAOh6G,OAEpByX,GACFA,EAAOuN,aAAatR,EAAM1T,SAI7B26G,MAGPlnG,EAAO3K,KAAK,CACVo3G,SAAU,SACVC,UAAW,UACX3yD,aAAc,SACd4yD,YAAa,QACbC,WAAY,gBACX,SAAUh7G,EAAMujB,GACjBnV,EAAOoM,GAAGxa,GAAQ,SAAUsuB,GAO1B,IANA,IAAIixE,EACAC,EAAM,GACNzb,EAAS31E,EAAOkgB,GAChBya,EAAOg7C,EAAOroF,OAAS,EACvBoF,EAAI,EAEDA,GAAKioC,EAAMjoC,IAChBy+F,EAAQz+F,IAAMioC,EAAOpuC,KAAOA,KAAKolG,OAAM,GACvC3xF,EAAO21E,EAAOjjF,IAAIyiB,GAAUg8E,GAG5Bt9F,EAAKoa,MAAMmjF,EAAKD,EAAMj7F,OAGxB,OAAO3J,KAAK2kG,UAAUE,OAG1B,IAAIyb,GAAY,IAAIjiF,OAAO,KAAO45E,GAAO,kBAAmB,KAExDsI,GAAY,SAAU7sG,GAIxB,IAAI4S,EAAO5S,EAAKqnE,cAAckwB,YAM9B,OAJK3kF,GAASA,EAAKk6F,SACjBl6F,EAAO7mB,GAGF6mB,EAAK4Y,iBAAiBxrB,IAG3B+sG,GAAO,SAAU/sG,EAAMpK,EAASqH,GAClC,IAAIk0F,EACAx/F,EACA47D,EAAM,GAEV,IAAK57D,KAAQiE,EACX23D,EAAI57D,GAAQqO,EAAKpU,MAAM+F,GACvBqO,EAAKpU,MAAM+F,GAAQiE,EAAQjE,GAK7B,IAAKA,KAFLw/F,EAAMl0F,EAASgM,KAAKjJ,GAEPpK,EACXoK,EAAKpU,MAAM+F,GAAQ47D,EAAI57D,GAGzB,OAAOw/F,GAGL6b,GAAY,IAAIriF,OAAO85E,GAAUhwF,KAAK,KAAM,KAyHhD,SAASw4F,GAAOjtG,EAAMrO,EAAMu7G,GAC1B,IAAIz9G,EACAisF,EACA9rF,EACAuhG,EAKJvlG,EAAQoU,EAAKpU,MAgCb,OA/BAshH,EAAWA,GAAYL,GAAU7sG,MAOnB,MAFZmxF,EAAM+b,EAASjhF,iBAAiBt6B,IAASu7G,EAASv7G,KAE/B+yG,GAAW1kG,KAC5BmxF,EAAMpxF,EAAOnU,MAAMoU,EAAMrO,KAQtB4+F,EAAQ4c,kBAAoBP,GAAUhiG,KAAKumF,IAAQ6b,GAAUpiG,KAAKjZ,KAErElC,EAAQ7D,EAAM6D,MACdisF,EAAW9vF,EAAM8vF,SACjB9rF,EAAWhE,EAAMgE,SAEjBhE,EAAM8vF,SAAW9vF,EAAMgE,SAAWhE,EAAM6D,MAAQ0hG,EAChDA,EAAM+b,EAASz9G,MAEf7D,EAAM6D,MAAQA,EACd7D,EAAM8vF,SAAWA,EACjB9vF,EAAMgE,SAAWA,SAINgF,IAARu8F,EAEPA,EAAM,GAAKA,EAGb,SAASic,GAAaC,EAAaC,GAEjC,MAAO,CACLr3G,IAAK,WACH,IAAIo3G,IAQJ,OAAQ/gH,KAAK2J,IAAMq3G,GAAQt/F,MAAM1hB,KAAM6nB,kBAL9B7nB,KAAK2J,OA5KpB,WAGE,SAASs3G,IAEP,GAAKrxD,EAAL,CAIAvvD,EAAUf,MAAM4hH,QAAU,+EAC1BtxD,EAAItwD,MAAM4hH,QAAU,4HACpBl2G,GAAgB+P,YAAY1a,GAAW0a,YAAY60C,GACnD,IAAIuxD,EAAW1hH,EAAOy/B,iBAAiB0wB,GACvCwxD,EAAoC,OAAjBD,EAAS1gH,IAE5B4gH,EAAoE,KAA5CC,EAAmBH,EAAS1nD,YAGpD7J,EAAItwD,MAAMutD,MAAQ,MAClB00D,EAA2D,KAAvCD,EAAmBH,EAASt0D,OAGhD20D,EAA8D,KAAvCF,EAAmBH,EAASh+G,OAKnDysD,EAAItwD,MAAMkiB,SAAW,WACrBigG,EAA+D,KAA5CH,EAAmB1xD,EAAI/P,YAAc,GACxD70C,GAAgBirC,YAAY51C,GAG5BuvD,EAAM,MAGR,SAAS0xD,EAAmBI,GAC1B,OAAO33F,KAAKw2B,MAAMnhB,WAAWsiF,IAG/B,IAAIN,EACAI,EACAC,EACAF,EACAI,EACAN,EACAhhH,EAAY7B,EAASic,cAAc,OACnCm1C,EAAMpxD,EAASic,cAAc,OAE5Bm1C,EAAItwD,QAMTswD,EAAItwD,MAAMsiH,eAAiB,cAC3BhyD,EAAI9qC,WAAU,GAAMxlB,MAAMsiH,eAAiB,GAC3C3d,EAAQ4d,gBAA+C,gBAA7BjyD,EAAItwD,MAAMsiH,eACpCnuG,EAAOlK,OAAO06F,EAAS,CACrB6d,kBAAmB,WAEjB,OADAb,IACOO,GAETX,eAAgB,WAEd,OADAI,IACOM,GAETQ,cAAe,WAEb,OADAd,IACOG,GAETY,mBAAoB,WAElB,OADAf,IACOI,GAETY,cAAe,WAEb,OADAhB,IACOQ,GAWTS,qBAAsB,WACpB,IAAI/9F,EAAOF,EAAIk+F,EAASC,EA0BxB,OAxB+B,MAA3BT,IACFx9F,EAAQ3lB,EAASic,cAAc,SAC/BwJ,EAAKzlB,EAASic,cAAc,MAC5B0nG,EAAU3jH,EAASic,cAAc,OACjC0J,EAAM7kB,MAAM4hH,QAAU,2DACtBj9F,EAAG3kB,MAAM4hH,QAAU,mBAInBj9F,EAAG3kB,MAAME,OAAS,MAClB2iH,EAAQ7iH,MAAME,OAAS,MAOvB2iH,EAAQ7iH,MAAMuxC,QAAU,QACxB7lC,GAAgB+P,YAAYoJ,GAAOpJ,YAAYkJ,GAAIlJ,YAAYonG,GAC/DC,EAAU3iH,EAAOy/B,iBAAiBjb,GAClC09F,EAA0B9+G,SAASu/G,EAAQ5iH,OAAQ,IAAMqD,SAASu/G,EAAQC,eAAgB,IAAMx/G,SAASu/G,EAAQE,kBAAmB,MAAQr+F,EAAG6K,aAC/I9jB,GAAgBirC,YAAY9xB,IAGvBw9F,MAlHb,GAsLA,IAAIY,GAAc,CAAC,SAAU,MAAO,MAChCC,GAAahkH,EAASic,cAAc,OAAOnb,MAC3CmjH,GAAc,GAiBlB,SAASC,GAAcr9G,GACrB,IAAIqwF,EAAQjiF,EAAOkvG,SAASt9G,IAASo9G,GAAYp9G,GAEjD,OAAIqwF,IAIArwF,KAAQm9G,GACHn9G,EAGFo9G,GAAYp9G,GA1BrB,SAAwBA,GAKtB,IAHA,IAAIu9G,EAAUv9G,EAAK,GAAGsvB,cAAgBtvB,EAAKqX,MAAM,GAC7CvW,EAAIo8G,GAAYxhH,OAEboF,KAGL,IAFAd,EAAOk9G,GAAYp8G,GAAKy8G,KAEZJ,GACV,OAAOn9G,EAiBgBw9G,CAAex9G,IAASA,GAGrD,IAGAy9G,GAAe,4BACXC,GAAc,MACdC,GAAU,CACZxhG,SAAU,WACV2uC,WAAY,SACZtf,QAAS,SAEPoyE,GAAqB,CACvBC,cAAe,IACf9+G,WAAY,OAGd,SAAS++G,GAAkBne,EAAOlgG,EAAOs+G,GAGvC,IAAI5oF,EAAU09E,GAAQ90E,KAAKt+B,GAC3B,OAAO01B,EACPzQ,KAAK1W,IAAI,EAAGmnB,EAAQ,IAAM4oF,GAAY,KAAO5oF,EAAQ,IAAM,MAAQ11B,EAGrE,SAASu+G,GAAmB3vG,EAAM6gB,EAAWy3B,EAAKs3D,EAAav0D,EAAQw0D,GACrE,IAAIp9G,EAAkB,UAAdouB,EAAwB,EAAI,EAChCivF,EAAQ,EACRC,EAAQ,EAEZ,GAAIz3D,KAASs3D,EAAc,SAAW,WACpC,OAAO,EAGT,KAAOn9G,EAAI,EAAGA,GAAK,EAEL,WAAR6lD,IACFy3D,GAAShwG,EAAOjT,IAAIkT,EAAMs4C,EAAMmsD,GAAUhyG,IAAI,EAAM4oD,IAIjDu0D,GAaS,YAARt3D,IACFy3D,GAAShwG,EAAOjT,IAAIkT,EAAM,UAAYykG,GAAUhyG,IAAI,EAAM4oD,IAIhD,WAAR/C,IACFy3D,GAAShwG,EAAOjT,IAAIkT,EAAM,SAAWykG,GAAUhyG,GAAK,SAAS,EAAM4oD,MAjBrE00D,GAAShwG,EAAOjT,IAAIkT,EAAM,UAAYykG,GAAUhyG,IAAI,EAAM4oD,GAE9C,YAAR/C,EACFy3D,GAAShwG,EAAOjT,IAAIkT,EAAM,SAAWykG,GAAUhyG,GAAK,SAAS,EAAM4oD,GAEnEy0D,GAAS/vG,EAAOjT,IAAIkT,EAAM,SAAWykG,GAAUhyG,GAAK,SAAS,EAAM4oD,IA0BzE,OARKu0D,GAAeC,GAAe,IAGjCE,GAAS15F,KAAK1W,IAAI,EAAG0W,KAAKkkB,KAAKv6B,EAAK,SAAW6gB,EAAU,GAAGI,cAAgBJ,EAAU7X,MAAM,IAAM6mG,EAAcE,EAAQD,EAAQ,MAE1H,GAGDC,EAGT,SAASC,GAAiBhwG,EAAM6gB,EAAWivF,GAEzC,IAAIz0D,EAASwxD,GAAU7sG,GAInB4vG,IADerf,EAAQ6d,qBAAuB0B,IACoC,eAAjD/vG,EAAOjT,IAAIkT,EAAM,aAAa,EAAOq7C,GACtE40D,EAAmBL,EACnBpqG,EAAMynG,GAAOjtG,EAAM6gB,EAAWw6B,GAC9B60D,EAAa,SAAWrvF,EAAU,GAAGI,cAAgBJ,EAAU7X,MAAM,GAGzE,GAAI4jG,GAAUhiG,KAAKpF,GAAM,CACvB,IAAKsqG,EACH,OAAOtqG,EAGTA,EAAM,OA8BR,QAxBM+qF,EAAQ6d,qBAAuBwB,IAIpCrf,EAAQie,wBAA0Bl+F,EAAStQ,EAAM,OAE1C,SAARwF,IAECkmB,WAAWlmB,IAAuD,WAA/CzF,EAAOjT,IAAIkT,EAAM,WAAW,EAAOq7C,KACvDr7C,EAAK+rB,iBAAiB1+B,SACpBuiH,EAA+D,eAAjD7vG,EAAOjT,IAAIkT,EAAM,aAAa,EAAOq7C,IAInD40D,EAAmBC,KAAclwG,KAG/BwF,EAAMxF,EAAKkwG,MAKf1qG,EAAMkmB,WAAWlmB,IAAQ,GAEZmqG,GAAmB3vG,EAAM6gB,EAAWivF,IAAUF,EAAc,SAAW,WAAYK,EAAkB50D,EAClH71C,GAAO,KA2PT,SAAS2qG,GAAMnwG,EAAMpK,EAAS2V,EAAM4pC,EAAKv5B,GACvC,OAAO,IAAIu0F,GAAMz9F,UAAUznB,KAAK+U,EAAMpK,EAAS2V,EAAM4pC,EAAKv5B,GAzP5D7b,EAAOlK,OAAO,CAGZu6G,SAAU,CACRpmE,QAAS,CACP/zC,IAAK,SAAU+J,EAAMktG,GACnB,GAAIA,EAAU,CAEZ,IAAI/b,EAAM8b,GAAOjtG,EAAM,WACvB,MAAe,KAARmxF,EAAa,IAAMA,MAMlCkU,UAAW,CACT,yBAA2B,EAC3B,aAAe,EACf,aAAe,EACf,UAAY,EACZ,YAAc,EACd,YAAc,EACd,UAAY,EACZ,YAAc,EACd,eAAiB,EACjB,iBAAmB,EACnB,SAAW,EACX,YAAc,EACd,cAAgB,EAChB,YAAc,EACd,SAAW,EACX,OAAS,EACT,SAAW,EACX,QAAU,EACV,QAAU,EACV,MAAQ,GAIV4J,SAAU,GAEVrjH,MAAO,SAAUoU,EAAMrO,EAAMP,EAAO0+G,GAElC,GAAK9vG,GAA0B,IAAlBA,EAAK8rB,UAAoC,IAAlB9rB,EAAK8rB,UAAmB9rB,EAAKpU,MAAjE,CAKA,IAAIulG,EACAz/F,EACA0yG,EACAiM,EAAW9M,EAAU5xG,GACrB2+G,EAAejB,GAAYzkG,KAAKjZ,GAChC/F,EAAQoU,EAAKpU,MAWjB,GAPK0kH,IACH3+G,EAAOq9G,GAAcqB,IAIvBjM,EAAQrkG,EAAOqwG,SAASz+G,IAASoO,EAAOqwG,SAASC,QAEnCz7G,IAAVxD,EAoCF,OAAIgzG,GAAS,QAASA,QAAmDxvG,KAAzCu8F,EAAMiT,EAAMnuG,IAAI+J,GAAM,EAAO8vG,IACpD3e,EAIFvlG,EAAM+F,GAtCA,YAFbD,SAAcN,KAEY+/F,EAAMqT,GAAQ90E,KAAKt+B,KAAW+/F,EAAI,KAC1D//F,EAAQyzG,GAAU7kG,EAAMrO,EAAMw/F,GAE9Bz/F,EAAO,UAII,MAATN,GAAiBA,GAAUA,IAOlB,WAATM,GAAsB4+G,IACxBl/G,GAAS+/F,GAAOA,EAAI,KAAOpxF,EAAOslG,UAAUgL,GAAY,GAAK,OAI1D9f,EAAQ4d,iBAA6B,KAAV/8G,GAA+C,IAA/BO,EAAKwZ,QAAQ,gBAC3Dvf,EAAM+F,GAAQ,WAIXyyG,GAAW,QAASA,QAAsDxvG,KAA3CxD,EAAQgzG,EAAM1mF,IAAI1d,EAAM5O,EAAO0+G,MAC7DQ,EACF1kH,EAAMskF,YAAYv+E,EAAMP,GAExBxF,EAAM+F,GAAQP,MAatBtE,IAAK,SAAUkT,EAAMrO,EAAMm+G,EAAOz0D,GAChC,IAAI71C,EACAhC,EACA4gG,EACAiM,EAAW9M,EAAU5xG,GA2BzB,OA1BmB09G,GAAYzkG,KAAKjZ,KAKlCA,EAAOq9G,GAAcqB,KAIvBjM,EAAQrkG,EAAOqwG,SAASz+G,IAASoO,EAAOqwG,SAASC,KAEpC,QAASjM,IACpB5+F,EAAM4+F,EAAMnuG,IAAI+J,GAAM,EAAM8vG,SAIlBl7G,IAAR4Q,IACFA,EAAMynG,GAAOjtG,EAAMrO,EAAM0pD,IAIf,WAAR71C,GAAoB7T,KAAQ49G,KAC9B/pG,EAAM+pG,GAAmB59G,IAIb,KAAVm+G,GAAgBA,GAClBtsG,EAAMkoB,WAAWlmB,IACA,IAAVsqG,GAAkB3mB,SAAS3lF,GAAOA,GAAO,EAAIgC,GAG/CA,KAGXzF,EAAO3K,KAAK,CAAC,SAAU,UAAU,SAAUigF,EAAIx0D,GAC7C9gB,EAAOqwG,SAASvvF,GAAa,CAC3B5qB,IAAK,SAAU+J,EAAMktG,EAAU4C,GAC7B,GAAI5C,EAGF,OAAOkC,GAAaxkG,KAAK7K,EAAOjT,IAAIkT,EAAM,aAMzCA,EAAK+rB,iBAAiB1+B,QAAW2S,EAAKkhB,wBAAwBzxB,MAE1DugH,GAAiBhwG,EAAM6gB,EAAWivF,GAFiC/C,GAAK/sG,EAAMsvG,IAAS,WAC1F,OAAOU,GAAiBhwG,EAAM6gB,EAAWivF,OAI/CpyF,IAAK,SAAU1d,EAAM5O,EAAO0+G,GAC1B,IAAIhpF,EACAu0B,EAASwxD,GAAU7sG,GAGvBuwG,GAAsBhgB,EAAQge,iBAAuC,aAApBlzD,EAAOvtC,SAGpD8hG,GADcW,GAAsBT,IAC8C,eAAjD/vG,EAAOjT,IAAIkT,EAAM,aAAa,EAAOq7C,GACtEq0D,EAAWI,EAAQH,GAAmB3vG,EAAM6gB,EAAWivF,EAAOF,EAAav0D,GAAU,EAazF,OAVIu0D,GAAeW,IACjBb,GAAYr5F,KAAKkkB,KAAKv6B,EAAK,SAAW6gB,EAAU,GAAGI,cAAgBJ,EAAU7X,MAAM,IAAM0iB,WAAW2vB,EAAOx6B,IAAc8uF,GAAmB3vG,EAAM6gB,EAAW,UAAU,EAAOw6B,GAAU,KAItLq0D,IAAa5oF,EAAU09E,GAAQ90E,KAAKt+B,KAAoC,QAAxB01B,EAAQ,IAAM,QAChE9mB,EAAKpU,MAAMi1B,GAAazvB,EACxBA,EAAQ2O,EAAOjT,IAAIkT,EAAM6gB,IAGpB4uF,GAAkBzvG,EAAM5O,EAAOs+G,QAI5C3vG,EAAOqwG,SAASrqD,WAAaqnD,GAAa7c,EAAQ+d,oBAAoB,SAAUtuG,EAAMktG,GACpF,GAAIA,EACF,OAAQxhF,WAAWuhF,GAAOjtG,EAAM,gBAAkBA,EAAKkhB,wBAAwBh0B,KAAO6/G,GAAK/sG,EAAM,CAC/F+lD,WAAY,IACX,WACD,OAAO/lD,EAAKkhB,wBAAwBh0B,SAChC,QAIV6S,EAAO3K,KAAK,CACVsa,OAAQ,GACR3E,QAAS,GACT0gC,OAAQ,UACP,SAAUzgB,EAAQwlF,GACnBzwG,EAAOqwG,SAASplF,EAASwlF,GAAU,CACjCC,OAAQ,SAAUr/G,GAMhB,IALA,IAAIqB,EAAI,EACJi+G,EAAW,GAEfC,EAAyB,iBAAVv/G,EAAqBA,EAAMmZ,MAAM,KAAO,CAACnZ,GAEjDqB,EAAI,EAAGA,IACZi+G,EAAS1lF,EAASy5E,GAAUhyG,GAAK+9G,GAAUG,EAAMl+G,IAAMk+G,EAAMl+G,EAAI,IAAMk+G,EAAM,GAG/E,OAAOD,IAII,WAAX1lF,IACFjrB,EAAOqwG,SAASplF,EAASwlF,GAAQ9yF,IAAM+xF,OAG3C1vG,EAAOoM,GAAGtW,OAAO,CACf/I,IAAK,SAAU6E,EAAMP,GACnB,OAAOwxG,EAAOt2G,MAAM,SAAU0T,EAAMrO,EAAMP,GACxC,IAAIiqD,EACA/nC,EACAiI,EAAM,GACN9oB,EAAI,EAER,GAAIsI,MAAMoN,QAAQxW,GAAO,CAIvB,IAHA0pD,EAASwxD,GAAU7sG,GACnBsT,EAAM3hB,EAAKtE,OAEJoF,EAAI6gB,EAAK7gB,IACd8oB,EAAI5pB,EAAKc,IAAMsN,EAAOjT,IAAIkT,EAAMrO,EAAKc,IAAI,EAAO4oD,GAGlD,OAAO9/B,EAGT,YAAiB3mB,IAAVxD,EAAsB2O,EAAOnU,MAAMoU,EAAMrO,EAAMP,GAAS2O,EAAOjT,IAAIkT,EAAMrO,KAC/EA,EAAMP,EAAO+iB,UAAU9mB,OAAS,MAQvC0S,EAAOowG,MAAQA,GACfA,GAAMz9F,UAAY,CAChBvY,YAAag2G,GACbllH,KAAM,SAAU+U,EAAMpK,EAAS2V,EAAM4pC,EAAKv5B,EAAQk5B,GAChDxoD,KAAK0T,KAAOA,EACZ1T,KAAKif,KAAOA,EACZjf,KAAKsvB,OAASA,GAAU7b,EAAO6b,OAAOyqF,SACtC/5G,KAAKsJ,QAAUA,EACftJ,KAAK4oD,MAAQ5oD,KAAKkqB,IAAMlqB,KAAKuqG,MAC7BvqG,KAAK6oD,IAAMA,EACX7oD,KAAKwoD,KAAOA,IAAS/0C,EAAOslG,UAAU95F,GAAQ,GAAK,OAErDsrF,IAAK,WACH,IAAIuN,EAAQ+L,GAAMS,UAAUtkH,KAAKif,MACjC,OAAO64F,GAASA,EAAMnuG,IAAMmuG,EAAMnuG,IAAI3J,MAAQ6jH,GAAMS,UAAUvK,SAASpwG,IAAI3J,OAE7Eu1C,IAAK,SAAUgvE,GACb,IAAIC,EACA1M,EAAQ+L,GAAMS,UAAUtkH,KAAKif,MAoBjC,OAlBIjf,KAAKsJ,QAAQ+B,SACfrL,KAAKw0C,IAAMgwE,EAAQ/wG,EAAO6b,OAAOtvB,KAAKsvB,QAAQi1F,EAASvkH,KAAKsJ,QAAQ+B,SAAWk5G,EAAS,EAAG,EAAGvkH,KAAKsJ,QAAQ+B,UAE3GrL,KAAKw0C,IAAMgwE,EAAQD,EAGrBvkH,KAAKkqB,KAAOlqB,KAAK6oD,IAAM7oD,KAAK4oD,OAAS47D,EAAQxkH,KAAK4oD,MAE9C5oD,KAAKsJ,QAAQsF,MACf5O,KAAKsJ,QAAQsF,KAAK+N,KAAK3c,KAAK0T,KAAM1T,KAAKkqB,IAAKlqB,MAG1C83G,GAASA,EAAM1mF,IACjB0mF,EAAM1mF,IAAIpxB,MAEV6jH,GAAMS,UAAUvK,SAAS3oF,IAAIpxB,MAGxBA,OAGX6jH,GAAMz9F,UAAUznB,KAAKynB,UAAYy9F,GAAMz9F,UACvCy9F,GAAMS,UAAY,CAChBvK,SAAU,CACRpwG,IAAK,SAAU8uG,GACb,IAAIvwF,EAGJ,OAA4B,IAAxBuwF,EAAM/kG,KAAK8rB,UAA4C,MAA1Bi5E,EAAM/kG,KAAK+kG,EAAMx5F,OAAiD,MAAhCw5F,EAAM/kG,KAAKpU,MAAMm5G,EAAMx5F,MACjFw5F,EAAM/kG,KAAK+kG,EAAMx5F,OAO1BiJ,EAASzU,EAAOjT,IAAIi4G,EAAM/kG,KAAM+kG,EAAMx5F,KAAM,MAEf,SAAXiJ,EAAwBA,EAAJ,GAExCkJ,IAAK,SAAUqnF,GAIThlG,EAAOgxG,GAAG71G,KAAK6pG,EAAMx5F,MACvBxL,EAAOgxG,GAAG71G,KAAK6pG,EAAMx5F,MAAMw5F,GACM,IAAxBA,EAAM/kG,KAAK8rB,WAAmB/rB,EAAOqwG,SAASrL,EAAMx5F,OAAwD,MAA/Cw5F,EAAM/kG,KAAKpU,MAAMojH,GAAcjK,EAAMx5F,OAG3Gw5F,EAAM/kG,KAAK+kG,EAAMx5F,MAAQw5F,EAAMvuF,IAF/BzW,EAAOnU,MAAMm5G,EAAM/kG,KAAM+kG,EAAMx5F,KAAMw5F,EAAMvuF,IAAMuuF,EAAMjwD,SAS/Dq7D,GAAMS,UAAU32G,UAAYk2G,GAAMS,UAAU/1F,WAAa,CACvD6C,IAAK,SAAUqnF,GACTA,EAAM/kG,KAAK8rB,UAAYi5E,EAAM/kG,KAAKwQ,aACpCu0F,EAAM/kG,KAAK+kG,EAAMx5F,MAAQw5F,EAAMvuF,OAIrCzW,EAAO6b,OAAS,CACdo1F,OAAQ,SAAU16F,GAChB,OAAOA,GAET26F,MAAO,SAAU36F,GACf,MAAO,GAAMD,KAAKq0B,IAAIp0B,EAAID,KAAK4yB,IAAM,GAEvCo9D,SAAU,SAEZtmG,EAAOgxG,GAAKZ,GAAMz9F,UAAUznB,KAE5B8U,EAAOgxG,GAAG71G,KAAO,GACjB,IAAIg2G,GACAC,GACAC,GAAW,yBACXC,GAAO,cAEX,SAASC,KACHH,MACsB,IAApBrmH,EAASuuD,QAAoBttD,EAAOgpD,sBACtChpD,EAAOgpD,sBAAsBu8D,IAE7BvlH,EAAO+J,WAAWw7G,GAAUvxG,EAAOgxG,GAAGQ,UAGxCxxG,EAAOgxG,GAAGnmD,QAKd,SAAS4mD,KAIP,OAHAzlH,EAAO+J,YAAW,WAChBo7G,QAAQt8G,KAEHs8G,GAAQ36F,KAAKC,MAItB,SAASi7F,GAAM//G,EAAMggH,GACnB,IAAIxvG,EACAzP,EAAI,EACJikG,EAAQ,CACV5qG,OAAQ4F,GAMV,IAFAggH,EAAeA,EAAe,EAAI,EAE3Bj/G,EAAI,EAAGA,GAAK,EAAIi/G,EAErBhb,EAAM,UADNx0F,EAAQuiG,GAAUhyG,KACQikG,EAAM,UAAYx0F,GAASxQ,EAOvD,OAJIggH,IACFhb,EAAM1sD,QAAU0sD,EAAMjnG,MAAQiC,GAGzBglG,EAGT,SAASib,GAAYvgH,EAAOma,EAAMsoC,GAMhC,IALA,IAAIkxD,EACAyG,GAAcoG,GAAUC,SAAStmG,IAAS,IAAI8M,OAAOu5F,GAAUC,SAAS,MACxEtiH,EAAQ,EACRlC,EAASm+G,EAAWn+G,OAEjBkC,EAAQlC,EAAQkC,IACrB,GAAIw1G,EAAQyG,EAAWj8G,GAAO0Z,KAAK4qC,EAAWtoC,EAAMna,GAElD,OAAO2zG,EAoOb,SAAS6M,GAAU5xG,EAAM8xG,EAAYl8G,GACnC,IAAI4e,EACAskB,EACAvpC,EAAQ,EACRlC,EAASukH,GAAUG,WAAW1kH,OAC9BuzG,EAAW7gG,EAAO0gG,WAAWE,QAAO,kBAE/B/1C,EAAK5qD,QAEV4qD,EAAO,WACT,GAAI9xB,EACF,OAAO,EAYT,IATA,IAAIk5E,EAAcd,IAASM,KACvB3sE,EAAYxuB,KAAK1W,IAAI,EAAGk0C,EAAUoB,UAAYpB,EAAUl8C,SAAWq6G,GAInEnB,EAAU,GADPhsE,EAAYgP,EAAUl8C,UAAY,GAErCpI,EAAQ,EACRlC,EAASwmD,EAAUo+D,OAAO5kH,OAEvBkC,EAAQlC,EAAQkC,IACrBskD,EAAUo+D,OAAO1iH,GAAOsyC,IAAIgvE,GAK9B,OAFAjQ,EAASY,WAAWxhG,EAAM,CAAC6zC,EAAWg9D,EAAShsE,IAE3CgsE,EAAU,GAAKxjH,EACVw3C,GAIJx3C,GACHuzG,EAASY,WAAWxhG,EAAM,CAAC6zC,EAAW,EAAG,IAI3C+sD,EAASa,YAAYzhG,EAAM,CAAC6zC,KACrB,IAELA,EAAY+sD,EAAShmE,QAAQ,CAC/B56B,KAAMA,EACNy9B,MAAO19B,EAAOlK,OAAO,GAAIi8G,GACzBI,KAAMnyG,EAAOlK,QAAO,EAAM,CACxBs8G,cAAe,GACfv2F,OAAQ7b,EAAO6b,OAAOyqF,UACrBzwG,GACHw8G,mBAAoBN,EACpBO,gBAAiBz8G,EACjBq/C,UAAWi8D,IAASM,KACpB75G,SAAU/B,EAAQ+B,SAClBs6G,OAAQ,GACRN,YAAa,SAAUpmG,EAAM4pC,GAC3B,IAAI4vD,EAAQhlG,EAAOowG,MAAMnwG,EAAM6zC,EAAUq+D,KAAM3mG,EAAM4pC,EAAKtB,EAAUq+D,KAAKC,cAAc5mG,IAASsoC,EAAUq+D,KAAKt2F,QAE/G,OADAi4B,EAAUo+D,OAAOr+G,KAAKmxG,GACfA,GAET96F,KAAM,SAAUqoG,GACd,IAAI/iH,EAAQ,EAGZlC,EAASilH,EAAUz+D,EAAUo+D,OAAO5kH,OAAS,EAE7C,GAAIyrC,EACF,OAAOxsC,KAKT,IAFAwsC,GAAU,EAEHvpC,EAAQlC,EAAQkC,IACrBskD,EAAUo+D,OAAO1iH,GAAOsyC,IAAI,GAW9B,OAPIywE,GACF1R,EAASY,WAAWxhG,EAAM,CAAC6zC,EAAW,EAAG,IACzC+sD,EAASa,YAAYzhG,EAAM,CAAC6zC,EAAWy+D,KAEvC1R,EAASgB,WAAW5hG,EAAM,CAAC6zC,EAAWy+D,IAGjChmH,QAGPmxC,EAAQoW,EAAUpW,MAItB,KA/HF,SAAoBA,EAAO00E,GACzB,IAAI5iH,EAAOoC,EAAMiqB,EAAQxqB,EAAOgzG,EAEhC,IAAK70G,KAASkuC,EAiBZ,GAfA7hB,EAASu2F,EADTxgH,EAAO4xG,EAAUh0G,IAEjB6B,EAAQqsC,EAAMluC,GAEVwL,MAAMoN,QAAQ/W,KAChBwqB,EAASxqB,EAAM,GACfA,EAAQqsC,EAAMluC,GAAS6B,EAAM,IAG3B7B,IAAUoC,IACZ8rC,EAAM9rC,GAAQP,SACPqsC,EAAMluC,KAGf60G,EAAQrkG,EAAOqwG,SAASz+G,KAEX,WAAYyyG,EAKvB,IAAK70G,KAJL6B,EAAQgzG,EAAMqM,OAAOr/G,UACdqsC,EAAM9rC,GAGCP,EACN7B,KAASkuC,IACbA,EAAMluC,GAAS6B,EAAM7B,GACrB4iH,EAAc5iH,GAASqsB,QAI3Bu2F,EAAcxgH,GAAQiqB,EA6F1B22F,CAAW90E,EAAOoW,EAAUq+D,KAAKC,eAE1B5iH,EAAQlC,EAAQkC,IAGrB,GAFAilB,EAASo9F,GAAUG,WAAWxiH,GAAO0Z,KAAK4qC,EAAW7zC,EAAMy9B,EAAOoW,EAAUq+D,MAO1E,OAJInqE,EAAWvzB,EAAOvK,QACpBlK,EAAOskG,YAAYxwD,EAAU7zC,KAAM6zC,EAAUq+D,KAAKvwE,OAAO13B,KAAOuK,EAAOvK,KAAKwrB,KAAKjhB,IAG5EA,EAiBX,OAbAzU,EAAOwb,IAAIkiB,EAAOk0E,GAAa99D,GAE3B9L,EAAW8L,EAAUq+D,KAAKh9D,QAC5BrB,EAAUq+D,KAAKh9D,MAAMjsC,KAAKjJ,EAAM6zC,GAIlCA,EAAUqtD,SAASrtD,EAAUq+D,KAAKhR,UAAU/6F,KAAK0tC,EAAUq+D,KAAK/rG,KAAM0tC,EAAUq+D,KAAKnxF,UAAU8lB,KAAKgN,EAAUq+D,KAAKrrE,MAAM85D,OAAO9sD,EAAUq+D,KAAKvR,QAC/I5gG,EAAOgxG,GAAGyB,MAAMzyG,EAAOlK,OAAO+0D,EAAM,CAClC5qD,KAAMA,EACNyyG,KAAM5+D,EACNlS,MAAOkS,EAAUq+D,KAAKvwE,SAEjBkS,EAGT9zC,EAAO6xG,UAAY7xG,EAAOlK,OAAO+7G,GAAW,CAC1CC,SAAU,CACR,IAAK,CAAC,SAAUtmG,EAAMna,GACpB,IAAI2zG,EAAQz4G,KAAKqlH,YAAYpmG,EAAMna,GAEnC,OADAyzG,GAAUE,EAAM/kG,KAAMuL,EAAMi5F,GAAQ90E,KAAKt+B,GAAQ2zG,GAC1CA,KAGX2N,QAAS,SAAUj1E,EAAOxgC,GACpB8qC,EAAWtK,IACbxgC,EAAWwgC,EACXA,EAAQ,CAAC,MAETA,EAAQA,EAAMlxB,MAAMizF,GAOtB,IAJA,IAAIj0F,EACAhc,EAAQ,EACRlC,EAASowC,EAAMpwC,OAEZkC,EAAQlC,EAAQkC,IACrBgc,EAAOkyB,EAAMluC,GACbqiH,GAAUC,SAAStmG,GAAQqmG,GAAUC,SAAStmG,IAAS,GACvDqmG,GAAUC,SAAStmG,GAAMg/B,QAAQttC,IAGrC80G,WAAY,CA/Wd,SAA0B/xG,EAAMy9B,EAAOy0E,GACrC,IAAI3mG,EACAna,EACAkjB,EACA8vF,EACAuO,EACAC,EACAC,EACA11E,EACA21E,EAAQ,UAAWr1E,GAAS,WAAYA,EACxCg1E,EAAOnmH,KACPo+G,EAAO,GACP9+G,EAAQoU,EAAKpU,MACbytD,EAASr5C,EAAK8rB,UAAY84E,GAAmB5kG,GAC7C+yG,EAAWrP,EAASztG,IAAI+J,EAAM,UA8BlC,IAAKuL,KA5BA2mG,EAAKvwE,QAGc,OAFtByiE,EAAQrkG,EAAOskG,YAAYrkG,EAAM,OAEvBgzG,WACR5O,EAAM4O,SAAW,EACjBL,EAAUvO,EAAMzsE,MAAM0oE,KAEtB+D,EAAMzsE,MAAM0oE,KAAO,WACZ+D,EAAM4O,UACTL,MAKNvO,EAAM4O,WACNP,EAAK9R,QAAO,WAEV8R,EAAK9R,QAAO,WACVyD,EAAM4O,WAEDjzG,EAAO4hC,MAAM3hC,EAAM,MAAM3S,QAC5B+2G,EAAMzsE,MAAM0oE,cAOP5iE,EAGX,GAFArsC,EAAQqsC,EAAMlyB,GAEV6lG,GAASxmG,KAAKxZ,GAAQ,CAIxB,UAHOqsC,EAAMlyB,GACb+I,EAASA,GAAoB,WAAVljB,EAEfA,KAAWioD,EAAS,OAAS,QAAS,CAGxC,GAAc,SAAVjoD,IAAoB2hH,QAA+Bn+G,IAAnBm+G,EAASxnG,GAG3C,SAFA8tC,GAAS,EAMbqxD,EAAKn/F,GAAQwnG,GAAYA,EAASxnG,IAASxL,EAAOnU,MAAMoU,EAAMuL,GAOlE,IAFAqnG,GAAa7yG,EAAOiyF,cAAcv0D,MAEhB19B,EAAOiyF,cAAc0Y,GAgEvC,IAAKn/F,KA3DDunG,GAA2B,IAAlB9yG,EAAK8rB,WAKhBomF,EAAKthH,SAAW,CAAChF,EAAMgF,SAAUhF,EAAMmwF,UAAWnwF,EAAMowF,WAIlC,OAFtB62B,EAAiBE,GAAYA,EAAS51E,WAGpC01E,EAAiBnP,EAASztG,IAAI+J,EAAM,YAKtB,UAFhBm9B,EAAUp9B,EAAOjT,IAAIkT,EAAM,cAGrB6yG,EACF11E,EAAU01E,GAGVpN,GAAS,CAACzlG,IAAO,GACjB6yG,EAAiB7yG,EAAKpU,MAAMuxC,SAAW01E,EACvC11E,EAAUp9B,EAAOjT,IAAIkT,EAAM,WAC3BylG,GAAS,CAACzlG,OAKE,WAAZm9B,GAAoC,iBAAZA,GAAgD,MAAlB01E,IACtB,SAA9B9yG,EAAOjT,IAAIkT,EAAM,WAEd4yG,IACHH,EAAKtsG,MAAK,WACRva,EAAMuxC,QAAU01E,KAGI,MAAlBA,IACF11E,EAAUvxC,EAAMuxC,QAChB01E,EAA6B,SAAZ11E,EAAqB,GAAKA,IAI/CvxC,EAAMuxC,QAAU,iBAKlB+0E,EAAKthH,WACPhF,EAAMgF,SAAW,SACjB6hH,EAAK9R,QAAO,WACV/0G,EAAMgF,SAAWshH,EAAKthH,SAAS,GAC/BhF,EAAMmwF,UAAYm2B,EAAKthH,SAAS,GAChChF,EAAMowF,UAAYk2B,EAAKthH,SAAS,OAKpCgiH,GAAY,EAEClI,EAENkI,IACCG,EACE,WAAYA,IACd15D,EAAS05D,EAAS15D,QAGpB05D,EAAWrP,EAASd,OAAO5iG,EAAM,SAAU,CACzCm9B,QAAS01E,IAKTv+F,IACFy+F,EAAS15D,QAAUA,GAIjBA,GACFosD,GAAS,CAACzlG,IAAO,GAKnByyG,EAAKtsG,MAAK,WASR,IAAKoF,KANA8tC,GACHosD,GAAS,CAACzlG,IAGZ0jG,EAAS1mG,OAAOgD,EAAM,UAET0qG,EACX3qG,EAAOnU,MAAMoU,EAAMuL,EAAMm/F,EAAKn/F,QAMpCqnG,EAAYjB,GAAYt4D,EAAS05D,EAASxnG,GAAQ,EAAGA,EAAMknG,GAErDlnG,KAAQwnG,IACZA,EAASxnG,GAAQqnG,EAAU19D,MAEvBmE,IACFu5D,EAAUz9D,IAAMy9D,EAAU19D,MAC1B09D,EAAU19D,MAAQ,MA4LxB+9D,UAAW,SAAUh2G,EAAUovG,GACzBA,EACFuF,GAAUG,WAAWxnE,QAAQttC,GAE7B20G,GAAUG,WAAWn+G,KAAKqJ,MAKhC8C,EAAOmzG,MAAQ,SAAUA,EAAOt3F,EAAQzP,GACtC,IAAIS,EAAMsmG,GAA0B,iBAAVA,EAAqBnzG,EAAOlK,OAAO,GAAIq9G,GAAS,CACxEnyF,SAAU5U,IAAOA,GAAMyP,GAAUmsB,EAAWmrE,IAAUA,EACtDv7G,SAAUu7G,EACVt3F,OAAQzP,GAAMyP,GAAUA,IAAWmsB,EAAWnsB,IAAWA,GAiC3D,OA9BI7b,EAAOgxG,GAAGlhG,IACZjD,EAAIjV,SAAW,EAEa,iBAAjBiV,EAAIjV,WACTiV,EAAIjV,YAAYoI,EAAOgxG,GAAGoC,OAC5BvmG,EAAIjV,SAAWoI,EAAOgxG,GAAGoC,OAAOvmG,EAAIjV,UAEpCiV,EAAIjV,SAAWoI,EAAOgxG,GAAGoC,OAAO9M,UAMrB,MAAbz5F,EAAI+0B,QAA+B,IAAd/0B,EAAI+0B,QAC3B/0B,EAAI+0B,MAAQ,MAId/0B,EAAI2gD,IAAM3gD,EAAImU,SAEdnU,EAAImU,SAAW,WACTgnB,EAAWn7B,EAAI2gD,MACjB3gD,EAAI2gD,IAAItkD,KAAK3c,MAGXsgB,EAAI+0B,OACN5hC,EAAOmkG,QAAQ53G,KAAMsgB,EAAI+0B,QAItB/0B,GAGT7M,EAAOoM,GAAGtW,OAAO,CACfu9G,OAAQ,SAAUF,EAAOvhE,EAAI/1B,EAAQ3e,GAEnC,OAAO3Q,KAAKmI,OAAOmwG,IAAoB93G,IAAI,UAAW,GAAGwH,OACxD6gD,MAAMn7C,QAAQ,CACbgwC,QAAS2H,GACRuhE,EAAOt3F,EAAQ3e,IAEpBjD,QAAS,SAAUuR,EAAM2nG,EAAOt3F,EAAQ3e,GACtC,IAAI06B,EAAQ53B,EAAOiyF,cAAczmF,GAC7B8nG,EAAStzG,EAAOmzG,MAAMA,EAAOt3F,EAAQ3e,GACrCq2G,EAAc,WAEhB,IAAIb,EAAOb,GAAUtlH,KAAMyT,EAAOlK,OAAO,GAAI0V,GAAO8nG,IAEhD17E,GAAS+rE,EAASztG,IAAI3J,KAAM,YAC9BmmH,EAAKxoG,MAAK,IAKd,OADAqpG,EAAYC,OAASD,EACd37E,IAA0B,IAAjB07E,EAAO1xE,MAAkBr1C,KAAK8I,KAAKk+G,GAAehnH,KAAKq1C,MAAM0xE,EAAO1xE,MAAO2xE,IAE7FrpG,KAAM,SAAUvY,EAAM4yG,EAAYgO,GAChC,IAAIkB,EAAY,SAAUpP,GACxB,IAAIn6F,EAAOm6F,EAAMn6F,YACVm6F,EAAMn6F,KACbA,EAAKqoG,IAaP,MAVoB,iBAAT5gH,IACT4gH,EAAUhO,EACVA,EAAa5yG,EACbA,OAAOkD,GAGL0vG,GACFh4G,KAAKq1C,MAAMjwC,GAAQ,KAAM,IAGpBpF,KAAK8I,MAAK,WACf,IAAI8uG,GAAU,EACV30G,EAAgB,MAARmC,GAAgBA,EAAO,aAC/BsjD,EAASj1C,EAAOi1C,OAChBxlD,EAAOk0G,EAASztG,IAAI3J,MAExB,GAAIiD,EACEC,EAAKD,IAAUC,EAAKD,GAAO0a,MAC7BupG,EAAUhkH,EAAKD,SAGjB,IAAKA,KAASC,EACRA,EAAKD,IAAUC,EAAKD,GAAO0a,MAAQonG,GAAKzmG,KAAKrb,IAC/CikH,EAAUhkH,EAAKD,IAKrB,IAAKA,EAAQylD,EAAO3nD,OAAQkC,KACtBylD,EAAOzlD,GAAOyQ,OAAS1T,MAAiB,MAARoF,GAAgBsjD,EAAOzlD,GAAOoyC,QAAUjwC,IAC1EsjD,EAAOzlD,GAAOkjH,KAAKxoG,KAAKqoG,GACxBpO,GAAU,EACVlvD,EAAO3jC,OAAO9hB,EAAO,KAOrB20G,GAAYoO,GACdvyG,EAAOmkG,QAAQ53G,KAAMoF,OAI3B6hH,OAAQ,SAAU7hH,GAKhB,OAJa,IAATA,IACFA,EAAOA,GAAQ,MAGVpF,KAAK8I,MAAK,WACf,IAAI7F,EACAC,EAAOk0G,EAASztG,IAAI3J,MACpBq1C,EAAQnyC,EAAKkC,EAAO,SACpB0yG,EAAQ50G,EAAKkC,EAAO,cACpBsjD,EAASj1C,EAAOi1C,OAChB3nD,EAASs0C,EAAQA,EAAMt0C,OAAS,EAWpC,IATAmC,EAAK+jH,QAAS,EAEdxzG,EAAO4hC,MAAMr1C,KAAMoF,EAAM,IAErB0yG,GAASA,EAAMn6F,MACjBm6F,EAAMn6F,KAAKhB,KAAK3c,MAAM,GAInBiD,EAAQylD,EAAO3nD,OAAQkC,KACtBylD,EAAOzlD,GAAOyQ,OAAS1T,MAAQ0oD,EAAOzlD,GAAOoyC,QAAUjwC,IACzDsjD,EAAOzlD,GAAOkjH,KAAKxoG,MAAK,GACxB+qC,EAAO3jC,OAAO9hB,EAAO,IAKzB,IAAKA,EAAQ,EAAGA,EAAQlC,EAAQkC,IAC1BoyC,EAAMpyC,IAAUoyC,EAAMpyC,GAAOgkH,QAC/B5xE,EAAMpyC,GAAOgkH,OAAOtqG,KAAK3c,aAKtBkD,EAAK+jH,aAIlBxzG,EAAO3K,KAAK,CAAC,SAAU,OAAQ,SAAS,SAAUigF,EAAI1jF,GACpD,IAAI8hH,EAAQ1zG,EAAOoM,GAAGxa,GAEtBoO,EAAOoM,GAAGxa,GAAQ,SAAUuhH,EAAOt3F,EAAQ3e,GACzC,OAAgB,MAATi2G,GAAkC,kBAAVA,EAAsBO,EAAMzlG,MAAM1hB,KAAM6nB,WAAa7nB,KAAK0N,QAAQy3G,GAAM9/G,GAAM,GAAOuhH,EAAOt3F,EAAQ3e,OAIvI8C,EAAO3K,KAAK,CACVmQ,UAAWksG,GAAM,QACjBxtG,QAASwtG,GAAM,QACfttG,YAAastG,GAAM,UACnB98G,OAAQ,CACNq1C,QAAS,QAEXx0C,QAAS,CACPw0C,QAAS,QAEX0pE,WAAY,CACV1pE,QAAS,YAEV,SAAUr4C,EAAM8rC,GACjB19B,EAAOoM,GAAGxa,GAAQ,SAAUuhH,EAAOt3F,EAAQ3e,GACzC,OAAO3Q,KAAK0N,QAAQyjC,EAAOy1E,EAAOt3F,EAAQ3e,OAG9C8C,EAAOi1C,OAAS,GAEhBj1C,EAAOgxG,GAAGnmD,KAAO,WACf,IAAI4nD,EACA//G,EAAI,EACJuiD,EAASj1C,EAAOi1C,OAGpB,IAFAk8D,GAAQ36F,KAAKC,MAEN/jB,EAAIuiD,EAAO3nD,OAAQoF,KACxB+/G,EAAQx9D,EAAOviD,OAECuiD,EAAOviD,KAAO+/G,GAC5Bx9D,EAAO3jC,OAAO5e,IAAK,GAIlBuiD,EAAO3nD,QACV0S,EAAOgxG,GAAG9mG,OAGZinG,QAAQt8G,GAGVmL,EAAOgxG,GAAGyB,MAAQ,SAAUA,GAC1BzyG,EAAOi1C,OAAOphD,KAAK4+G,GACnBzyG,EAAOgxG,GAAG77D,SAGZn1C,EAAOgxG,GAAGQ,SAAW,GAErBxxG,EAAOgxG,GAAG77D,MAAQ,WACZi8D,KAIJA,IAAa,EACbG,OAGFvxG,EAAOgxG,GAAG9mG,KAAO,WACfknG,GAAa,MAGfpxG,EAAOgxG,GAAGoC,OAAS,CACjBQ,KAAM,IACNC,KAAM,IAENvN,SAAU,KAIZtmG,EAAOoM,GAAGwP,MAAQ,SAAU82B,EAAM/gD,GAGhC,OAFA+gD,EAAO1yC,EAAOgxG,IAAKhxG,EAAOgxG,GAAGoC,OAAO1gE,IAAgBA,EACpD/gD,EAAOA,GAAQ,KACRpF,KAAKq1C,MAAMjwC,GAAM,SAAUy1B,EAAMi9E,GACtC,IAAIyP,EAAU9nH,EAAO+J,WAAWqxB,EAAMsrB,GAEtC2xD,EAAMn6F,KAAO,WACXle,EAAOmrB,aAAa28F,QAK1B,WACE,IAAIx1G,EAAQvT,EAASic,cAAc,SAE/B6F,EADS9hB,EAASic,cAAc,UACnBM,YAAYvc,EAASic,cAAc,WACpD1I,EAAM3M,KAAO,WAGb6+F,EAAQujB,QAA0B,KAAhBz1G,EAAMjN,MAGxBm/F,EAAQwjB,YAAcnnG,EAAIyU,UAG1BhjB,EAAQvT,EAASic,cAAc,UACzB3V,MAAQ,IACdiN,EAAM3M,KAAO,QACb6+F,EAAQyjB,WAA6B,MAAhB31G,EAAMjN,MAhB7B,GAmBA,IAAI6iH,GACAtd,GAAa52F,EAAO84F,KAAKlC,WAC7B52F,EAAOoM,GAAGtW,OAAO,CACfrC,KAAM,SAAU7B,EAAMP,GACpB,OAAOwxG,EAAOt2G,KAAMyT,EAAOvM,KAAM7B,EAAMP,EAAO+iB,UAAU9mB,OAAS,IAEnE6mH,WAAY,SAAUviH,GACpB,OAAOrF,KAAK8I,MAAK,WACf2K,EAAOm0G,WAAW5nH,KAAMqF,SAI9BoO,EAAOlK,OAAO,CACZrC,KAAM,SAAUwM,EAAMrO,EAAMP,GAC1B,IAAI+/F,EACAiT,EACA+P,EAAQn0G,EAAK8rB,SAEjB,GAAc,IAAVqoF,GAAyB,IAAVA,GAAyB,IAAVA,EAKlC,YAAiC,IAAtBn0G,EAAKqQ,aACPtQ,EAAOwL,KAAKvL,EAAMrO,EAAMP,IAKnB,IAAV+iH,GAAgBp0G,EAAOq+F,SAASp+F,KAClCokG,EAAQrkG,EAAOq0G,UAAUziH,EAAKw0B,iBAAmBpmB,EAAO84F,KAAKtsF,MAAM8nG,KAAKzpG,KAAKjZ,GAAQsiH,QAAWr/G,SAGpFA,IAAVxD,EACY,OAAVA,OACF2O,EAAOm0G,WAAWl0G,EAAMrO,GAItByyG,GAAS,QAASA,QAAkDxvG,KAAxCu8F,EAAMiT,EAAM1mF,IAAI1d,EAAM5O,EAAOO,IACpDw/F,GAGTnxF,EAAKiH,aAAatV,EAAMP,EAAQ,IACzBA,GAGLgzG,GAAS,QAASA,GAA2C,QAAjCjT,EAAMiT,EAAMnuG,IAAI+J,EAAMrO,IAC7Cw/F,EAKK,OAFdA,EAAMpxF,EAAOlT,KAAK2G,KAAKwM,EAAMrO,SAERiD,EAAYu8F,IAEnCijB,UAAW,CACT1iH,KAAM,CACJgsB,IAAK,SAAU1d,EAAM5O,GACnB,IAAKm/F,EAAQyjB,YAAwB,UAAV5iH,GAAqBkf,EAAStQ,EAAM,SAAU,CACvE,IAAIwF,EAAMxF,EAAK5O,MAOf,OANA4O,EAAKiH,aAAa,OAAQ7V,GAEtBoU,IACFxF,EAAK5O,MAAQoU,GAGRpU,MAKf8iH,WAAY,SAAUl0G,EAAM5O,GAC1B,IAAIO,EACAc,EAAI,EAGR6hH,EAAYljH,GAASA,EAAMmb,MAAMizF,GAEjC,GAAI8U,GAA+B,IAAlBt0G,EAAK8rB,SACpB,KAAOn6B,EAAO2iH,EAAU7hH,MACtBuN,EAAKyc,gBAAgB9qB,MAM7BsiH,GAAW,CACTv2F,IAAK,SAAU1d,EAAM5O,EAAOO,GAQ1B,OAPc,IAAVP,EAEF2O,EAAOm0G,WAAWl0G,EAAMrO,GAExBqO,EAAKiH,aAAatV,EAAMA,GAGnBA,IAGXoO,EAAO3K,KAAK2K,EAAO84F,KAAKtsF,MAAM8nG,KAAKpjF,OAAO1kB,MAAM,SAAS,SAAU8oE,EAAI1jF,GACrE,IAAIyoC,EAASu8D,GAAWhlG,IAASoO,EAAOlT,KAAK2G,KAE7CmjG,GAAWhlG,GAAQ,SAAUqO,EAAMrO,EAAM+gG,GACvC,IAAIvB,EACAqX,EACA+L,EAAgB5iH,EAAKw0B,cAUzB,OARKusE,IAEH8V,EAAS7R,GAAW4d,GACpB5d,GAAW4d,GAAiBpjB,EAC5BA,EAAmC,MAA7B/2D,EAAOp6B,EAAMrO,EAAM+gG,GAAiB6hB,EAAgB,KAC1D5d,GAAW4d,GAAiB/L,GAGvBrX,MAGX,IAAIqjB,GAAa,sCACbC,GAAa,gBA4GjB,SAASC,GAAiBtjH,GAExB,OADaA,EAAMmb,MAAMizF,IAAkB,IAC7B/qF,KAAK,KAGrB,SAASkgG,GAAS30G,GAChB,OAAOA,EAAKqQ,cAAgBrQ,EAAKqQ,aAAa,UAAY,GAG5D,SAASukG,GAAexjH,GACtB,OAAI2J,MAAMoN,QAAQ/W,GACTA,EAGY,iBAAVA,GACFA,EAAMmb,MAAMizF,IAGd,GA7HTz/F,EAAOoM,GAAGtW,OAAO,CACf0V,KAAM,SAAU5Z,EAAMP,GACpB,OAAOwxG,EAAOt2G,KAAMyT,EAAOwL,KAAM5Z,EAAMP,EAAO+iB,UAAU9mB,OAAS,IAEnEwnH,WAAY,SAAUljH,GACpB,OAAOrF,KAAK8I,MAAK,kBACR9I,KAAKyT,EAAO+0G,QAAQnjH,IAASA,SAI1CoO,EAAOlK,OAAO,CACZ0V,KAAM,SAAUvL,EAAMrO,EAAMP,GAC1B,IAAI+/F,EACAiT,EACA+P,EAAQn0G,EAAK8rB,SAEjB,GAAc,IAAVqoF,GAAyB,IAAVA,GAAyB,IAAVA,EAUlC,OANc,IAAVA,GAAgBp0G,EAAOq+F,SAASp+F,KAElCrO,EAAOoO,EAAO+0G,QAAQnjH,IAASA,EAC/ByyG,EAAQrkG,EAAO6wG,UAAUj/G,SAGbiD,IAAVxD,EACEgzG,GAAS,QAASA,QAAkDxvG,KAAxCu8F,EAAMiT,EAAM1mF,IAAI1d,EAAM5O,EAAOO,IACpDw/F,EAGFnxF,EAAKrO,GAAQP,EAGlBgzG,GAAS,QAASA,GAA2C,QAAjCjT,EAAMiT,EAAMnuG,IAAI+J,EAAMrO,IAC7Cw/F,EAGFnxF,EAAKrO,IAEdi/G,UAAW,CACT7V,SAAU,CACR9kG,IAAK,SAAU+J,GAMb,IAAI+0G,EAAWh1G,EAAOlT,KAAK2G,KAAKwM,EAAM,YAEtC,OAAI+0G,EACK5lH,SAAS4lH,EAAU,IAGxBP,GAAW5pG,KAAK5K,EAAKsQ,WAAamkG,GAAW7pG,KAAK5K,EAAKsQ,WAAatQ,EAAKvE,KACpE,GAGD,KAIdq5G,QAAS,CACP,IAAO,UACP,MAAS,eAWRvkB,EAAQwjB,cACXh0G,EAAO6wG,UAAUvvF,SAAW,CAC1BprB,IAAK,SAAU+J,GAEb,IAAI+D,EAAS/D,EAAKwQ,WAMlB,OAJIzM,GAAUA,EAAOyM,YACnBzM,EAAOyM,WAAWwqF,cAGb,MAETt9E,IAAK,SAAU1d,GAEb,IAAI+D,EAAS/D,EAAKwQ,WAEdzM,IACFA,EAAOi3F,cAEHj3F,EAAOyM,YACTzM,EAAOyM,WAAWwqF,kBAO5Bj7F,EAAO3K,KAAK,CAAC,WAAY,WAAY,YAAa,cAAe,cAAe,UAAW,UAAW,SAAU,cAAe,oBAAoB,WACjJ2K,EAAO+0G,QAAQxoH,KAAK65B,eAAiB75B,QAyBvCyT,EAAOoM,GAAGtW,OAAO,CACf/G,SAAU,SAAUsC,GAClB,IAAIyiB,EACA7T,EACA62F,EACAme,EACAC,EACAp3G,EACAq3G,EACAziH,EAAI,EAER,GAAIs1C,EAAW32C,GACb,OAAO9E,KAAK8I,MAAK,SAAUyI,GACzBkC,EAAOzT,MAAMwC,SAASsC,EAAM6X,KAAK3c,KAAMuR,EAAG82G,GAASroH,WAMvD,IAFAunB,EAAU+gG,GAAexjH,IAEb/D,OACV,KAAO2S,EAAO1T,KAAKmG,MAIjB,GAHAuiH,EAAWL,GAAS30G,GACpB62F,EAAwB,IAAlB72F,EAAK8rB,UAAkB,IAAM4oF,GAAiBM,GAAY,IAEvD,CAGP,IAFAn3G,EAAI,EAEGo3G,EAAQphG,EAAQhW,MACjBg5F,EAAI1rF,QAAQ,IAAM8pG,EAAQ,KAAO,IACnCpe,GAAOoe,EAAQ,KAOfD,KAFJE,EAAaR,GAAiB7d,KAG5B72F,EAAKiH,aAAa,QAASiuG,GAMnC,OAAO5oH,MAETqD,YAAa,SAAUyB,GACrB,IAAIyiB,EACA7T,EACA62F,EACAme,EACAC,EACAp3G,EACAq3G,EACAziH,EAAI,EAER,GAAIs1C,EAAW32C,GACb,OAAO9E,KAAK8I,MAAK,SAAUyI,GACzBkC,EAAOzT,MAAMqD,YAAYyB,EAAM6X,KAAK3c,KAAMuR,EAAG82G,GAASroH,WAI1D,IAAK6nB,UAAU9mB,OACb,OAAOf,KAAKkH,KAAK,QAAS,IAK5B,IAFAqgB,EAAU+gG,GAAexjH,IAEb/D,OACV,KAAO2S,EAAO1T,KAAKmG,MAKjB,GAJAuiH,EAAWL,GAAS30G,GAEpB62F,EAAwB,IAAlB72F,EAAK8rB,UAAkB,IAAM4oF,GAAiBM,GAAY,IAEvD,CAGP,IAFAn3G,EAAI,EAEGo3G,EAAQphG,EAAQhW,MAErB,KAAOg5F,EAAI1rF,QAAQ,IAAM8pG,EAAQ,MAAQ,GACvCpe,EAAMA,EAAIxlG,QAAQ,IAAM4jH,EAAQ,IAAK,KAOrCD,KAFJE,EAAaR,GAAiB7d,KAG5B72F,EAAKiH,aAAa,QAASiuG,GAMnC,OAAO5oH,MAET4X,YAAa,SAAU9S,EAAO+jH,GAC5B,IAAIzjH,SAAcN,EACdgkH,EAAwB,WAAT1jH,GAAqBqJ,MAAMoN,QAAQ/W,GAEtD,MAAwB,kBAAb+jH,GAA0BC,EAC5BD,EAAW7oH,KAAKwC,SAASsC,GAAS9E,KAAKqD,YAAYyB,GAGxD22C,EAAW32C,GACN9E,KAAK8I,MAAK,SAAU3C,GACzBsN,EAAOzT,MAAM4X,YAAY9S,EAAM6X,KAAK3c,KAAMmG,EAAGkiH,GAASroH,MAAO6oH,GAAWA,MAIrE7oH,KAAK8I,MAAK,WACf,IAAImC,EAAW9E,EAAGqM,EAAMu2G,EAExB,GAAID,EAMF,IAJA3iH,EAAI,EACJqM,EAAOiB,EAAOzT,MACd+oH,EAAaT,GAAexjH,GAErBmG,EAAY89G,EAAW5iH,MAExBqM,EAAKxF,SAAS/B,GAChBuH,EAAKnP,YAAY4H,GAEjBuH,EAAKhQ,SAASyI,aAIC3C,IAAVxD,GAAgC,YAATM,KAChC6F,EAAYo9G,GAASroH,QAInBo3G,EAAShmF,IAAIpxB,KAAM,gBAAiBiL,GAOlCjL,KAAK2a,cACP3a,KAAK2a,aAAa,QAAS1P,IAAuB,IAAVnG,EAAkB,GAAKsyG,EAASztG,IAAI3J,KAAM,kBAAoB,SAK9GgN,SAAU,SAAU2mB,GAClB,IAAI1oB,EACAyI,EACAvN,EAAI,EAGR,IAFA8E,EAAY,IAAM0oB,EAAW,IAEtBjgB,EAAO1T,KAAKmG,MACjB,GAAsB,IAAlBuN,EAAK8rB,WAAmB,IAAM4oF,GAAiBC,GAAS30G,IAAS,KAAKmL,QAAQ5T,IAAc,EAC9F,OAAO,EAIX,OAAO,KAGX,IAAI+9G,GAAU,MACdv1G,EAAOoM,GAAGtW,OAAO,CACf2P,IAAK,SAAUpU,GACb,IAAIgzG,EACAjT,EACAwa,EACA3rG,EAAO1T,KAAK,GAEhB,OAAK6nB,UAAU9mB,QAqBfs+G,EAAkB5jE,EAAW32C,GACtB9E,KAAK8I,MAAK,SAAU3C,GACzB,IAAI+S,EAEkB,IAAlBlZ,KAAKw/B,WAWE,OANTtmB,EADEmmG,EACIv6G,EAAM6X,KAAK3c,KAAMmG,EAAGsN,EAAOzT,MAAMkZ,OAEjCpU,GAKNoU,EAAM,GACkB,iBAARA,EAChBA,GAAO,GACEzK,MAAMoN,QAAQ3C,KACvBA,EAAMzF,EAAOwb,IAAI/V,GAAK,SAAUpU,GAC9B,OAAgB,MAATA,EAAgB,GAAKA,EAAQ,QAIxCgzG,EAAQrkG,EAAOw1G,SAASjpH,KAAKoF,OAASqO,EAAOw1G,SAASjpH,KAAKgkB,SAAS6V,iBAEpD,QAASi+E,QAA4CxvG,IAAlCwvG,EAAM1mF,IAAIpxB,KAAMkZ,EAAK,WACtDlZ,KAAK8E,MAAQoU,QAhDXxF,GACFokG,EAAQrkG,EAAOw1G,SAASv1G,EAAKtO,OAASqO,EAAOw1G,SAASv1G,EAAKsQ,SAAS6V,iBAEvD,QAASi+E,QAA8CxvG,KAApCu8F,EAAMiT,EAAMnuG,IAAI+J,EAAM,UAC7CmxF,EAKU,iBAFnBA,EAAMnxF,EAAK5O,OAGF+/F,EAAI9/F,QAAQikH,GAAS,IAIhB,MAAPnkB,EAAc,GAAKA,OAG5B,KAoCNpxF,EAAOlK,OAAO,CACZ0/G,SAAU,CACRvP,OAAQ,CACN/vG,IAAK,SAAU+J,GACb,IAAIwF,EAAMzF,EAAOlT,KAAK2G,KAAKwM,EAAM,SACjC,OAAc,MAAPwF,EAAcA,EAIrBkvG,GAAiB30G,EAAOvS,KAAKwS,MAGjChQ,OAAQ,CACNiG,IAAK,SAAU+J,GACb,IAAI5O,EACA40G,EACAvzG,EACAmD,EAAUoK,EAAKpK,QACfrG,EAAQyQ,EAAKg7F,cACbp2E,EAAoB,eAAd5kB,EAAKtO,KACXgyB,EAASkB,EAAM,KAAO,GACtBjlB,EAAMilB,EAAMr1B,EAAQ,EAAIqG,EAAQvI,OASpC,IANEoF,EADElD,EAAQ,EACNoQ,EAEAilB,EAAMr1B,EAAQ,EAIbkD,EAAIkN,EAAKlN,IAId,KAHAuzG,EAASpwG,EAAQnD,IAGL4uB,UAAY5uB,IAAMlD,KAC7By2G,EAAO15E,YAAc05E,EAAOx1F,WAAW8b,WAAahc,EAAS01F,EAAOx1F,WAAY,aAAc,CAI7F,GAFApf,EAAQ2O,EAAOimG,GAAQxgG,MAEnBof,EACF,OAAOxzB,EAITsyB,EAAO9vB,KAAKxC,GAIhB,OAAOsyB,GAEThG,IAAK,SAAU1d,EAAM5O,GAOnB,IANA,IAAIokH,EACAxP,EACApwG,EAAUoK,EAAKpK,QACf8tB,EAAS3jB,EAAOmyF,UAAU9gG,GAC1BqB,EAAImD,EAAQvI,OAEToF,OACLuzG,EAASpwG,EAAQnD,IAGN4uB,SAAWthB,EAAOusC,QAAQvsC,EAAOw1G,SAASvP,OAAO/vG,IAAI+vG,GAAStiF,IAAW,KAClF8xF,GAAY,GAWhB,OAJKA,IACHx1G,EAAKg7F,eAAiB,GAGjBt3E,OAMf3jB,EAAO3K,KAAK,CAAC,QAAS,aAAa,WACjC2K,EAAOw1G,SAASjpH,MAAQ,CACtBoxB,IAAK,SAAU1d,EAAM5O,GACnB,GAAI2J,MAAMoN,QAAQ/W,GAChB,OAAO4O,EAAK4D,QAAU7D,EAAOusC,QAAQvsC,EAAOC,GAAMwF,MAAOpU,IAAU,IAKpEm/F,EAAQujB,UACX/zG,EAAOw1G,SAASjpH,MAAM2J,IAAM,SAAU+J,GACpC,OAAsC,OAA/BA,EAAKqQ,aAAa,SAAoB,KAAOrQ,EAAK5O,WAK/Dm/F,EAAQklB,QAAU,cAAe1pH,EAEjC,IAAI2pH,GAAc,kCACdC,GAA0B,SAAUrgH,GACtCA,EAAE5F,mBAGJqQ,EAAOlK,OAAOkK,EAAOlR,MAAO,CAC1B6F,QAAS,SAAU7F,EAAOW,EAAMwQ,EAAM41G,GACpC,IAAInjH,EACAokG,EACAiB,EACA+d,EACAC,EACAtN,EACAlH,EACAyU,EACAC,EAAY,CAACh2G,GAAQlV,GACrB4G,EAAOm/B,EAAO5nB,KAAKpa,EAAO,QAAUA,EAAM6C,KAAO7C,EACjDw5G,EAAax3E,EAAO5nB,KAAKpa,EAAO,aAAeA,EAAM41B,UAAUla,MAAM,KAAO,GAGhF,GAFAssF,EAAMkf,EAAcje,EAAM93F,EAAOA,GAAQlV,EAEnB,IAAlBkV,EAAK8rB,UAAoC,IAAlB9rB,EAAK8rB,WAK5B4pF,GAAY9qG,KAAKlZ,EAAOqO,EAAOlR,MAAM45G,aAIrC/2G,EAAKyZ,QAAQ,MAAQ,IAEvBk9F,EAAa32G,EAAK6Y,MAAM,KACxB7Y,EAAO22G,EAAWx9D,QAClBw9D,EAAWp3F,QAGb6kG,EAASpkH,EAAKyZ,QAAQ,KAAO,GAAK,KAAOzZ,GAEzC7C,EAAQA,EAAMkR,EAAO8xF,SAAWhjG,EAAQ,IAAIkR,EAAO0H,MAAM/V,EAAuB,iBAAV7C,GAAsBA,IAEtFm5G,UAAY4N,EAAe,EAAI,EACrC/mH,EAAM41B,UAAY4jF,EAAW5zF,KAAK,KAClC5lB,EAAMw6G,WAAax6G,EAAM41B,UAAY,IAAIkG,OAAO,UAAY09E,EAAW5zF,KAAK,iBAAmB,WAAa,KAE5G5lB,EAAM2lB,YAAS5f,EAEV/F,EAAM2K,SACT3K,EAAM2K,OAASwG,GAIjBxQ,EAAe,MAARA,EAAe,CAACX,GAASkR,EAAOmyF,UAAU1iG,EAAM,CAACX,IAExDyyG,EAAUvhG,EAAOlR,MAAMyyG,QAAQ5vG,IAAS,GAEnCkkH,IAAgBtU,EAAQ5sG,UAAiD,IAAtC4sG,EAAQ5sG,QAAQsZ,MAAMhO,EAAMxQ,IAApE,CAMA,IAAKomH,IAAiBtU,EAAQsI,WAAapZ,EAASxwF,GAAO,CAOzD,IANA61G,EAAavU,EAAQ2G,cAAgBv2G,EAEhCgkH,GAAY9qG,KAAKirG,EAAankH,KACjCmlG,EAAMA,EAAIrmF,YAGLqmF,EAAKA,EAAMA,EAAIrmF,WACpBwlG,EAAUpiH,KAAKijG,GACfiB,EAAMjB,EAIJiB,KAAS93F,EAAKqnE,eAAiBv8E,IACjCkrH,EAAUpiH,KAAKkkG,EAAIP,aAAeO,EAAI/6D,cAAgBhxC,GAO1D,IAFA0G,EAAI,GAEIokG,EAAMmf,EAAUvjH,QAAU5D,EAAM02B,wBACtCwwF,EAAclf,EACdhoG,EAAM6C,KAAOe,EAAI,EAAIojH,EAAavU,EAAQqH,UAAYj3G,GAEtD82G,GAAU9E,EAASztG,IAAI4gG,EAAK,WAAa5jF,OAAOyb,OAAO,OAAO7/B,EAAM6C,OAASgyG,EAASztG,IAAI4gG,EAAK,YAG7F2R,EAAOx6F,MAAM6oF,EAAKrnG,IAIpBg5G,EAASsN,GAAUjf,EAAIif,KAETtN,EAAOx6F,OAASw1F,EAAW3M,KACvChoG,EAAM2lB,OAASg0F,EAAOx6F,MAAM6oF,EAAKrnG,IAEZ,IAAjBX,EAAM2lB,QACR3lB,EAAM0G,kBAyCZ,OApCA1G,EAAM6C,KAAOA,EAERkkH,GAAiB/mH,EAAM42B,sBACpB67E,EAAQ+E,WAA8D,IAAlD/E,EAAQ+E,SAASr4F,MAAMgoG,EAAU1gE,MAAO9lD,KAAoBg0G,EAAWxjG,IAG3F81G,GAAU/tE,EAAW/nC,EAAKtO,MAAW8+F,EAASxwF,MAEhD83F,EAAM93F,EAAK81G,MAGT91G,EAAK81G,GAAU,MAIjB/1G,EAAOlR,MAAM45G,UAAY/2G,EAErB7C,EAAM02B,wBACRwwF,EAAYhrH,iBAAiB2G,EAAMikH,IAGrC31G,EAAKtO,KAED7C,EAAM02B,wBACRwwF,EAAYxxF,oBAAoB7yB,EAAMikH,IAGxC51G,EAAOlR,MAAM45G,eAAY7zG,EAErBkjG,IACF93F,EAAK81G,GAAUhe,IAMhBjpG,EAAM2lB,SAIfyhG,SAAU,SAAUvkH,EAAMsO,EAAMnR,GAC9B,IAAIyG,EAAIyK,EAAOlK,OAAO,IAAIkK,EAAO0H,MAAS5Y,EAAO,CAC/C6C,KAAMA,EACNq4G,aAAa,IAEfhqG,EAAOlR,MAAM6F,QAAQY,EAAG,KAAM0K,MAGlCD,EAAOoM,GAAGtW,OAAO,CACfnB,QAAS,SAAUhD,EAAMlC,GACvB,OAAOlD,KAAK8I,MAAK,WACf2K,EAAOlR,MAAM6F,QAAQhD,EAAMlC,EAAMlD,UAGrC4pH,eAAgB,SAAUxkH,EAAMlC,GAC9B,IAAIwQ,EAAO1T,KAAK,GAEhB,GAAI0T,EACF,OAAOD,EAAOlR,MAAM6F,QAAQhD,EAAMlC,EAAMwQ,GAAM,MAY/CuwF,EAAQklB,SACX11G,EAAO3K,KAAK,CACV+T,MAAO,UACPmgB,KAAM,aACL,SAAUohF,EAAMvB,GAEjB,IAAIlmF,EAAU,SAAUp0B,GACtBkR,EAAOlR,MAAMonH,SAAS9M,EAAKt6G,EAAM2K,OAAQuG,EAAOlR,MAAMs6G,IAAIt6G,KAG5DkR,EAAOlR,MAAMyyG,QAAQ6H,GAAO,CAC1BN,MAAO,WAGL,IAAItgE,EAAMj8C,KAAK+6E,eAAiB/6E,KAAKxB,UAAYwB,KAC7C6pH,EAAWzS,EAASd,OAAOr6D,EAAK4gE,GAE/BgN,GACH5tE,EAAIx9C,iBAAiB2/G,EAAMznF,GAAS,GAGtCygF,EAASd,OAAOr6D,EAAK4gE,GAAMgN,GAAY,GAAK,IAE9CnN,SAAU,WACR,IAAIzgE,EAAMj8C,KAAK+6E,eAAiB/6E,KAAKxB,UAAYwB,KAC7C6pH,EAAWzS,EAASd,OAAOr6D,EAAK4gE,GAAO,EAEtCgN,EAIHzS,EAASd,OAAOr6D,EAAK4gE,EAAKgN,IAH1B5tE,EAAIhkB,oBAAoBmmF,EAAMznF,GAAS,GACvCygF,EAAS1mG,OAAOurC,EAAK4gE,SAS/B,IAAI3tG,GAAWzP,EAAOyP,SAClBk1F,GAAQ,CACV4B,KAAM/7E,KAAKC,OAET4/F,GAAS,KAEbr2G,EAAOs2G,SAAW,SAAU7mH,GAC1B,IAAIi3F,EAAK6vB,EAET,IAAK9mH,GAAwB,iBAATA,EAClB,OAAO,KAKT,IACEi3F,GAAM,IAAI16F,EAAOoqD,WAAYC,gBAAgB5mD,EAAM,YACnD,MAAO8F,IAUT,OARAghH,EAAkB7vB,GAAOA,EAAI7sF,qBAAqB,eAAe,GAE5D6sF,IAAO6vB,GACVv2G,EAAOrD,MAAM,iBAAmB45G,EAAkBv2G,EAAOwb,IAAI+6F,EAAgBr/D,YAAY,SAAU9gD,GACjG,OAAOA,EAAG0gD,eACTpiC,KAAK,MAAQjlB,IAGXi3F,GAGT,IAAI8vB,GAAW,QACXC,GAAQ,SACRC,GAAkB,wCAClBC,GAAe,qCAEnB,SAASC,GAAY3rF,EAAQpF,EAAKgxF,EAAaljH,GAC7C,IAAI/B,EAEJ,GAAIoJ,MAAMoN,QAAQyd,GAEhB7lB,EAAO3K,KAAKwwB,GAAK,SAAUnzB,EAAGyM,GACxB03G,GAAeL,GAAS3rG,KAAKogB,GAE/Bt3B,EAAIs3B,EAAQ9rB,GAGZy3G,GAAY3rF,EAAS,KAAoB,iBAAN9rB,GAAuB,MAALA,EAAYzM,EAAI,IAAM,IAAKyM,EAAG03G,EAAaljH,WAG/F,GAAKkjH,GAA+B,WAAhBlsF,EAAO9E,GAOhClyB,EAAIs3B,EAAQpF,QALZ,IAAKj0B,KAAQi0B,EACX+wF,GAAY3rF,EAAS,IAAMr5B,EAAO,IAAKi0B,EAAIj0B,GAAOilH,EAAaljH,GAUrEqM,EAAO82G,MAAQ,SAAU/5G,EAAG85G,GAC1B,IAAI5rF,EACAtwB,EAAI,GACJhH,EAAM,SAAUyO,EAAK20G,GAEvB,IAAI1lH,EAAQ22C,EAAW+uE,GAAmBA,IAAoBA,EAC9Dp8G,EAAEA,EAAErN,QAAU0pH,mBAAmB50G,GAAO,IAAM40G,mBAA4B,MAAT3lH,EAAgB,GAAKA,IAGxF,GAAS,MAAL0L,EACF,MAAO,GAIT,GAAI/B,MAAMoN,QAAQrL,IAAMA,EAAE+uB,SAAW9rB,EAAO6xF,cAAc90F,GAExDiD,EAAO3K,KAAK0H,GAAG,WACbpJ,EAAIpH,KAAKqF,KAAMrF,KAAK8E,eAKtB,IAAK45B,KAAUluB,EACb65G,GAAY3rF,EAAQluB,EAAEkuB,GAAS4rF,EAAaljH,GAKhD,OAAOgH,EAAE+Z,KAAK,MAGhB1U,EAAOoM,GAAGtW,OAAO,CACfyH,UAAW,WACT,OAAOyC,EAAO82G,MAAMvqH,KAAK0qH,mBAE3BA,eAAgB,WACd,OAAO1qH,KAAKivB,KAAI,WAEd,IAAIrS,EAAWnJ,EAAOwL,KAAKjf,KAAM,YACjC,OAAO4c,EAAWnJ,EAAOmyF,UAAUhpF,GAAY5c,QAC9CmI,QAAO,WACR,IAAI/C,EAAOpF,KAAKoF,KAEhB,OAAOpF,KAAKqF,OAASoO,EAAOzT,MAAM+e,GAAG,cAAgBqrG,GAAa9rG,KAAKte,KAAKgkB,YAAcmmG,GAAgB7rG,KAAKlZ,KAAUpF,KAAKsX,UAAY8hG,GAAe96F,KAAKlZ,OAC7J6pB,KAAI,SAAU85D,EAAIr1E,GACnB,IAAIwF,EAAMzF,EAAOzT,MAAMkZ,MAEvB,OAAW,MAAPA,EACK,KAGLzK,MAAMoN,QAAQ3C,GACTzF,EAAOwb,IAAI/V,GAAK,SAAUA,GAC/B,MAAO,CACL7T,KAAMqO,EAAKrO,KACXP,MAAOoU,EAAInU,QAAQmlH,GAAO,YAKzB,CACL7kH,KAAMqO,EAAKrO,KACXP,MAAOoU,EAAInU,QAAQmlH,GAAO,YAE3BvgH,SAGP,IAAIghH,GAAM,OACNC,GAAQ,OACRC,GAAa,gBACbC,GAAW,6BAGXC,GAAa,iBACbC,GAAY,QAWhBvF,GAAa,GAObwF,GAAa,GAEbC,GAAW,KAAKn/F,OAAO,KAEvBo/F,GAAe3sH,EAASic,cAAc,KAGtC,SAAS2wG,GAA4BC,GAEnC,OAAO,SAAUC,EAAoBzhF,GACD,iBAAvByhF,IACTzhF,EAAOyhF,EACPA,EAAqB,KAGvB,IAAI/wB,EACAp0F,EAAI,EACJolH,EAAYD,EAAmBzxF,cAAc5Z,MAAMizF,IAAkB,GAEzE,GAAIz3D,EAAW5R,GAEb,KAAO0wD,EAAWgxB,EAAUplH,MAEN,MAAhBo0F,EAAS,IACXA,EAAWA,EAAS79E,MAAM,IAAM,KAC/B2uG,EAAU9wB,GAAY8wB,EAAU9wB,IAAa,IAAIt8C,QAAQpU,KAEzDwhF,EAAU9wB,GAAY8wB,EAAU9wB,IAAa,IAAIjzF,KAAKuiC,IAQjE,SAAS2hF,GAA8BH,EAAW/hH,EAASy8G,EAAiB0F,GAC1E,IAAIC,EAAY,GACZC,EAAmBN,IAAcJ,GAErC,SAASW,EAAQrxB,GACf,IAAIxlE,EAaJ,OAZA22F,EAAUnxB,IAAY,EACtB9mF,EAAO3K,KAAKuiH,EAAU9wB,IAAa,IAAI,SAAU9tF,EAAGo/G,GAClD,IAAIC,EAAsBD,EAAmBviH,EAASy8G,EAAiB0F,GAEvE,MAAmC,iBAAxBK,GAAqCH,GAAqBD,EAAUI,GAIpEH,IACA52F,EAAW+2F,QADf,GAHLxiH,EAAQiiH,UAAUttE,QAAQ6tE,GAC1BF,EAAQE,IACD,MAKJ/2F,EAGT,OAAO62F,EAAQtiH,EAAQiiH,UAAU,MAAQG,EAAU,MAAQE,EAAQ,KAMrE,SAASG,GAAW7+G,EAAQ4jC,GAC1B,IAAIj7B,EACAwvF,EACA2mB,EAAcv4G,EAAOw4G,aAAaD,aAAe,GAErD,IAAKn2G,KAAOi7B,OACOxoC,IAAbwoC,EAAIj7B,MACLm2G,EAAYn2G,GAAO3I,EAASm4F,IAASA,EAAO,KAAKxvF,GAAOi7B,EAAIj7B,IAQjE,OAJIwvF,GACF5xF,EAAOlK,QAAO,EAAM2D,EAAQm4F,GAGvBn4F,EAxETi+G,GAAah8G,KAAOD,GAASC,KAuO7BsE,EAAOlK,OAAO,CAEZzB,OAAQ,EAERokH,aAAc,GACdC,KAAM,GACNF,aAAc,CACZ38G,IAAKJ,GAASC,KACd/J,KAAM,MACNgnH,QAzQa,4DAyQW9tG,KAAKpP,GAASoQ,UACtCxV,QAAQ,EACR87D,aAAa,EACbymD,OAAO,EACPC,YAAa,mDAabC,QAAS,CACP,IAAKrB,GACLhqH,KAAM,aACN8uC,KAAM,YACNmqD,IAAK,4BACLlqF,KAAM,qCAER0S,SAAU,CACRw3E,IAAK,UACLnqD,KAAM,SACN//B,KAAM,YAERu8G,eAAgB,CACdryB,IAAK,cACLj5F,KAAM,eACN+O,KAAM,gBAIRw8G,WAAY,CAEV,SAAU5lG,OAEV,aAAa,EAEb,YAAarV,KAAKC,MAElB,WAAYgC,EAAOs2G,UAMrBiC,YAAa,CACX18G,KAAK,EACLk1F,SAAS,IAMbtiF,UAAW,SAAUhV,EAAQmN,GAC3B,OAAOA,EACP0xG,GAAWA,GAAW7+G,EAAQuG,EAAOw4G,cAAe5xG,GACpD0xG,GAAWt4G,EAAOw4G,aAAc/+G,IAElCw/G,cAAetB,GAA4B3F,IAC3CkH,cAAevB,GAA4BH,IAE3CrxG,KAAM,SAAUtK,EAAKhG,GAEA,iBAARgG,IACThG,EAAUgG,EACVA,OAAMhH,GAIRgB,EAAUA,GAAW,GACrB,IAAIsjH,EAEJC,EAEAC,EACIC,EAEJC,EAEAC,EAEA/W,EAEAgX,EAEA/mH,EAEAgnH,EAEA/+G,EAAIqF,EAAOyO,UAAU,GAAI5Y,GAEzB8jH,EAAkBh/G,EAAEo2F,SAAWp2F,EAE/Bi/G,EAAqBj/G,EAAEo2F,UAAY4oB,EAAgB5tF,UAAY4tF,EAAgB7tF,QAAU9rB,EAAO25G,GAAmB35G,EAAOlR,MAE1H+xG,EAAW7gG,EAAO0gG,WACdmZ,EAAmB75G,EAAO8/F,UAAU,eAExCga,EAAan/G,EAAEm/G,YAAc,GAE7BC,EAAiB,GACbC,EAAsB,GAE1BC,EAAW,WAEXjC,EAAQ,CACNp7F,WAAY,EAEZs9F,kBAAmB,SAAU93G,GAC3B,IAAIoK,EAEJ,GAAIi2F,EAAW,CACb,IAAK6W,EAGH,IAFAA,EAAkB,GAEX9sG,EAAQ6qG,GAAS1nF,KAAK0pF,IAC3BC,EAAgB9sG,EAAM,GAAG4Z,cAAgB,MAAQkzF,EAAgB9sG,EAAM,GAAG4Z,cAAgB,MAAQ,IAAI9N,OAAO9L,EAAM,IAIvHA,EAAQ8sG,EAAgBl3G,EAAIgkB,cAAgB,KAG9C,OAAgB,MAAT5Z,EAAgB,KAAOA,EAAMkI,KAAK,OAG3CylG,sBAAuB,WACrB,OAAO1X,EAAY4W,EAAwB,MAG7CxyB,iBAAkB,SAAUj1F,EAAMP,GAMhC,OALiB,MAAboxG,IACF7wG,EAAOooH,EAAoBpoH,EAAKw0B,eAAiB4zF,EAAoBpoH,EAAKw0B,gBAAkBx0B,EAC5FmoH,EAAenoH,GAAQP,GAGlB9E,MAGT6tH,iBAAkB,SAAUzoH,GAK1B,OAJiB,MAAb8wG,IACF9nG,EAAE0/G,SAAW1oH,GAGRpF,MAGTutH,WAAY,SAAUt+F,GACpB,IAAI/H,EAEJ,GAAI+H,EACF,GAAIinF,EAEFuV,EAAMpX,OAAOplF,EAAIw8F,EAAMhzE,cAGvB,IAAKvxB,KAAQ+H,EACXs+F,EAAWrmG,GAAQ,CAACqmG,EAAWrmG,GAAO+H,EAAI/H,IAKhD,OAAOlnB,MAGT+tH,MAAO,SAAUC,GACf,IAAIC,EAAYD,GAAcN,EAO9B,OALId,GACFA,EAAUmB,MAAME,GAGlBp0G,EAAK,EAAGo0G,GACDjuH,OAcX,GAVAs0G,EAAShmE,QAAQm9E,GAIjBr9G,EAAEkB,MAAQA,GAAOlB,EAAEkB,KAAOJ,GAASC,MAAQ,IAAIpK,QAAQimH,GAAW97G,GAASoQ,SAAW,MAEtFlR,EAAEhJ,KAAOkE,EAAQwG,QAAUxG,EAAQlE,MAAQgJ,EAAE0B,QAAU1B,EAAEhJ,KAEzDgJ,EAAEm9G,WAAan9G,EAAEmsF,UAAY,KAAK1gE,cAAc5Z,MAAMizF,IAAkB,CAAC,IAEpD,MAAjB9kG,EAAE8/G,YAAqB,CACzBjB,EAAYzuH,EAASic,cAAc,KAInC,IACEwyG,EAAU99G,KAAOf,EAAEkB,IAGnB29G,EAAU99G,KAAO89G,EAAU99G,KAC3Bf,EAAE8/G,YAAc/C,GAAa7rG,SAAW,KAAO6rG,GAAav1E,MAASq3E,EAAU3tG,SAAW,KAAO2tG,EAAUr3E,KAC3G,MAAO5sC,GAGPoF,EAAE8/G,aAAc,GAYpB,GAPI9/G,EAAElL,MAAQkL,EAAEw3D,aAAiC,iBAAXx3D,EAAElL,OACtCkL,EAAElL,KAAOuQ,EAAO82G,MAAMn8G,EAAElL,KAAMkL,EAAEk8G,cAIlCkB,GAA8B/F,GAAYr3G,EAAG9E,EAASmiH,GAElDvV,EACF,OAAOuV,EA6DT,IAAKtlH,KAxDL+mH,EAAcz5G,EAAOlR,OAAS6L,EAAEtE,SAEO,GAApB2J,EAAO3L,UACxB2L,EAAOlR,MAAM6F,QAAQ,aAIvBgG,EAAEhJ,KAAOgJ,EAAEhJ,KAAKuvB,cAEhBvmB,EAAE+/G,YAAcpD,GAAWzsG,KAAKlQ,EAAEhJ,MAIlCynH,EAAWz+G,EAAEkB,IAAIvK,QAAQ6lH,GAAO,IAE3Bx8G,EAAE+/G,WAkBI//G,EAAElL,MAAQkL,EAAEw3D,aAAsF,KAAtEx3D,EAAEk+G,aAAe,IAAIztG,QAAQ,uCAClEzQ,EAAElL,KAAOkL,EAAElL,KAAK6B,QAAQ4lH,GAAK,OAjB7BwC,EAAW/+G,EAAEkB,IAAIoN,MAAMmwG,EAAS9rH,QAE5BqN,EAAElL,OAASkL,EAAEw3D,aAAiC,iBAAXx3D,EAAElL,QACvC2pH,IAAa/C,GAAOxrG,KAAKuuG,GAAY,IAAM,KAAOz+G,EAAElL,YAE7CkL,EAAElL,OAIK,IAAZkL,EAAE+T,QACJ0qG,EAAWA,EAAS9nH,QAAQ8lH,GAAY,MACxCsC,GAAYrD,GAAOxrG,KAAKuuG,GAAY,IAAM,KAAO,KAAOzoB,GAAM4B,OAASmnB,GAIzE/+G,EAAEkB,IAAMu9G,EAAWM,GAMjB/+G,EAAEggH,aACA36G,EAAOy4G,aAAaW,IACtBpB,EAAMnxB,iBAAiB,oBAAqB7mF,EAAOy4G,aAAaW,IAG9Dp5G,EAAO04G,KAAKU,IACdpB,EAAMnxB,iBAAiB,gBAAiB7mF,EAAO04G,KAAKU,MAKpDz+G,EAAElL,MAAQkL,EAAE+/G,aAAgC,IAAlB//G,EAAEk+G,aAAyBhjH,EAAQgjH,cAC/Db,EAAMnxB,iBAAiB,eAAgBlsF,EAAEk+G,aAI3Cb,EAAMnxB,iBAAiB,SAAUlsF,EAAEm9G,UAAU,IAAMn9G,EAAEm+G,QAAQn+G,EAAEm9G,UAAU,IAAMn9G,EAAEm+G,QAAQn+G,EAAEm9G,UAAU,KAA0B,MAAnBn9G,EAAEm9G,UAAU,GAAa,KAAOL,GAAW,WAAa,IAAM98G,EAAEm+G,QAAQ,MAE1Kn+G,EAAE2B,QACV07G,EAAMnxB,iBAAiBn0F,EAAGiI,EAAE2B,QAAQ5J,IAItC,GAAIiI,EAAEigH,cAAgE,IAAjDjgH,EAAEigH,WAAW1xG,KAAKywG,EAAiB3B,EAAOr9G,IAAgB8nG,GAE7E,OAAOuV,EAAMsC,QAYf,GARAL,EAAW,QAEXJ,EAAiBlmH,IAAIgH,EAAEqmB,UACvBg3F,EAAM5xG,KAAKzL,EAAE0L,SACb2xG,EAAMlxE,KAAKnsC,EAAEgC,OAEbw8G,EAAYpB,GAA8BP,GAAY78G,EAAG9E,EAASmiH,GAI3D,CAQL,GAPAA,EAAMp7F,WAAa,EAEf68F,GACFG,EAAmBjlH,QAAQ,WAAY,CAACqjH,EAAOr9G,IAI7C8nG,EACF,OAAOuV,EAILr9G,EAAEi+G,OAASj+G,EAAEm5G,QAAU,IACzByF,EAAevtH,EAAO+J,YAAW,WAC/BiiH,EAAMsC,MAAM,aACX3/G,EAAEm5G,UAGP,IACErR,GAAY,EACZ0W,EAAUhyB,KAAK4yB,EAAgB3zG,GAC/B,MAAO7Q,GAEP,GAAIktG,EACF,MAAMltG,EAIR6Q,GAAM,EAAG7Q,SA9BX6Q,GAAM,EAAG,gBAmCX,SAASA,EAAK4+B,EAAQ61E,EAAkBC,EAAWx+G,GACjD,IAAIy+G,EACA10G,EACA1J,EACAtB,EACA2/G,EACAT,EAAaM,EAEbpY,IAIJA,GAAY,EAER8W,GACFvtH,EAAOmrB,aAAaoiG,GAKtBJ,OAAYtkH,EAEZwkH,EAAwB/8G,GAAW,GAEnC07G,EAAMp7F,WAAaooB,EAAS,EAAI,EAAI,EAEpC+1E,EAAY/1E,GAAU,KAAOA,EAAS,KAAkB,MAAXA,EAEzC81E,IACFz/G,EA5gBR,SAA6BV,EAAGq9G,EAAO8C,GAQrC,IAPA,IAAIG,EACAtpH,EACAupH,EACAC,EACAjsG,EAAWvU,EAAEuU,SACb4oG,EAAYn9G,EAAEm9G,UAEM,MAAjBA,EAAU,IACfA,EAAUhtE,aAECj2C,IAAPomH,IACFA,EAAKtgH,EAAE0/G,UAAYrC,EAAMkC,kBAAkB,iBAK/C,GAAIe,EACF,IAAKtpH,KAAQud,EACX,GAAIA,EAASvd,IAASud,EAASvd,GAAMkZ,KAAKowG,GAAK,CAC7CnD,EAAUttE,QAAQ74C,GAClB,MAMN,GAAImmH,EAAU,KAAMgD,EAClBI,EAAgBpD,EAAU,OACrB,CAEL,IAAKnmH,KAAQmpH,EAAW,CACtB,IAAKhD,EAAU,IAAMn9G,EAAEq+G,WAAWrnH,EAAO,IAAMmmH,EAAU,IAAK,CAC5DoD,EAAgBvpH,EAChB,MAGGwpH,IACHA,EAAgBxpH,GAKpBupH,EAAgBA,GAAiBC,EAMnC,GAAID,EAKF,OAJIA,IAAkBpD,EAAU,IAC9BA,EAAUttE,QAAQ0wE,GAGbJ,EAAUI,GAsdFE,CAAoBzgH,EAAGq9G,EAAO8C,KAItCC,GAAa/6G,EAAOusC,QAAQ,SAAU5xC,EAAEm9G,YAAc,GAAK93G,EAAOusC,QAAQ,OAAQ5xC,EAAEm9G,WAAa,IACpGn9G,EAAEq+G,WAAW,eAAiB,cAIhC39G,EAvdN,SAAqBV,EAAGU,EAAU28G,EAAO+C,GACvC,IAAIM,EACAn9E,EACAo9E,EACAvjB,EACA9wE,EACA+xF,EAAa,GAEjBlB,EAAYn9G,EAAEm9G,UAAU7uG,QAExB,GAAI6uG,EAAU,GACZ,IAAKwD,KAAQ3gH,EAAEq+G,WACbA,EAAWsC,EAAKl1F,eAAiBzrB,EAAEq+G,WAAWsC,GAMlD,IAFAp9E,EAAU45E,EAAUhtE,QAEb5M,GAaL,GAZIvjC,EAAEo+G,eAAe76E,KACnB85E,EAAMr9G,EAAEo+G,eAAe76E,IAAY7iC,IAIhC4rB,GAAQ8zF,GAAapgH,EAAE4gH,aAC1BlgH,EAAWV,EAAE4gH,WAAWlgH,EAAUV,EAAEmsF,WAGtC7/D,EAAOiX,EACPA,EAAU45E,EAAUhtE,QAIlB,GAAgB,MAAZ5M,EACFA,EAAUjX,OACL,GAAa,MAATA,GAAgBA,IAASiX,EAAS,CAI3C,KAFAo9E,EAAOtC,EAAW/xF,EAAO,IAAMiX,IAAY86E,EAAW,KAAO96E,IAG3D,IAAKm9E,KAASrC,EAIZ,IAFAjhB,EAAMsjB,EAAM7wG,MAAM,MAEV,KAAO0zB,IAEbo9E,EAAOtC,EAAW/xF,EAAO,IAAM8wE,EAAI,KAAOihB,EAAW,KAAOjhB,EAAI,KAEtD,EAEK,IAATujB,EACFA,EAAOtC,EAAWqC,IACa,IAAtBrC,EAAWqC,KACpBn9E,EAAU65D,EAAI,GACd+f,EAAUttE,QAAQutD,EAAI,KAGxB,MAOR,IAAa,IAATujB,EAEF,GAAIA,GAAQ3gH,EAAE6gH,OACZngH,EAAWigH,EAAKjgH,QAEhB,IACEA,EAAWigH,EAAKjgH,GAChB,MAAO9F,GACP,MAAO,CACL2hC,MAAO,cACPv6B,MAAO2+G,EAAO/lH,EAAI,sBAAwB0xB,EAAO,OAASiX,IASxE,MAAO,CACLhH,MAAO,UACPznC,KAAM4L,GAkYOogH,CAAY9gH,EAAGU,EAAU28G,EAAO+C,GAEvCA,GAEEpgH,EAAEggH,cACJK,EAAWhD,EAAMkC,kBAAkB,oBAGjCl6G,EAAOy4G,aAAaW,GAAY4B,IAGlCA,EAAWhD,EAAMkC,kBAAkB,WAGjCl6G,EAAO04G,KAAKU,GAAY4B,IAKb,MAAXh2E,GAA6B,SAAXrqC,EAAEhJ,KACtB4oH,EAAa,YACO,MAAXv1E,EACTu1E,EAAa,eAEbA,EAAal/G,EAAS67B,MACtB7wB,EAAUhL,EAAS5L,KAEnBsrH,IADAp+G,EAAQtB,EAASsB,UAKnBA,EAAQ49G,GAEJv1E,GAAWu1E,IACbA,EAAa,QAETv1E,EAAS,IACXA,EAAS,KAMfgzE,EAAMhzE,OAASA,EACfgzE,EAAMuC,YAAcM,GAAoBN,GAAc,GAElDQ,EACFla,EAASa,YAAYiY,EAAiB,CAACtzG,EAASk0G,EAAYvC,IAE5DnX,EAASgB,WAAW8X,EAAiB,CAAC3B,EAAOuC,EAAY59G,IAI3Dq7G,EAAM8B,WAAWA,GACjBA,OAAajlH,EAET4kH,GACFG,EAAmBjlH,QAAQomH,EAAY,cAAgB,YAAa,CAAC/C,EAAOr9G,EAAGogH,EAAY10G,EAAU1J,IAIvGk9G,EAAiBpZ,SAASkZ,EAAiB,CAAC3B,EAAOuC,IAE/Cd,IACFG,EAAmBjlH,QAAQ,eAAgB,CAACqjH,EAAOr9G,MAE3CqF,EAAO3L,QACb2L,EAAOlR,MAAM6F,QAAQ,cAK3B,OAAOqjH,GAET5wB,QAAS,SAAUvrF,EAAKpM,EAAMyN,GAC5B,OAAO8C,EAAO9J,IAAI2F,EAAKpM,EAAMyN,EAAU,SAEzCw+G,UAAW,SAAU7/G,EAAKqB,GACxB,OAAO8C,EAAO9J,IAAI2F,OAAKhH,EAAWqI,EAAU,aAGhD8C,EAAO3K,KAAK,CAAC,MAAO,SAAS,SAAUigF,EAAIj5E,GACzC2D,EAAO3D,GAAU,SAAUR,EAAKpM,EAAMyN,EAAUvL,GAS9C,OAPIq2C,EAAWv4C,KACbkC,EAAOA,GAAQuL,EACfA,EAAWzN,EACXA,OAAOoF,GAIFmL,EAAOmG,KAAKnG,EAAOlK,OAAO,CAC/B+F,IAAKA,EACLlK,KAAM0K,EACNyqF,SAAUn1F,EACVlC,KAAMA,EACN4W,QAASnJ,GACR8C,EAAO6xF,cAAch2F,IAAQA,QAGpCmE,EAAOi5G,eAAc,SAAUt+G,GAC7B,IAAIjI,EAEJ,IAAKA,KAAKiI,EAAE2B,QACc,iBAApB5J,EAAE0zB,gBACJzrB,EAAEk+G,YAAcl+G,EAAE2B,QAAQ5J,IAAM,OAKtCsN,EAAO6rG,SAAW,SAAUhwG,EAAKhG,EAAS2yC,GACxC,OAAOxoC,EAAOmG,KAAK,CACjBtK,IAAKA,EAELlK,KAAM,MACNm1F,SAAU,SACVp4E,OAAO,EACPkqG,OAAO,EACPviH,QAAQ,EAIR2iH,WAAY,CACV,cAAe,cAEjBuC,WAAY,SAAUlgH,GACpB2E,EAAOkyF,WAAW72F,EAAUxF,EAAS2yC,OAK3CxoC,EAAOoM,GAAGtW,OAAO,CACf6lH,QAAS,SAAUp/E,GACjB,IAAIuL,EAyBJ,OAvBIv7C,KAAK,KACHy7C,EAAWzL,KACbA,EAAOA,EAAKrzB,KAAK3c,KAAK,KAIxBu7C,EAAO9nC,EAAOu8B,EAAMhwC,KAAK,GAAG+6E,eAAehuE,GAAG,GAAGq4F,OAAM,GAEnDplG,KAAK,GAAGkkB,YACVq3B,EAAKiS,aAAaxtD,KAAK,IAGzBu7C,EAAKtsB,KAAI,WAGP,IAFA,IAAIvb,EAAO1T,KAEJ0T,EAAK27G,mBACV37G,EAAOA,EAAK27G,kBAGd,OAAO37G,KACNwM,OAAOlgB,OAGLA,MAETsvH,UAAW,SAAUt/E,GACnB,OAAIyL,EAAWzL,GACNhwC,KAAK8I,MAAK,SAAU3C,GACzBsN,EAAOzT,MAAMsvH,UAAUt/E,EAAKrzB,KAAK3c,KAAMmG,OAIpCnG,KAAK8I,MAAK,WACf,IAAI0J,EAAOiB,EAAOzT,MACd2iB,EAAWnQ,EAAKmQ,WAEhBA,EAAS5hB,OACX4hB,EAASysG,QAAQp/E,GAEjBx9B,EAAK0N,OAAO8vB,OAIlBuL,KAAM,SAAUvL,GACd,IAAIu/E,EAAiB9zE,EAAWzL,GAChC,OAAOhwC,KAAK8I,MAAK,SAAU3C,GACzBsN,EAAOzT,MAAMovH,QAAQG,EAAiBv/E,EAAKrzB,KAAK3c,KAAMmG,GAAK6pC,OAG/DptB,OAAQ,SAAU+Q,GAIhB,OAHA3zB,KAAKyX,OAAOkc,GAAUjc,IAAI,QAAQ5O,MAAK,WACrC2K,EAAOzT,MAAMqiB,YAAYriB,KAAK2qD,eAEzB3qD,QAIXyT,EAAO84F,KAAK5E,QAAQ56C,OAAS,SAAUr5C,GACrC,OAAQD,EAAO84F,KAAK5E,QAAQvrC,QAAQ1oD,IAGtCD,EAAO84F,KAAK5E,QAAQvrC,QAAU,SAAU1oD,GACtC,SAAUA,EAAKmsC,aAAensC,EAAKob,cAAgBpb,EAAK+rB,iBAAiB1+B,SAG3E0S,EAAOw4G,aAAauD,IAAM,WACxB,IACE,OAAO,IAAI/vH,EAAO46F,eAClB,MAAOrxF,MAGX,IAAIymH,GAAmB,CAErB,EAAG,IAGH,KAAM,KAEJC,GAAej8G,EAAOw4G,aAAauD,MACvCvrB,EAAQ0rB,OAASD,IAAgB,oBAAqBA,GACtDzrB,EAAQrqF,KAAO81G,KAAiBA,GAChCj8G,EAAOk5G,eAAc,SAAUrjH,GAC7B,IAAIqH,EAAUf,EAEd,GAAIq0F,EAAQ0rB,MAAQD,KAAiBpmH,EAAQ4kH,YAC3C,MAAO,CACLtzB,KAAM,SAAU7qF,EAAS0kB,GACvB,IAAItuB,EACAqpH,EAAMlmH,EAAQkmH,MAGlB,GAFAA,EAAIvzG,KAAK3S,EAAQlE,KAAMkE,EAAQgG,IAAKhG,EAAQ+iH,MAAO/iH,EAAQsmH,SAAUtmH,EAAQwlG,UAEzExlG,EAAQumH,UACV,IAAK1pH,KAAKmD,EAAQumH,UAChBL,EAAIrpH,GAAKmD,EAAQumH,UAAU1pH,GAmB/B,IAAKA,KAdDmD,EAAQwkH,UAAY0B,EAAI3B,kBAC1B2B,EAAI3B,iBAAiBvkH,EAAQwkH,UAQ1BxkH,EAAQ4kH,aAAgBn+G,EAAQ,sBACnCA,EAAQ,oBAAsB,kBAItBA,EACRy/G,EAAIl1B,iBAAiBn0F,EAAG4J,EAAQ5J,IAIlCwK,EAAW,SAAUvL,GACnB,OAAO,WACDuL,IACFA,EAAWf,EAAgB4/G,EAAI52D,OAAS42D,EAAIM,QAAUN,EAAIO,QAAUP,EAAIQ,UAAYR,EAAI/0B,mBAAqB,KAEhG,UAATr1F,EACFoqH,EAAIzB,QACc,UAAT3oH,EAIiB,iBAAfoqH,EAAI/2E,OACbhkB,EAAS,EAAG,SAEZA,EACA+6F,EAAI/2E,OAAQ+2E,EAAIxB,YAGlBv5F,EAASg7F,GAAiBD,EAAI/2E,SAAW+2E,EAAI/2E,OAAQ+2E,EAAIxB,WAGxB,UAAhCwB,EAAIh1B,cAAgB,SAAkD,iBAArBg1B,EAAI90B,aAA4B,CAChFu1B,OAAQT,EAAI1gH,UACV,CACF5N,KAAMsuH,EAAI90B,cACT80B,EAAI5B,4BAOf4B,EAAI52D,OAASjoD,IACbf,EAAgB4/G,EAAIM,QAAUN,EAAIQ,UAAYr/G,EAAS,cAInCrI,IAAhBknH,EAAIO,QACNP,EAAIO,QAAUngH,EAEd4/G,EAAI/0B,mBAAqB,WAEA,IAAnB+0B,EAAIn/F,YAKN5wB,EAAO+J,YAAW,WACZmH,GACFf,QAQVe,EAAWA,EAAS,SAEpB,IAEE6+G,EAAI50B,KAAKtxF,EAAQ6kH,YAAc7kH,EAAQpG,MAAQ,MAC/C,MAAO8F,GAEP,GAAI2H,EACF,MAAM3H,IAIZ+kH,MAAO,WACDp9G,GACFA,SAOV8C,EAAOi5G,eAAc,SAAUt+G,GACzBA,EAAE8/G,cACJ9/G,EAAEuU,SAAS4hF,QAAS,MAIxB9wF,EAAOyO,UAAU,CACfqqG,QAAS,CACPhoB,OAAQ,6FAEV5hF,SAAU,CACR4hF,OAAQ,2BAEVkoB,WAAY,CACV,cAAe,SAAUvrH,GAEvB,OADAuS,EAAOkyF,WAAWzkG,GACXA,MAKbuS,EAAOi5G,cAAc,UAAU,SAAUt+G,QACvB9F,IAAZ8F,EAAE+T,QACJ/T,EAAE+T,OAAQ,GAGR/T,EAAE8/G,cACJ9/G,EAAEhJ,KAAO,UAIbqO,EAAOk5G,cAAc,UAAU,SAAUv+G,GAGrC,IAAIm2F,EAAQ5zF,EADd,GAAIvC,EAAE8/G,aAAe9/G,EAAE8hH,YAErB,MAAO,CACLt1B,KAAM,SAAUnuF,EAAGgoB,GACjB8vE,EAAS9wF,EAAO,YAAYvM,KAAKkH,EAAE8hH,aAAe,IAAIjxG,KAAK,CACzDkxG,QAAS/hH,EAAEgiH,cACXt/E,IAAK1iC,EAAEkB,MACNvG,GAAG,aAAc4H,EAAW,SAAUyoB,GACvCmrE,EAAO7zF,SACPC,EAAW,KAEPyoB,GACF3E,EAAsB,UAAb2E,EAAIh0B,KAAmB,IAAM,IAAKg0B,EAAIh0B,QAInD5G,EAAS2vC,KAAKpzB,YAAYwpF,EAAO,KAEnCwpB,MAAO,WACDp9G,GACFA,SAMV,IAgFMX,GAhFFqgH,GAAe,GACfC,GAAS,oBAEb78G,EAAOyO,UAAU,CACfquG,MAAO,WACPC,cAAe,WACb,IAAI7/G,EAAW0/G,GAAarnE,OAASv1C,EAAO8xF,QAAU,IAAMnB,GAAM4B,OAElE,OADAhmG,KAAK2Q,IAAY,EACVA,KAIX8C,EAAOi5G,cAAc,cAAc,SAAUt+G,EAAGqiH,EAAkBhF,GAChE,IAAIiF,EACAC,EACAC,EACAC,GAAuB,IAAZziH,EAAEmiH,QAAoBD,GAAOhyG,KAAKlQ,EAAEkB,KAAO,MAA0B,iBAAXlB,EAAElL,MAA4F,KAAtEkL,EAAEk+G,aAAe,IAAIztG,QAAQ,sCAA8CyxG,GAAOhyG,KAAKlQ,EAAElL,OAAS,QAEnM,GAAI2tH,GAA+B,UAAnBziH,EAAEm9G,UAAU,GAqD1B,OAnDAmF,EAAetiH,EAAEoiH,cAAgB/0E,EAAWrtC,EAAEoiH,eAAiBpiH,EAAEoiH,gBAAkBpiH,EAAEoiH,cAEjFK,EACFziH,EAAEyiH,GAAYziH,EAAEyiH,GAAU9rH,QAAQurH,GAAQ,KAAOI,IAC5B,IAAZtiH,EAAEmiH,QACXniH,EAAEkB,MAAQw6G,GAAOxrG,KAAKlQ,EAAEkB,KAAO,IAAM,KAAOlB,EAAEmiH,MAAQ,IAAMG,GAI9DtiH,EAAEq+G,WAAW,eAAiB,WAK5B,OAJKmE,GACHn9G,EAAOrD,MAAMsgH,EAAe,mBAGvBE,EAAkB,IAI3BxiH,EAAEm9G,UAAU,GAAK,OAEjBoF,EAAclxH,EAAOixH,GAErBjxH,EAAOixH,GAAgB,WACrBE,EAAoB/oG,WAItB4jG,EAAMpX,QAAO,gBAES/rG,IAAhBqoH,EACFl9G,EAAOhU,GAAQ8oH,WAAWmI,GAE1BjxH,EAAOixH,GAAgBC,EAIrBviH,EAAEsiH,KAEJtiH,EAAEoiH,cAAgBC,EAAiBD,cAEnCH,GAAa/oH,KAAKopH,IAIhBE,GAAqBn1E,EAAWk1E,IAClCA,EAAYC,EAAkB,IAGhCA,EAAoBD,OAAcroH,KAG7B,YAQX27F,EAAQ6sB,qBACF9gH,GAAOxR,EAASuyH,eAAeD,mBAAmB,IAAI9gH,MACrD8K,UAAY,6BACiB,IAA3B9K,GAAK26C,WAAW5pD,QAOzB0S,EAAO++F,UAAY,SAAUtvG,EAAMshG,EAASwsB,GAC1C,MAAoB,iBAAT9tH,EACF,IAGc,kBAAZshG,IACTwsB,EAAcxsB,EACdA,GAAU,GAKPA,IAGCP,EAAQ6sB,qBAKVhlC,GAJA0Y,EAAUhmG,EAASuyH,eAAeD,mBAAmB,KAItCr2G,cAAc,SACxBtL,KAAO3Q,EAAS0Q,SAASC,KAC9Bq1F,EAAQr2D,KAAKpzB,YAAY+wE,IAEzB0Y,EAAUhmG,GAKdi8G,GAAWuW,GAAe,IAD1Bp0B,EAASwV,EAAWhvE,KAAKlgC,IAIhB,CAACshG,EAAQ/pF,cAAcmiF,EAAO,MAGvCA,EAAS4d,GAAc,CAACt3G,GAAOshG,EAASiW,GAEpCA,GAAWA,EAAQ15G,QACrB0S,EAAOgnG,GAAS/pG,SAGX+C,EAAO4sC,MAAM,GAAIu8C,EAAOjyC,cA/B/B,IAAImhC,EAAM8Q,EAAQ6d,GAsCpBhnG,EAAOoM,GAAGw9F,KAAO,SAAU/tG,EAAKguC,EAAQ3sC,GACtC,IAAIgjB,EACAvuB,EACA0J,EACA0D,EAAOxS,KACPujB,EAAMjU,EAAIuP,QAAQ,KA0CtB,OAxCI0E,GAAO,IACToQ,EAAWy0F,GAAiB94G,EAAIoN,MAAM6G,IACtCjU,EAAMA,EAAIoN,MAAM,EAAG6G,IAIjBk4B,EAAW6B,IAEb3sC,EAAW2sC,EACXA,OAASh1C,GACAg1C,GAA4B,iBAAXA,IAC1Bl4C,EAAO,QAILoN,EAAKzR,OAAS,GAChB0S,EAAOmG,KAAK,CACVtK,IAAKA,EAILlK,KAAMA,GAAQ,MACdm1F,SAAU,OACVr3F,KAAMo6C,IACLzjC,MAAK,SAAU6gF,GAEhB5rF,EAAW+Y,UACXrV,EAAKw9B,KAAKrc,EAEVlgB,EAAO,SAASyM,OAAOzM,EAAO++F,UAAU9X,IAAen6F,KAAKozB,GAC5D+mE,MAGC2Z,OAAO1jG,GAAY,SAAU86G,EAAOhzE,GACrCjmC,EAAK1J,MAAK,WACR6H,EAAS+Q,MAAM1hB,KAAM8O,GAAY,CAAC28G,EAAM/wB,aAAcjiD,EAAQgzE,SAK7DzrH,MAGTyT,EAAO84F,KAAK5E,QAAQ75E,SAAW,SAAUpa,GACvC,OAAOD,EAAO4qC,KAAK5qC,EAAOi1C,QAAQ,SAAU7oC,GAC1C,OAAOnM,IAASmM,EAAGnM,QAClB3S,QAGL0S,EAAOxT,OAAS,CACd+rF,UAAW,SAAUt4E,EAAMpK,EAASnD,GAClC,IAAI8qH,EACAC,EACAC,EACAC,EACAC,EACAC,EAEA9vG,EAAW/N,EAAOjT,IAAIkT,EAAM,YAC5B69G,EAAU99G,EAAOC,GACjBy9B,EAAQ,GAEK,WAAb3vB,IACF9N,EAAKpU,MAAMkiB,SAAW,YAGxB6vG,EAAYE,EAAQtxH,SACpBkxH,EAAY19G,EAAOjT,IAAIkT,EAAM,OAC7B49G,EAAa79G,EAAOjT,IAAIkT,EAAM,SACI,aAAb8N,GAAwC,UAAbA,KAA0B2vG,EAAYG,GAAYzyG,QAAQ,SAAW,GAKnHuyG,GADAH,EAAcM,EAAQ/vG,YACD/gB,IACrBywH,EAAUD,EAAYrwH,OAEtBwwH,EAAShyF,WAAW+xF,IAAc,EAClCD,EAAU9xF,WAAWkyF,IAAe,GAGlC71E,EAAWnyC,KAEbA,EAAUA,EAAQqT,KAAKjJ,EAAMvN,EAAGsN,EAAOlK,OAAO,GAAI8nH,KAGjC,MAAf/nH,EAAQ7I,MACV0wC,EAAM1wC,IAAM6I,EAAQ7I,IAAM4wH,EAAU5wH,IAAM2wH,GAGxB,MAAhB9nH,EAAQ1I,OACVuwC,EAAMvwC,KAAO0I,EAAQ1I,KAAOywH,EAAUzwH,KAAOswH,GAG3C,UAAW5nH,EACbA,EAAQkoH,MAAM70G,KAAKjJ,EAAMy9B,GAEzBogF,EAAQ/wH,IAAI2wC,KAIlB19B,EAAOoM,GAAGtW,OAAO,CAEftJ,OAAQ,SAAUqJ,GAEhB,GAAIue,UAAU9mB,OACZ,YAAmBuH,IAAZgB,EAAwBtJ,KAAOA,KAAK8I,MAAK,SAAU3C,GACxDsN,EAAOxT,OAAO+rF,UAAUhsF,KAAMsJ,EAASnD,MAI3C,IAAI4uD,EACA/Y,EACAtoC,EAAO1T,KAAK,GAEhB,OAAK0T,EAQAA,EAAK+rB,iBAAiB1+B,QAQ3Bg0D,EAAOrhD,EAAKkhB,wBACZonB,EAAMtoC,EAAKqnE,cAAckwB,YAClB,CACLxqG,IAAKs0D,EAAKt0D,IAAMu7C,EAAI7tB,YACpBvtB,KAAMm0D,EAAKn0D,KAAOo7C,EAAI0E,cAXf,CACLjgD,IAAK,EACLG,KAAM,QAXV,GAyBF4gB,SAAU,WACR,GAAKxhB,KAAK,GAAV,CAIA,IAAImV,EACAlV,EACAg8C,EACAvoC,EAAO1T,KAAK,GACZyxH,EAAe,CACjBhxH,IAAK,EACLG,KAAM,GAGR,GAAqC,UAAjC6S,EAAOjT,IAAIkT,EAAM,YAEnBzT,EAASyT,EAAKkhB,4BACT,CAOL,IANA30B,EAASD,KAAKC,SAGdg8C,EAAMvoC,EAAKqnE,cACX5lE,EAAezB,EAAKyB,cAAgB8mC,EAAIjxC,gBAEjCmK,IAAiBA,IAAiB8mC,EAAIjsC,MAAQmF,IAAiB8mC,EAAIjxC,kBAA6D,WAAzCyI,EAAOjT,IAAI2U,EAAc,aACrHA,EAAeA,EAAa+O,WAG1B/O,GAAgBA,IAAiBzB,GAAkC,IAA1ByB,EAAaqqB,YAExDiyF,EAAeh+G,EAAO0B,GAAclV,UACvBQ,KAAOgT,EAAOjT,IAAI2U,EAAc,kBAAkB,GAC/Ds8G,EAAa7wH,MAAQ6S,EAAOjT,IAAI2U,EAAc,mBAAmB,IAKrE,MAAO,CACL1U,IAAKR,EAAOQ,IAAMgxH,EAAahxH,IAAMgT,EAAOjT,IAAIkT,EAAM,aAAa,GACnE9S,KAAMX,EAAOW,KAAO6wH,EAAa7wH,KAAO6S,EAAOjT,IAAIkT,EAAM,cAAc,MAa3EyB,aAAc,WACZ,OAAOnV,KAAKivB,KAAI,WAGd,IAFA,IAAI9Z,EAAenV,KAAKmV,aAEjBA,GAAyD,WAAzC1B,EAAOjT,IAAI2U,EAAc,aAC9CA,EAAeA,EAAaA,aAG9B,OAAOA,GAAgBnK,SAK7ByI,EAAO3K,KAAK,CACVylB,WAAY,cACZ5gB,UAAW,gBACV,SAAUmC,EAAQmP,GACnB,IAAIxe,EAAM,gBAAkBwe,EAE5BxL,EAAOoM,GAAG/P,GAAU,SAAUoJ,GAC5B,OAAOo9F,EAAOt2G,MAAM,SAAU0T,EAAM5D,EAAQoJ,GAE1C,IAAI8iC,EAQJ,GANIkoD,EAASxwF,GACXsoC,EAAMtoC,EACqB,IAAlBA,EAAK8rB,WACdwc,EAAMtoC,EAAKu3F,kBAGD3iG,IAAR4Q,EACF,OAAO8iC,EAAMA,EAAI/8B,GAAQvL,EAAK5D,GAG5BksC,EACFA,EAAI01E,SAAUjxH,EAAYu7C,EAAI0E,YAAVxnC,EAAuBzY,EAAMyY,EAAM8iC,EAAI7tB,aAE3Dza,EAAK5D,GAAUoJ,IAEhBpJ,EAAQoJ,EAAK2O,UAAU9mB,YAS9B0S,EAAO3K,KAAK,CAAC,MAAO,SAAS,SAAUigF,EAAI9pE,GACzCxL,EAAOqwG,SAAS7kG,GAAQ6hG,GAAa7c,EAAQ8d,eAAe,SAAUruG,EAAMktG,GAC1E,GAAIA,EAGF,OAFAA,EAAWD,GAAOjtG,EAAMuL,GAEjBqhG,GAAUhiG,KAAKsiG,GAAYntG,EAAOC,GAAM8N,WAAWvC,GAAQ,KAAO2hG,QAK/EntG,EAAO3K,KAAK,CACV6oH,OAAQ,SACRC,MAAO,UACN,SAAUvsH,EAAMD,GACjBqO,EAAO3K,KAAK,CACV2V,QAAS,QAAUpZ,EACnB2U,QAAS5U,EACT,GAAI,QAAUC,IACb,SAAUwsH,EAAcC,GAEzBr+G,EAAOoM,GAAGiyG,GAAY,SAAU1uG,EAAQte,GACtC,IAAIyxG,EAAY1uF,UAAU9mB,SAAW8wH,GAAkC,kBAAXzuG,GACxDogG,EAAQqO,KAA4B,IAAXzuG,IAA6B,IAAVte,EAAiB,SAAW,UAC5E,OAAOwxG,EAAOt2G,MAAM,SAAU0T,EAAMtO,EAAMN,GACxC,IAAIm3C,EAEJ,OAAIioD,EAASxwF,GAE0B,IAA9Bo+G,EAASjzG,QAAQ,SAAiBnL,EAAK,QAAUrO,GAAQqO,EAAKlV,SAASwM,gBAAgB,SAAW3F,GAIrF,IAAlBqO,EAAK8rB,UACPyc,EAAMvoC,EAAK1I,gBAGJ+e,KAAK1W,IAAIK,EAAK1D,KAAK,SAAW3K,GAAO42C,EAAI,SAAW52C,GAAOqO,EAAK1D,KAAK,SAAW3K,GAAO42C,EAAI,SAAW52C,GAAO42C,EAAI,SAAW52C,UAGpHiD,IAAVxD,EACP2O,EAAOjT,IAAIkT,EAAMtO,EAAMo+G,GACvB/vG,EAAOnU,MAAMoU,EAAMtO,EAAMN,EAAO0+G,KAC/Bp+G,EAAMmxG,EAAYnzF,OAAS9a,EAAWiuG,UAI/C9iG,EAAO3K,KAAK,CAAC,YAAa,WAAY,eAAgB,YAAa,cAAe,aAAa,SAAUigF,EAAI3jF,GAC3GqO,EAAOoM,GAAGza,GAAQ,SAAUya,GAC1B,OAAO7f,KAAK+I,GAAG3D,EAAMya,OAGzBpM,EAAOoM,GAAGtW,OAAO,CACf4/B,KAAM,SAAUkyE,EAAOn4G,EAAM2c,GAC3B,OAAO7f,KAAK+I,GAAGsyG,EAAO,KAAMn4G,EAAM2c,IAEpCkyG,OAAQ,SAAU1W,EAAOx7F,GACvB,OAAO7f,KAAKujB,IAAI83F,EAAO,KAAMx7F,IAE/BmyG,SAAU,SAAUr+F,EAAU0nF,EAAOn4G,EAAM2c,GACzC,OAAO7f,KAAK+I,GAAGsyG,EAAO1nF,EAAUzwB,EAAM2c,IAExCoyG,WAAY,SAAUt+F,EAAU0nF,EAAOx7F,GAErC,OAA4B,IAArBgI,UAAU9mB,OAAef,KAAKujB,IAAIoQ,EAAU,MAAQ3zB,KAAKujB,IAAI83F,EAAO1nF,GAAY,KAAM9T,IAE/Fpc,MAAO,SAAUyuH,EAAQC,GACvB,OAAOnyH,KAAKm2B,WAAW+7F,GAAQ97F,WAAW+7F,GAASD,MAGvDz+G,EAAO3K,KAAK,wLAAoMmV,MAAM,MAAM,SAAU8qE,EAAI1jF,GAExOoO,EAAOoM,GAAGxa,GAAQ,SAAUnC,EAAM2c,GAChC,OAAOgI,UAAU9mB,OAAS,EAAIf,KAAK+I,GAAG1D,EAAM,KAAMnC,EAAM2c,GAAM7f,KAAKoI,QAAQ/C,OAK/E,IAAIwiG,GAAQ,qCAKZp0F,EAAO2+G,MAAQ,SAAUvyG,EAAI2kF,GAC3B,IAAIgH,EAAK5yE,EAAMw5F,EAUf,GARuB,iBAAZ5tB,IACTgH,EAAM3rF,EAAG2kF,GACTA,EAAU3kF,EACVA,EAAK2rF,GAKF/vD,EAAW57B,GAahB,OARA+Y,EAAOlc,EAAMC,KAAKkL,UAAW,GAE7BuqG,EAAQ,WACN,OAAOvyG,EAAG6B,MAAM8iF,GAAWxkG,KAAM44B,EAAK7M,OAAOrP,EAAMC,KAAKkL,cAI1DuqG,EAAMpsB,KAAOnmF,EAAGmmF,KAAOnmF,EAAGmmF,MAAQvyF,EAAOuyF,OAClCosB,GAGT3+G,EAAO4+G,UAAY,SAAUC,GACvBA,EACF7+G,EAAO0iG,YAEP1iG,EAAO2Y,OAAM,IAIjB3Y,EAAOoI,QAAUpN,MAAMoN,QACvBpI,EAAO8+G,UAAY/gH,KAAKC,MACxBgC,EAAOuQ,SAAWA,EAClBvQ,EAAOgoC,WAAaA,EACpBhoC,EAAOywF,SAAWA,EAClBzwF,EAAOwjG,UAAYA,EACnBxjG,EAAOrO,KAAOg5B,EACd3qB,EAAOyW,IAAMD,KAAKC,IAElBzW,EAAOsqF,UAAY,SAAUzkE,GAI3B,IAAIl0B,EAAOqO,EAAOrO,KAAKk0B,GACvB,OAAiB,WAATl0B,GAA8B,WAATA,KAG5B0N,MAAMwmB,EAAM8F,WAAW9F,KAG1B7lB,EAAOqT,KAAO,SAAU5lB,GACtB,OAAe,MAARA,EAAe,IAAMA,EAAO,IAAI6D,QAAQ8iG,GAAO,UAiBrD,KAFoB,EAAF,WACjB,OAAOp0F,GACR,QAFgB,OAEhB,aAGH,IACA++G,GAAU/yH,EAAOgU,OAEjBg/G,GAAKhzH,EAAOW,EAqBZ,OAnBAqT,EAAOqtB,WAAa,SAAUukE,GAS5B,OARI5lG,EAAOW,IAAMqT,IACfhU,EAAOW,EAAIqyH,IAGTptB,GAAQ5lG,EAAOgU,SAAWA,IAC5BhU,EAAOgU,OAAS++G,IAGX/+G,QAMe,IAAbgwF,IACThkG,EAAOgU,OAAShU,EAAOW,EAAIqT,GAGtBA,eC7uST,IAKIi/G,EACAC,EANAn1G,EAAUlR,EAAOid,QAAU,GAQ/B,SAASqpG,IACP,MAAM,IAAIjrG,MAAM,mCAGlB,SAASkrG,IACP,MAAM,IAAIlrG,MAAM,qCAyBlB,SAASmrG,EAAWC,GAClB,GAAIL,IAAqBlpH,WAEvB,OAAOA,WAAWupH,EAAK,GAIzB,IAAKL,IAAqBE,IAAqBF,IAAqBlpH,WAElE,OADAkpH,EAAmBlpH,WACZA,WAAWupH,EAAK,GAGzB,IAEE,OAAOL,EAAiBK,EAAK,GAC7B,MAAO/pH,GACP,IAEE,OAAO0pH,EAAiB/1G,KAAK,KAAMo2G,EAAK,GACxC,MAAO/pH,GAEP,OAAO0pH,EAAiB/1G,KAAK3c,KAAM+yH,EAAK,MA3C9C,WACE,IAEIL,EADwB,mBAAflpH,WACUA,WAEAopH,EAErB,MAAO5pH,GACP0pH,EAAmBE,EAGrB,IAEID,EAD0B,mBAAjB/nG,aACYA,aAEAioG,EAEvB,MAAO7pH,GACP2pH,EAAqBE,GAlBzB,GA2EA,IAEIG,EAFA39E,EAAQ,GACR49E,GAAW,EAEXC,GAAc,EAElB,SAASC,IACFF,GAAaD,IAIlBC,GAAW,EAEPD,EAAajyH,OACfs0C,EAAQ29E,EAAajnG,OAAOspB,GAE5B69E,GAAc,EAGZ79E,EAAMt0C,QACRqyH,KAIJ,SAASA,IACP,IAAIH,EAAJ,CAIA,IAAI1L,EAAUuL,EAAWK,GACzBF,GAAW,EAGX,IAFA,IAAIjsG,EAAMquB,EAAMt0C,OAETimB,GAAK,CAIV,IAHAgsG,EAAe39E,EACfA,EAAQ,KAEC69E,EAAalsG,GAChBgsG,GACFA,EAAaE,GAAY39E,MAI7B29E,GAAc,EACdlsG,EAAMquB,EAAMt0C,OAGdiyH,EAAe,KACfC,GAAW,EA1Eb,SAAyBlvH,GACvB,GAAI4uH,IAAuB/nG,aAEzB,OAAOA,aAAa7mB,GAItB,IAAK4uH,IAAuBE,IAAwBF,IAAuB/nG,aAEzE,OADA+nG,EAAqB/nG,aACdA,aAAa7mB,GAGtB,IAES4uH,EAAmB5uH,GAC1B,MAAOiF,GACP,IAEE,OAAO2pH,EAAmBh2G,KAAK,KAAM5Y,GACrC,MAAOiF,GAGP,OAAO2pH,EAAmBh2G,KAAK3c,KAAM+D,KAqDzCsvH,CAAgB9L,IAoBlB,SAAS+L,EAAKP,EAAKlvB,GACjB7jG,KAAK+yH,IAAMA,EACX/yH,KAAK6jG,MAAQA,EAef,SAASvjE,KAlCT9iB,EAAQyxB,SAAW,SAAU8jF,GAC3B,IAAIn6F,EAAO,IAAInqB,MAAMoZ,UAAU9mB,OAAS,GAExC,GAAI8mB,UAAU9mB,OAAS,EACrB,IAAK,IAAIoF,EAAI,EAAGA,EAAI0hB,UAAU9mB,OAAQoF,IACpCyyB,EAAKzyB,EAAI,GAAK0hB,UAAU1hB,GAI5BkvC,EAAM/tC,KAAK,IAAIgsH,EAAKP,EAAKn6F,IAEJ,IAAjByc,EAAMt0C,QAAiBkyH,GACzBH,EAAWM,IAUfE,EAAKltG,UAAUmvB,IAAM,WACnBv1C,KAAK+yH,IAAIrxG,MAAM,KAAM1hB,KAAK6jG,QAG5BrmF,EAAQvc,MAAQ,UAChBuc,EAAQ+1G,SAAU,EAClB/1G,EAAQ7S,IAAM,GACd6S,EAAQg2G,KAAO,GACfh2G,EAAQwqB,QAAU,GAElBxqB,EAAQ4qB,SAAW,GAInB5qB,EAAQzU,GAAKu3B,EACb9iB,EAAQi2G,YAAcnzF,EACtB9iB,EAAQpS,KAAOk1B,EACf9iB,EAAQ+F,IAAM+c,EACd9iB,EAAQk2G,eAAiBpzF,EACzB9iB,EAAQm2G,mBAAqBrzF,EAC7B9iB,EAAQw9B,KAAO1a,EACf9iB,EAAQo2G,gBAAkBtzF,EAC1B9iB,EAAQq2G,oBAAsBvzF,EAE9B9iB,EAAQs2G,UAAY,SAAUzuH,GAC5B,MAAO,IAGTmY,EAAQu2G,QAAU,SAAU1uH,GAC1B,MAAM,IAAIsiB,MAAM,qCAGlBnK,EAAQw2G,IAAM,WACZ,MAAO,KAGTx2G,EAAQy2G,MAAQ,SAAUpwG,GACxB,MAAM,IAAI8D,MAAM,mCAGlBnK,EAAQ02G,MAAQ,WACd,OAAO,uBC9MT,UAQEl0H,UAJC,KAFU,EAAF,WACP,OAAOogC,EAAKl1B,cAKR,WAEN,SAASipH,EAAM18G,EAAQykC,EAAKhvC,GAE1B,GAAIA,EAAQ,CAEV,IAAI2tG,EAAWr8G,SAAS+6G,yBACpBphD,GAAWjc,EAAI9oC,aAAa,YAAclG,EAAO6W,aAAa,WAElEo0C,GAAWjc,EAAIvhC,aAAa,UAAWw9C,GAEvC,IACA,IAAIitC,EAAQl4F,EAAO4X,WAAU,GAAKsgF,EAAMz6C,WAAW5pD,QACjD85G,EAAS9/F,YAAYqqF,EAAM33C,YAI7Bh2C,EAAOsD,YAAY8/F,IAIvB,SAASuZ,EAAqB5E,GAE5BA,EAAI/0B,mBAAqB,WAEvB,GAAI,IAAM+0B,EAAIn/F,WAAY,CAExB,IAAIgkG,EAAiB7E,EAAI8E,gBAEzBD,KAAmBA,EAAiB7E,EAAI8E,gBAAkB91H,SAASuyH,eAAeD,mBAAmB,KAAoB9gH,KAAK8K,UAAY00G,EAAI90B,aAAc80B,EAAI+E,cAAgB,IAChL/E,EAAIgF,QAAQzvG,OAAO,GAAGkK,KAAI,SAAUjU,GAElC,IAAI9N,EAASsiH,EAAI+E,cAAcv5G,EAAK7V,IAEpC+H,IAAWA,EAASsiH,EAAI+E,cAAcv5G,EAAK7V,IAAMkvH,EAAe7nH,eAAewO,EAAK7V,KACpFgvH,EAAMn5G,EAAKvD,OAAQuD,EAAKkhC,IAAKhvC,QAInCsiH,EAAI/0B,qBAGN,SAASvvF,EAAcupH,GACrB,SAASC,IAEP,IACA,IAAIzxH,EAAQ,EAAGA,EAAQ0xH,EAAK5zH,QAAS,CAEnC,IAAI6zH,EAAMD,EAAK1xH,GACXwU,EAASm9G,EAAI1wG,WACbg4B,EAAM24E,EAAep9G,GACrBq5B,EAAM8jF,EAAI7wG,aAAa,eAAiB6wG,EAAI7wG,aAAa,QAE7D,IAAK+sB,GAAO80E,EAAKkP,gBAAkBhkF,EAAM8jF,EAAI7wG,aAAa6hG,EAAKkP,gBAAiB54E,GAAOpL,GACrF,GAAIzvB,EACF,IAAKukG,EAAKmP,UAAYnP,EAAKmP,SAASjkF,EAAKoL,EAAK04E,GAAM,CAElDn9G,EAAOw+B,YAAY2+E,GAEnB,IAAII,EAAWlkF,EAAI7yB,MAAM,KACrB3O,EAAM0lH,EAASz2E,QACfp5C,EAAK6vH,EAAS7sG,KAAK,KAEvB,GAAI7Y,EAAIvO,OAAQ,CAEd,IAAIyuH,EAAMyF,EAAS3lH,GAEnBkgH,KAAQA,EAAMyF,EAAS3lH,GAAO,IAAI+qF,gBAAsBp+E,KAAK,MAAO3M,GAAMkgH,EAAI50B,OAAQ40B,EAAIgF,QAAU,IACpGhF,EAAIgF,QAAQltH,KAAK,CACfmQ,OAAQA,EACRykC,IAAKA,EACL/2C,GAAIA,IAENivH,EAAqB5E,QAGrB2E,EAAM18G,EAAQykC,EAAK19C,SAASgO,eAAerH,UAI3ClC,IAASiyH,QAKbjyH,IAKJ0xH,EAAK5zH,QAAU4zH,EAAK5zH,OAASm0H,EAAiC,IAAMzsE,EAAsBisE,EAAY,IAG1G,IAAIrzG,EACAukG,EAAOj/F,OAAO8tG,GACdU,EAAY,0CACZC,EAAW,yBACXC,EAAc,sBACdC,EAAS,mBACTC,EAAW91H,OAAOgB,MAAQhB,OAAO+S,KACrC6O,EAAW,aAAcukG,EAAOA,EAAKvkG,SAAW8zG,EAAU72G,KAAKyB,UAAUC,aAAeD,UAAUC,UAAUC,MAAMo1G,IAAgB,IAAI,GAAK,QAAUt1G,UAAUC,UAAUC,MAAMm1G,IAAa,IAAI,GAAK,KAAOE,EAAOh3G,KAAKyB,UAAUC,YAAcu1G,EAEhP,IAAIN,EAAW,GACXxsE,EAAwBhpD,OAAOgpD,uBAAyBj/C,WACxDmrH,EAAOn2H,SAAS8O,qBAAqB,OACrC4nH,EAAiC,EAErC7zG,GAAYqzG,IAGd,SAASG,EAAehnG,GACtB,IAAK,IAAIquB,EAAMruB,EAAM,QAAUquB,EAAIl4B,SAAS6V,gBAAkBqiB,EAAMA,EAAIh4B,cAExE,OAAOg4B,EAGT,OAAOhxC,EAzHuBinB,IAC7B,QAFM,OAEN,6ECmN0BxL,OAAOyb,OAyLXzb,OAAOyb,OAuBzB,SAASozF,EAAuBC,EAAU9qF,EAAOwC,EAAM19B,GAC5D,GAAa,MAAT09B,IAAiB19B,EAAG,MAAM,IAAI0a,UAAU,iDAC5C,GAAqB,mBAAVwgB,EAAuB8qF,IAAa9qF,IAAUl7B,GAAKk7B,EAAM/uB,IAAI65G,GAAW,MAAM,IAAItrG,UAAU,4EACvG,MAAgB,MAATgjB,EAAe19B,EAAa,MAAT09B,EAAe19B,EAAEkN,KAAK84G,GAAYhmH,EAAIA,EAAE3K,MAAQ6lC,EAAMhhC,IAAI8rH,GAE/E,SAASC,EAAuBD,EAAU9qF,EAAO7lC,EAAOqoC,EAAM19B,GACnE,GAAa,MAAT09B,EAAc,MAAM,IAAIhjB,UAAU,kCACtC,GAAa,MAATgjB,IAAiB19B,EAAG,MAAM,IAAI0a,UAAU,iDAC5C,GAAqB,mBAAVwgB,EAAuB8qF,IAAa9qF,IAAUl7B,GAAKk7B,EAAM/uB,IAAI65G,GAAW,MAAM,IAAItrG,UAAU,2EACvG,MAAgB,MAATgjB,EAAe19B,EAAEkN,KAAK84G,EAAU3wH,GAAS2K,EAAIA,EAAE3K,MAAQA,EAAQ6lC,EAAMvZ,IAAIqkG,EAAU3wH,GAAQA,wIChbhGgF,EAA+B,oBAAfigC,YAA8BA,YAA8B,oBAATv3B,MAAwBA,WAA0B,IAAX1I,GAA0BA,EACpIm6F,EACY,oBAAqBn6F,EADjCm6F,EAEQ,WAAYn6F,GAAU,aAAc63B,OAF5CsiE,EAGI,eAAgBn6F,GAAU,SAAUA,GAAU,WAClD,IAEE,OADA,IAAI6rH,MACG,EACP,MAAO3sH,GACP,OAAO,GALyC,GAHlDi7F,EAWQ,aAAcn6F,EAXtBm6F,EAYW,gBAAiBn6F,EAOhC,GAAIm6F,EACF,IAAI2xB,EAAc,CAAC,qBAAsB,sBAAuB,6BAA8B,sBAAuB,uBAAwB,sBAAuB,uBAAwB,wBAAyB,yBAEjNC,EAAoBC,YAAYC,QAAU,SAAUz8F,GACtD,OAAOA,GAAOs8F,EAAY/2G,QAAQ8H,OAAOP,UAAUlI,SAASvB,KAAK2c,KAAS,GAI9E,SAAS08F,EAAc3wH,GAKrB,GAJoB,iBAATA,IACTA,EAAOwhB,OAAOxhB,IAGZ,6BAA6BiZ,KAAKjZ,IAAkB,KAATA,EAC7C,MAAM,IAAI8kB,UAAU,4CAA8C9kB,EAAO,KAG3E,OAAOA,EAAKw0B,cAGd,SAASo8F,EAAenxH,GAKtB,MAJqB,iBAAVA,IACTA,EAAQ+hB,OAAO/hB,IAGVA,EAIT,SAASoxH,EAAYvwC,GACnB,IAAI/4C,EAAW,CACb/R,KAAM,WACJ,IAAI/1B,EAAQ6gF,EAAMpnC,QAClB,MAAO,CACL1kC,UAAgBvR,IAAVxD,EACNA,MAAOA,KAWb,OANIm/F,IACFr3D,EAASjL,OAAOiL,UAAY,WAC1B,OAAOA,IAIJA,EAGF,SAASupF,EAAQpmH,GACtB/P,KAAKivB,IAAM,GAEPlf,aAAmBomH,EACrBpmH,EAAQ/J,SAAQ,SAAUlB,EAAOO,GAC/BrF,KAAKkgB,OAAO7a,EAAMP,KACjB9E,MACMyO,MAAMoN,QAAQ9L,GACvBA,EAAQ/J,SAAQ,SAAU+T,GACxB/Z,KAAKkgB,OAAOnG,EAAO,GAAIA,EAAO,MAC7B/Z,MACM+P,GACT4W,OAAO8K,oBAAoB1hB,GAAS/J,SAAQ,SAAUX,GACpDrF,KAAKkgB,OAAO7a,EAAM0K,EAAQ1K,MACzBrF,MAgEP,SAASo2H,EAASpmH,GAChB,GAAIA,EAAKqmH,SACP,OAAO/6G,EAAQm0B,OAAO,IAAItlB,UAAU,iBAGtCna,EAAKqmH,UAAW,EAGlB,SAASC,EAAgBC,GACvB,OAAO,IAAIj7G,GAAQ,SAAUC,EAASk0B,GACpC8mF,EAAO39D,OAAS,WACdr9C,EAAQg7G,EAAOruG,SAGjBquG,EAAOzG,QAAU,WACfrgF,EAAO8mF,EAAOnmH,WAKpB,SAASomH,EAAsBC,GAC7B,IAAIF,EAAS,IAAIG,WACbpoF,EAAUgoF,EAAgBC,GAE9B,OADAA,EAAOI,kBAAkBF,GAClBnoF,EAqBT,SAASsoF,EAAYC,GACnB,GAAIA,EAAIn6G,MACN,OAAOm6G,EAAIn6G,MAAM,GAEjB,IAAI4J,EAAO,IAAIwwG,WAAWD,EAAIE,YAE9B,OADAzwG,EAAK8K,IAAI,IAAI0lG,WAAWD,IACjBvwG,EAAK0wG,OAIhB,SAASC,IAkHP,OAjHAj3H,KAAKq2H,UAAW,EAEhBr2H,KAAKk3H,UAAY,SAAUlnH,GA7L7B,IAAoBspB,EAwMhBt5B,KAAKq2H,SAAWr2H,KAAKq2H,SACrBr2H,KAAKm3H,UAAYnnH,EAEZA,EAEsB,iBAATA,EAChBhQ,KAAKo3H,UAAYpnH,EACRi0F,GAAgB0xB,KAAKvvG,UAAUmc,cAAcvyB,GACtDhQ,KAAKq3H,UAAYrnH,EACRi0F,GAAoBloF,SAASqK,UAAUmc,cAAcvyB,GAC9DhQ,KAAKs3H,cAAgBtnH,EACZi0F,GAAwBszB,gBAAgBnxG,UAAUmc,cAAcvyB,GACzEhQ,KAAKo3H,UAAYpnH,EAAKkO,WACb+lF,GAAuBA,KArNlB3qE,EAqN6CtpB,IApNjDwnH,SAASpxG,UAAUmc,cAAcjJ,KAqN3Ct5B,KAAKy3H,iBAAmBb,EAAY5mH,EAAKgnH,QAEzCh3H,KAAKm3H,UAAY,IAAIxB,KAAK,CAAC31H,KAAKy3H,oBACvBxzB,IAAwB6xB,YAAY1vG,UAAUmc,cAAcvyB,IAAS6lH,EAAkB7lH,IAChGhQ,KAAKy3H,iBAAmBb,EAAY5mH,GAEpChQ,KAAKo3H,UAAYpnH,EAAO2W,OAAOP,UAAUlI,SAASvB,KAAK3M,GAhBvDhQ,KAAKo3H,UAAY,GAmBdp3H,KAAK+P,QAAQpG,IAAI,kBACA,iBAATqG,EACThQ,KAAK+P,QAAQqhB,IAAI,eAAgB,4BACxBpxB,KAAKq3H,WAAar3H,KAAKq3H,UAAUjyH,KAC1CpF,KAAK+P,QAAQqhB,IAAI,eAAgBpxB,KAAKq3H,UAAUjyH,MACvC6+F,GAAwBszB,gBAAgBnxG,UAAUmc,cAAcvyB,IACzEhQ,KAAK+P,QAAQqhB,IAAI,eAAgB,qDAKnC6yE,IACFjkG,KAAKy2H,KAAO,WACV,IAAIiB,EAAWtB,EAASp2H,MAExB,GAAI03H,EACF,OAAOA,EAGT,GAAI13H,KAAKq3H,UACP,OAAO/7G,EAAQC,QAAQvb,KAAKq3H,WACvB,GAAIr3H,KAAKy3H,iBACd,OAAOn8G,EAAQC,QAAQ,IAAIo6G,KAAK,CAAC31H,KAAKy3H,oBACjC,GAAIz3H,KAAKs3H,cACd,MAAM,IAAI3vG,MAAM,wCAEhB,OAAOrM,EAAQC,QAAQ,IAAIo6G,KAAK,CAAC31H,KAAKo3H,cAI1Cp3H,KAAK23H,YAAc,WACjB,GAAI33H,KAAKy3H,iBAAkB,CACzB,IAAIG,EAAaxB,EAASp2H,MAE1B,OAAI43H,IAIA9B,YAAYC,OAAO/1H,KAAKy3H,kBACnBn8G,EAAQC,QAAQvb,KAAKy3H,iBAAiBT,OAAOt6G,MAAM1c,KAAKy3H,iBAAiBI,WAAY73H,KAAKy3H,iBAAiBI,WAAa73H,KAAKy3H,iBAAiBV,aAE9Iz7G,EAAQC,QAAQvb,KAAKy3H,mBAG9B,OAAOz3H,KAAKy2H,OAAOpqH,KAAKmqH,KAK9Bx2H,KAAKkB,KAAO,WACV,IAnHoBu1H,EAClBF,EACAjoF,EAiHEopF,EAAWtB,EAASp2H,MAExB,GAAI03H,EACF,OAAOA,EAGT,GAAI13H,KAAKq3H,UACP,OA1HkBZ,EA0HIz2H,KAAKq3H,UAzH3Bd,EAAS,IAAIG,WACbpoF,EAAUgoF,EAAgBC,GAC9BA,EAAOuB,WAAWrB,GACXnoF,EAuHE,GAAItuC,KAAKy3H,iBACd,OAAOn8G,EAAQC,QArHrB,SAA+Bs7G,GAI7B,IAHA,IAAIvwG,EAAO,IAAIwwG,WAAWD,GACtBkB,EAAQ,IAAItpH,MAAM6X,EAAKvlB,QAElBoF,EAAI,EAAGA,EAAImgB,EAAKvlB,OAAQoF,IAC/B4xH,EAAM5xH,GAAK0gB,OAAOiiF,aAAaxiF,EAAKngB,IAGtC,OAAO4xH,EAAM5vG,KAAK,IA6GS6vG,CAAsBh4H,KAAKy3H,mBAC7C,GAAIz3H,KAAKs3H,cACd,MAAM,IAAI3vG,MAAM,wCAEhB,OAAOrM,EAAQC,QAAQvb,KAAKo3H,YAI5BnzB,IACFjkG,KAAKyb,SAAW,WACd,OAAOzb,KAAKkB,OAAOmL,KAAK4rH,KAI5Bj4H,KAAKiQ,KAAO,WACV,OAAOjQ,KAAKkB,OAAOmL,KAAKmF,KAAKC,QAGxBzR,KArOTm2H,EAAQ/vG,UAAUlG,OAAS,SAAU7a,EAAMP,GACzCO,EAAO2wH,EAAc3wH,GACrBP,EAAQmxH,EAAenxH,GACvB,IAAIozH,EAAWl4H,KAAKivB,IAAI5pB,GACxBrF,KAAKivB,IAAI5pB,GAAQ6yH,EAAWA,EAAW,KAAOpzH,EAAQA,GAGxDqxH,EAAQ/vG,UAAkB,OAAI,SAAU/gB,UAC/BrF,KAAKivB,IAAI+mG,EAAc3wH,KAGhC8wH,EAAQ/vG,UAAUzc,IAAM,SAAUtE,GAEhC,OADAA,EAAO2wH,EAAc3wH,GACdrF,KAAK4b,IAAIvW,GAAQrF,KAAKivB,IAAI5pB,GAAQ,MAG3C8wH,EAAQ/vG,UAAUxK,IAAM,SAAUvW,GAChC,OAAOrF,KAAKivB,IAAItC,eAAeqpG,EAAc3wH,KAG/C8wH,EAAQ/vG,UAAUgL,IAAM,SAAU/rB,EAAMP,GACtC9E,KAAKivB,IAAI+mG,EAAc3wH,IAAS4wH,EAAenxH,IAGjDqxH,EAAQ/vG,UAAUpgB,QAAU,SAAU2K,EAAUwnH,GAC9C,IAAK,IAAI9yH,KAAQrF,KAAKivB,IAChBjvB,KAAKivB,IAAItC,eAAetnB,IAC1BsL,EAASgM,KAAKw7G,EAASn4H,KAAKivB,IAAI5pB,GAAOA,EAAMrF,OAKnDm2H,EAAQ/vG,UAAUuP,KAAO,WACvB,IAAIgwD,EAAQ,GAIZ,OAHA3lF,KAAKgG,SAAQ,SAAUlB,EAAOO,GAC5BsgF,EAAMr+E,KAAKjC,MAEN6wH,EAAYvwC,IAGrBwwC,EAAQ/vG,UAAUgR,OAAS,WACzB,IAAIuuD,EAAQ,GAIZ,OAHA3lF,KAAKgG,SAAQ,SAAUlB,GACrB6gF,EAAMr+E,KAAKxC,MAENoxH,EAAYvwC,IAGrBwwC,EAAQ/vG,UAAUtE,QAAU,WAC1B,IAAI6jE,EAAQ,GAIZ,OAHA3lF,KAAKgG,SAAQ,SAAUlB,EAAOO,GAC5BsgF,EAAMr+E,KAAK,CAACjC,EAAMP,OAEboxH,EAAYvwC,IAGjBse,IACFkyB,EAAQ/vG,UAAUub,OAAOiL,UAAYupF,EAAQ/vG,UAAUtE,SAgLzD,IAAIqlB,EAAU,CAAC,SAAU,MAAO,OAAQ,UAAW,OAAQ,OAOpD,SAASixF,EAAQrmH,EAAOzI,GAC7B,KAAMtJ,gBAAgBo4H,GACpB,MAAM,IAAIjuG,UAAU,8FAItB,IAXuBra,EACnBuoH,EAUAroH,GADJ1G,EAAUA,GAAW,IACF0G,KAEnB,GAAI+B,aAAiBqmH,EAAS,CAC5B,GAAIrmH,EAAMskH,SACR,MAAM,IAAIlsG,UAAU,gBAGtBnqB,KAAKsP,IAAMyC,EAAMzC,IACjBtP,KAAKs4H,YAAcvmH,EAAMumH,YAEpBhvH,EAAQyG,UACX/P,KAAK+P,QAAU,IAAIomH,EAAQpkH,EAAMhC,UAGnC/P,KAAK8P,OAASiC,EAAMjC,OACpB9P,KAAK+zC,KAAOhiC,EAAMgiC,KAClB/zC,KAAKu4H,OAASxmH,EAAMwmH,OAEfvoH,GAA2B,MAAnB+B,EAAMolH,YACjBnnH,EAAO+B,EAAMolH,UACbplH,EAAMskH,UAAW,QAGnBr2H,KAAKsP,IAAMuX,OAAO9U,GAcpB,GAXA/R,KAAKs4H,YAAchvH,EAAQgvH,aAAet4H,KAAKs4H,aAAe,eAE1DhvH,EAAQyG,SAAY/P,KAAK+P,UAC3B/P,KAAK+P,QAAU,IAAIomH,EAAQ7sH,EAAQyG,UAGrC/P,KAAK8P,QA3CkBA,EA2COxG,EAAQwG,QAAU9P,KAAK8P,QAAU,MA1C3DuoH,EAAUvoH,EAAO6kB,cACdwS,EAAQtoB,QAAQw5G,IAAY,EAAIA,EAAUvoH,GA0CjD9P,KAAK+zC,KAAOzqC,EAAQyqC,MAAQ/zC,KAAK+zC,MAAQ,KACzC/zC,KAAKu4H,OAASjvH,EAAQivH,QAAUv4H,KAAKu4H,OACrCv4H,KAAKw4H,SAAW,MAEK,QAAhBx4H,KAAK8P,QAAoC,SAAhB9P,KAAK8P,SAAsBE,EACvD,MAAM,IAAIma,UAAU,6CAKtB,GAFAnqB,KAAKk3H,UAAUlnH,KAEK,QAAhBhQ,KAAK8P,QAAoC,SAAhB9P,KAAK8P,QACV,aAAlBxG,EAAQ6Y,OAA0C,aAAlB7Y,EAAQ6Y,OAAsB,CAEhE,IAAIs2G,EAAgB,gBAEpB,GAAIA,EAAcn6G,KAAKte,KAAKsP,KAE1BtP,KAAKsP,IAAMtP,KAAKsP,IAAIvK,QAAQ0zH,EAAe,QAAS,IAAIxuG,MAAOi6B,eAC1D,CAGLlkD,KAAKsP,MADe,KACOgP,KAAKte,KAAKsP,KAAO,IAAM,KAAO,MAAO,IAAI2a,MAAOi6B,YAYnF,SAAS+zE,EAAOjoH,GACd,IAAI0oH,EAAO,IAAI38G,SASf,OARA/L,EAAK8W,OAAO7I,MAAM,KAAKjY,SAAQ,SAAU2yH,GACvC,GAAIA,EAAO,CACT,IAAI16G,EAAQ06G,EAAM16G,MAAM,KACpB5Y,EAAO4Y,EAAMsgC,QAAQx5C,QAAQ,MAAO,KACpCD,EAAQmZ,EAAMkK,KAAK,KAAKpjB,QAAQ,MAAO,KAC3C2zH,EAAKx4G,OAAOwZ,mBAAmBr0B,GAAOq0B,mBAAmB50B,QAGtD4zH,EA0BF,SAASE,EAASC,EAAUvvH,GACjC,KAAMtJ,gBAAgB44H,GACpB,MAAM,IAAIzuG,UAAU,8FAGjB7gB,IACHA,EAAU,IAGZtJ,KAAKoF,KAAO,UACZpF,KAAKy4C,YAA4BnwC,IAAnBgB,EAAQmvC,OAAuB,IAAMnvC,EAAQmvC,OAC3Dz4C,KAAK6O,GAAK7O,KAAKy4C,QAAU,KAAOz4C,KAAKy4C,OAAS,IAC9Cz4C,KAAKguH,gBAAoC1lH,IAAvBgB,EAAQ0kH,WAA2B,GAAK,GAAK1kH,EAAQ0kH,WACvEhuH,KAAK+P,QAAU,IAAIomH,EAAQ7sH,EAAQyG,SACnC/P,KAAKsP,IAAMhG,EAAQgG,KAAO,GAE1BtP,KAAKk3H,UAAU2B,GA1DjBT,EAAQhyG,UAAUg/E,MAAQ,WACxB,OAAO,IAAIgzB,EAAQp4H,KAAM,CACvBgQ,KAAMhQ,KAAKm3H,aAuCfF,EAAKt6G,KAAKy7G,EAAQhyG,WAmBlB6wG,EAAKt6G,KAAKi8G,EAASxyG,WAEnBwyG,EAASxyG,UAAUg/E,MAAQ,WACzB,OAAO,IAAIwzB,EAAS54H,KAAKm3H,UAAW,CAClC1+E,OAAQz4C,KAAKy4C,OACbu1E,WAAYhuH,KAAKguH,WACjBj+G,QAAS,IAAIomH,EAAQn2H,KAAK+P,SAC1BT,IAAKtP,KAAKsP,OAIdspH,EAASxoH,MAAQ,WACf,IAAItB,EAAW,IAAI8pH,EAAS,KAAM,CAChCngF,OAAQ,EACRu1E,WAAY,KAGd,OADAl/G,EAAS1J,KAAO,QACT0J,GAGT,IAAIgqH,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,KAE5CF,EAASG,SAAW,SAAUzpH,EAAKmpC,GACjC,IAA0C,IAAtCqgF,EAAiBj6G,QAAQ45B,GAC3B,MAAM,IAAIugF,WAAW,uBAGvB,OAAO,IAAIJ,EAAS,KAAM,CACxBngF,OAAQA,EACR1oC,QAAS,CACPb,SAAUI,MAKT,IAAI6X,EAAerd,EAAOqd,aAEjC,IACE,IAAIA,EACJ,MAAOg0F,IACPh0F,EAAe,SAAUjX,EAAS7K,GAChCrF,KAAKkQ,QAAUA,EACflQ,KAAKqF,KAAOA,EACZ,IAAI+K,EAAQuX,MAAMzX,GAClBlQ,KAAKkkC,MAAQ9zB,EAAM8zB,QAGR9d,UAAYO,OAAOyb,OAAOza,MAAMvB,WAC7Ce,EAAaf,UAAUvY,YAAcsZ,EAGhC,SAAStX,EAAMkC,EAAOpT,GAC3B,OAAO,IAAI2c,GAAQ,SAAUC,EAASk0B,GACpC,IAAIwpF,EAAU,IAAIb,EAAQrmH,EAAOpT,GAEjC,GAAIs6H,EAAQV,QAAUU,EAAQV,OAAOW,QACnC,OAAOzpF,EAAO,IAAItoB,EAAa,UAAW,eAG5C,IAAIqoG,EAAM,IAAIn1B,eAEd,SAAS8+B,IACP3J,EAAIzB,QAGNyB,EAAI52D,OAAS,WACX,IA3GgBwgE,EAChBrpH,EA0GIzG,EAAU,CACZmvC,OAAQ+2E,EAAI/2E,OACZu1E,WAAYwB,EAAIxB,WAChBj+G,SA9GcqpH,EA8GQ5J,EAAI5B,yBAA2B,GA7GvD79G,EAAU,IAAIomH,EAGQiD,EAAWr0H,QAAQ,eAAgB,KAIzCkZ,MAAM,MAAMgR,KAAI,SAAUlV,GAC5C,OAAgC,IAAzBA,EAAO8E,QAAQ,MAAc9E,EAAOqT,OAAO,EAAGrT,EAAOhZ,QAAUgZ,KACrE/T,SAAQ,SAAUnC,GACnB,IAAIwgH,EAAQxgH,EAAKoa,MAAM,KACnBpI,EAAMwuG,EAAM9lE,QAAQz3B,OAExB,GAAIjR,EAAK,CACP,IAAI/Q,EAAQu/G,EAAMl8F,KAAK,KAAKrB,OAC5B/W,EAAQmQ,OAAOrK,EAAK/Q,OAGjBiL,IA6FHzG,EAAQgG,IAAM,gBAAiBkgH,EAAMA,EAAI6J,YAAc/vH,EAAQyG,QAAQpG,IAAI,iBAC3E,IAAIqG,EAAO,aAAcw/G,EAAMA,EAAI1gH,SAAW0gH,EAAI90B,aAClDlxF,YAAW,WACT+R,EAAQ,IAAIq9G,EAAS5oH,EAAM1G,MAC1B,IAGLkmH,EAAIM,QAAU,WACZtmH,YAAW,WACTimC,EAAO,IAAItlB,UAAU,6BACpB,IAGLqlG,EAAIQ,UAAY,WACdxmH,YAAW,WACTimC,EAAO,IAAItlB,UAAU,6BACpB,IAGLqlG,EAAIO,QAAU,WACZvmH,YAAW,WACTimC,EAAO,IAAItoB,EAAa,UAAW,iBAClC,IAWLqoG,EAAIvzG,KAAKg9G,EAAQnpH,OARjB,SAAgBR,GACd,IACE,MAAe,KAARA,GAAcxF,EAAOoF,SAASC,KAAOrF,EAAOoF,SAASC,KAAOG,EACnE,MAAOtG,GACP,OAAOsG,GAIcgqH,CAAOL,EAAQ3pH,MAAM,GAElB,YAAxB2pH,EAAQX,YACV9I,EAAI+J,iBAAkB,EACW,SAAxBN,EAAQX,cACjB9I,EAAI+J,iBAAkB,GAGpB,iBAAkB/J,IAChBvrB,EACFurB,EAAIh1B,aAAe,OACVyJ,GAAuBg1B,EAAQlpH,QAAQpG,IAAI,kBAAgG,IAA7EsvH,EAAQlpH,QAAQpG,IAAI,gBAAgBkV,QAAQ,8BACnH2wG,EAAIh1B,aAAe,iBAInB77F,GAAgC,iBAAjBA,EAAKoR,SAA0BpR,EAAKoR,mBAAmBomH,EAKxE8C,EAAQlpH,QAAQ/J,SAAQ,SAAUlB,EAAOO,GACvCmqH,EAAIl1B,iBAAiBj1F,EAAMP,MAL7B6hB,OAAO8K,oBAAoB9yB,EAAKoR,SAAS/J,SAAQ,SAAUX,GACzDmqH,EAAIl1B,iBAAiBj1F,EAAM4wH,EAAet3H,EAAKoR,QAAQ1K,QAQvD4zH,EAAQV,SACVU,EAAQV,OAAO95H,iBAAiB,QAAS06H,GAEzC3J,EAAI/0B,mBAAqB,WAEA,IAAnB+0B,EAAIn/F,YACN4oG,EAAQV,OAAOtgG,oBAAoB,QAASkhG,KAKlD3J,EAAI50B,UAAkC,IAAtBq+B,EAAQ9B,UAA4B,KAAO8B,EAAQ9B,cAGvEtnH,EAAMwR,UAAW,EAEZvX,EAAO+F,QACV/F,EAAO+F,MAAQA,EACf/F,EAAOqsH,QAAUA,EACjBrsH,EAAOsuH,QAAUA,EACjBtuH,EAAO8uH,SAAWA,mBC3lBpB,IAAIY,EAA6B,EAAQ,MAErCC,EADsC,EAAQ,WAEE,IAAzCA,EAAmC,IAAmBA,EAAmC,EAAID,QAC/C,IAA9CC,EAAwC,SAAmBA,EAAwC,OAAID,GAClHltH,EAAOid,QAAUiwG,kBCLjB,IAAIA,EAA6B,EAAQ,MAErCC,EADsC,EAAQ,WAEW,IAAlDA,EAA4C,aAAmBA,EAA4C,WAAID,GAC1HltH,EAAOid,QAAUiwG,gICQGlwH,GACZ,MAAM,GAAEnE,EAAE,UAAEu0H,EAAS,UAAEC,GAAcrwH,EAE/BswH,EAAWp7H,SAASic,cAAc,UAgBxC,OAfAm/G,EAASj/G,aAAa,KAAMxV,GAC5By0H,EAASj/G,aAAa,OAAQ,UAC9Bi/G,EAASj/G,aAAa,iBAAkB,SAExCi/G,EAASpsH,UAAUpG,IAAI,QAAS,cAAcsyH,KAC1CC,GACAC,EAASpsH,UAAUpG,IAAI,qBAG3B,QAAApH,KAAI,OAASsH,KAAKsyH,GAClBp7H,SAASwR,KAAK+K,YAAY6+G,IAG1B,QAAA55H,KAAI,SAAkB,KAAtBA,KAAuB45H,GAEhBA,GACV,WAEgBA,IACb,QAAA55H,KAAI,GAAW,QAAAA,KAAI,OAASmI,QAAQoC,GAAUA,IAAUqvH,IAAS,KACjEA,EAASlpH,UACZ,WAEiBkpH,GAEdA,EAASn7H,iBACL,SACCgO,KACG,QAAAzM,KAAI,SAAiB,KAArBA,KAAsB45H,KAE1B,CAAExuH,MAAM,IAGZwuH,EAASn7H,iBACL,WACCuK,IACiB,WAAVA,EAAE6M,KACF+jH,EAASr8G,UAGjB,CAAEnS,MAAM,KAEf,WAEkBwuH,EAA6Bx9G,GAC5C,MAAMy9G,EAAY,8DAERz9G,+yBAqBVw9G,EAAS9+G,UAAY++G,EAGrB,MAAMC,EAAWF,EAASxtH,cAA2B,oBACrDvB,QAAQC,IAAI,cAAegvH,GACvBA,GACAA,EAASr7H,iBACL,SACCgO,IACG5B,QAAQC,IAAI,UACZ8uH,EAASr8G,UAEb,CAAEnS,MAAM,KAGnB,WAEU9B,GACP,MAAM,SAAE8S,GAAa9S,EAEfswH,GAAW,QAAA55H,KAAI,SAAgB,KAApBA,KAAI,iBAAsBsJ,KAC3C,QAAAtJ,KAAI,SAAmB,KAAvBA,KAAwB45H,EAAUx9G,GAClCw9G,EAASt9G,aAyBjB,QA1HA,gCACI,WAA+B,IAmG/By9G,eAAeC,EAA2C1wH,GACtD,MAAM8S,EAAW,kIAGU49G,EAAUlpF,cAAckpF,EAAU50H,MAAQ,8DAIrE,OAAO,QAAApF,KAAI,SAAW,KAAfA,KAAI,eAAcmF,GAAI,cAAeu0H,UAAW,QAASt9G,WAAUu9G,WAAW,GAASrwH,IAGlGgU,YACI,QAAAtd,KAAI,OAASgG,SAASuE,IAClBA,EAAMgT,WAIdA,MAAMpY,SAC2C,QAA7C,WAAAnF,KAAI,OAASO,MAAMgK,GAAUA,EAAMpF,KAAOA,WAAG,SAAEoY,YC9HnD08G,yBAA2B,GCD3B3lB,SCAAuQ,WACAqV,kBFGJ,SAASC,oBAAoBC,GAE5B,IAAIC,EAAeJ,yBAAyBG,GAC5C,QAAqB9xH,IAAjB+xH,EACH,OAAOA,EAAa9wG,QAGrB,IAAIjd,EAAS2tH,yBAAyBG,GAAY,CAGjD7wG,QAAS,IAOV,OAHA+wG,oBAAoBF,GAAUz9G,KAAKrQ,EAAOid,QAASjd,EAAQA,EAAOid,QAAS4wG,qBAGpE7tH,EAAOid,QAIf4wG,oBAAoBrwG,EAAIwwG,oBCzBpBhmB,SAAW,GACf6lB,oBAAoB7vG,EAAI,CAACpC,EAAQqyG,EAAU16G,EAAI26G,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAeh9E,IACnB,IAASt3C,EAAI,EAAGA,EAAImuG,SAASvzG,OAAQoF,IAAK,CAGzC,IAFA,IAAKo0H,EAAU16G,EAAI26G,GAAYlmB,SAASnuG,GACpCu0H,GAAY,EACPnpH,EAAI,EAAGA,EAAIgpH,EAASx5H,OAAQwQ,MACpB,EAAXipH,GAAsBC,GAAgBD,IAAa7zG,OAAOgP,KAAKwkG,oBAAoB7vG,GAAGqwG,OAAO9kH,GAASskH,oBAAoB7vG,EAAEzU,GAAK0kH,EAAShpH,MAC9IgpH,EAASx1G,OAAOxT,IAAK,IAErBmpH,GAAY,EACTF,EAAWC,IAAcA,EAAeD,IAG7C,GAAGE,EAAW,CACbpmB,SAASvvF,OAAO5e,IAAK,GACrB,IAAI2K,EAAI+O,SACEvX,IAANwI,IAAiBoX,EAASpX,IAGhC,OAAOoX,EAvBNsyG,EAAWA,GAAY,EACvB,IAAI,IAAIr0H,EAAImuG,SAASvzG,OAAQoF,EAAI,GAAKmuG,SAASnuG,EAAI,GAAG,GAAKq0H,EAAUr0H,IAAKmuG,SAASnuG,GAAKmuG,SAASnuG,EAAI,GACrGmuG,SAASnuG,GAAK,CAACo0H,EAAU16G,EAAI26G,IEJ/BL,oBAAoBvwG,EAAI,CAACL,EAASiuC,KACjC,IAAI,IAAI3hD,KAAO2hD,EACX2iE,oBAAoB3qH,EAAEgoD,EAAY3hD,KAASskH,oBAAoB3qH,EAAE+Z,EAAS1T,IAC5E8Q,OAAOyB,eAAemB,EAAS1T,EAAK,CAAEyS,YAAY,EAAM3e,IAAK6tD,EAAW3hD,MCJ3EskH,oBAAoB1qH,EAAI,GAGxB0qH,oBAAoBnxH,EAAK4xH,GACjBt/G,QAAQuU,IAAIlJ,OAAOgP,KAAKwkG,oBAAoB1qH,GAAG6uC,QAAO,CAACu8E,EAAUhlH,KACvEskH,oBAAoB1qH,EAAEoG,GAAK+kH,EAASC,GAC7BA,IACL,KCNJV,oBAAoBxnH,EAAKioH,GAEjB,MAAQA,EAAU,IAAM,CAAC,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,GAAW,YCHrZT,oBAAoB3wG,EAAI,WACvB,GAA0B,iBAAfugB,WAAyB,OAAOA,WAC3C,IACC,OAAO/pC,MAAQ,IAAI6pB,SAAS,cAAb,GACd,MAAO7gB,GACR,GAAsB,iBAAXvJ,OAAqB,OAAOA,QALjB,GCAxB06H,oBAAoB3qH,EAAI,CAAC8pB,EAAKra,IAAU0H,OAAOP,UAAUuG,eAAehQ,KAAK2c,EAAKra,GLA9E4lG,WAAa,GACbqV,kBAAoB,sBAExBC,oBAAoBryG,EAAI,CAACxY,EAAKuK,EAAMhE,EAAK+kH,KACxC,GAAG/V,WAAWv1G,GAAQu1G,WAAWv1G,GAAKhI,KAAKuS,OAA3C,CACA,IAAI0qF,EAAQu2B,EACZ,QAAWxyH,IAARuN,EAEF,IADA,IAAI4kG,EAAUj8G,SAAS8O,qBAAqB,UACpCnH,EAAI,EAAGA,EAAIs0G,EAAQ15G,OAAQoF,IAAK,CACvC,IAAIiI,EAAIqsG,EAAQt0G,GAChB,GAAGiI,EAAE2V,aAAa,QAAUzU,GAAOlB,EAAE2V,aAAa,iBAAmBm2G,kBAAoBrkH,EAAK,CAAE0uF,EAASn2F,EAAG,OAG1Gm2F,IACHu2B,GAAa,GACbv2B,EAAS/lG,SAASic,cAAc,WAEzB01G,QAAU,QACjB5rB,EAAOgjB,QAAU,IACb4S,oBAAoBY,IACvBx2B,EAAO5pF,aAAa,QAASw/G,oBAAoBY,IAElDx2B,EAAO5pF,aAAa,eAAgBu/G,kBAAoBrkH,GACxD0uF,EAAOzzD,IAAMxhC,GAEdu1G,WAAWv1G,GAAO,CAACuK,GACnB,IAAImhH,EAAmB,CAACtgG,EAAMn4B,KAE7BgiG,EAAOurB,QAAUvrB,EAAO3rC,OAAS,KACjChuC,aAAa28F,GACb,IAAI0T,EAAUpW,WAAWv1G,GAIzB,UAHOu1G,WAAWv1G,GAClBi1F,EAAOrgF,YAAcqgF,EAAOrgF,WAAW+xB,YAAYsuD,GACnD02B,GAAWA,EAAQj1H,SAAS6Z,GAAQA,EAAGtd,KACpCm4B,EAAM,OAAOA,EAAKn4B,IAGlBglH,EAAU/9G,WAAWwxH,EAAiB7xF,KAAK,UAAM7gC,EAAW,CAAElD,KAAM,UAAW8H,OAAQq3F,IAAW,MACtGA,EAAOurB,QAAUkL,EAAiB7xF,KAAK,KAAMo7D,EAAOurB,SACpDvrB,EAAO3rC,OAASoiE,EAAiB7xF,KAAK,KAAMo7D,EAAO3rC,QACnDkiE,GAAct8H,SAAS2vC,KAAKpzB,YAAYwpF,KMvCzC41B,oBAAoBrpH,EAAKyY,IACH,oBAAXoY,QAA0BA,OAAOC,aAC1Cjb,OAAOyB,eAAemB,EAASoY,OAAOC,YAAa,CAAE98B,MAAO,WAE7D6hB,OAAOyB,eAAemB,EAAS,aAAc,CAAEzkB,OAAO,KCLvDq1H,oBAAoBnwG,EAAI,yBCKxB,IAAIkxG,EAAkB,CACrB,KAAM,EACN,KAAM,EACN,KAAM,GAGPf,oBAAoB1qH,EAAE8B,EAAI,CAACqpH,EAASC,KAElC,IAAIM,EAAqBhB,oBAAoB3qH,EAAE0rH,EAAiBN,GAAWM,EAAgBN,QAAWtyH,EACtG,GAA0B,IAAvB6yH,EAGF,GAAGA,EACFN,EAASvzH,KAAK6zH,EAAmB,QAC3B,CAGL,IAAI7sF,EAAU,IAAIhzB,SAAQ,CAACC,EAASk0B,IAAY0rF,EAAqBD,EAAgBN,GAAW,CAACr/G,EAASk0B,KAC1GorF,EAASvzH,KAAK6zH,EAAmB,GAAK7sF,GAGtC,IAAIh/B,EAAM6qH,oBAAoBnwG,EAAImwG,oBAAoBxnH,EAAEioH,GAEpDxqH,EAAQ,IAAIuX,MAgBhBwyG,oBAAoBryG,EAAExY,GAfF/M,IACnB,GAAG43H,oBAAoB3qH,EAAE0rH,EAAiBN,KAEf,KAD1BO,EAAqBD,EAAgBN,MACRM,EAAgBN,QAAWtyH,GACrD6yH,GAAoB,CACtB,IAAIC,EAAY74H,IAAyB,SAAfA,EAAM6C,KAAkB,UAAY7C,EAAM6C,MAChEi2H,EAAU94H,GAASA,EAAM2K,QAAU3K,EAAM2K,OAAO4jC,IACpD1gC,EAAMF,QAAU,iBAAmB0qH,EAAU,cAAgBQ,EAAY,KAAOC,EAAU,IAC1FjrH,EAAM/K,KAAO,iBACb+K,EAAMhL,KAAOg2H,EACbhrH,EAAM6oH,QAAUoC,EAChBF,EAAmB,GAAG/qH,MAIgB,SAAWwqH,EAASA,KAclET,oBAAoB7vG,EAAE/Y,EAAKqpH,GAA0C,IAA7BM,EAAgBN,GAGxD,IAAIU,EAAuB,CAACC,EAA4Br4H,KACvD,IAGIk3H,EAAUQ,GAHTL,EAAUiB,EAAaC,GAAWv4H,EAGhBiD,EAAI,EAC3B,GAAGo0H,EAASnjH,MAAMjS,GAAgC,IAAxB+1H,EAAgB/1H,KAAa,CACtD,IAAIi1H,KAAYoB,EACZrB,oBAAoB3qH,EAAEgsH,EAAapB,KACrCD,oBAAoBrwG,EAAEswG,GAAYoB,EAAYpB,IAGhD,GAAGqB,EAAS,IAAIvzG,EAASuzG,EAAQtB,qBAGlC,IADGoB,GAA4BA,EAA2Br4H,GACrDiD,EAAIo0H,EAASx5H,OAAQoF,IACzBy0H,EAAUL,EAASp0H,GAChBg0H,oBAAoB3qH,EAAE0rH,EAAiBN,IAAYM,EAAgBN,IACrEM,EAAgBN,GAAS,KAE1BM,EAAgBN,GAAW,EAE5B,OAAOT,oBAAoB7vG,EAAEpC,IAG1BwzG,EAAqB3xF,WAA2C,+BAAIA,WAA2C,gCAAK,GACxH2xF,EAAmB11H,QAAQs1H,EAAqBnyF,KAAK,KAAM,IAC3DuyF,EAAmBp0H,KAAOg0H,EAAqBnyF,KAAK,KAAMuyF,EAAmBp0H,KAAK6hC,KAAKuyF,QCpFvF,IAAIC,oBAAsBxB,oBAAoB7vG,OAAEhiB,EAAW,CAAC,OAAO,IAAO6xH,oBAAoB,QAC9FwB,oBAAsBxB,oBAAoB7vG,EAAEqxG","sources":["webpack://industrienspension/./IP.Mockup/js/barselsfonden.func.js","webpack://industrienspension/./IP.Mockup/js/charts/index.js","webpack://industrienspension/./IP.Mockup/js/charts/pension-forecast-graph.js","webpack://industrienspension/./IP.Mockup/js/core.func.js","webpack://industrienspension/./IP.Mockup/js/func/globals/App.flowguide.js","webpack://industrienspension/./IP.Mockup/js/func/globals/App.format.js","webpack://industrienspension/./IP.Mockup/js/func/globals/App.ipvalidationAuto.js","webpack://industrienspension/./IP.Mockup/js/func/globals/App.js","webpack://industrienspension/./IP.Mockup/js/func/globals/App.util.js","webpack://industrienspension/./IP.Mockup/js/func/globals/accordion.js","webpack://industrienspension/./IP.Mockup/js/func/globals/contactme.js","webpack://industrienspension/./IP.Mockup/js/func/globals/dialog.js","webpack://industrienspension/./IP.Mockup/js/func/globals/environment.js","webpack://industrienspension/./IP.Mockup/js/func/globals/feedback.js","webpack://industrienspension/./IP.Mockup/js/func/globals/fileuploader.js","webpack://industrienspension/./IP.Mockup/js/func/globals/format.js","webpack://industrienspension/./IP.Mockup/js/func/globals/guide.leave.js","webpack://industrienspension/./IP.Mockup/js/func/globals/index.js","webpack://industrienspension/./IP.Mockup/js/func/globals/lightbox.js","webpack://industrienspension/./IP.Mockup/js/func/globals/newsletter.signup.js","webpack://industrienspension/./IP.Mockup/js/func/globals/slider.range.js","webpack://industrienspension/./IP.Mockup/js/func/globals/table.expander.js","webpack://industrienspension/./IP.Mockup/js/func/globals/table.paged.js","webpack://industrienspension/./IP.Mockup/js/func/globals/table.sorter.js","webpack://industrienspension/./IP.Mockup/js/func/globals/tabs.js","webpack://industrienspension/./IP.Mockup/js/func/globals/toast.js","webpack://industrienspension/./IP.Mockup/js/func/pollyfil/es6.nodelist.foreach.js","webpack://industrienspension/./IP.Mockup/js/func/pollyfil/index.js","webpack://industrienspension/./IP.Mockup/js/func/pollyfil/node.classList.js","webpack://industrienspension/./IP.Mockup/js/func/search/index.js","webpack://industrienspension/./node_modules/aos/dist/aos.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/base-component.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/collapse.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/dom/data.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/dom/event-handler.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/dom/manipulator.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/dom/selector-engine.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/tab.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/util/config.js","webpack://industrienspension/./node_modules/bootstrap/js/dist/util/index.js","webpack://industrienspension/./node_modules/core-js/es/promise/index.js","webpack://industrienspension/./node_modules/core-js/internals/a-callable.js","webpack://industrienspension/./node_modules/core-js/internals/a-constructor.js","webpack://industrienspension/./node_modules/core-js/internals/a-possible-prototype.js","webpack://industrienspension/./node_modules/core-js/internals/add-to-unscopables.js","webpack://industrienspension/./node_modules/core-js/internals/an-instance.js","webpack://industrienspension/./node_modules/core-js/internals/an-object.js","webpack://industrienspension/./node_modules/core-js/internals/array-includes.js","webpack://industrienspension/./node_modules/core-js/internals/array-slice.js","webpack://industrienspension/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://industrienspension/./node_modules/core-js/internals/classof-raw.js","webpack://industrienspension/./node_modules/core-js/internals/classof.js","webpack://industrienspension/./node_modules/core-js/internals/clear-error-stack.js","webpack://industrienspension/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://industrienspension/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://industrienspension/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://industrienspension/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://industrienspension/./node_modules/core-js/internals/create-property-descriptor.js","webpack://industrienspension/./node_modules/core-js/internals/define-built-in.js","webpack://industrienspension/./node_modules/core-js/internals/define-global-property.js","webpack://industrienspension/./node_modules/core-js/internals/define-iterator.js","webpack://industrienspension/./node_modules/core-js/internals/descriptors.js","webpack://industrienspension/./node_modules/core-js/internals/document-create-element.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-browser.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-deno.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-ios.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-node.js","webpack://industrienspension/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://industrienspension/./node_modules/core-js/internals/engine-user-agent.js","webpack://industrienspension/./node_modules/core-js/internals/engine-v8-version.js","webpack://industrienspension/./node_modules/core-js/internals/enum-bug-keys.js","webpack://industrienspension/./node_modules/core-js/internals/error-stack-installable.js","webpack://industrienspension/./node_modules/core-js/internals/export.js","webpack://industrienspension/./node_modules/core-js/internals/fails.js","webpack://industrienspension/./node_modules/core-js/internals/function-apply.js","webpack://industrienspension/./node_modules/core-js/internals/function-bind-context.js","webpack://industrienspension/./node_modules/core-js/internals/function-bind-native.js","webpack://industrienspension/./node_modules/core-js/internals/function-call.js","webpack://industrienspension/./node_modules/core-js/internals/function-name.js","webpack://industrienspension/./node_modules/core-js/internals/function-uncurry-this.js","webpack://industrienspension/./node_modules/core-js/internals/get-built-in.js","webpack://industrienspension/./node_modules/core-js/internals/get-iterator-method.js","webpack://industrienspension/./node_modules/core-js/internals/get-iterator.js","webpack://industrienspension/./node_modules/core-js/internals/get-method.js","webpack://industrienspension/./node_modules/core-js/internals/global.js","webpack://industrienspension/./node_modules/core-js/internals/has-own-property.js","webpack://industrienspension/./node_modules/core-js/internals/hidden-keys.js","webpack://industrienspension/./node_modules/core-js/internals/host-report-errors.js","webpack://industrienspension/./node_modules/core-js/internals/html.js","webpack://industrienspension/./node_modules/core-js/internals/ie8-dom-define.js","webpack://industrienspension/./node_modules/core-js/internals/indexed-object.js","webpack://industrienspension/./node_modules/core-js/internals/inspect-source.js","webpack://industrienspension/./node_modules/core-js/internals/install-error-cause.js","webpack://industrienspension/./node_modules/core-js/internals/internal-state.js","webpack://industrienspension/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://industrienspension/./node_modules/core-js/internals/is-callable.js","webpack://industrienspension/./node_modules/core-js/internals/is-constructor.js","webpack://industrienspension/./node_modules/core-js/internals/is-forced.js","webpack://industrienspension/./node_modules/core-js/internals/is-object.js","webpack://industrienspension/./node_modules/core-js/internals/is-pure.js","webpack://industrienspension/./node_modules/core-js/internals/is-symbol.js","webpack://industrienspension/./node_modules/core-js/internals/iterate.js","webpack://industrienspension/./node_modules/core-js/internals/iterator-close.js","webpack://industrienspension/./node_modules/core-js/internals/iterators-core.js","webpack://industrienspension/./node_modules/core-js/internals/iterators.js","webpack://industrienspension/./node_modules/core-js/internals/length-of-array-like.js","webpack://industrienspension/./node_modules/core-js/internals/make-built-in.js","webpack://industrienspension/./node_modules/core-js/internals/math-trunc.js","webpack://industrienspension/./node_modules/core-js/internals/microtask.js","webpack://industrienspension/./node_modules/core-js/internals/native-symbol.js","webpack://industrienspension/./node_modules/core-js/internals/native-weak-map.js","webpack://industrienspension/./node_modules/core-js/internals/new-promise-capability.js","webpack://industrienspension/./node_modules/core-js/internals/normalize-string-argument.js","webpack://industrienspension/./node_modules/core-js/internals/object-create.js","webpack://industrienspension/./node_modules/core-js/internals/object-define-properties.js","webpack://industrienspension/./node_modules/core-js/internals/object-define-property.js","webpack://industrienspension/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://industrienspension/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://industrienspension/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://industrienspension/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://industrienspension/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://industrienspension/./node_modules/core-js/internals/object-keys-internal.js","webpack://industrienspension/./node_modules/core-js/internals/object-keys.js","webpack://industrienspension/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://industrienspension/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://industrienspension/./node_modules/core-js/internals/object-to-string.js","webpack://industrienspension/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://industrienspension/./node_modules/core-js/internals/own-keys.js","webpack://industrienspension/./node_modules/core-js/internals/path.js","webpack://industrienspension/./node_modules/core-js/internals/perform.js","webpack://industrienspension/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://industrienspension/./node_modules/core-js/internals/promise-native-constructor.js","webpack://industrienspension/./node_modules/core-js/internals/promise-resolve.js","webpack://industrienspension/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://industrienspension/./node_modules/core-js/internals/queue.js","webpack://industrienspension/./node_modules/core-js/internals/require-object-coercible.js","webpack://industrienspension/./node_modules/core-js/internals/set-species.js","webpack://industrienspension/./node_modules/core-js/internals/set-to-string-tag.js","webpack://industrienspension/./node_modules/core-js/internals/shared-key.js","webpack://industrienspension/./node_modules/core-js/internals/shared-store.js","webpack://industrienspension/./node_modules/core-js/internals/shared.js","webpack://industrienspension/./node_modules/core-js/internals/species-constructor.js","webpack://industrienspension/./node_modules/core-js/internals/string-multibyte.js","webpack://industrienspension/./node_modules/core-js/internals/task.js","webpack://industrienspension/./node_modules/core-js/internals/to-absolute-index.js","webpack://industrienspension/./node_modules/core-js/internals/to-indexed-object.js","webpack://industrienspension/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://industrienspension/./node_modules/core-js/internals/to-length.js","webpack://industrienspension/./node_modules/core-js/internals/to-object.js","webpack://industrienspension/./node_modules/core-js/internals/to-primitive.js","webpack://industrienspension/./node_modules/core-js/internals/to-property-key.js","webpack://industrienspension/./node_modules/core-js/internals/to-string-tag-support.js","webpack://industrienspension/./node_modules/core-js/internals/to-string.js","webpack://industrienspension/./node_modules/core-js/internals/try-to-string.js","webpack://industrienspension/./node_modules/core-js/internals/uid.js","webpack://industrienspension/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://industrienspension/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://industrienspension/./node_modules/core-js/internals/validate-arguments-length.js","webpack://industrienspension/./node_modules/core-js/internals/well-known-symbol.js","webpack://industrienspension/./node_modules/core-js/modules/es.aggregate-error.constructor.js","webpack://industrienspension/./node_modules/core-js/modules/es.aggregate-error.js","webpack://industrienspension/./node_modules/core-js/modules/es.array.includes.js","webpack://industrienspension/./node_modules/core-js/modules/es.array.iterator.js","webpack://industrienspension/./node_modules/core-js/modules/es.object.to-string.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.all.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.any.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.catch.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.constructor.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.finally.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.race.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.reject.js","webpack://industrienspension/./node_modules/core-js/modules/es.promise.resolve.js","webpack://industrienspension/./node_modules/core-js/modules/es.string.iterator.js","webpack://industrienspension/./node_modules/expose-loader/dist/runtime/getGlobalThis.js","webpack://industrienspension/./node_modules/highcharts/highcharts.js","webpack://industrienspension/./node_modules/highcharts/modules/data.js","webpack://industrienspension/./node_modules/highcharts/modules/drilldown.js","webpack://industrienspension/./node_modules/jquery/dist/jquery.js","webpack://industrienspension/./node_modules/process/browser.js","webpack://industrienspension/./node_modules/svg4everybody/dist/svg4everybody.js","webpack://industrienspension/./node_modules/tslib/tslib.es6.js","webpack://industrienspension/./node_modules/whatwg-fetch/fetch.js","webpack://industrienspension/./node_modules/jquery/dist/jquery-exposed.js","webpack://industrienspension/./node_modules/highcharts/highcharts-exposed.js","webpack://industrienspension/./IP.Mockup/js/func/globals/modal.ts","webpack://industrienspension/webpack/bootstrap","webpack://industrienspension/webpack/runtime/chunk loaded","webpack://industrienspension/webpack/runtime/load script","webpack://industrienspension/webpack/runtime/define property getters","webpack://industrienspension/webpack/runtime/ensure chunk","webpack://industrienspension/webpack/runtime/get javascript chunk filename","webpack://industrienspension/webpack/runtime/global","webpack://industrienspension/webpack/runtime/hasOwnProperty shorthand","webpack://industrienspension/webpack/runtime/make namespace object","webpack://industrienspension/webpack/runtime/publicPath","webpack://industrienspension/webpack/runtime/jsonp chunk loading","webpack://industrienspension/webpack/startup"],"sourcesContent":["import { core } from '@mockup/core.func';\nimport 'bootstrap/js/dist/collapse';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n core.init();\n});\n","import Highcharts from 'highcharts';\nimport Data from 'highcharts/modules/data';\nimport Drilldown from 'highcharts/modules/drilldown';\nimport pensionForecastGraph from './pension-forecast-graph';\nimport { App } from '../func/globals/App';\n\nData(Highcharts);\nDrilldown(Highcharts);\n\nApp.pensionForecastGraph = pensionForecastGraph;\n","import $ from 'jquery';\r\n\r\nconst defaults = {\r\n credits: {\r\n enabled: false\r\n },\r\n drilldown: false,\r\n chart: {\r\n style: {\r\n fontFamily: 'proximanova-regular'\r\n },\r\n height: window.innerWidth <= 767 ? 220 : null,\r\n marginTop: 40,\r\n marginRight: 30,\r\n backgroundColor: 'transparent',\r\n events: {\r\n redraw: function () {\r\n var chart = this;\r\n var offset = chart.series[0].pointXOffset;\r\n var $startPoint = $(chart.container).parents('.highcharts-container').find('.highcharts-startpoint');\r\n\r\n $startPoint.css({\r\n top: chart.yAxis[0].toPixels(0),\r\n left: chart.xAxis[0].toPixels(1) + offset\r\n });\r\n\r\n if (chartRanges.length) {\r\n ranges(chart, chartRanges);\r\n }\r\n }\r\n }\r\n },\r\n title: {\r\n text: null\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n enabled: true,\r\n shared: true,\r\n backgroundColor: null,\r\n borderWidth: 0,\r\n shadow: false,\r\n useHTML: true,\r\n positioner: function (boxWidth, boxHeight, point) {\r\n return { x: point.plotX - boxWidth / 2 + 70, y: -1000000 };\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n cursor: 'pointer',\r\n stacking: 'normal',\r\n pointPadding: -0.1,\r\n pointRange: 1,\r\n events: {\r\n click: plotClick\r\n },\r\n states: {\r\n hover: {\r\n cursor: 'pointer'\r\n },\r\n select: {\r\n color: null,\r\n borderColor: null\r\n }\r\n }\r\n },\r\n line: {\r\n enableMouseTracking: false,\r\n marker: {\r\n enabled: false\r\n },\r\n dashStyle: 'ShortDot'\r\n }\r\n },\r\n dataStartIndex: 0,\r\n xAxis: {\r\n title: {\r\n text: 'År',\r\n align: 'high',\r\n offset: 0,\r\n rotation: 0,\r\n x: 20,\r\n y: 7,\r\n style: {\r\n fontWeight: 'bold',\r\n color: '#333333',\r\n fontSize: '11px',\r\n overflow: 'visible'\r\n }\r\n },\r\n categories: [],\r\n lineColor: '#ececec',\r\n labels: {\r\n enabled: true,\r\n useHTML: true,\r\n autoRotation: false,\r\n style: {\r\n overflow: 'visible'\r\n }\r\n },\r\n tickColor: 'transparent'\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'kr.',\r\n align: 'high',\r\n offset: 0,\r\n rotation: 0,\r\n y: -18,\r\n x: -15,\r\n useHTML: true,\r\n style: {\r\n fontWeight: 'bold',\r\n color: '#333333',\r\n fontSize: '14px',\r\n width: '20px',\r\n overflow: 'hidden'\r\n }\r\n },\r\n labels: {\r\n formatter: function () {\r\n return ('' + this.value).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, function ($1) {\r\n return $1 + '.';\r\n });\r\n },\r\n style: {\r\n fontWeight: 'bold',\r\n fontSize: '10px'\r\n }\r\n },\r\n gridLineColor: '#ececec',\r\n lineWidth: 1,\r\n lineColor: '#ececec'\r\n },\r\n series: [\r\n {\r\n id: 'Payout',\r\n type: 'column',\r\n name: 'Udbetaling',\r\n color: '#D0E5CD',\r\n data: []\r\n },\r\n {\r\n id: 'AoLoebende',\r\n type: 'column',\r\n name: 'AlLoebende',\r\n color: '#A0CB9B',\r\n data: []\r\n },\r\n {\r\n id: 'Loebende',\r\n type: 'column',\r\n name: 'Ekstra udbetaling',\r\n color: '#72B269',\r\n data: []\r\n },\r\n {\r\n id: 'Low',\r\n type: 'line',\r\n name: 'Lavere end forventet',\r\n color: '#eb5656',\r\n data: []\r\n },\r\n {\r\n id: 'High',\r\n type: 'line',\r\n name: 'Højere end forventet',\r\n color: '#1877a3',\r\n data: []\r\n }\r\n ],\r\n responsive: {\r\n rules: [\r\n {\r\n condition: {\r\n maxWidth: 500\r\n },\r\n chartOptions: {\r\n chart: {\r\n width: 650\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n};\r\n\r\nlet scope = null;\r\nlet $tooltip = null;\r\n\r\nfunction onChartLoad(scope, chart) {\r\n $(scope).removeClass('loading');\r\n}\r\n\r\nfunction init(chartScope, chartData = {}) {\r\n var options = $.extend(true, chartData, defaults);\r\n scope = chartScope;\r\n\r\n const chartHeight = $(scope).attr('data-chart-height');\r\n if (chartHeight) {\r\n options.chart.height = chartHeight;\r\n }\r\n\r\n $(scope)\r\n .find('.highcharts-container-graph')\r\n .highcharts(options, (chart) => {\r\n onChartLoad(scope, chart);\r\n\r\n setTimeout(function () {\r\n $(window).trigger('resize');\r\n }, 1);\r\n\r\n customTooltips(chartScope, chart);\r\n\r\n $(window).resize(function () {\r\n chart.redraw();\r\n });\r\n\r\n $tooltip = $(scope).find('.highcharts-tooltip');\r\n $(window, document).on('click.tooltip', function () {\r\n $tooltip = $(scope).find('.highcharts-tooltip');\r\n $tooltip.addClass('hide');\r\n\r\n $('.highcharts-point-click').removeClass('highcharts-point-click');\r\n $(chart.container).removeClass('highchart-plotclick');\r\n });\r\n });\r\n}\r\n\r\nconst API = (scope) => $(scope).find('.highcharts-container-graph').highcharts();\r\nconst destroy = (scope) => API(scope).destroy();\r\n\r\nfunction plotClick(event) {\r\n if (event.point.x === 1) {\r\n $('.highcharts-series-0').find('.highcharts-point:first-child').addClass('highcharts-point-click');\r\n $('.highcharts-series-1').find('.highcharts-point:first-child').addClass('highcharts-point-click');\r\n } else {\r\n $(event.point.graphic.element).addClass('highcharts-point-click');\r\n }\r\n\r\n $tooltip = $('.highcharts-tooltip.tooltip-id' + event.point.x);\r\n\r\n $(this.chart.container).addClass('highchart-plotclick');\r\n const tooltipWidth = parseInt($tooltip.css('maxWidth'), 10);\r\n const airInPx = 5;\r\n const chartPlotBox = this.chart.plotBox;\r\n\r\n let x = event.point.shapeArgs.x + chartPlotBox.x;\r\n if (event.point.index <= event.point.series.data.length / 2) {\r\n x = x + event.point.shapeArgs.width + airInPx;\r\n } else {\r\n x = x - tooltipWidth - airInPx;\r\n }\r\n\r\n event.stopPropagation();\r\n if (window.innerWidth <= 767) {\r\n $tooltip.removeClass('hide').css({\r\n width: '100%',\r\n maxWidth: '100%',\r\n top: 135,\r\n left: 0\r\n });\r\n } else {\r\n $tooltip.removeClass('hide');\r\n\r\n let top = event.point.shapeArgs.y + chartPlotBox.y - $tooltip.outerHeight() / 2;\r\n\r\n if (window.innerWidth <= 768) {\r\n top = top + 115;\r\n }\r\n\r\n $tooltip.css({\r\n top: top,\r\n left: x\r\n });\r\n }\r\n}\r\n\r\nlet customLabels = [];\r\nlet chartRanges = [];\r\n\r\nfunction resetCustomLabels(labels) {\r\n if (labels.length) {\r\n labels.forEach((path) => path.destroy());\r\n }\r\n\r\n customLabels = [];\r\n}\r\n\r\nfunction update(series) {\r\n $.each(series, (id, data) => {\r\n API(scope).get(id).setData(data, false);\r\n });\r\n\r\n if (chartRanges) {\r\n chartRanges = [];\r\n resetCustomLabels(customLabels);\r\n }\r\n\r\n API(scope).redraw();\r\n}\r\n\r\nfunction ranges(chart, data) {\r\n $(chart.container).find('.highcharts-axis-labels.highcharts-xaxis-labels').addClass('hide');\r\n\r\n resetCustomLabels(customLabels);\r\n chartRanges = data;\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const beforeafterspace = 0.4;\r\n const dashlength = 25;\r\n const rangeSpacer = 5;\r\n const spaceFromChart = 5;\r\n const Y = chart.chartHeight - 38 + spaceFromChart;\r\n let line;\r\n let dots;\r\n let text;\r\n let rangeFrom = undefined;\r\n let rangeTo = undefined;\r\n let color = '#333';\r\n\r\n if (data[i].length === 3) {\r\n rangeFrom = data[i][0];\r\n rangeTo = data[i][1];\r\n text = data[i][2];\r\n } else {\r\n rangeFrom = data[i][0];\r\n rangeTo = data[i][0];\r\n text = data[i][1];\r\n color = 'transparent';\r\n }\r\n\r\n const startX = Highcharts.charts[0].xAxis[0].toPixels(rangeFrom - beforeafterspace);\r\n const endX = Highcharts.charts[0].xAxis[0].toPixels(rangeTo + beforeafterspace);\r\n\r\n if (!text.endsWith('og frem')) {\r\n line = chart.renderer\r\n .path(['M', startX, Y, 'L', startX, Y + rangeSpacer, 'L', endX, Y + rangeSpacer, 'L', endX, Y])\r\n .attr({ 'stroke-width': 1, stroke: color })\r\n .add();\r\n\r\n customLabels.push(line);\r\n } else {\r\n line = chart.renderer\r\n .path(['M', startX, Y, 'L', startX, Y + rangeSpacer, 'L', endX - dashlength, Y + rangeSpacer])\r\n .attr({ 'stroke-width': 1, stroke: color })\r\n .add();\r\n dots = chart.renderer\r\n .path(['M', endX - dashlength, Y + rangeSpacer, 'L', endX, Y + rangeSpacer])\r\n .attr({ 'stroke-width': 1, stroke: color, dashstyle: 'Dot' })\r\n .add();\r\n\r\n customLabels.push(line);\r\n customLabels.push(dots);\r\n }\r\n\r\n const lines = line.getBBox();\r\n const rangeText = chart.renderer\r\n .text('' + text + '', 0, 0, true)\r\n .attr({\r\n color: 'black',\r\n fill: '#FFFFEF'\r\n })\r\n .add();\r\n\r\n const txt = rangeText.getBBox();\r\n rangeText.attr({ x: lines.x + lines.width / 2 - txt.width / 2, y: Y + spaceFromChart + txt.height / 2 });\r\n customLabels.push(rangeText);\r\n }\r\n}\r\n\r\nfunction customTooltips(scope, chart) {\r\n var tips = $(scope).find('.prognose-tip');\r\n var active = 1;\r\n var counter = 1;\r\n\r\n if (!tips.length) {\r\n return;\r\n } else {\r\n tips.each(function () {\r\n $(this).data('tipOrder', counter);\r\n counter++;\r\n });\r\n }\r\n\r\n $(scope).find('.btn.prognose-tips:not(.has-no-tip)').show();\r\n\r\n tips.on('click', '.js-prognose-tip-close', function (e) {\r\n e.preventDefault();\r\n\r\n $(scope).find('.btn.prognose-tips:not(.has-no-tip)').show();\r\n tips.each(function () {\r\n $(this).fadeOut();\r\n });\r\n });\r\n\r\n tips.on('click', '.js-prognose-tip-next', function (e) {\r\n e.preventDefault();\r\n\r\n hide(active, tips);\r\n active++;\r\n show(active, tips);\r\n });\r\n\r\n $(scope)\r\n .find('.btn.prognose-tips:not(.has-no-tip)')\r\n .on('click', function (e) {\r\n e.preventDefault();\r\n\r\n $(this).hide();\r\n active = 1;\r\n show(active, tips);\r\n });\r\n\r\n function show(tip, tips) {\r\n var tipElem = tips.filter(function () {\r\n return $(this).data('tipOrder') == tip;\r\n });\r\n\r\n if (tipElem.data('tipinactive') != null) {\r\n if (tips.length > tip) {\r\n tip++;\r\n show(tip, tips);\r\n } else {\r\n $('.js-prognose-tip-close').trigger('click'); // close\r\n }\r\n } else {\r\n tipElem.fadeIn();\r\n if (tipElem.data('columnserienr') !== '' && tipElem.data('columnserienr') !== undefined) {\r\n const serieNr = parseInt(tipElem.data('columnserienr'), 10);\r\n const data = chart.series[serieNr].data;\r\n const tipHeight = tipElem.find('.prognose-tip-content').outerHeight() + 5;\r\n const leftSub = 25;\r\n let tipIndex = tipElem.data('columnnr');\r\n\r\n if (tipIndex < 0 || tipIndex > data.length) {\r\n return;\r\n } else if (tipIndex >= data.length) {\r\n tipIndex = data.length - 1;\r\n }\r\n\r\n let yPoints = data[tipIndex].stackY;\r\n const xPoints = data[tipIndex].x;\r\n\r\n if (serieNr > 1) {\r\n yPoints = data[tipIndex].y;\r\n }\r\n\r\n if (tipIndex >= 0) {\r\n tipElem.find('.prognose-tip-content').css({\r\n top: chart.yAxis[0].toPixels(yPoints) - (tipHeight + 7) + 'px',\r\n left: chart.xAxis[0].toPixels(xPoints) - leftSub + 'px'\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n function hide(tip, tips) {\r\n tips.filter(function () {\r\n return $(this).data('tipOrder') == tip;\r\n }).fadeOut();\r\n }\r\n}\r\n\r\nconst pensionForecastGraph = {\r\n defaults,\r\n init,\r\n API,\r\n destroy,\r\n update,\r\n ranges,\r\n customTooltips\r\n};\r\n\r\npensionForecastGraph.init('.box-prognose-new');\r\n\r\nexport default pensionForecastGraph;\r\n","import '@mockup/func/pollyfil';\nimport '@mockup/func/globals';\n\nimport $ from 'jquery';\nimport svg4everybody from 'svg4everybody';\nimport aos from 'aos';\n\nimport { App } from '@mockup/func/globals/App';\nimport '@mockup/func/globals/App.format';\nimport '@mockup/func/globals/App.flowguide';\nimport '@mockup/func/globals/App.ipvalidationAuto';\n\nimport Collapse from 'bootstrap/js/dist/collapse';\nimport Tab from 'bootstrap/js/dist/tab';\n\nimport env from '@mockup/func/globals/environment';\nimport tableSorter from '@mockup/func/globals/table.sorter';\nimport tableExpander from '@mockup/func/globals/table.expander';\nimport newsletterSignup from './func/globals/newsletter.signup';\nimport contactme from './func/globals/contactme';\nimport feedback from './func/globals/feedback';\nimport pagedtable from './func/globals/table.paged';\nimport accordion from './func/globals/accordion';\nimport lightbox from './func/globals/lightbox';\nimport leaveGuide from './func/globals/guide.leave';\nimport tabs from './func/globals/tabs';\nimport rangeSlider from './func/globals/slider.range';\nimport format from './func/globals/format'; // used!\nimport fileUploader from './func/globals/fileuploader';\nimport siteSearch from './func/search';\nimport Dialog from './func/globals/dialog';\nimport Modal from './func/globals/modal';\nimport Toast from './func/globals/toast';\n\nglobal.bootstrap = window.bootstrap = { Collapse, Tab };\nwindow.alertify = window.dialog = new Dialog({\n labels: {\n OK: 'Ok',\n CANCEL: 'Annuller'\n }\n});\nwindow.modal = new Modal();\nwindow.toast = new Toast();\n\nif (env.isDevelopment) {\n // eslint-disable-next-line no-console\n console.log(\n `%cRunning%c${env.NODE_ENV}`,\n 'font-size:1.1rem;background:#000;color:#fff;border-radius:3px 0 0 3px;padding:0 8px;text-transform:uppercase;',\n 'font-size:1.1rem;background:#de3000;color:#fff;border-radius:0 3px 3px 0;padding:0 8px;text-transform:uppercase;'\n ); // eslint-disable-line no-console\n}\n\n// change className of html from .noJS to .hasJS.\n(function (el) {\n el.className = el.className.replace('no-js', 'has-js');\n})(document.documentElement);\n\nexport const core = {\n // App.common.init runs on all pages\n init: function () {\n svg4everybody();\n\n aos.init({\n once: true,\n offset: 200,\n duration: 500\n });\n\n App.format.init();\n\n lightbox.init();\n tabs.init();\n accordion.init();\n feedback.init();\n newsletterSignup.init();\n contactme.init();\n leaveGuide.init();\n tableExpander.init();\n pagedtable.init();\n fileUploader.init();\n tableSorter.init();\n siteSearch.init();\n\n rangeSlider.init();\n\n // Sitecore forms\n if (document.querySelector('.ip-sitecore-forms')){\n import('@mockup/func/sitecoreForms/index').then((module) => new module.default());\n }\n // Header\n if (document.querySelector('.site-header')){\n import('@mockup/func/header/index').then((module) => new module.default());\n }\n\n if (document.querySelector('.js-contact-banner')){\n import('@mockup/func/contact-banner/index').then((module) => new module.default());\n }\n\n // viemoVideo\n if (document.getElementById('hero-video')) {\n window.addEventListener('CookiebotOnAccept', function (_) {\n if (Cookiebot.consent.marketing) {\n import('@mockup/func/viemoVideo/index').then((module) => new module.default());\n }\n });\n }\n\n $(window)\n .on('hashchange', function () {\n // Timeout hack, to insure that the code i running last at que pipeline\n //\n setTimeout(function () {\n var hashTabVal = hash.get('tab');\n if (!$('.tabs .tabs-list-item a').eq(hashTabVal).hasClass('active')) {\n $('.tabs .tabs-list-item a').eq(hashTabVal).trigger('click');\n }\n\n var hashAccordionVal = hash.get('accordion');\n if (\n !$('.accordion .accordion-header > a[href=\"#' + hashAccordionVal + '\"]')\n .parents('.accordion')\n .hasClass('open')\n ) {\n $('.accordion .accordion-header > a[href=\"#' + hashAccordionVal + '\"]').trigger('click');\n }\n }, 1);\n })\n .on('click', function (e) {\n if (\n !$(e.target).hasClass('table-flex-elm--filter-header') &&\n !$(e.target).parents('.table-flex-elm--filter-header ').length\n ) {\n $('.table-flex-elm--filter-sorting ').removeClass('show');\n }\n });\n\n // Scrolls first input-item into view, with validation error, when a button is clicked\n for (const btn of [...document.getElementsByClassName('btn')]) {\n // eslint-disable-next-line no-loop-func\n btn.addEventListener('click', () => {\n // eslint-disable-next-line no-unused-expressions\n const firstError = [...document.getElementsByTagName('input')].find((i) =>\n i.closest('.fu')?.classList.contains('error')\n );\n if (firstError) {\n $('html, body').animate({ scrollTop: $(firstError).offset().top - 20 }, 800);\n }\n });\n }\n }\n};\n","import { App } from './App';\n\nclass FlowGuid {\n constructor() {\n this._guideFlowForm = '';\n this._targetUrl = '';\n this._preNextCallBackOk = true;\n this._preNextCallBackCount = 0;\n this._preNextExecuteFormStarted = false;\n this._guideFlowFormSettings = {};\n // init auto postback functionalitet\n this._guideFlowForm = document.querySelector('form.jsGuideFlowForm');\n\n // is Auto-flow-post form \"jsGuideFlowForm\"\n if (this._guideFlowForm) {\n const s = this._guideFlowForm.dataset.guideflowsetting;\n this.InitGuideFlowFormSettings(s);\n window.onPageLeaveExecute = window.onPageLeaveExecute || new Array();\n window.onPageLeaveExecute.push(this.PostGuideFlowForm);\n }\n }\n\n PreNextCallBack(step, ok, response, sender) {\n const itSelf = App.flowGuide;\n itSelf._preNextCallBackCount--;\n\n if (!ok) itSelf._preNextCallBackOk = false;\n if (itSelf._preNextCallBackCount < 1) {\n if (itSelf._preNextCallBackOk) {\n window.location.href = itSelf._targetUrl;\n return;\n }\n itSelf.SpinnerDisabler();\n }\n }\n\n // called from pre/next buttons\n preNextExecuteForm(step, url) {\n const itSelf = App.flowGuide;\n itSelf._targetUrl = url;\n\n var infobox = document.getElementById('guidePreNextErrInfoBox');\n infobox.classList.add('hide');\n\n itSelf.SpinnerEnabler(step);\n\n var o = window.onPageLeaveExecute;\n if (!o || typeof o == 'undefined' || o.length < 1) {\n itSelf.PreNextCallBack(step, true, {}, 'PreNextExecuteForm no onPageLeaveExecute');\n return;\n }\n itSelf._preNextCallBackCount = o.length;\n itSelf._preNextCallBackOk = true;\n o.forEach(function (f) { f(step, itSelf.PreNextCallBack); });\n }\n\n // Auto-flow-post - post form (called from PostGuideFlowForm)\n PostFormData(data, url, okCallback, errorCallback) {\n fetch(url, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n body: data\n }).then(response => response.json()).then(json => {\n if (json.ok) {\n okCallback('ok', json);\n } else {\n errorCallback(json.message, json);\n }\n }).catch(error => {\n errorCallback(error.Message);\n return;\n });\n }\n\n SpinnerEnabler(step) {\n const aa = step == 1 ? 'is-loading' : 'fade';\n const bb = step == -1 ? 'is-loading' : 'fade';\n const a = document.getElementById('guide-next-button');\n if (a) a.classList.add(aa);\n const b = document.getElementById('guide-prev-button');\n if (b) b.classList.add(bb);\n }\n\n SpinnerDisabler(step) {\n const a = document.getElementById('guide-next-button');\n if (a) {\n a.classList.remove('is-loading');\n a.classList.remove('fade');\n }\n const b = document.getElementById('guide-prev-button');\n if (b) {\n b.classList.remove('is-loading');\n b.classList.remove('fade');\n }\n }\n\n // Auto-flow-post execute on next/pre and executes prePostScript and PostFormData (if existes)\n PostGuideFlowForm(step, callback) {\n const itSelf = App.flowGuide;\n const url = itSelf._guideFlowFormSettings.url;\n\n if (step == -1 && itSelf._guideFlowFormSettings.doPostOnPrev == false) {\n App.flowGuide.PostGuideFlowFormCallback(callback, -1, true, 'ok');\n return;\n }\n\n if (itSelf._guideFlowFormSettings.prePostScript) {\n const r = eval(itSelf._guideFlowFormSettings.prePostScript); // eslint-disable-line\n if (!r) {\n callback(step, false, '', 'PostGuideFlowForm !r');\n return;\n }\n }\n\n var data = $(itSelf._guideFlowForm).serialize();\n itSelf.PostFormData(data, url, (t) => App.flowGuide.PostGuideFlowFormCallback(callback, step, true, 'ok'), (t) => App.flowGuide.PostGuideFlowFormCallback(callback, step, false, t));\n }\n\n // Auto-flow-post post back function. Called from PostFormData\n PostGuideFlowFormCallback(callback, step, ok, msg, json) {\n if (!ok) {\n var infobox = document.getElementById('guidePreNextErrInfoBox');\n var infoboxText = document.getElementById('guidePreNextErrText');\n infoboxText.innerText = msg || '';\n infobox.classList.remove('hide');\n }\n callback(step, ok, msg);\n }\n\n InitGuideFlowFormSettings(stringJson) {\n const j = JSON.parse(stringJson);\n const t = this._guideFlowFormSettings;\n\n t.url = j.url || '';\n t.prePostScript = j.prePostScript || '';\n t.doPostOnPrev = j.doPostOnPrev || false;\n }\n}\n\nApp.flowGuide = new FlowGuid();\n","import { App } from './App';\n\nApp.format = {\n init() {\n if (document.querySelectorAll('.input-calendar:not(.input-calendar-no-format)').length) App.format.date();\n if (document.querySelectorAll('.input-currency').length) App.format.currency();\n if (document.querySelectorAll('.input-currenct-no-decimal').length) App.format.currencyWithoutDecimal();\n if (document.querySelectorAll('.input-number').length) App.format.number();\n },\n date() {\n document.querySelectorAll('.input-calendar:not(.input-calendar-no-format)').forEach(input => {\n input.cleave = new Cleave(input, {\n date: true,\n datePattern: ['d', 'm', 'Y'],\n delimiter: '.'\n });\n });\n },\n currency() {\n document.querySelectorAll('.input-currency').forEach(input => {\n input.cleave = new Cleave(input, {\n numeral: true,\n numeralDecimalMark: ',',\n delimiter: '.'\n });\n });\n },\n currencyWithoutDecimal() {\n document.querySelectorAll('.input-currenct-no-decimal').forEach(input => {\n input.cleave = new Cleave(input, {\n numeral: true,\n numeralDecimalMark: ',',\n delimiter: '.',\n numeralDecimalScale: 0\n });\n });\n },\n number() {\n document.querySelectorAll('.input-number').forEach(input => {\n input.cleave = new Cleave(input, {\n numeral: true,\n numeralDecimalMark: ',',\n delimiter: ''\n });\n });\n }\n};\n","import { App } from './App';\n\n// ipvalidationAuto how to use:\n// add the class \"ipvalidateenabled\" to your html input tag\n// add attributes like required, min=\"\", max=22\n// add attribute ipvalidate=\"[json]\" for more options\n// call App.ipvalidationAuto.Init\n// Done\nApp.ipvalidationAuto = new function () {\n var self = this;\n\n this.Setting = {};\n this.init = function (ipvalidationAutoSettings) {\n $('.ipvalidateenabled').on('blur', function (evnt) {\n if (self.IPValidate(this)) {\n self.IPValidateFormat(this);\n }\n }).on('focus', function (evnt) {\n setValidationOk(this);\n }).on('input', function (evnt) {\n self.IPValidateKeypress(evnt, this);\n });\n };\n\n this.isHidden = elm => (elm.offsetParent === null);\n\n this.IPValidateElements = function (selectorString) {\n let ok = true;\n $(selectorString).each(function (index) {\n var me = $(this);\n if (!self.IPValidate(this, true)) {\n ok = false;\n }\n });\n\n return ok;\n };\n\n\n this.IPValidateElementsScrollToErr = function (selectorString) {\n let ok = true;\n let frst = null;\n $(selectorString).each(function (index) {\n if (!self.IPValidate(this, true)) {\n if (ok) frst = this;\n ok = false;\n }\n });\n\n if (!ok) {\n self.scrollToElm(frst);\n }\n\n return ok;\n };\n\n this.scrollToElm = function(elm) {\n $('html, body').animate({ scrollTop: $(elm).offset().top - 20 }, 800);\n };\n\n this.IPValidateEnter = (evnt, ths) => setValidationOk(ths);\n\n this.IPValidateKeypress = function (evnt, ths) {\n var ipValidateObj = getIPValidateObj(ths);\n var prvnt = false;\n\n if (ipValidateObj.type == 'integer') prvnt = (evnt.which < 48 || evnt.which > 57);\n if (this.type == 'number' || ipValidateObj.type == 'number') prvnt = ((evnt.which < 48 || evnt.which > 57) && evnt.key != ',' && evnt.key != '.');\n if (prvnt) evnt.preventDefault();\n };\n\n this.IPValidateFormat = function (element) {\n var ipValidateObj = getIPValidateObj(element);\n if (ipValidateObj.type == 'integer') {\n var v = getInputNumber(element).toLocaleString('da');\n element.value = v;\n }\n };\n\n this.IPValidate = function (element, doNotUseDefault) {\n var jelem = $(element);\n var value = element.value;\n var ipValidateObj = getIPValidateObj(element);\n if (!value) {\n if (ipValidateObj.whenBlankDefaultTo && !doNotUseDefault) {\n value = element.value = ipValidateObj.whenBlankDefaultTo;\n } else {\n return ipValidateObj.required ? setValidationError(element, '', true) : setValidationOk(element);\n }\n }\n\n if (ipValidateObj.type) {\n if (ipValidateObj.type === 'isbn') return validateIBAN(element);\n if (ipValidateObj.type === 'swift') return validateSwift(element);\n if (ipValidateObj.type === 'kontonr') return validateKontoNr(element);\n if (ipValidateObj.type === 'onlyletters') return validateOnlyLetters(element);\n if (ipValidateObj.type === 'onlylettersdk') return validateOnlyDkLetters(element);\n if (ipValidateObj.type === 'onlylettersdkwhitespaceallowed') return validateOnlyDkLettersOneWhiteSpaceAllowed(element);\n if (ipValidateObj.type === 'cpr11') return modulus11Cpr(element);\n if (ipValidateObj.type === 'cpr') return validateCpr(element);\n if (ipValidateObj.type === 'cprPensionsplan2022') return validateCprPensionsplan2022(element);\n if (ipValidateObj.type === 'cvr') return validateCvr(element);\n }\n\n if (element.type === 'email' || ipValidateObj.type === 'email') {\n return ipValidateObj.required ? validateEmailRequired(element) : validateEmail(element);\n }\n if (element.type === 'phone' || ipValidateObj.type === 'phone') {\n return ipValidateObj.required ? validateTelefonRequired(element) : validateTelefon(element);\n }\n\n if (element.type === 'date' || ipValidateObj.type === 'date') {\n return ipValidateObj.required ? validateDateRequired(element, ipValidateObj.min, ipValidateObj.max) : validateDate(element, ipValidateObj.min, ipValidateObj.max);\n }\n\n if (element.type === 'number' || ipValidateObj.type === 'integer' || ipValidateObj.type === 'number' || ipValidateObj.fixedFraction) {\n var num = getInputNumber(element);\n if (isNaN(num)) {\n return setValidationError(element);\n }\n\n if (!isNaN(ipValidateObj.min) && num < ipValidateObj.min) {\n if (ipValidateObj.onOutOfRange == 'useMinMax') {\n element.value = ipValidateObj.min;\n } else {\n return setValidationError(element);\n }\n }\n if (!isNaN(ipValidateObj.max) && num > ipValidateObj.max) {\n if (ipValidateObj.onOutOfRange == 'useMinMax') {\n element.value = ipValidateObj.max;\n } else {\n return setValidationError(element);\n }\n }\n }\n if (element.type === 'radio' || ipValidateObj.type === 'radio') {\n const name = element.name;\n const radioElms = [...document.querySelectorAll(`[name=${name}]`)];\n const hasCheckedVal = radioElms.some(radioElm => radioElm.checked);\n if (!hasCheckedVal) {\n return setValidationError(element);\n }\n }\n // fixedFraction should be a number indicating the amount of decimals.\n // Set this to 0 to not allow decimals at all.\n if (ipValidateObj.fixedFraction !== undefined) {\n var v = getInputNumber(element);\n element.value = v.toFixed(ipValidateObj.fixedFraction).replace(',', '').replace('.', ',');\n if (element.value == '') element.value = v.toFixed(ipValidateObj.fixedFraction);\n }\n\n setValidationOk(element);\n return true;\n };\n\n function getInputNumber(elm) {\n var u = elm.value.replace(/\\./g, '').replace(/,/g, '.');\n var v = (elm.valueAsNumber && !isNaN(elm.valueAsNumber)) ? elm.valueAsNumber : Number(u);\n var b = (elm.valueAsNumber) ? true : false;\n return v;\n }\n\n // replacing PlaceHolders in tmplString wiht matchng values form keyvalues\n function PhReplace(tmplStr, keyvalues) {\n if (!tmplStr) return tmplStr;\n return tmplStr.replace(/(\\{(\\w+)\\})/g, function (k1, k2, k3) { return (keyvalues[k3] != null) ? keyvalues[k3] : k1; });\n }\n\n // Getting the data-ipvalidate from the element - supposed to be in json format!\n function getIPValidateObj(element) {\n var jelem = $(element);\n var ipvalidateText = jelem.data('ipvalidate');\n var ipValidateObj = ipvalidateText || {};\n\n if (typeof (ipValidateObj) == 'string' && ipvalidateText) ipValidateObj = JSON.parse(ipvalidateText);\n if (jelem[0].hasAttribute('max')) ipValidateObj.min = parseInt(jelem.attr('min'), 10);\n if (jelem[0].hasAttribute('max')) ipValidateObj.max = parseInt(jelem.attr('max'), 10);\n ipValidateObj.required = ipValidateObj.required || (jelem && jelem.attr('required'));\n\n return ipValidateObj;\n }\n\n // !!! overriding setValidationError in IP.Validation.js (adding setValidationErrorPre(..))\n function setValidationError(element, txt, useRequiredtext) {\n if (!(element instanceof jQuery)) element = $(element);\n\n setValidationErrorPre(element, txt, useRequiredtext);\n element.closest('div.fu').find('div.error').show();\n element.closest('div.fu').addClass('error');\n }\n\n // Will manage texts for the error message\n function setValidationErrorPre(elem, txt, useRequiredtext) {\n if (!(elem instanceof jQuery)) {\n elem = $(elem);\n }\n\n const fuElm = elem.closest('div.fu');\n const msgElms = fuElm\n .find('div.msg')\n .filter((idx, msgElm) => $(msgElm).closest('div.fu').get(0).isSameNode(fuElm.get(0)));\n\n const msgdiv = msgElms.first();\n var defaultText = msgdiv.data('defaulttext');\n var txtInner = msgdiv.text();\n if (!defaultText && txtInner) {\n msgdiv.data('defaulttext', txtInner);\n defaultText = txtInner;\n }\n var tmpl = useRequiredtext ? elem.data('requirederrtmpl') : elem.data('formaterrtmpl');\n if (txt) {\n const textField = msgdiv.children().length ? msgdiv.children().get(0) : msgdiv;\n textField.text = txt;\n } else if (tmpl) {\n var ipValidateObj = getIPValidateObj(elem[0]);\n var t = function () {\n return PhReplace(tmpl, ipValidateObj);\n };\n msgdiv.text(t);\n } else if (defaultText) {\n const textField = msgdiv.children().length ? msgdiv.children().get(0) : msgdiv;\n textField.text = defaultText;\n }\n }\n};\n","export const App = window.App || {};\n","import { App } from './App';\n\nApp.Util = {};\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const accordion = {\n init: function (scope) {\n scope = scope ? scope + ' ' : '';\n\n $(scope + '.accordion .accordion-header > a').on('click', function () {\n var self = $(this);\n var parent = self.parents('.accordion');\n\n $('.accordion').not(parent).removeClass('open');\n $('.accordion').not(parent).find('.accordion-content').slideUp();\n\n parent.toggleClass('open');\n parent.find('.accordion-content').slideToggle(function () {\n\n if ($(parent).parent().hasClass('lightbox-with-accordion')) {\n return;\n }\n\n hash.add({ 'accordion': self.attr('href').replace('#', '') });\n\n if (isMobileDevice) {\n $('html, body').animate({ scrollTop: (parent.offset().top - self.outerHeight()) + 'px' }, 500);\n } else {\n $('html, body').animate({ scrollTop: (parent.offset().top - self.outerHeight()) + 'px' }, 600);\n }\n });\n\n for (var i = 0; i < window.Highcharts.charts.length; i++) {\n window.Highcharts.charts[i].reflow();\n }\n\n return false;\n });\n\n var hashAccordionVal = hash.get('accordion');\n $(scope + '.accordion .accordion-header > a[href=\"#' + hashAccordionVal + '\"]').trigger('click');\n }\n};\n\nexport default accordion;\n\nApp.Util.accordion = accordion;\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const contactme = {\n init: function () {\n $('.contact-me-days-tags').on('click', 'li', function () {\n $('.contact-me-days-tags li').removeClass('active');\n\n $(this).addClass('active');\n var id = $(this).data('time-id');\n $('.contact-me-time').slideUp();\n\n if ($('.contact-me-days-tags li.active').length) {\n $('.contact-me-time#' + id).slideDown();\n } else {\n $('.contact-me-time').slideUp();\n }\n\n var reservationDate = $('input[id=reservationDate]').first();\n reservationDate.val('1');\n $('.contact-me-time-tags li').removeClass('active');\n var reservationTime = $('input[id=reservationTime]').first();\n reservationTime.val('');\n });\n\n $('.contact-me-time-tags').on('click', 'li', function () {\n $('.contact-me-time-tags li').removeClass('active');\n\n var reservationTime = $('input[id=reservationTime]').first();\n reservationTime.val($(this).data('from-value'));\n\n $(this).addClass('active');\n });\n\n function validateCallMe($form, submitButtonValue) {\n var valid = true;\n var name = $form.find('input[id=name]').first();\n var cpr = $form.find('input[id=cpr]').first();\n var email = $form.find('input[id=email]').first();\n var phone = $form.find('input[id=phone]').first();\n var details = $form.find('textarea[id=details]').first();\n\n valid = validateCallMeName(name);\n valid = validateRequiredField(details) && valid;\n valid = validateCallMePhone(phone) && valid;\n valid = validateCallMeCprAndCvr(cpr) && valid;\n valid = validateCallMeEmail(email, submitButtonValue) && valid;\n\n var dateValid = validateRequiredField($form.find('input[name=reservationDate]').first());\n valid = dateValid && valid;\n if (dateValid) {\n valid = validateRequiredField($form.find('input[name=reservationTime]').first()) && valid;\n }\n return valid;\n }\n\n $('form[data-callme-ajax=\"true\"] input[id=name]').on('blur', function (event) { validateCallMeName($(event.target)); });\n $('form[data-callme-ajax=\"true\"] input[id=cpr]').on('blur', function (event) { validateCallMeCprAndCvr($(event.target)); });\n $('form[data-callme-ajax=\"true\"] input[id=phone]').on('blur', function (event) { validateCallMePhone($(event.target)); });\n $('form[data-callme-ajax=\"true\"] input[id=email]').on('blur', function (event) { validateCallMeEmail($(event.target)); });\n $('form[data-callme-ajax=\"true\"] textarea[id=details]').on('blur', function (event) { validateRequiredField($(event.target)); });\n\n function validateCallMeName(name) {\n return validateRequiredCallMe(name) && validateName(name);\n }\n\n function validateCallMePhone(phone) {\n return validateRequiredCallMe(phone) && validateTelefon(phone);\n }\n\n function validateRequiredCallMe(elem) {\n var errorElem = elem.nextAll('div .msg');\n errorElem.hide();\n var reqErrorElem = errorElem.filter('div[data-required=\"true\"]');\n\n if (reqErrorElem.length > 0 && !required(elem)) {\n reqErrorElem.show();\n return false;\n } else if (reqErrorElem.length > 0) {\n reqErrorElem.hide();\n }\n return true;\n }\n\n function validateCallMeCprAndCvr(cpr) {\n var validCpr = modulus11Cpr(cpr);\n var validCvr = validateCvr(cpr);\n if (validCpr.cpr || validCvr) {\n setValidationOk(cpr);\n if (validCpr.cpr && !validCpr.modulus11) {\n setValidationInfo(cpr);\n }\n return true;\n }\n return false;\n }\n\n function validateCallMeEmail(email, submitButtonValue) {\n if (submitButtonValue != undefined && submitButtonValue === 'online') {\n return validateRequiredCallMe(email) && validateEmail(email);\n } else {\n return validateEmail(email);\n }\n }\n\n $('form[data-callme-ajax=\"true\"]').submit(function () {\n return false;\n });\n $('#uiBtnTlf, #uiBtnOnline').click(function (event) {\n\n var $form = $('#callMe');\n var submitButtonValue = $(this).attr('value');\n var valid = validateCallMe($form, submitButtonValue);\n var buttonVal = '&submitButtonName=' + submitButtonValue;\n var formdata = $form.serialize() + buttonVal;\n if (valid) {\n $.ajax({\n url: $form.attr('action'),\n type: $form.attr('method'),\n data: formdata\n }).done(function (data) {\n if (data.success) {\n $form.trigger('reset');\n var header = $form.data('success-header');\n var content = $form.data('success-content');\n alertify.alert('

' + header + '

' + content + '

');\n $('.contact-me-time').slideUp();\n $('.contact-me-time-tags li').removeClass('active');\n $('.contact-me-days-tags li').removeClass('active');\n $('#divContact').slideUp();\n } else {\n alertify.alert(`

${$form.data('error-header')}

${$form.data('error-content')}

`);\n }\n });\n }\n\n return false;\n });\n }\n};\n\nexport default contactme;\n\nApp.Util.contactme = contactme;\n\n\n","/* eslint-disable no-dupe-class-members, no-unused-expressions */\nfunction collectFormData(formData) {\n const object = {};\n formData.forEach((value, key) => {\n if (!Reflect.has(object, key)) {\n object[key] = value;\n return;\n }\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n });\n return object;\n}\n\nfunction getFocusable(dialog) {\n return [\n ...dialog.querySelectorAll(\n 'button,[href],select,textarea,input:not([type=\"hidden\"]),[tabindex]:not([tabindex=\"-1\"])'\n )\n ];\n}\n\nfunction getElements(dialog, elementRef) {\n return dialog.querySelectorAll(`[data-ref=${elementRef}]`);\n}\n\nfunction getElement(dialog, elementRef) {\n return getElements(dialog, elementRef)[0];\n}\n\nclass Dialog {\n dialogs = [];\n dialogSupported = typeof HTMLDialogElement === 'function';\n\n constructor(settings = {}) {\n this.#init(settings);\n }\n\n #init(settings) {\n this.SETTINGS = {\n id: 'dialog',\n labels: {\n OK: 'Ok',\n CANCEL: 'Cancel'\n },\n ...settings\n };\n }\n\n #createDialogElement(settings, globalSettings) {\n const defaults = {\n ...globalSettings,\n ...settings\n };\n\n if (this.dialogs.find((dialog) => dialog.id === defaults.id)) {\n defaults.id = `${defaults.id}-${this.dialogs.length}`;\n }\n\n const dialog = document.createElement('dialog');\n dialog.classList.add(\n ...[\n globalSettings.id,\n `${globalSettings.id}-${defaults.type ?? 'default'}`,\n defaults.className ?? null\n ].filter((token) => token !== null)\n );\n dialog.setAttribute('id', defaults.id);\n dialog.setAttribute('role', 'dialog');\n dialog.dataset.component = this.dialogSupported ? 'dialog' : 'no-dialog';\n\n dialog.innerHTML = `\n
\n
\n
\n
\n
\n \n \n ${defaults.type === 'confirm' || defaults.type === 'prompt' ? '' : ''}\n \n
\n `;\n\n this.dialogs.push(dialog);\n document.body.appendChild(dialog);\n\n return dialog;\n }\n\n #cleanDialog(dialog) {\n this.dialogs = this.dialogs.filter((item) => item !== dialog);\n dialog.remove();\n }\n\n #setupEvents(dialog, blockUI) {\n dialog.addEventListener(\n 'close',\n (event) => {\n dialog.dispatchEvent(new Event('cancel'));\n this.#cleanDialog(event.target);\n },\n { once: true }\n );\n\n dialog.addEventListener(\n 'keydown',\n (event) => {\n if (event.key === 'Escape') {\n event.stopPropagation();\n dialog.dispatchEvent(new Event('cancel'));\n }\n },\n { once: true }\n );\n\n dialog.addEventListener('cancel', (event) => {\n if (blockUI) {\n event.preventDefault();\n }\n });\n\n getElements(dialog, 'cancel').forEach((cancelBtn) =>\n cancelBtn.addEventListener(\n 'click',\n () => {\n dialog.dispatchEvent(new Event('cancel'));\n },\n { once: true }\n )\n );\n }\n\n #waitForUser(dialog, hasForm, blockUI) {\n return new Promise((resolve) => {\n dialog.addEventListener(\n 'close',\n (e) => {\n resolve(false);\n },\n { once: true }\n );\n\n getElements(dialog, 'accept').forEach((acceptBtn) =>\n acceptBtn.addEventListener(\n 'click',\n () => {\n const value = hasForm ? collectFormData(new FormData(getElement(dialog, 'form'))) : true;\n resolve(value);\n },\n { once: true }\n )\n );\n });\n }\n\n open(settings = {}) {\n const dialog = this.#createDialogElement(settings, this.SETTINGS);\n const blockUI = settings.blockUI ? true : false;\n\n const dialogMessage = getElement(dialog, 'message');\n if (settings.message) {\n dialogMessage.innerHTML = settings.message;\n } else if (settings.actions === false || settings.actions === null || settings.actions === '') {\n dialogMessage.remove();\n }\n\n if (settings.template) {\n getElement(dialog, 'template').innerHTML = settings.template;\n }\n\n const dialogActions = getElement(dialog, 'actions');\n\n if (settings.actions) {\n dialogActions.innerHTML = settings.actions;\n } else if (settings.actions === false || settings.actions === null || settings.actions === '') {\n dialogActions.remove();\n }\n\n this.#setupEvents(dialog, blockUI);\n\n dialog.showModal();\n\n const focusable = getFocusable(dialog);\n const inputElements = [].slice.call(getElement(dialog, 'fieldset').elements).find((elm) => elm.select);\n\n if (inputElements) {\n inputElements?.select();\n }\n\n focusable[0]?.focus();\n\n return this.#waitForUser(dialog, inputElements, blockUI);\n }\n\n alert(message, config = {}) {\n return this.open({\n type: 'alert',\n message,\n ...config\n });\n }\n\n error(message, config = {}) {\n return this.open({\n type: 'error',\n message,\n ...config\n });\n }\n\n confirm(message, config = {}) {\n return this.open({\n type: 'confirm',\n message,\n ...config\n });\n }\n\n prompt(message, defaultValue, config = {}) {\n const template = `\n `;\n\n return this.open({\n type: 'prompt',\n message,\n template,\n ...config\n });\n }\n\n spinner(message, defaultValue, config = {}) {\n const template = `\n
\n
Loading...
\n
${message ?? ''}
\n
`;\n\n return this.open({\n type: 'spinner',\n id: 'spinner',\n message: '',\n blockUI: true,\n actions: false,\n template,\n ...config\n });\n }\n\n spinnerOld(message, config = {}) {\n const template = `\n
\n Loading...\n
${message ?? ''}
\n
`;\n\n return this.open({\n type: 'spinner',\n id: 'spinner',\n message: '',\n blockUI: true,\n actions: false,\n template,\n ...config\n });\n }\n\n custom(message, config = {}) {\n return this.open({\n type: 'custom',\n message,\n blockUI: true,\n actions: false,\n template: false,\n ...config\n });\n }\n\n closeAll() {\n this.dialogs.forEach((dialog) => {\n dialog.close();\n });\n }\n\n close(id) {\n this.dialogs.find((dialog) => dialog.id === id)?.close();\n }\n}\n\nexport default Dialog;\n","export const NODE_ENV = process.env.NODE_ENV;\nexport const isDevelopment = NODE_ENV === 'development';\nexport const isProduction = NODE_ENV === 'production';\nexport const isMockup = isDevelopment && window.location.host.includes('localhost');\n\nexport default {\n NODE_ENV,\n isDevelopment,\n isProduction,\n isMockup\n};\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const feedback = {\n init: function () {\n $('.feedback-module .feedback-module-caller').on('click', function () {\n $('.feedback-module .feedback-module-respond').stop().slideUp();\n\n var refUri = $('form[data-feedback-ajax=\"true\"]').find('input[name = \"RefererUri\"]').val();\n\n if ($(this).hasClass('feedback-module-caller-approve')) {\n $('.feedback-module-respond-approve').stop().slideToggle();\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'ulogin', 'Feedback', 'Positiv_' + refUri);\n }\n } else {\n $('.feedback-module-respond-reject').stop().slideToggle();\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'ulogin', 'Feedback', 'Negativ_' + refUri);\n }\n }\n });\n\n $('form[data-feedback-ajax=\"true\"]').submit(function () {\n var $form = $(this);\n\n $.ajax({\n url: $form.attr('action'),\n type: $form.attr('method'),\n data: $form.serialize()\n }).done(function () {\n var target = $form.attr('data-feedback-target');\n $(target).stop().slideToggle();\n $form.find('input[type=text], textarea, input[type=email]').val('');\n $('#divFeedback').slideUp();\n $('#divThanks').slideDown();\n var refererUri = $form.find('input[name = \"RefererUri\"]').val();\n var thumbsUp = $form.find('input[name = \"Thumbsup\"]').val();\n if (thumbsUp === 'true') {\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'ulogin', 'Feedback', 'Positiv_Fritekst_Indsendt_' + refererUri);\n }\n } else {\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'ulogin', 'Feedback', 'Negativ_Fritekst_Indsendt_' + refererUri);\n }\n }\n\n });\n return false;\n\n });\n }\n};\n\nexport default feedback;\n\nApp.Util.feedback = feedback;\n","import '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const fileUploader = {\n init: function () {\n if (document.querySelector('.js-file-upload')) import('@mockup/func/fileupload/index').then(module => module.default.init());\n }\n};\n\nexport default fileUploader;\n\nApp.Util.fileUploader = fileUploader;\n","import '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const format = function (comma, period) {\n comma = comma || ',';\n period = period || '.';\n var split = this.toString().split('.');\n var numeric = split[0];\n var decimal = split.length > 1 ? period + split[1] : '';\n var reg = /(\\d+)(\\d{3})/;\n while (reg.test(numeric)) {\n numeric = numeric.replace(reg, '$1' + comma + '$2');\n }\n return numeric + decimal;\n};\n\nexport default format;\n\nApp.Util.format = format;\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\nimport lightbox from './lightbox';\n\nexport const leaveGuide = {\n init: function () {\n $('.ligtbox-feedback').each(function () {\n var elm = $(this);\n var lightboxContent = $(elm.attr('href'));\n\n elm.fancybox(lightbox.options(elm.data(), {\n padding: 0,\n type: 'inline',\n width: 'auto',\n title: false,\n minHeight: 0,\n beforeLoad: function () {\n var url = this.href;\n if (!url) {\n url = $(this).data('href');\n }\n\n var hash = url.substring(url.indexOf('#'));\n this.href = hash;\n }\n }));\n\n lightboxContent.find('#btnBlivIGuide').on('click', function (e) {\n e.stopImmediatePropagation();\n $.fancybox.close();\n });\n\n lightboxContent.find('input[type=radio]').on('change', function () {\n if (lightboxContent.find('.feedback-other-reason-radio input').is(':checked')) {\n lightboxContent.find('.feedback-other-reason-explanation').removeClass('hide');\n lightboxContent.find('.feedback-other-reason-explanation textarea').focus();\n } else {\n lightboxContent.find('.feedback-other-reason-explanation').addClass('hide');\n }\n\n $.fancybox.reposition();\n });\n\n $('form[data-leaveguide-ajax=\"true\"]').submit(function () {\n $('#btnFarvelFraGuide').toggleClass('is-loading').prop('disabled', true);\n\n var $form = $(this);\n var rUri = $form.find('input[name = \"RefererUri\"]').val();\n var question = $form.find('input[type=radio][name=beskrivelse]:checked').attr('id');\n var description = $form.find('textarea[name=\"tilfojelse\"]').val();\n\n if (typeof window.ga === 'function') {\n if (question !== undefined) {\n if (question === 'Guide_Question_4') {\n if (description.length > 0) {\n window.ga('send', 'event', 'Login', 'Feedback', 'Forlad_' + question + '_Med_Fritekst_' + rUri);\n } else {\n window.ga('send', 'event', 'Login', 'Feedback', 'Forlad_' + question + '_Uden_Fritekst_' + rUri);\n }\n } else {\n window.ga('send', 'event', 'Login', 'Feedback', 'Forlad_' + question + '_' + rUri);\n }\n } else {\n window.ga('send', 'event', 'Login', 'Feedback', 'Forlad_Ikke_Svaret_' + rUri);\n }\n }\n\n $.ajax({\n url: $form.attr('action'),\n type: $form.attr('method'),\n data: $form.serialize()\n }).done(function (data) {\n if (data.ok) {\n if (data.redirectLink) {\n $('#btnFarvelFraGuide').prop('disabled', false);\n $('.btnrow.size-l').slideUp();\n $('#lblLeaveGuideKvittering').slideDown();\n $.fancybox.update();\n setTimeout(function () {\n $.fancybox.close();\n var url = top.location.protocol + '//' + top.location.hostname + data.redirectLink;\n top.location.assign(url);\n }, 2000);\n }\n }\n });\n\n return false;\n });\n });\n }\n};\n\nexport default leaveGuide;\n\nApp.Util.leaveGuide = leaveGuide;\n","import $ from 'jquery';\nimport { App } from './App.js';\n\nimport '@mockup/plugins/jquery.fancybox';\nimport '@mockup/plugins/jquery.rangeslider';\nimport '@mockup/plugins/z.7.cleaver';\nimport '@mockup/plugins/z.8.bootstrap-datepicker';\nimport '@mockup/plugins/z.9.bootstrap-datepicker-range';\nimport '@mockup/plugins/IP.Validation';\nimport '@mockup/plugins/jquery.hash';\n\nimport '@mockup/charts';\n\n// Add an alias to the App, if we need to call App from the outside:\nglobal.$ = global.jQuery = window.$ = window.jQuery = $;\nglobal.App = window.App = App;\n\nwindow.GoogleAnalyticsEvent = (kategori, action, label, value) => window.ga('send', 'event', kategori, action, label, value);\nwindow.GoogleAnalyticsEvent = (kategori, action, label) => window.ga('send', 'event', kategori, action, label);\n\nwindow.isMobileDevice = false;\n\n$.fn.filterByData = function (prop, val) {\n return this.filter(function () {\n return $(this).data(prop) == val;\n });\n};\n","import $ from 'jquery';\nimport { isDevelopment } from '@mockup/func/globals/environment';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\nimport { emit } from 'process';\n\nexport const lightbox = {\n init: function () {\n $(document).on('click', 'a.video', function () {\n if (isDevelopment) {\n var Cookiebot = {\n consent: {\n marketing: true\n }\n };\n }\n\n if (!(window.Cookiebot && window.Cookiebot.consent.marketing)) {\n window.Cookiebot.renew();\n return false;\n }\n\n if (navigator.userAgent.match(/iPhone/)) {\n $(this).append('');\n }\n // GOOGLE ANALYTIS CUSTOM EVENET\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'video', 'play', $(this).attr('href'));\n }\n\n if (navigator.userAgent.match(/iPhone/)) {\n return false;\n } else if (window.Cookiebot && window.Cookiebot.consent.marketing) {\n $.fancybox({\n 'padding': 0,\n 'width': 1280,\n 'height': 720,\n 'href': $(this).attr('href'),\n 'type': 'iframe',\n iframe: {\n preload: false\n }\n });\n return false;\n }\n });\n\n $(document).on('click', '.lightbox', function () {\n const opt = opt;\n $.fancybox.open($(this), lightbox.options(opt, {\n padding: 10\n }));\n });\n\n $(document).on('click', '.lightbox-iframe', function () {\n const opt = $(this).data();\n $.fancybox.open($(this), lightbox.options(opt, {\n width: '75%',\n height: '75%',\n padding: 10,\n type: 'iframe',\n iframe: {\n scrolling: 'auto',\n preload: true\n },\n autoSize: false\n }));\n });\n\n $(document).on('click', '.lightbox-video', function () {\n\n const opt = $(this).data();\n $.fancybox.open($(this), lightbox.options(opt, {\n width: '75%',\n height: '50vh',\n padding: 0,\n type: 'iframe',\n iframe: {\n scrolling: 'auto',\n preload: true\n },\n autoSize: true\n }));\n });\n\n $(document).on('click', '.lightbox-ajax', function () {\n const opt = $(this).data();\n $.fancybox.open($(this), lightbox.options(opt, {\n width: 500,\n height: 500,\n padding: 10,\n type: 'ajax',\n autoSize: false\n }));\n });\n\n $(document).on('click', '.lightbox-inline', function () {\n const opt = $(this).data();\n if ($(this).attr('disabled') !== 'disabled') {\n $.fancybox.open($(this), lightbox.options(opt, {\n padding: 20,\n type: 'inline',\n title: false,\n minHeight: 0,\n beforeLoad: function () {\n var url = this.href;\n if (!url) {\n url = $(this).data('href');\n }\n\n var hash = url.substring(url.indexOf('#'));\n this.href = hash;\n },\n afterClose: function() {\n document.dispatchEvent(new Event('lightbox-inline-close'));\n }\n }));\n\n App.format.init();\n }\n });\n\n $(document).on('click', '.fancy-modal-close', function () {\n $.fancybox.close();\n });\n },\n options: function (dataOpt, defaults) {\n var data = $.extend({}, defaults, dataOpt);\n return $.extend({}, defaults, dataOpt);\n }\n};\n\nexport default lightbox;\n\nApp.Util.lightbox = lightbox;\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const newsletterSignup = {\n init: function () {\n $('form[data-signup-ajax=\"true\"]')\n .submit(function () {\n var $form = $(this);\n var error = false;\n var name = $form.find('input[id=name]')[0];\n var email = $form.find('input[id=email]')[0];\n var bekraeftEmail = $form.find('input[id=bekraeftEmail]')[0];\n var newsletters = $form.find('input[type=checkbox]');\n\n if (newsletters.not(':checked').length === newsletters.length) {\n newsletters.closest('div.fu').find('div.error').show();\n newsletters.closest('div.fu').addClass('error');\n error = true;\n } else {\n setValidationOk(newsletters);\n newsletters.closest('div.fu').find('div.error').hide();\n }\n if (!validateEmailRequired(email)) {\n setValidationError(email);\n error = true;\n } else {\n setValidationOk(email);\n }\n if (!validerBekraeftEmail(bekraeftEmail)) {\n setValidationError(bekraeftEmail);\n error = true;\n } else {\n setValidationOk(bekraeftEmail);\n }\n error = !validateName(name) || error;\n\n if (!error) {\n $.ajax({\n url: $form.attr('action'),\n type: $form.attr('method'),\n data: $form.serialize()\n }).done(function (data) {\n if (data.ok) {\n $form.trigger('reset');\n var header = $form.data('success-header');\n var content = $form.data('success-content');\n alertify.alert('

' + header + '

' + content + '

');\n } else {\n var headerFejlDomaene = $form.data('fejldomaene-header');\n var contentFejlDomaene = $form.data('fejldomaene-content');\n alertify.alert('

' + headerFejlDomaene + '

' + contentFejlDomaene + '

');\n }\n });\n }\n\n return false;\n });\n }\n};\n\nexport default newsletterSignup;\n\nApp.Util.newsletterSignup = newsletterSignup;\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const rangeSlider = function (scope) {\n scope = scope ? scope + ' ' : '';\n\n $(scope + '.js-rangeslider').each(function () {\n var $this = $(this);\n var $val = $($this.data('output'));\n\n $val.on('change', function (e) {\n // remove everying that is not at digit\n var formattedValue = e.target.value.replace(/\\D/g, '');\n // update the rangeslider value\n $this.val(formattedValue).change();\n });\n\n $this.rangeslider({\n polyfill: false,\n onInit: function () {},\n onSlide: function (position, value) {\n if ($val.length) {\n if ($val.get(0).tagName === 'INPUT') {\n $val.val(value);\n } else {\n $val.text(value);\n }\n }\n\n if ($this.data('slide-callback')) {\n const fn = window[$this.data('slide-callback')];\n if (typeof fn === 'function') {\n fn.apply(this, [position, value]);\n }\n }\n\n // Also dispatch event that can be listened for.\n var event = new Event('slide');\n $this.get(0).dispatchEvent(event);\n },\n onSlideEnd: function (position, value) {\n if ($this.data('slide-end-callback')) {\n const fn = window[$this.data('slide-end-callback')];\n if (typeof fn === 'function') {\n fn.apply(this, [position, value]);\n }\n }\n\n // Also dispatch event that can be listened for.\n var event = new Event('slide-end');\n $this.get(0).dispatchEvent(event);\n }\n });\n\n });\n // Listen for when a slider is made visible (from display: none to visible).\n // When made visible, update the slider size.\n const sliders = document.querySelectorAll(scope + '.js-rangeslider');\n sliders.forEach((slider) => {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const isVisible = entry.contentRect.width !== 0;\n if (isVisible) {\n $(slider).rangeslider();\n }\n }\n });\n resizeObserver.observe(slider);\n });\n};\n\nexport default {\n init: rangeSlider\n};\n\nApp.Util.rangeSlider = rangeSlider;\n","import '@mockup/func/globals/App.util';\n\nexport const tableExpander = {\n init: function () {\n $('table.table').each(function () {\n var _ = $(this);\n if (!_.find('.expander').length) {\n return;\n }\n\n _.find('.expander').on('click', function () {\n $(this).toggleClass('open');\n var id = '.' + $(this).data('expanderElementsId');\n _.find(id).toggleClass('is-open');\n });\n\n _.find('tbody tr:visible').each((index, elm) => {\n $(elm).addClass((index + 1) % 2 === 0 ? 'is-even' : 'is-odd');\n });\n });\n }\n};\n\nApp.Util.tableExpander = tableExpander;\n\nexport default tableExpander;\n\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const pagedtable = {\n init: function () {\n $.ajaxSetup({ cache: false });\n this.events('.js-paged-table-component');\n },\n events: function (elm) {\n $(elm).on('click.pagedtable', '.pagedList a[href]:not(.pagedtable-company-letter):not(.pagedtable-company-payment):not(.pagedtable-company):not(.pagedtable-member):not(.pagedtable-member-payment)', function () {\n var $a = $(this);\n $.ajax({\n url: $a.attr('href'),\n type: 'get'\n }).done(function (data) {\n var target = $a.closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n $(target).replaceWith(data);\n pagedtable.offEvents('.js-paged-table-component');\n pagedtable.events('.js-paged-table-component');\n\n $(document).trigger('pagedtable.ajax.done');\n });\n\n return false;\n });\n\n $(elm).on('change.pagedtable', '.pageListDropdown', function () {\n var $l = $(this);\n\n $.ajax({\n url: $l.find(':selected').val(),\n type: 'get'\n }).done(function (data) {\n var target = $l.closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n $(target).replaceWith(data);\n pagedtable.offEvents('.js-paged-table-component');\n pagedtable.events('.js-paged-table-component');\n\n $(document).trigger('pagedtable.ajax.done');\n });\n\n return false;\n });\n\n if ($(elm).find('.pagedtable-member').length) {\n $(elm).on('click.pagedtable-member', '.pagedtable-member', function (e) {\n if ($(this).hasClass('lightbox-iframe')) {\n e.stopImmediatePropagation();\n return false;\n }\n\n return true;\n });\n }\n\n if ($(elm).find('.pagedtable-member-payment').length) {\n $(elm).on('click.pagedtable-member-payment', '.pagedtable-member-payment', function (e) {\n\n e.stopImmediatePropagation();\n const elm = $(this);\n const referenceId = $(elm).parent().data('referenceid');\n const produktnavn = $(elm).parent().data('produktnavn');\n window.StartNetaxeptTransaction(referenceId, '', null);\n var target = $(this).closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n ga('send', 'event', 'Login', 'Betalinger_Medlem', 'betaling_knap');\n\n return false;\n\n });\n }\n\n if ($(elm).find('.link.pagedtable-company').length) {\n $(elm).on('click.pagedtable-company', '.link.pagedtable-company', function (e) {\n if ($(this).hasClass('lightbox-iframe')) {\n e.stopImmediatePropagation();\n return false;\n }\n\n return true;\n });\n }\n\n if ($(elm).find('.link.pagedtable-company-payment').length) {\n $(elm).on('click.pagedtable-company-payment', '.link.pagedtable-company-payment', function (e) {\n\n e.stopImmediatePropagation();\n pagedtable.setUpFancyBox($(this));\n var target = $(this).closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n $(target).find('#uiDiv_PTDibsCom').trigger('click');\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'Login', 'Betalinger_Virksomhed', 'betaling_knap');\n }\n\n return false;\n });\n }\n\n if ($(elm).find('.pagedtable-company-letter').length) {\n $(elm).on('click.pagedtable-company-letter', '.pagedtable-company-letter', function (e) {\n $(this).find('strong').contents().unwrap();\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'Login', 'VoresBreve_Virksomhed', 'dokument_link_clicked');\n }\n if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv:11\\./)) {\n e.stopImmediatePropagation();\n window.open($(this).parent().data('dibsurl'));\n return true;\n }\n e.stopImmediatePropagation();\n pagedtable.setUpFancyBoxForLetter($(this));\n var target = $(this).closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n $(target).find('#uiDiv_PTDibsCom').trigger('click');\n return false;\n });\n $(elm).on('click.js-pagedtable-company-letter-attachment', '.js-pagedtable-company-letter-attachment', function (e) {\n\n $(this).find('strong').contents().unwrap();\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n if (typeof window.ga === 'function') {\n window.ga('send', 'event', 'Login', 'VoresBreve_Virksomhed', 'attachment_link_clicked');\n }\n if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv:11\\./)) {\n e.stopImmediatePropagation();\n window.open($(this).parent().data('dibsurl'));\n return true;\n }\n e.stopImmediatePropagation();\n pagedtable.setUpFancyBoxForLetterAttachment($(this));\n var target = $(this).closest('.ippagedtable').find('div[data-ippagedtable-target]').parents('.js-paged-table-component');\n $(target).find('#uiDiv_PTDibsCom').trigger('click');\n return false;\n });\n }\n },\n setUpFancyBox: function (elm) {\n var scrol = isMobileDevice ? 'auto' : 'no';\n var referenceId = $(elm).parent().data('referenceid');\n var dibsUrl = $(elm).parent().data('dibsurl');\n var produktnavn = $(elm).parent().data('produktnavn');\n\n $.fancybox.open({\n type: 'ajax',\n href: dibsUrl,\n ajax: {\n type: 'POST',\n data: {\n encrytptedReferenceId: referenceId,\n produktnavn: produktnavn\n }\n },\n scrolling: scrol,\n padding: 15,\n margin: 20\n });\n },\n setUpFancyBoxForLetter: function (elm) {\n var referenceId = $(elm).parent().data('referenceid');\n var dibsUrl = $(elm).parent().data('dibsurl');\n var produktnavn = $(elm).parent().data('produktnavn');\n\n $.fancybox.open({\n type: 'iframe',\n href: dibsUrl,\n ajax: {\n type: 'POST',\n data: {\n encrytptedReferenceId: referenceId,\n produktnavn: produktnavn\n }\n },\n frame: {\n scrolling: 'auto',\n preload: true\n },\n width: '75%',\n height: '95%',\n padding: 10,\n autoSize: false\n });\n },\n setUpFancyBoxForLetterAttachment: function (elm) {\n var attachmentUrl = $(elm).data('attachmenturl');\n\n $.fancybox.open({\n type: 'iframe',\n href: attachmentUrl,\n ajax: {\n type: 'POST'\n },\n frame: {\n scrolling: 'auto',\n preload: true\n },\n width: '75%',\n height: '95%',\n padding: 10,\n autoSize: false\n });\n },\n offEvents: function (elm) {\n $(elm).off('click.pagedtable');\n $(elm).off('change.pagedtable');\n $(elm).off('click.pagedtable-member');\n $(elm).off('click.pagedtable-company');\n $(elm).off('click.pagedtable-company-payment');\n $(elm).off('click.pagedtable-company-letter');\n $(elm).off('click.pagedtable-member-payment');\n }\n};\n\nexport default pagedtable;\n\nApp.Util.pagedtable = pagedtable;\n","const downClass = ' dir-d ';\nconst upClass = ' dir-u ';\nconst regexDir = / dir-(u|d) /;\nconst regexTable = /\\bjs-sortable-table\\b/;\n\nfunction init() {\n document.addEventListener('click', function (e) {\n const element = e.target;\n\n function reClassify(element, dir) {\n element.className = element.className.replace(regexDir, '') + dir;\n }\n\n function getValue(element) {\n // If you aren't using data-sort and want to make it just the tiniest bit smaller/faster\n // comment this line and uncomment the next one\n return element.getAttribute('data-sort') || element.innerText;\n // return element.innerText\n }\n\n if (element.nodeName === 'TH') {\n try {\n const tr = element.parentNode;\n // const table = element.offsetParent; // Fails with positioned table elements\n // this is the only way to make really, really sure. A few more bytes though... 😡\n const table = tr.parentNode.parentNode;\n if (regexTable.test(table.className)) {\n let columnIndex;\n const nodes = tr.cells;\n\n // reset thead cells and get column index\n for (let i = 0; i < nodes.length; i++) {\n // eslint-disable-next-line max-depth\n if (nodes[i] === element) {\n columnIndex = i;\n } else {\n reClassify(nodes[i], '');\n }\n }\n\n let dir = downClass;\n\n // check if we're sorting up or down, and update the css accordingly\n if (element.className.indexOf(downClass) !== -1) {\n dir = upClass;\n }\n\n reClassify(element, dir);\n\n // extract all table rows, so the sorting can start.\n const orgTbody = table.tBodies[0];\n\n // get the array rows in an array, so we can sort them...\n const rows = [].slice.call(orgTbody.rows, 0);\n\n const reverse = dir === upClass;\n\n // sort them using custom built in array sort.\n rows.sort(function (a, b) {\n const x = getValue((reverse ? a : b).cells[columnIndex]);\n const y = getValue((reverse ? b : a).cells[columnIndex]);\n // const y = (reverse ? b : a).cells[columnIndex].innerText\n // const x = (reverse ? a : b).cells[columnIndex].innerText\n return isNaN(x - y) ? x.localeCompare(y) : x - y;\n });\n\n // Make a clone without content\n const cloneTbody = orgTbody.cloneNode();\n\n // Build a sorted table body and replace the old one.\n while (rows.length) {\n cloneTbody.appendChild(rows.splice(0, 1)[0]);\n }\n\n // And finally insert the end result\n table.replaceChild(cloneTbody, orgTbody);\n }\n } catch (error) {\n // console.log(error)\n }\n }\n });\n}\n\nexport default {\n init\n};\n","import $ from 'jquery';\nimport '@mockup/func/globals/App.util';\nimport { App } from './App';\n\nexport const tabs = {\n init: function () {\n this.normal();\n this.payment();\n },\n normal: function (scope, initialIndex = 0) {\n scope = scope ? scope + ' ' : '';\n\n var hashTabIndex = hash.get('tab');\n if (!initialIndex) {\n initialIndex = hashTabIndex ? hashTabIndex : 0;\n }\n\n $(scope + '.tabs').each(function () {\n var self = $(this);\n self.find('.tabs-list-item a').on('click', function () {\n var index = self.find('.tabs-list-item a').index($(this));\n\n self.find('.tabs-list-item a').removeClass('active');\n $(this).addClass('active');\n\n self.find('.tabs-item').hide();\n self.find($(this).attr('href')).show();\n\n changeState(index);\n\n return false;\n });\n\n if (self.find('.tabs-list-item a').length) {\n self.find('.tabs-list-item a').eq(initialIndex).click();\n }\n });\n\n function changeState(index) {\n if (index) {\n hash.add({ 'tab': index });\n } else if (hash.get('tab')) {\n hash.remove('tab');\n }\n\n if (typeof window.ga === 'function') {\n var locationHash = window.location.hash;\n\n if (locationHash === '#!') {\n locationHash = '';\n }\n\n var location = window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.search + locationHash;\n\n if (typeof window.ga === 'function') {\n window.ga('send', {\n 'hitType': 'pageview',\n 'page': location\n });\n }\n }\n }\n\n },\n payment: function (scope) {\n scope = scope ? scope + ' ' : '';\n $(scope + '.tabs-payment li').on('click', function () {\n $(scope + '.tabs-payment li').removeClass('current');\n $(this).addClass('current');\n\n var cIndex = $(this).index();\n\n $(scope + '.table-payout table:first td').removeClass('current');\n $(scope + '.table-payout table:first tr:visible').each(function () {\n $(this).find('td.invisible').eq(cIndex).addClass('current');\n });\n\n $(scope + '.tip:visible').trigger('click');\n\n return false;\n });\n }\n};\n\nexport default tabs;\n\nApp.Util.tabs = tabs;\n","/* eslint-disable no-dupe-class-members, no-unused-expressions */\nfunction getElements(toast, elementRef){\n return toast.querySelectorAll(`[data-ref=${elementRef}]`);\n}\n\nfunction getElement(toast, elementRef){\n return getElements(toast, elementRef)[0];\n}\n\nclass Toast {\n toasts = [];\n dialogSupported = typeof HTMLDialogElement === 'function';\n #toastContainer = null;\n\n constructor(settings = {}) {\n this.#init(settings);\n }\n\n #init(settings) {\n this.SETTINGS = {\n id: 'toast',\n duration: 2000,\n reverseOrder: false,\n ...settings\n };\n\n const toastContainerElm = document.createElement('div');\n toastContainerElm.classList.add(this.SETTINGS.id + '-container');\n this.#toastContainer = document.body.appendChild(toastContainerElm);\n }\n\n #createToastElement(defaults) {\n const toast = document.createElement('dialog');\n toast.classList.add(...[\n defaults.id,\n `${defaults.id}-${defaults.type ?? 'default'}`,\n defaults.className ?? null,\n ...(defaults.classList ? defaults.classList : [null]),\n 'align-items-center',\n 'border-0',\n 'p-0'\n ].filter((token) => token !== null));\n\n if (this.toasts.find((toast) => toast.id === defaults.id)) {\n defaults.id = `${defaults.id}-${this.toasts.length}`;\n }\n\n toast.setAttribute('id', defaults.id);\n toast.setAttribute('role', 'alert');\n toast.dataset.component = 'toast';\n\n toast.innerHTML = `\n
\n
\n ${defaults.autoHide ? '' : ''}\n
\n `;\n\n this.toasts.push(toast);\n this.#toastContainer[defaults.reverseOrder ? 'prepend' : 'appendChild'](toast);\n\n return toast;\n }\n\n #cleanToast(toast) {\n this.toasts = this.toasts.filter((item) => item !== toast);\n toast.remove();\n }\n\n #setupEvents(toast, settings) {\n toast.addEventListener('close', (event) => {\n toast.dispatchEvent(new Event('cancel'));\n this.#cleanToast(event.target);\n }, { once: true });\n\n if (settings.autoHide) {\n toast.addEventListener('animationend', () => {\n toast.style.animationDelay = `${settings.duration}ms`;\n toast.classList.add('is-closing');\n toast.addEventListener('animationend', () => {\n toast.classList.add('d-none');\n toast.close();\n }, { once: true });\n }, { once: true });\n }\n }\n\n show(settings = {}) {\n const defaults = {\n autoHide: true,\n dismissible: false,\n ...this.SETTINGS,\n ...settings\n };\n\n const toast = this.#createToastElement(defaults);\n\n const toastMessage = getElement(toast, 'message');\n if (settings.message) {\n toastMessage.innerHTML = settings.message;\n } else if (settings.actions === false || settings.actions === null || settings.actions === '') {\n toastMessage.remove();\n }\n\n this.#setupEvents(toast, defaults);\n\n toast.show();\n\n return toast;\n }\n\n success(message, config = {}) {\n return this.show({\n type: 'success',\n classList: ['text-white', 'bg-success'],\n message,\n ...config\n });\n }\n\n error(message, config = {}) {\n return this.show({\n type: 'error',\n classList: ['text-white', 'bg-danger'],\n message,\n ...config\n });\n }\n\n warning(message, config = {}) {\n return this.show({\n type: 'warning',\n classList: ['bg-warning'],\n message,\n ...config\n });\n }\n\n info(message, config = {}) {\n return this.show({\n type: 'info',\n classList: ['bg-info'],\n message,\n ...config\n });\n }\n\n log(message, config = {}) {\n return this.show({\n type: 'log',\n message,\n ...config\n });\n }\n\n closeAll() {\n this.toasts.forEach((toast) => {\n toast.close('close');\n });\n }\n\n close(id) {\n this.toasts.find((toast) => toast.id === id)?.close('close');\n }\n}\n\nexport default Toast;\n","if (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n}\n","import 'whatwg-fetch';\nimport './es6.nodelist.foreach';\nimport './node.classList';\n","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*\n *global self, document, DOMException\n */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif ('document' in window.self) {\n\n // Full polyfill for browsers with no classList support\n // Including IE < Edge missing SVGElement.classList\n if (!('classList' in document.createElement('_'))\n || document.createElementNS && !('classList' in document.createElementNS('http://www.w3.org/2000/svg', 'g'))) {\n\n (function (view) {\n\n 'use strict';\n\n if (!('Element' in view)) return;\n\n var classListProp = 'classList';\n var protoProp = 'prototype';\n var elemCtrProto = view.Element[protoProp];\n var objCtr = Object;\n var strTrim = String[protoProp].trim || function () {\n return this.replace(/^\\s+|\\s+$/g, '');\n };\n var arrIndexOf = Array[protoProp].indexOf || function (item) {\n var i = 0;\n var len = this.length;\n for (; i < len; i++) {\n if (i in this && this[i] === item) {\n return i;\n }\n }\n return -1;\n };\n // Vendors: please allow content code to instantiate DOMExceptions\n var DOMEx = function (type, message) {\n this.name = type;\n this.code = DOMException[type];\n this.message = message;\n };\n var checkTokenAndGetIndex = function (classList, token) {\n if (token === '') {\n throw new DOMEx(\n 'SYNTAX_ERR',\n 'An invalid or illegal string was specified'\n );\n }\n if (/\\s/.test(token)) {\n throw new DOMEx(\n 'INVALID_CHARACTER_ERR',\n 'String contains an invalid character'\n );\n }\n return arrIndexOf.call(classList, token);\n };\n var ClassList = function (elem) {\n var trimmedClasses = strTrim.call(elem.getAttribute('class') || '');\n var classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : [];\n var i = 0;\n var len = classes.length;\n for (; i < len; i++) {\n this.push(classes[i]);\n }\n this._updateClassName = function () {\n elem.setAttribute('class', this.toString());\n };\n };\n var classListProto = ClassList[protoProp] = [];\n var classListGetter = function () {\n return new ClassList(this);\n };\n // Most DOMException implementations don't allow calling DOMException's toString()\n // on non-DOMExceptions. Error's toString() is sufficient here.\n DOMEx[protoProp] = Error[protoProp];\n classListProto.item = function (i) {\n return this[i] || null;\n };\n classListProto.contains = function (token) {\n token += '';\n return checkTokenAndGetIndex(this, token) !== -1;\n };\n classListProto.add = function () {\n var tokens = arguments;\n var i = 0;\n var l = tokens.length;\n var token;\n var updated = false;\n do {\n token = tokens[i] + '';\n if (checkTokenAndGetIndex(this, token) === -1) {\n this.push(token);\n updated = true;\n }\n }\n while (++i < l);\n\n if (updated) {\n this._updateClassName();\n }\n };\n\n classListProto.remove = function () {\n var tokens = arguments;\n var i = 0;\n var l = tokens.length;\n var token;\n var updated = false;\n var index;\n do {\n token = tokens[i] + '';\n index = checkTokenAndGetIndex(this, token);\n while (index !== -1) {\n this.splice(index, 1);\n updated = true;\n index = checkTokenAndGetIndex(this, token);\n }\n }\n while (++i < l);\n\n if (updated) {\n this._updateClassName();\n }\n };\n classListProto.toggle = function (token, force) {\n token += '';\n\n var result = this.contains(token);\n var method = result ?\n force !== true && 'remove'\n :\n force !== false && 'add';\n\n if (method) {\n this[method](token);\n }\n\n if (force === true || force === false) {\n return force;\n } else {\n return !result;\n }\n };\n classListProto.toString = function () {\n return this.join(' ');\n };\n\n if (objCtr.defineProperty) {\n var classListPropDesc = {\n get: classListGetter,\n enumerable: true,\n configurable: true\n };\n try {\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n } catch (ex) { // IE 8 doesn't support enumerable:true\n // adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n // modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n if (ex.number === undefined || ex.number === -0x7FF5EC54) {\n classListPropDesc.enumerable = false;\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n }\n }\n } else if (objCtr[protoProp].__defineGetter__) {\n elemCtrProto.__defineGetter__(classListProp, classListGetter);\n }\n\n }(window.self));\n }\n\n // There is full or partial native classList support, so just check if we need\n // to normalize the add/remove and toggle APIs.\n\n (function () {\n 'use strict';\n\n var testElement = document.createElement('_');\n\n testElement.classList.add('c1', 'c2');\n\n // Polyfill for IE 10/11 and Firefox <26, where classList.add and\n // classList.remove exist but support only one argument at a time.\n if (!testElement.classList.contains('c2')) {\n var createMethod = function (method) {\n var original = DOMTokenList.prototype[method];\n\n DOMTokenList.prototype[method] = function (token) {\n var i;\n var len = arguments.length;\n\n for (i = 0; i < len; i++) {\n token = arguments[i];\n original.call(this, token);\n }\n };\n };\n createMethod('add');\n createMethod('remove');\n }\n\n testElement.classList.toggle('c3', false);\n\n // Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n // support the second argument.\n if (testElement.classList.contains('c3')) {\n var _toggle = DOMTokenList.prototype.toggle;\n\n DOMTokenList.prototype.toggle = function (token, force) {\n if (1 in arguments && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n\n }\n\n testElement = null;\n }());\n}\n","import $ from 'jquery';\n\nconst siteSearch = {\n init() {\n const list = $('.search-results');\n const totalListItems = list.find('> li').length;\n const hashKey = 'list-result-items';\n const showMoreBtn = $('.search-results-more');\n\n if (window.location.hash.includes(hashKey)) {\n showMore(window.location.hash.split('=')[1], '> li');\n }\n\n showMoreBtn.on('click', function () {\n showMoreBtn.addClass('is-loading');\n\n setTimeout(() => {\n showMoreBtn.removeClass('is-loading');\n showMore(showMoreBtn.data('pagination'), '> li.d-none');\n }, 300);\n\n return false;\n });\n\n function showMore(pagination, select) {\n list.find(select).slice(0, pagination).removeClass('d-none');\n\n var visibleListItems = list.find('> li:not(.d-none)').length;\n\n window.location.hash = `${hashKey}=${visibleListItems}`;\n\n if (totalListItems === visibleListItems) {\n showMoreBtn.hide();\n }\n }\n }\n};\n\nexport default siteSearch;\n","!function (e, t) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define(t) : e.AOS = t();\n}(this, function () {\n \"use strict\";\n\n var e = \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : {},\n t = \"Expected a function\",\n n = NaN,\n o = \"[object Symbol]\",\n i = /^\\s+|\\s+$/g,\n a = /^[-+]0x[0-9a-f]+$/i,\n r = /^0b[01]+$/i,\n c = /^0o[0-7]+$/i,\n s = parseInt,\n u = \"object\" == typeof e && e && e.Object === Object && e,\n d = \"object\" == typeof self && self && self.Object === Object && self,\n l = u || d || Function(\"return this\")(),\n f = Object.prototype.toString,\n m = Math.max,\n p = Math.min,\n b = function () {\n return l.Date.now();\n };\n\n function v(e, n, o) {\n var i,\n a,\n r,\n c,\n s,\n u,\n d = 0,\n l = !1,\n f = !1,\n v = !0;\n if (\"function\" != typeof e) throw new TypeError(t);\n\n function y(t) {\n var n = i,\n o = a;\n return i = a = void 0, d = t, c = e.apply(o, n);\n }\n\n function h(e) {\n var t = e - u;\n return void 0 === u || t >= n || t < 0 || f && e - d >= r;\n }\n\n function k() {\n var e = b();\n if (h(e)) return x(e);\n s = setTimeout(k, function (e) {\n var t = n - (e - u);\n return f ? p(t, r - (e - d)) : t;\n }(e));\n }\n\n function x(e) {\n return s = void 0, v && i ? y(e) : (i = a = void 0, c);\n }\n\n function O() {\n var e = b(),\n t = h(e);\n\n if (i = arguments, a = this, u = e, t) {\n if (void 0 === s) return function (e) {\n return d = e, s = setTimeout(k, n), l ? y(e) : c;\n }(u);\n if (f) return s = setTimeout(k, n), y(u);\n }\n\n return void 0 === s && (s = setTimeout(k, n)), c;\n }\n\n return n = w(n) || 0, g(o) && (l = !!o.leading, r = (f = \"maxWait\" in o) ? m(w(o.maxWait) || 0, n) : r, v = \"trailing\" in o ? !!o.trailing : v), O.cancel = function () {\n void 0 !== s && clearTimeout(s), d = 0, i = u = a = s = void 0;\n }, O.flush = function () {\n return void 0 === s ? c : x(b());\n }, O;\n }\n\n function g(e) {\n var t = typeof e;\n return !!e && (\"object\" == t || \"function\" == t);\n }\n\n function w(e) {\n if (\"number\" == typeof e) return e;\n if (function (e) {\n return \"symbol\" == typeof e || function (e) {\n return !!e && \"object\" == typeof e;\n }(e) && f.call(e) == o;\n }(e)) return n;\n\n if (g(e)) {\n var t = \"function\" == typeof e.valueOf ? e.valueOf() : e;\n e = g(t) ? t + \"\" : t;\n }\n\n if (\"string\" != typeof e) return 0 === e ? e : +e;\n e = e.replace(i, \"\");\n var u = r.test(e);\n return u || c.test(e) ? s(e.slice(2), u ? 2 : 8) : a.test(e) ? n : +e;\n }\n\n var y = function (e, n, o) {\n var i = !0,\n a = !0;\n if (\"function\" != typeof e) throw new TypeError(t);\n return g(o) && (i = \"leading\" in o ? !!o.leading : i, a = \"trailing\" in o ? !!o.trailing : a), v(e, n, {\n leading: i,\n maxWait: n,\n trailing: a\n });\n },\n h = \"Expected a function\",\n k = NaN,\n x = \"[object Symbol]\",\n O = /^\\s+|\\s+$/g,\n j = /^[-+]0x[0-9a-f]+$/i,\n E = /^0b[01]+$/i,\n N = /^0o[0-7]+$/i,\n z = parseInt,\n C = \"object\" == typeof e && e && e.Object === Object && e,\n A = \"object\" == typeof self && self && self.Object === Object && self,\n q = C || A || Function(\"return this\")(),\n L = Object.prototype.toString,\n T = Math.max,\n M = Math.min,\n S = function () {\n return q.Date.now();\n };\n\n function D(e) {\n var t = typeof e;\n return !!e && (\"object\" == t || \"function\" == t);\n }\n\n function H(e) {\n if (\"number\" == typeof e) return e;\n if (function (e) {\n return \"symbol\" == typeof e || function (e) {\n return !!e && \"object\" == typeof e;\n }(e) && L.call(e) == x;\n }(e)) return k;\n\n if (D(e)) {\n var t = \"function\" == typeof e.valueOf ? e.valueOf() : e;\n e = D(t) ? t + \"\" : t;\n }\n\n if (\"string\" != typeof e) return 0 === e ? e : +e;\n e = e.replace(O, \"\");\n var n = E.test(e);\n return n || N.test(e) ? z(e.slice(2), n ? 2 : 8) : j.test(e) ? k : +e;\n }\n\n var $ = function (e, t, n) {\n var o,\n i,\n a,\n r,\n c,\n s,\n u = 0,\n d = !1,\n l = !1,\n f = !0;\n if (\"function\" != typeof e) throw new TypeError(h);\n\n function m(t) {\n var n = o,\n a = i;\n return o = i = void 0, u = t, r = e.apply(a, n);\n }\n\n function p(e) {\n var n = e - s;\n return void 0 === s || n >= t || n < 0 || l && e - u >= a;\n }\n\n function b() {\n var e = S();\n if (p(e)) return v(e);\n c = setTimeout(b, function (e) {\n var n = t - (e - s);\n return l ? M(n, a - (e - u)) : n;\n }(e));\n }\n\n function v(e) {\n return c = void 0, f && o ? m(e) : (o = i = void 0, r);\n }\n\n function g() {\n var e = S(),\n n = p(e);\n\n if (o = arguments, i = this, s = e, n) {\n if (void 0 === c) return function (e) {\n return u = e, c = setTimeout(b, t), d ? m(e) : r;\n }(s);\n if (l) return c = setTimeout(b, t), m(s);\n }\n\n return void 0 === c && (c = setTimeout(b, t)), r;\n }\n\n return t = H(t) || 0, D(n) && (d = !!n.leading, a = (l = \"maxWait\" in n) ? T(H(n.maxWait) || 0, t) : a, f = \"trailing\" in n ? !!n.trailing : f), g.cancel = function () {\n void 0 !== c && clearTimeout(c), u = 0, o = s = i = c = void 0;\n }, g.flush = function () {\n return void 0 === c ? r : v(S());\n }, g;\n },\n W = function () {};\n\n function P(e) {\n e && e.forEach(function (e) {\n var t = Array.prototype.slice.call(e.addedNodes),\n n = Array.prototype.slice.call(e.removedNodes);\n if (function e(t) {\n var n = void 0,\n o = void 0;\n\n for (n = 0; n < t.length; n += 1) {\n if ((o = t[n]).dataset && o.dataset.aos) return !0;\n if (o.children && e(o.children)) return !0;\n }\n\n return !1;\n }(t.concat(n))) return W();\n });\n }\n\n function Y() {\n return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n }\n\n var _ = {\n isSupported: function () {\n return !!Y();\n },\n ready: function (e, t) {\n var n = window.document,\n o = new (Y())(P);\n W = t, o.observe(n.documentElement, {\n childList: !0,\n subtree: !0,\n removedNodes: !0\n });\n }\n },\n B = function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n },\n F = function () {\n function e(e, t) {\n for (var n = 0; n < t.length; n++) {\n var o = t[n];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);\n }\n }\n\n return function (t, n, o) {\n return n && e(t.prototype, n), o && e(t, o), t;\n };\n }(),\n I = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n\n for (var o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]);\n }\n\n return e;\n },\n K = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,\n G = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,\n J = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i,\n Q = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i;\n\n function R() {\n return navigator.userAgent || navigator.vendor || window.opera || \"\";\n }\n\n var U = new (function () {\n function e() {\n B(this, e);\n }\n\n return F(e, [{\n key: \"phone\",\n value: function () {\n var e = R();\n return !(!K.test(e) && !G.test(e.substr(0, 4)));\n }\n }, {\n key: \"mobile\",\n value: function () {\n var e = R();\n return !(!J.test(e) && !Q.test(e.substr(0, 4)));\n }\n }, {\n key: \"tablet\",\n value: function () {\n return this.mobile() && !this.phone();\n }\n }, {\n key: \"ie11\",\n value: function () {\n return \"-ms-scroll-limit\" in document.documentElement.style && \"-ms-ime-align\" in document.documentElement.style;\n }\n }]), e;\n }())(),\n V = function (e, t) {\n var n = void 0;\n return U.ie11() ? (n = document.createEvent(\"CustomEvent\")).initCustomEvent(e, !0, !0, {\n detail: t\n }) : n = new CustomEvent(e, {\n detail: t\n }), document.dispatchEvent(n);\n },\n X = function (e) {\n return e.forEach(function (e, t) {\n return function (e, t) {\n var n = e.options,\n o = e.position,\n i = e.node,\n a = (e.data, function () {\n e.animated && (function (e, t) {\n t && t.forEach(function (t) {\n return e.classList.remove(t);\n });\n }(i, n.animatedClassNames), V(\"aos:out\", i), e.options.id && V(\"aos:in:\" + e.options.id, i), e.animated = !1);\n });\n n.mirror && t >= o.out && !n.once ? a() : t >= o.in ? e.animated || (function (e, t) {\n t && t.forEach(function (t) {\n return e.classList.add(t);\n });\n }(i, n.animatedClassNames), V(\"aos:in\", i), e.options.id && V(\"aos:in:\" + e.options.id, i), e.animated = !0) : e.animated && !n.once && a();\n }(e, window.pageYOffset);\n });\n },\n Z = function (e) {\n for (var t = 0, n = 0; e && !isNaN(e.offsetLeft) && !isNaN(e.offsetTop);) t += e.offsetLeft - (\"BODY\" != e.tagName ? e.scrollLeft : 0), n += e.offsetTop - (\"BODY\" != e.tagName ? e.scrollTop : 0), e = e.offsetParent;\n\n return {\n top: n,\n left: t\n };\n },\n ee = function (e, t, n) {\n var o = e.getAttribute(\"data-aos-\" + t);\n\n if (void 0 !== o) {\n if (\"true\" === o) return !0;\n if (\"false\" === o) return !1;\n }\n\n return o || n;\n },\n te = function (e, t) {\n return e.forEach(function (e, n) {\n var o = ee(e.node, \"mirror\", t.mirror),\n i = ee(e.node, \"once\", t.once),\n a = ee(e.node, \"id\"),\n r = t.useClassNames && e.node.getAttribute(\"data-aos\"),\n c = [t.animatedClassName].concat(r ? r.split(\" \") : []).filter(function (e) {\n return \"string\" == typeof e;\n });\n t.initClassName && e.node.classList.add(t.initClassName), e.position = {\n in: function (e, t, n) {\n var o = window.innerHeight,\n i = ee(e, \"anchor\"),\n a = ee(e, \"anchor-placement\"),\n r = Number(ee(e, \"offset\", a ? 0 : t)),\n c = a || n,\n s = e;\n i && document.querySelectorAll(i) && (s = document.querySelectorAll(i)[0]);\n var u = Z(s).top - o;\n\n switch (c) {\n case \"top-bottom\":\n break;\n\n case \"center-bottom\":\n u += s.offsetHeight / 2;\n break;\n\n case \"bottom-bottom\":\n u += s.offsetHeight;\n break;\n\n case \"top-center\":\n u += o / 2;\n break;\n\n case \"center-center\":\n u += o / 2 + s.offsetHeight / 2;\n break;\n\n case \"bottom-center\":\n u += o / 2 + s.offsetHeight;\n break;\n\n case \"top-top\":\n u += o;\n break;\n\n case \"bottom-top\":\n u += o + s.offsetHeight;\n break;\n\n case \"center-top\":\n u += o + s.offsetHeight / 2;\n }\n\n return u + r;\n }(e.node, t.offset, t.anchorPlacement),\n out: o && function (e, t) {\n window.innerHeight;\n var n = ee(e, \"anchor\"),\n o = ee(e, \"offset\", t),\n i = e;\n return n && document.querySelectorAll(n) && (i = document.querySelectorAll(n)[0]), Z(i).top + i.offsetHeight - o;\n }(e.node, t.offset)\n }, e.options = {\n once: i,\n mirror: o,\n animatedClassNames: c,\n id: a\n };\n }), e;\n },\n ne = function () {\n var e = document.querySelectorAll(\"[data-aos]\");\n return Array.prototype.map.call(e, function (e) {\n return {\n node: e\n };\n });\n },\n oe = [],\n ie = !1,\n ae = {\n offset: 120,\n delay: 0,\n easing: \"ease\",\n duration: 400,\n disable: !1,\n once: !1,\n mirror: !1,\n anchorPlacement: \"top-bottom\",\n startEvent: \"DOMContentLoaded\",\n animatedClassName: \"aos-animate\",\n initClassName: \"aos-init\",\n useClassNames: !1,\n disableMutationObserver: !1,\n throttleDelay: 99,\n debounceDelay: 50\n },\n re = function () {\n return document.all && !window.atob;\n },\n ce = function () {\n arguments.length > 0 && void 0 !== arguments[0] && arguments[0] && (ie = !0), ie && (oe = te(oe, ae), X(oe), window.addEventListener(\"scroll\", y(function () {\n X(oe, ae.once);\n }, ae.throttleDelay)));\n },\n se = function () {\n if (oe = ne(), de(ae.disable) || re()) return ue();\n ce();\n },\n ue = function () {\n oe.forEach(function (e, t) {\n e.node.removeAttribute(\"data-aos\"), e.node.removeAttribute(\"data-aos-easing\"), e.node.removeAttribute(\"data-aos-duration\"), e.node.removeAttribute(\"data-aos-delay\"), ae.initClassName && e.node.classList.remove(ae.initClassName), ae.animatedClassName && e.node.classList.remove(ae.animatedClassName);\n });\n },\n de = function (e) {\n return !0 === e || \"mobile\" === e && U.mobile() || \"phone\" === e && U.phone() || \"tablet\" === e && U.tablet() || \"function\" == typeof e && !0 === e();\n };\n\n return {\n init: function (e) {\n return ae = I(ae, e), oe = ne(), ae.disableMutationObserver || _.isSupported() || (console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '), ae.disableMutationObserver = !0), ae.disableMutationObserver || _.ready(\"[data-aos]\", se), de(ae.disable) || re() ? ue() : (document.querySelector(\"body\").setAttribute(\"data-aos-easing\", ae.easing), document.querySelector(\"body\").setAttribute(\"data-aos-duration\", ae.duration), document.querySelector(\"body\").setAttribute(\"data-aos-delay\", ae.delay), -1 === [\"DOMContentLoaded\", \"load\"].indexOf(ae.startEvent) ? document.addEventListener(ae.startEvent, function () {\n ce(!0);\n }) : window.addEventListener(\"load\", function () {\n ce(!0);\n }), \"DOMContentLoaded\" === ae.startEvent && [\"complete\", \"interactive\"].indexOf(document.readyState) > -1 && ce(!0), window.addEventListener(\"resize\", $(ce, ae.debounceDelay, !0)), window.addEventListener(\"orientationchange\", $(ce, ae.debounceDelay, !0)), oe);\n },\n refresh: ce,\n refreshHard: se\n };\n});","/*!\n * Bootstrap base-component.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data'), require('./util/index'), require('./dom/event-handler'), require('./util/config')) : typeof define === 'function' && define.amd ? define(['./dom/data', './util/index', './dom/event-handler', './util/config'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.BaseComponent = factory(global.Data, global.Index, global.EventHandler, global.Config));\n})(this, function (Data, index, EventHandler, Config) {\n 'use strict';\n\n const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : {\n default: e\n };\n\n const Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n\n const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n\n const Config__default = /*#__PURE__*/_interopDefaultLegacy(Config);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n\n const VERSION = '5.2.0';\n /**\n * Class definition\n */\n\n class BaseComponent extends Config__default.default {\n constructor(element, config) {\n super();\n element = index.getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n this._config = this._getConfig(config);\n Data__default.default.set(this._element, this.constructor.DATA_KEY, this);\n } // Public\n\n\n dispose() {\n Data__default.default.remove(this._element, this.constructor.DATA_KEY);\n EventHandler__default.default.off(this._element, this.constructor.EVENT_KEY);\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n index.executeAfterTransition(callback, element, isAnimated);\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n } // Static\n\n\n static getInstance(element) {\n return Data__default.default.get(index.getElement(element), this.DATA_KEY);\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n\n static get VERSION() {\n return VERSION;\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n\n }\n\n return BaseComponent;\n});","/*!\n * Bootstrap collapse.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./dom/event-handler'), require('./dom/selector-engine'), require('./base-component')) : typeof define === 'function' && define.amd ? define(['./util/index', './dom/event-handler', './dom/selector-engine', './base-component'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Index, global.EventHandler, global.SelectorEngine, global.BaseComponent));\n})(this, function (index, EventHandler, SelectorEngine, BaseComponent) {\n 'use strict';\n\n const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : {\n default: e\n };\n\n const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n\n const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n\n const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n\n const NAME = 'collapse';\n const DATA_KEY = 'bs.collapse';\n const EVENT_KEY = `.${DATA_KEY}`;\n const DATA_API_KEY = '.data-api';\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\n const CLASS_NAME_SHOW = 'show';\n const CLASS_NAME_COLLAPSE = 'collapse';\n const CLASS_NAME_COLLAPSING = 'collapsing';\n const CLASS_NAME_COLLAPSED = 'collapsed';\n const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\n const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\n const WIDTH = 'width';\n const HEIGHT = 'height';\n const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]';\n const Default = {\n parent: null,\n toggle: true\n };\n const DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n };\n /**\n * Class definition\n */\n\n class Collapse extends BaseComponent__default.default {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE);\n\n for (const elem of toggleList) {\n const selector = index.getSelectorFromElement(elem);\n const filterElement = SelectorEngine__default.default.find(selector).filter(foundElement => foundElement === this._element);\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n\n this._initializeChildren();\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\n static get Default() {\n return Default;\n }\n\n static get DefaultType() {\n return DefaultType;\n }\n\n static get NAME() {\n return NAME;\n } // Public\n\n\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n\n let activeChildren = []; // find active children\n\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n\n const startEvent = EventHandler__default.default.trigger(this._element, EVENT_SHOW);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n\n const dimension = this._getDimension();\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.style[dimension] = 0;\n\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n this._element.style[dimension] = '';\n EventHandler__default.default.trigger(this._element, EVENT_SHOWN);\n };\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n\n this._queueCallback(complete, this._element, true);\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n\n const startEvent = EventHandler__default.default.trigger(this._element, EVENT_HIDE);\n\n if (startEvent.defaultPrevented) {\n return;\n }\n\n const dimension = this._getDimension();\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n index.reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n\n for (const trigger of this._triggerArray) {\n const element = index.getElementFromSelector(trigger);\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n\n this._isTransitioning = true;\n\n const complete = () => {\n this._isTransitioning = false;\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n\n EventHandler__default.default.trigger(this._element, EVENT_HIDDEN);\n };\n\n this._element.style[dimension] = '';\n\n this._queueCallback(complete, this._element, true);\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW);\n } // Private\n\n\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n config.parent = index.getElement(config.parent);\n return config;\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);\n\n for (const element of children) {\n const selected = index.getElementFromSelector(element);\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine__default.default.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth\n\n return SelectorEngine__default.default.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n } // Static\n\n\n static jQueryInterface(config) {\n const _config = {};\n\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n }\n });\n }\n\n }\n /**\n * Data API implementation\n */\n\n\n EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n const selector = index.getSelectorFromElement(this);\n const selectorElements = SelectorEngine__default.default.find(selector);\n\n for (const element of selectorElements) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n });\n /**\n * jQuery\n */\n\n index.defineJQueryPlugin(Collapse);\n return Collapse;\n});","/*!\n * Bootstrap data.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Data = factory());\n})(this, function () {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n const elementMap = new Map();\n const data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n\n const instanceMap = elementMap.get(element); // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n\n instanceMap.set(key, instance);\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n\n return null;\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n\n };\n return data;\n});","/*!\n * Bootstrap event-handler.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../util/index')) : typeof define === 'function' && define.amd ? define(['../util/index'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory(global.Index));\n})(this, function (index) {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n const namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\n const stripNameRegex = /\\..*/;\n const stripUidRegex = /::\\d+$/;\n const eventRegistry = {}; // Events storage\n\n let uidEvent = 1;\n const customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n };\n const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n /**\n * Private methods\n */\n\n function makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n }\n\n function getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n }\n\n function bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n\n return fn.apply(element, [event]);\n };\n }\n\n function bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n\n hydrateObj(event, {\n delegateTarget: target\n });\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n\n return fn.apply(target, [event]);\n }\n }\n };\n }\n\n function findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n }\n\n function normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'; // todo: tooltip passes `false` instead of selector, so we need to check\n\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n\n return [isDelegated, callable, typeEvent];\n }\n\n function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n\n callable = wrapFunction(callable);\n }\n\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n }\n\n function removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n\n if (!fn) {\n return;\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n }\n\n function removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n\n for (const handlerKey of Object.keys(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n const event = storeElementEvent[handlerKey];\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n }\n\n function getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n }\n\n const EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n\n for (const keyHandlers of Object.keys(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n const event = storeElementEvent[keyHandlers];\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n\n const $ = index.getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n\n let evt = new Event(event, {\n bubbles,\n cancelable: true\n });\n evt = hydrateObj(evt, args);\n\n if (defaultPrevented) {\n evt.preventDefault();\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n\n return evt;\n }\n\n };\n\n function hydrateObj(obj, meta) {\n for (const [key, value] of Object.entries(meta || {})) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n\n get() {\n return value;\n }\n\n });\n }\n }\n\n return obj;\n }\n\n return EventHandler;\n});","/*!\n * Bootstrap manipulator.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Manipulator = factory());\n})(this, function () {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n function normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n\n if (value === 'false') {\n return false;\n }\n\n if (value === Number(value).toString()) {\n return Number(value);\n }\n\n if (value === '' || value === 'null') {\n return null;\n }\n\n if (typeof value !== 'string') {\n return value;\n }\n\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n }\n\n function normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n }\n\n const Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n\n return attributes;\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n\n };\n return Manipulator;\n});","/*!\n * Bootstrap selector-engine.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../util/index')) : typeof define === 'function' && define.amd ? define(['../util/index'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SelectorEngine = factory(global.Index));\n})(this, function (index) {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n const SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n\n return parents;\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling;\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n\n previous = previous.previousElementSibling;\n }\n\n return [];\n },\n\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n\n next = next.nextElementSibling;\n }\n\n return [];\n },\n\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !index.isDisabled(el) && index.isVisible(el));\n }\n\n };\n return SelectorEngine;\n});","/*!\n * Bootstrap tab.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./util/index'), require('./dom/event-handler'), require('./dom/selector-engine'), require('./base-component')) : typeof define === 'function' && define.amd ? define(['./util/index', './dom/event-handler', './dom/selector-engine', './base-component'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Index, global.EventHandler, global.SelectorEngine, global.BaseComponent));\n})(this, function (index, EventHandler, SelectorEngine, BaseComponent) {\n 'use strict';\n\n const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : {\n default: e\n };\n\n const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n\n const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n\n const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Constants\n */\n\n\n const NAME = 'tab';\n const DATA_KEY = 'bs.tab';\n const EVENT_KEY = `.${DATA_KEY}`;\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}`;\n const EVENT_KEYDOWN = `keydown${EVENT_KEY}`;\n const EVENT_LOAD_DATA_API = `load${EVENT_KEY}`;\n const ARROW_LEFT_KEY = 'ArrowLeft';\n const ARROW_RIGHT_KEY = 'ArrowRight';\n const ARROW_UP_KEY = 'ArrowUp';\n const ARROW_DOWN_KEY = 'ArrowDown';\n const CLASS_NAME_ACTIVE = 'active';\n const CLASS_NAME_FADE = 'fade';\n const CLASS_NAME_SHOW = 'show';\n const CLASS_DROPDOWN = 'dropdown';\n const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';\n const SELECTOR_DROPDOWN_ITEM = '.dropdown-item';\n const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';\n const SELECTOR_TAB_PANEL = '.list-group, .nav, [role=\"tablist\"]';\n const SELECTOR_OUTER = '.nav-item, .list-group-item';\n const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]'; // todo:v6: could be only `tab`\n\n const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;\n const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle=\"tab\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"pill\"], .${CLASS_NAME_ACTIVE}[data-bs-toggle=\"list\"]`;\n /**\n * Class definition\n */\n\n class Tab extends BaseComponent__default.default {\n constructor(element) {\n super(element);\n this._parent = this._element.closest(SELECTOR_TAB_PANEL);\n\n if (!this._parent) {\n return; // todo: should Throw exception on v6\n // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)\n } // Set up initial aria attributes\n\n\n this._setInitialAttributes(this._parent, this._getChildren());\n\n EventHandler__default.default.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));\n } // Getters\n\n\n static get NAME() {\n return NAME;\n } // Public\n\n\n show() {\n // Shows this elem and deactivate the active sibling if exists\n const innerElem = this._element;\n\n if (this._elemIsActive(innerElem)) {\n return;\n } // Search for active tab on same parent to deactivate it\n\n\n const active = this._getActiveElem();\n\n const hideEvent = active ? EventHandler__default.default.trigger(active, EVENT_HIDE, {\n relatedTarget: innerElem\n }) : null;\n const showEvent = EventHandler__default.default.trigger(innerElem, EVENT_SHOW, {\n relatedTarget: active\n });\n\n if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {\n return;\n }\n\n this._deactivate(active, innerElem);\n\n this._activate(innerElem, active);\n } // Private\n\n\n _activate(element, relatedElem) {\n if (!element) {\n return;\n }\n\n element.classList.add(CLASS_NAME_ACTIVE);\n\n this._activate(index.getElementFromSelector(element)); // Search and activate/show the proper section\n\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.add(CLASS_NAME_SHOW);\n return;\n }\n\n element.focus();\n element.removeAttribute('tabindex');\n element.setAttribute('aria-selected', true);\n\n this._toggleDropDown(element, true);\n\n EventHandler__default.default.trigger(element, EVENT_SHOWN, {\n relatedTarget: relatedElem\n });\n };\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));\n }\n\n _deactivate(element, relatedElem) {\n if (!element) {\n return;\n }\n\n element.classList.remove(CLASS_NAME_ACTIVE);\n element.blur();\n\n this._deactivate(index.getElementFromSelector(element)); // Search and deactivate the shown section too\n\n\n const complete = () => {\n if (element.getAttribute('role') !== 'tab') {\n element.classList.remove(CLASS_NAME_SHOW);\n return;\n }\n\n element.setAttribute('aria-selected', false);\n element.setAttribute('tabindex', '-1');\n\n this._toggleDropDown(element, false);\n\n EventHandler__default.default.trigger(element, EVENT_HIDDEN, {\n relatedTarget: relatedElem\n });\n };\n\n this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));\n }\n\n _keydown(event) {\n if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {\n return;\n }\n\n event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page\n\n event.preventDefault();\n const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);\n const nextActiveElement = index.getNextActiveElement(this._getChildren().filter(element => !index.isDisabled(element)), event.target, isNext, true);\n\n if (nextActiveElement) {\n Tab.getOrCreateInstance(nextActiveElement).show();\n }\n }\n\n _getChildren() {\n // collection of inner elements\n return SelectorEngine__default.default.find(SELECTOR_INNER_ELEM, this._parent);\n }\n\n _getActiveElem() {\n return this._getChildren().find(child => this._elemIsActive(child)) || null;\n }\n\n _setInitialAttributes(parent, children) {\n this._setAttributeIfNotExists(parent, 'role', 'tablist');\n\n for (const child of children) {\n this._setInitialAttributesOnChild(child);\n }\n }\n\n _setInitialAttributesOnChild(child) {\n child = this._getInnerElement(child);\n\n const isActive = this._elemIsActive(child);\n\n const outerElem = this._getOuterElement(child);\n\n child.setAttribute('aria-selected', isActive);\n\n if (outerElem !== child) {\n this._setAttributeIfNotExists(outerElem, 'role', 'presentation');\n }\n\n if (!isActive) {\n child.setAttribute('tabindex', '-1');\n }\n\n this._setAttributeIfNotExists(child, 'role', 'tab'); // set attributes to the related panel too\n\n\n this._setInitialAttributesOnTargetPanel(child);\n }\n\n _setInitialAttributesOnTargetPanel(child) {\n const target = index.getElementFromSelector(child);\n\n if (!target) {\n return;\n }\n\n this._setAttributeIfNotExists(target, 'role', 'tabpanel');\n\n if (child.id) {\n this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`);\n }\n }\n\n _toggleDropDown(element, open) {\n const outerElem = this._getOuterElement(element);\n\n if (!outerElem.classList.contains(CLASS_DROPDOWN)) {\n return;\n }\n\n const toggle = (selector, className) => {\n const element = SelectorEngine__default.default.findOne(selector, outerElem);\n\n if (element) {\n element.classList.toggle(className, open);\n }\n };\n\n toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);\n toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW);\n toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE);\n outerElem.setAttribute('aria-expanded', open);\n }\n\n _setAttributeIfNotExists(element, attribute, value) {\n if (!element.hasAttribute(attribute)) {\n element.setAttribute(attribute, value);\n }\n }\n\n _elemIsActive(elem) {\n return elem.classList.contains(CLASS_NAME_ACTIVE);\n } // Try to get the inner element (usually the .nav-link)\n\n\n _getInnerElement(elem) {\n return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine__default.default.findOne(SELECTOR_INNER_ELEM, elem);\n } // Try to get the outer element (usually the .nav-item)\n\n\n _getOuterElement(elem) {\n return elem.closest(SELECTOR_OUTER) || elem;\n } // Static\n\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tab.getOrCreateInstance(this);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n\n data[config]();\n });\n }\n\n }\n /**\n * Data API implementation\n */\n\n\n EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n if (index.isDisabled(this)) {\n return;\n }\n\n Tab.getOrCreateInstance(this).show();\n });\n /**\n * Initialize on focus\n */\n\n EventHandler__default.default.on(window, EVENT_LOAD_DATA_API, () => {\n for (const element of SelectorEngine__default.default.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {\n Tab.getOrCreateInstance(element);\n }\n });\n /**\n * jQuery\n */\n\n index.defineJQueryPlugin(Tab);\n return Tab;\n});","/*!\n * Bootstrap config.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./index'), require('../dom/manipulator')) : typeof define === 'function' && define.amd ? define(['./index', '../dom/manipulator'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Config = factory(global.Index, global.Manipulator));\n})(this, function (index, Manipulator) {\n 'use strict';\n\n const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : {\n default: e\n };\n\n const Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Class definition\n */\n\n\n class Config {\n // Getters\n static get Default() {\n return {};\n }\n\n static get DefaultType() {\n return {};\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n\n this._typeCheckConfig(config);\n\n return config;\n }\n\n _configAfterMerge(config) {\n return config;\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = index.isElement(element) ? Manipulator__default.default.getDataAttribute(element, 'config') : {}; // try to parse\n\n return { ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(index.isElement(element) ? Manipulator__default.default.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const property of Object.keys(configTypes)) {\n const expectedTypes = configTypes[property];\n const value = config[property];\n const valueType = index.isElement(value) ? 'element' : index.toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n\n }\n\n return Config;\n});","/*!\n * Bootstrap index.js v5.2.0 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Index = {}));\n})(this, function (exports) {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.2.0): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n const MAX_UID = 1000000;\n const MILLISECONDS_MULTIPLIER = 1000;\n const TRANSITION_END = 'transitionend'; // Shout-out Angus Croll (https://goo.gl/pxwQGp)\n\n const toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n /**\n * Public Util API\n */\n\n\n const getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n\n return prefix;\n };\n\n const getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n\n return selector;\n };\n\n const getSelectorFromElement = element => {\n const selector = getSelector(element);\n\n if (selector) {\n return document.querySelector(selector) ? selector : null;\n }\n\n return null;\n };\n\n const getElementFromSelector = element => {\n const selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n const getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n const triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n const isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n\n return typeof object.nodeType !== 'undefined';\n };\n\n const getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(object);\n }\n\n return null;\n };\n\n const isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; // Handle `details` element as its content may falsie appear visible when it is closed\n\n const closedDetails = element.closest('details:not([open])');\n\n if (!closedDetails) {\n return elementIsVisible;\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n\n if (summary === null) {\n return false;\n }\n }\n\n return elementIsVisible;\n };\n\n const isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n\n if (element.classList.contains('disabled')) {\n return true;\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n };\n\n const findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return findShadowRoot(element.parentNode);\n };\n\n const noop = () => {};\n /**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\n\n\n const reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n };\n\n const getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n\n return null;\n };\n\n const DOMContentLoadedCallbacks = [];\n\n const onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n };\n\n const isRTL = () => document.documentElement.dir === 'rtl';\n\n const defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n const execute = callback => {\n if (typeof callback === 'function') {\n callback();\n }\n };\n\n const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n };\n /**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\n\n\n const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement); // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n\n index += shouldGetNext ? 1 : -1;\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))];\n };\n\n exports.defineJQueryPlugin = defineJQueryPlugin;\n exports.execute = execute;\n exports.executeAfterTransition = executeAfterTransition;\n exports.findShadowRoot = findShadowRoot;\n exports.getElement = getElement;\n exports.getElementFromSelector = getElementFromSelector;\n exports.getNextActiveElement = getNextActiveElement;\n exports.getSelectorFromElement = getSelectorFromElement;\n exports.getTransitionDurationFromElement = getTransitionDurationFromElement;\n exports.getUID = getUID;\n exports.getjQuery = getjQuery;\n exports.isDisabled = isDisabled;\n exports.isElement = isElement;\n exports.isRTL = isRTL;\n exports.isVisible = isVisible;\n exports.noop = noop;\n exports.onDOMContentLoaded = onDOMContentLoaded;\n exports.reflow = reflow;\n exports.toType = toType;\n exports.triggerTransitionEnd = triggerTransitionEnd;\n Object.defineProperties(exports, {\n __esModule: {\n value: true\n },\n [Symbol.toStringTag]: {\n value: 'Module'\n }\n });\n});","require('../../modules/es.aggregate-error');\n\nrequire('../../modules/es.array.iterator');\n\nrequire('../../modules/es.object.to-string');\n\nrequire('../../modules/es.promise');\n\nrequire('../../modules/es.promise.all-settled');\n\nrequire('../../modules/es.promise.any');\n\nrequire('../../modules/es.promise.finally');\n\nrequire('../../modules/es.string.iterator');\n\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;","var isCallable = require('../internals/is-callable');\n\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError; // `Assert: IsCallable(argument) is true`\n\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};","var isConstructor = require('../internals/is-constructor');\n\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError; // `Assert: IsConstructor(argument) is true`\n\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar create = require('../internals/object-create');\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\n\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n} // add a key to Array.prototype[@@unscopables]\n\n\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError; // `Assert: Type(argument) is Object`\n\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};","var toIndexedObject = require('../internals/to-indexed-object');\n\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar lengthOfArrayLike = require('../internals/length-of-array-like'); // `Array.prototype.{ indexOf, includes }` methods implementation\n\n\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value; // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++]; // eslint-disable-next-line no-self-compare -- NaN check\n\n if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not\n } else for (; length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n }\n return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return {\n done: !!called++\n };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n }; // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing\n\n\n Array.from(iteratorWithReturn, function () {\n throw 2;\n });\n} catch (error) {\n /* empty */\n}\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n\n try {\n var object = {};\n\n object[ITERATOR] = function () {\n return {\n next: function () {\n return {\n done: ITERATION_SUPPORT = true\n };\n }\n };\n };\n\n exec(object);\n } catch (error) {\n /* empty */\n }\n\n return ITERATION_SUPPORT;\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\n\nvar isCallable = require('../internals/is-callable');\n\nvar classofRaw = require('../internals/classof-raw');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object; // ES3 wrong here\n\nvar CORRECT_ARGUMENTS = classofRaw(function () {\n return arguments;\n}()) == 'Arguments'; // fallback for IE11 Script Access Denied error\n\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) {\n /* empty */\n }\n}; // getting tag from ES6+ `Object.prototype.toString`\n\n\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = function (arg) {\n return String($Error(arg).stack);\n}('zxcasd');\n\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n }\n\n return stack;\n};","var hasOwn = require('../internals/has-own-property');\n\nvar ownKeys = require('../internals/own-keys');\n\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() {\n /* empty */\n }\n\n F.prototype.constructor = null; // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});","'use strict';\n\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\n\nvar create = require('../internals/object-create');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () {\n return this;\n};\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, {\n next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next)\n });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};","var isCallable = require('../internals/is-callable');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar makeBuiltIn = require('../internals/make-built-in');\n\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n\n if (options.global) {\n if (simple) O[key] = value;else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];else if (O[key]) simple = true;\n } catch (error) {\n /* empty */\n }\n\n if (simple) O[key] = value;else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n }\n\n return O;\n};","var global = require('../internals/global'); // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\n\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, {\n value: value,\n configurable: true,\n writable: true\n });\n } catch (error) {\n global[key] = value;\n }\n\n return value;\n};","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar FunctionName = require('../internals/function-name');\n\nvar isCallable = require('../internals/is-callable');\n\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\n\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Iterators = require('../internals/iterators');\n\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () {\n return this;\n};\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS:\n return function keys() {\n return new IteratorConstructor(this, KIND);\n };\n\n case VALUES:\n return function values() {\n return new IteratorConstructor(this, KIND);\n };\n\n case ENTRIES:\n return function entries() {\n return new IteratorConstructor(this, KIND);\n };\n }\n\n return function () {\n return new IteratorConstructor(this);\n };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY; // fix native\n\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n } // Set @@toStringTag to native iterators\n\n\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n } // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n\n\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n\n defaultIterator = function values() {\n return call(nativeIterator, this);\n };\n }\n } // export additional methods\n\n\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({\n target: NAME,\n proto: true,\n forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME\n }, methods);\n } // define iterator\n\n\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, {\n name: DEFAULT\n });\n }\n\n Iterators[NAME] = defaultIterator;\n return methods;\n};","var fails = require('../internals/fails'); // Detect IE8's incomplete defineProperty implementation\n\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, {\n get: function () {\n return 7;\n }\n })[1] != 7;\n});","var global = require('../internals/global');\n\nvar isObject = require('../internals/is-object');\n\nvar document = global.document; // typeof document.createElement is 'object' in old IE\n\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};","module.exports = typeof window == 'object' && typeof Deno != 'object';","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';","var userAgent = require('../internals/engine-user-agent');\n\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);","var classof = require('../internals/classof-raw');\n\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';","var global = require('../internals/global');\n\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.'); // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n} // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\n\n\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;","// IE8- don't enum bug keys\nmodule.exports = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];","var fails = require('../internals/fails');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true; // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});","var global = require('../internals/global');\n\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar isForced = require('../internals/is-forced');\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\n\n\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n\n if (target) for (key in source) {\n sourceProperty = source[key];\n\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target\n\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n } // add a flag to not completely full polyfills\n\n\n if (options.sham || targetProperty && targetProperty.sham) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call; // eslint-disable-next-line es-x/no-reflect -- safe\n\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar aCallable = require('../internals/a-callable');\n\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind); // optional / simple context binding\n\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function\n /* ...args */\n () {\n return fn.apply(that, arguments);\n };\n};","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = function () {\n /* empty */\n }.bind(); // eslint-disable-next-line no-prototype-builtins -- safe\n\n\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype; // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\nvar EXISTS = hasOwn(FunctionPrototype, 'name'); // additional protection from minified / mangled / dropped function names\n\nvar PROPER = EXISTS && function something() {\n /* empty */\n}.name === 'something';\n\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable);\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};","var global = require('../internals/global');\n\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};","var classof = require('../internals/classof');\n\nvar getMethod = require('../internals/get-method');\n\nvar Iterators = require('../internals/iterators');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)];\n};","var call = require('../internals/function-call');\n\nvar aCallable = require('../internals/a-callable');\n\nvar anObject = require('../internals/an-object');\n\nvar tryToString = require('../internals/try-to-string');\n\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};","var aCallable = require('../internals/a-callable'); // `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\n\n\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};","var check = function (it) {\n return it && it.Math == Math && it;\n}; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\n\nmodule.exports = // eslint-disable-next-line es-x/no-global-this -- safe\ncheck(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || // eslint-disable-next-line no-restricted-globals -- safe\ncheck(typeof self == 'object' && self) || check(typeof global == 'object' && global) || // eslint-disable-next-line no-new-func -- fallback\nfunction () {\n return this;\n}() || Function('return this')();","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty); // `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};","module.exports = {};","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');","var DESCRIPTORS = require('../internals/descriptors');\n\nvar fails = require('../internals/fails');\n\nvar createElement = require('../internals/document-create-element'); // Thanks to IE8 for its funny defineProperty\n\n\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () {\n return 7;\n }\n }).a != 7;\n});","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar fails = require('../internals/fails');\n\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split); // fallback for non-array-like ES3 and non-enumerable old V8 strings\n\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar isCallable = require('../internals/is-callable');\n\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString); // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\n\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;","var isObject = require('../internals/is-object');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); // `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\n\n\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar global = require('../internals/global');\n\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar isObject = require('../internals/is-object');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar shared = require('../internals/shared-store');\n\nvar sharedKey = require('../internals/shared-key');\n\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n }\n\n return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n\n get = function (it) {\n return wmget(store, it) || {};\n };\n\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype; // check on default Array iterator\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar fails = require('../internals/fails');\n\nvar isCallable = require('../internals/is-callable');\n\nvar classof = require('../internals/classof');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () {\n /* empty */\n};\n\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction':\n return false;\n }\n\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true; // `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\n\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () {\n called = true;\n }) || called;\n}) ? isConstructorLegacy : isConstructorModern;","var fails = require('../internals/fails');\n\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true : value == NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\nmodule.exports = isForced;","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};","module.exports = false;","var getBuiltIn = require('../internals/get-built-in');\n\nvar isCallable = require('../internals/is-callable');\n\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};","var bind = require('../internals/function-bind-context');\n\nvar call = require('../internals/function-call');\n\nvar anObject = require('../internals/an-object');\n\nvar tryToString = require('../internals/try-to-string');\n\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\n\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar getIterator = require('../internals/get-iterator');\n\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n }\n\n return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable'); // optimisation for array iterators\n\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n }\n\n return new Result(false);\n }\n\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n }\n\n return new Result(false);\n};","var call = require('../internals/function-call');\n\nvar anObject = require('../internals/an-object');\n\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n\n try {\n innerResult = getMethod(iterator, 'return');\n\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};","'use strict';\n\nvar fails = require('../internals/fails');\n\nvar isCallable = require('../internals/is-callable');\n\nvar create = require('../internals/object-create');\n\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false; // `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\n\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n/* eslint-disable es-x/no-array-prototype-keys -- safe */\n\nif ([].keys) {\n arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next`\n\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {}; // FF44- legacy iterators case\n\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); // `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\n\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};","module.exports = {};","var toLength = require('../internals/to-length'); // `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\n\n\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};","var fails = require('../internals/fails');\n\nvar isCallable = require('../internals/is-callable');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar inspectSource = require('../internals/inspect-source');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get; // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\nvar defineProperty = Object.defineProperty;\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () {\n /* empty */\n }, 'length', {\n value: 8\n }).length !== 8;\n});\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n\n if (!hasOwn(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) {\n if (DESCRIPTORS) defineProperty(value, 'name', {\n value: name,\n configurable: true\n });else value.name = name;\n }\n\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', {\n value: options.arity\n });\n }\n\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', {\n writable: false\n }); // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) {\n /* empty */\n }\n\n var state = enforceInternalState(value);\n\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n\n return value;\n}; // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\n\n\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');","var ceil = Math.ceil;\nvar floor = Math.floor; // `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\n\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};","var global = require('../internals/global');\n\nvar bind = require('../internals/function-bind-context');\n\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar macrotask = require('../internals/task').set;\n\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\n\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\n\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise; // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\n\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar flush, head, last, notify, toggle, node, promise, then; // modern engines have queueMicrotask method\n\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n\n while (head) {\n fn = head.fn;\n head = head.next;\n\n try {\n fn();\n } catch (error) {\n if (head) notify();else last = undefined;\n throw error;\n }\n }\n\n last = undefined;\n if (parent) parent.enter();\n }; // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n\n\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, {\n characterData: true\n });\n\n notify = function () {\n node.data = toggle = !toggle;\n }; // environments with maybe non-completely correct, but existent Promise\n\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined); // workaround of WebKit ~ iOS Safari 10.1 bug\n\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n\n notify = function () {\n then(flush);\n }; // Node.js without promises\n\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n }; // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = {\n fn: fn,\n next: undefined\n };\n if (last) last.next = task;\n\n if (!head) {\n head = task;\n notify();\n }\n\n last = task;\n};","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar fails = require('../internals/fails'); // eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\n\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol(); // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n\n return !String(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});","var global = require('../internals/global');\n\nvar isCallable = require('../internals/is-callable');\n\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));","'use strict';\n\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n}; // `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\n\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\n\nvar definePropertiesModule = require('../internals/object-define-properties');\n\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar html = require('../internals/html');\n\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () {\n /* empty */\n};\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n}; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype\n\n\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n\n return temp;\n}; // Create object with fake `null` prototype: use iframe Object with cleared prototype\n\n\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475\n\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n}; // Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\n\n\nvar activeXDocument;\n\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) {\n /* ignore */\n }\n\n NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument); // WSH\n\n var length = enumBugKeys.length;\n\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true; // `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null; // add \"__proto__\" for Object.getPrototypeOf polyfill\n\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar anObject = require('../internals/an-object');\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar objectKeys = require('../internals/object-keys'); // `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\n\n\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n\n return O;\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\n\nvar anObject = require('../internals/an-object');\n\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError; // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n\nvar $defineProperty = Object.defineProperty; // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable'; // `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n }\n\n return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) {\n /* empty */\n }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};","var DESCRIPTORS = require('../internals/descriptors');\n\nvar call = require('../internals/function-call');\n\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define'); // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\n\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) {\n /* empty */\n }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};","var internalObjectKeys = require('../internals/object-keys-internal');\n\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;","var hasOwn = require('../internals/has-own-property');\n\nvar isCallable = require('../internals/is-callable');\n\nvar toObject = require('../internals/to-object');\n\nvar sharedKey = require('../internals/shared-key');\n\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype; // `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es-x/no-object-getprototypeof -- safe\n\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n }\n\n return object instanceof $Object ? ObjectPrototype : null;\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar indexOf = require('../internals/array-includes').indexOf;\n\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); // Don't enum bug & hidden keys\n\n\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n\n return result;\n};","var internalObjectKeys = require('../internals/object-keys-internal');\n\nvar enumBugKeys = require('../internals/enum-bug-keys'); // `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\n\n\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};","'use strict';\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable; // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug\n\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({\n 1: 2\n}, 1); // `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\n\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar anObject = require('../internals/an-object');\n\nvar aPossiblePrototype = require('../internals/a-possible-prototype'); // `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\n\n\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) {\n /* empty */\n }\n\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);else O.__proto__ = proto;\n return O;\n };\n}() : undefined);","'use strict';\n\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\n\nvar classof = require('../internals/classof'); // `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\n\n\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};","var call = require('../internals/function-call');\n\nvar isCallable = require('../internals/is-callable');\n\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError; // `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\n\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};","var getBuiltIn = require('../internals/get-built-in');\n\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\n\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\n\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat); // all object keys, includes non-enumerable and symbols\n\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};","var global = require('../internals/global');\n\nmodule.exports = global;","module.exports = function (exec) {\n try {\n return {\n error: false,\n value: exec()\n };\n } catch (error) {\n return {\n error: true,\n value: error\n };\n }\n};","var global = require('../internals/global');\n\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar isCallable = require('../internals/is-callable');\n\nvar isForced = require('../internals/is-forced');\n\nvar inspectSource = require('../internals/inspect-source');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar IS_BROWSER = require('../internals/engine-is-browser');\n\nvar IS_DENO = require('../internals/engine-is-deno');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor); // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true; // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n\n if (V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) {\n resolve(1);\n });\n\n var FakePromise = function (exec) {\n exec(function () {\n /* empty */\n }, function () {\n /* empty */\n });\n };\n\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () {\n /* empty */\n }) instanceof FakePromise;\n if (!SUBCLASSING) return true; // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n }\n\n return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};","var global = require('../internals/global');\n\nmodule.exports = global.Promise;","var anObject = require('../internals/an-object');\n\nvar isObject = require('../internals/is-object');\n\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};","var NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () {\n /* empty */\n });\n});","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = {\n item: item,\n next: null\n };\n if (this.head) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\nmodule.exports = Queue;","var $TypeError = TypeError; // `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\n\nmodule.exports = function (it) {\n if (it == undefined) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};","'use strict';\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () {\n return this;\n }\n });\n }\n};","var defineProperty = require('../internals/object-define-property').f;\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, {\n configurable: true,\n value: TAG\n });\n }\n};","var shared = require('../internals/shared');\n\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};","var global = require('../internals/global');\n\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\nmodule.exports = store;","var IS_PURE = require('../internals/is-pure');\n\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.24.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.24.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});","var anObject = require('../internals/an-object');\n\nvar aConstructor = require('../internals/a-constructor');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species'); // `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\n\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar toString = require('../internals/to-string');\n\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? charAt(S, position) : first : CONVERT_TO_STRING ? stringSlice(S, position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};","var global = require('../internals/global');\n\nvar apply = require('../internals/function-apply');\n\nvar bind = require('../internals/function-bind-context');\n\nvar isCallable = require('../internals/is-callable');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar fails = require('../internals/fails');\n\nvar html = require('../internals/html');\n\nvar arraySlice = require('../internals/array-slice');\n\nvar createElement = require('../internals/document-create-element');\n\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) {\n /* empty */\n}\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n}; // Node.js 0.9+ & IE10+ has setImmediate, otherwise:\n\n\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n\n defer(counter);\n return counter;\n };\n\n clear = function clearImmediate(id) {\n delete queue[id];\n }; // Node.js 0.8-\n\n\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n }; // Sphere (JS game engine) Dispatch API\n\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n }; // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port); // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && isCallable(global.postMessage) && !global.importScripts && location && location.protocol !== 'file:' && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false); // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n }; // Rest old browsers\n\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min; // Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\n\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\n\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};","var trunc = require('../internals/math-trunc'); // `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\n\n\nmodule.exports = function (argument) {\n var number = +argument; // eslint-disable-next-line no-self-compare -- NaN check\n\n return number !== number || number === 0 ? 0 : trunc(number);\n};","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min; // `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\n\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object; // `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\n\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};","var call = require('../internals/function-call');\n\nvar isObject = require('../internals/is-object');\n\nvar isSymbol = require('../internals/is-symbol');\n\nvar getMethod = require('../internals/get-method');\n\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); // `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};","var toPrimitive = require('../internals/to-primitive');\n\nvar isSymbol = require('../internals/is-symbol'); // `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\n\n\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\ntest[TO_STRING_TAG] = 'z';\nmodule.exports = String(test) === '[object z]';","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol';","var DESCRIPTORS = require('../internals/descriptors');\n\nvar fails = require('../internals/fails'); // V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\n\n\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () {\n /* empty */\n }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};","var global = require('../internals/global');\n\nvar shared = require('../internals/shared');\n\nvar hasOwn = require('../internals/has-own-property');\n\nvar uid = require('../internals/uid');\n\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n }\n\n return WellKnownSymbolsStore[name];\n};","'use strict';\n\nvar $ = require('../internals/export');\n\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar create = require('../internals/object-create');\n\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nvar clearErrorStack = require('../internals/clear-error-stack');\n\nvar installErrorCause = require('../internals/install-error-cause');\n\nvar iterate = require('../internals/iterate');\n\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message\n/* , options */\n) {\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n\n if (setPrototypeOf) {\n that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n installErrorCause(that, options);\n var errorsArray = [];\n iterate(errors, push, {\n that: errorsArray\n });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);else copyConstructorProperties($AggregateError, $Error, {\n name: true\n});\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n}); // `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n\n$({\n global: true,\n constructor: true,\n arity: 2\n}, {\n AggregateError: $AggregateError\n});","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');","'use strict';\n\nvar $ = require('../internals/export');\n\nvar $includes = require('../internals/array-includes').includes;\n\nvar fails = require('../internals/fails');\n\nvar addToUnscopables = require('../internals/add-to-unscopables'); // FF99+ bug\n\n\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n}); // `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n\n$({\n target: 'Array',\n proto: true,\n forced: BROKEN_ON_SPARSE\n}, {\n includes: function includes(el\n /* , fromIndex = 0 */\n ) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n}); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\n\naddToUnscopables('includes');","'use strict';\n\nvar toIndexedObject = require('../internals/to-indexed-object');\n\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar Iterators = require('../internals/iterators');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar defineIterator = require('../internals/define-iterator');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); // `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\n\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated),\n // target\n index: 0,\n // next index\n kind: kind // kind\n\n }); // `%ArrayIteratorPrototype%.next` method\n // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n\n if (!target || index >= target.length) {\n state.target = undefined;\n return {\n value: undefined,\n done: true\n };\n }\n\n if (kind == 'keys') return {\n value: index,\n done: false\n };\n if (kind == 'values') return {\n value: target[index],\n done: false\n };\n return {\n value: [index, target[index]],\n done: false\n };\n}, 'values'); // argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\n\nvar values = Iterators.Arguments = Iterators.Array; // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries'); // V8 ~ Chrome 45- bug\n\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', {\n value: 'values'\n });\n} catch (error) {\n /* empty */\n}","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar toString = require('../internals/object-to-string'); // `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\n\n\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, {\n unsafe: true\n });\n}","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar aCallable = require('../internals/a-callable');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar perform = require('../internals/perform');\n\nvar iterate = require('../internals/iterate'); // `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n\n\n$({\n target: 'Promise',\n stat: true\n}, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = {\n status: 'fulfilled',\n value: value\n };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = {\n status: 'rejected',\n reason: error\n };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar aCallable = require('../internals/a-callable');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar perform = require('../internals/perform');\n\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration'); // `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n\n\n$({\n target: 'Promise',\n stat: true,\n forced: PROMISE_STATICS_INCORRECT_ITERATION\n}, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar aCallable = require('../internals/a-callable');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar perform = require('../internals/perform');\n\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved'; // `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n\n$({\n target: 'Promise',\n stat: true\n}, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});","'use strict';\n\nvar $ = require('../internals/export');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar isCallable = require('../internals/is-callable');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; // `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n\n$({\n target: 'Promise',\n proto: true,\n forced: FORCED_PROMISE_CONSTRUCTOR,\n real: true\n}, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n}); // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, {\n unsafe: true\n });\n }\n}","'use strict';\n\nvar $ = require('../internals/export');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar global = require('../internals/global');\n\nvar call = require('../internals/function-call');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar setSpecies = require('../internals/set-species');\n\nvar aCallable = require('../internals/a-callable');\n\nvar isCallable = require('../internals/is-callable');\n\nvar isObject = require('../internals/is-object');\n\nvar anInstance = require('../internals/an-instance');\n\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar task = require('../internals/task').set;\n\nvar microtask = require('../internals/microtask');\n\nvar hostReportErrors = require('../internals/host-report-errors');\n\nvar perform = require('../internals/perform');\n\nvar Queue = require('../internals/queue');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; // helpers\n\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n\n if (handler === true) result = value;else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = {\n promise: promise,\n reason: reason\n };\n\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n\n if (then) {\n microtask(function () {\n var wrapper = {\n done: false\n };\n\n try {\n call(then, value, bind(internalResolve, wrapper, state), bind(internalReject, wrapper, state));\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({\n done: false\n }, error, state);\n }\n}; // constructor polyfill\n\n\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype; // eslint-disable-next-line no-unused-vars -- required for `.length`\n\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n }; // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n\n\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected); // https://github.com/zloirock/core-js/issues/640\n }, {\n unsafe: true\n });\n } // make `.constructor === Promise` work for native promise-based APIs\n\n\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) {\n /* empty */\n } // make `instanceof Promise` work for native promise-based APIs\n\n\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({\n global: true,\n constructor: true,\n wrap: true,\n forced: FORCED_PROMISE_CONSTRUCTOR\n}, {\n Promise: PromiseConstructor\n});\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);","'use strict';\n\nvar $ = require('../internals/export');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar fails = require('../internals/fails');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar isCallable = require('../internals/is-callable');\n\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; // Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\n\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({\n then: function () {\n /* empty */\n }\n }, function () {\n /* empty */\n });\n}); // `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n\n$({\n target: 'Promise',\n proto: true,\n real: true,\n forced: NON_GENERIC\n}, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () {\n return x;\n });\n } : onFinally, isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () {\n throw e;\n });\n } : onFinally);\n }\n}); // makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\n\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, {\n unsafe: true\n });\n }\n}","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\n\nrequire('../modules/es.promise.all');\n\nrequire('../modules/es.promise.catch');\n\nrequire('../modules/es.promise.race');\n\nrequire('../modules/es.promise.reject');\n\nrequire('../modules/es.promise.resolve');","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar aCallable = require('../internals/a-callable');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar perform = require('../internals/perform');\n\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration'); // `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n\n\n$({\n target: 'Promise',\n stat: true,\n forced: PROMISE_STATICS_INCORRECT_ITERATION\n}, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});","'use strict';\n\nvar $ = require('../internals/export');\n\nvar call = require('../internals/function-call');\n\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR; // `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n\n\n$({\n target: 'Promise',\n stat: true,\n forced: FORCED_PROMISE_CONSTRUCTOR\n}, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});","'use strict';\n\nvar $ = require('../internals/export');\n\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar IS_PURE = require('../internals/is-pure');\n\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\n\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; // `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n\n$({\n target: 'Promise',\n stat: true,\n forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR\n}, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});","'use strict';\n\nvar charAt = require('../internals/string-multibyte').charAt;\n\nvar toString = require('../internals/to-string');\n\nvar InternalStateModule = require('../internals/internal-state');\n\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); // `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\n\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n }); // `%StringIteratorPrototype%.next` method\n // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return {\n value: undefined,\n done: true\n };\n point = charAt(string, index);\n state.index += point.length;\n return {\n value: point,\n done: false\n };\n});","\"use strict\"; // eslint-disable-next-line func-names\n\nmodule.exports = function () {\n if (typeof globalThis === \"object\") {\n return globalThis;\n }\n\n var g;\n\n try {\n // This works if eval is allowed (see CSP)\n // eslint-disable-next-line no-new-func\n g = this || new Function(\"return this\")();\n } catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") {\n return window;\n } // This works if the self reference is available\n\n\n if (typeof self === \"object\") {\n return self;\n } // This works if the global reference is available\n\n\n if (typeof global !== \"undefined\") {\n return global;\n }\n }\n\n return g;\n}();","/*\n Highcharts JS v10.2.0 (2022-07-05)\n\n (c) 2009-2021 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function (Y, K) {\n \"object\" === typeof module && module.exports ? (K[\"default\"] = K, module.exports = Y.document ? K(Y) : K) : \"function\" === typeof define && define.amd ? define(\"highcharts/highcharts\", function () {\n return K(Y);\n }) : (Y.Highcharts && Y.Highcharts.error(16, !0), Y.Highcharts = K(Y));\n})(\"undefined\" !== typeof window ? window : this, function (Y) {\n function K(f, e, l, C) {\n f.hasOwnProperty(e) || (f[e] = C.apply(null, l), \"function\" === typeof CustomEvent && Y.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\", {\n detail: {\n path: e,\n module: f[e]\n }\n })));\n }\n\n var l = {};\n K(l, \"Core/Globals.js\", [], function () {\n var f;\n\n (function (e) {\n e.SVG_NS = \"http://www.w3.org/2000/svg\";\n e.product = \"Highcharts\";\n e.version = \"10.2.0\";\n e.win = \"undefined\" !== typeof Y ? Y : {};\n e.doc = e.win.document;\n e.svg = e.doc && e.doc.createElementNS && !!e.doc.createElementNS(e.SVG_NS, \"svg\").createSVGRect;\n e.userAgent = e.win.navigator && e.win.navigator.userAgent || \"\";\n e.isChrome = -1 !== e.userAgent.indexOf(\"Chrome\");\n e.isFirefox = -1 !== e.userAgent.indexOf(\"Firefox\");\n e.isMS = /(edge|msie|trident)/i.test(e.userAgent) && !e.win.opera;\n e.isSafari = !e.isChrome && -1 !== e.userAgent.indexOf(\"Safari\");\n e.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(e.userAgent);\n e.isWebKit = -1 !== e.userAgent.indexOf(\"AppleWebKit\");\n e.deg2rad = 2 * Math.PI / 360;\n e.hasBidiBug = e.isFirefox && 4 > parseInt(e.userAgent.split(\"Firefox/\")[1], 10);\n e.hasTouch = !!e.win.TouchEvent;\n e.marginNames = [\"plotTop\", \"marginRight\", \"marginBottom\", \"plotLeft\"];\n\n e.noop = function () {};\n\n e.supportsPassiveEvents = function () {\n var f = !1;\n\n if (!e.isMS) {\n var l = Object.defineProperty({}, \"passive\", {\n get: function () {\n f = !0;\n }\n });\n e.win.addEventListener && e.win.removeEventListener && (e.win.addEventListener(\"testPassive\", e.noop, l), e.win.removeEventListener(\"testPassive\", e.noop, l));\n }\n\n return f;\n }();\n\n e.charts = [];\n e.dateFormats = {};\n e.seriesTypes = {};\n e.symbolSizes = {};\n e.chartCount = 0;\n })(f || (f = {}));\n\n \"\";\n return f;\n });\n K(l, \"Core/Utilities.js\", [l[\"Core/Globals.js\"]], function (f) {\n function e(c, u, g, k) {\n var A = u ? \"Highcharts error\" : \"Highcharts warning\";\n 32 === c && (c = \"\" + A + \": Deprecated member\");\n var m = t(c),\n n = m ? \"\" + A + \" #\" + c + \": www.highcharts.com/errors/\" + c + \"/\" : c.toString();\n\n if (\"undefined\" !== typeof k) {\n var b = \"\";\n m && (n += \"?\");\n w(k, function (a, c) {\n b += \"\\n - \".concat(c, \": \").concat(a);\n m && (n += encodeURI(c) + \"=\" + encodeURI(a));\n });\n n += b;\n }\n\n x(f, \"displayError\", {\n chart: g,\n code: c,\n message: n,\n params: k\n }, function () {\n if (u) throw Error(n);\n a.console && -1 === e.messages.indexOf(n) && console.warn(n);\n });\n e.messages.push(n);\n }\n\n function l(a, c) {\n var A = {};\n w(a, function (u, g) {\n if (G(a[g], !0) && !a.nodeType && c[g]) u = l(a[g], c[g]), Object.keys(u).length && (A[g] = u);else if (G(a[g]) || a[g] !== c[g] || g in a && !(g in c)) A[g] = a[g];\n });\n return A;\n }\n\n function C(a, c) {\n return parseInt(a, c || 10);\n }\n\n function v(a) {\n return \"string\" === typeof a;\n }\n\n function E(a) {\n a = Object.prototype.toString.call(a);\n return \"[object Array]\" === a || \"[object Array Iterator]\" === a;\n }\n\n function G(a, c) {\n return !!a && \"object\" === typeof a && (!c || !E(a));\n }\n\n function B(a) {\n return G(a) && \"number\" === typeof a.nodeType;\n }\n\n function y(a) {\n var c = a && a.constructor;\n return !(!G(a, !0) || B(a) || !c || !c.name || \"Object\" === c.name);\n }\n\n function t(a) {\n return \"number\" === typeof a && !isNaN(a) && Infinity > a && -Infinity < a;\n }\n\n function h(a) {\n return \"undefined\" !== typeof a && null !== a;\n }\n\n function d(a, c, g) {\n var A = v(c) && !h(g),\n u,\n k = function (c, g) {\n h(c) ? a.setAttribute(g, c) : A ? (u = a.getAttribute(g)) || \"class\" !== g || (u = a.getAttribute(g + \"Name\")) : a.removeAttribute(g);\n };\n\n v(c) ? k(g, c) : w(c, k);\n return u;\n }\n\n function b(a, c) {\n var A;\n a || (a = {});\n\n for (A in c) a[A] = c[A];\n\n return a;\n }\n\n function p() {\n for (var a = arguments, c = a.length, g = 0; g < c; g++) {\n var k = a[g];\n if (\"undefined\" !== typeof k && null !== k) return k;\n }\n }\n\n function q(a, c) {\n f.isMS && !f.svg && c && h(c.opacity) && (c.filter = \"alpha(opacity=\".concat(100 * c.opacity, \")\"));\n b(a.style, c);\n }\n\n function r(a) {\n return Math.pow(10, Math.floor(Math.log(a) / Math.LN10));\n }\n\n function n(a, c) {\n return 1E14 < a ? a : parseFloat(a.toPrecision(c || 14));\n }\n\n function J(c, u, g) {\n var A = f.getStyle || J;\n if (\"width\" === u) return u = Math.min(c.offsetWidth, c.scrollWidth), g = c.getBoundingClientRect && c.getBoundingClientRect().width, g < u && g >= u - 1 && (u = Math.floor(g)), Math.max(0, u - (A(c, \"padding-left\", !0) || 0) - (A(c, \"padding-right\", !0) || 0));\n if (\"height\" === u) return Math.max(0, Math.min(c.offsetHeight, c.scrollHeight) - (A(c, \"padding-top\", !0) || 0) - (A(c, \"padding-bottom\", !0) || 0));\n a.getComputedStyle || e(27, !0);\n\n if (c = a.getComputedStyle(c, void 0)) {\n var k = c.getPropertyValue(u);\n p(g, \"opacity\" !== u) && (k = C(k));\n }\n\n return k;\n }\n\n function w(a, c, g) {\n for (var A in a) Object.hasOwnProperty.call(a, A) && c.call(g || a[A], a[A], A, a);\n }\n\n function z(a, c, g) {\n function A(c, I) {\n var A = a.removeEventListener || f.removeEventListenerPolyfill;\n A && A.call(a, c, I, !1);\n }\n\n function u(u) {\n var I;\n\n if (a.nodeName) {\n if (c) {\n var H = {};\n H[c] = !0;\n } else H = u;\n\n w(H, function (a, c) {\n if (u[c]) for (I = u[c].length; I--;) A(c, u[c][I].fn);\n });\n }\n }\n\n var k = \"function\" === typeof a && a.prototype || a;\n\n if (Object.hasOwnProperty.call(k, \"hcEvents\")) {\n var m = k.hcEvents;\n c ? (k = m[c] || [], g ? (m[c] = k.filter(function (a) {\n return g !== a.fn;\n }), A(c, g)) : (u(m), m[c] = [])) : (u(m), delete k.hcEvents);\n }\n }\n\n function x(a, c, g, m) {\n g = g || {};\n\n if (k.createEvent && (a.dispatchEvent || a.fireEvent && a !== f)) {\n var A = k.createEvent(\"Events\");\n A.initEvent(c, !0, !0);\n g = b(A, g);\n a.dispatchEvent ? a.dispatchEvent(g) : a.fireEvent(c, g);\n } else if (a.hcEvents) {\n g.target || b(g, {\n preventDefault: function () {\n g.defaultPrevented = !0;\n },\n target: a,\n type: c\n });\n A = [];\n\n for (var u = a, n = !1; u.hcEvents;) Object.hasOwnProperty.call(u, \"hcEvents\") && u.hcEvents[c] && (A.length && (n = !0), A.unshift.apply(A, u.hcEvents[c])), u = Object.getPrototypeOf(u);\n\n n && A.sort(function (a, c) {\n return a.order - c.order;\n });\n A.forEach(function (c) {\n !1 === c.fn.call(a, g) && g.preventDefault();\n });\n }\n\n m && !g.defaultPrevented && m.call(a, g);\n }\n\n var m = f.charts,\n k = f.doc,\n a = f.win;\n (e || (e = {})).messages = [];\n\n Math.easeInOutSine = function (a) {\n return -.5 * (Math.cos(Math.PI * a) - 1);\n };\n\n var g = Array.prototype.find ? function (a, c) {\n return a.find(c);\n } : function (a, c) {\n var A,\n u = a.length;\n\n for (A = 0; A < u; A++) if (c(a[A], A)) return a[A];\n };\n w({\n map: \"map\",\n each: \"forEach\",\n grep: \"filter\",\n reduce: \"reduce\",\n some: \"some\"\n }, function (a, c) {\n f[c] = function (A) {\n var u;\n e(32, !1, void 0, (u = {}, u[\"Highcharts.\".concat(c)] = \"use Array.\".concat(a), u));\n return Array.prototype[a].apply(A, [].slice.call(arguments, 1));\n };\n });\n\n var c,\n D = function () {\n var a = Math.random().toString(36).substring(2, 9) + \"-\",\n u = 0;\n return function () {\n return \"highcharts-\" + (c ? \"\" : a) + u++;\n };\n }();\n\n a.jQuery && (a.jQuery.fn.highcharts = function () {\n var a = [].slice.call(arguments);\n if (this[0]) return a[0] ? (new f[v(a[0]) ? a.shift() : \"Chart\"](this[0], a[0], a[1]), this) : m[d(this[0], \"data-highcharts-chart\")];\n });\n g = {\n addEvent: function (a, c, g, k) {\n void 0 === k && (k = {});\n var u = \"function\" === typeof a && a.prototype || a;\n Object.hasOwnProperty.call(u, \"hcEvents\") || (u.hcEvents = {});\n u = u.hcEvents;\n f.Point && a instanceof f.Point && a.series && a.series.chart && (a.series.chart.runTrackerClick = !0);\n var A = a.addEventListener || f.addEventListenerPolyfill;\n A && A.call(a, c, g, f.supportsPassiveEvents ? {\n passive: void 0 === k.passive ? -1 !== c.indexOf(\"touch\") : k.passive,\n capture: !1\n } : !1);\n u[c] || (u[c] = []);\n u[c].push({\n fn: g,\n order: \"number\" === typeof k.order ? k.order : Infinity\n });\n u[c].sort(function (a, c) {\n return a.order - c.order;\n });\n return function () {\n z(a, c, g);\n };\n },\n arrayMax: function (a) {\n for (var c = a.length, g = a[0]; c--;) a[c] > g && (g = a[c]);\n\n return g;\n },\n arrayMin: function (a) {\n for (var c = a.length, g = a[0]; c--;) a[c] < g && (g = a[c]);\n\n return g;\n },\n attr: d,\n clamp: function (a, c, g) {\n return a > c ? a < g ? a : g : c;\n },\n cleanRecursively: l,\n clearTimeout: function (a) {\n h(a) && clearTimeout(a);\n },\n correctFloat: n,\n createElement: function (a, c, g, m, n) {\n a = k.createElement(a);\n c && b(a, c);\n n && q(a, {\n padding: \"0\",\n border: \"none\",\n margin: \"0\"\n });\n g && q(a, g);\n m && m.appendChild(a);\n return a;\n },\n css: q,\n defined: h,\n destroyObjectProperties: function (a, c) {\n w(a, function (g, u) {\n g && g !== c && g.destroy && g.destroy();\n delete a[u];\n });\n },\n discardElement: function (a) {\n a && a.parentElement && a.parentElement.removeChild(a);\n },\n erase: function (a, c) {\n for (var g = a.length; g--;) if (a[g] === c) {\n a.splice(g, 1);\n break;\n }\n },\n error: e,\n extend: b,\n extendClass: function (a, c) {\n var g = function () {};\n\n g.prototype = new a();\n b(g.prototype, c);\n return g;\n },\n find: g,\n fireEvent: x,\n getMagnitude: r,\n getNestedProperty: function (c, g) {\n for (c = c.split(\".\"); c.length && h(g);) {\n var u = c.shift();\n if (\"undefined\" === typeof u || \"__proto__\" === u) return;\n g = g[u];\n if (!h(g) || \"function\" === typeof g || \"number\" === typeof g.nodeType || g === a) return;\n }\n\n return g;\n },\n getStyle: J,\n inArray: function (a, c, g) {\n e(32, !1, void 0, {\n \"Highcharts.inArray\": \"use Array.indexOf\"\n });\n return c.indexOf(a, g);\n },\n isArray: E,\n isClass: y,\n isDOMElement: B,\n isFunction: function (a) {\n return \"function\" === typeof a;\n },\n isNumber: t,\n isObject: G,\n isString: v,\n keys: function (a) {\n e(32, !1, void 0, {\n \"Highcharts.keys\": \"use Object.keys\"\n });\n return Object.keys(a);\n },\n merge: function () {\n var a,\n c = arguments,\n g = {},\n k = function (a, c) {\n \"object\" !== typeof a && (a = {});\n w(c, function (g, I) {\n \"__proto__\" !== I && \"constructor\" !== I && (!G(g, !0) || y(g) || B(g) ? a[I] = c[I] : a[I] = k(a[I] || {}, g));\n });\n return a;\n };\n\n !0 === c[0] && (g = c[1], c = Array.prototype.slice.call(c, 2));\n var m = c.length;\n\n for (a = 0; a < m; a++) g = k(g, c[a]);\n\n return g;\n },\n normalizeTickInterval: function (a, c, g, k, m) {\n var u = a;\n g = p(g, r(a));\n var A = a / g;\n c || (c = m ? [1, 1.2, 1.5, 2, 2.5, 3, 4, 5, 6, 8, 10] : [1, 2, 2.5, 5, 10], !1 === k && (1 === g ? c = c.filter(function (a) {\n return 0 === a % 1;\n }) : .1 >= g && (c = [1 / g])));\n\n for (k = 0; k < c.length && !(u = c[k], m && u * g >= a || !m && A <= (c[k] + (c[k + 1] || c[k])) / 2); k++);\n\n return u = n(u * g, -Math.round(Math.log(.001) / Math.LN10));\n },\n objectEach: w,\n offset: function (c) {\n var g = k.documentElement;\n c = c.parentElement || c.parentNode ? c.getBoundingClientRect() : {\n top: 0,\n left: 0,\n width: 0,\n height: 0\n };\n return {\n top: c.top + (a.pageYOffset || g.scrollTop) - (g.clientTop || 0),\n left: c.left + (a.pageXOffset || g.scrollLeft) - (g.clientLeft || 0),\n width: c.width,\n height: c.height\n };\n },\n pad: function (a, c, g) {\n return Array((c || 2) + 1 - String(a).replace(\"-\", \"\").length).join(g || \"0\") + a;\n },\n pick: p,\n pInt: C,\n relativeLength: function (a, c, g) {\n return /%$/.test(a) ? c * parseFloat(a) / 100 + (g || 0) : parseFloat(a);\n },\n removeEvent: z,\n splat: function (a) {\n return E(a) ? a : [a];\n },\n stableSort: function (a, c) {\n var g = a.length,\n k,\n u;\n\n for (u = 0; u < g; u++) a[u].safeI = u;\n\n a.sort(function (a, g) {\n k = c(a, g);\n return 0 === k ? a.safeI - g.safeI : k;\n });\n\n for (u = 0; u < g; u++) delete a[u].safeI;\n },\n syncTimeout: function (a, c, g) {\n if (0 < c) return setTimeout(a, c, g);\n a.call(0, g);\n return -1;\n },\n timeUnits: {\n millisecond: 1,\n second: 1E3,\n minute: 6E4,\n hour: 36E5,\n day: 864E5,\n week: 6048E5,\n month: 24192E5,\n year: 314496E5\n },\n uniqueKey: D,\n useSerialIds: function (a) {\n return c = p(a, c);\n },\n wrap: function (a, c, g) {\n var k = a[c];\n\n a[c] = function () {\n var a = Array.prototype.slice.call(arguments),\n c = arguments,\n u = this;\n\n u.proceed = function () {\n k.apply(u, arguments.length ? arguments : c);\n };\n\n a.unshift(k);\n a = g.apply(this, a);\n u.proceed = null;\n return a;\n };\n }\n };\n \"\";\n return g;\n });\n K(l, \"Core/Chart/ChartDefaults.js\", [], function () {\n return {\n alignThresholds: !1,\n panning: {\n enabled: !1,\n type: \"x\"\n },\n styledMode: !1,\n borderRadius: 0,\n colorCount: 10,\n allowMutatingData: !0,\n defaultSeriesType: \"line\",\n ignoreHiddenSeries: !0,\n spacing: [10, 10, 15, 10],\n resetZoomButton: {\n theme: {\n zIndex: 6\n },\n position: {\n align: \"right\",\n x: -10,\n y: 10\n }\n },\n zoomBySingleTouch: !1,\n width: null,\n height: null,\n borderColor: \"#335cad\",\n backgroundColor: \"#ffffff\",\n plotBorderColor: \"#cccccc\"\n };\n });\n K(l, \"Core/Color/Color.js\", [l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = e.isNumber,\n C = e.merge,\n v = e.pInt;\n\n e = function () {\n function e(l) {\n this.rgba = [NaN, NaN, NaN, NaN];\n this.input = l;\n var B = f.Color;\n if (B && B !== e) return new B(l);\n if (!(this instanceof e)) return new e(l);\n this.init(l);\n }\n\n e.parse = function (f) {\n return f ? new e(f) : e.None;\n };\n\n e.prototype.init = function (f) {\n var B;\n if (\"object\" === typeof f && \"undefined\" !== typeof f.stops) this.stops = f.stops.map(function (d) {\n return new e(d[1]);\n });else if (\"string\" === typeof f) {\n this.input = f = e.names[f.toLowerCase()] || f;\n\n if (\"#\" === f.charAt(0)) {\n var y = f.length;\n var t = parseInt(f.substr(1), 16);\n 7 === y ? B = [(t & 16711680) >> 16, (t & 65280) >> 8, t & 255, 1] : 4 === y && (B = [(t & 3840) >> 4 | (t & 3840) >> 8, (t & 240) >> 4 | t & 240, (t & 15) << 4 | t & 15, 1]);\n }\n\n if (!B) for (t = e.parsers.length; t-- && !B;) {\n var h = e.parsers[t];\n (y = h.regex.exec(f)) && (B = h.parse(y));\n }\n }\n B && (this.rgba = B);\n };\n\n e.prototype.get = function (e) {\n var B = this.input,\n y = this.rgba;\n\n if (\"object\" === typeof B && \"undefined\" !== typeof this.stops) {\n var t = C(B);\n t.stops = [].slice.call(t.stops);\n this.stops.forEach(function (h, d) {\n t.stops[d] = [t.stops[d][0], h.get(e)];\n });\n return t;\n }\n\n return y && l(y[0]) ? \"rgb\" === e || !e && 1 === y[3] ? \"rgb(\" + y[0] + \",\" + y[1] + \",\" + y[2] + \")\" : \"a\" === e ? \"\".concat(y[3]) : \"rgba(\" + y.join(\",\") + \")\" : B;\n };\n\n e.prototype.brighten = function (e) {\n var B = this.rgba;\n if (this.stops) this.stops.forEach(function (t) {\n t.brighten(e);\n });else if (l(e) && 0 !== e) for (var y = 0; 3 > y; y++) B[y] += v(255 * e), 0 > B[y] && (B[y] = 0), 255 < B[y] && (B[y] = 255);\n return this;\n };\n\n e.prototype.setOpacity = function (e) {\n this.rgba[3] = e;\n return this;\n };\n\n e.prototype.tweenTo = function (e, B) {\n var y = this.rgba,\n t = e.rgba;\n if (!l(y[0]) || !l(t[0])) return e.input || \"none\";\n e = 1 !== t[3] || 1 !== y[3];\n return (e ? \"rgba(\" : \"rgb(\") + Math.round(t[0] + (y[0] - t[0]) * (1 - B)) + \",\" + Math.round(t[1] + (y[1] - t[1]) * (1 - B)) + \",\" + Math.round(t[2] + (y[2] - t[2]) * (1 - B)) + (e ? \",\" + (t[3] + (y[3] - t[3]) * (1 - B)) : \"\") + \")\";\n };\n\n e.names = {\n white: \"#ffffff\",\n black: \"#000000\"\n };\n e.parsers = [{\n regex: /rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]?(?:\\.[0-9]+)?)\\s*\\)/,\n parse: function (e) {\n return [v(e[1]), v(e[2]), v(e[3]), parseFloat(e[4], 10)];\n }\n }, {\n regex: /rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/,\n parse: function (e) {\n return [v(e[1]), v(e[2]), v(e[3]), 1];\n }\n }];\n e.None = new e(\"\");\n return e;\n }();\n\n \"\";\n return e;\n });\n K(l, \"Core/Color/Palettes.js\", [], function () {\n return {\n colors: \"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1\".split(\" \")\n };\n });\n K(l, \"Core/Time.js\", [l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = f.win,\n C = e.defined,\n v = e.error,\n E = e.extend,\n G = e.isObject,\n B = e.merge,\n y = e.objectEach,\n t = e.pad,\n h = e.pick,\n d = e.splat,\n b = e.timeUnits,\n p = f.isSafari && l.Intl && l.Intl.DateTimeFormat.prototype.formatRange,\n q = f.isSafari && l.Intl && !l.Intl.DateTimeFormat.prototype.formatRange;\n\n e = function () {\n function r(n) {\n this.options = {};\n this.variableTimezone = this.useUTC = !1;\n this.Date = l.Date;\n this.getTimezoneOffset = this.timezoneOffsetFunction();\n this.update(n);\n }\n\n r.prototype.get = function (n, b) {\n if (this.variableTimezone || this.timezoneOffset) {\n var d = b.getTime(),\n r = d - this.getTimezoneOffset(b);\n b.setTime(r);\n n = b[\"getUTC\" + n]();\n b.setTime(d);\n return n;\n }\n\n return this.useUTC ? b[\"getUTC\" + n]() : b[\"get\" + n]();\n };\n\n r.prototype.set = function (n, b, d) {\n if (this.variableTimezone || this.timezoneOffset) {\n if (\"Milliseconds\" === n || \"Seconds\" === n || \"Minutes\" === n && 0 === this.getTimezoneOffset(b) % 36E5) return b[\"setUTC\" + n](d);\n var r = this.getTimezoneOffset(b);\n r = b.getTime() - r;\n b.setTime(r);\n b[\"setUTC\" + n](d);\n n = this.getTimezoneOffset(b);\n r = b.getTime() + n;\n return b.setTime(r);\n }\n\n return this.useUTC || p && \"FullYear\" === n ? b[\"setUTC\" + n](d) : b[\"set\" + n](d);\n };\n\n r.prototype.update = function (b) {\n var n = h(b && b.useUTC, !0);\n this.options = b = B(!0, this.options || {}, b);\n this.Date = b.Date || l.Date || Date;\n this.timezoneOffset = (this.useUTC = n) && b.timezoneOffset || void 0;\n this.getTimezoneOffset = this.timezoneOffsetFunction();\n this.variableTimezone = n && !(!b.getTimezoneOffset && !b.timezone);\n };\n\n r.prototype.makeTime = function (b, d, r, p, x, m) {\n if (this.useUTC) {\n var k = this.Date.UTC.apply(0, arguments);\n var a = this.getTimezoneOffset(k);\n k += a;\n var g = this.getTimezoneOffset(k);\n a !== g ? k += g - a : a - 36E5 !== this.getTimezoneOffset(k - 36E5) || q || (k -= 36E5);\n } else k = new this.Date(b, d, h(r, 1), h(p, 0), h(x, 0), h(m, 0)).getTime();\n\n return k;\n };\n\n r.prototype.timezoneOffsetFunction = function () {\n var b = this,\n d = this.options,\n r = d.getTimezoneOffset,\n p = d.moment || l.moment;\n if (!this.useUTC) return function (b) {\n return 6E4 * new Date(b.toString()).getTimezoneOffset();\n };\n\n if (d.timezone) {\n if (p) return function (b) {\n return 6E4 * -p.tz(b, d.timezone).utcOffset();\n };\n v(25);\n }\n\n return this.useUTC && r ? function (b) {\n return 6E4 * r(b.valueOf());\n } : function () {\n return 6E4 * (b.timezoneOffset || 0);\n };\n };\n\n r.prototype.dateFormat = function (b, d, r) {\n if (!C(d) || isNaN(d)) return f.defaultOptions.lang && f.defaultOptions.lang.invalidDate || \"\";\n b = h(b, \"%Y-%m-%d %H:%M:%S\");\n var n = this,\n p = new this.Date(d),\n m = this.get(\"Hours\", p),\n k = this.get(\"Day\", p),\n a = this.get(\"Date\", p),\n g = this.get(\"Month\", p),\n c = this.get(\"FullYear\", p),\n D = f.defaultOptions.lang,\n A = D && D.weekdays,\n u = D && D.shortWeekdays;\n p = E({\n a: u ? u[k] : A[k].substr(0, 3),\n A: A[k],\n d: t(a),\n e: t(a, 2, \" \"),\n w: k,\n b: D.shortMonths[g],\n B: D.months[g],\n m: t(g + 1),\n o: g + 1,\n y: c.toString().substr(2, 2),\n Y: c,\n H: t(m),\n k: m,\n I: t(m % 12 || 12),\n l: m % 12 || 12,\n M: t(this.get(\"Minutes\", p)),\n p: 12 > m ? \"AM\" : \"PM\",\n P: 12 > m ? \"am\" : \"pm\",\n S: t(p.getSeconds()),\n L: t(Math.floor(d % 1E3), 3)\n }, f.dateFormats);\n y(p, function (a, c) {\n for (; -1 !== b.indexOf(\"%\" + c);) b = b.replace(\"%\" + c, \"function\" === typeof a ? a.call(n, d) : a);\n });\n return r ? b.substr(0, 1).toUpperCase() + b.substr(1) : b;\n };\n\n r.prototype.resolveDTLFormat = function (b) {\n return G(b, !0) ? b : (b = d(b), {\n main: b[0],\n from: b[1],\n to: b[2]\n });\n };\n\n r.prototype.getTimeTicks = function (d, r, p, q) {\n var n = this,\n m = [],\n k = {},\n a = new n.Date(r),\n g = d.unitRange,\n c = d.count || 1,\n D;\n q = h(q, 1);\n\n if (C(r)) {\n n.set(\"Milliseconds\", a, g >= b.second ? 0 : c * Math.floor(n.get(\"Milliseconds\", a) / c));\n g >= b.second && n.set(\"Seconds\", a, g >= b.minute ? 0 : c * Math.floor(n.get(\"Seconds\", a) / c));\n g >= b.minute && n.set(\"Minutes\", a, g >= b.hour ? 0 : c * Math.floor(n.get(\"Minutes\", a) / c));\n g >= b.hour && n.set(\"Hours\", a, g >= b.day ? 0 : c * Math.floor(n.get(\"Hours\", a) / c));\n g >= b.day && n.set(\"Date\", a, g >= b.month ? 1 : Math.max(1, c * Math.floor(n.get(\"Date\", a) / c)));\n\n if (g >= b.month) {\n n.set(\"Month\", a, g >= b.year ? 0 : c * Math.floor(n.get(\"Month\", a) / c));\n var A = n.get(\"FullYear\", a);\n }\n\n g >= b.year && n.set(\"FullYear\", a, A - A % c);\n g === b.week && (A = n.get(\"Day\", a), n.set(\"Date\", a, n.get(\"Date\", a) - A + q + (A < q ? -7 : 0)));\n A = n.get(\"FullYear\", a);\n q = n.get(\"Month\", a);\n var u = n.get(\"Date\", a),\n z = n.get(\"Hours\", a);\n r = a.getTime();\n !n.variableTimezone && n.useUTC || !C(p) || (D = p - r > 4 * b.month || n.getTimezoneOffset(r) !== n.getTimezoneOffset(p));\n r = a.getTime();\n\n for (a = 1; r < p;) m.push(r), r = g === b.year ? n.makeTime(A + a * c, 0) : g === b.month ? n.makeTime(A, q + a * c) : !D || g !== b.day && g !== b.week ? D && g === b.hour && 1 < c ? n.makeTime(A, q, u, z + a * c) : r + g * c : n.makeTime(A, q, u + a * c * (g === b.day ? 1 : 7)), a++;\n\n m.push(r);\n g <= b.hour && 1E4 > m.length && m.forEach(function (a) {\n 0 === a % 18E5 && \"000000000\" === n.dateFormat(\"%H%M%S%L\", a) && (k[a] = \"day\");\n });\n }\n\n m.info = E(d, {\n higherRanks: k,\n totalRange: g * c\n });\n return m;\n };\n\n r.prototype.getDateFormat = function (n, d, r, p) {\n var q = this.dateFormat(\"%m-%d %H:%M:%S.%L\", d),\n m = {\n millisecond: 15,\n second: 12,\n minute: 9,\n hour: 6,\n day: 3\n },\n k = \"millisecond\";\n\n for (a in b) {\n if (n === b.week && +this.dateFormat(\"%w\", d) === r && \"00:00:00.000\" === q.substr(6)) {\n var a = \"week\";\n break;\n }\n\n if (b[a] > n) {\n a = k;\n break;\n }\n\n if (m[a] && q.substr(m[a]) !== \"01-01 00:00:00.000\".substr(m[a])) break;\n \"week\" !== a && (k = a);\n }\n\n return this.resolveDTLFormat(p[a]).main;\n };\n\n return r;\n }();\n\n \"\";\n return e;\n });\n K(l, \"Core/DefaultOptions.js\", [l[\"Core/Chart/ChartDefaults.js\"], l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Color/Palettes.js\"], l[\"Core/Time.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E) {\n e = e.parse;\n var P = E.merge,\n B = {\n colors: C.colors,\n symbols: [\"circle\", \"diamond\", \"square\", \"triangle\", \"triangle-down\"],\n lang: {\n loading: \"Loading...\",\n months: \"January February March April May June July August September October November December\".split(\" \"),\n shortMonths: \"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),\n weekdays: \"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),\n decimalPoint: \".\",\n numericSymbols: \"kMGTPE\".split(\"\"),\n resetZoom: \"Reset zoom\",\n resetZoomTitle: \"Reset zoom level 1:1\",\n thousandsSep: \" \"\n },\n global: {},\n time: {\n Date: void 0,\n getTimezoneOffset: void 0,\n timezone: void 0,\n timezoneOffset: 0,\n useUTC: !0\n },\n chart: f,\n title: {\n text: \"Chart title\",\n align: \"center\",\n margin: 15,\n widthAdjust: -44\n },\n subtitle: {\n text: \"\",\n align: \"center\",\n widthAdjust: -44\n },\n caption: {\n margin: 15,\n text: \"\",\n align: \"left\",\n verticalAlign: \"bottom\"\n },\n plotOptions: {},\n labels: {\n style: {\n position: \"absolute\",\n color: \"#333333\"\n }\n },\n legend: {\n enabled: !0,\n align: \"center\",\n alignColumns: !0,\n className: \"highcharts-no-tooltip\",\n layout: \"horizontal\",\n labelFormatter: function () {\n return this.name;\n },\n borderColor: \"#999999\",\n borderRadius: 0,\n navigation: {\n activeColor: \"#003399\",\n inactiveColor: \"#cccccc\"\n },\n itemStyle: {\n color: \"#333333\",\n cursor: \"pointer\",\n fontSize: \"12px\",\n fontWeight: \"bold\",\n textOverflow: \"ellipsis\"\n },\n itemHoverStyle: {\n color: \"#000000\"\n },\n itemHiddenStyle: {\n color: \"#cccccc\"\n },\n shadow: !1,\n itemCheckboxStyle: {\n position: \"absolute\",\n width: \"13px\",\n height: \"13px\"\n },\n squareSymbol: !0,\n symbolPadding: 5,\n verticalAlign: \"bottom\",\n x: 0,\n y: 0,\n title: {\n style: {\n fontWeight: \"bold\"\n }\n }\n },\n loading: {\n labelStyle: {\n fontWeight: \"bold\",\n position: \"relative\",\n top: \"45%\"\n },\n style: {\n position: \"absolute\",\n backgroundColor: \"#ffffff\",\n opacity: .5,\n textAlign: \"center\"\n }\n },\n tooltip: {\n enabled: !0,\n animation: l.svg,\n borderRadius: 3,\n dateTimeLabelFormats: {\n millisecond: \"%A, %b %e, %H:%M:%S.%L\",\n second: \"%A, %b %e, %H:%M:%S\",\n minute: \"%A, %b %e, %H:%M\",\n hour: \"%A, %b %e, %H:%M\",\n day: \"%A, %b %e, %Y\",\n week: \"Week from %A, %b %e, %Y\",\n month: \"%B %Y\",\n year: \"%Y\"\n },\n footerFormat: \"\",\n headerShape: \"callout\",\n hideDelay: 500,\n padding: 8,\n shape: \"callout\",\n shared: !1,\n snap: l.isTouchDevice ? 25 : 10,\n headerFormat: '{point.key}
',\n pointFormat: '\\u25cf {series.name}: {point.y}
',\n backgroundColor: e(\"#f7f7f7\").setOpacity(.85).get(),\n borderWidth: 1,\n shadow: !0,\n stickOnContact: !1,\n style: {\n color: \"#333333\",\n cursor: \"default\",\n fontSize: \"12px\",\n whiteSpace: \"nowrap\"\n },\n useHTML: !1\n },\n credits: {\n enabled: !0,\n href: \"https://www.highcharts.com?credits\",\n position: {\n align: \"right\",\n x: -10,\n verticalAlign: \"bottom\",\n y: -5\n },\n style: {\n cursor: \"pointer\",\n color: \"#999999\",\n fontSize: \"9px\"\n },\n text: \"Highcharts.com\"\n }\n };\n B.chart.styledMode = !1;\n \"\";\n var y = new v(P(B.global, B.time));\n f = {\n defaultOptions: B,\n defaultTime: y,\n getOptions: function () {\n return B;\n },\n setOptions: function (t) {\n P(!0, B, t);\n if (t.time || t.global) l.time ? l.time.update(P(B.global, B.time, t.global, t.time)) : l.time = y;\n return B;\n }\n };\n \"\";\n return f;\n });\n K(l, \"Core/Animation/Fx.js\", [l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var P = f.parse,\n v = e.win,\n E = l.isNumber,\n G = l.objectEach;\n return function () {\n function e(e, t, h) {\n this.pos = NaN;\n this.options = t;\n this.elem = e;\n this.prop = h;\n }\n\n e.prototype.dSetter = function () {\n var e = this.paths,\n t = e && e[0];\n e = e && e[1];\n var h = this.now || 0,\n d = [];\n if (1 !== h && t && e) {\n if (t.length === e.length && 1 > h) for (var b = 0; b < e.length; b++) {\n for (var p = t[b], q = e[b], r = [], n = 0; n < q.length; n++) {\n var J = p[n],\n w = q[n];\n E(J) && E(w) && (\"A\" !== q[0] || 4 !== n && 5 !== n) ? r[n] = J + h * (w - J) : r[n] = w;\n }\n\n d.push(r);\n } else d = e;\n } else d = this.toD || [];\n this.elem.attr(\"d\", d, void 0, !0);\n };\n\n e.prototype.update = function () {\n var e = this.elem,\n t = this.prop,\n h = this.now,\n d = this.options.step;\n if (this[t + \"Setter\"]) this[t + \"Setter\"]();else e.attr ? e.element && e.attr(t, h, null, !0) : e.style[t] = h + this.unit;\n d && d.call(e, h, this);\n };\n\n e.prototype.run = function (y, t, h) {\n var d = this,\n b = d.options,\n p = function (b) {\n return p.stopped ? !1 : d.step(b);\n },\n q = v.requestAnimationFrame || function (b) {\n setTimeout(b, 13);\n },\n r = function () {\n for (var b = 0; b < e.timers.length; b++) e.timers[b]() || e.timers.splice(b--, 1);\n\n e.timers.length && q(r);\n };\n\n y !== t || this.elem[\"forceAnimate:\" + this.prop] ? (this.startTime = +new Date(), this.start = y, this.end = t, this.unit = h, this.now = this.start, this.pos = 0, p.elem = this.elem, p.prop = this.prop, p() && 1 === e.timers.push(p) && q(r)) : (delete b.curAnim[this.prop], b.complete && 0 === Object.keys(b.curAnim).length && b.complete.call(this.elem));\n };\n\n e.prototype.step = function (e) {\n var t = +new Date(),\n h = this.options,\n d = this.elem,\n b = h.complete,\n p = h.duration,\n q = h.curAnim;\n if (d.attr && !d.element) e = !1;else if (e || t >= p + this.startTime) {\n this.now = this.end;\n this.pos = 1;\n this.update();\n var r = q[this.prop] = !0;\n G(q, function (b) {\n !0 !== b && (r = !1);\n });\n r && b && b.call(d);\n e = !1;\n } else this.pos = h.easing((t - this.startTime) / p), this.now = this.start + (this.end - this.start) * this.pos, this.update(), e = !0;\n return e;\n };\n\n e.prototype.initPath = function (e, t, h) {\n function d(b, m) {\n for (; b.length < z;) {\n var k = b[0],\n a = m[z - b.length];\n a && \"M\" === k[0] && (b[0] = \"C\" === a[0] ? [\"C\", k[1], k[2], k[1], k[2], k[1], k[2]] : [\"L\", k[1], k[2]]);\n b.unshift(k);\n r && (k = b.pop(), b.push(b[b.length - 1], k));\n }\n }\n\n function b(b, m) {\n for (; b.length < z;) if (m = b[Math.floor(b.length / n) - 1].slice(), \"C\" === m[0] && (m[1] = m[5], m[2] = m[6]), r) {\n var k = b[Math.floor(b.length / n)].slice();\n b.splice(b.length / 2, 0, m, k);\n } else b.push(m);\n }\n\n var p = e.startX,\n q = e.endX;\n h = h.slice();\n var r = e.isArea,\n n = r ? 2 : 1;\n t = t && t.slice();\n if (!t) return [h, h];\n\n if (p && q && q.length) {\n for (e = 0; e < p.length; e++) if (p[e] === q[0]) {\n var J = e;\n break;\n } else if (p[0] === q[q.length - p.length + e]) {\n J = e;\n var w = !0;\n break;\n } else if (p[p.length - 1] === q[q.length - p.length + e]) {\n J = p.length - e;\n break;\n }\n\n \"undefined\" === typeof J && (t = []);\n }\n\n if (t.length && E(J)) {\n var z = h.length + J * n;\n w ? (d(t, h), b(h, t)) : (d(h, t), b(t, h));\n }\n\n return [t, h];\n };\n\n e.prototype.fillSetter = function () {\n e.prototype.strokeSetter.apply(this, arguments);\n };\n\n e.prototype.strokeSetter = function () {\n this.elem.attr(this.prop, P(this.start).tweenTo(P(this.end), this.pos), void 0, !0);\n };\n\n e.timers = [];\n return e;\n }();\n });\n K(l, \"Core/Animation/AnimationUtilities.js\", [l[\"Core/Animation/Fx.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n function l(b) {\n return y(b) ? t({\n duration: 500,\n defer: 0\n }, b) : {\n duration: b ? 500 : 0,\n defer: 0\n };\n }\n\n function C(b, d) {\n for (var p = f.timers.length; p--;) f.timers[p].elem !== b || d && d !== f.timers[p].prop || (f.timers[p].stopped = !0);\n }\n\n var v = e.defined,\n E = e.getStyle,\n G = e.isArray,\n B = e.isNumber,\n y = e.isObject,\n t = e.merge,\n h = e.objectEach,\n d = e.pick;\n return {\n animate: function (b, d, q) {\n var r,\n n = \"\",\n p,\n w;\n\n if (!y(q)) {\n var z = arguments;\n q = {\n duration: z[2],\n easing: z[3],\n complete: z[4]\n };\n }\n\n B(q.duration) || (q.duration = 400);\n q.easing = \"function\" === typeof q.easing ? q.easing : Math[q.easing] || Math.easeInOutSine;\n q.curAnim = t(d);\n h(d, function (h, m) {\n C(b, m);\n w = new f(b, q, m);\n p = void 0;\n \"d\" === m && G(d.d) ? (w.paths = w.initPath(b, b.pathArray, d.d), w.toD = d.d, r = 0, p = 1) : b.attr ? r = b.attr(m) : (r = parseFloat(E(b, m)) || 0, \"opacity\" !== m && (n = \"px\"));\n p || (p = h);\n \"string\" === typeof p && p.match(\"px\") && (p = p.replace(/px/g, \"\"));\n w.run(r, p, n);\n });\n },\n animObject: l,\n getDeferredAnimation: function (b, d, q) {\n var r = l(d),\n n = 0,\n p = 0;\n (q ? [q] : b.series).forEach(function (b) {\n b = l(b.options.animation);\n n = d && v(d.defer) ? r.defer : Math.max(n, b.duration + b.defer);\n p = Math.min(r.duration, b.duration);\n });\n b.renderer.forExport && (n = 0);\n return {\n defer: Math.max(0, n - p),\n duration: Math.min(n, p)\n };\n },\n setAnimation: function (b, p) {\n p.renderer.globalAnimation = d(b, p.options.chart.animation, !0);\n },\n stop: C\n };\n });\n K(l, \"Core/Renderer/HTML/AST.js\", [l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = f.SVG_NS,\n C = e.attr,\n v = e.createElement,\n E = e.css,\n G = e.error,\n B = e.isFunction,\n y = e.isString,\n t = e.objectEach,\n h = e.splat,\n d = (e = f.win.trustedTypes) && B(e.createPolicy) && e.createPolicy(\"highcharts\", {\n createHTML: function (b) {\n return b;\n }\n }),\n b = d ? d.createHTML(\"\") : \"\";\n\n try {\n var p = !!new DOMParser().parseFromString(b, \"text/html\");\n } catch (q) {\n p = !1;\n }\n\n B = function () {\n function q(b) {\n this.nodes = \"string\" === typeof b ? this.parseMarkup(b) : b;\n }\n\n q.filterUserAttributes = function (b) {\n t(b, function (d, p) {\n var n = !0;\n -1 === q.allowedAttributes.indexOf(p) && (n = !1);\n -1 !== [\"background\", \"dynsrc\", \"href\", \"lowsrc\", \"src\"].indexOf(p) && (n = y(d) && q.allowedReferences.some(function (b) {\n return 0 === d.indexOf(b);\n }));\n n || (G(33, !1, void 0, {\n \"Invalid attribute in config\": \"\".concat(p)\n }), delete b[p]);\n });\n return b;\n };\n\n q.parseStyle = function (b) {\n return b.split(\";\").reduce(function (b, d) {\n d = d.split(\":\").map(function (b) {\n return b.trim();\n });\n var p = d.shift();\n p && d.length && (b[p.replace(/-([a-z])/g, function (b) {\n return b[1].toUpperCase();\n })] = d.join(\":\"));\n return b;\n }, {});\n };\n\n q.setElementHTML = function (b, d) {\n b.innerHTML = q.emptyHTML;\n d && new q(d).addToDOM(b);\n };\n\n q.prototype.addToDOM = function (b) {\n function d(b, p) {\n var n;\n h(b).forEach(function (b) {\n var m = b.tagName,\n k = b.textContent ? f.doc.createTextNode(b.textContent) : void 0,\n a = q.bypassHTMLFiltering;\n if (m) if (\"#text\" === m) var g = k;else if (-1 !== q.allowedTags.indexOf(m) || a) {\n m = f.doc.createElementNS(\"svg\" === m ? l : p.namespaceURI || l, m);\n var c = b.attributes || {};\n t(b, function (a, g) {\n \"tagName\" !== g && \"attributes\" !== g && \"children\" !== g && \"style\" !== g && \"textContent\" !== g && (c[g] = a);\n });\n C(m, a ? c : q.filterUserAttributes(c));\n b.style && E(m, b.style);\n k && m.appendChild(k);\n d(b.children || [], m);\n g = m;\n } else G(33, !1, void 0, {\n \"Invalid tagName in config\": m\n });\n g && p.appendChild(g);\n n = g;\n });\n return n;\n }\n\n return d(this.nodes, b);\n };\n\n q.prototype.parseMarkup = function (b) {\n var n = [];\n b = b.trim().replace(/ style=\"/g, ' data-style=\"');\n if (p) b = new DOMParser().parseFromString(d ? d.createHTML(b) : b, \"text/html\");else {\n var r = v(\"div\");\n r.innerHTML = b;\n b = {\n body: r\n };\n }\n\n var h = function (b, d) {\n var m = b.nodeName.toLowerCase(),\n k = {\n tagName: m\n };\n \"#text\" === m && (k.textContent = b.textContent || \"\");\n\n if (m = b.attributes) {\n var a = {};\n [].forEach.call(m, function (c) {\n \"data-style\" === c.name ? k.style = q.parseStyle(c.value) : a[c.name] = c.value;\n });\n k.attributes = a;\n }\n\n if (b.childNodes.length) {\n var g = [];\n [].forEach.call(b.childNodes, function (a) {\n h(a, g);\n });\n g.length && (k.children = g);\n }\n\n d.push(k);\n };\n\n [].forEach.call(b.body.childNodes, function (b) {\n return h(b, n);\n });\n return n;\n };\n\n q.allowedAttributes = \"aria-controls aria-describedby aria-expanded aria-haspopup aria-hidden aria-label aria-labelledby aria-live aria-pressed aria-readonly aria-roledescription aria-selected class clip-path color colspan cx cy d dx dy disabled fill height href id in markerHeight markerWidth offset opacity orient padding paddingLeft paddingRight patternUnits r refX refY role scope slope src startOffset stdDeviation stroke stroke-linecap stroke-width style tableValues result rowspan summary target tabindex text-align textAnchor textLength title type valign width x x1 x2 y y1 y2 zIndex\".split(\" \");\n q.allowedReferences = \"https:// http:// mailto: / ../ ./ #\".split(\" \");\n q.allowedTags = \"a abbr b br button caption circle clipPath code dd defs div dl dt em feComponentTransfer feFuncA feFuncB feFuncG feFuncR feGaussianBlur feOffset feMerge feMergeNode filter h1 h2 h3 h4 h5 h6 hr i img li linearGradient marker ol p path pattern pre rect small span stop strong style sub sup svg table text thead tbody tspan td th tr u ul #text\".split(\" \");\n q.emptyHTML = b;\n q.bypassHTMLFiltering = !1;\n return q;\n }();\n\n \"\";\n return B;\n });\n K(l, \"Core/FormatUtilities.js\", [l[\"Core/DefaultOptions.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n function l(e, h, d, b) {\n e = +e || 0;\n h = +h;\n var p = C.lang,\n q = (e.toString().split(\".\")[1] || \"\").split(\"e\")[0].length,\n r = e.toString().split(\"e\"),\n n = h;\n if (-1 === h) h = Math.min(q, 20);else if (!G(h)) h = 2;else if (h && r[1] && 0 > r[1]) {\n var J = h + +r[1];\n 0 <= J ? (r[0] = (+r[0]).toExponential(J).split(\"e\")[0], h = J) : (r[0] = r[0].split(\".\")[0] || 0, e = 20 > h ? (r[0] * Math.pow(10, r[1])).toFixed(h) : 0, r[1] = 0);\n }\n J = (Math.abs(r[1] ? r[0] : e) + Math.pow(10, -Math.max(h, q) - 1)).toFixed(h);\n q = String(y(J));\n var w = 3 < q.length ? q.length % 3 : 0;\n d = B(d, p.decimalPoint);\n b = B(b, p.thousandsSep);\n e = (0 > e ? \"-\" : \"\") + (w ? q.substr(0, w) + b : \"\");\n e = 0 > +r[1] && !n ? \"0\" : e + q.substr(w).replace(/(\\d{3})(?=\\d)/g, \"$1\" + b);\n h && (e += d + J.slice(-h));\n r[1] && 0 !== +e && (e += \"e\" + r[1]);\n return e;\n }\n\n var C = f.defaultOptions,\n v = f.defaultTime,\n E = e.getNestedProperty,\n G = e.isNumber,\n B = e.pick,\n y = e.pInt;\n return {\n dateFormat: function (e, h, d) {\n return v.dateFormat(e, h, d);\n },\n format: function (e, h, d) {\n var b = \"{\",\n p = !1,\n q = /f$/,\n r = /\\.([0-9])/,\n n = C.lang,\n J = d && d.time || v;\n d = d && d.numberFormatter || l;\n\n for (var w = []; e;) {\n var z = e.indexOf(b);\n if (-1 === z) break;\n var x = e.slice(0, z);\n\n if (p) {\n x = x.split(\":\");\n b = E(x.shift() || \"\", h);\n if (x.length && \"number\" === typeof b) if (x = x.join(\":\"), q.test(x)) {\n var m = parseInt((x.match(r) || [\"\", \"-1\"])[1], 10);\n null !== b && (b = d(b, m, n.decimalPoint, -1 < x.indexOf(\",\") ? n.thousandsSep : \"\"));\n } else b = J.dateFormat(x, b);\n w.push(b);\n } else w.push(x);\n\n e = e.slice(z + 1);\n b = (p = !p) ? \"}\" : \"{\";\n }\n\n w.push(e);\n return w.join(\"\");\n },\n numberFormat: l\n };\n });\n K(l, \"Core/Renderer/RendererUtilities.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.clamp,\n l = f.pick,\n C = f.stableSort,\n v;\n\n (function (f) {\n function v(f, y, t) {\n var h = f,\n d = h.reducedLen || y,\n b = function (b, d) {\n return (d.rank || 0) - (b.rank || 0);\n },\n p = function (b, d) {\n return b.target - d.target;\n },\n q,\n r = !0,\n n = [],\n J = 0;\n\n for (q = f.length; q--;) J += f[q].size;\n\n if (J > d) {\n C(f, b);\n\n for (J = q = 0; J <= d;) J += f[q].size, q++;\n\n n = f.splice(q - 1, f.length);\n }\n\n C(f, p);\n\n for (f = f.map(function (b) {\n return {\n size: b.size,\n targets: [b.target],\n align: l(b.align, .5)\n };\n }); r;) {\n for (q = f.length; q--;) d = f[q], b = (Math.min.apply(0, d.targets) + Math.max.apply(0, d.targets)) / 2, d.pos = e(b - d.size * d.align, 0, y - d.size);\n\n q = f.length;\n\n for (r = !1; q--;) 0 < q && f[q - 1].pos + f[q - 1].size > f[q].pos && (f[q - 1].size += f[q].size, f[q - 1].targets = f[q - 1].targets.concat(f[q].targets), f[q - 1].align = .5, f[q - 1].pos + f[q - 1].size > y && (f[q - 1].pos = y - f[q - 1].size), f.splice(q, 1), r = !0);\n }\n\n h.push.apply(h, n);\n q = 0;\n f.some(function (b) {\n var d = 0;\n return (b.targets || []).some(function () {\n h[q].pos = b.pos + d;\n if (\"undefined\" !== typeof t && Math.abs(h[q].pos - h[q].target) > t) return h.slice(0, q + 1).forEach(function (b) {\n return delete b.pos;\n }), h.reducedLen = (h.reducedLen || y) - .1 * y, h.reducedLen > .1 * y && v(h, y, t), !0;\n d += h[q].size;\n q++;\n return !1;\n });\n });\n C(h, p);\n return h;\n }\n\n f.distribute = v;\n })(v || (v = {}));\n\n return v;\n });\n K(l, \"Core/Renderer/SVG/SVGElement.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v) {\n var P = f.animate,\n G = f.animObject,\n B = f.stop,\n y = C.deg2rad,\n t = C.doc,\n h = C.noop,\n d = C.svg,\n b = C.SVG_NS,\n p = C.win,\n q = v.addEvent,\n r = v.attr,\n n = v.createElement,\n J = v.css,\n w = v.defined,\n z = v.erase,\n x = v.extend,\n m = v.fireEvent,\n k = v.isArray,\n a = v.isFunction,\n g = v.isNumber,\n c = v.isString,\n D = v.merge,\n A = v.objectEach,\n u = v.pick,\n L = v.pInt,\n S = v.syncTimeout,\n R = v.uniqueKey;\n\n f = function () {\n function f() {\n this.element = void 0;\n this.onEvents = {};\n this.opacity = 1;\n this.renderer = void 0;\n this.SVG_NS = b;\n this.symbolCustomAttribs = \"x y width height r start end innerR anchorX anchorY rounded\".split(\" \");\n }\n\n f.prototype._defaultGetter = function (a) {\n a = u(this[a + \"Value\"], this[a], this.element ? this.element.getAttribute(a) : null, 0);\n /^[\\-0-9\\.]+$/.test(a) && (a = parseFloat(a));\n return a;\n };\n\n f.prototype._defaultSetter = function (a, c, g) {\n g.setAttribute(c, a);\n };\n\n f.prototype.add = function (a) {\n var c = this.renderer,\n g = this.element;\n a && (this.parentGroup = a);\n this.parentInverted = a && a.inverted;\n \"undefined\" !== typeof this.textStr && \"text\" === this.element.nodeName && c.buildText(this);\n this.added = !0;\n if (!a || a.handleZ || this.zIndex) var b = this.zIndexSetter();\n b || (a ? a.element : c.box).appendChild(g);\n if (this.onAdd) this.onAdd();\n return this;\n };\n\n f.prototype.addClass = function (a, c) {\n var g = c ? \"\" : this.attr(\"class\") || \"\";\n a = (a || \"\").split(/ /g).reduce(function (a, c) {\n -1 === g.indexOf(c) && a.push(c);\n return a;\n }, g ? [g] : []).join(\" \");\n a !== g && this.attr(\"class\", a);\n return this;\n };\n\n f.prototype.afterSetters = function () {\n this.doTransform && (this.updateTransform(), this.doTransform = !1);\n };\n\n f.prototype.align = function (a, g, I) {\n var b = {},\n k = this.renderer,\n m = k.alignedObjects,\n d,\n p,\n F;\n\n if (a) {\n if (this.alignOptions = a, this.alignByTranslate = g, !I || c(I)) this.alignTo = d = I || \"renderer\", z(m, this), m.push(this), I = void 0;\n } else a = this.alignOptions, g = this.alignByTranslate, d = this.alignTo;\n\n I = u(I, k[d], \"scrollablePlotBox\" === d ? k.plotBox : void 0, k);\n d = a.align;\n var A = a.verticalAlign;\n k = (I.x || 0) + (a.x || 0);\n m = (I.y || 0) + (a.y || 0);\n \"right\" === d ? p = 1 : \"center\" === d && (p = 2);\n p && (k += (I.width - (a.width || 0)) / p);\n b[g ? \"translateX\" : \"x\"] = Math.round(k);\n \"bottom\" === A ? F = 1 : \"middle\" === A && (F = 2);\n F && (m += (I.height - (a.height || 0)) / F);\n b[g ? \"translateY\" : \"y\"] = Math.round(m);\n this[this.placed ? \"animate\" : \"attr\"](b);\n this.placed = !0;\n this.alignAttr = b;\n return this;\n };\n\n f.prototype.alignSetter = function (a) {\n var c = {\n left: \"start\",\n center: \"middle\",\n right: \"end\"\n };\n c[a] && (this.alignValue = a, this.element.setAttribute(\"text-anchor\", c[a]));\n };\n\n f.prototype.animate = function (a, c, g) {\n var I = this,\n b = G(u(c, this.renderer.globalAnimation, !0));\n c = b.defer;\n u(t.hidden, t.msHidden, t.webkitHidden, !1) && (b.duration = 0);\n 0 !== b.duration ? (g && (b.complete = g), S(function () {\n I.element && P(I, a, b);\n }, c)) : (this.attr(a, void 0, g || b.complete), A(a, function (a, c) {\n b.step && b.step.call(this, a, {\n prop: c,\n pos: 1,\n elem: this\n });\n }, this));\n return this;\n };\n\n f.prototype.applyTextOutline = function (a) {\n var c = this.element;\n -1 !== a.indexOf(\"contrast\") && (a = a.replace(/contrast/g, this.renderer.getContrast(c.style.fill)));\n var g = a.split(\" \");\n a = g[g.length - 1];\n\n if ((g = g[0]) && \"none\" !== g && C.svg) {\n this.fakeTS = !0;\n this.ySetter = this.xSetter;\n g = g.replace(/(^[\\d\\.]+)(.*?)$/g, function (a, c, g) {\n return 2 * Number(c) + g;\n });\n this.removeTextOutline();\n var k = t.createElementNS(b, \"tspan\");\n r(k, {\n \"class\": \"highcharts-text-outline\",\n fill: a,\n stroke: a,\n \"stroke-width\": g,\n \"stroke-linejoin\": \"round\"\n });\n [].forEach.call(c.childNodes, function (a) {\n var c = a.cloneNode(!0);\n c.removeAttribute && [\"fill\", \"stroke\", \"stroke-width\", \"stroke\"].forEach(function (a) {\n return c.removeAttribute(a);\n });\n k.appendChild(c);\n });\n var u = t.createElementNS(b, \"tspan\");\n u.textContent = \"\\u200b\";\n [\"x\", \"y\"].forEach(function (a) {\n var g = c.getAttribute(a);\n g && u.setAttribute(a, g);\n });\n k.appendChild(u);\n c.insertBefore(k, c.firstChild);\n }\n };\n\n f.prototype.attr = function (a, c, g, b) {\n var I = this.element,\n k = this.symbolCustomAttribs,\n H,\n u = this,\n F,\n m;\n\n if (\"string\" === typeof a && \"undefined\" !== typeof c) {\n var d = a;\n a = {};\n a[d] = c;\n }\n\n \"string\" === typeof a ? u = (this[a + \"Getter\"] || this._defaultGetter).call(this, a, I) : (A(a, function (c, g) {\n F = !1;\n b || B(this, g);\n this.symbolName && -1 !== k.indexOf(g) && (H || (this.symbolAttr(a), H = !0), F = !0);\n !this.rotation || \"x\" !== g && \"y\" !== g || (this.doTransform = !0);\n F || (m = this[g + \"Setter\"] || this._defaultSetter, m.call(this, c, g, I), !this.styledMode && this.shadows && /^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(g) && this.updateShadows(g, c, m));\n }, this), this.afterSetters());\n g && g.call(this);\n return u;\n };\n\n f.prototype.clip = function (a) {\n return this.attr(\"clip-path\", a ? \"url(\" + this.renderer.url + \"#\" + a.id + \")\" : \"none\");\n };\n\n f.prototype.crisp = function (a, c) {\n c = c || a.strokeWidth || 0;\n var g = Math.round(c) % 2 / 2;\n a.x = Math.floor(a.x || this.x || 0) + g;\n a.y = Math.floor(a.y || this.y || 0) + g;\n a.width = Math.floor((a.width || this.width || 0) - 2 * g);\n a.height = Math.floor((a.height || this.height || 0) - 2 * g);\n w(a.strokeWidth) && (a.strokeWidth = c);\n return a;\n };\n\n f.prototype.complexColor = function (a, c, g) {\n var b = this.renderer,\n I,\n u,\n d,\n p,\n F,\n n,\n r,\n q,\n h,\n z,\n e = [],\n x;\n m(this.renderer, \"complexColor\", {\n args: arguments\n }, function () {\n a.radialGradient ? u = \"radialGradient\" : a.linearGradient && (u = \"linearGradient\");\n\n if (u) {\n d = a[u];\n F = b.gradients;\n n = a.stops;\n h = g.radialReference;\n k(d) && (a[u] = d = {\n x1: d[0],\n y1: d[1],\n x2: d[2],\n y2: d[3],\n gradientUnits: \"userSpaceOnUse\"\n });\n \"radialGradient\" === u && h && !w(d.gradientUnits) && (p = d, d = D(d, b.getRadialAttr(h, p), {\n gradientUnits: \"userSpaceOnUse\"\n }));\n A(d, function (a, c) {\n \"id\" !== c && e.push(c, a);\n });\n A(n, function (a) {\n e.push(a);\n });\n e = e.join(\",\");\n if (F[e]) z = F[e].attr(\"id\");else {\n d.id = z = R();\n var H = F[e] = b.createElement(u).attr(d).add(b.defs);\n H.radAttr = p;\n H.stops = [];\n n.forEach(function (a) {\n 0 === a[1].indexOf(\"rgba\") ? (I = l.parse(a[1]), r = I.get(\"rgb\"), q = I.get(\"a\")) : (r = a[1], q = 1);\n a = b.createElement(\"stop\").attr({\n offset: a[0],\n \"stop-color\": r,\n \"stop-opacity\": q\n }).add(H);\n H.stops.push(a);\n });\n }\n x = \"url(\" + b.url + \"#\" + z + \")\";\n g.setAttribute(c, x);\n g.gradient = e;\n\n a.toString = function () {\n return x;\n };\n }\n });\n };\n\n f.prototype.css = function (a) {\n var c = this.styles,\n g = {},\n b = this.element,\n k = !c;\n a.color && (a.fill = a.color);\n c && A(a, function (a, b) {\n c && c[b] !== a && (g[b] = a, k = !0);\n });\n\n if (k) {\n c && (a = x(c, g));\n if (null === a.width || \"auto\" === a.width) delete this.textWidth;else if (\"text\" === b.nodeName.toLowerCase() && a.width) var u = this.textWidth = L(a.width);\n this.styles = a;\n u && !d && this.renderer.forExport && delete a.width;\n var m = D(a);\n b.namespaceURI === this.SVG_NS && [\"textOutline\", \"textOverflow\", \"width\"].forEach(function (a) {\n return m && delete m[a];\n });\n J(b, m);\n this.added && (\"text\" === this.element.nodeName && this.renderer.buildText(this), a.textOutline && this.applyTextOutline(a.textOutline));\n }\n\n return this;\n };\n\n f.prototype.dashstyleSetter = function (a) {\n var c = this[\"stroke-width\"];\n \"inherit\" === c && (c = 1);\n\n if (a = a && a.toLowerCase()) {\n var g = a.replace(\"shortdashdotdot\", \"3,1,1,1,1,1,\").replace(\"shortdashdot\", \"3,1,1,1\").replace(\"shortdot\", \"1,1,\").replace(\"shortdash\", \"3,1,\").replace(\"longdash\", \"8,3,\").replace(/dot/g, \"1,3,\").replace(\"dash\", \"4,3,\").replace(/,$/, \"\").split(\",\");\n\n for (a = g.length; a--;) g[a] = \"\" + L(g[a]) * u(c, NaN);\n\n a = g.join(\",\").replace(/NaN/g, \"none\");\n this.element.setAttribute(\"stroke-dasharray\", a);\n }\n };\n\n f.prototype.destroy = function () {\n var a = this,\n c = a.element || {},\n g = a.renderer,\n b = c.ownerSVGElement,\n k = g.isSVG && \"SPAN\" === c.nodeName && a.parentGroup || void 0;\n c.onclick = c.onmouseout = c.onmouseover = c.onmousemove = c.point = null;\n B(a);\n\n if (a.clipPath && b) {\n var u = a.clipPath;\n [].forEach.call(b.querySelectorAll(\"[clip-path],[CLIP-PATH]\"), function (a) {\n -1 < a.getAttribute(\"clip-path\").indexOf(u.element.id) && a.removeAttribute(\"clip-path\");\n });\n a.clipPath = u.destroy();\n }\n\n if (a.stops) {\n for (b = 0; b < a.stops.length; b++) a.stops[b].destroy();\n\n a.stops.length = 0;\n a.stops = void 0;\n }\n\n a.safeRemoveChild(c);\n\n for (g.styledMode || a.destroyShadows(); k && k.div && 0 === k.div.childNodes.length;) c = k.parentGroup, a.safeRemoveChild(k.div), delete k.div, k = c;\n\n a.alignTo && z(g.alignedObjects, a);\n A(a, function (c, g) {\n a[g] && a[g].parentGroup === a && a[g].destroy && a[g].destroy();\n delete a[g];\n });\n };\n\n f.prototype.destroyShadows = function () {\n (this.shadows || []).forEach(function (a) {\n this.safeRemoveChild(a);\n }, this);\n this.shadows = void 0;\n };\n\n f.prototype.destroyTextPath = function (a, c) {\n var g = a.getElementsByTagName(\"text\")[0];\n\n if (g) {\n if (g.removeAttribute(\"dx\"), g.removeAttribute(\"dy\"), c.element.setAttribute(\"id\", \"\"), this.textPathWrapper && g.getElementsByTagName(\"textPath\").length) {\n for (a = this.textPathWrapper.element.childNodes; a.length;) g.appendChild(a[0]);\n\n g.removeChild(this.textPathWrapper.element);\n }\n } else if (a.getAttribute(\"dx\") || a.getAttribute(\"dy\")) a.removeAttribute(\"dx\"), a.removeAttribute(\"dy\");\n\n this.textPathWrapper && (this.textPathWrapper = this.textPathWrapper.destroy());\n };\n\n f.prototype.dSetter = function (a, c, g) {\n k(a) && (\"string\" === typeof a[0] && (a = this.renderer.pathToSegments(a)), this.pathArray = a, a = a.reduce(function (a, c, g) {\n return c && c.join ? (g ? a + \" \" : \"\") + c.join(\" \") : (c || \"\").toString();\n }, \"\"));\n /(NaN| {2}|^$)/.test(a) && (a = \"M 0 0\");\n this[c] !== a && (g.setAttribute(c, a), this[c] = a);\n };\n\n f.prototype.fadeOut = function (a) {\n var c = this;\n c.animate({\n opacity: 0\n }, {\n duration: u(a, 150),\n complete: function () {\n c.hide();\n }\n });\n };\n\n f.prototype.fillSetter = function (a, c, g) {\n \"string\" === typeof a ? g.setAttribute(c, a) : a && this.complexColor(a, c, g);\n };\n\n f.prototype.getBBox = function (c, g) {\n var b = this.alignValue,\n k = this.element,\n d = this.renderer,\n m = this.styles,\n p = this.textStr,\n A = d.cache,\n F = d.cacheKeys,\n n = k.namespaceURI === this.SVG_NS;\n g = u(g, this.rotation, 0);\n var r = d.styledMode ? k && f.prototype.getStyle.call(k, \"font-size\") : m && m.fontSize,\n D;\n\n if (w(p)) {\n var q = p.toString();\n -1 === q.indexOf(\"<\") && (q = q.replace(/[0-9]/g, \"0\"));\n q += [\"\", g, r, this.textWidth, b, m && m.textOverflow, m && m.fontWeight].join();\n }\n\n q && !c && (D = A[q]);\n\n if (!D) {\n if (n || d.forExport) {\n try {\n var h = this.fakeTS && function (a) {\n var c = k.querySelector(\".highcharts-text-outline\");\n c && J(c, {\n display: a\n });\n };\n\n a(h) && h(\"none\");\n D = k.getBBox ? x({}, k.getBBox()) : {\n width: k.offsetWidth,\n height: k.offsetHeight\n };\n a(h) && h(\"\");\n } catch (Z) {\n \"\";\n }\n\n if (!D || 0 > D.width) D = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n } else D = this.htmlGetBBox();\n\n if (d.isSVG && (d = D.width, c = D.height, n && (D.height = c = {\n \"11px,17\": 14,\n \"13px,20\": 16\n }[\"\" + (r || \"\") + \",\".concat(Math.round(c))] || c), g)) {\n n = Number(k.getAttribute(\"y\") || 0) - D.y;\n b = {\n right: 1,\n center: .5\n }[b || 0] || 0;\n m = g * y;\n r = (g - 90) * y;\n var z = d * Math.cos(m);\n g = d * Math.sin(m);\n h = Math.cos(r);\n m = Math.sin(r);\n d = D.x + b * (d - z) + n * h;\n r = d + z;\n h = r - c * h;\n z = h - z;\n n = D.y + n - b * g + n * m;\n b = n + g;\n c = b - c * m;\n g = c - g;\n D.x = Math.min(d, r, h, z);\n D.y = Math.min(n, b, c, g);\n D.width = Math.max(d, r, h, z) - D.x;\n D.height = Math.max(n, b, c, g) - D.y;\n }\n\n if (q && (\"\" === p || 0 < D.height)) {\n for (; 250 < F.length;) delete A[F.shift()];\n\n A[q] || F.push(q);\n A[q] = D;\n }\n }\n\n return D;\n };\n\n f.prototype.getStyle = function (a) {\n return p.getComputedStyle(this.element || this, \"\").getPropertyValue(a);\n };\n\n f.prototype.hasClass = function (a) {\n return -1 !== (\"\" + this.attr(\"class\")).split(\" \").indexOf(a);\n };\n\n f.prototype.hide = function () {\n return this.attr({\n visibility: \"hidden\"\n });\n };\n\n f.prototype.htmlGetBBox = function () {\n return {\n height: 0,\n width: 0,\n x: 0,\n y: 0\n };\n };\n\n f.prototype.init = function (a, c) {\n this.element = \"span\" === c ? n(c) : t.createElementNS(this.SVG_NS, c);\n this.renderer = a;\n m(this, \"afterInit\");\n };\n\n f.prototype.invert = function (a) {\n this.inverted = a;\n this.updateTransform();\n return this;\n };\n\n f.prototype.on = function (a, c) {\n var g = this.onEvents;\n if (g[a]) g[a]();\n g[a] = q(this.element, a, c);\n return this;\n };\n\n f.prototype.opacitySetter = function (a, c, g) {\n this.opacity = a = Number(Number(a).toFixed(3));\n g.setAttribute(c, a);\n };\n\n f.prototype.removeClass = function (a) {\n return this.attr(\"class\", (\"\" + this.attr(\"class\")).replace(c(a) ? new RegExp(\"(^| )\".concat(a, \"( |$)\")) : a, \" \").replace(/ +/g, \" \").trim());\n };\n\n f.prototype.removeTextOutline = function () {\n var a = this.element.querySelector(\"tspan.highcharts-text-outline\");\n a && this.safeRemoveChild(a);\n };\n\n f.prototype.safeRemoveChild = function (a) {\n var c = a.parentNode;\n c && c.removeChild(a);\n };\n\n f.prototype.setRadialReference = function (a) {\n var c = this.element.gradient && this.renderer.gradients[this.element.gradient];\n this.element.radialReference = a;\n c && c.radAttr && c.animate(this.renderer.getRadialAttr(a, c.radAttr));\n return this;\n };\n\n f.prototype.setTextPath = function (a, c) {\n var b = this.element,\n k = this.text ? this.text.element : b,\n u = {\n textAnchor: \"text-anchor\"\n },\n d = !1,\n m = this.textPathWrapper,\n n = !m;\n c = D(!0, {\n enabled: !0,\n attributes: {\n dy: -5,\n startOffset: \"50%\",\n textAnchor: \"middle\"\n }\n }, c);\n var F = e.filterUserAttributes(c.attributes);\n\n if (a && c && c.enabled) {\n m && null === m.element.parentNode ? (n = !0, m = m.destroy()) : m && this.removeTextOutline.call(m.parentGroup);\n this.options && this.options.padding && (F.dx = -this.options.padding);\n m || (this.textPathWrapper = m = this.renderer.createElement(\"textPath\"), d = !0);\n var r = m.element;\n (c = a.element.getAttribute(\"id\")) || a.element.setAttribute(\"id\", c = R());\n if (n) for (k.setAttribute(\"y\", 0), g(F.dx) && k.setAttribute(\"x\", -F.dx), a = [].slice.call(k.childNodes), n = 0; n < a.length; n++) {\n var q = a[n];\n q.nodeType !== p.Node.TEXT_NODE && \"tspan\" !== q.nodeName || r.appendChild(q);\n }\n d && m && m.add({\n element: k\n });\n r.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", this.renderer.url + \"#\" + c);\n w(F.dy) && (r.parentNode.setAttribute(\"dy\", F.dy), delete F.dy);\n w(F.dx) && (r.parentNode.setAttribute(\"dx\", F.dx), delete F.dx);\n A(F, function (a, c) {\n r.setAttribute(u[c] || c, a);\n });\n b.removeAttribute(\"transform\");\n this.removeTextOutline.call(m);\n this.text && !this.renderer.styledMode && this.attr({\n fill: \"none\",\n \"stroke-width\": 0\n });\n this.applyTextOutline = this.updateTransform = h;\n } else m && (delete this.updateTransform, delete this.applyTextOutline, this.destroyTextPath(b, a), this.updateTransform(), this.options && this.options.rotation && this.applyTextOutline(this.options.style.textOutline));\n\n return this;\n };\n\n f.prototype.shadow = function (a, c, g) {\n var b = [],\n k = this.element,\n I = this.oldShadowOptions,\n u = {\n color: \"#000000\",\n offsetX: this.parentInverted ? -1 : 1,\n offsetY: this.parentInverted ? -1 : 1,\n opacity: .15,\n width: 3\n },\n m = !1,\n F;\n !0 === a ? F = u : \"object\" === typeof a && (F = x(u, a));\n F && (F && I && A(F, function (a, c) {\n a !== I[c] && (m = !0);\n }), m && this.destroyShadows(), this.oldShadowOptions = F);\n if (!F) this.destroyShadows();else if (!this.shadows) {\n var d = F.opacity / F.width;\n var p = this.parentInverted ? \"translate(\".concat(F.offsetY, \", \").concat(F.offsetX, \")\") : \"translate(\".concat(F.offsetX, \", \").concat(F.offsetY, \")\");\n\n for (u = 1; u <= F.width; u++) {\n var n = k.cloneNode(!1);\n var D = 2 * F.width + 1 - 2 * u;\n r(n, {\n stroke: a.color || \"#000000\",\n \"stroke-opacity\": d * u,\n \"stroke-width\": D,\n transform: p,\n fill: \"none\"\n });\n n.setAttribute(\"class\", (n.getAttribute(\"class\") || \"\") + \" highcharts-shadow\");\n g && (r(n, \"height\", Math.max(r(n, \"height\") - D, 0)), n.cutHeight = D);\n c ? c.element.appendChild(n) : k.parentNode && k.parentNode.insertBefore(n, k);\n b.push(n);\n }\n\n this.shadows = b;\n }\n return this;\n };\n\n f.prototype.show = function (a) {\n void 0 === a && (a = !0);\n return this.attr({\n visibility: a ? \"inherit\" : \"visible\"\n });\n };\n\n f.prototype.strokeSetter = function (a, c, g) {\n this[c] = a;\n this.stroke && this[\"stroke-width\"] ? (f.prototype.fillSetter.call(this, this.stroke, \"stroke\", g), g.setAttribute(\"stroke-width\", this[\"stroke-width\"]), this.hasStroke = !0) : \"stroke-width\" === c && 0 === a && this.hasStroke ? (g.removeAttribute(\"stroke\"), this.hasStroke = !1) : this.renderer.styledMode && this[\"stroke-width\"] && (g.setAttribute(\"stroke-width\", this[\"stroke-width\"]), this.hasStroke = !0);\n };\n\n f.prototype.strokeWidth = function () {\n if (!this.renderer.styledMode) return this[\"stroke-width\"] || 0;\n var a = this.getStyle(\"stroke-width\"),\n c = 0;\n if (a.indexOf(\"px\") === a.length - 2) c = L(a);else if (\"\" !== a) {\n var g = t.createElementNS(b, \"rect\");\n r(g, {\n width: a,\n \"stroke-width\": 0\n });\n this.element.parentNode.appendChild(g);\n c = g.getBBox().width;\n g.parentNode.removeChild(g);\n }\n return c;\n };\n\n f.prototype.symbolAttr = function (a) {\n var c = this;\n \"x y r start end width height innerR anchorX anchorY clockwise\".split(\" \").forEach(function (g) {\n c[g] = u(a[g], c[g]);\n });\n c.attr({\n d: c.renderer.symbols[c.symbolName](c.x, c.y, c.width, c.height, c)\n });\n };\n\n f.prototype.textSetter = function (a) {\n a !== this.textStr && (delete this.textPxLength, this.textStr = a, this.added && this.renderer.buildText(this));\n };\n\n f.prototype.titleSetter = function (a) {\n var c = this.element,\n g = c.getElementsByTagName(\"title\")[0] || t.createElementNS(this.SVG_NS, \"title\");\n c.insertBefore ? c.insertBefore(g, c.firstChild) : c.appendChild(g);\n g.textContent = String(u(a, \"\")).replace(/<[^>]*>/g, \"\").replace(/</g, \"<\").replace(/>/g, \">\");\n };\n\n f.prototype.toFront = function () {\n var a = this.element;\n a.parentNode.appendChild(a);\n return this;\n };\n\n f.prototype.translate = function (a, c) {\n return this.attr({\n translateX: a,\n translateY: c\n });\n };\n\n f.prototype.updateShadows = function (a, c, g) {\n var b = this.shadows;\n if (b) for (var k = b.length; k--;) g.call(b[k], \"height\" === a ? Math.max(c - (b[k].cutHeight || 0), 0) : \"d\" === a ? this.d : c, a, b[k]);\n };\n\n f.prototype.updateTransform = function () {\n var a = this.scaleX,\n c = this.scaleY,\n g = this.inverted,\n b = this.rotation,\n k = this.matrix,\n m = this.element,\n d = this.translateX || 0,\n n = this.translateY || 0;\n g && (d += this.width, n += this.height);\n d = [\"translate(\" + d + \",\" + n + \")\"];\n w(k) && d.push(\"matrix(\" + k.join(\",\") + \")\");\n g ? d.push(\"rotate(90) scale(-1,1)\") : b && d.push(\"rotate(\" + b + \" \" + u(this.rotationOriginX, m.getAttribute(\"x\"), 0) + \" \" + u(this.rotationOriginY, m.getAttribute(\"y\") || 0) + \")\");\n (w(a) || w(c)) && d.push(\"scale(\" + u(a, 1) + \" \" + u(c, 1) + \")\");\n d.length && m.setAttribute(\"transform\", d.join(\" \"));\n };\n\n f.prototype.visibilitySetter = function (a, c, g) {\n \"inherit\" === a ? g.removeAttribute(c) : this[c] !== a && g.setAttribute(c, a);\n this[c] = a;\n };\n\n f.prototype.xGetter = function (a) {\n \"circle\" === this.element.nodeName && (\"x\" === a ? a = \"cx\" : \"y\" === a && (a = \"cy\"));\n return this._defaultGetter(a);\n };\n\n f.prototype.zIndexSetter = function (a, c) {\n var g = this.renderer,\n b = this.parentGroup,\n k = (b || g).element || g.box,\n u = this.element;\n g = k === g.box;\n var d = !1;\n var m = this.added;\n var F;\n w(a) ? (u.setAttribute(\"data-z-index\", a), a = +a, this[c] === a && (m = !1)) : w(this[c]) && u.removeAttribute(\"data-z-index\");\n this[c] = a;\n\n if (m) {\n (a = this.zIndex) && b && (b.handleZ = !0);\n c = k.childNodes;\n\n for (F = c.length - 1; 0 <= F && !d; F--) {\n b = c[F];\n m = b.getAttribute(\"data-z-index\");\n var n = !w(m);\n if (b !== u) if (0 > a && n && !g && !F) k.insertBefore(u, c[F]), d = !0;else if (L(m) <= a || n && (!w(a) || 0 <= a)) k.insertBefore(u, c[F + 1] || null), d = !0;\n }\n\n d || (k.insertBefore(u, c[g ? 3 : 0] || null), d = !0);\n }\n\n return d;\n };\n\n return f;\n }();\n\n f.prototype[\"stroke-widthSetter\"] = f.prototype.strokeSetter;\n f.prototype.yGetter = f.prototype.xGetter;\n\n f.prototype.matrixSetter = f.prototype.rotationOriginXSetter = f.prototype.rotationOriginYSetter = f.prototype.rotationSetter = f.prototype.scaleXSetter = f.prototype.scaleYSetter = f.prototype.translateXSetter = f.prototype.translateYSetter = f.prototype.verticalAlignSetter = function (a, c) {\n this[c] = a;\n this.doTransform = !0;\n };\n\n \"\";\n return f;\n });\n K(l, \"Core/Renderer/RendererRegistry.js\", [l[\"Core/Globals.js\"]], function (f) {\n var e;\n\n (function (e) {\n e.rendererTypes = {};\n var l;\n\n e.getRendererType = function (f) {\n void 0 === f && (f = l);\n return e.rendererTypes[f] || e.rendererTypes[l];\n };\n\n e.registerRendererType = function (v, P, G) {\n e.rendererTypes[v] = P;\n if (!l || G) l = v, f.Renderer = P;\n };\n })(e || (e = {}));\n\n return e;\n });\n K(l, \"Core/Renderer/SVG/SVGLabel.js\", [l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = this && this.__extends || function () {\n var e = function (h, d) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var p in d) d.hasOwnProperty(p) && (b[p] = d[p]);\n };\n\n return e(h, d);\n };\n\n return function (h, d) {\n function b() {\n this.constructor = h;\n }\n\n e(h, d);\n h.prototype = null === d ? Object.create(d) : (b.prototype = d.prototype, new b());\n };\n }(),\n C = e.defined,\n v = e.extend,\n E = e.isNumber,\n G = e.merge,\n B = e.pick,\n y = e.removeEvent;\n\n return function (e) {\n function h(d, b, p, q, r, n, f, w, z, x) {\n var m = e.call(this) || this;\n m.paddingLeftSetter = m.paddingSetter;\n m.paddingRightSetter = m.paddingSetter;\n m.init(d, \"g\");\n m.textStr = b;\n m.x = p;\n m.y = q;\n m.anchorX = n;\n m.anchorY = f;\n m.baseline = z;\n m.className = x;\n m.addClass(\"button\" === x ? \"highcharts-no-tooltip\" : \"highcharts-label\");\n x && m.addClass(\"highcharts-\" + x);\n m.text = d.text(void 0, 0, 0, w).attr({\n zIndex: 1\n });\n var k;\n \"string\" === typeof r && ((k = /^url\\((.*?)\\)$/.test(r)) || m.renderer.symbols[r]) && (m.symbolKey = r);\n m.bBox = h.emptyBBox;\n m.padding = 3;\n m.baselineOffset = 0;\n m.needsBox = d.styledMode || k;\n m.deferredAttr = {};\n m.alignFactor = 0;\n return m;\n }\n\n l(h, e);\n\n h.prototype.alignSetter = function (d) {\n d = {\n left: 0,\n center: .5,\n right: 1\n }[d];\n d !== this.alignFactor && (this.alignFactor = d, this.bBox && E(this.xSetting) && this.attr({\n x: this.xSetting\n }));\n };\n\n h.prototype.anchorXSetter = function (d, b) {\n this.anchorX = d;\n this.boxAttr(b, Math.round(d) - this.getCrispAdjust() - this.xSetting);\n };\n\n h.prototype.anchorYSetter = function (d, b) {\n this.anchorY = d;\n this.boxAttr(b, d - this.ySetting);\n };\n\n h.prototype.boxAttr = function (d, b) {\n this.box ? this.box.attr(d, b) : this.deferredAttr[d] = b;\n };\n\n h.prototype.css = function (d) {\n if (d) {\n var b = {};\n d = G(d);\n h.textProps.forEach(function (p) {\n \"undefined\" !== typeof d[p] && (b[p] = d[p], delete d[p]);\n });\n this.text.css(b);\n var p = (\"width\" in b);\n \"fontSize\" in b || \"fontWeight\" in b ? this.updateTextPadding() : p && this.updateBoxSize();\n }\n\n return f.prototype.css.call(this, d);\n };\n\n h.prototype.destroy = function () {\n y(this.element, \"mouseenter\");\n y(this.element, \"mouseleave\");\n this.text && this.text.destroy();\n this.box && (this.box = this.box.destroy());\n f.prototype.destroy.call(this);\n };\n\n h.prototype.fillSetter = function (d, b) {\n d && (this.needsBox = !0);\n this.fill = d;\n this.boxAttr(b, d);\n };\n\n h.prototype.getBBox = function () {\n this.textStr && 0 === this.bBox.width && 0 === this.bBox.height && this.updateBoxSize();\n var d = this.padding,\n b = B(this.paddingLeft, d);\n return {\n width: this.width,\n height: this.height,\n x: this.bBox.x - b,\n y: this.bBox.y - d\n };\n };\n\n h.prototype.getCrispAdjust = function () {\n return this.renderer.styledMode && this.box ? this.box.strokeWidth() % 2 / 2 : (this[\"stroke-width\"] ? parseInt(this[\"stroke-width\"], 10) : 0) % 2 / 2;\n };\n\n h.prototype.heightSetter = function (d) {\n this.heightSetting = d;\n };\n\n h.prototype.onAdd = function () {\n var d = this.textStr;\n this.text.add(this);\n this.attr({\n text: C(d) ? d : \"\",\n x: this.x,\n y: this.y\n });\n this.box && C(this.anchorX) && this.attr({\n anchorX: this.anchorX,\n anchorY: this.anchorY\n });\n };\n\n h.prototype.paddingSetter = function (d, b) {\n E(d) ? d !== this[b] && (this[b] = d, this.updateTextPadding()) : this[b] = void 0;\n };\n\n h.prototype.rSetter = function (d, b) {\n this.boxAttr(b, d);\n };\n\n h.prototype.shadow = function (d) {\n d && !this.renderer.styledMode && (this.updateBoxSize(), this.box && this.box.shadow(d));\n return this;\n };\n\n h.prototype.strokeSetter = function (d, b) {\n this.stroke = d;\n this.boxAttr(b, d);\n };\n\n h.prototype[\"stroke-widthSetter\"] = function (d, b) {\n d && (this.needsBox = !0);\n this[\"stroke-width\"] = d;\n this.boxAttr(b, d);\n };\n\n h.prototype[\"text-alignSetter\"] = function (d) {\n this.textAlign = d;\n };\n\n h.prototype.textSetter = function (d) {\n \"undefined\" !== typeof d && this.text.attr({\n text: d\n });\n this.updateTextPadding();\n };\n\n h.prototype.updateBoxSize = function () {\n var d = this.text.element.style,\n b = {},\n p = this.padding,\n q = this.bBox = E(this.widthSetting) && E(this.heightSetting) && !this.textAlign || !C(this.text.textStr) ? h.emptyBBox : this.text.getBBox();\n this.width = this.getPaddedWidth();\n this.height = (this.heightSetting || q.height || 0) + 2 * p;\n d = this.renderer.fontMetrics(d && d.fontSize, this.text);\n this.baselineOffset = p + Math.min((this.text.firstLineMetrics || d).b, q.height || Infinity);\n this.heightSetting && (this.baselineOffset += (this.heightSetting - d.h) / 2);\n this.needsBox && (this.box || (p = this.box = this.symbolKey ? this.renderer.symbol(this.symbolKey) : this.renderer.rect(), p.addClass((\"button\" === this.className ? \"\" : \"highcharts-label-box\") + (this.className ? \" highcharts-\" + this.className + \"-box\" : \"\")), p.add(this)), p = this.getCrispAdjust(), b.x = p, b.y = (this.baseline ? -this.baselineOffset : 0) + p, b.width = Math.round(this.width), b.height = Math.round(this.height), this.box.attr(v(b, this.deferredAttr)), this.deferredAttr = {});\n };\n\n h.prototype.updateTextPadding = function () {\n var d = this.text;\n this.updateBoxSize();\n var b = this.baseline ? 0 : this.baselineOffset,\n p = B(this.paddingLeft, this.padding);\n C(this.widthSetting) && this.bBox && (\"center\" === this.textAlign || \"right\" === this.textAlign) && (p += {\n center: .5,\n right: 1\n }[this.textAlign] * (this.widthSetting - this.bBox.width));\n if (p !== d.x || b !== d.y) d.attr(\"x\", p), d.hasBoxWidthChanged && (this.bBox = d.getBBox(!0)), \"undefined\" !== typeof b && d.attr(\"y\", b);\n d.x = p;\n d.y = b;\n };\n\n h.prototype.widthSetter = function (d) {\n this.widthSetting = E(d) ? d : void 0;\n };\n\n h.prototype.getPaddedWidth = function () {\n var d = this.padding,\n b = B(this.paddingLeft, d);\n d = B(this.paddingRight, d);\n return (this.widthSetting || this.bBox.width || 0) + b + d;\n };\n\n h.prototype.xSetter = function (d) {\n this.x = d;\n this.alignFactor && (d -= this.alignFactor * this.getPaddedWidth(), this[\"forceAnimate:x\"] = !0);\n this.xSetting = Math.round(d);\n this.attr(\"translateX\", this.xSetting);\n };\n\n h.prototype.ySetter = function (d) {\n this.ySetting = this.y = Math.round(d);\n this.attr(\"translateY\", this.ySetting);\n };\n\n h.emptyBBox = {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n h.textProps = \"color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width\".split(\" \");\n return h;\n }(f);\n });\n K(l, \"Core/Renderer/SVG/Symbols.js\", [l[\"Core/Utilities.js\"]], function (f) {\n function e(e, f, t, h, d) {\n var b = [];\n\n if (d) {\n var p = d.start || 0,\n q = G(d.r, t);\n t = G(d.r, h || t);\n var r = (d.end || 0) - .001;\n h = d.innerR;\n var n = G(d.open, .001 > Math.abs((d.end || 0) - p - 2 * Math.PI)),\n J = Math.cos(p),\n w = Math.sin(p),\n z = Math.cos(r),\n x = Math.sin(r);\n p = G(d.longArc, .001 > r - p - Math.PI ? 0 : 1);\n b.push([\"M\", e + q * J, f + t * w], [\"A\", q, t, 0, p, G(d.clockwise, 1), e + q * z, f + t * x]);\n v(h) && b.push(n ? [\"M\", e + h * z, f + h * x] : [\"L\", e + h * z, f + h * x], [\"A\", h, h, 0, p, v(d.clockwise) ? 1 - d.clockwise : 0, e + h * J, f + h * w]);\n n || b.push([\"Z\"]);\n }\n\n return b;\n }\n\n function l(e, f, t, h, d) {\n return d && d.r ? C(e, f, t, h, d) : [[\"M\", e, f], [\"L\", e + t, f], [\"L\", e + t, f + h], [\"L\", e, f + h], [\"Z\"]];\n }\n\n function C(e, f, t, h, d) {\n d = d && d.r || 0;\n return [[\"M\", e + d, f], [\"L\", e + t - d, f], [\"C\", e + t, f, e + t, f, e + t, f + d], [\"L\", e + t, f + h - d], [\"C\", e + t, f + h, e + t, f + h, e + t - d, f + h], [\"L\", e + d, f + h], [\"C\", e, f + h, e, f + h, e, f + h - d], [\"L\", e, f + d], [\"C\", e, f, e, f, e + d, f]];\n }\n\n var v = f.defined,\n E = f.isNumber,\n G = f.pick;\n return {\n arc: e,\n callout: function (e, f, t, h, d) {\n var b = Math.min(d && d.r || 0, t, h),\n p = b + 6,\n q = d && d.anchorX;\n d = d && d.anchorY || 0;\n var r = C(e, f, t, h, {\n r: b\n });\n if (!E(q)) return r;\n e + q >= t ? d > f + p && d < f + h - p ? r.splice(3, 1, [\"L\", e + t, d - 6], [\"L\", e + t + 6, d], [\"L\", e + t, d + 6], [\"L\", e + t, f + h - b]) : r.splice(3, 1, [\"L\", e + t, h / 2], [\"L\", q, d], [\"L\", e + t, h / 2], [\"L\", e + t, f + h - b]) : 0 >= e + q ? d > f + p && d < f + h - p ? r.splice(7, 1, [\"L\", e, d + 6], [\"L\", e - 6, d], [\"L\", e, d - 6], [\"L\", e, f + b]) : r.splice(7, 1, [\"L\", e, h / 2], [\"L\", q, d], [\"L\", e, h / 2], [\"L\", e, f + b]) : d && d > h && q > e + p && q < e + t - p ? r.splice(5, 1, [\"L\", q + 6, f + h], [\"L\", q, f + h + 6], [\"L\", q - 6, f + h], [\"L\", e + b, f + h]) : d && 0 > d && q > e + p && q < e + t - p && r.splice(1, 1, [\"L\", q - 6, f], [\"L\", q, f - 6], [\"L\", q + 6, f], [\"L\", t - b, f]);\n return r;\n },\n circle: function (f, l, t, h) {\n return e(f + t / 2, l + h / 2, t / 2, h / 2, {\n start: .5 * Math.PI,\n end: 2.5 * Math.PI,\n open: !1\n });\n },\n diamond: function (e, f, t, h) {\n return [[\"M\", e + t / 2, f], [\"L\", e + t, f + h / 2], [\"L\", e + t / 2, f + h], [\"L\", e, f + h / 2], [\"Z\"]];\n },\n rect: l,\n roundedRect: C,\n square: l,\n triangle: function (e, f, t, h) {\n return [[\"M\", e + t / 2, f], [\"L\", e + t, f + h], [\"L\", e, f + h], [\"Z\"]];\n },\n \"triangle-down\": function (e, f, t, h) {\n return [[\"M\", e, f], [\"L\", e + t, f], [\"L\", e + t / 2, f + h], [\"Z\"]];\n }\n };\n });\n K(l, \"Core/Renderer/SVG/TextBuilder.js\", [l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var P = e.doc,\n v = e.SVG_NS,\n E = e.win,\n G = l.attr,\n B = l.extend,\n y = l.isString,\n t = l.objectEach,\n h = l.pick;\n return function () {\n function d(b) {\n var d = b.styles;\n this.renderer = b.renderer;\n this.svgElement = b;\n this.width = b.textWidth;\n this.textLineHeight = d && d.lineHeight;\n this.textOutline = d && d.textOutline;\n this.ellipsis = !(!d || \"ellipsis\" !== d.textOverflow);\n this.noWrap = !(!d || \"nowrap\" !== d.whiteSpace);\n this.fontSize = d && d.fontSize;\n }\n\n d.prototype.buildSVG = function () {\n var b = this.svgElement,\n d = b.element,\n e = b.renderer,\n r = h(b.textStr, \"\").toString(),\n n = -1 !== r.indexOf(\"<\"),\n J = d.childNodes;\n e = this.width && !b.added && e.box;\n var w = //g,\n z = [r, this.ellipsis, this.noWrap, this.textLineHeight, this.textOutline, this.fontSize, this.width].join();\n\n if (z !== b.textCache) {\n b.textCache = z;\n delete b.actualWidth;\n\n for (z = J.length; z--;) d.removeChild(J[z]);\n\n n || this.ellipsis || this.width || -1 !== r.indexOf(\" \") && (!this.noWrap || w.test(r)) ? \"\" !== r && (e && e.appendChild(d), r = new f(r), this.modifyTree(r.nodes), r.addToDOM(b.element), this.modifyDOM(), this.ellipsis && -1 !== (d.textContent || \"\").indexOf(\"\\u2026\") && b.attr(\"title\", this.unescapeEntities(b.textStr || \"\", [\"<\", \">\"])), e && e.removeChild(d)) : d.appendChild(P.createTextNode(this.unescapeEntities(r)));\n y(this.textOutline) && b.applyTextOutline && b.applyTextOutline(this.textOutline);\n }\n };\n\n d.prototype.modifyDOM = function () {\n var b = this,\n d = this.svgElement,\n e = G(d.element, \"x\");\n d.firstLineMetrics = void 0;\n\n for (var r; r = d.element.firstChild;) if (/^[\\s\\u200B]*$/.test(r.textContent || \" \")) d.element.removeChild(r);else break;\n\n [].forEach.call(d.element.querySelectorAll(\"tspan.highcharts-br\"), function (n, r) {\n n.nextSibling && n.previousSibling && (0 === r && 1 === n.previousSibling.nodeType && (d.firstLineMetrics = d.renderer.fontMetrics(void 0, n.previousSibling)), G(n, {\n dy: b.getLineHeight(n.nextSibling),\n x: e\n }));\n });\n var n = this.width || 0;\n\n if (n) {\n var h = function (r, p) {\n var m = r.textContent || \"\",\n k = m.replace(/([^\\^])-/g, \"$1- \").split(\" \"),\n a = !b.noWrap && (1 < k.length || 1 < d.element.childNodes.length),\n g = b.getLineHeight(p),\n c = 0,\n D = d.actualWidth;\n if (b.ellipsis) m && b.truncate(r, m, void 0, 0, Math.max(0, n - parseInt(b.fontSize || 12, 10)), function (a, c) {\n return a.substring(0, c) + \"\\u2026\";\n });else if (a) {\n m = [];\n\n for (a = []; p.firstChild && p.firstChild !== r;) a.push(p.firstChild), p.removeChild(p.firstChild);\n\n for (; k.length;) k.length && !b.noWrap && 0 < c && (m.push(r.textContent || \"\"), r.textContent = k.join(\" \").replace(/- /g, \"-\")), b.truncate(r, void 0, k, 0 === c ? D || 0 : 0, n, function (a, c) {\n return k.slice(0, c).join(\" \").replace(/- /g, \"-\");\n }), D = d.actualWidth, c++;\n\n a.forEach(function (a) {\n p.insertBefore(a, r);\n });\n m.forEach(function (a) {\n p.insertBefore(P.createTextNode(a), r);\n a = P.createElementNS(v, \"tspan\");\n a.textContent = \"\\u200b\";\n G(a, {\n dy: g,\n x: e\n });\n p.insertBefore(a, r);\n });\n }\n },\n f = function (b) {\n [].slice.call(b.childNodes).forEach(function (n) {\n n.nodeType === E.Node.TEXT_NODE ? h(n, b) : (-1 !== n.className.baseVal.indexOf(\"highcharts-br\") && (d.actualWidth = 0), f(n));\n });\n };\n\n f(d.element);\n }\n };\n\n d.prototype.getLineHeight = function (b) {\n var d;\n b = b.nodeType === E.Node.TEXT_NODE ? b.parentElement : b;\n this.renderer.styledMode || (d = b && /(px|em)$/.test(b.style.fontSize) ? b.style.fontSize : this.fontSize || this.renderer.style.fontSize || 12);\n return this.textLineHeight ? parseInt(this.textLineHeight.toString(), 10) : this.renderer.fontMetrics(d, b || this.svgElement.element).h;\n };\n\n d.prototype.modifyTree = function (b) {\n var d = this,\n e = function (r, n) {\n var p = r.attributes;\n p = void 0 === p ? {} : p;\n var h = r.children,\n q = r.style;\n q = void 0 === q ? {} : q;\n var f = r.tagName,\n m = d.renderer.styledMode;\n if (\"b\" === f || \"strong\" === f) m ? p[\"class\"] = \"highcharts-strong\" : q.fontWeight = \"bold\";else if (\"i\" === f || \"em\" === f) m ? p[\"class\"] = \"highcharts-emphasized\" : q.fontStyle = \"italic\";\n q && q.color && (q.fill = q.color);\n \"br\" === f ? (p[\"class\"] = \"highcharts-br\", r.textContent = \"\\u200b\", (n = b[n + 1]) && n.textContent && (n.textContent = n.textContent.replace(/^ +/gm, \"\"))) : \"a\" === f && h && h.some(function (b) {\n return \"#text\" === b.tagName;\n }) && (r.children = [{\n children: h,\n tagName: \"tspan\"\n }]);\n \"#text\" !== f && \"a\" !== f && (r.tagName = \"tspan\");\n B(r, {\n attributes: p,\n style: q\n });\n h && h.filter(function (b) {\n return \"#text\" !== b.tagName;\n }).forEach(e);\n };\n\n b.forEach(e);\n };\n\n d.prototype.truncate = function (b, d, e, r, n, h) {\n var p = this.svgElement,\n f = p.renderer,\n q = p.rotation,\n m = [],\n k = e ? 1 : 0,\n a = (d || e || \"\").length,\n g = a,\n c,\n D = function (a, c) {\n c = c || a;\n var g = b.parentNode;\n if (g && \"undefined\" === typeof m[c]) if (g.getSubStringLength) try {\n m[c] = r + g.getSubStringLength(0, e ? c + 1 : c);\n } catch (R) {\n \"\";\n } else f.getSpanWidth && (b.textContent = h(d || e, a), m[c] = r + f.getSpanWidth(p, b));\n return m[c];\n };\n\n p.rotation = 0;\n var A = D(b.textContent.length);\n\n if (r + A > n) {\n for (; k <= a;) g = Math.ceil((k + a) / 2), e && (c = h(e, g)), A = D(g, c && c.length - 1), k === a ? k = a + 1 : A > n ? a = g - 1 : k = g;\n\n 0 === a ? b.textContent = \"\" : d && a === d.length - 1 || (b.textContent = c || h(d || e, g));\n }\n\n e && e.splice(0, g);\n p.actualWidth = A;\n p.rotation = q;\n };\n\n d.prototype.unescapeEntities = function (b, d) {\n t(this.renderer.escapes, function (e, r) {\n d && -1 !== d.indexOf(e) || (b = b.toString().replace(new RegExp(e, \"g\"), r));\n });\n return b;\n };\n\n return d;\n }();\n });\n K(l, \"Core/Renderer/SVG/SVGRenderer.js\", [l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Renderer/RendererRegistry.js\"], l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Renderer/SVG/SVGLabel.js\"], l[\"Core/Renderer/SVG/Symbols.js\"], l[\"Core/Renderer/SVG/TextBuilder.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G, B, y) {\n var t = l.charts,\n h = l.deg2rad,\n d = l.doc,\n b = l.isFirefox,\n p = l.isMS,\n q = l.isWebKit,\n r = l.noop,\n n = l.SVG_NS,\n J = l.symbolSizes,\n w = l.win,\n z = y.addEvent,\n x = y.attr,\n m = y.createElement,\n k = y.css,\n a = y.defined,\n g = y.destroyObjectProperties,\n c = y.extend,\n D = y.isArray,\n A = y.isNumber,\n u = y.isObject,\n L = y.isString,\n S = y.merge,\n R = y.pick,\n M = y.pInt,\n U = y.uniqueKey,\n aa;\n\n l = function () {\n function I(a, c, g, b, d, k, m) {\n this.width = this.url = this.style = this.isSVG = this.imgCount = this.height = this.gradients = this.globalAnimation = this.defs = this.chartIndex = this.cacheKeys = this.cache = this.boxWrapper = this.box = this.alignedObjects = void 0;\n this.init(a, c, g, b, d, k, m);\n }\n\n I.prototype.init = function (a, c, g, m, u, F, I) {\n var n = this.createElement(\"svg\").attr({\n version: \"1.1\",\n \"class\": \"highcharts-root\"\n }),\n H = n.element;\n I || n.css(this.getStyle(m));\n a.appendChild(H);\n x(a, \"dir\", \"ltr\");\n -1 === a.innerHTML.indexOf(\"xmlns\") && x(H, \"xmlns\", this.SVG_NS);\n this.isSVG = !0;\n this.box = H;\n this.boxWrapper = n;\n this.alignedObjects = [];\n this.url = this.getReferenceURL();\n this.createElement(\"desc\").add().element.appendChild(d.createTextNode(\"Created with Highcharts 10.2.0\"));\n this.defs = this.createElement(\"defs\").add();\n this.allowHTML = F;\n this.forExport = u;\n this.styledMode = I;\n this.gradients = {};\n this.cache = {};\n this.cacheKeys = [];\n this.imgCount = 0;\n this.setSize(c, g, !1);\n var e;\n b && a.getBoundingClientRect && (c = function () {\n k(a, {\n left: 0,\n top: 0\n });\n e = a.getBoundingClientRect();\n k(a, {\n left: Math.ceil(e.left) - e.left + \"px\",\n top: Math.ceil(e.top) - e.top + \"px\"\n });\n }, c(), this.unSubPixelFix = z(w, \"resize\", c));\n };\n\n I.prototype.definition = function (a) {\n return new f([a]).addToDOM(this.defs.element);\n };\n\n I.prototype.getReferenceURL = function () {\n if ((b || q) && d.getElementsByTagName(\"base\").length) {\n if (!a(aa)) {\n var c = U();\n c = new f([{\n tagName: \"svg\",\n attributes: {\n width: 8,\n height: 8\n },\n children: [{\n tagName: \"defs\",\n children: [{\n tagName: \"clipPath\",\n attributes: {\n id: c\n },\n children: [{\n tagName: \"rect\",\n attributes: {\n width: 4,\n height: 4\n }\n }]\n }]\n }, {\n tagName: \"rect\",\n attributes: {\n id: \"hitme\",\n width: 8,\n height: 8,\n \"clip-path\": \"url(#\".concat(c, \")\"),\n fill: \"rgba(0,0,0,0.001)\"\n }\n }]\n }]).addToDOM(d.body);\n k(c, {\n position: \"fixed\",\n top: 0,\n left: 0,\n zIndex: 9E5\n });\n var g = d.elementFromPoint(6, 6);\n aa = \"hitme\" === (g && g.id);\n d.body.removeChild(c);\n }\n\n if (aa) return w.location.href.split(\"#\")[0].replace(/<[^>]*>/g, \"\").replace(/([\\('\\)])/g, \"\\\\$1\").replace(/ /g, \"%20\");\n }\n\n return \"\";\n };\n\n I.prototype.getStyle = function (a) {\n return this.style = c({\n fontFamily: '\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif',\n fontSize: \"12px\"\n }, a);\n };\n\n I.prototype.setStyle = function (a) {\n this.boxWrapper.css(this.getStyle(a));\n };\n\n I.prototype.isHidden = function () {\n return !this.boxWrapper.getBBox().width;\n };\n\n I.prototype.destroy = function () {\n var a = this.defs;\n this.box = null;\n this.boxWrapper = this.boxWrapper.destroy();\n g(this.gradients || {});\n this.gradients = null;\n a && (this.defs = a.destroy());\n this.unSubPixelFix && this.unSubPixelFix();\n return this.alignedObjects = null;\n };\n\n I.prototype.createElement = function (a) {\n var c = new this.Element();\n c.init(this, a);\n return c;\n };\n\n I.prototype.getRadialAttr = function (a, c) {\n return {\n cx: a[0] - a[2] / 2 + (c.cx || 0) * a[2],\n cy: a[1] - a[2] / 2 + (c.cy || 0) * a[2],\n r: (c.r || 0) * a[2]\n };\n };\n\n I.prototype.buildText = function (a) {\n new B(a).buildSVG();\n };\n\n I.prototype.getContrast = function (a) {\n a = e.parse(a).rgba.map(function (a) {\n a /= 255;\n return .03928 >= a ? a / 12.92 : Math.pow((a + .055) / 1.055, 2.4);\n });\n a = .2126 * a[0] + .7152 * a[1] + .0722 * a[2];\n return 1.05 / (a + .05) > (a + .05) / .05 ? \"#FFFFFF\" : \"#000000\";\n };\n\n I.prototype.button = function (a, g, b, d, k, m, I, n, e, r) {\n void 0 === k && (k = {});\n var F = this.label(a, g, b, e, void 0, void 0, r, void 0, \"button\"),\n D = this.styledMode;\n a = k.states || {};\n var A = 0;\n k = S(k);\n delete k.states;\n var H = S({\n color: \"#333333\",\n cursor: \"pointer\",\n fontWeight: \"normal\"\n }, k.style);\n delete k.style;\n var h = f.filterUserAttributes(k);\n F.attr(S({\n padding: 8,\n r: 2\n }, h));\n\n if (!D) {\n h = S({\n fill: \"#f7f7f7\",\n stroke: \"#cccccc\",\n \"stroke-width\": 1\n }, h);\n m = S(h, {\n fill: \"#e6e6e6\"\n }, f.filterUserAttributes(m || a.hover || {}));\n var q = m.style;\n delete m.style;\n I = S(h, {\n fill: \"#e6ebf5\",\n style: {\n color: \"#000000\",\n fontWeight: \"bold\"\n }\n }, f.filterUserAttributes(I || a.select || {}));\n var N = I.style;\n delete I.style;\n n = S(h, {\n style: {\n color: \"#cccccc\"\n }\n }, f.filterUserAttributes(n || a.disabled || {}));\n var w = n.style;\n delete n.style;\n }\n\n z(F.element, p ? \"mouseover\" : \"mouseenter\", function () {\n 3 !== A && F.setState(1);\n });\n z(F.element, p ? \"mouseout\" : \"mouseleave\", function () {\n 3 !== A && F.setState(A);\n });\n\n F.setState = function (a) {\n 1 !== a && (F.state = A = a);\n F.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\" + [\"normal\", \"hover\", \"pressed\", \"disabled\"][a || 0]);\n D || (F.attr([h, m, I, n][a || 0]), a = [H, q, N, w][a || 0], u(a) && F.css(a));\n };\n\n D || F.attr(h).css(c({\n cursor: \"default\"\n }, H));\n return F.on(\"touchstart\", function (a) {\n return a.stopPropagation();\n }).on(\"click\", function (a) {\n 3 !== A && d.call(F, a);\n });\n };\n\n I.prototype.crispLine = function (c, g, b) {\n void 0 === b && (b = \"round\");\n var d = c[0],\n k = c[1];\n a(d[1]) && d[1] === k[1] && (d[1] = k[1] = Math[b](d[1]) - g % 2 / 2);\n a(d[2]) && d[2] === k[2] && (d[2] = k[2] = Math[b](d[2]) + g % 2 / 2);\n return c;\n };\n\n I.prototype.path = function (a) {\n var g = this.styledMode ? {} : {\n fill: \"none\"\n };\n D(a) ? g.d = a : u(a) && c(g, a);\n return this.createElement(\"path\").attr(g);\n };\n\n I.prototype.circle = function (a, c, g) {\n a = u(a) ? a : \"undefined\" === typeof a ? {} : {\n x: a,\n y: c,\n r: g\n };\n c = this.createElement(\"circle\");\n\n c.xSetter = c.ySetter = function (a, c, g) {\n g.setAttribute(\"c\" + c, a);\n };\n\n return c.attr(a);\n };\n\n I.prototype.arc = function (a, c, g, b, d, k) {\n u(a) ? (b = a, c = b.y, g = b.r, a = b.x) : b = {\n innerR: b,\n start: d,\n end: k\n };\n a = this.symbol(\"arc\", a, c, g, g, b);\n a.r = g;\n return a;\n };\n\n I.prototype.rect = function (a, c, g, b, d, k) {\n d = u(a) ? a.r : d;\n var m = this.createElement(\"rect\");\n a = u(a) ? a : \"undefined\" === typeof a ? {} : {\n x: a,\n y: c,\n width: Math.max(g, 0),\n height: Math.max(b, 0)\n };\n this.styledMode || (\"undefined\" !== typeof k && (a[\"stroke-width\"] = k, a = m.crisp(a)), a.fill = \"none\");\n d && (a.r = d);\n\n m.rSetter = function (a, c, g) {\n m.r = a;\n x(g, {\n rx: a,\n ry: a\n });\n };\n\n m.rGetter = function () {\n return m.r || 0;\n };\n\n return m.attr(a);\n };\n\n I.prototype.setSize = function (a, c, g) {\n this.width = a;\n this.height = c;\n this.boxWrapper.animate({\n width: a,\n height: c\n }, {\n step: function () {\n this.attr({\n viewBox: \"0 0 \" + this.attr(\"width\") + \" \" + this.attr(\"height\")\n });\n },\n duration: R(g, !0) ? void 0 : 0\n });\n this.alignElements();\n };\n\n I.prototype.g = function (a) {\n var c = this.createElement(\"g\");\n return a ? c.attr({\n \"class\": \"highcharts-\" + a\n }) : c;\n };\n\n I.prototype.image = function (a, c, g, b, d, k) {\n var m = {\n preserveAspectRatio: \"none\"\n },\n u = function (a, c) {\n a.setAttributeNS ? a.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", c) : a.setAttribute(\"hc-svg-href\", c);\n };\n\n A(c) && (m.x = c);\n A(g) && (m.y = g);\n A(b) && (m.width = b);\n A(d) && (m.height = d);\n var F = this.createElement(\"image\").attr(m);\n\n c = function (c) {\n u(F.element, a);\n k.call(F, c);\n };\n\n k ? (u(F.element, \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"), g = new w.Image(), z(g, \"load\", c), g.src = a, g.complete && c({})) : u(F.element, a);\n return F;\n };\n\n I.prototype.symbol = function (g, b, u, I, n, F) {\n var e = this,\n r = /^url\\((.*?)\\)$/,\n D = r.test(g),\n p = !D && (this.symbols[g] ? g : \"circle\"),\n A = p && this.symbols[p],\n h;\n\n if (A) {\n \"number\" === typeof b && (h = A.call(this.symbols, Math.round(b || 0), Math.round(u || 0), I || 0, n || 0, F));\n var f = this.path(h);\n e.styledMode || f.attr(\"fill\", \"none\");\n c(f, {\n symbolName: p || void 0,\n x: b,\n y: u,\n width: I,\n height: n\n });\n F && c(f, F);\n } else if (D) {\n var q = g.match(r)[1];\n var H = f = this.image(q);\n H.imgwidth = R(J[q] && J[q].width, F && F.width);\n H.imgheight = R(J[q] && J[q].height, F && F.height);\n\n var z = function (a) {\n return a.attr({\n width: a.width,\n height: a.height\n });\n };\n\n [\"width\", \"height\"].forEach(function (c) {\n H[c + \"Setter\"] = function (c, g) {\n var b = this[\"img\" + g];\n this[g] = c;\n a(b) && (F && \"within\" === F.backgroundSize && this.width && this.height && (b = Math.round(b * Math.min(this.width / this.imgwidth, this.height / this.imgheight))), this.element && this.element.setAttribute(g, b), this.alignByTranslate || (c = ((this[g] || 0) - b) / 2, this.attr(\"width\" === g ? {\n translateX: c\n } : {\n translateY: c\n })));\n };\n });\n a(b) && H.attr({\n x: b,\n y: u\n });\n H.isImg = !0;\n a(H.imgwidth) && a(H.imgheight) ? z(H) : (H.attr({\n width: 0,\n height: 0\n }), m(\"img\", {\n onload: function () {\n var a = t[e.chartIndex];\n 0 === this.width && (k(this, {\n position: \"absolute\",\n top: \"-999em\"\n }), d.body.appendChild(this));\n J[q] = {\n width: this.width,\n height: this.height\n };\n H.imgwidth = this.width;\n H.imgheight = this.height;\n H.element && z(H);\n this.parentNode && this.parentNode.removeChild(this);\n e.imgCount--;\n if (!e.imgCount && a && !a.hasLoaded) a.onload();\n },\n src: q\n }), this.imgCount++);\n }\n\n return f;\n };\n\n I.prototype.clipRect = function (a, c, g, b) {\n var d = U() + \"-\",\n k = this.createElement(\"clipPath\").attr({\n id: d\n }).add(this.defs);\n a = this.rect(a, c, g, b, 0).add(k);\n a.id = d;\n a.clipPath = k;\n a.count = 0;\n return a;\n };\n\n I.prototype.text = function (c, g, b, d) {\n var k = {};\n if (d && (this.allowHTML || !this.forExport)) return this.html(c, g, b);\n k.x = Math.round(g || 0);\n b && (k.y = Math.round(b));\n a(c) && (k.text = c);\n c = this.createElement(\"text\").attr(k);\n if (!d || this.forExport && !this.allowHTML) c.xSetter = function (a, c, g) {\n for (var b = g.getElementsByTagName(\"tspan\"), d = g.getAttribute(c), k = 0, m; k < b.length; k++) m = b[k], m.getAttribute(c) === d && m.setAttribute(c, a);\n\n g.setAttribute(c, a);\n };\n return c;\n };\n\n I.prototype.fontMetrics = function (a, c) {\n a = !this.styledMode && /px/.test(a) || !w.getComputedStyle ? a || c && c.style && c.style.fontSize || this.style && this.style.fontSize : c && v.prototype.getStyle.call(c, \"font-size\");\n a = /px/.test(a) ? M(a) : 12;\n c = 24 > a ? a + 3 : Math.round(1.2 * a);\n return {\n h: c,\n b: Math.round(.8 * c),\n f: a\n };\n };\n\n I.prototype.rotCorr = function (a, c, g) {\n var b = a;\n c && g && (b = Math.max(b * Math.cos(c * h), 4));\n return {\n x: -a / 3 * Math.sin(c * h),\n y: b\n };\n };\n\n I.prototype.pathToSegments = function (a) {\n for (var c = [], g = [], b = {\n A: 8,\n C: 7,\n H: 2,\n L: 3,\n M: 3,\n Q: 5,\n S: 5,\n T: 3,\n V: 2\n }, d = 0; d < a.length; d++) L(g[0]) && A(a[d]) && g.length === b[g[0].toUpperCase()] && a.splice(d, 0, g[0].replace(\"M\", \"L\").replace(\"m\", \"l\")), \"string\" === typeof a[d] && (g.length && c.push(g.slice(0)), g.length = 0), g.push(a[d]);\n\n c.push(g.slice(0));\n return c;\n };\n\n I.prototype.label = function (a, c, g, b, d, k, m, u, I) {\n return new E(this, a, c, g, b, d, k, m, u, I);\n };\n\n I.prototype.alignElements = function () {\n this.alignedObjects.forEach(function (a) {\n return a.align();\n });\n };\n\n return I;\n }();\n\n c(l.prototype, {\n Element: v,\n SVG_NS: n,\n escapes: {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n \"'\": \"'\",\n '\"': \""\"\n },\n symbols: G,\n draw: r\n });\n C.registerRendererType(\"svg\", l, !0);\n \"\";\n return l;\n });\n K(l, \"Core/Renderer/HTML/HTMLElement.js\", [l[\"Core/Globals.js\"], l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = this && this.__extends || function () {\n var b = function (d, e) {\n b = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var n in d) d.hasOwnProperty(n) && (b[n] = d[n]);\n };\n\n return b(d, e);\n };\n\n return function (d, e) {\n function n() {\n this.constructor = d;\n }\n\n b(d, e);\n d.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n());\n };\n }(),\n v = f.isFirefox,\n E = f.isMS,\n G = f.isWebKit,\n B = f.win,\n y = l.css,\n t = l.defined,\n h = l.extend,\n d = l.pick,\n b = l.pInt;\n\n return function (e) {\n function p() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n C(p, e);\n\n p.compose = function (b) {\n if (-1 === p.composedClasses.indexOf(b)) {\n p.composedClasses.push(b);\n var d = p.prototype,\n e = b.prototype;\n e.getSpanCorrection = d.getSpanCorrection;\n e.htmlCss = d.htmlCss;\n e.htmlGetBBox = d.htmlGetBBox;\n e.htmlUpdateTransform = d.htmlUpdateTransform;\n e.setSpanRotation = d.setSpanRotation;\n }\n\n return b;\n };\n\n p.prototype.getSpanCorrection = function (b, d, e) {\n this.xCorr = -b * e;\n this.yCorr = -d;\n };\n\n p.prototype.htmlCss = function (b) {\n var n = \"SPAN\" === this.element.tagName && b && \"width\" in b,\n e = d(n && b.width, void 0);\n\n if (n) {\n delete b.width;\n this.textWidth = e;\n var p = !0;\n }\n\n b && \"ellipsis\" === b.textOverflow && (b.whiteSpace = \"nowrap\", b.overflow = \"hidden\");\n this.styles = h(this.styles, b);\n y(this.element, b);\n p && this.htmlUpdateTransform();\n return this;\n };\n\n p.prototype.htmlGetBBox = function () {\n var b = this.element;\n return {\n x: b.offsetLeft,\n y: b.offsetTop,\n width: b.offsetWidth,\n height: b.offsetHeight\n };\n };\n\n p.prototype.htmlUpdateTransform = function () {\n if (this.added) {\n var d = this.renderer,\n n = this.element,\n e = this.translateX || 0,\n p = this.translateY || 0,\n h = this.x || 0,\n f = this.y || 0,\n m = this.textAlign || \"left\",\n k = {\n left: 0,\n center: .5,\n right: 1\n }[m],\n a = this.styles;\n a = a && a.whiteSpace;\n y(n, {\n marginLeft: e,\n marginTop: p\n });\n !d.styledMode && this.shadows && this.shadows.forEach(function (a) {\n y(a, {\n marginLeft: e + 1,\n marginTop: p + 1\n });\n });\n this.inverted && [].forEach.call(n.childNodes, function (a) {\n d.invertChild(a, n);\n });\n\n if (\"SPAN\" === n.tagName) {\n var g = this.rotation,\n c = this.textWidth && b(this.textWidth),\n D = [g, m, n.innerHTML, this.textWidth, this.textAlign].join(),\n A = void 0;\n A = !1;\n\n if (c !== this.oldTextWidth) {\n if (this.textPxLength) var u = this.textPxLength;else y(n, {\n width: \"\",\n whiteSpace: a || \"nowrap\"\n }), u = n.offsetWidth;\n (c > this.oldTextWidth || u > c) && (/[ \\-]/.test(n.textContent || n.innerText) || \"ellipsis\" === n.style.textOverflow) && (y(n, {\n width: u > c || g ? c + \"px\" : \"auto\",\n display: \"block\",\n whiteSpace: a || \"normal\"\n }), this.oldTextWidth = c, A = !0);\n }\n\n this.hasBoxWidthChanged = A;\n D !== this.cTT && (A = d.fontMetrics(n.style.fontSize, n).b, !t(g) || g === (this.oldRotation || 0) && m === this.oldAlign || this.setSpanRotation(g, k, A), this.getSpanCorrection(!t(g) && this.textPxLength || n.offsetWidth, A, k, g, m));\n y(n, {\n left: h + (this.xCorr || 0) + \"px\",\n top: f + (this.yCorr || 0) + \"px\"\n });\n this.cTT = D;\n this.oldRotation = g;\n this.oldAlign = m;\n }\n } else this.alignOnAdd = !0;\n };\n\n p.prototype.setSpanRotation = function (b, d, e) {\n var n = {},\n p = E && !/Edge/.test(B.navigator.userAgent) ? \"-ms-transform\" : G ? \"-webkit-transform\" : v ? \"MozTransform\" : B.opera ? \"-o-transform\" : void 0;\n p && (n[p] = n.transform = \"rotate(\" + b + \"deg)\", n[p + (v ? \"Origin\" : \"-origin\")] = n.transformOrigin = 100 * d + \"% \" + e + \"px\", y(this.element, n));\n };\n\n p.composedClasses = [];\n return p;\n }(e);\n });\n K(l, \"Core/Renderer/HTML/HTMLRenderer.js\", [l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Renderer/SVG/SVGRenderer.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C) {\n var v = this && this.__extends || function () {\n var e = function (h, d) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return e(h, d);\n };\n\n return function (h, d) {\n function b() {\n this.constructor = h;\n }\n\n e(h, d);\n h.prototype = null === d ? Object.create(d) : (b.prototype = d.prototype, new b());\n };\n }(),\n E = C.attr,\n G = C.createElement,\n B = C.extend,\n y = C.pick;\n\n return function (t) {\n function h() {\n return null !== t && t.apply(this, arguments) || this;\n }\n\n v(h, t);\n\n h.compose = function (d) {\n -1 === h.composedClasses.indexOf(d) && (h.composedClasses.push(d), d.prototype.html = h.prototype.html);\n return d;\n };\n\n h.prototype.html = function (d, b, p) {\n var h = this.createElement(\"span\"),\n r = h.element,\n n = h.renderer,\n t = n.isSVG,\n w = function (b, d) {\n [\"opacity\", \"visibility\"].forEach(function (m) {\n b[m + \"Setter\"] = function (k, a, g) {\n var c = b.div ? b.div.style : d;\n e.prototype[m + \"Setter\"].call(this, k, a, g);\n c && (c[a] = k);\n };\n });\n b.addedSetters = !0;\n };\n\n h.textSetter = function (b) {\n b !== this.textStr && (delete this.bBox, delete this.oldTextWidth, f.setElementHTML(this.element, y(b, \"\")), this.textStr = b, h.doTransform = !0);\n };\n\n t && w(h, h.element.style);\n\n h.xSetter = h.ySetter = h.alignSetter = h.rotationSetter = function (b, d) {\n \"align\" === d ? h.alignValue = h.textAlign = b : h[d] = b;\n h.doTransform = !0;\n };\n\n h.afterSetters = function () {\n this.doTransform && (this.htmlUpdateTransform(), this.doTransform = !1);\n };\n\n h.attr({\n text: d,\n x: Math.round(b),\n y: Math.round(p)\n }).css({\n position: \"absolute\"\n });\n n.styledMode || h.css({\n fontFamily: this.style.fontFamily,\n fontSize: this.style.fontSize\n });\n r.style.whiteSpace = \"nowrap\";\n h.css = h.htmlCss;\n t && (h.add = function (b) {\n var d = n.box.parentNode,\n m = [];\n\n if (this.parentGroup = b) {\n var k = b.div;\n\n if (!k) {\n for (; b;) m.push(b), b = b.parentGroup;\n\n m.reverse().forEach(function (a) {\n function g(c, g) {\n a[g] = c;\n \"translateX\" === g ? e.left = c + \"px\" : e.top = c + \"px\";\n a.doTransform = !0;\n }\n\n var c = E(a.element, \"class\"),\n b = a.styles || {};\n k = a.div = a.div || G(\"div\", c ? {\n className: c\n } : void 0, {\n position: \"absolute\",\n left: (a.translateX || 0) + \"px\",\n top: (a.translateY || 0) + \"px\",\n display: a.display,\n opacity: a.opacity,\n cursor: b.cursor,\n pointerEvents: b.pointerEvents,\n visibility: a.visibility\n }, k || d);\n var e = k.style;\n B(a, {\n classSetter: function (a) {\n return function (c) {\n this.element.setAttribute(\"class\", c);\n a.className = c;\n };\n }(k),\n on: function () {\n m[0].div && h.on.apply({\n element: m[0].div,\n onEvents: a.onEvents\n }, arguments);\n return a;\n },\n translateXSetter: g,\n translateYSetter: g\n });\n a.addedSetters || w(a);\n });\n }\n } else k = d;\n\n k.appendChild(r);\n h.added = !0;\n h.alignOnAdd && h.htmlUpdateTransform();\n return h;\n });\n return h;\n };\n\n h.composedClasses = [];\n return h;\n }(l);\n });\n K(l, \"Core/Axis/AxisDefaults.js\", [], function () {\n var f;\n\n (function (e) {\n e.defaultXAxisOptions = {\n alignTicks: !0,\n allowDecimals: void 0,\n panningEnabled: !0,\n zIndex: 2,\n zoomEnabled: !0,\n dateTimeLabelFormats: {\n millisecond: {\n main: \"%H:%M:%S.%L\",\n range: !1\n },\n second: {\n main: \"%H:%M:%S\",\n range: !1\n },\n minute: {\n main: \"%H:%M\",\n range: !1\n },\n hour: {\n main: \"%H:%M\",\n range: !1\n },\n day: {\n main: \"%e. %b\"\n },\n week: {\n main: \"%e. %b\"\n },\n month: {\n main: \"%b '%y\"\n },\n year: {\n main: \"%Y\"\n }\n },\n endOnTick: !1,\n gridLineDashStyle: \"Solid\",\n gridZIndex: 1,\n labels: {\n autoRotation: void 0,\n autoRotationLimit: 80,\n distance: void 0,\n enabled: !0,\n indentation: 10,\n overflow: \"justify\",\n padding: 5,\n reserveSpace: void 0,\n rotation: void 0,\n staggerLines: 0,\n step: 0,\n useHTML: !1,\n x: 0,\n zIndex: 7,\n style: {\n color: \"#666666\",\n cursor: \"default\",\n fontSize: \"11px\"\n }\n },\n maxPadding: .01,\n minorGridLineDashStyle: \"Solid\",\n minorTickLength: 2,\n minorTickPosition: \"outside\",\n minPadding: .01,\n offset: void 0,\n opposite: !1,\n reversed: void 0,\n reversedStacks: !1,\n showEmpty: !0,\n showFirstLabel: !0,\n showLastLabel: !0,\n startOfWeek: 1,\n startOnTick: !1,\n tickLength: 10,\n tickPixelInterval: 100,\n tickmarkPlacement: \"between\",\n tickPosition: \"outside\",\n title: {\n align: \"middle\",\n rotation: 0,\n useHTML: !1,\n x: 0,\n y: 0,\n style: {\n color: \"#666666\"\n }\n },\n type: \"linear\",\n uniqueNames: !0,\n visible: !0,\n minorGridLineColor: \"#f2f2f2\",\n minorGridLineWidth: 1,\n minorTickColor: \"#999999\",\n lineColor: \"#ccd6eb\",\n lineWidth: 1,\n gridLineColor: \"#e6e6e6\",\n gridLineWidth: void 0,\n tickColor: \"#ccd6eb\"\n };\n e.defaultYAxisOptions = {\n reversedStacks: !0,\n endOnTick: !0,\n maxPadding: .05,\n minPadding: .05,\n tickPixelInterval: 72,\n showLastLabel: !0,\n labels: {\n x: -8\n },\n startOnTick: !0,\n title: {\n rotation: 270,\n text: \"Values\"\n },\n stackLabels: {\n animation: {},\n allowOverlap: !1,\n enabled: !1,\n crop: !0,\n overflow: \"justify\",\n formatter: function () {\n var e = this.axis.chart.numberFormatter;\n return e(this.total, -1);\n },\n style: {\n color: \"#000000\",\n fontSize: \"11px\",\n fontWeight: \"bold\",\n textOutline: \"1px contrast\"\n }\n },\n gridLineWidth: 1,\n lineWidth: 0\n };\n e.defaultLeftAxisOptions = {\n labels: {\n x: -15\n },\n title: {\n rotation: 270\n }\n };\n e.defaultRightAxisOptions = {\n labels: {\n x: 15\n },\n title: {\n rotation: 90\n }\n };\n e.defaultBottomAxisOptions = {\n labels: {\n autoRotation: [-45],\n x: 0\n },\n margin: 15,\n title: {\n rotation: 0\n }\n };\n e.defaultTopAxisOptions = {\n labels: {\n autoRotation: [-45],\n x: 0\n },\n margin: 15,\n title: {\n rotation: 0\n }\n };\n })(f || (f = {}));\n\n return f;\n });\n K(l, \"Core/Foundation.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.addEvent,\n l = f.isFunction,\n C = f.objectEach,\n v = f.removeEvent,\n E;\n\n (function (f) {\n f.registerEventOptions = function (f, y) {\n f.eventOptions = f.eventOptions || {};\n C(y.events, function (t, h) {\n f.eventOptions[h] !== t && (f.eventOptions[h] && (v(f, h, f.eventOptions[h]), delete f.eventOptions[h]), l(t) && (f.eventOptions[h] = t, e(f, h, t)));\n });\n };\n })(E || (E = {}));\n\n return E;\n });\n K(l, \"Core/Axis/Tick.js\", [l[\"Core/FormatUtilities.js\"], l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = e.deg2rad,\n v = l.clamp,\n E = l.correctFloat,\n G = l.defined,\n B = l.destroyObjectProperties,\n y = l.extend,\n t = l.fireEvent,\n h = l.isNumber,\n d = l.merge,\n b = l.objectEach,\n p = l.pick;\n\n e = function () {\n function e(b, d, e, p, h) {\n this.isNewLabel = this.isNew = !0;\n this.axis = b;\n this.pos = d;\n this.type = e || \"\";\n this.parameters = h || {};\n this.tickmarkOffset = this.parameters.tickmarkOffset;\n this.options = this.parameters.options;\n t(this, \"init\");\n e || p || this.addLabel();\n }\n\n e.prototype.addLabel = function () {\n var b = this,\n d = b.axis,\n e = d.options,\n q = d.chart,\n z = d.categories,\n x = d.logarithmic,\n m = d.names,\n k = b.pos,\n a = p(b.options && b.options.labels, e.labels),\n g = d.tickPositions,\n c = k === g[0],\n D = k === g[g.length - 1],\n A = (!a.step || 1 === a.step) && 1 === d.tickInterval;\n g = g.info;\n var u = b.label,\n l;\n z = this.parameters.category || (z ? p(z[k], m[k], k) : k);\n x && h(z) && (z = E(x.lin2log(z)));\n if (d.dateTime) if (g) {\n var S = q.time.resolveDTLFormat(e.dateTimeLabelFormats[!e.grid && g.higherRanks[k] || g.unitName]);\n var R = S.main;\n } else h(z) && (R = d.dateTime.getXDateFormat(z, e.dateTimeLabelFormats || {}));\n b.isFirst = c;\n b.isLast = D;\n var M = {\n axis: d,\n chart: q,\n dateTimeLabelFormat: R,\n isFirst: c,\n isLast: D,\n pos: k,\n tick: b,\n tickPositionInfo: g,\n value: z\n };\n t(this, \"labelFormat\", M);\n\n var B = function (c) {\n return a.formatter ? a.formatter.call(c, c) : a.format ? (c.text = d.defaultLabelFormatter.call(c), f.format(a.format, c, q)) : d.defaultLabelFormatter.call(c, c);\n };\n\n e = B.call(M, M);\n var aa = S && S.list;\n b.shortenLabel = aa ? function () {\n for (l = 0; l < aa.length; l++) if (y(M, {\n dateTimeLabelFormat: aa[l]\n }), u.attr({\n text: B.call(M, M)\n }), u.getBBox().width < d.getSlotWidth(b) - 2 * a.padding) return;\n\n u.attr({\n text: \"\"\n });\n } : void 0;\n A && d._addedPlotLB && b.moveLabel(e, a);\n G(u) || b.movedLabel ? u && u.textStr !== e && !A && (!u.textWidth || a.style.width || u.styles.width || u.css({\n width: null\n }), u.attr({\n text: e\n }), u.textPxLength = u.getBBox().width) : (b.label = u = b.createLabel({\n x: 0,\n y: 0\n }, e, a), b.rotation = 0);\n };\n\n e.prototype.createLabel = function (b, e, p) {\n var n = this.axis,\n h = n.chart;\n if (b = G(e) && p.enabled ? h.renderer.text(e, b.x, b.y, p.useHTML).add(n.labelGroup) : null) h.styledMode || b.css(d(p.style)), b.textPxLength = b.getBBox().width;\n return b;\n };\n\n e.prototype.destroy = function () {\n B(this, this.axis);\n };\n\n e.prototype.getPosition = function (b, d, e, p) {\n var n = this.axis,\n h = n.chart,\n m = p && h.oldChartHeight || h.chartHeight;\n b = {\n x: b ? E(n.translate(d + e, void 0, void 0, p) + n.transB) : n.left + n.offset + (n.opposite ? (p && h.oldChartWidth || h.chartWidth) - n.right - n.left : 0),\n y: b ? m - n.bottom + n.offset - (n.opposite ? n.height : 0) : E(m - n.translate(d + e, void 0, void 0, p) - n.transB)\n };\n b.y = v(b.y, -1E5, 1E5);\n t(this, \"afterGetPosition\", {\n pos: b\n });\n return b;\n };\n\n e.prototype.getLabelPosition = function (b, d, e, p, h, f, m, k) {\n var a = this.axis,\n g = a.transA,\n c = a.isLinked && a.linkedParent ? a.linkedParent.reversed : a.reversed,\n n = a.staggerLines,\n A = a.tickRotCorr || {\n x: 0,\n y: 0\n },\n u = p || a.reserveSpaceDefault ? 0 : -a.labelOffset * (\"center\" === a.labelAlign ? .5 : 1),\n r = {};\n e = 0 === a.side ? e.rotation ? -8 : -e.getBBox().height : 2 === a.side ? A.y + 8 : Math.cos(e.rotation * C) * (A.y - e.getBBox(!1, 0).height / 2);\n G(h.y) && (e = 0 === a.side && a.horiz ? h.y + e : h.y);\n b = b + h.x + u + A.x - (f && p ? f * g * (c ? -1 : 1) : 0);\n d = d + e - (f && !p ? f * g * (c ? 1 : -1) : 0);\n n && (p = m / (k || 1) % n, a.opposite && (p = n - p - 1), d += a.labelOffset / n * p);\n r.x = b;\n r.y = Math.round(d);\n t(this, \"afterGetLabelPosition\", {\n pos: r,\n tickmarkOffset: f,\n index: m\n });\n return r;\n };\n\n e.prototype.getLabelSize = function () {\n return this.label ? this.label.getBBox()[this.axis.horiz ? \"height\" : \"width\"] : 0;\n };\n\n e.prototype.getMarkPath = function (b, d, e, p, h, f) {\n return f.crispLine([[\"M\", b, d], [\"L\", b + (h ? 0 : -e), d + (h ? e : 0)]], p);\n };\n\n e.prototype.handleOverflow = function (b) {\n var d = this.axis,\n e = d.options.labels,\n h = b.x,\n f = d.chart.chartWidth,\n r = d.chart.spacing,\n m = p(d.labelLeft, Math.min(d.pos, r[3]));\n r = p(d.labelRight, Math.max(d.isRadial ? 0 : d.pos + d.len, f - r[1]));\n var k = this.label,\n a = this.rotation,\n g = {\n left: 0,\n center: .5,\n right: 1\n }[d.labelAlign || k.attr(\"align\")],\n c = k.getBBox().width,\n D = d.getSlotWidth(this),\n A = {},\n u = D,\n q = 1,\n l;\n if (a || \"justify\" !== e.overflow) 0 > a && h - g * c < m ? l = Math.round(h / Math.cos(a * C) - m) : 0 < a && h + g * c > r && (l = Math.round((f - h) / Math.cos(a * C)));else if (f = h + (1 - g) * c, h - g * c < m ? u = b.x + u * (1 - g) - m : f > r && (u = r - b.x + u * g, q = -1), u = Math.min(D, u), u < D && \"center\" === d.labelAlign && (b.x += q * (D - u - g * (D - Math.min(c, u)))), c > u || d.autoRotation && (k.styles || {}).width) l = u;\n l && (this.shortenLabel ? this.shortenLabel() : (A.width = Math.floor(l) + \"px\", (e.style || {}).textOverflow || (A.textOverflow = \"ellipsis\"), k.css(A)));\n };\n\n e.prototype.moveLabel = function (d, e) {\n var h = this,\n p = h.label,\n n = h.axis,\n f = n.reversed,\n m = !1;\n p && p.textStr === d ? (h.movedLabel = p, m = !0, delete h.label) : b(n.ticks, function (a) {\n m || a.isNew || a === h || !a.label || a.label.textStr !== d || (h.movedLabel = a.label, m = !0, a.labelPos = h.movedLabel.xy, delete a.label);\n });\n\n if (!m && (h.labelPos || p)) {\n var k = h.labelPos || p.xy;\n p = n.horiz ? f ? 0 : n.width + n.left : k.x;\n n = n.horiz ? k.y : f ? n.width + n.left : 0;\n h.movedLabel = h.createLabel({\n x: p,\n y: n\n }, d, e);\n h.movedLabel && h.movedLabel.attr({\n opacity: 0\n });\n }\n };\n\n e.prototype.render = function (b, d, e) {\n var h = this.axis,\n n = h.horiz,\n f = this.pos,\n m = p(this.tickmarkOffset, h.tickmarkOffset);\n f = this.getPosition(n, f, m, d);\n m = f.x;\n var k = f.y;\n h = n && m === h.pos + h.len || !n && k === h.pos ? -1 : 1;\n n = p(e, this.label && this.label.newOpacity, 1);\n e = p(e, 1);\n this.isActive = !0;\n this.renderGridLine(d, e, h);\n this.renderMark(f, e, h);\n this.renderLabel(f, d, n, b);\n this.isNew = !1;\n t(this, \"afterRender\");\n };\n\n e.prototype.renderGridLine = function (b, d, e) {\n var h = this.axis,\n n = h.options,\n f = {},\n m = this.pos,\n k = this.type,\n a = p(this.tickmarkOffset, h.tickmarkOffset),\n g = h.chart.renderer,\n c = this.gridLine,\n D = n.gridLineWidth,\n A = n.gridLineColor,\n u = n.gridLineDashStyle;\n \"minor\" === this.type && (D = n.minorGridLineWidth, A = n.minorGridLineColor, u = n.minorGridLineDashStyle);\n c || (h.chart.styledMode || (f.stroke = A, f[\"stroke-width\"] = D || 0, f.dashstyle = u), k || (f.zIndex = 1), b && (d = 0), this.gridLine = c = g.path().attr(f).addClass(\"highcharts-\" + (k ? k + \"-\" : \"\") + \"grid-line\").add(h.gridGroup));\n if (c && (e = h.getPlotLinePath({\n value: m + a,\n lineWidth: c.strokeWidth() * e,\n force: \"pass\",\n old: b\n }))) c[b || this.isNew ? \"attr\" : \"animate\"]({\n d: e,\n opacity: d\n });\n };\n\n e.prototype.renderMark = function (b, d, e) {\n var h = this.axis,\n n = h.options,\n f = h.chart.renderer,\n m = this.type,\n k = h.tickSize(m ? m + \"Tick\" : \"tick\"),\n a = b.x;\n b = b.y;\n var g = p(n[\"minor\" !== m ? \"tickWidth\" : \"minorTickWidth\"], !m && h.isXAxis ? 1 : 0);\n n = n[\"minor\" !== m ? \"tickColor\" : \"minorTickColor\"];\n var c = this.mark,\n D = !c;\n k && (h.opposite && (k[0] = -k[0]), c || (this.mark = c = f.path().addClass(\"highcharts-\" + (m ? m + \"-\" : \"\") + \"tick\").add(h.axisGroup), h.chart.styledMode || c.attr({\n stroke: n,\n \"stroke-width\": g\n })), c[D ? \"attr\" : \"animate\"]({\n d: this.getMarkPath(a, b, k[0], c.strokeWidth() * e, h.horiz, f),\n opacity: d\n }));\n };\n\n e.prototype.renderLabel = function (b, d, e, f) {\n var n = this.axis,\n r = n.horiz,\n m = n.options,\n k = this.label,\n a = m.labels,\n g = a.step;\n n = p(this.tickmarkOffset, n.tickmarkOffset);\n var c = b.x;\n b = b.y;\n var D = !0;\n k && h(c) && (k.xy = b = this.getLabelPosition(c, b, k, r, a, n, f, g), this.isFirst && !this.isLast && !m.showFirstLabel || this.isLast && !this.isFirst && !m.showLastLabel ? D = !1 : !r || a.step || a.rotation || d || 0 === e || this.handleOverflow(b), g && f % g && (D = !1), D && h(b.y) ? (b.opacity = e, k[this.isNewLabel ? \"attr\" : \"animate\"](b).show(!0), this.isNewLabel = !1) : (k.hide(), this.isNewLabel = !0));\n };\n\n e.prototype.replaceMovedLabel = function () {\n var b = this.label,\n d = this.axis,\n e = d.reversed;\n\n if (b && !this.isNew) {\n var h = d.horiz ? e ? d.left : d.width + d.left : b.xy.x;\n e = d.horiz ? b.xy.y : e ? d.width + d.top : d.top;\n b.animate({\n x: h,\n y: e,\n opacity: 0\n }, void 0, b.destroy);\n delete this.label;\n }\n\n d.isDirty = !0;\n this.label = this.movedLabel;\n delete this.movedLabel;\n };\n\n return e;\n }();\n\n \"\";\n return e;\n });\n K(l, \"Core/Axis/Axis.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Axis/AxisDefaults.js\"], l[\"Core/Color/Color.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/Foundation.js\"], l[\"Core/Globals.js\"], l[\"Core/Axis/Tick.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G, B) {\n var y = f.animObject,\n t = C.defaultOptions,\n h = v.registerEventOptions,\n d = E.deg2rad,\n b = B.arrayMax,\n p = B.arrayMin,\n q = B.clamp,\n r = B.correctFloat,\n n = B.defined,\n J = B.destroyObjectProperties,\n w = B.erase,\n z = B.error,\n x = B.extend,\n m = B.fireEvent,\n k = B.isArray,\n a = B.isNumber,\n g = B.isString,\n c = B.merge,\n D = B.normalizeTickInterval,\n A = B.objectEach,\n u = B.pick,\n L = B.relativeLength,\n S = B.removeEvent,\n R = B.splat,\n M = B.syncTimeout,\n U = function (a, c) {\n return D(c, void 0, void 0, u(a.options.allowDecimals, .5 > c || void 0 !== a.tickAmount), !!a.tickAmount);\n };\n\n f = function () {\n function f(a, c) {\n this.zoomEnabled = this.width = this.visible = this.userOptions = this.translationSlope = this.transB = this.transA = this.top = this.ticks = this.tickRotCorr = this.tickPositions = this.tickmarkOffset = this.tickInterval = this.tickAmount = this.side = this.series = this.right = this.positiveValuesOnly = this.pos = this.pointRangePadding = this.pointRange = this.plotLinesAndBandsGroups = this.plotLinesAndBands = this.paddedTicks = this.overlap = this.options = this.offset = this.names = this.minPixelPadding = this.minorTicks = this.minorTickInterval = this.min = this.maxLabelLength = this.max = this.len = this.left = this.labelFormatter = this.labelEdge = this.isLinked = this.height = this.hasVisibleSeries = this.hasNames = this.eventOptions = this.coll = this.closestPointRange = this.chart = this.bottom = this.alternateBands = void 0;\n this.init(a, c);\n }\n\n f.prototype.init = function (c, b) {\n var g = b.isX;\n this.chart = c;\n this.horiz = c.inverted && !this.isZAxis ? !g : g;\n this.isXAxis = g;\n this.coll = this.coll || (g ? \"xAxis\" : \"yAxis\");\n m(this, \"init\", {\n userOptions: b\n });\n this.opposite = u(b.opposite, this.opposite);\n this.side = u(b.side, this.side, this.horiz ? this.opposite ? 0 : 2 : this.opposite ? 1 : 3);\n this.setOptions(b);\n var d = this.options,\n k = d.labels,\n e = d.type;\n this.userOptions = b;\n this.minPixelPadding = 0;\n this.reversed = u(d.reversed, this.reversed);\n this.visible = d.visible;\n this.zoomEnabled = d.zoomEnabled;\n this.hasNames = \"category\" === e || !0 === d.categories;\n this.categories = d.categories || (this.hasNames ? [] : void 0);\n this.names || (this.names = [], this.names.keys = {});\n this.plotLinesAndBandsGroups = {};\n this.positiveValuesOnly = !!this.logarithmic;\n this.isLinked = n(d.linkedTo);\n this.ticks = {};\n this.labelEdge = [];\n this.minorTicks = {};\n this.plotLinesAndBands = [];\n this.alternateBands = {};\n this.len = 0;\n this.minRange = this.userMinRange = d.minRange || d.maxZoom;\n this.range = d.range;\n this.offset = d.offset || 0;\n this.min = this.max = null;\n b = u(d.crosshair, R(c.options.tooltip.crosshairs)[g ? 0 : 1]);\n this.crosshair = !0 === b ? {} : b;\n -1 === c.axes.indexOf(this) && (g ? c.axes.splice(c.xAxis.length, 0, this) : c.axes.push(this), c[this.coll].push(this));\n this.series = this.series || [];\n c.inverted && !this.isZAxis && g && \"undefined\" === typeof this.reversed && (this.reversed = !0);\n this.labelRotation = a(k.rotation) ? k.rotation : void 0;\n h(this, d);\n m(this, \"afterInit\");\n };\n\n f.prototype.setOptions = function (a) {\n this.options = c(e.defaultXAxisOptions, \"yAxis\" === this.coll && e.defaultYAxisOptions, [e.defaultTopAxisOptions, e.defaultRightAxisOptions, e.defaultBottomAxisOptions, e.defaultLeftAxisOptions][this.side], c(t[this.coll], a));\n m(this, \"afterSetOptions\", {\n userOptions: a\n });\n };\n\n f.prototype.defaultLabelFormatter = function (c) {\n var b = this.axis;\n c = this.chart.numberFormatter;\n var g = a(this.value) ? this.value : NaN,\n d = b.chart.time,\n k = this.dateTimeLabelFormat,\n e = t.lang,\n m = e.numericSymbols;\n e = e.numericSymbolMagnitude || 1E3;\n var u = b.logarithmic ? Math.abs(g) : b.tickInterval,\n h = m && m.length;\n if (b.categories) var f = \"\".concat(this.value);else if (k) f = d.dateFormat(k, g);else if (h && 1E3 <= u) for (; h-- && \"undefined\" === typeof f;) b = Math.pow(e, h + 1), u >= b && 0 === 10 * g % b && null !== m[h] && 0 !== g && (f = c(g / b, -1) + m[h]);\n \"undefined\" === typeof f && (f = 1E4 <= Math.abs(g) ? c(g, -1) : c(g, -1, void 0, \"\"));\n return f;\n };\n\n f.prototype.getSeriesExtremes = function () {\n var c = this,\n b = c.chart,\n g;\n m(this, \"getSeriesExtremes\", null, function () {\n c.hasVisibleSeries = !1;\n c.dataMin = c.dataMax = c.threshold = null;\n c.softThreshold = !c.isXAxis;\n c.stacking && c.stacking.buildStacks();\n c.series.forEach(function (d) {\n if (d.visible || !b.options.chart.ignoreHiddenSeries) {\n var k = d.options,\n e = k.threshold;\n c.hasVisibleSeries = !0;\n c.positiveValuesOnly && 0 >= e && (e = null);\n\n if (c.isXAxis) {\n if (k = d.xData, k.length) {\n k = c.logarithmic ? k.filter(c.validatePositiveValue) : k;\n g = d.getXExtremes(k);\n var m = g.min;\n var h = g.max;\n a(m) || m instanceof Date || (k = k.filter(a), g = d.getXExtremes(k), m = g.min, h = g.max);\n k.length && (c.dataMin = Math.min(u(c.dataMin, m), m), c.dataMax = Math.max(u(c.dataMax, h), h));\n }\n } else if (d = d.applyExtremes(), a(d.dataMin) && (m = d.dataMin, c.dataMin = Math.min(u(c.dataMin, m), m)), a(d.dataMax) && (h = d.dataMax, c.dataMax = Math.max(u(c.dataMax, h), h)), n(e) && (c.threshold = e), !k.softThreshold || c.positiveValuesOnly) c.softThreshold = !1;\n }\n });\n });\n m(this, \"afterGetSeriesExtremes\");\n };\n\n f.prototype.translate = function (c, b, g, d, k, e) {\n var m = this.linkedParent || this,\n u = d && m.old ? m.old.min : m.min;\n if (!a(u)) return NaN;\n var h = m.minPixelPadding;\n k = (m.isOrdinal || m.brokenAxis && m.brokenAxis.hasBreaks || m.logarithmic && k) && m.lin2val;\n var f = 1,\n p = 0;\n d = d && m.old ? m.old.transA : m.transA;\n d || (d = m.transA);\n g && (f *= -1, p = m.len);\n m.reversed && (f *= -1, p -= f * (m.sector || m.len));\n b ? (e = (c * f + p - h) / d + u, k && (e = m.lin2val(e))) : (k && (c = m.val2lin(c)), c = f * (c - u) * d, e = (m.isRadial ? c : r(c)) + p + f * h + (a(e) ? d * e : 0));\n return e;\n };\n\n f.prototype.toPixels = function (a, c) {\n return this.translate(a, !1, !this.horiz, void 0, !0) + (c ? 0 : this.pos);\n };\n\n f.prototype.toValue = function (a, c) {\n return this.translate(a - (c ? 0 : this.pos), !0, !this.horiz, void 0, !0);\n };\n\n f.prototype.getPlotLinePath = function (c) {\n function b(a, c, g) {\n if (\"pass\" !== r && a < c || a > g) r ? a = q(a, c, g) : L = !0;\n return a;\n }\n\n var g = this,\n d = g.chart,\n k = g.left,\n e = g.top,\n h = c.old,\n f = c.value,\n p = c.lineWidth,\n n = h && d.oldChartHeight || d.chartHeight,\n I = h && d.oldChartWidth || d.chartWidth,\n D = g.transB,\n A = c.translatedValue,\n r = c.force,\n l,\n t,\n x,\n z,\n L;\n c = {\n value: f,\n lineWidth: p,\n old: h,\n force: r,\n acrossPanes: c.acrossPanes,\n translatedValue: A\n };\n m(this, \"getPlotLinePath\", c, function (c) {\n A = u(A, g.translate(f, void 0, void 0, h));\n A = q(A, -1E5, 1E5);\n l = x = Math.round(A + D);\n t = z = Math.round(n - A - D);\n a(A) ? g.horiz ? (t = e, z = n - g.bottom, l = x = b(l, k, k + g.width)) : (l = k, x = I - g.right, t = z = b(t, e, e + g.height)) : (L = !0, r = !1);\n c.path = L && !r ? null : d.renderer.crispLine([[\"M\", l, t], [\"L\", x, z]], p || 1);\n });\n return c.path;\n };\n\n f.prototype.getLinearTickPositions = function (a, c, g) {\n var b = r(Math.floor(c / a) * a);\n g = r(Math.ceil(g / a) * a);\n var d = [],\n k;\n r(b + a) === b && (k = 20);\n if (this.single) return [c];\n\n for (c = b; c <= g;) {\n d.push(c);\n c = r(c + a, k);\n if (c === m) break;\n var m = c;\n }\n\n return d;\n };\n\n f.prototype.getMinorTickInterval = function () {\n var a = this.options;\n return !0 === a.minorTicks ? u(a.minorTickInterval, \"auto\") : !1 === a.minorTicks ? null : a.minorTickInterval;\n };\n\n f.prototype.getMinorTickPositions = function () {\n var a = this.options,\n c = this.tickPositions,\n g = this.minorTickInterval,\n b = this.pointRangePadding || 0,\n d = this.min - b;\n b = this.max + b;\n var k = b - d,\n m = [];\n\n if (k && k / g < this.len / 3) {\n var e = this.logarithmic;\n if (e) this.paddedTicks.forEach(function (a, c, b) {\n c && m.push.apply(m, e.getLogTickPositions(g, b[c - 1], b[c], !0));\n });else if (this.dateTime && \"auto\" === this.getMinorTickInterval()) m = m.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(g), d, b, a.startOfWeek));else for (a = d + (c[0] - d) % g; a <= b && a !== m[0]; a += g) m.push(a);\n }\n\n 0 !== m.length && this.trimTicks(m);\n return m;\n };\n\n f.prototype.adjustForMinRange = function () {\n var a = this.options,\n c = this.logarithmic,\n g = this.min,\n d = this.max,\n k = 0,\n m,\n e,\n h,\n f;\n this.isXAxis && \"undefined\" === typeof this.minRange && !c && (n(a.min) || n(a.max) || n(a.floor) || n(a.ceiling) ? this.minRange = null : (this.series.forEach(function (a) {\n h = a.xData;\n f = a.xIncrement ? 1 : h.length - 1;\n if (1 < h.length) for (m = f; 0 < m; m--) if (e = h[m] - h[m - 1], !k || e < k) k = e;\n }), this.minRange = Math.min(5 * k, this.dataMax - this.dataMin)));\n\n if (d - g < this.minRange) {\n var A = this.dataMax - this.dataMin >= this.minRange;\n var D = this.minRange;\n var r = (D - d + g) / 2;\n r = [g - r, u(a.min, g - r)];\n A && (r[2] = this.logarithmic ? this.logarithmic.log2lin(this.dataMin) : this.dataMin);\n g = b(r);\n d = [g + D, u(a.max, g + D)];\n A && (d[2] = c ? c.log2lin(this.dataMax) : this.dataMax);\n d = p(d);\n d - g < D && (r[0] = d - D, r[1] = u(a.min, d - D), g = b(r));\n }\n\n this.min = g;\n this.max = d;\n };\n\n f.prototype.getClosest = function () {\n var a;\n this.categories ? a = 1 : this.series.forEach(function (c) {\n var g = c.closestPointRange,\n b = c.visible || !c.chart.options.chart.ignoreHiddenSeries;\n !c.noSharedTooltip && n(g) && b && (a = n(a) ? Math.min(a, g) : g);\n });\n return a;\n };\n\n f.prototype.nameToX = function (a) {\n var c = k(this.options.categories),\n g = c ? this.categories : this.names,\n b = a.options.x;\n a.series.requireSorting = !1;\n n(b) || (b = this.options.uniqueNames && g ? c ? g.indexOf(a.name) : u(g.keys[a.name], -1) : a.series.autoIncrement());\n\n if (-1 === b) {\n if (!c && g) var d = g.length;\n } else d = b;\n\n \"undefined\" !== typeof d && (this.names[d] = a.name, this.names.keys[a.name] = d);\n return d;\n };\n\n f.prototype.updateNames = function () {\n var a = this,\n c = this.names;\n 0 < c.length && (Object.keys(c.keys).forEach(function (a) {\n delete c.keys[a];\n }), c.length = 0, this.minRange = this.userMinRange, (this.series || []).forEach(function (c) {\n c.xIncrement = null;\n if (!c.points || c.isDirtyData) a.max = Math.max(a.max, c.xData.length - 1), c.processData(), c.generatePoints();\n c.data.forEach(function (g, b) {\n if (g && g.options && \"undefined\" !== typeof g.name) {\n var d = a.nameToX(g);\n \"undefined\" !== typeof d && d !== g.x && (g.x = d, c.xData[b] = d);\n }\n });\n }));\n };\n\n f.prototype.setAxisTranslation = function () {\n var a = this,\n c = a.max - a.min,\n b = a.linkedParent,\n d = !!a.categories,\n k = a.isXAxis,\n e = a.axisPointRange || 0,\n h = 0,\n f = 0,\n p = a.transA;\n\n if (k || d || e) {\n var n = a.getClosest();\n b ? (h = b.minPointOffset, f = b.pointRangePadding) : a.series.forEach(function (c) {\n var b = d ? 1 : k ? u(c.options.pointRange, n, 0) : a.axisPointRange || 0,\n m = c.options.pointPlacement;\n e = Math.max(e, b);\n if (!a.single || d) c = c.is(\"xrange\") ? !k : k, h = Math.max(h, c && g(m) ? 0 : b / 2), f = Math.max(f, c && \"on\" === m ? 0 : b);\n });\n b = a.ordinal && a.ordinal.slope && n ? a.ordinal.slope / n : 1;\n a.minPointOffset = h *= b;\n a.pointRangePadding = f *= b;\n a.pointRange = Math.min(e, a.single && d ? 1 : c);\n k && (a.closestPointRange = n);\n }\n\n a.translationSlope = a.transA = p = a.staticScale || a.len / (c + f || 1);\n a.transB = a.horiz ? a.left : a.bottom;\n a.minPixelPadding = p * h;\n m(this, \"afterSetAxisTranslation\");\n };\n\n f.prototype.minFromRange = function () {\n return this.max - this.range;\n };\n\n f.prototype.setTickInterval = function (c) {\n var g = this.chart,\n b = this.logarithmic,\n d = this.options,\n k = this.isXAxis,\n e = this.isLinked,\n h = d.tickPixelInterval,\n f = this.categories,\n p = this.softThreshold,\n A = d.maxPadding,\n D = d.minPadding,\n I = a(d.tickInterval) && 0 <= d.tickInterval ? d.tickInterval : void 0,\n q = a(this.threshold) ? this.threshold : null;\n this.dateTime || f || e || this.getTickAmount();\n var l = u(this.userMin, d.min);\n var t = u(this.userMax, d.max);\n\n if (e) {\n this.linkedParent = g[this.coll][d.linkedTo];\n var x = this.linkedParent.getExtremes();\n this.min = u(x.min, x.dataMin);\n this.max = u(x.max, x.dataMax);\n d.type !== this.linkedParent.options.type && z(11, 1, g);\n } else {\n if (p && n(q)) if (this.dataMin >= q) x = q, D = 0;else if (this.dataMax <= q) {\n var L = q;\n A = 0;\n }\n this.min = u(l, x, this.dataMin);\n this.max = u(t, L, this.dataMax);\n }\n\n b && (this.positiveValuesOnly && !c && 0 >= Math.min(this.min, u(this.dataMin, this.min)) && z(10, 1, g), this.min = r(b.log2lin(this.min), 16), this.max = r(b.log2lin(this.max), 16));\n this.range && n(this.max) && (this.userMin = this.min = l = Math.max(this.dataMin, this.minFromRange()), this.userMax = t = this.max, this.range = null);\n m(this, \"foundExtremes\");\n this.beforePadding && this.beforePadding();\n this.adjustForMinRange();\n !(f || this.axisPointRange || this.stacking && this.stacking.usePercentage || e) && n(this.min) && n(this.max) && (g = this.max - this.min) && (!n(l) && D && (this.min -= g * D), !n(t) && A && (this.max += g * A));\n a(this.userMin) || (a(d.softMin) && d.softMin < this.min && (this.min = l = d.softMin), a(d.floor) && (this.min = Math.max(this.min, d.floor)));\n a(this.userMax) || (a(d.softMax) && d.softMax > this.max && (this.max = t = d.softMax), a(d.ceiling) && (this.max = Math.min(this.max, d.ceiling)));\n p && n(this.dataMin) && (q = q || 0, !n(l) && this.min < q && this.dataMin >= q ? this.min = this.options.minRange ? Math.min(q, this.max - this.minRange) : q : !n(t) && this.max > q && this.dataMax <= q && (this.max = this.options.minRange ? Math.max(q, this.min + this.minRange) : q));\n a(this.min) && a(this.max) && !this.chart.polar && this.min > this.max && (n(this.options.min) ? this.max = this.min : n(this.options.max) && (this.min = this.max));\n this.tickInterval = this.min === this.max || \"undefined\" === typeof this.min || \"undefined\" === typeof this.max ? 1 : e && this.linkedParent && !I && h === this.linkedParent.options.tickPixelInterval ? I = this.linkedParent.tickInterval : u(I, this.tickAmount ? (this.max - this.min) / Math.max(this.tickAmount - 1, 1) : void 0, f ? 1 : (this.max - this.min) * h / Math.max(this.len, h));\n\n if (k && !c) {\n var w = this.min !== (this.old && this.old.min) || this.max !== (this.old && this.old.max);\n this.series.forEach(function (a) {\n a.forceCrop = a.forceCropping && a.forceCropping();\n a.processData(w);\n });\n m(this, \"postProcessData\", {\n hasExtemesChanged: w\n });\n }\n\n this.setAxisTranslation();\n m(this, \"initialAxisTranslation\");\n this.pointRange && !I && (this.tickInterval = Math.max(this.pointRange, this.tickInterval));\n c = u(d.minTickInterval, this.dateTime && !this.series.some(function (a) {\n return a.noSharedTooltip;\n }) ? this.closestPointRange : 0);\n !I && this.tickInterval < c && (this.tickInterval = c);\n this.dateTime || this.logarithmic || I || (this.tickInterval = U(this, this.tickInterval));\n this.tickAmount || (this.tickInterval = this.unsquish());\n this.setTickPositions();\n };\n\n f.prototype.setTickPositions = function () {\n var a = this.options,\n c = a.tickPositions,\n g = this.getMinorTickInterval(),\n b = this.hasVerticalPanning(),\n d = \"colorAxis\" === this.coll,\n k = (d || !b) && a.startOnTick;\n b = (d || !b) && a.endOnTick;\n d = a.tickPositioner;\n this.tickmarkOffset = this.categories && \"between\" === a.tickmarkPlacement && 1 === this.tickInterval ? .5 : 0;\n this.minorTickInterval = \"auto\" === g && this.tickInterval ? this.tickInterval / 5 : g;\n this.single = this.min === this.max && n(this.min) && !this.tickAmount && (parseInt(this.min, 10) === this.min || !1 !== a.allowDecimals);\n this.tickPositions = g = c && c.slice();\n\n if (!g) {\n if (this.ordinal && this.ordinal.positions || !((this.max - this.min) / this.tickInterval > Math.max(2 * this.len, 200))) {\n if (this.dateTime) g = this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval, a.units), this.min, this.max, a.startOfWeek, this.ordinal && this.ordinal.positions, this.closestPointRange, !0);else if (this.logarithmic) g = this.logarithmic.getLogTickPositions(this.tickInterval, this.min, this.max);else for (var e = a = this.tickInterval; e <= 2 * a;) if (g = this.getLinearTickPositions(this.tickInterval, this.min, this.max), this.tickAmount && g.length > this.tickAmount) this.tickInterval = U(this, e *= 1.1);else break;\n } else g = [this.min, this.max], z(19, !1, this.chart);\n g.length > this.len && (g = [g[0], g.pop()], g[0] === g[1] && (g.length = 1));\n this.tickPositions = g;\n d && (d = d.apply(this, [this.min, this.max])) && (this.tickPositions = g = d);\n }\n\n this.paddedTicks = g.slice(0);\n this.trimTicks(g, k, b);\n this.isLinked || (this.single && 2 > g.length && !this.categories && !this.series.some(function (a) {\n return a.is(\"heatmap\") && \"between\" === a.options.pointPlacement;\n }) && (this.min -= .5, this.max += .5), c || d || this.adjustTickAmount());\n m(this, \"afterSetTickPositions\");\n };\n\n f.prototype.trimTicks = function (a, c, g) {\n var b = a[0],\n d = a[a.length - 1],\n k = !this.isOrdinal && this.minPointOffset || 0;\n m(this, \"trimTicks\");\n\n if (!this.isLinked) {\n if (c && -Infinity !== b) this.min = b;else for (; this.min - k > a[0];) a.shift();\n if (g) this.max = d;else for (; this.max + k < a[a.length - 1];) a.pop();\n 0 === a.length && n(b) && !this.options.tickPositions && a.push((d + b) / 2);\n }\n };\n\n f.prototype.alignToOthers = function () {\n var c = this,\n g = [this],\n b = c.options,\n d = \"yAxis\" === this.coll && this.chart.options.chart.alignThresholds,\n k = [],\n m;\n c.thresholdAlignment = void 0;\n\n if ((!1 !== this.chart.options.chart.alignTicks && b.alignTicks || d) && !1 !== b.startOnTick && !1 !== b.endOnTick && !c.logarithmic) {\n var e = function (a) {\n var c = a.options;\n return [a.horiz ? c.left : c.top, c.width, c.height, c.pane].join();\n },\n h = e(this);\n\n this.chart[this.coll].forEach(function (a) {\n var b = a.series;\n b.length && b.some(function (a) {\n return a.visible;\n }) && a !== c && e(a) === h && (m = !0, g.push(a));\n });\n }\n\n if (m && d) {\n g.forEach(function (g) {\n g = g.getThresholdAlignment(c);\n a(g) && k.push(g);\n });\n var u = 1 < k.length ? k.reduce(function (a, c) {\n return a + c;\n }, 0) / k.length : void 0;\n g.forEach(function (a) {\n a.thresholdAlignment = u;\n });\n }\n\n return m;\n };\n\n f.prototype.getThresholdAlignment = function (c) {\n (!a(this.dataMin) || this !== c && this.series.some(function (a) {\n return a.isDirty || a.isDirtyData;\n })) && this.getSeriesExtremes();\n if (a(this.threshold)) return c = q((this.threshold - (this.dataMin || 0)) / ((this.dataMax || 0) - (this.dataMin || 0)), 0, 1), this.options.reversed && (c = 1 - c), c;\n };\n\n f.prototype.getTickAmount = function () {\n var a = this.options,\n c = a.tickPixelInterval,\n g = a.tickAmount;\n !n(a.tickInterval) && !g && this.len < c && !this.isRadial && !this.logarithmic && a.startOnTick && a.endOnTick && (g = 2);\n !g && this.alignToOthers() && (g = Math.ceil(this.len / c) + 1);\n 4 > g && (this.finalTickAmt = g, g = 5);\n this.tickAmount = g;\n };\n\n f.prototype.adjustTickAmount = function () {\n var c = this,\n g = c.finalTickAmt,\n b = c.max,\n d = c.min,\n k = c.options,\n m = c.tickPositions,\n e = c.tickAmount,\n h = c.thresholdAlignment,\n f = m && m.length,\n p = u(c.threshold, c.softThreshold ? 0 : null);\n var A = c.tickInterval;\n\n if (a(h)) {\n var D = .5 > h ? Math.ceil(h * (e - 1)) : Math.floor(h * (e - 1));\n k.reversed && (D = e - 1 - D);\n }\n\n if (c.hasData() && a(d) && a(b)) {\n h = function () {\n c.transA *= (f - 1) / (e - 1);\n c.min = k.startOnTick ? m[0] : Math.min(d, m[0]);\n c.max = k.endOnTick ? m[m.length - 1] : Math.max(b, m[m.length - 1]);\n };\n\n if (a(D) && a(c.threshold)) {\n for (; m[D] !== p || m.length !== e || m[0] > d || m[m.length - 1] < b;) {\n m.length = 0;\n\n for (m.push(c.threshold); m.length < e;) void 0 === m[D] || m[D] > c.threshold ? m.unshift(r(m[0] - A)) : m.push(r(m[m.length - 1] + A));\n\n if (A > 8 * c.tickInterval) break;\n A *= 2;\n }\n\n h();\n } else if (f < e) {\n for (; m.length < e;) m.length % 2 || d === p ? m.push(r(m[m.length - 1] + A)) : m.unshift(r(m[0] - A));\n\n h();\n }\n\n if (n(g)) {\n for (A = p = m.length; A--;) (3 === g && 1 === A % 2 || 2 >= g && 0 < A && A < p - 1) && m.splice(A, 1);\n\n c.finalTickAmt = void 0;\n }\n }\n };\n\n f.prototype.setScale = function () {\n var a = !1,\n c = !1;\n this.series.forEach(function (g) {\n a = a || g.isDirtyData || g.isDirty;\n c = c || g.xAxis && g.xAxis.isDirty || !1;\n });\n this.setAxisSize();\n var g = this.len !== (this.old && this.old.len);\n g || a || c || this.isLinked || this.forceRedraw || this.userMin !== (this.old && this.old.userMin) || this.userMax !== (this.old && this.old.userMax) || this.alignToOthers() ? (this.stacking && this.stacking.resetStacks(), this.forceRedraw = !1, this.getSeriesExtremes(), this.setTickInterval(), this.isDirty || (this.isDirty = g || this.min !== (this.old && this.old.min) || this.max !== (this.old && this.old.max))) : this.stacking && this.stacking.cleanStacks();\n a && this.panningState && (this.panningState.isDirty = !0);\n m(this, \"afterSetScale\");\n };\n\n f.prototype.setExtremes = function (a, c, g, b, d) {\n var k = this,\n e = k.chart;\n g = u(g, !0);\n k.series.forEach(function (a) {\n delete a.kdTree;\n });\n d = x(d, {\n min: a,\n max: c\n });\n m(k, \"setExtremes\", d, function () {\n k.userMin = a;\n k.userMax = c;\n k.eventArgs = d;\n g && e.redraw(b);\n });\n };\n\n f.prototype.zoom = function (a, c) {\n var g = this,\n b = this.dataMin,\n d = this.dataMax,\n k = this.options,\n e = Math.min(b, u(k.min, b)),\n h = Math.max(d, u(k.max, d));\n a = {\n newMin: a,\n newMax: c\n };\n m(this, \"zoom\", a, function (a) {\n var c = a.newMin,\n k = a.newMax;\n if (c !== g.min || k !== g.max) g.allowZoomOutside || (n(b) && (c < e && (c = e), c > h && (c = h)), n(d) && (k < e && (k = e), k > h && (k = h))), g.displayBtn = \"undefined\" !== typeof c || \"undefined\" !== typeof k, g.setExtremes(c, k, !1, void 0, {\n trigger: \"zoom\"\n });\n a.zoomed = !0;\n });\n return a.zoomed;\n };\n\n f.prototype.setAxisSize = function () {\n var a = this.chart,\n c = this.options,\n g = c.offsets || [0, 0, 0, 0],\n b = this.horiz,\n d = this.width = Math.round(L(u(c.width, a.plotWidth - g[3] + g[1]), a.plotWidth)),\n k = this.height = Math.round(L(u(c.height, a.plotHeight - g[0] + g[2]), a.plotHeight)),\n m = this.top = Math.round(L(u(c.top, a.plotTop + g[0]), a.plotHeight, a.plotTop));\n c = this.left = Math.round(L(u(c.left, a.plotLeft + g[3]), a.plotWidth, a.plotLeft));\n this.bottom = a.chartHeight - k - m;\n this.right = a.chartWidth - d - c;\n this.len = Math.max(b ? d : k, 0);\n this.pos = b ? c : m;\n };\n\n f.prototype.getExtremes = function () {\n var a = this.logarithmic;\n return {\n min: a ? r(a.lin2log(this.min)) : this.min,\n max: a ? r(a.lin2log(this.max)) : this.max,\n dataMin: this.dataMin,\n dataMax: this.dataMax,\n userMin: this.userMin,\n userMax: this.userMax\n };\n };\n\n f.prototype.getThreshold = function (a) {\n var c = this.logarithmic,\n g = c ? c.lin2log(this.min) : this.min;\n c = c ? c.lin2log(this.max) : this.max;\n null === a || -Infinity === a ? a = g : Infinity === a ? a = c : g > a ? a = g : c < a && (a = c);\n return this.translate(a, 0, 1, 0, 1);\n };\n\n f.prototype.autoLabelAlign = function (a) {\n var c = (u(a, 0) - 90 * this.side + 720) % 360;\n a = {\n align: \"center\"\n };\n m(this, \"autoLabelAlign\", a, function (a) {\n 15 < c && 165 > c ? a.align = \"right\" : 195 < c && 345 > c && (a.align = \"left\");\n });\n return a.align;\n };\n\n f.prototype.tickSize = function (a) {\n var c = this.options,\n g = u(c[\"tick\" === a ? \"tickWidth\" : \"minorTickWidth\"], \"tick\" === a && this.isXAxis && !this.categories ? 1 : 0),\n b = c[\"tick\" === a ? \"tickLength\" : \"minorTickLength\"];\n\n if (g && b) {\n \"inside\" === c[a + \"Position\"] && (b = -b);\n var d = [b, g];\n }\n\n a = {\n tickSize: d\n };\n m(this, \"afterTickSize\", a);\n return a.tickSize;\n };\n\n f.prototype.labelMetrics = function () {\n var a = this.tickPositions && this.tickPositions[0] || 0;\n return this.chart.renderer.fontMetrics(this.options.labels.style.fontSize, this.ticks[a] && this.ticks[a].label);\n };\n\n f.prototype.unsquish = function () {\n var c = this.options.labels,\n g = this.horiz,\n b = this.tickInterval,\n k = this.len / (((this.categories ? 1 : 0) + this.max - this.min) / b),\n m = c.rotation,\n e = this.labelMetrics(),\n h = Math.max(this.max - this.min, 0),\n f = function (a) {\n var c = a / (k || 1);\n c = 1 < c ? Math.ceil(c) : 1;\n c * b > h && Infinity !== a && Infinity !== k && h && (c = Math.ceil(h / b));\n return r(c * b);\n },\n p = b,\n n,\n A,\n D = Number.MAX_VALUE;\n\n if (g) {\n if (!c.staggerLines && !c.step) if (a(m)) var q = [m];else k < c.autoRotationLimit && (q = c.autoRotation);\n q && q.forEach(function (a) {\n if (a === m || a && -90 <= a && 90 >= a) {\n A = f(Math.abs(e.h / Math.sin(d * a)));\n var c = A + Math.abs(a / 360);\n c < D && (D = c, n = a, p = A);\n }\n });\n } else c.step || (p = f(e.h));\n\n this.autoRotation = q;\n this.labelRotation = u(n, a(m) ? m : 0);\n return p;\n };\n\n f.prototype.getSlotWidth = function (c) {\n var g = this.chart,\n b = this.horiz,\n d = this.options.labels,\n k = Math.max(this.tickPositions.length - (this.categories ? 0 : 1), 1),\n m = g.margin[3];\n if (c && a(c.slotWidth)) return c.slotWidth;\n if (b && 2 > d.step) return d.rotation ? 0 : (this.staggerLines || 1) * this.len / k;\n\n if (!b) {\n c = d.style.width;\n if (void 0 !== c) return parseInt(String(c), 10);\n if (m) return m - g.spacing[3];\n }\n\n return .33 * g.chartWidth;\n };\n\n f.prototype.renderUnsquish = function () {\n var a = this.chart,\n c = a.renderer,\n b = this.tickPositions,\n d = this.ticks,\n k = this.options.labels,\n m = k.style,\n e = this.horiz,\n h = this.getSlotWidth(),\n u = Math.max(1, Math.round(h - 2 * k.padding)),\n f = {},\n p = this.labelMetrics(),\n n = m.textOverflow,\n A = 0;\n g(k.rotation) || (f.rotation = k.rotation || 0);\n b.forEach(function (a) {\n a = d[a];\n a.movedLabel && a.replaceMovedLabel();\n a && a.label && a.label.textPxLength > A && (A = a.label.textPxLength);\n });\n this.maxLabelLength = A;\n if (this.autoRotation) A > u && A > p.h ? f.rotation = this.labelRotation : this.labelRotation = 0;else if (h) {\n var D = u;\n\n if (!n) {\n var r = \"clip\";\n\n for (u = b.length; !e && u--;) {\n var q = b[u];\n if (q = d[q].label) q.styles && \"ellipsis\" === q.styles.textOverflow ? q.css({\n textOverflow: \"clip\"\n }) : q.textPxLength > h && q.css({\n width: h + \"px\"\n }), q.getBBox().height > this.len / b.length - (p.h - p.f) && (q.specificTextOverflow = \"ellipsis\");\n }\n }\n }\n f.rotation && (D = A > .5 * a.chartHeight ? .33 * a.chartHeight : A, n || (r = \"ellipsis\"));\n if (this.labelAlign = k.align || this.autoLabelAlign(this.labelRotation)) f.align = this.labelAlign;\n b.forEach(function (a) {\n var c = (a = d[a]) && a.label,\n g = m.width,\n b = {};\n c && (c.attr(f), a.shortenLabel ? a.shortenLabel() : D && !g && \"nowrap\" !== m.whiteSpace && (D < c.textPxLength || \"SPAN\" === c.element.tagName) ? (b.width = D + \"px\", n || (b.textOverflow = c.specificTextOverflow || r), c.css(b)) : c.styles && c.styles.width && !b.width && !g && c.css({\n width: null\n }), delete c.specificTextOverflow, a.rotation = f.rotation);\n }, this);\n this.tickRotCorr = c.rotCorr(p.b, this.labelRotation || 0, 0 !== this.side);\n };\n\n f.prototype.hasData = function () {\n return this.series.some(function (a) {\n return a.hasData();\n }) || this.options.showEmpty && n(this.min) && n(this.max);\n };\n\n f.prototype.addTitle = function (a) {\n var g = this.chart.renderer,\n b = this.horiz,\n d = this.opposite,\n k = this.options.title,\n m = this.chart.styledMode,\n e;\n this.axisTitle || ((e = k.textAlign) || (e = (b ? {\n low: \"left\",\n middle: \"center\",\n high: \"right\"\n } : {\n low: d ? \"right\" : \"left\",\n middle: \"center\",\n high: d ? \"left\" : \"right\"\n })[k.align]), this.axisTitle = g.text(k.text || \"\", 0, 0, k.useHTML).attr({\n zIndex: 7,\n rotation: k.rotation,\n align: e\n }).addClass(\"highcharts-axis-title\"), m || this.axisTitle.css(c(k.style)), this.axisTitle.add(this.axisGroup), this.axisTitle.isNew = !0);\n m || k.style.width || this.isRadial || this.axisTitle.css({\n width: this.len + \"px\"\n });\n this.axisTitle[a ? \"show\" : \"hide\"](a);\n };\n\n f.prototype.generateTick = function (a) {\n var c = this.ticks;\n c[a] ? c[a].addLabel() : c[a] = new G(this, a);\n };\n\n f.prototype.getOffset = function () {\n var a = this,\n c = this,\n g = c.chart,\n b = c.horiz,\n d = c.options,\n k = c.side,\n e = c.ticks,\n h = c.tickPositions,\n f = c.coll,\n p = c.axisParent,\n D = g.renderer,\n q = g.inverted && !c.isZAxis ? [1, 0, 3, 2][k] : k,\n r = c.hasData(),\n l = d.title,\n t = d.labels,\n x = g.axisOffset;\n g = g.clipOffset;\n var z = [-1, 1, 1, -1][k],\n L = d.className,\n w,\n S = 0,\n ja = 0,\n ca = 0;\n c.showAxis = w = r || d.showEmpty;\n c.staggerLines = c.horiz && t.staggerLines || void 0;\n\n if (!c.axisGroup) {\n var J = function (c, g, b) {\n return D.g(c).attr({\n zIndex: b\n }).addClass(\"highcharts-\".concat(f.toLowerCase()).concat(g, \" \") + (a.isRadial ? \"highcharts-radial-axis\".concat(g, \" \") : \"\") + (L || \"\")).add(p);\n };\n\n c.gridGroup = J(\"grid\", \"-grid\", d.gridZIndex);\n c.axisGroup = J(\"axis\", \"\", d.zIndex);\n c.labelGroup = J(\"axis-labels\", \"-labels\", t.zIndex);\n }\n\n r || c.isLinked ? (h.forEach(function (a) {\n c.generateTick(a);\n }), c.renderUnsquish(), c.reserveSpaceDefault = 0 === k || 2 === k || {\n 1: \"left\",\n 3: \"right\"\n }[k] === c.labelAlign, u(t.reserveSpace, \"center\" === c.labelAlign ? !0 : null, c.reserveSpaceDefault) && h.forEach(function (a) {\n ca = Math.max(e[a].getLabelSize(), ca);\n }), c.staggerLines && (ca *= c.staggerLines), c.labelOffset = ca * (c.opposite ? -1 : 1)) : A(e, function (a, c) {\n a.destroy();\n delete e[c];\n });\n\n if (l && l.text && !1 !== l.enabled && (c.addTitle(w), w && !1 !== l.reserveSpace)) {\n c.titleOffset = S = c.axisTitle.getBBox()[b ? \"height\" : \"width\"];\n var M = l.offset;\n ja = n(M) ? 0 : u(l.margin, b ? 5 : 10);\n }\n\n c.renderLine();\n c.offset = z * u(d.offset, x[k] ? x[k] + (d.margin || 0) : 0);\n c.tickRotCorr = c.tickRotCorr || {\n x: 0,\n y: 0\n };\n l = 0 === k ? -c.labelMetrics().h : 2 === k ? c.tickRotCorr.y : 0;\n r = Math.abs(ca) + ja;\n ca && (r = r - l + z * (b ? u(t.y, c.tickRotCorr.y + 8 * z) : t.x));\n c.axisTitleMargin = u(M, r);\n c.getMaxLabelDimensions && (c.maxLabelDimensions = c.getMaxLabelDimensions(e, h));\n \"colorAxis\" !== f && (b = this.tickSize(\"tick\"), x[k] = Math.max(x[k], (c.axisTitleMargin || 0) + S + z * c.offset, r, h && h.length && b ? b[0] + z * c.offset : 0), d = !c.axisLine || d.offset ? 0 : 2 * Math.floor(c.axisLine.strokeWidth() / 2), g[q] = Math.max(g[q], d));\n m(this, \"afterGetOffset\");\n };\n\n f.prototype.getLinePath = function (a) {\n var c = this.chart,\n g = this.opposite,\n b = this.offset,\n d = this.horiz,\n k = this.left + (g ? this.width : 0) + b;\n b = c.chartHeight - this.bottom - (g ? this.height : 0) + b;\n g && (a *= -1);\n return c.renderer.crispLine([[\"M\", d ? this.left : k, d ? b : this.top], [\"L\", d ? c.chartWidth - this.right : k, d ? b : c.chartHeight - this.bottom]], a);\n };\n\n f.prototype.renderLine = function () {\n this.axisLine || (this.axisLine = this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup), this.chart.styledMode || this.axisLine.attr({\n stroke: this.options.lineColor,\n \"stroke-width\": this.options.lineWidth,\n zIndex: 7\n }));\n };\n\n f.prototype.getTitlePosition = function () {\n var a = this.horiz,\n c = this.left,\n g = this.top,\n b = this.len,\n d = this.options.title,\n k = a ? c : g,\n e = this.opposite,\n h = this.offset,\n f = d.x,\n u = d.y,\n p = this.axisTitle,\n n = this.chart.renderer.fontMetrics(d.style.fontSize, p);\n p = p ? Math.max(p.getBBox(!1, 0).height - n.h - 1, 0) : 0;\n b = {\n low: k + (a ? 0 : b),\n middle: k + b / 2,\n high: k + (a ? b : 0)\n }[d.align];\n c = (a ? g + this.height : c) + (a ? 1 : -1) * (e ? -1 : 1) * (this.axisTitleMargin || 0) + [-p, p, n.f, -p][this.side];\n a = {\n x: a ? b + f : c + (e ? this.width : 0) + h + f,\n y: a ? c + u - (e ? this.height : 0) + h : b + u\n };\n m(this, \"afterGetTitlePosition\", {\n titlePosition: a\n });\n return a;\n };\n\n f.prototype.renderMinorTick = function (a, c) {\n var g = this.minorTicks;\n g[a] || (g[a] = new G(this, a, \"minor\"));\n c && g[a].isNew && g[a].render(null, !0);\n g[a].render(null, !1, 1);\n };\n\n f.prototype.renderTick = function (a, c, g) {\n var b = this.ticks;\n if (!this.isLinked || a >= this.min && a <= this.max || this.grid && this.grid.isColumn) b[a] || (b[a] = new G(this, a)), g && b[a].isNew && b[a].render(c, !0, -1), b[a].render(c);\n };\n\n f.prototype.render = function () {\n var c = this,\n g = c.chart,\n b = c.logarithmic,\n d = c.options,\n k = c.isLinked,\n e = c.tickPositions,\n h = c.axisTitle,\n f = c.ticks,\n u = c.minorTicks,\n p = c.alternateBands,\n n = d.stackLabels,\n D = d.alternateGridColor,\n r = c.tickmarkOffset,\n q = c.axisLine,\n l = c.showAxis,\n t = y(g.renderer.globalAnimation),\n x,\n z;\n c.labelEdge.length = 0;\n c.overlap = !1;\n [f, u, p].forEach(function (a) {\n A(a, function (a) {\n a.isActive = !1;\n });\n });\n\n if (c.hasData() || k) {\n var L = c.chart.hasRendered && c.old && a(c.old.min);\n c.minorTickInterval && !c.categories && c.getMinorTickPositions().forEach(function (a) {\n c.renderMinorTick(a, L);\n });\n e.length && (e.forEach(function (a, g) {\n c.renderTick(a, g, L);\n }), r && (0 === c.min || c.single) && (f[-1] || (f[-1] = new G(c, -1, null, !0)), f[-1].render(-1)));\n D && e.forEach(function (a, d) {\n z = \"undefined\" !== typeof e[d + 1] ? e[d + 1] + r : c.max - r;\n 0 === d % 2 && a < c.max && z <= c.max + (g.polar ? -r : r) && (p[a] || (p[a] = new E.PlotLineOrBand(c)), x = a + r, p[a].options = {\n from: b ? b.lin2log(x) : x,\n to: b ? b.lin2log(z) : z,\n color: D,\n className: \"highcharts-alternate-grid\"\n }, p[a].render(), p[a].isActive = !0);\n });\n c._addedPlotLB || (c._addedPlotLB = !0, (d.plotLines || []).concat(d.plotBands || []).forEach(function (a) {\n c.addPlotBandOrLine(a);\n }));\n }\n\n [f, u, p].forEach(function (a) {\n var c = [],\n b = t.duration;\n A(a, function (a, g) {\n a.isActive || (a.render(g, !1, 0), a.isActive = !1, c.push(g));\n });\n M(function () {\n for (var g = c.length; g--;) a[c[g]] && !a[c[g]].isActive && (a[c[g]].destroy(), delete a[c[g]]);\n }, a !== p && g.hasRendered && b ? b : 0);\n });\n q && (q[q.isPlaced ? \"animate\" : \"attr\"]({\n d: this.getLinePath(q.strokeWidth())\n }), q.isPlaced = !0, q[l ? \"show\" : \"hide\"](l));\n h && l && (d = c.getTitlePosition(), h[h.isNew ? \"attr\" : \"animate\"](d), h.isNew = !1);\n n && n.enabled && c.stacking && c.stacking.renderStackTotals();\n c.old = {\n len: c.len,\n max: c.max,\n min: c.min,\n transA: c.transA,\n userMax: c.userMax,\n userMin: c.userMin\n };\n c.isDirty = !1;\n m(this, \"afterRender\");\n };\n\n f.prototype.redraw = function () {\n this.visible && (this.render(), this.plotLinesAndBands.forEach(function (a) {\n a.render();\n }));\n this.series.forEach(function (a) {\n a.isDirty = !0;\n });\n };\n\n f.prototype.getKeepProps = function () {\n return this.keepProps || f.keepProps;\n };\n\n f.prototype.destroy = function (a) {\n var c = this,\n g = c.plotLinesAndBands,\n b = this.eventOptions;\n m(this, \"destroy\", {\n keepEvents: a\n });\n a || S(c);\n [c.ticks, c.minorTicks, c.alternateBands].forEach(function (a) {\n J(a);\n });\n if (g) for (a = g.length; a--;) g[a].destroy();\n \"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar\".split(\" \").forEach(function (a) {\n c[a] && (c[a] = c[a].destroy());\n });\n\n for (var d in c.plotLinesAndBandsGroups) c.plotLinesAndBandsGroups[d] = c.plotLinesAndBandsGroups[d].destroy();\n\n A(c, function (a, g) {\n -1 === c.getKeepProps().indexOf(g) && delete c[g];\n });\n this.eventOptions = b;\n };\n\n f.prototype.drawCrosshair = function (a, c) {\n var g = this.crosshair,\n b = u(g && g.snap, !0),\n d = this.chart,\n k,\n e = this.cross;\n m(this, \"drawCrosshair\", {\n e: a,\n point: c\n });\n a || (a = this.cross && this.cross.e);\n\n if (g && !1 !== (n(c) || !b)) {\n b ? n(c) && (k = u(\"colorAxis\" !== this.coll ? c.crosshairPos : null, this.isXAxis ? c.plotX : this.len - c.plotY)) : k = a && (this.horiz ? a.chartX - this.pos : this.len - a.chartY + this.pos);\n\n if (n(k)) {\n var h = {\n value: c && (this.isXAxis ? c.x : u(c.stackY, c.y)),\n translatedValue: k\n };\n d.polar && x(h, {\n isCrosshair: !0,\n chartX: a && a.chartX,\n chartY: a && a.chartY,\n point: c\n });\n h = this.getPlotLinePath(h) || null;\n }\n\n if (!n(h)) {\n this.hideCrosshair();\n return;\n }\n\n b = this.categories && !this.isRadial;\n e || (this.cross = e = d.renderer.path().addClass(\"highcharts-crosshair highcharts-crosshair-\" + (b ? \"category \" : \"thin \") + (g.className || \"\")).attr({\n zIndex: u(g.zIndex, 2)\n }).add(), d.styledMode || (e.attr({\n stroke: g.color || (b ? l.parse(\"#ccd6eb\").setOpacity(.25).get() : \"#cccccc\"),\n \"stroke-width\": u(g.width, 1)\n }).css({\n \"pointer-events\": \"none\"\n }), g.dashStyle && e.attr({\n dashstyle: g.dashStyle\n })));\n e.show().attr({\n d: h\n });\n b && !g.width && e.attr({\n \"stroke-width\": this.transA\n });\n this.cross.e = a;\n } else this.hideCrosshair();\n\n m(this, \"afterDrawCrosshair\", {\n e: a,\n point: c\n });\n };\n\n f.prototype.hideCrosshair = function () {\n this.cross && this.cross.hide();\n m(this, \"afterHideCrosshair\");\n };\n\n f.prototype.hasVerticalPanning = function () {\n var a = this.chart.options.chart.panning;\n return !!(a && a.enabled && /y/.test(a.type));\n };\n\n f.prototype.validatePositiveValue = function (c) {\n return a(c) && 0 < c;\n };\n\n f.prototype.update = function (a, g) {\n var b = this.chart;\n a = c(this.userOptions, a);\n this.destroy(!0);\n this.init(b, a);\n b.isDirtyBox = !0;\n u(g, !0) && b.redraw();\n };\n\n f.prototype.remove = function (a) {\n for (var c = this.chart, g = this.coll, b = this.series, d = b.length; d--;) b[d] && b[d].remove(!1);\n\n w(c.axes, this);\n w(c[g], this);\n c[g].forEach(function (a, c) {\n a.options.index = a.userOptions.index = c;\n });\n this.destroy();\n c.isDirtyBox = !0;\n u(a, !0) && c.redraw();\n };\n\n f.prototype.setTitle = function (a, c) {\n this.update({\n title: a\n }, c);\n };\n\n f.prototype.setCategories = function (a, c) {\n this.update({\n categories: a\n }, c);\n };\n\n f.defaultOptions = e.defaultXAxisOptions;\n f.keepProps = \"extKey hcEvents names series userMax userMin\".split(\" \");\n return f;\n }();\n\n \"\";\n return f;\n });\n K(l, \"Core/Axis/DateTimeAxis.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.addEvent,\n l = f.getMagnitude,\n C = f.normalizeTickInterval,\n v = f.timeUnits,\n E;\n\n (function (f) {\n function B() {\n return this.chart.time.getTimeTicks.apply(this.chart.time, arguments);\n }\n\n function y(d) {\n \"datetime\" !== d.userOptions.type ? this.dateTime = void 0 : this.dateTime || (this.dateTime = new h(this));\n }\n\n var t = [];\n\n f.compose = function (d) {\n -1 === t.indexOf(d) && (t.push(d), d.keepProps.push(\"dateTime\"), d.prototype.getTimeTicks = B, e(d, \"init\", y));\n return d;\n };\n\n var h = function () {\n function d(b) {\n this.axis = b;\n }\n\n d.prototype.normalizeTimeTickInterval = function (b, d) {\n var e = d || [[\"millisecond\", [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]], [\"second\", [1, 2, 5, 10, 15, 30]], [\"minute\", [1, 2, 5, 10, 15, 30]], [\"hour\", [1, 2, 3, 4, 6, 8, 12]], [\"day\", [1, 2]], [\"week\", [1, 2]], [\"month\", [1, 2, 3, 4, 6]], [\"year\", null]];\n d = e[e.length - 1];\n var h = v[d[0]],\n f = d[1],\n p;\n\n for (p = 0; p < e.length && !(d = e[p], h = v[d[0]], f = d[1], e[p + 1] && b <= (h * f[f.length - 1] + v[e[p + 1][0]]) / 2); p++);\n\n h === v.year && b < 5 * h && (f = [1, 2, 5]);\n b = C(b / h, f, \"year\" === d[0] ? Math.max(l(b / h), 1) : 1);\n return {\n unitRange: h,\n count: b,\n unitName: d[0]\n };\n };\n\n d.prototype.getXDateFormat = function (b, d) {\n var e = this.axis,\n h = e.chart.time;\n return e.closestPointRange ? h.getDateFormat(e.closestPointRange, b, e.options.startOfWeek, d) || h.resolveDTLFormat(d.year).main : h.resolveDTLFormat(d.day).main;\n };\n\n return d;\n }();\n\n f.Additions = h;\n })(E || (E = {}));\n\n return E;\n });\n K(l, \"Core/Axis/LogarithmicAxis.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.addEvent,\n l = f.normalizeTickInterval,\n C = f.pick,\n v;\n\n (function (f) {\n function v(e) {\n var d = this.logarithmic;\n \"logarithmic\" !== e.userOptions.type ? this.logarithmic = void 0 : d || (this.logarithmic = new t(this));\n }\n\n function B() {\n var e = this.logarithmic;\n e && (this.lin2val = function (d) {\n return e.lin2log(d);\n }, this.val2lin = function (d) {\n return e.log2lin(d);\n });\n }\n\n var y = [];\n\n f.compose = function (h) {\n -1 === y.indexOf(h) && (y.push(h), h.keepProps.push(\"logarithmic\"), e(h, \"init\", v), e(h, \"afterInit\", B));\n return h;\n };\n\n var t = function () {\n function e(d) {\n this.axis = d;\n }\n\n e.prototype.getLogTickPositions = function (d, b, e, h) {\n var f = this.axis,\n p = f.len,\n q = f.options,\n t = [];\n h || (this.minorAutoInterval = void 0);\n if (.5 <= d) d = Math.round(d), t = f.getLinearTickPositions(d, b, e);else if (.08 <= d) {\n var z = Math.floor(b),\n x,\n m = q = void 0;\n\n for (p = .3 < d ? [1, 2, 4] : .15 < d ? [1, 2, 4, 6, 8] : [1, 2, 3, 4, 5, 6, 7, 8, 9]; z < e + 1 && !m; z++) {\n var k = p.length;\n\n for (x = 0; x < k && !m; x++) {\n var a = this.log2lin(this.lin2log(z) * p[x]);\n a > b && (!h || q <= e) && \"undefined\" !== typeof q && t.push(q);\n q > e && (m = !0);\n q = a;\n }\n }\n } else b = this.lin2log(b), e = this.lin2log(e), d = h ? f.getMinorTickInterval() : q.tickInterval, d = C(\"auto\" === d ? null : d, this.minorAutoInterval, q.tickPixelInterval / (h ? 5 : 1) * (e - b) / ((h ? p / f.tickPositions.length : p) || 1)), d = l(d), t = f.getLinearTickPositions(d, b, e).map(this.log2lin), h || (this.minorAutoInterval = d / 5);\n h || (f.tickInterval = d);\n return t;\n };\n\n e.prototype.lin2log = function (d) {\n return Math.pow(10, d);\n };\n\n e.prototype.log2lin = function (d) {\n return Math.log(d) / Math.LN10;\n };\n\n return e;\n }();\n\n f.Additions = t;\n })(v || (v = {}));\n\n return v;\n });\n K(l, \"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.erase,\n l = f.extend,\n C = f.isNumber,\n v;\n\n (function (f) {\n var v = [],\n B;\n\n f.compose = function (e, h) {\n B || (B = e);\n -1 === v.indexOf(h) && (v.push(h), l(h.prototype, y.prototype));\n return h;\n };\n\n var y = function () {\n function f() {}\n\n f.prototype.getPlotBandPath = function (e, d, b) {\n void 0 === b && (b = this.options);\n var h = this.getPlotLinePath({\n value: d,\n force: !0,\n acrossPanes: b.acrossPanes\n }),\n f = [],\n r = this.horiz;\n d = !C(this.min) || !C(this.max) || e < this.min && d < this.min || e > this.max && d > this.max;\n e = this.getPlotLinePath({\n value: e,\n force: !0,\n acrossPanes: b.acrossPanes\n });\n b = 1;\n\n if (e && h) {\n if (d) {\n var n = e.toString() === h.toString();\n b = 0;\n }\n\n for (d = 0; d < e.length; d += 2) {\n var l = e[d],\n t = e[d + 1],\n z = h[d],\n x = h[d + 1];\n \"M\" !== l[0] && \"L\" !== l[0] || \"M\" !== t[0] && \"L\" !== t[0] || \"M\" !== z[0] && \"L\" !== z[0] || \"M\" !== x[0] && \"L\" !== x[0] || (r && z[1] === l[1] ? (z[1] += b, x[1] += b) : r || z[2] !== l[2] || (z[2] += b, x[2] += b), f.push([\"M\", l[1], l[2]], [\"L\", t[1], t[2]], [\"L\", x[1], x[2]], [\"L\", z[1], z[2]], [\"Z\"]));\n f.isFlat = n;\n }\n }\n\n return f;\n };\n\n f.prototype.addPlotBand = function (e) {\n return this.addPlotBandOrLine(e, \"plotBands\");\n };\n\n f.prototype.addPlotLine = function (e) {\n return this.addPlotBandOrLine(e, \"plotLines\");\n };\n\n f.prototype.addPlotBandOrLine = function (e, d) {\n var b = this,\n f = this.userOptions,\n h = new B(this, e);\n this.visible && (h = h.render());\n\n if (h) {\n this._addedPlotLB || (this._addedPlotLB = !0, (f.plotLines || []).concat(f.plotBands || []).forEach(function (d) {\n b.addPlotBandOrLine(d);\n }));\n\n if (d) {\n var r = f[d] || [];\n r.push(e);\n f[d] = r;\n }\n\n this.plotLinesAndBands.push(h);\n }\n\n return h;\n };\n\n f.prototype.removePlotBandOrLine = function (f) {\n var d = this.plotLinesAndBands,\n b = this.options,\n h = this.userOptions;\n\n if (d) {\n for (var q = d.length; q--;) d[q].id === f && d[q].destroy();\n\n [b.plotLines || [], h.plotLines || [], b.plotBands || [], h.plotBands || []].forEach(function (b) {\n for (q = b.length; q--;) (b[q] || {}).id === f && e(b, b[q]);\n });\n }\n };\n\n f.prototype.removePlotBand = function (e) {\n this.removePlotBandOrLine(e);\n };\n\n f.prototype.removePlotLine = function (e) {\n this.removePlotBandOrLine(e);\n };\n\n return f;\n }();\n })(v || (v = {}));\n\n return v;\n });\n K(l, \"Core/Axis/PlotLineOrBand/PlotLineOrBand.js\", [l[\"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = e.arrayMax,\n C = e.arrayMin,\n v = e.defined,\n E = e.destroyObjectProperties,\n G = e.erase,\n B = e.fireEvent,\n y = e.merge,\n t = e.objectEach,\n h = e.pick;\n\n e = function () {\n function d(b, d) {\n this.axis = b;\n d && (this.options = d, this.id = d.id);\n }\n\n d.compose = function (b) {\n return f.compose(d, b);\n };\n\n d.prototype.render = function () {\n B(this, \"render\");\n var b = this,\n d = b.axis,\n e = d.horiz,\n f = d.logarithmic,\n n = b.options,\n l = n.color,\n w = h(n.zIndex, 0),\n z = n.events,\n x = {},\n m = d.chart.renderer,\n k = n.label,\n a = b.label,\n g = n.to,\n c = n.from,\n D = n.value,\n A = b.svgElem,\n u = [],\n L = v(c) && v(g);\n u = v(D);\n var S = !A,\n R = {\n \"class\": \"highcharts-plot-\" + (L ? \"band \" : \"line \") + (n.className || \"\")\n },\n M = L ? \"bands\" : \"lines\";\n f && (c = f.log2lin(c), g = f.log2lin(g), D = f.log2lin(D));\n d.chart.styledMode || (u ? (R.stroke = l || \"#999999\", R[\"stroke-width\"] = h(n.width, 1), n.dashStyle && (R.dashstyle = n.dashStyle)) : L && (R.fill = l || \"#e6ebf5\", n.borderWidth && (R.stroke = n.borderColor, R[\"stroke-width\"] = n.borderWidth)));\n x.zIndex = w;\n M += \"-\" + w;\n (f = d.plotLinesAndBandsGroups[M]) || (d.plotLinesAndBandsGroups[M] = f = m.g(\"plot-\" + M).attr(x).add());\n S && (b.svgElem = A = m.path().attr(R).add(f));\n if (u) u = d.getPlotLinePath({\n value: D,\n lineWidth: A.strokeWidth(),\n acrossPanes: n.acrossPanes\n });else if (L) u = d.getPlotBandPath(c, g, n);else return;\n !b.eventsAdded && z && (t(z, function (a, c) {\n A.on(c, function (a) {\n z[c].apply(b, [a]);\n });\n }), b.eventsAdded = !0);\n (S || !A.d) && u && u.length ? A.attr({\n d: u\n }) : A && (u ? (A.show(), A.animate({\n d: u\n })) : A.d && (A.hide(), a && (b.label = a = a.destroy())));\n k && (v(k.text) || v(k.formatter)) && u && u.length && 0 < d.width && 0 < d.height && !u.isFlat ? (k = y({\n align: e && L && \"center\",\n x: e ? !L && 4 : 10,\n verticalAlign: !e && L && \"middle\",\n y: e ? L ? 16 : 10 : L ? 6 : -4,\n rotation: e && !L && 90\n }, k), this.renderLabel(k, u, L, w)) : a && a.hide();\n return b;\n };\n\n d.prototype.renderLabel = function (b, d, e, f) {\n var h = this.axis,\n p = h.chart.renderer,\n r = this.label;\n r || (this.label = r = p.text(this.getLabelText(b), 0, 0, b.useHTML).attr({\n align: b.textAlign || b.align,\n rotation: b.rotation,\n \"class\": \"highcharts-plot-\" + (e ? \"band\" : \"line\") + \"-label \" + (b.className || \"\"),\n zIndex: f\n }).add(), h.chart.styledMode || r.css(y({\n textOverflow: \"ellipsis\"\n }, b.style)));\n f = d.xBounds || [d[0][1], d[1][1], e ? d[2][1] : d[0][1]];\n d = d.yBounds || [d[0][2], d[1][2], e ? d[2][2] : d[0][2]];\n e = C(f);\n p = C(d);\n r.align(b, !1, {\n x: e,\n y: p,\n width: l(f) - e,\n height: l(d) - p\n });\n r.alignValue && \"left\" !== r.alignValue || r.css({\n width: (90 === r.rotation ? h.height - (r.alignAttr.y - h.top) : h.width - (r.alignAttr.x - h.left)) + \"px\"\n });\n r.show(!0);\n };\n\n d.prototype.getLabelText = function (b) {\n return v(b.formatter) ? b.formatter.call(this) : b.text;\n };\n\n d.prototype.destroy = function () {\n G(this.axis.plotLinesAndBands, this);\n delete this.axis;\n E(this);\n };\n\n return d;\n }();\n\n \"\";\n \"\";\n return e;\n });\n K(l, \"Core/Tooltip.js\", [l[\"Core/FormatUtilities.js\"], l[\"Core/Globals.js\"], l[\"Core/Renderer/RendererUtilities.js\"], l[\"Core/Renderer/RendererRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v) {\n var E = f.format,\n G = e.doc,\n B = l.distribute,\n y = v.addEvent,\n t = v.clamp,\n h = v.css,\n d = v.defined,\n b = v.discardElement,\n p = v.extend,\n q = v.fireEvent,\n r = v.isArray,\n n = v.isNumber,\n J = v.isString,\n w = v.merge,\n z = v.pick,\n x = v.splat,\n m = v.syncTimeout;\n\n f = function () {\n function k(a, g) {\n this.allowShared = !0;\n this.container = void 0;\n this.crosshairs = [];\n this.distance = 0;\n this.isHidden = !0;\n this.isSticky = !1;\n this.now = {};\n this.options = {};\n this.outside = !1;\n this.chart = a;\n this.init(a, g);\n }\n\n k.prototype.applyFilter = function () {\n var a = this.chart;\n a.renderer.definition({\n tagName: \"filter\",\n attributes: {\n id: \"drop-shadow-\" + a.index,\n opacity: .5\n },\n children: [{\n tagName: \"feGaussianBlur\",\n attributes: {\n \"in\": \"SourceAlpha\",\n stdDeviation: 1\n }\n }, {\n tagName: \"feOffset\",\n attributes: {\n dx: 1,\n dy: 1\n }\n }, {\n tagName: \"feComponentTransfer\",\n children: [{\n tagName: \"feFuncA\",\n attributes: {\n type: \"linear\",\n slope: .3\n }\n }]\n }, {\n tagName: \"feMerge\",\n children: [{\n tagName: \"feMergeNode\"\n }, {\n tagName: \"feMergeNode\",\n attributes: {\n \"in\": \"SourceGraphic\"\n }\n }]\n }]\n });\n };\n\n k.prototype.bodyFormatter = function (a) {\n return a.map(function (a) {\n var c = a.series.tooltipOptions;\n return (c[(a.point.formatPrefix || \"point\") + \"Formatter\"] || a.point.tooltipFormatter).call(a.point, c[(a.point.formatPrefix || \"point\") + \"Format\"] || \"\");\n });\n };\n\n k.prototype.cleanSplit = function (a) {\n this.chart.series.forEach(function (g) {\n var c = g && g.tt;\n c && (!c.isActive || a ? g.tt = c.destroy() : c.isActive = !1);\n });\n };\n\n k.prototype.defaultFormatter = function (a) {\n var g = this.points || x(this);\n var c = [a.tooltipFooterHeaderFormatter(g[0])];\n c = c.concat(a.bodyFormatter(g));\n c.push(a.tooltipFooterHeaderFormatter(g[0], !0));\n return c;\n };\n\n k.prototype.destroy = function () {\n this.label && (this.label = this.label.destroy());\n this.split && this.tt && (this.cleanSplit(!0), this.tt = this.tt.destroy());\n this.renderer && (this.renderer = this.renderer.destroy(), b(this.container));\n v.clearTimeout(this.hideTimer);\n v.clearTimeout(this.tooltipTimeout);\n };\n\n k.prototype.getAnchor = function (a, g) {\n var c = this.chart,\n b = c.pointer,\n d = c.inverted,\n k = c.plotTop,\n e = c.plotLeft,\n m,\n f,\n h = 0,\n p = 0;\n a = x(a);\n this.followPointer && g ? (\"undefined\" === typeof g.chartX && (g = b.normalize(g)), b = [g.chartX - e, g.chartY - k]) : a[0].tooltipPos ? b = a[0].tooltipPos : (a.forEach(function (a) {\n m = a.series.yAxis;\n f = a.series.xAxis;\n h += a.plotX || 0;\n p += a.plotLow ? (a.plotLow + (a.plotHigh || 0)) / 2 : a.plotY || 0;\n f && m && (d ? (h += k + c.plotHeight - f.len - f.pos, p += e + c.plotWidth - m.len - m.pos) : (h += f.pos - e, p += m.pos - k));\n }), h /= a.length, p /= a.length, b = [d ? c.plotWidth - p : h, d ? c.plotHeight - h : p], this.shared && 1 < a.length && g && (d ? b[0] = g.chartX - e : b[1] = g.chartY - k));\n return b.map(Math.round);\n };\n\n k.prototype.getLabel = function () {\n var a = this,\n g = this.chart.styledMode,\n c = this.options,\n b = this.split && this.allowShared,\n k = \"tooltip\" + (d(c.className) ? \" \" + c.className : \"\"),\n m = c.style.pointerEvents || (!this.followPointer && c.stickOnContact ? \"auto\" : \"none\"),\n f = function () {\n a.inContact = !0;\n },\n p = function (c) {\n var g = a.chart.hoverSeries;\n a.inContact = a.shouldStickOnContact() && a.chart.pointer.inClass(c.relatedTarget, \"highcharts-tooltip\");\n if (!a.inContact && g && g.onMouseOut) g.onMouseOut();\n },\n n,\n r = this.chart.renderer;\n\n if (a.label) {\n var q = !a.label.hasClass(\"highcharts-label\");\n (b && !q || !b && q) && a.destroy();\n }\n\n if (!this.label) {\n if (this.outside) {\n q = this.chart.options.chart.style;\n var l = C.getRendererType();\n this.container = n = e.doc.createElement(\"div\");\n n.className = \"highcharts-tooltip-container\";\n h(n, {\n position: \"absolute\",\n top: \"1px\",\n pointerEvents: m,\n zIndex: Math.max(this.options.style.zIndex || 0, (q && q.zIndex || 0) + 3)\n });\n y(n, \"mouseenter\", f);\n y(n, \"mouseleave\", p);\n e.doc.body.appendChild(n);\n this.renderer = r = new l(n, 0, 0, q, void 0, void 0, r.styledMode);\n }\n\n b ? this.label = r.g(k) : (this.label = r.label(\"\", 0, 0, c.shape, void 0, void 0, c.useHTML, void 0, k).attr({\n padding: c.padding,\n r: c.borderRadius\n }), g || this.label.attr({\n fill: c.backgroundColor,\n \"stroke-width\": c.borderWidth\n }).css(c.style).css({\n pointerEvents: m\n }).shadow(c.shadow));\n g && c.shadow && (this.applyFilter(), this.label.attr({\n filter: \"url(#drop-shadow-\" + this.chart.index + \")\"\n }));\n\n if (a.outside && !a.split) {\n var t = this.label,\n x = t.xSetter,\n z = t.ySetter;\n\n t.xSetter = function (c) {\n x.call(t, a.distance);\n n.style.left = c + \"px\";\n };\n\n t.ySetter = function (c) {\n z.call(t, a.distance);\n n.style.top = c + \"px\";\n };\n }\n\n this.label.on(\"mouseenter\", f).on(\"mouseleave\", p).attr({\n zIndex: 8\n }).add();\n }\n\n return this.label;\n };\n\n k.prototype.getPosition = function (a, g, c) {\n var b = this.chart,\n d = this.distance,\n k = {},\n e = b.inverted && c.h || 0,\n m = this.outside,\n f = m ? G.documentElement.clientWidth - 2 * d : b.chartWidth,\n h = m ? Math.max(G.body.scrollHeight, G.documentElement.scrollHeight, G.body.offsetHeight, G.documentElement.offsetHeight, G.documentElement.clientHeight) : b.chartHeight,\n p = b.pointer.getChartPosition(),\n n = function (k) {\n var e = \"x\" === k;\n return [k, e ? f : h, e ? a : g].concat(m ? [e ? a * p.scaleX : g * p.scaleY, e ? p.left - d + (c.plotX + b.plotLeft) * p.scaleX : p.top - d + (c.plotY + b.plotTop) * p.scaleY, 0, e ? f : h] : [e ? a : g, e ? c.plotX + b.plotLeft : c.plotY + b.plotTop, e ? b.plotLeft : b.plotTop, e ? b.plotLeft + b.plotWidth : b.plotTop + b.plotHeight]);\n },\n r = n(\"y\"),\n q = n(\"x\"),\n l;\n\n n = !!c.negative;\n !b.polar && b.hoverSeries && b.hoverSeries.yAxis && b.hoverSeries.yAxis.reversed && (n = !n);\n\n var t = !this.followPointer && z(c.ttBelow, !b.inverted === n),\n x = function (a, c, g, b, f, h, u) {\n var n = m ? \"y\" === a ? d * p.scaleY : d * p.scaleX : d,\n A = (g - b) / 2,\n D = b < f - d,\n F = f + d + b < c,\n r = f - n - g + A;\n f = f + n - A;\n if (t && F) k[a] = f;else if (!t && D) k[a] = r;else if (D) k[a] = Math.min(u - b, 0 > r - e ? r : r - e);else if (F) k[a] = Math.max(h, f + e + g > c ? f : f + e);else return !1;\n },\n w = function (a, c, g, b, e) {\n var m;\n e < d || e > c - d ? m = !1 : k[a] = e < g / 2 ? 1 : e > c - b / 2 ? c - b - 2 : e - g / 2;\n return m;\n },\n F = function (a) {\n var c = r;\n r = q;\n q = c;\n l = a;\n },\n T = function () {\n !1 !== x.apply(0, r) ? !1 !== w.apply(0, q) || l || (F(!0), T()) : l ? k.x = k.y = 0 : (F(!0), T());\n };\n\n (b.inverted || 1 < this.len) && F();\n T();\n return k;\n };\n\n k.prototype.hide = function (a) {\n var g = this;\n v.clearTimeout(this.hideTimer);\n a = z(a, this.options.hideDelay);\n this.isHidden || (this.hideTimer = m(function () {\n g.getLabel().fadeOut(a ? void 0 : a);\n g.isHidden = !0;\n }, a));\n };\n\n k.prototype.init = function (a, g) {\n this.chart = a;\n this.options = g;\n this.crosshairs = [];\n this.now = {\n x: 0,\n y: 0\n };\n this.isHidden = !0;\n this.split = g.split && !a.inverted && !a.polar;\n this.shared = g.shared || this.split;\n this.outside = z(g.outside, !(!a.scrollablePixelsX && !a.scrollablePixelsY));\n };\n\n k.prototype.shouldStickOnContact = function () {\n return !(this.followPointer || !this.options.stickOnContact);\n };\n\n k.prototype.isStickyOnContact = function () {\n return !(!this.shouldStickOnContact() || !this.inContact);\n };\n\n k.prototype.move = function (a, g, c, b) {\n var d = this,\n k = d.now,\n e = !1 !== d.options.animation && !d.isHidden && (1 < Math.abs(a - k.x) || 1 < Math.abs(g - k.y)),\n m = d.followPointer || 1 < d.len;\n p(k, {\n x: e ? (2 * k.x + a) / 3 : a,\n y: e ? (k.y + g) / 2 : g,\n anchorX: m ? void 0 : e ? (2 * k.anchorX + c) / 3 : c,\n anchorY: m ? void 0 : e ? (k.anchorY + b) / 2 : b\n });\n d.getLabel().attr(k);\n d.drawTracker();\n e && (v.clearTimeout(this.tooltipTimeout), this.tooltipTimeout = setTimeout(function () {\n d && d.move(a, g, c, b);\n }, 32));\n };\n\n k.prototype.refresh = function (a, g) {\n var c = this.chart,\n b = this.options,\n d = x(a),\n k = d[0],\n e = [],\n m = b.formatter || this.defaultFormatter,\n f = this.shared,\n h = c.styledMode,\n p = {};\n\n if (b.enabled && k.series) {\n v.clearTimeout(this.hideTimer);\n this.allowShared = !(!r(a) && a.series && a.series.noSharedTooltip);\n this.followPointer = !this.split && k.series.tooltipOptions.followPointer;\n a = this.getAnchor(a, g);\n var n = a[0],\n l = a[1];\n f && this.allowShared ? (c.pointer.applyInactiveState(d), d.forEach(function (a) {\n a.setState(\"hover\");\n e.push(a.getLabelConfig());\n }), p = {\n x: k.category,\n y: k.y\n }, p.points = e) : p = k.getLabelConfig();\n this.len = e.length;\n m = m.call(p, this);\n f = k.series;\n this.distance = z(f.tooltipOptions.distance, 16);\n if (!1 === m) this.hide();else {\n if (this.split && this.allowShared) this.renderSplit(m, d);else {\n var t = n,\n w = l;\n g && c.pointer.isDirectTouch && (t = g.chartX - c.plotLeft, w = g.chartY - c.plotTop);\n if (c.polar || !1 === f.options.clip || d.some(function (a) {\n return a.series.shouldShowTooltip(t, w);\n })) g = this.getLabel(), b.style.width && !h || g.css({\n width: this.chart.spacingBox.width + \"px\"\n }), g.attr({\n text: m && m.join ? m.join(\"\") : m\n }), g.removeClass(/highcharts-color-[\\d]+/g).addClass(\"highcharts-color-\" + z(k.colorIndex, f.colorIndex)), h || g.attr({\n stroke: b.borderColor || k.color || f.color || \"#666666\"\n }), this.updatePosition({\n plotX: n,\n plotY: l,\n negative: k.negative,\n ttBelow: k.ttBelow,\n h: a[2] || 0\n });else {\n this.hide();\n return;\n }\n }\n this.isHidden && this.label && this.label.attr({\n opacity: 1\n }).show();\n this.isHidden = !1;\n }\n q(this, \"refresh\");\n }\n };\n\n k.prototype.renderSplit = function (a, g) {\n function c(a, c, g, d, k) {\n void 0 === k && (k = !0);\n g ? (c = X ? 0 : E, a = t(a - d / 2, N.left, N.right - d - (b.outside ? Q : 0))) : (c -= Z, a = k ? a - d - v : a + v, a = t(a, k ? a : N.left, N.right));\n return {\n x: a,\n y: c\n };\n }\n\n var b = this,\n d = b.chart,\n k = b.chart,\n e = k.chartWidth,\n m = k.chartHeight,\n f = k.plotHeight,\n h = k.plotLeft,\n n = k.plotTop,\n r = k.pointer,\n q = k.scrollablePixelsY;\n q = void 0 === q ? 0 : q;\n var l = k.scrollablePixelsX,\n x = k.scrollingContainer;\n x = void 0 === x ? {\n scrollLeft: 0,\n scrollTop: 0\n } : x;\n var w = x.scrollLeft;\n x = x.scrollTop;\n var y = k.styledMode,\n v = b.distance,\n F = b.options,\n T = b.options.positioner,\n N = b.outside && \"number\" !== typeof l ? G.documentElement.getBoundingClientRect() : {\n left: w,\n right: w + e,\n top: x,\n bottom: x + m\n },\n V = b.getLabel(),\n W = this.renderer || d.renderer,\n X = !(!d.xAxis[0] || !d.xAxis[0].opposite);\n d = r.getChartPosition();\n var Q = d.left;\n d = d.top;\n var Z = n + x,\n ba = 0,\n E = f - q;\n J(a) && (a = [!1, a]);\n a = a.slice(0, g.length + 1).reduce(function (a, d, k) {\n if (!1 !== d && \"\" !== d) {\n k = g[k - 1] || {\n isHeader: !0,\n plotX: g[0].plotX,\n plotY: f,\n series: {}\n };\n var e = k.isHeader,\n m = e ? b : k.series;\n d = d.toString();\n var u = m.tt,\n p = k.isHeader;\n var A = k.series;\n var D = \"highcharts-color-\" + z(k.colorIndex, A.colorIndex, \"none\");\n u || (u = {\n padding: F.padding,\n r: F.borderRadius\n }, y || (u.fill = F.backgroundColor, u[\"stroke-width\"] = F.borderWidth), u = W.label(\"\", 0, 0, F[p ? \"headerShape\" : \"shape\"], void 0, void 0, F.useHTML).addClass((p ? \"highcharts-tooltip-header \" : \"\") + \"highcharts-tooltip-box \" + D).attr(u).add(V));\n u.isActive = !0;\n u.attr({\n text: d\n });\n y || u.css(F.style).shadow(F.shadow).attr({\n stroke: F.borderColor || k.color || A.color || \"#333333\"\n });\n m = m.tt = u;\n p = m.getBBox();\n d = p.width + m.strokeWidth();\n e && (ba = p.height, E += ba, X && (Z -= ba));\n A = k.plotX;\n A = void 0 === A ? 0 : A;\n D = k.plotY;\n D = void 0 === D ? 0 : D;\n u = k.series;\n\n if (k.isHeader) {\n A = h + A;\n var r = n + f / 2;\n } else {\n var q = u.xAxis,\n l = u.yAxis;\n A = q.pos + t(A, -v, q.len + v);\n u.shouldShowTooltip(0, l.pos - n + D, {\n ignoreX: !0\n }) && (r = l.pos + D);\n }\n\n A = t(A, N.left - v, N.right + v);\n \"number\" === typeof r ? (p = p.height + 1, D = T ? T.call(b, d, p, k) : c(A, r, e, d), a.push({\n align: T ? 0 : void 0,\n anchorX: A,\n anchorY: r,\n boxWidth: d,\n point: k,\n rank: z(D.rank, e ? 1 : 0),\n size: p,\n target: D.y,\n tt: m,\n x: D.x\n })) : m.isActive = !1;\n }\n\n return a;\n }, []);\n !T && a.some(function (a) {\n var c = (b.outside ? Q : 0) + a.anchorX;\n return c < N.left && c + a.boxWidth < N.right ? !0 : c < Q - N.left + a.boxWidth && N.right - c > c;\n }) && (a = a.map(function (a) {\n var b = c(a.anchorX, a.anchorY, a.point.isHeader, a.boxWidth, !1);\n return p(a, {\n target: b.y,\n x: b.x\n });\n }));\n b.cleanSplit();\n B(a, E);\n var C = Q,\n P = Q;\n a.forEach(function (a) {\n var c = a.x,\n g = a.boxWidth;\n a = a.isHeader;\n a || (b.outside && Q + c < C && (C = Q + c), !a && b.outside && C + g > P && (P = Q + c));\n });\n a.forEach(function (a) {\n var c = a.x,\n g = a.anchorX,\n d = a.pos,\n k = a.point.isHeader;\n d = {\n visibility: \"undefined\" === typeof d ? \"hidden\" : \"inherit\",\n x: c,\n y: d + Z,\n anchorX: g,\n anchorY: a.anchorY\n };\n\n if (b.outside && c < g) {\n var e = Q - C;\n 0 < e && (k || (d.x = c + e, d.anchorX = g + e), k && (d.x = (P - C) / 2, d.anchorX = g + e));\n }\n\n a.tt.attr(d);\n });\n a = b.container;\n q = b.renderer;\n b.outside && a && q && (k = V.getBBox(), q.setSize(k.width + k.x, k.height + k.y, !1), a.style.left = C + \"px\", a.style.top = d + \"px\");\n };\n\n k.prototype.drawTracker = function () {\n if (this.followPointer || !this.options.stickOnContact) this.tracker && this.tracker.destroy();else {\n var a = this.chart,\n b = this.label,\n c = this.shared ? a.hoverPoints : a.hoverPoint;\n\n if (b && c) {\n var d = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n c = this.getAnchor(c);\n var k = b.getBBox();\n c[0] += a.plotLeft - b.translateX;\n c[1] += a.plotTop - b.translateY;\n d.x = Math.min(0, c[0]);\n d.y = Math.min(0, c[1]);\n d.width = 0 > c[0] ? Math.max(Math.abs(c[0]), k.width - c[0]) : Math.max(Math.abs(c[0]), k.width);\n d.height = 0 > c[1] ? Math.max(Math.abs(c[1]), k.height - Math.abs(c[1])) : Math.max(Math.abs(c[1]), k.height);\n this.tracker ? this.tracker.attr(d) : (this.tracker = b.renderer.rect(d).addClass(\"highcharts-tracker\").add(b), a.styledMode || this.tracker.attr({\n fill: \"rgba(0,0,0,0)\"\n }));\n }\n }\n };\n\n k.prototype.styledModeFormat = function (a) {\n return a.replace('style=\"font-size: 10px\"', 'class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g, 'class=\"highcharts-color-{$1.colorIndex}\"');\n };\n\n k.prototype.tooltipFooterHeaderFormatter = function (a, b) {\n var c = a.series,\n g = c.tooltipOptions,\n d = c.xAxis,\n k = d && d.dateTime;\n d = {\n isFooter: b,\n labelConfig: a\n };\n var e = g.xDateFormat,\n m = g[b ? \"footerFormat\" : \"headerFormat\"];\n q(this, \"headerFormatter\", d, function (b) {\n k && !e && n(a.key) && (e = k.getXDateFormat(a.key, g.dateTimeLabelFormats));\n k && e && (a.point && a.point.tooltipDateKeys || [\"key\"]).forEach(function (a) {\n m = m.replace(\"{point.\" + a + \"}\", \"{point.\" + a + \":\" + e + \"}\");\n });\n c.chart.styledMode && (m = this.styledModeFormat(m));\n b.text = E(m, {\n point: a,\n series: c\n }, this.chart);\n });\n return d.text;\n };\n\n k.prototype.update = function (a) {\n this.destroy();\n w(!0, this.chart.options.tooltip.userOptions, a);\n this.init(this.chart, w(!0, this.options, a));\n };\n\n k.prototype.updatePosition = function (a) {\n var b = this.chart,\n c = this.options,\n d = b.pointer,\n k = this.getLabel();\n d = d.getChartPosition();\n var e = (c.positioner || this.getPosition).call(this, k.width, k.height, a),\n m = a.plotX + b.plotLeft;\n a = a.plotY + b.plotTop;\n\n if (this.outside) {\n c = c.borderWidth + 2 * this.distance;\n this.renderer.setSize(k.width + c, k.height + c, !1);\n if (1 !== d.scaleX || 1 !== d.scaleY) h(this.container, {\n transform: \"scale(\".concat(d.scaleX, \", \").concat(d.scaleY, \")\")\n }), m *= d.scaleX, a *= d.scaleY;\n m += d.left - e.x;\n a += d.top - e.y;\n }\n\n this.move(Math.round(e.x), Math.round(e.y || 0), m, a);\n };\n\n return k;\n }();\n\n \"\";\n return f;\n });\n K(l, \"Core/Series/Point.js\", [l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v) {\n var E = e.animObject,\n G = l.defaultOptions,\n B = C.format,\n y = v.addEvent,\n t = v.defined,\n h = v.erase,\n d = v.extend,\n b = v.fireEvent,\n p = v.getNestedProperty,\n q = v.isArray,\n r = v.isFunction,\n n = v.isNumber,\n J = v.isObject,\n w = v.merge,\n z = v.objectEach,\n x = v.pick,\n m = v.syncTimeout,\n k = v.removeEvent,\n a = v.uniqueKey;\n\n e = function () {\n function g() {\n this.colorIndex = this.category = void 0;\n this.formatPrefix = \"point\";\n this.id = void 0;\n this.isNull = !1;\n this.percentage = this.options = this.name = void 0;\n this.selected = !1;\n this.total = this.shapeArgs = this.series = void 0;\n this.visible = !0;\n this.x = void 0;\n }\n\n g.prototype.animateBeforeDestroy = function () {\n var a = this,\n b = {\n x: a.startXPos,\n opacity: 0\n },\n g = a.getGraphicalProps();\n g.singular.forEach(function (c) {\n a[c] = a[c].animate(\"dataLabel\" === c ? {\n x: a[c].startXPos,\n y: a[c].startYPos,\n opacity: 0\n } : b);\n });\n g.plural.forEach(function (c) {\n a[c].forEach(function (c) {\n c.element && c.animate(d({\n x: a.startXPos\n }, c.startYPos ? {\n x: c.startXPos,\n y: c.startYPos\n } : {}));\n });\n });\n };\n\n g.prototype.applyOptions = function (a, b) {\n var c = this.series,\n k = c.options.pointValKey || c.pointValKey;\n a = g.prototype.optionsToObject.call(this, a);\n d(this, a);\n this.options = this.options ? d(this.options, a) : a;\n a.group && delete this.group;\n a.dataLabels && delete this.dataLabels;\n k && (this.y = g.prototype.getNestedProperty.call(this, k));\n this.formatPrefix = (this.isNull = x(this.isValid && !this.isValid(), null === this.x || !n(this.y))) ? \"null\" : \"point\";\n this.selected && (this.state = \"select\");\n \"name\" in this && \"undefined\" === typeof b && c.xAxis && c.xAxis.hasNames && (this.x = c.xAxis.nameToX(this));\n \"undefined\" === typeof this.x && c ? this.x = \"undefined\" === typeof b ? c.autoIncrement() : b : n(a.x) && c.options.relativeXValue && (this.x = c.autoIncrement(a.x));\n return this;\n };\n\n g.prototype.destroy = function () {\n function a() {\n if (b.graphic || b.dataLabel || b.dataLabels) k(b), b.destroyElements();\n\n for (p in b) b[p] = null;\n }\n\n var b = this,\n g = b.series,\n d = g.chart;\n g = g.options.dataSorting;\n var e = d.hoverPoints,\n f = E(b.series.chart.renderer.globalAnimation),\n p;\n b.legendItem && d.legend.destroyItem(b);\n e && (b.setState(), h(e, b), e.length || (d.hoverPoints = null));\n if (b === d.hoverPoint) b.onMouseOut();\n g && g.enabled ? (this.animateBeforeDestroy(), m(a, f.duration)) : a();\n d.pointCount--;\n };\n\n g.prototype.destroyElements = function (a) {\n var c = this;\n a = c.getGraphicalProps(a);\n a.singular.forEach(function (a) {\n c[a] = c[a].destroy();\n });\n a.plural.forEach(function (a) {\n c[a].forEach(function (a) {\n a.element && a.destroy();\n });\n delete c[a];\n });\n };\n\n g.prototype.firePointEvent = function (a, g, d) {\n var c = this,\n k = this.series.options;\n (k.point.events[a] || c.options && c.options.events && c.options.events[a]) && c.importEvents();\n \"click\" === a && k.allowPointSelect && (d = function (a) {\n c.select && c.select(null, a.ctrlKey || a.metaKey || a.shiftKey);\n });\n b(c, a, g, d);\n };\n\n g.prototype.getClassName = function () {\n return \"highcharts-point\" + (this.selected ? \" highcharts-point-select\" : \"\") + (this.negative ? \" highcharts-negative\" : \"\") + (this.isNull ? \" highcharts-null-point\" : \"\") + (\"undefined\" !== typeof this.colorIndex ? \" highcharts-color-\" + this.colorIndex : \"\") + (this.options.className ? \" \" + this.options.className : \"\") + (this.zone && this.zone.className ? \" \" + this.zone.className.replace(\"highcharts-negative\", \"\") : \"\");\n };\n\n g.prototype.getGraphicalProps = function (a) {\n var c = this,\n b = [],\n g = {\n singular: [],\n plural: []\n },\n d;\n a = a || {\n graphic: 1,\n dataLabel: 1\n };\n a.graphic && b.push(\"graphic\", \"upperGraphic\", \"shadowGroup\");\n a.dataLabel && b.push(\"dataLabel\", \"dataLabelUpper\", \"connector\");\n\n for (d = b.length; d--;) {\n var k = b[d];\n c[k] && g.singular.push(k);\n }\n\n [\"dataLabel\", \"connector\"].forEach(function (b) {\n var d = b + \"s\";\n a[b] && c[d] && g.plural.push(d);\n });\n return g;\n };\n\n g.prototype.getLabelConfig = function () {\n return {\n x: this.category,\n y: this.y,\n color: this.color,\n colorIndex: this.colorIndex,\n key: this.name || this.category,\n series: this.series,\n point: this,\n percentage: this.percentage,\n total: this.total || this.stackTotal\n };\n };\n\n g.prototype.getNestedProperty = function (a) {\n if (a) return 0 === a.indexOf(\"custom.\") ? p(a, this.options) : this[a];\n };\n\n g.prototype.getZone = function () {\n var a = this.series,\n b = a.zones;\n a = a.zoneAxis || \"y\";\n var g,\n d = 0;\n\n for (g = b[d]; this[a] >= g.value;) g = b[++d];\n\n this.nonZonedColor || (this.nonZonedColor = this.color);\n this.color = g && g.color && !this.options.color ? g.color : this.nonZonedColor;\n return g;\n };\n\n g.prototype.hasNewShapeType = function () {\n return (this.graphic && (this.graphic.symbolName || this.graphic.element.nodeName)) !== this.shapeType;\n };\n\n g.prototype.init = function (c, g, d) {\n this.series = c;\n this.applyOptions(g, d);\n this.id = t(this.id) ? this.id : a();\n this.resolveColor();\n c.chart.pointCount++;\n b(this, \"afterInit\");\n return this;\n };\n\n g.prototype.optionsToObject = function (a) {\n var c = this.series,\n b = c.options.keys,\n d = b || c.pointArrayMap || [\"y\"],\n k = d.length,\n e = {},\n m = 0,\n f = 0;\n if (n(a) || null === a) e[d[0]] = a;else if (q(a)) for (!b && a.length > k && (c = typeof a[0], \"string\" === c ? e.name = a[0] : \"number\" === c && (e.x = a[0]), m++); f < k;) b && \"undefined\" === typeof a[m] || (0 < d[f].indexOf(\".\") ? g.prototype.setNestedProperty(e, a[m], d[f]) : e[d[f]] = a[m]), m++, f++;else \"object\" === typeof a && (e = a, a.dataLabels && (c._hasPointLabels = !0), a.marker && (c._hasPointMarkers = !0));\n return e;\n };\n\n g.prototype.resolveColor = function () {\n var a = this.series,\n b = a.chart.styledMode;\n var g = a.chart.options.chart.colorCount;\n delete this.nonZonedColor;\n\n if (a.options.colorByPoint) {\n if (!b) {\n g = a.options.colors || a.chart.options.colors;\n var d = g[a.colorCounter];\n g = g.length;\n }\n\n b = a.colorCounter;\n a.colorCounter++;\n a.colorCounter === g && (a.colorCounter = 0);\n } else b || (d = a.color), b = a.colorIndex;\n\n this.colorIndex = x(this.options.colorIndex, b);\n this.color = x(this.options.color, d);\n };\n\n g.prototype.setNestedProperty = function (a, b, g) {\n g.split(\".\").reduce(function (a, c, g, d) {\n a[c] = d.length - 1 === g ? b : J(a[c], !0) ? a[c] : {};\n return a[c];\n }, a);\n return a;\n };\n\n g.prototype.tooltipFormatter = function (a) {\n var c = this.series,\n b = c.tooltipOptions,\n g = x(b.valueDecimals, \"\"),\n d = b.valuePrefix || \"\",\n k = b.valueSuffix || \"\";\n c.chart.styledMode && (a = c.chart.tooltip.styledModeFormat(a));\n (c.pointArrayMap || [\"y\"]).forEach(function (c) {\n c = \"{point.\" + c;\n if (d || k) a = a.replace(RegExp(c + \"}\", \"g\"), d + c + \"}\" + k);\n a = a.replace(RegExp(c + \"}\", \"g\"), c + \":,.\" + g + \"f}\");\n });\n return B(a, {\n point: this,\n series: this.series\n }, c.chart);\n };\n\n g.prototype.update = function (a, b, g, d) {\n function c() {\n k.applyOptions(a);\n var c = m && k.hasDummyGraphic;\n c = null === k.y ? !c : c;\n m && c && (k.graphic = m.destroy(), delete k.hasDummyGraphic);\n J(a, !0) && (m && m.element && a && a.marker && \"undefined\" !== typeof a.marker.symbol && (k.graphic = m.destroy()), a && a.dataLabels && k.dataLabel && (k.dataLabel = k.dataLabel.destroy()), k.connector && (k.connector = k.connector.destroy()));\n p = k.index;\n e.updateParallelArrays(k, p);\n h.data[p] = J(h.data[p], !0) || J(a, !0) ? k.options : x(a, h.data[p]);\n e.isDirty = e.isDirtyData = !0;\n !e.fixedBox && e.hasCartesianSeries && (f.isDirtyBox = !0);\n \"point\" === h.legendType && (f.isDirtyLegend = !0);\n b && f.redraw(g);\n }\n\n var k = this,\n e = k.series,\n m = k.graphic,\n f = e.chart,\n h = e.options,\n p;\n b = x(b, !0);\n !1 === d ? c() : k.firePointEvent(\"update\", {\n options: a\n }, c);\n };\n\n g.prototype.remove = function (a, b) {\n this.series.removePoint(this.series.data.indexOf(this), a, b);\n };\n\n g.prototype.select = function (a, b) {\n var c = this,\n g = c.series,\n d = g.chart;\n this.selectedStaging = a = x(a, !c.selected);\n c.firePointEvent(a ? \"select\" : \"unselect\", {\n accumulate: b\n }, function () {\n c.selected = c.options.selected = a;\n g.options.data[g.data.indexOf(c)] = c.options;\n c.setState(a && \"select\");\n b || d.getSelectedPoints().forEach(function (a) {\n var b = a.series;\n a.selected && a !== c && (a.selected = a.options.selected = !1, b.options.data[b.data.indexOf(a)] = a.options, a.setState(d.hoverPoints && b.options.inactiveOtherPoints ? \"inactive\" : \"\"), a.firePointEvent(\"unselect\"));\n });\n });\n delete this.selectedStaging;\n };\n\n g.prototype.onMouseOver = function (a) {\n var c = this.series.chart,\n b = c.pointer;\n a = a ? b.normalize(a) : b.getChartCoordinatesFromPoint(this, c.inverted);\n b.runPointActions(a, this);\n };\n\n g.prototype.onMouseOut = function () {\n var a = this.series.chart;\n this.firePointEvent(\"mouseOut\");\n this.series.options.inactiveOtherPoints || (a.hoverPoints || []).forEach(function (a) {\n a.setState();\n });\n a.hoverPoints = a.hoverPoint = null;\n };\n\n g.prototype.importEvents = function () {\n if (!this.hasImportedEvents) {\n var a = this,\n b = w(a.series.options.point, a.options).events;\n a.events = b;\n z(b, function (c, b) {\n r(c) && y(a, b, c);\n });\n this.hasImportedEvents = !0;\n }\n };\n\n g.prototype.setState = function (a, g) {\n var c = this.series,\n k = this.state,\n e = c.options.states[a || \"normal\"] || {},\n m = G.plotOptions[c.type].marker && c.options.marker,\n h = m && !1 === m.enabled,\n p = m && m.states && m.states[a || \"normal\"] || {},\n r = !1 === p.enabled,\n q = this.marker || {},\n l = c.chart,\n D = m && c.markerAttribs,\n t = c.halo,\n z,\n w = c.stateMarkerGraphic;\n a = a || \"\";\n\n if (!(a === this.state && !g || this.selected && \"select\" !== a || !1 === e.enabled || a && (r || h && !1 === p.enabled) || a && q.states && q.states[a] && !1 === q.states[a].enabled)) {\n this.state = a;\n D && (z = c.markerAttribs(this, a));\n\n if (this.graphic && !this.hasDummyGraphic) {\n k && this.graphic.removeClass(\"highcharts-point-\" + k);\n a && this.graphic.addClass(\"highcharts-point-\" + a);\n\n if (!l.styledMode) {\n var y = c.pointAttribs(this, a);\n var F = x(l.options.chart.animation, e.animation);\n c.options.inactiveOtherPoints && n(y.opacity) && ((this.dataLabels || []).forEach(function (a) {\n a && a.animate({\n opacity: y.opacity\n }, F);\n }), this.connector && this.connector.animate({\n opacity: y.opacity\n }, F));\n this.graphic.animate(y, F);\n }\n\n z && this.graphic.animate(z, x(l.options.chart.animation, p.animation, m.animation));\n w && w.hide();\n } else {\n if (a && p) {\n k = q.symbol || c.symbol;\n w && w.currentSymbol !== k && (w = w.destroy());\n if (z) if (w) w[g ? \"animate\" : \"attr\"]({\n x: z.x,\n y: z.y\n });else k && (c.stateMarkerGraphic = w = l.renderer.symbol(k, z.x, z.y, z.width, z.height).add(c.markerGroup), w.currentSymbol = k);\n !l.styledMode && w && \"inactive\" !== this.state && w.attr(c.pointAttribs(this, a));\n }\n\n w && (w[a && this.isInside ? \"show\" : \"hide\"](), w.element.point = this, w.addClass(this.getClassName(), !0));\n }\n\n e = e.halo;\n z = (w = this.graphic || w) && w.visibility || \"inherit\";\n e && e.size && w && \"hidden\" !== z && !this.isCluster ? (t || (c.halo = t = l.renderer.path().add(w.parentGroup)), t.show()[g ? \"animate\" : \"attr\"]({\n d: this.haloPath(e.size)\n }), t.attr({\n \"class\": \"highcharts-halo highcharts-color-\" + x(this.colorIndex, c.colorIndex) + (this.className ? \" \" + this.className : \"\"),\n visibility: z,\n zIndex: -1\n }), t.point = this, l.styledMode || t.attr(d({\n fill: this.color || c.color,\n \"fill-opacity\": e.opacity\n }, f.filterUserAttributes(e.attributes || {})))) : t && t.point && t.point.haloPath && t.animate({\n d: t.point.haloPath(0)\n }, null, t.hide);\n b(this, \"afterSetState\", {\n state: a\n });\n }\n };\n\n g.prototype.haloPath = function (a) {\n return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX) - a, this.plotY - a, 2 * a, 2 * a);\n };\n\n return g;\n }();\n\n \"\";\n return e;\n });\n K(l, \"Core/Pointer.js\", [l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Tooltip.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C) {\n var v = f.parse,\n E = e.charts,\n G = e.noop,\n B = C.addEvent,\n y = C.attr,\n t = C.css,\n h = C.defined,\n d = C.extend,\n b = C.find,\n p = C.fireEvent,\n q = C.isNumber,\n r = C.isObject,\n n = C.objectEach,\n J = C.offset,\n w = C.pick,\n z = C.splat;\n\n f = function () {\n function f(b, d) {\n this.lastValidTouch = {};\n this.pinchDown = [];\n this.runChartClick = !1;\n this.eventsToUnbind = [];\n this.chart = b;\n this.hasDragged = !1;\n this.options = d;\n this.init(b, d);\n }\n\n f.prototype.applyInactiveState = function (b) {\n var d = [],\n a;\n (b || []).forEach(function (b) {\n a = b.series;\n d.push(a);\n a.linkedParent && d.push(a.linkedParent);\n a.linkedSeries && (d = d.concat(a.linkedSeries));\n a.navigatorSeries && d.push(a.navigatorSeries);\n });\n this.chart.series.forEach(function (a) {\n -1 === d.indexOf(a) ? a.setState(\"inactive\", !0) : a.options.inactiveOtherPoints && a.setAllPointsToState(\"inactive\");\n });\n };\n\n f.prototype.destroy = function () {\n var b = this;\n this.eventsToUnbind.forEach(function (b) {\n return b();\n });\n this.eventsToUnbind = [];\n e.chartCount || (f.unbindDocumentMouseUp && (f.unbindDocumentMouseUp = f.unbindDocumentMouseUp()), f.unbindDocumentTouchEnd && (f.unbindDocumentTouchEnd = f.unbindDocumentTouchEnd()));\n clearInterval(b.tooltipTimeout);\n n(b, function (d, a) {\n b[a] = void 0;\n });\n };\n\n f.prototype.drag = function (b) {\n var d = this.chart,\n a = d.options.chart,\n g = this.zoomHor,\n c = this.zoomVert,\n e = d.plotLeft,\n m = d.plotTop,\n f = d.plotWidth,\n h = d.plotHeight,\n p = this.mouseDownX || 0,\n n = this.mouseDownY || 0,\n q = r(a.panning) ? a.panning && a.panning.enabled : a.panning,\n l = a.panKey && b[a.panKey + \"Key\"],\n t = b.chartX,\n z = b.chartY,\n w = this.selectionMarker;\n if (!w || !w.touch) if (t < e ? t = e : t > e + f && (t = e + f), z < m ? z = m : z > m + h && (z = m + h), this.hasDragged = Math.sqrt(Math.pow(p - t, 2) + Math.pow(n - z, 2)), 10 < this.hasDragged) {\n var x = d.isInsidePlot(p - e, n - m, {\n visiblePlotOnly: !0\n });\n !d.hasCartesianSeries && !d.mapView || !this.zoomX && !this.zoomY || !x || l || w || (this.selectionMarker = w = d.renderer.rect(e, m, g ? 1 : f, c ? 1 : h, 0).attr({\n \"class\": \"highcharts-selection-marker\",\n zIndex: 7\n }).add(), d.styledMode || w.attr({\n fill: a.selectionMarkerFill || v(\"#335cad\").setOpacity(.25).get()\n }));\n w && g && (g = t - p, w.attr({\n width: Math.abs(g),\n x: (0 < g ? 0 : g) + p\n }));\n w && c && (g = z - n, w.attr({\n height: Math.abs(g),\n y: (0 < g ? 0 : g) + n\n }));\n x && !w && q && d.pan(b, a.panning);\n }\n };\n\n f.prototype.dragStart = function (b) {\n var d = this.chart;\n d.mouseIsDown = b.type;\n d.cancelClick = !1;\n d.mouseDownX = this.mouseDownX = b.chartX;\n d.mouseDownY = this.mouseDownY = b.chartY;\n };\n\n f.prototype.drop = function (b) {\n var k = this,\n a = this.chart,\n g = this.hasPinched;\n\n if (this.selectionMarker) {\n var c = this.selectionMarker,\n e = c.attr ? c.attr(\"x\") : c.x,\n m = c.attr ? c.attr(\"y\") : c.y,\n f = c.attr ? c.attr(\"width\") : c.width,\n n = c.attr ? c.attr(\"height\") : c.height,\n r = {\n originalEvent: b,\n xAxis: [],\n yAxis: [],\n x: e,\n y: m,\n width: f,\n height: n\n },\n l = !!a.mapView;\n if (this.hasDragged || g) a.axes.forEach(function (a) {\n if (a.zoomEnabled && h(a.min) && (g || k[{\n xAxis: \"zoomX\",\n yAxis: \"zoomY\"\n }[a.coll]]) && q(e) && q(m)) {\n var c = a.horiz,\n d = \"touchend\" === b.type ? a.minPixelPadding : 0,\n p = a.toValue((c ? e : m) + d);\n c = a.toValue((c ? e + f : m + n) - d);\n r[a.coll].push({\n axis: a,\n min: Math.min(p, c),\n max: Math.max(p, c)\n });\n l = !0;\n }\n }), l && p(a, \"selection\", r, function (c) {\n a.zoom(d(c, g ? {\n animation: !1\n } : null));\n });\n q(a.index) && (this.selectionMarker = this.selectionMarker.destroy());\n g && this.scaleGroups();\n }\n\n a && q(a.index) && (t(a.container, {\n cursor: a._cursor\n }), a.cancelClick = 10 < this.hasDragged, a.mouseIsDown = this.hasDragged = this.hasPinched = !1, this.pinchDown = []);\n };\n\n f.prototype.findNearestKDPoint = function (b, d, a) {\n var g = this.chart,\n c = g.hoverPoint;\n g = g.tooltip;\n if (c && g && g.isStickyOnContact()) return c;\n var k;\n b.forEach(function (c) {\n var b = !(c.noSharedTooltip && d) && 0 > c.options.findNearestPointBy.indexOf(\"y\");\n c = c.searchPoint(a, b);\n\n if ((b = r(c, !0) && c.series) && !(b = !r(k, !0))) {\n b = k.distX - c.distX;\n var g = k.dist - c.dist,\n e = (c.series.group && c.series.group.zIndex) - (k.series.group && k.series.group.zIndex);\n b = 0 < (0 !== b && d ? b : 0 !== g ? g : 0 !== e ? e : k.series.index > c.series.index ? -1 : 1);\n }\n\n b && (k = c);\n });\n return k;\n };\n\n f.prototype.getChartCoordinatesFromPoint = function (b, d) {\n var a = b.series,\n g = a.xAxis;\n a = a.yAxis;\n var c = b.shapeArgs;\n\n if (g && a) {\n var k = w(b.clientX, b.plotX),\n e = b.plotY || 0;\n b.isNode && c && q(c.x) && q(c.y) && (k = c.x, e = c.y);\n return d ? {\n chartX: a.len + a.pos - e,\n chartY: g.len + g.pos - k\n } : {\n chartX: k + g.pos,\n chartY: e + a.pos\n };\n }\n\n if (c && c.x && c.y) return {\n chartX: c.x,\n chartY: c.y\n };\n };\n\n f.prototype.getChartPosition = function () {\n if (this.chartPosition) return this.chartPosition;\n var b = this.chart.container,\n d = J(b);\n this.chartPosition = {\n left: d.left,\n top: d.top,\n scaleX: 1,\n scaleY: 1\n };\n var a = b.offsetWidth;\n b = b.offsetHeight;\n 2 < a && 2 < b && (this.chartPosition.scaleX = d.width / a, this.chartPosition.scaleY = d.height / b);\n return this.chartPosition;\n };\n\n f.prototype.getCoordinates = function (b) {\n var d = {\n xAxis: [],\n yAxis: []\n };\n this.chart.axes.forEach(function (a) {\n d[a.isXAxis ? \"xAxis\" : \"yAxis\"].push({\n axis: a,\n value: a.toValue(b[a.horiz ? \"chartX\" : \"chartY\"])\n });\n });\n return d;\n };\n\n f.prototype.getHoverData = function (d, k, a, g, c, e) {\n var f = [];\n g = !(!g || !d);\n var m = {\n chartX: e ? e.chartX : void 0,\n chartY: e ? e.chartY : void 0,\n shared: c\n };\n p(this, \"beforeGetHoverData\", m);\n var h = k && !k.stickyTracking ? [k] : a.filter(function (a) {\n return m.filter ? m.filter(a) : a.visible && !(!c && a.directTouch) && w(a.options.enableMouseTracking, !0) && a.stickyTracking;\n });\n var n = g || !e ? d : this.findNearestKDPoint(h, c, e);\n k = n && n.series;\n n && (c && !k.noSharedTooltip ? (h = a.filter(function (a) {\n return m.filter ? m.filter(a) : a.visible && !(!c && a.directTouch) && w(a.options.enableMouseTracking, !0) && !a.noSharedTooltip;\n }), h.forEach(function (a) {\n var c = b(a.points, function (a) {\n return a.x === n.x && !a.isNull;\n });\n r(c) && (a.chart.isBoosting && (c = a.getPoint(c)), f.push(c));\n })) : f.push(n));\n m = {\n hoverPoint: n\n };\n p(this, \"afterGetHoverData\", m);\n return {\n hoverPoint: m.hoverPoint,\n hoverSeries: k,\n hoverPoints: f\n };\n };\n\n f.prototype.getPointFromEvent = function (b) {\n b = b.target;\n\n for (var d; b && !d;) d = b.point, b = b.parentNode;\n\n return d;\n };\n\n f.prototype.onTrackerMouseOut = function (b) {\n b = b.relatedTarget || b.toElement;\n var d = this.chart.hoverSeries;\n this.isDirectTouch = !1;\n if (!(!d || !b || d.stickyTracking || this.inClass(b, \"highcharts-tooltip\") || this.inClass(b, \"highcharts-series-\" + d.index) && this.inClass(b, \"highcharts-tracker\"))) d.onMouseOut();\n };\n\n f.prototype.inClass = function (b, d) {\n for (var a; b;) {\n if (a = y(b, \"class\")) {\n if (-1 !== a.indexOf(d)) return !0;\n if (-1 !== a.indexOf(\"highcharts-container\")) return !1;\n }\n\n b = b.parentElement;\n }\n };\n\n f.prototype.init = function (b, d) {\n this.options = d;\n this.chart = b;\n this.runChartClick = !(!d.chart.events || !d.chart.events.click);\n this.pinchDown = [];\n this.lastValidTouch = {};\n l && (b.tooltip = new l(b, d.tooltip), this.followTouchMove = w(d.tooltip.followTouchMove, !0));\n this.setDOMEvents();\n };\n\n f.prototype.normalize = function (b, e) {\n var a = b.touches,\n g = a ? a.length ? a.item(0) : w(a.changedTouches, b.changedTouches)[0] : b;\n e || (e = this.getChartPosition());\n a = g.pageX - e.left;\n g = g.pageY - e.top;\n a /= e.scaleX;\n g /= e.scaleY;\n return d(b, {\n chartX: Math.round(a),\n chartY: Math.round(g)\n });\n };\n\n f.prototype.onContainerClick = function (b) {\n var e = this.chart,\n a = e.hoverPoint;\n b = this.normalize(b);\n var g = e.plotLeft,\n c = e.plotTop;\n e.cancelClick || (a && this.inClass(b.target, \"highcharts-tracker\") ? (p(a.series, \"click\", d(b, {\n point: a\n })), e.hoverPoint && a.firePointEvent(\"click\", b)) : (d(b, this.getCoordinates(b)), e.isInsidePlot(b.chartX - g, b.chartY - c, {\n visiblePlotOnly: !0\n }) && p(e, \"click\", b)));\n };\n\n f.prototype.onContainerMouseDown = function (b) {\n var d = 1 === ((b.buttons || b.button) & 1);\n b = this.normalize(b);\n if (e.isFirefox && 0 !== b.button) this.onContainerMouseMove(b);\n if (\"undefined\" === typeof b.button || d) this.zoomOption(b), d && b.preventDefault && b.preventDefault(), this.dragStart(b);\n };\n\n f.prototype.onContainerMouseLeave = function (b) {\n var d = E[w(f.hoverChartIndex, -1)],\n a = this.chart.tooltip;\n a && a.shouldStickOnContact() && this.inClass(b.relatedTarget, \"highcharts-tooltip-container\") || (b = this.normalize(b), d && (b.relatedTarget || b.toElement) && (d.pointer.reset(), d.pointer.chartPosition = void 0), a && !a.isHidden && this.reset());\n };\n\n f.prototype.onContainerMouseEnter = function (b) {\n delete this.chartPosition;\n };\n\n f.prototype.onContainerMouseMove = function (b) {\n var d = this.chart;\n b = this.normalize(b);\n this.setHoverChartIndex();\n b.preventDefault || (b.returnValue = !1);\n (\"mousedown\" === d.mouseIsDown || this.touchSelect(b)) && this.drag(b);\n d.openMenu || !this.inClass(b.target, \"highcharts-tracker\") && !d.isInsidePlot(b.chartX - d.plotLeft, b.chartY - d.plotTop, {\n visiblePlotOnly: !0\n }) || (this.inClass(b.target, \"highcharts-no-tooltip\") ? this.reset(!1, 0) : this.runPointActions(b));\n };\n\n f.prototype.onDocumentTouchEnd = function (b) {\n var d = E[w(f.hoverChartIndex, -1)];\n d && d.pointer.drop(b);\n };\n\n f.prototype.onContainerTouchMove = function (b) {\n if (this.touchSelect(b)) this.onContainerMouseMove(b);else this.touch(b);\n };\n\n f.prototype.onContainerTouchStart = function (b) {\n if (this.touchSelect(b)) this.onContainerMouseDown(b);else this.zoomOption(b), this.touch(b, !0);\n };\n\n f.prototype.onDocumentMouseMove = function (b) {\n var d = this.chart,\n a = this.chartPosition;\n b = this.normalize(b, a);\n var g = d.tooltip;\n !a || g && g.isStickyOnContact() || d.isInsidePlot(b.chartX - d.plotLeft, b.chartY - d.plotTop, {\n visiblePlotOnly: !0\n }) || this.inClass(b.target, \"highcharts-tracker\") || this.reset();\n };\n\n f.prototype.onDocumentMouseUp = function (b) {\n var d = E[w(f.hoverChartIndex, -1)];\n d && d.pointer.drop(b);\n };\n\n f.prototype.pinch = function (b) {\n var e = this,\n a = e.chart,\n g = e.pinchDown,\n c = b.touches || [],\n f = c.length,\n h = e.lastValidTouch,\n m = e.hasZoom,\n n = {},\n r = 1 === f && (e.inClass(b.target, \"highcharts-tracker\") && a.runTrackerClick || e.runChartClick),\n q = {},\n l = e.selectionMarker;\n 1 < f ? e.initiated = !0 : 1 === f && this.followTouchMove && (e.initiated = !1);\n m && e.initiated && !r && !1 !== b.cancelable && b.preventDefault();\n [].map.call(c, function (a) {\n return e.normalize(a);\n });\n \"touchstart\" === b.type ? ([].forEach.call(c, function (a, c) {\n g[c] = {\n chartX: a.chartX,\n chartY: a.chartY\n };\n }), h.x = [g[0].chartX, g[1] && g[1].chartX], h.y = [g[0].chartY, g[1] && g[1].chartY], a.axes.forEach(function (c) {\n if (c.zoomEnabled) {\n var b = a.bounds[c.horiz ? \"h\" : \"v\"],\n d = c.minPixelPadding,\n g = c.toPixels(Math.min(w(c.options.min, c.dataMin), c.dataMin)),\n e = c.toPixels(Math.max(w(c.options.max, c.dataMax), c.dataMax)),\n k = Math.max(g, e);\n b.min = Math.min(c.pos, Math.min(g, e) - d);\n b.max = Math.max(c.pos + c.len, k + d);\n }\n }), e.res = !0) : e.followTouchMove && 1 === f ? this.runPointActions(e.normalize(b)) : g.length && (p(a, \"touchpan\", {\n originalEvent: b\n }, function () {\n l || (e.selectionMarker = l = d({\n destroy: G,\n touch: !0\n }, a.plotBox));\n e.pinchTranslate(g, c, n, l, q, h);\n e.hasPinched = m;\n e.scaleGroups(n, q);\n }), e.res && (e.res = !1, this.reset(!1, 0)));\n };\n\n f.prototype.pinchTranslate = function (b, d, a, g, c, e) {\n this.zoomHor && this.pinchTranslateDirection(!0, b, d, a, g, c, e);\n this.zoomVert && this.pinchTranslateDirection(!1, b, d, a, g, c, e);\n };\n\n f.prototype.pinchTranslateDirection = function (b, d, a, g, c, e, f, h) {\n var k = this.chart,\n m = b ? \"x\" : \"y\",\n p = b ? \"X\" : \"Y\",\n n = \"chart\" + p,\n u = b ? \"width\" : \"height\",\n r = k[\"plot\" + (b ? \"Left\" : \"Top\")],\n q = k.inverted,\n l = k.bounds[b ? \"h\" : \"v\"],\n t = 1 === d.length,\n A = d[0][n],\n D = !t && d[1][n];\n\n d = function () {\n \"number\" === typeof x && 20 < Math.abs(A - D) && (w = h || Math.abs(N - x) / Math.abs(A - D));\n F = (r - N) / w + A;\n z = k[\"plot\" + (b ? \"Width\" : \"Height\")] / w;\n };\n\n var z,\n F,\n w = h || 1,\n N = a[0][n],\n x = !t && a[1][n];\n d();\n a = F;\n\n if (a < l.min) {\n a = l.min;\n var y = !0;\n } else a + z > l.max && (a = l.max - z, y = !0);\n\n y ? (N -= .8 * (N - f[m][0]), \"number\" === typeof x && (x -= .8 * (x - f[m][1])), d()) : f[m] = [N, x];\n q || (e[m] = F - r, e[u] = z);\n e = q ? 1 / w : w;\n c[u] = z;\n c[m] = a;\n g[q ? b ? \"scaleY\" : \"scaleX\" : \"scale\" + p] = w;\n g[\"translate\" + p] = e * r + (N - e * A);\n };\n\n f.prototype.reset = function (b, d) {\n var a = this.chart,\n g = a.hoverSeries,\n c = a.hoverPoint,\n e = a.hoverPoints,\n k = a.tooltip,\n f = k && k.shared ? e : c;\n b && f && z(f).forEach(function (a) {\n a.series.isCartesian && \"undefined\" === typeof a.plotX && (b = !1);\n });\n if (b) k && f && z(f).length && (k.refresh(f), k.shared && e ? e.forEach(function (a) {\n a.setState(a.state, !0);\n a.series.isCartesian && (a.series.xAxis.crosshair && a.series.xAxis.drawCrosshair(null, a), a.series.yAxis.crosshair && a.series.yAxis.drawCrosshair(null, a));\n }) : c && (c.setState(c.state, !0), a.axes.forEach(function (a) {\n a.crosshair && c.series[a.coll] === a && a.drawCrosshair(null, c);\n })));else {\n if (c) c.onMouseOut();\n e && e.forEach(function (a) {\n a.setState();\n });\n if (g) g.onMouseOut();\n k && k.hide(d);\n this.unDocMouseMove && (this.unDocMouseMove = this.unDocMouseMove());\n a.axes.forEach(function (a) {\n a.hideCrosshair();\n });\n this.hoverX = a.hoverPoints = a.hoverPoint = null;\n }\n };\n\n f.prototype.runPointActions = function (d, e) {\n var a = this.chart,\n g = a.tooltip && a.tooltip.options.enabled ? a.tooltip : void 0,\n c = g ? g.shared : !1,\n k = e || a.hoverPoint,\n h = k && k.series || a.hoverSeries;\n e = this.getHoverData(k, h, a.series, (!d || \"touchmove\" !== d.type) && (!!e || h && h.directTouch && this.isDirectTouch), c, d);\n k = e.hoverPoint;\n h = e.hoverSeries;\n var m = e.hoverPoints;\n e = h && h.tooltipOptions.followPointer && !h.tooltipOptions.split;\n var p = c && h && !h.noSharedTooltip;\n\n if (k && (k !== a.hoverPoint || g && g.isHidden)) {\n (a.hoverPoints || []).forEach(function (a) {\n -1 === m.indexOf(a) && a.setState();\n });\n if (a.hoverSeries !== h) h.onMouseOver();\n this.applyInactiveState(m);\n (m || []).forEach(function (a) {\n a.setState(\"hover\");\n });\n a.hoverPoint && a.hoverPoint.firePointEvent(\"mouseOut\");\n if (!k.series) return;\n a.hoverPoints = m;\n a.hoverPoint = k;\n k.firePointEvent(\"mouseOver\", void 0, function () {\n g && k && g.refresh(p ? m : k, d);\n });\n } else e && g && !g.isHidden && (c = g.getAnchor([{}], d), a.isInsidePlot(c[0], c[1], {\n visiblePlotOnly: !0\n }) && g.updatePosition({\n plotX: c[0],\n plotY: c[1]\n }));\n\n this.unDocMouseMove || (this.unDocMouseMove = B(a.container.ownerDocument, \"mousemove\", function (a) {\n var c = E[f.hoverChartIndex];\n if (c) c.pointer.onDocumentMouseMove(a);\n }), this.eventsToUnbind.push(this.unDocMouseMove));\n a.axes.forEach(function (c) {\n var g = w((c.crosshair || {}).snap, !0),\n e;\n g && ((e = a.hoverPoint) && e.series[c.coll] === c || (e = b(m, function (a) {\n return a.series && a.series[c.coll] === c;\n })));\n e || !g ? c.drawCrosshair(d, e) : c.hideCrosshair();\n });\n };\n\n f.prototype.scaleGroups = function (b, d) {\n var a = this.chart;\n a.series.forEach(function (g) {\n var c = b || g.getPlotBox();\n g.group && (g.xAxis && g.xAxis.zoomEnabled || a.mapView) && (g.group.attr(c), g.markerGroup && (g.markerGroup.attr(c), g.markerGroup.clip(d ? a.clipRect : null)), g.dataLabelsGroup && g.dataLabelsGroup.attr(c));\n });\n a.clipRect.attr(d || a.clipBox);\n };\n\n f.prototype.setDOMEvents = function () {\n var b = this,\n d = this.chart.container,\n a = d.ownerDocument;\n d.onmousedown = this.onContainerMouseDown.bind(this);\n d.onmousemove = this.onContainerMouseMove.bind(this);\n d.onclick = this.onContainerClick.bind(this);\n this.eventsToUnbind.push(B(d, \"mouseenter\", this.onContainerMouseEnter.bind(this)));\n this.eventsToUnbind.push(B(d, \"mouseleave\", this.onContainerMouseLeave.bind(this)));\n f.unbindDocumentMouseUp || (f.unbindDocumentMouseUp = B(a, \"mouseup\", this.onDocumentMouseUp.bind(this)));\n\n for (var g = this.chart.renderTo.parentElement; g && \"BODY\" !== g.tagName;) this.eventsToUnbind.push(B(g, \"scroll\", function () {\n delete b.chartPosition;\n })), g = g.parentElement;\n\n e.hasTouch && (this.eventsToUnbind.push(B(d, \"touchstart\", this.onContainerTouchStart.bind(this), {\n passive: !1\n })), this.eventsToUnbind.push(B(d, \"touchmove\", this.onContainerTouchMove.bind(this), {\n passive: !1\n })), f.unbindDocumentTouchEnd || (f.unbindDocumentTouchEnd = B(a, \"touchend\", this.onDocumentTouchEnd.bind(this), {\n passive: !1\n })));\n };\n\n f.prototype.setHoverChartIndex = function () {\n var b = this.chart,\n d = e.charts[w(f.hoverChartIndex, -1)];\n if (d && d !== b) d.pointer.onContainerMouseLeave({\n relatedTarget: b.container\n });\n d && d.mouseIsDown || (f.hoverChartIndex = b.index);\n };\n\n f.prototype.touch = function (b, d) {\n var a = this.chart,\n g;\n this.setHoverChartIndex();\n if (1 === b.touches.length) {\n if (b = this.normalize(b), (g = a.isInsidePlot(b.chartX - a.plotLeft, b.chartY - a.plotTop, {\n visiblePlotOnly: !0\n })) && !a.openMenu) {\n d && this.runPointActions(b);\n\n if (\"touchmove\" === b.type) {\n d = this.pinchDown;\n var c = d[0] ? 4 <= Math.sqrt(Math.pow(d[0].chartX - b.chartX, 2) + Math.pow(d[0].chartY - b.chartY, 2)) : !1;\n }\n\n w(c, !0) && this.pinch(b);\n } else d && this.reset();\n } else 2 === b.touches.length && this.pinch(b);\n };\n\n f.prototype.touchSelect = function (b) {\n return !(!this.chart.options.chart.zoomBySingleTouch || !b.touches || 1 !== b.touches.length);\n };\n\n f.prototype.zoomOption = function (b) {\n var d = this.chart,\n a = d.options.chart;\n d = d.inverted;\n var g = a.zoomType || \"\";\n /touch/.test(b.type) && (g = w(a.pinchType, g));\n this.zoomX = b = /x/.test(g);\n this.zoomY = a = /y/.test(g);\n this.zoomHor = b && !d || a && d;\n this.zoomVert = a && !d || b && d;\n this.hasZoom = b || a;\n };\n\n return f;\n }();\n\n \"\";\n return f;\n });\n K(l, \"Core/MSPointer.js\", [l[\"Core/Globals.js\"], l[\"Core/Pointer.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n function C() {\n var d = [];\n\n d.item = function (b) {\n return this[b];\n };\n\n b(q, function (b) {\n d.push({\n pageX: b.pageX,\n pageY: b.pageY,\n target: b.target\n });\n });\n return d;\n }\n\n function v(b, d, f, h) {\n var p = G[e.hoverChartIndex || NaN];\n \"touch\" !== b.pointerType && b.pointerType !== b.MSPOINTER_TYPE_TOUCH || !p || (p = p.pointer, h(b), p[d]({\n type: f,\n target: b.currentTarget,\n preventDefault: y,\n touches: C()\n }));\n }\n\n var E = this && this.__extends || function () {\n var b = function (d, e) {\n b = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return b(d, e);\n };\n\n return function (d, e) {\n function f() {\n this.constructor = d;\n }\n\n b(d, e);\n d.prototype = null === e ? Object.create(e) : (f.prototype = e.prototype, new f());\n };\n }(),\n G = f.charts,\n B = f.doc,\n y = f.noop,\n t = f.win,\n h = l.addEvent,\n d = l.css,\n b = l.objectEach,\n p = l.removeEvent,\n q = {},\n r = !!t.PointerEvent;\n\n return function (b) {\n function e() {\n return null !== b && b.apply(this, arguments) || this;\n }\n\n E(e, b);\n\n e.isRequired = function () {\n return !(f.hasTouch || !t.PointerEvent && !t.MSPointerEvent);\n };\n\n e.prototype.batchMSEvents = function (b) {\n b(this.chart.container, r ? \"pointerdown\" : \"MSPointerDown\", this.onContainerPointerDown);\n b(this.chart.container, r ? \"pointermove\" : \"MSPointerMove\", this.onContainerPointerMove);\n b(B, r ? \"pointerup\" : \"MSPointerUp\", this.onDocumentPointerUp);\n };\n\n e.prototype.destroy = function () {\n this.batchMSEvents(p);\n b.prototype.destroy.call(this);\n };\n\n e.prototype.init = function (e, f) {\n b.prototype.init.call(this, e, f);\n this.hasZoom && d(e.container, {\n \"-ms-touch-action\": \"none\",\n \"touch-action\": \"none\"\n });\n };\n\n e.prototype.onContainerPointerDown = function (b) {\n v(b, \"onContainerTouchStart\", \"touchstart\", function (b) {\n q[b.pointerId] = {\n pageX: b.pageX,\n pageY: b.pageY,\n target: b.currentTarget\n };\n });\n };\n\n e.prototype.onContainerPointerMove = function (b) {\n v(b, \"onContainerTouchMove\", \"touchmove\", function (b) {\n q[b.pointerId] = {\n pageX: b.pageX,\n pageY: b.pageY\n };\n q[b.pointerId].target || (q[b.pointerId].target = b.currentTarget);\n });\n };\n\n e.prototype.onDocumentPointerUp = function (b) {\n v(b, \"onDocumentTouchEnd\", \"touchend\", function (b) {\n delete q[b.pointerId];\n });\n };\n\n e.prototype.setDOMEvents = function () {\n b.prototype.setDOMEvents.call(this);\n (this.hasZoom || this.followTouchMove) && this.batchMSEvents(h);\n };\n\n return e;\n }(e);\n });\n K(l, \"Core/Legend/Legend.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Globals.js\"], l[\"Core/Series/Point.js\"], l[\"Core/Renderer/RendererUtilities.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E) {\n var G = f.animObject,\n B = f.setAnimation,\n y = e.format;\n f = l.isFirefox;\n var t = l.marginNames;\n l = l.win;\n var h = v.distribute,\n d = E.addEvent,\n b = E.createElement,\n p = E.css,\n q = E.defined,\n r = E.discardElement,\n n = E.find,\n J = E.fireEvent,\n w = E.isNumber,\n z = E.merge,\n x = E.pick,\n m = E.relativeLength,\n k = E.stableSort,\n a = E.syncTimeout;\n v = E.wrap;\n\n E = function () {\n function g(a, b) {\n this.allItems = [];\n this.contentGroup = this.box = void 0;\n this.display = !1;\n this.group = void 0;\n this.offsetWidth = this.maxLegendWidth = this.maxItemWidth = this.legendWidth = this.legendHeight = this.lastLineHeight = this.lastItemY = this.itemY = this.itemX = this.itemMarginTop = this.itemMarginBottom = this.itemHeight = this.initialItemY = 0;\n this.options = void 0;\n this.padding = 0;\n this.pages = [];\n this.proximate = !1;\n this.scrollGroup = void 0;\n this.widthOption = this.totalItemWidth = this.titleHeight = this.symbolWidth = this.symbolHeight = 0;\n this.chart = a;\n this.init(a, b);\n }\n\n g.prototype.init = function (a, b) {\n this.chart = a;\n this.setOptions(b);\n b.enabled && (this.render(), d(this.chart, \"endResize\", function () {\n this.legend.positionCheckboxes();\n }), this.proximate ? this.unchartrender = d(this.chart, \"render\", function () {\n this.legend.proximatePositions();\n this.legend.positionItems();\n }) : this.unchartrender && this.unchartrender());\n };\n\n g.prototype.setOptions = function (a) {\n var c = x(a.padding, 8);\n this.options = a;\n this.chart.styledMode || (this.itemStyle = a.itemStyle, this.itemHiddenStyle = z(this.itemStyle, a.itemHiddenStyle));\n this.itemMarginTop = a.itemMarginTop || 0;\n this.itemMarginBottom = a.itemMarginBottom || 0;\n this.padding = c;\n this.initialItemY = c - 5;\n this.symbolWidth = x(a.symbolWidth, 16);\n this.pages = [];\n this.proximate = \"proximate\" === a.layout && !this.chart.inverted;\n this.baseline = void 0;\n };\n\n g.prototype.update = function (a, b) {\n var c = this.chart;\n this.setOptions(z(!0, this.options, a));\n this.destroy();\n c.isDirtyLegend = c.isDirtyBox = !0;\n x(b, !0) && c.redraw();\n J(this, \"afterUpdate\");\n };\n\n g.prototype.colorizeItem = function (a, b) {\n a.legendGroup[b ? \"removeClass\" : \"addClass\"](\"highcharts-legend-item-hidden\");\n\n if (!this.chart.styledMode) {\n var c = this.options,\n d = a.legendItem,\n g = a.legendLine,\n e = a.legendSymbol,\n f = this.itemHiddenStyle.color;\n c = b ? c.itemStyle.color : f;\n var k = b ? a.color || f : f,\n h = a.options && a.options.marker,\n m = {\n fill: k\n };\n d && d.css({\n fill: c,\n color: c\n });\n g && g.attr({\n stroke: k\n });\n e && (h && e.isMarker && (m = a.pointAttribs(), b || (m.stroke = m.fill = f)), e.attr(m));\n }\n\n J(this, \"afterColorizeItem\", {\n item: a,\n visible: b\n });\n };\n\n g.prototype.positionItems = function () {\n this.allItems.forEach(this.positionItem, this);\n this.chart.isResizing || this.positionCheckboxes();\n };\n\n g.prototype.positionItem = function (a) {\n var c = this,\n b = this.options,\n d = b.symbolPadding,\n g = !b.rtl,\n e = a._legendItemPos;\n b = e[0];\n e = e[1];\n var f = a.checkbox,\n k = a.legendGroup;\n k && k.element && (d = {\n translateX: g ? b : this.legendWidth - b - 2 * d - 4,\n translateY: e\n }, g = function () {\n J(c, \"afterPositionItem\", {\n item: a\n });\n }, q(k.translateY) ? k.animate(d, void 0, g) : (k.attr(d), g()));\n f && (f.x = b, f.y = e);\n };\n\n g.prototype.destroyItem = function (a) {\n var c = a.checkbox;\n [\"legendItem\", \"legendLine\", \"legendSymbol\", \"legendGroup\"].forEach(function (c) {\n a[c] && (a[c] = a[c].destroy());\n });\n c && r(a.checkbox);\n };\n\n g.prototype.destroy = function () {\n function a(a) {\n this[a] && (this[a] = this[a].destroy());\n }\n\n this.getAllItems().forEach(function (c) {\n [\"legendItem\", \"legendGroup\"].forEach(a, c);\n });\n \"clipRect up down pager nav box title group\".split(\" \").forEach(a, this);\n this.display = null;\n };\n\n g.prototype.positionCheckboxes = function () {\n var a = this.group && this.group.alignAttr,\n b = this.clipHeight || this.legendHeight,\n d = this.titleHeight;\n\n if (a) {\n var g = a.translateY;\n this.allItems.forEach(function (c) {\n var e = c.checkbox;\n\n if (e) {\n var f = g + d + e.y + (this.scrollOffset || 0) + 3;\n p(e, {\n left: a.translateX + c.checkboxOffset + e.x - 20 + \"px\",\n top: f + \"px\",\n display: this.proximate || f > g - 6 && f < g + b - 6 ? \"\" : \"none\"\n });\n }\n }, this);\n }\n };\n\n g.prototype.renderTitle = function () {\n var a = this.options,\n b = this.padding,\n d = a.title,\n g = 0;\n d.text && (this.title || (this.title = this.chart.renderer.label(d.text, b - 3, b - 4, void 0, void 0, void 0, a.useHTML, void 0, \"legend-title\").attr({\n zIndex: 1\n }), this.chart.styledMode || this.title.css(d.style), this.title.add(this.group)), d.width || this.title.css({\n width: this.maxLegendWidth + \"px\"\n }), a = this.title.getBBox(), g = a.height, this.offsetWidth = a.width, this.contentGroup.attr({\n translateY: g\n }));\n this.titleHeight = g;\n };\n\n g.prototype.setText = function (a) {\n var c = this.options;\n a.legendItem.attr({\n text: c.labelFormat ? y(c.labelFormat, a, this.chart) : c.labelFormatter.call(a)\n });\n };\n\n g.prototype.renderItem = function (a) {\n var c = this.chart,\n b = c.renderer,\n d = this.options,\n g = this.symbolWidth,\n e = d.symbolPadding || 0,\n f = this.itemStyle,\n k = this.itemHiddenStyle,\n h = \"horizontal\" === d.layout ? x(d.itemDistance, 20) : 0,\n m = !d.rtl,\n p = !a.series,\n n = !p && a.series.drawLegendSymbol ? a.series : a,\n l = n.options,\n r = this.createCheckboxForItem && l && l.showCheckbox,\n q = d.useHTML,\n t = a.options.className,\n F = a.legendItem;\n l = g + e + h + (r ? 20 : 0);\n F || (a.legendGroup = b.g(\"legend-item\").addClass(\"highcharts-\" + n.type + \"-series highcharts-color-\" + a.colorIndex + (t ? \" \" + t : \"\") + (p ? \" highcharts-series-\" + a.index : \"\")).attr({\n zIndex: 1\n }).add(this.scrollGroup), a.legendItem = F = b.text(\"\", m ? g + e : -e, this.baseline || 0, q), c.styledMode || F.css(z(a.visible ? f : k)), F.attr({\n align: m ? \"left\" : \"right\",\n zIndex: 2\n }).add(a.legendGroup), this.baseline || (this.fontMetrics = b.fontMetrics(c.styledMode ? 12 : f.fontSize, F), this.baseline = this.fontMetrics.f + 3 + this.itemMarginTop, F.attr(\"y\", this.baseline), this.symbolHeight = d.symbolHeight || this.fontMetrics.f, d.squareSymbol && (this.symbolWidth = x(d.symbolWidth, Math.max(this.symbolHeight, 16)), l = this.symbolWidth + e + h + (r ? 20 : 0), m && F.attr(\"x\", this.symbolWidth + e))), n.drawLegendSymbol(this, a), this.setItemEvents && this.setItemEvents(a, F, q));\n r && !a.checkbox && this.createCheckboxForItem && this.createCheckboxForItem(a);\n this.colorizeItem(a, a.visible);\n !c.styledMode && f.width || F.css({\n width: (d.itemWidth || this.widthOption || c.spacingBox.width) - l + \"px\"\n });\n this.setText(a);\n c = F.getBBox();\n b = this.fontMetrics && this.fontMetrics.h || 0;\n a.itemWidth = a.checkboxOffset = d.itemWidth || a.legendItemWidth || c.width + l;\n this.maxItemWidth = Math.max(this.maxItemWidth, a.itemWidth);\n this.totalItemWidth += a.itemWidth;\n this.itemHeight = a.itemHeight = Math.round(a.legendItemHeight || (c.height > 1.5 * b ? c.height : b));\n };\n\n g.prototype.layoutItem = function (a) {\n var c = this.options,\n b = this.padding,\n d = \"horizontal\" === c.layout,\n g = a.itemHeight,\n e = this.itemMarginBottom,\n f = this.itemMarginTop,\n k = d ? x(c.itemDistance, 20) : 0,\n h = this.maxLegendWidth;\n c = c.alignColumns && this.totalItemWidth > h ? this.maxItemWidth : a.itemWidth;\n d && this.itemX - b + c > h && (this.itemX = b, this.lastLineHeight && (this.itemY += f + this.lastLineHeight + e), this.lastLineHeight = 0);\n this.lastItemY = f + this.itemY + e;\n this.lastLineHeight = Math.max(g, this.lastLineHeight);\n a._legendItemPos = [this.itemX, this.itemY];\n d ? this.itemX += c : (this.itemY += f + g + e, this.lastLineHeight = g);\n this.offsetWidth = this.widthOption || Math.max((d ? this.itemX - b - (a.checkbox ? 0 : k) : c) + b, this.offsetWidth);\n };\n\n g.prototype.getAllItems = function () {\n var a = [];\n this.chart.series.forEach(function (c) {\n var b = c && c.options;\n c && x(b.showInLegend, q(b.linkedTo) ? !1 : void 0, !0) && (a = a.concat(c.legendItems || (\"point\" === b.legendType ? c.data : c)));\n });\n J(this, \"afterGetAllItems\", {\n allItems: a\n });\n return a;\n };\n\n g.prototype.getAlignment = function () {\n var a = this.options;\n return this.proximate ? a.align.charAt(0) + \"tv\" : a.floating ? \"\" : a.align.charAt(0) + a.verticalAlign.charAt(0) + a.layout.charAt(0);\n };\n\n g.prototype.adjustMargins = function (a, b) {\n var c = this.chart,\n d = this.options,\n g = this.getAlignment();\n g && [/(lth|ct|rth)/, /(rtv|rm|rbv)/, /(rbh|cb|lbh)/, /(lbv|lm|ltv)/].forEach(function (e, f) {\n e.test(g) && !q(a[f]) && (c[t[f]] = Math.max(c[t[f]], c.legend[(f + 1) % 2 ? \"legendHeight\" : \"legendWidth\"] + [1, -1, -1, 1][f] * d[f % 2 ? \"x\" : \"y\"] + x(d.margin, 12) + b[f] + (c.titleOffset[f] || 0)));\n });\n };\n\n g.prototype.proximatePositions = function () {\n var a = this.chart,\n b = [],\n d = \"left\" === this.options.align;\n this.allItems.forEach(function (c) {\n var g;\n var e = d;\n\n if (c.yAxis) {\n c.xAxis.options.reversed && (e = !e);\n c.points && (g = n(e ? c.points : c.points.slice(0).reverse(), function (a) {\n return w(a.plotY);\n }));\n e = this.itemMarginTop + c.legendItem.getBBox().height + this.itemMarginBottom;\n var f = c.yAxis.top - a.plotTop;\n c.visible ? (g = g ? g.plotY : c.yAxis.height, g += f - .3 * e) : g = f + c.yAxis.height;\n b.push({\n target: g,\n size: e,\n item: c\n });\n }\n }, this);\n h(b, a.plotHeight).forEach(function (c) {\n c.item._legendItemPos && c.pos && (c.item._legendItemPos[1] = a.plotTop - a.spacing[0] + c.pos);\n });\n };\n\n g.prototype.render = function () {\n var a = this.chart,\n b = a.renderer,\n d = this.options,\n g = this.padding,\n e = this.getAllItems(),\n f = this.group,\n h = this.box;\n this.itemX = g;\n this.itemY = this.initialItemY;\n this.lastItemY = this.offsetWidth = 0;\n this.widthOption = m(d.width, a.spacingBox.width - g);\n var p = a.spacingBox.width - 2 * g - d.x;\n -1 < [\"rm\", \"lm\"].indexOf(this.getAlignment().substring(0, 2)) && (p /= 2);\n this.maxLegendWidth = this.widthOption || p;\n f || (this.group = f = b.g(\"legend\").addClass(d.className || \"\").attr({\n zIndex: 7\n }).add(), this.contentGroup = b.g().attr({\n zIndex: 1\n }).add(f), this.scrollGroup = b.g().add(this.contentGroup));\n this.renderTitle();\n k(e, function (a, c) {\n return (a.options && a.options.legendIndex || 0) - (c.options && c.options.legendIndex || 0);\n });\n d.reversed && e.reverse();\n this.allItems = e;\n this.display = p = !!e.length;\n this.itemHeight = this.totalItemWidth = this.maxItemWidth = this.lastLineHeight = 0;\n e.forEach(this.renderItem, this);\n e.forEach(this.layoutItem, this);\n e = (this.widthOption || this.offsetWidth) + g;\n var n = this.lastItemY + this.lastLineHeight + this.titleHeight;\n n = this.handleOverflow(n);\n n += g;\n h || (this.box = h = b.rect().addClass(\"highcharts-legend-box\").attr({\n r: d.borderRadius\n }).add(f));\n a.styledMode || h.attr({\n stroke: d.borderColor,\n \"stroke-width\": d.borderWidth || 0,\n fill: d.backgroundColor || \"none\"\n }).shadow(d.shadow);\n if (0 < e && 0 < n) h[h.placed ? \"animate\" : \"attr\"](h.crisp.call({}, {\n x: 0,\n y: 0,\n width: e,\n height: n\n }, h.strokeWidth()));\n f[p ? \"show\" : \"hide\"]();\n a.styledMode && \"none\" === f.getStyle(\"display\") && (e = n = 0);\n this.legendWidth = e;\n this.legendHeight = n;\n p && this.align();\n this.proximate || this.positionItems();\n J(this, \"afterRender\");\n };\n\n g.prototype.align = function (a) {\n void 0 === a && (a = this.chart.spacingBox);\n var c = this.chart,\n b = this.options,\n d = a.y;\n /(lth|ct|rth)/.test(this.getAlignment()) && 0 < c.titleOffset[0] ? d += c.titleOffset[0] : /(lbh|cb|rbh)/.test(this.getAlignment()) && 0 < c.titleOffset[2] && (d -= c.titleOffset[2]);\n d !== a.y && (a = z(a, {\n y: d\n }));\n c.hasRendered || (this.group.placed = !1);\n this.group.align(z(b, {\n width: this.legendWidth,\n height: this.legendHeight,\n verticalAlign: this.proximate ? \"top\" : b.verticalAlign\n }), !0, a);\n };\n\n g.prototype.handleOverflow = function (a) {\n var c = this,\n b = this.chart,\n d = b.renderer,\n g = this.options,\n e = g.y,\n f = \"top\" === g.verticalAlign,\n k = this.padding,\n h = g.maxHeight,\n m = g.navigation,\n p = x(m.animation, !0),\n n = m.arrowSize || 12,\n l = this.pages,\n r = this.allItems,\n q = function (a) {\n \"number\" === typeof a ? w.attr({\n height: a\n }) : w && (c.clipRect = w.destroy(), c.contentGroup.clip());\n c.contentGroup.div && (c.contentGroup.div.style.clip = a ? \"rect(\" + k + \"px,9999px,\" + (k + a) + \"px,0)\" : \"auto\");\n },\n t = function (a) {\n c[a] = d.circle(0, 0, 1.3 * n).translate(n / 2, n / 2).add(N);\n b.styledMode || c[a].attr(\"fill\", \"rgba(0,0,0,0.0001)\");\n return c[a];\n },\n F,\n z;\n\n e = b.spacingBox.height + (f ? -e : e) - k;\n var N = this.nav,\n w = this.clipRect;\n \"horizontal\" !== g.layout || \"middle\" === g.verticalAlign || g.floating || (e /= 2);\n h && (e = Math.min(e, h));\n l.length = 0;\n a && 0 < e && a > e && !1 !== m.enabled ? (this.clipHeight = F = Math.max(e - 20 - this.titleHeight - k, 0), this.currentPage = x(this.currentPage, 1), this.fullHeight = a, r.forEach(function (a, c) {\n var b = a._legendItemPos[1],\n d = Math.round(a.legendItem.getBBox().height),\n g = l.length;\n if (!g || b - l[g - 1] > F && (z || b) !== l[g - 1]) l.push(z || b), g++;\n a.pageIx = g - 1;\n z && (r[c - 1].pageIx = g - 1);\n c === r.length - 1 && b + d - l[g - 1] > F && d <= F && (l.push(b), a.pageIx = g);\n b !== z && (z = b);\n }), w || (w = c.clipRect = d.clipRect(0, k, 9999, 0), c.contentGroup.clip(w)), q(F), N || (this.nav = N = d.g().attr({\n zIndex: 1\n }).add(this.group), this.up = d.symbol(\"triangle\", 0, 0, n, n).add(N), t(\"upTracker\").on(\"click\", function () {\n c.scroll(-1, p);\n }), this.pager = d.text(\"\", 15, 10).addClass(\"highcharts-legend-navigation\"), !b.styledMode && m.style && this.pager.css(m.style), this.pager.add(N), this.down = d.symbol(\"triangle-down\", 0, 0, n, n).add(N), t(\"downTracker\").on(\"click\", function () {\n c.scroll(1, p);\n })), c.scroll(0), a = e) : N && (q(), this.nav = N.destroy(), this.scrollGroup.attr({\n translateY: 1\n }), this.clipHeight = 0);\n return a;\n };\n\n g.prototype.scroll = function (c, b) {\n var d = this,\n g = this.chart,\n e = this.pages,\n f = e.length,\n k = this.clipHeight,\n h = this.options.navigation,\n m = this.pager,\n p = this.padding,\n n = this.currentPage + c;\n n > f && (n = f);\n 0 < n && (\"undefined\" !== typeof b && B(b, g), this.nav.attr({\n translateX: p,\n translateY: k + this.padding + 7 + this.titleHeight,\n visibility: \"inherit\"\n }), [this.up, this.upTracker].forEach(function (a) {\n a.attr({\n \"class\": 1 === n ? \"highcharts-legend-nav-inactive\" : \"highcharts-legend-nav-active\"\n });\n }), m.attr({\n text: n + \"/\" + f\n }), [this.down, this.downTracker].forEach(function (a) {\n a.attr({\n x: 18 + this.pager.getBBox().width,\n \"class\": n === f ? \"highcharts-legend-nav-inactive\" : \"highcharts-legend-nav-active\"\n });\n }, this), g.styledMode || (this.up.attr({\n fill: 1 === n ? h.inactiveColor : h.activeColor\n }), this.upTracker.css({\n cursor: 1 === n ? \"default\" : \"pointer\"\n }), this.down.attr({\n fill: n === f ? h.inactiveColor : h.activeColor\n }), this.downTracker.css({\n cursor: n === f ? \"default\" : \"pointer\"\n })), this.scrollOffset = -e[n - 1] + this.initialItemY, this.scrollGroup.animate({\n translateY: this.scrollOffset\n }), this.currentPage = n, this.positionCheckboxes(), c = G(x(b, g.renderer.globalAnimation, !0)), a(function () {\n J(d, \"afterScroll\", {\n currentPage: n\n });\n }, c.duration));\n };\n\n g.prototype.setItemEvents = function (a, b, d) {\n var c = this,\n g = c.chart.renderer.boxWrapper,\n e = a instanceof C,\n f = \"highcharts-legend-\" + (e ? \"point\" : \"series\") + \"-active\",\n k = c.chart.styledMode,\n h = function (b) {\n c.allItems.forEach(function (c) {\n a !== c && [c].concat(c.linkedSeries || []).forEach(function (a) {\n a.setState(b, !e);\n });\n });\n };\n\n (d ? [b, a.legendSymbol] : [a.legendGroup]).forEach(function (d) {\n if (d) d.on(\"mouseover\", function () {\n a.visible && h(\"inactive\");\n a.setState(\"hover\");\n a.visible && g.addClass(f);\n k || b.css(c.options.itemHoverStyle);\n }).on(\"mouseout\", function () {\n c.chart.styledMode || b.css(z(a.visible ? c.itemStyle : c.itemHiddenStyle));\n h(\"\");\n g.removeClass(f);\n a.setState();\n }).on(\"click\", function (c) {\n var b = function () {\n a.setVisible && a.setVisible();\n h(a.visible ? \"inactive\" : \"\");\n };\n\n g.removeClass(f);\n c = {\n browserEvent: c\n };\n a.firePointEvent ? a.firePointEvent(\"legendItemClick\", c, b) : J(a, \"legendItemClick\", c, b);\n });\n });\n };\n\n g.prototype.createCheckboxForItem = function (a) {\n a.checkbox = b(\"input\", {\n type: \"checkbox\",\n className: \"highcharts-legend-checkbox\",\n checked: a.selected,\n defaultChecked: a.selected\n }, this.options.itemCheckboxStyle, this.chart.container);\n d(a.checkbox, \"click\", function (c) {\n J(a.series || a, \"checkboxClick\", {\n checked: c.target.checked,\n item: a\n }, function () {\n a.select();\n });\n });\n };\n\n return g;\n }();\n\n (/Trident\\/7\\.0/.test(l.navigator && l.navigator.userAgent) || f) && v(E.prototype, \"positionItem\", function (a, c) {\n var b = this,\n d = function () {\n c._legendItemPos && a.call(b, c);\n };\n\n d();\n b.bubbleLegend || setTimeout(d);\n });\n \"\";\n return E;\n });\n K(l, \"Core/Series/SeriesRegistry.js\", [l[\"Core/Globals.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/Series/Point.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C) {\n var v = e.defaultOptions,\n E = C.error,\n G = C.extendClass,\n B = C.merge,\n y;\n\n (function (e) {\n function h(d, b) {\n var f = v.plotOptions || {},\n h = b.defaultOptions;\n b.prototype.pointClass || (b.prototype.pointClass = l);\n b.prototype.type = d;\n h && (f[d] = h);\n e.seriesTypes[d] = b;\n }\n\n e.seriesTypes = f.seriesTypes;\n\n e.getSeries = function (d, b) {\n void 0 === b && (b = {});\n var f = d.options.chart;\n f = b.type || f.type || f.defaultSeriesType || \"\";\n var h = e.seriesTypes[f];\n e || E(17, !0, d, {\n missingModuleFor: f\n });\n f = new h();\n \"function\" === typeof f.init && f.init(d, b);\n return f;\n };\n\n e.registerSeriesType = h;\n\n e.seriesType = function (d, b, f, q, r) {\n var p = v.plotOptions || {};\n b = b || \"\";\n p[d] = B(p[b], f);\n h(d, G(e.seriesTypes[b] || function () {}, q));\n e.seriesTypes[d].prototype.type = d;\n r && (e.seriesTypes[d].prototype.pointClass = G(l, r));\n return e.seriesTypes[d];\n };\n })(y || (y = {}));\n\n return y;\n });\n K(l, \"Core/Chart/Chart.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Axis/Axis.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Foundation.js\"], l[\"Core/Globals.js\"], l[\"Core/Legend/Legend.js\"], l[\"Core/MSPointer.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/Pointer.js\"], l[\"Core/Renderer/RendererRegistry.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Renderer/SVG/SVGRenderer.js\"], l[\"Core/Time.js\"], l[\"Core/Utilities.js\"], l[\"Core/Renderer/HTML/AST.js\"]], function (f, e, l, C, v, E, G, B, y, t, h, d, b, p, q) {\n var r = f.animate,\n n = f.animObject,\n J = f.setAnimation,\n w = l.numberFormat,\n z = C.registerEventOptions,\n x = v.charts,\n m = v.doc,\n k = v.marginNames,\n a = v.svg,\n g = v.win,\n c = B.defaultOptions,\n D = B.defaultTime,\n A = h.seriesTypes,\n u = p.addEvent,\n L = p.attr,\n S = p.cleanRecursively,\n R = p.createElement,\n M = p.css,\n U = p.defined,\n P = p.discardElement,\n I = p.erase,\n H = p.error,\n K = p.extend,\n da = p.find,\n O = p.fireEvent,\n ea = p.getStyle,\n F = p.isArray,\n T = p.isNumber,\n N = p.isObject,\n V = p.isString,\n W = p.merge,\n X = p.objectEach,\n Q = p.pick,\n Z = p.pInt,\n ba = p.relativeLength,\n ha = p.removeEvent,\n fa = p.splat,\n ia = p.syncTimeout,\n ka = p.uniqueKey;\n\n f = function () {\n function f(a, c, b) {\n this.series = this.renderTo = this.renderer = this.pointer = this.pointCount = this.plotWidth = this.plotTop = this.plotLeft = this.plotHeight = this.plotBox = this.options = this.numberFormatter = this.margin = this.legend = this.labelCollectors = this.isResizing = this.index = this.eventOptions = this.container = this.colorCounter = this.clipBox = this.chartWidth = this.chartHeight = this.bounds = this.axisOffset = this.axes = void 0;\n this.sharedClips = {};\n this.yAxis = this.xAxis = this.userOptions = this.titleOffset = this.time = this.symbolCounter = this.spacingBox = this.spacing = void 0;\n this.getArgs(a, c, b);\n }\n\n f.chart = function (a, c, b) {\n return new f(a, c, b);\n };\n\n f.prototype.getArgs = function (a, c, b) {\n V(a) || a.nodeName ? (this.renderTo = a, this.init(c, b)) : this.init(a, c);\n };\n\n f.prototype.init = function (a, d) {\n var g = a.plotOptions || {};\n O(this, \"init\", {\n args: arguments\n }, function () {\n var e = W(c, a),\n f = e.chart;\n X(e.plotOptions, function (a, c) {\n N(a) && (a.tooltip = g[c] && W(g[c].tooltip) || void 0);\n });\n e.tooltip.userOptions = a.chart && a.chart.forExport && a.tooltip.userOptions || a.tooltip;\n this.userOptions = a;\n this.margin = [];\n this.spacing = [];\n this.bounds = {\n h: {},\n v: {}\n };\n this.labelCollectors = [];\n this.callback = d;\n this.isResizing = 0;\n this.options = e;\n this.axes = [];\n this.series = [];\n this.time = a.time && Object.keys(a.time).length ? new b(a.time) : v.time;\n this.numberFormatter = f.numberFormatter || w;\n this.styledMode = f.styledMode;\n this.hasCartesianSeries = f.showAxes;\n this.index = x.length;\n x.push(this);\n v.chartCount++;\n z(this, f);\n this.xAxis = [];\n this.yAxis = [];\n this.pointCount = this.colorCounter = this.symbolCounter = 0;\n O(this, \"afterInit\");\n this.firstRender();\n });\n };\n\n f.prototype.initSeries = function (a) {\n var c = this.options.chart;\n c = a.type || c.type || c.defaultSeriesType;\n var b = A[c];\n b || H(17, !0, this, {\n missingModuleFor: c\n });\n c = new b();\n \"function\" === typeof c.init && c.init(this, a);\n return c;\n };\n\n f.prototype.setSeriesData = function () {\n this.getSeriesOrderByLinks().forEach(function (a) {\n a.points || a.data || !a.enabledDataSorting || a.setData(a.options.data, !1);\n });\n };\n\n f.prototype.getSeriesOrderByLinks = function () {\n return this.series.concat().sort(function (a, c) {\n return a.linkedSeries.length || c.linkedSeries.length ? c.linkedSeries.length - a.linkedSeries.length : 0;\n });\n };\n\n f.prototype.orderSeries = function (a) {\n var c = this.series;\n a = a || 0;\n\n for (var b = c.length; a < b; ++a) c[a] && (c[a].index = a, c[a].name = c[a].getName());\n };\n\n f.prototype.isInsidePlot = function (a, c, b) {\n void 0 === b && (b = {});\n var d = this.inverted,\n g = this.plotBox,\n e = this.plotLeft,\n f = this.plotTop,\n k = this.scrollablePlotBox,\n h = 0;\n var m = 0;\n b.visiblePlotOnly && this.scrollingContainer && (m = this.scrollingContainer, h = m.scrollLeft, m = m.scrollTop);\n var p = b.series;\n g = b.visiblePlotOnly && k || g;\n k = b.inverted ? c : a;\n c = b.inverted ? a : c;\n a = {\n x: k,\n y: c,\n isInsidePlot: !0\n };\n\n if (!b.ignoreX) {\n var n = p && (d ? p.yAxis : p.xAxis) || {\n pos: e,\n len: Infinity\n };\n k = b.paneCoordinates ? n.pos + k : e + k;\n k >= Math.max(h + e, n.pos) && k <= Math.min(h + e + g.width, n.pos + n.len) || (a.isInsidePlot = !1);\n }\n\n !b.ignoreY && a.isInsidePlot && (d = p && (d ? p.xAxis : p.yAxis) || {\n pos: f,\n len: Infinity\n }, b = b.paneCoordinates ? d.pos + c : f + c, b >= Math.max(m + f, d.pos) && b <= Math.min(m + f + g.height, d.pos + d.len) || (a.isInsidePlot = !1));\n O(this, \"afterIsInsidePlot\", a);\n return a.isInsidePlot;\n };\n\n f.prototype.redraw = function (a) {\n O(this, \"beforeRedraw\");\n var c = this.hasCartesianSeries ? this.axes : this.colorAxis || [],\n b = this.series,\n d = this.pointer,\n g = this.legend,\n e = this.userOptions.legend,\n f = this.renderer,\n k = f.isHidden(),\n h = [],\n m = this.isDirtyBox,\n p = this.isDirtyLegend;\n this.setResponsive && this.setResponsive(!1);\n J(this.hasRendered ? a : !1, this);\n k && this.temporaryDisplay();\n this.layOutTitles();\n\n for (a = b.length; a--;) {\n var n = b[a];\n\n if (n.options.stacking || n.options.centerInCategory) {\n var l = !0;\n\n if (n.isDirty) {\n var F = !0;\n break;\n }\n }\n }\n\n if (F) for (a = b.length; a--;) n = b[a], n.options.stacking && (n.isDirty = !0);\n b.forEach(function (a) {\n a.isDirty && (\"point\" === a.options.legendType ? (\"function\" === typeof a.updateTotals && a.updateTotals(), p = !0) : e && (e.labelFormatter || e.labelFormat) && (p = !0));\n a.isDirtyData && O(a, \"updatedData\");\n });\n p && g && g.options.enabled && (g.render(), this.isDirtyLegend = !1);\n l && this.getStacks();\n c.forEach(function (a) {\n a.updateNames();\n a.setScale();\n });\n this.getMargins();\n c.forEach(function (a) {\n a.isDirty && (m = !0);\n });\n c.forEach(function (a) {\n var c = a.min + \",\" + a.max;\n a.extKey !== c && (a.extKey = c, h.push(function () {\n O(a, \"afterSetExtremes\", K(a.eventArgs, a.getExtremes()));\n delete a.eventArgs;\n }));\n (m || l) && a.redraw();\n });\n m && this.drawChartBox();\n O(this, \"predraw\");\n b.forEach(function (a) {\n (m || a.isDirty) && a.visible && a.redraw();\n a.isDirtyData = !1;\n });\n d && d.reset(!0);\n f.draw();\n O(this, \"redraw\");\n O(this, \"render\");\n k && this.temporaryDisplay(!0);\n h.forEach(function (a) {\n a.call();\n });\n };\n\n f.prototype.get = function (a) {\n function c(c) {\n return c.id === a || c.options && c.options.id === a;\n }\n\n for (var b = this.series, d = da(this.axes, c) || da(this.series, c), g = 0; !d && g < b.length; g++) d = da(b[g].points || [], c);\n\n return d;\n };\n\n f.prototype.getAxes = function () {\n var a = this,\n c = this.options,\n b = c.xAxis = fa(c.xAxis || {});\n c = c.yAxis = fa(c.yAxis || {});\n O(this, \"getAxes\");\n b.forEach(function (a, c) {\n a.index = c;\n a.isX = !0;\n });\n c.forEach(function (a, c) {\n a.index = c;\n });\n b.concat(c).forEach(function (c) {\n new e(a, c);\n });\n O(this, \"afterGetAxes\");\n };\n\n f.prototype.getSelectedPoints = function () {\n return this.series.reduce(function (a, c) {\n c.getPointsCollection().forEach(function (c) {\n Q(c.selectedStaging, c.selected) && a.push(c);\n });\n return a;\n }, []);\n };\n\n f.prototype.getSelectedSeries = function () {\n return this.series.filter(function (a) {\n return a.selected;\n });\n };\n\n f.prototype.setTitle = function (a, c, b) {\n this.applyDescription(\"title\", a);\n this.applyDescription(\"subtitle\", c);\n this.applyDescription(\"caption\", void 0);\n this.layOutTitles(b);\n };\n\n f.prototype.applyDescription = function (a, c) {\n var b = this,\n d = \"title\" === a ? {\n color: \"#333333\",\n fontSize: this.options.isStock ? \"16px\" : \"18px\"\n } : {\n color: \"#666666\"\n };\n d = this.options[a] = W(!this.styledMode && {\n style: d\n }, this.options[a], c);\n var g = this[a];\n g && c && (this[a] = g = g.destroy());\n d && !g && (g = this.renderer.text(d.text, 0, 0, d.useHTML).attr({\n align: d.align,\n \"class\": \"highcharts-\" + a,\n zIndex: d.zIndex || 4\n }).add(), g.update = function (c) {\n b[{\n title: \"setTitle\",\n subtitle: \"setSubtitle\",\n caption: \"setCaption\"\n }[a]](c);\n }, this.styledMode || g.css(d.style), this[a] = g);\n };\n\n f.prototype.layOutTitles = function (a) {\n var c = [0, 0, 0],\n b = this.renderer,\n d = this.spacingBox;\n [\"title\", \"subtitle\", \"caption\"].forEach(function (a) {\n var g = this[a],\n e = this.options[a],\n f = e.verticalAlign || \"top\";\n a = \"title\" === a ? \"top\" === f ? -3 : 0 : \"top\" === f ? c[0] + 2 : 0;\n var k;\n\n if (g) {\n this.styledMode || (k = e.style && e.style.fontSize);\n k = b.fontMetrics(k, g).b;\n g.css({\n width: (e.width || d.width + (e.widthAdjust || 0)) + \"px\"\n });\n var h = Math.round(g.getBBox(e.useHTML).height);\n g.align(K({\n y: \"bottom\" === f ? k : a + k,\n height: h\n }, e), !1, \"spacingBox\");\n e.floating || (\"top\" === f ? c[0] = Math.ceil(c[0] + h) : \"bottom\" === f && (c[2] = Math.ceil(c[2] + h)));\n }\n }, this);\n c[0] && \"top\" === (this.options.title.verticalAlign || \"top\") && (c[0] += this.options.title.margin);\n c[2] && \"bottom\" === this.options.caption.verticalAlign && (c[2] += this.options.caption.margin);\n var g = !this.titleOffset || this.titleOffset.join(\",\") !== c.join(\",\");\n this.titleOffset = c;\n O(this, \"afterLayOutTitles\");\n !this.isDirtyBox && g && (this.isDirtyBox = this.isDirtyLegend = g, this.hasRendered && Q(a, !0) && this.isDirtyBox && this.redraw());\n };\n\n f.prototype.getChartSize = function () {\n var a = this.options.chart,\n c = a.width;\n a = a.height;\n var b = this.renderTo;\n U(c) || (this.containerWidth = ea(b, \"width\"));\n U(a) || (this.containerHeight = ea(b, \"height\"));\n this.chartWidth = Math.max(0, c || this.containerWidth || 600);\n this.chartHeight = Math.max(0, ba(a, this.chartWidth) || (1 < this.containerHeight ? this.containerHeight : 400));\n };\n\n f.prototype.temporaryDisplay = function (a) {\n var c = this.renderTo;\n if (a) for (; c && c.style;) c.hcOrigStyle && (M(c, c.hcOrigStyle), delete c.hcOrigStyle), c.hcOrigDetached && (m.body.removeChild(c), c.hcOrigDetached = !1), c = c.parentNode;else for (; c && c.style;) {\n m.body.contains(c) || c.parentNode || (c.hcOrigDetached = !0, m.body.appendChild(c));\n if (\"none\" === ea(c, \"display\", !1) || c.hcOricDetached) c.hcOrigStyle = {\n display: c.style.display,\n height: c.style.height,\n overflow: c.style.overflow\n }, a = {\n display: \"block\",\n overflow: \"hidden\"\n }, c !== this.renderTo && (a.height = 0), M(c, a), c.offsetWidth || c.style.setProperty(\"display\", \"block\", \"important\");\n c = c.parentNode;\n if (c === m.body) break;\n }\n };\n\n f.prototype.setClassName = function (a) {\n this.container.className = \"highcharts-container \" + (a || \"\");\n };\n\n f.prototype.getContainer = function () {\n var c = this.options,\n b = c.chart,\n g = ka(),\n e,\n f = this.renderTo;\n f || (this.renderTo = f = b.renderTo);\n V(f) && (this.renderTo = f = m.getElementById(f));\n f || H(13, !0, this);\n var k = Z(L(f, \"data-highcharts-chart\"));\n T(k) && x[k] && x[k].hasRendered && x[k].destroy();\n L(f, \"data-highcharts-chart\", this.index);\n f.innerHTML = q.emptyHTML;\n b.skipClone || f.offsetWidth || this.temporaryDisplay();\n this.getChartSize();\n k = this.chartWidth;\n var h = this.chartHeight;\n M(f, {\n overflow: \"hidden\"\n });\n this.styledMode || (e = K({\n position: \"relative\",\n overflow: \"hidden\",\n width: k + \"px\",\n height: h + \"px\",\n textAlign: \"left\",\n lineHeight: \"normal\",\n zIndex: 0,\n \"-webkit-tap-highlight-color\": \"rgba(0,0,0,0)\",\n userSelect: \"none\",\n \"touch-action\": \"manipulation\",\n outline: \"none\"\n }, b.style || {}));\n this.container = g = R(\"div\", {\n id: g\n }, e, f);\n this._cursor = g.style.cursor;\n this.renderer = new (b.renderer || !a ? t.getRendererType(b.renderer) : d)(g, k, h, void 0, b.forExport, c.exporting && c.exporting.allowHTML, this.styledMode);\n J(void 0, this);\n this.setClassName(b.className);\n if (this.styledMode) for (var p in c.defs) this.renderer.definition(c.defs[p]);else this.renderer.setStyle(b.style);\n this.renderer.chartIndex = this.index;\n O(this, \"afterGetContainer\");\n };\n\n f.prototype.getMargins = function (a) {\n var c = this.spacing,\n b = this.margin,\n d = this.titleOffset;\n this.resetMargins();\n d[0] && !U(b[0]) && (this.plotTop = Math.max(this.plotTop, d[0] + c[0]));\n d[2] && !U(b[2]) && (this.marginBottom = Math.max(this.marginBottom, d[2] + c[2]));\n this.legend && this.legend.display && this.legend.adjustMargins(b, c);\n O(this, \"getMargins\");\n a || this.getAxisMargins();\n };\n\n f.prototype.getAxisMargins = function () {\n var a = this,\n c = a.axisOffset = [0, 0, 0, 0],\n b = a.colorAxis,\n d = a.margin,\n g = function (a) {\n a.forEach(function (a) {\n a.visible && a.getOffset();\n });\n };\n\n a.hasCartesianSeries ? g(a.axes) : b && b.length && g(b);\n k.forEach(function (b, g) {\n U(d[g]) || (a[b] += c[g]);\n });\n a.setChartSize();\n };\n\n f.prototype.reflow = function (a) {\n var c = this,\n b = c.options.chart,\n d = c.renderTo,\n e = U(b.width) && U(b.height),\n f = b.width || ea(d, \"width\");\n b = b.height || ea(d, \"height\");\n d = a ? a.target : g;\n delete c.pointer.chartPosition;\n\n if (!e && !c.isPrinting && f && b && (d === g || d === m)) {\n if (f !== c.containerWidth || b !== c.containerHeight) p.clearTimeout(c.reflowTimeout), c.reflowTimeout = ia(function () {\n c.container && c.setSize(void 0, void 0, !1);\n }, a ? 100 : 0);\n c.containerWidth = f;\n c.containerHeight = b;\n }\n };\n\n f.prototype.setReflow = function (a) {\n var c = this;\n !1 === a || this.unbindReflow ? !1 === a && this.unbindReflow && (this.unbindReflow = this.unbindReflow()) : (this.unbindReflow = u(g, \"resize\", function (a) {\n c.options && c.reflow(a);\n }), u(this, \"destroy\", this.unbindReflow));\n };\n\n f.prototype.setSize = function (a, c, b) {\n var d = this,\n g = d.renderer;\n d.isResizing += 1;\n J(b, d);\n b = g.globalAnimation;\n d.oldChartHeight = d.chartHeight;\n d.oldChartWidth = d.chartWidth;\n \"undefined\" !== typeof a && (d.options.chart.width = a);\n \"undefined\" !== typeof c && (d.options.chart.height = c);\n d.getChartSize();\n d.styledMode || (b ? r : M)(d.container, {\n width: d.chartWidth + \"px\",\n height: d.chartHeight + \"px\"\n }, b);\n d.setChartSize(!0);\n g.setSize(d.chartWidth, d.chartHeight, b);\n d.axes.forEach(function (a) {\n a.isDirty = !0;\n a.setScale();\n });\n d.isDirtyLegend = !0;\n d.isDirtyBox = !0;\n d.layOutTitles();\n d.getMargins();\n d.redraw(b);\n d.oldChartHeight = null;\n O(d, \"resize\");\n ia(function () {\n d && O(d, \"endResize\", null, function () {\n --d.isResizing;\n });\n }, n(b).duration);\n };\n\n f.prototype.setChartSize = function (a) {\n var c = this.inverted,\n b = this.renderer,\n d = this.chartWidth,\n g = this.chartHeight,\n e = this.options.chart,\n f = this.spacing,\n k = this.clipOffset,\n h,\n m,\n p,\n n;\n this.plotLeft = h = Math.round(this.plotLeft);\n this.plotTop = m = Math.round(this.plotTop);\n this.plotWidth = p = Math.max(0, Math.round(d - h - this.marginRight));\n this.plotHeight = n = Math.max(0, Math.round(g - m - this.marginBottom));\n this.plotSizeX = c ? n : p;\n this.plotSizeY = c ? p : n;\n this.plotBorderWidth = e.plotBorderWidth || 0;\n this.spacingBox = b.spacingBox = {\n x: f[3],\n y: f[0],\n width: d - f[3] - f[1],\n height: g - f[0] - f[2]\n };\n this.plotBox = b.plotBox = {\n x: h,\n y: m,\n width: p,\n height: n\n };\n c = 2 * Math.floor(this.plotBorderWidth / 2);\n d = Math.ceil(Math.max(c, k[3]) / 2);\n g = Math.ceil(Math.max(c, k[0]) / 2);\n this.clipBox = {\n x: d,\n y: g,\n width: Math.floor(this.plotSizeX - Math.max(c, k[1]) / 2 - d),\n height: Math.max(0, Math.floor(this.plotSizeY - Math.max(c, k[2]) / 2 - g))\n };\n a || (this.axes.forEach(function (a) {\n a.setAxisSize();\n a.setAxisTranslation();\n }), b.alignElements());\n O(this, \"afterSetChartSize\", {\n skipAxes: a\n });\n };\n\n f.prototype.resetMargins = function () {\n O(this, \"resetMargins\");\n var a = this,\n c = a.options.chart;\n [\"margin\", \"spacing\"].forEach(function (b) {\n var d = c[b],\n g = N(d) ? d : [d, d, d, d];\n [\"Top\", \"Right\", \"Bottom\", \"Left\"].forEach(function (d, e) {\n a[b][e] = Q(c[b + d], g[e]);\n });\n });\n k.forEach(function (c, b) {\n a[c] = Q(a.margin[b], a.spacing[b]);\n });\n a.axisOffset = [0, 0, 0, 0];\n a.clipOffset = [0, 0, 0, 0];\n };\n\n f.prototype.drawChartBox = function () {\n var a = this.options.chart,\n c = this.renderer,\n b = this.chartWidth,\n d = this.chartHeight,\n g = this.styledMode,\n e = this.plotBGImage,\n f = a.backgroundColor,\n k = a.plotBackgroundColor,\n h = a.plotBackgroundImage,\n m = this.plotLeft,\n p = this.plotTop,\n n = this.plotWidth,\n l = this.plotHeight,\n F = this.plotBox,\n r = this.clipRect,\n q = this.clipBox,\n u = this.chartBackground,\n t = this.plotBackground,\n N = this.plotBorder,\n z,\n w = \"animate\";\n u || (this.chartBackground = u = c.rect().addClass(\"highcharts-background\").add(), w = \"attr\");\n if (g) var x = z = u.strokeWidth();else {\n x = a.borderWidth || 0;\n z = x + (a.shadow ? 8 : 0);\n f = {\n fill: f || \"none\"\n };\n if (x || u[\"stroke-width\"]) f.stroke = a.borderColor, f[\"stroke-width\"] = x;\n u.attr(f).shadow(a.shadow);\n }\n u[w]({\n x: z / 2,\n y: z / 2,\n width: b - z - x % 2,\n height: d - z - x % 2,\n r: a.borderRadius\n });\n w = \"animate\";\n t || (w = \"attr\", this.plotBackground = t = c.rect().addClass(\"highcharts-plot-background\").add());\n t[w](F);\n g || (t.attr({\n fill: k || \"none\"\n }).shadow(a.plotShadow), h && (e ? (h !== e.attr(\"href\") && e.attr(\"href\", h), e.animate(F)) : this.plotBGImage = c.image(h, m, p, n, l).add()));\n r ? r.animate({\n width: q.width,\n height: q.height\n }) : this.clipRect = c.clipRect(q);\n w = \"animate\";\n N || (w = \"attr\", this.plotBorder = N = c.rect().addClass(\"highcharts-plot-border\").attr({\n zIndex: 1\n }).add());\n g || N.attr({\n stroke: a.plotBorderColor,\n \"stroke-width\": a.plotBorderWidth || 0,\n fill: \"none\"\n });\n N[w](N.crisp({\n x: m,\n y: p,\n width: n,\n height: l\n }, -N.strokeWidth()));\n this.isDirtyBox = !1;\n O(this, \"afterDrawChartBox\");\n };\n\n f.prototype.propFromSeries = function () {\n var a = this,\n c = a.options.chart,\n b = a.options.series,\n d,\n g,\n e;\n [\"inverted\", \"angular\", \"polar\"].forEach(function (f) {\n g = A[c.type || c.defaultSeriesType];\n e = c[f] || g && g.prototype[f];\n\n for (d = b && b.length; !e && d--;) (g = A[b[d].type]) && g.prototype[f] && (e = !0);\n\n a[f] = e;\n });\n };\n\n f.prototype.linkSeries = function () {\n var a = this,\n c = a.series;\n c.forEach(function (a) {\n a.linkedSeries.length = 0;\n });\n c.forEach(function (c) {\n var b = c.options.linkedTo;\n V(b) && (b = \":previous\" === b ? a.series[c.index - 1] : a.get(b)) && b.linkedParent !== c && (b.linkedSeries.push(c), c.linkedParent = b, b.enabledDataSorting && c.setDataSortingOptions(), c.visible = Q(c.options.visible, b.options.visible, c.visible));\n });\n O(this, \"afterLinkSeries\");\n };\n\n f.prototype.renderSeries = function () {\n this.series.forEach(function (a) {\n a.translate();\n a.render();\n });\n };\n\n f.prototype.renderLabels = function () {\n var a = this,\n c = a.options.labels;\n c.items && c.items.forEach(function (b) {\n var d = K(c.style, b.style),\n g = Z(d.left) + a.plotLeft,\n e = Z(d.top) + a.plotTop + 12;\n delete d.left;\n delete d.top;\n a.renderer.text(b.html, g, e).attr({\n zIndex: 2\n }).css(d).add();\n });\n };\n\n f.prototype.render = function () {\n var a = this.axes,\n c = this.colorAxis,\n b = this.renderer,\n d = this.options,\n g = function (a) {\n a.forEach(function (a) {\n a.visible && a.render();\n });\n },\n e = 0;\n\n this.setTitle();\n this.legend = new E(this, d.legend);\n this.getStacks && this.getStacks();\n this.getMargins(!0);\n this.setChartSize();\n d = this.plotWidth;\n a.some(function (a) {\n if (a.horiz && a.visible && a.options.labels.enabled && a.series.length) return e = 21, !0;\n });\n var f = this.plotHeight = Math.max(this.plotHeight - e, 0);\n a.forEach(function (a) {\n a.setScale();\n });\n this.getAxisMargins();\n var k = 1.1 < d / this.plotWidth,\n h = 1.05 < f / this.plotHeight;\n if (k || h) a.forEach(function (a) {\n (a.horiz && k || !a.horiz && h) && a.setTickInterval(!0);\n }), this.getMargins();\n this.drawChartBox();\n this.hasCartesianSeries ? g(a) : c && c.length && g(c);\n this.seriesGroup || (this.seriesGroup = b.g(\"series-group\").attr({\n zIndex: 3\n }).add());\n this.renderSeries();\n this.renderLabels();\n this.addCredits();\n this.setResponsive && this.setResponsive();\n this.hasRendered = !0;\n };\n\n f.prototype.addCredits = function (a) {\n var c = this,\n b = W(!0, this.options.credits, a);\n b.enabled && !this.credits && (this.credits = this.renderer.text(b.text + (this.mapCredits || \"\"), 0, 0).addClass(\"highcharts-credits\").on(\"click\", function () {\n b.href && (g.location.href = b.href);\n }).attr({\n align: b.position.align,\n zIndex: 8\n }), c.styledMode || this.credits.css(b.style), this.credits.add().align(b.position), this.credits.update = function (a) {\n c.credits = c.credits.destroy();\n c.addCredits(a);\n });\n };\n\n f.prototype.destroy = function () {\n var a = this,\n c = a.axes,\n b = a.series,\n d = a.container,\n g = d && d.parentNode,\n e;\n O(a, \"destroy\");\n a.renderer.forExport ? I(x, a) : x[a.index] = void 0;\n v.chartCount--;\n a.renderTo.removeAttribute(\"data-highcharts-chart\");\n ha(a);\n\n for (e = c.length; e--;) c[e] = c[e].destroy();\n\n this.scroller && this.scroller.destroy && this.scroller.destroy();\n\n for (e = b.length; e--;) b[e] = b[e].destroy();\n\n \"title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer\".split(\" \").forEach(function (c) {\n var b = a[c];\n b && b.destroy && (a[c] = b.destroy());\n });\n d && (d.innerHTML = q.emptyHTML, ha(d), g && P(d));\n X(a, function (c, b) {\n delete a[b];\n });\n };\n\n f.prototype.firstRender = function () {\n var a = this,\n c = a.options;\n\n if (!a.isReadyToRender || a.isReadyToRender()) {\n a.getContainer();\n a.resetMargins();\n a.setChartSize();\n a.propFromSeries();\n a.getAxes();\n (F(c.series) ? c.series : []).forEach(function (c) {\n a.initSeries(c);\n });\n a.linkSeries();\n a.setSeriesData();\n O(a, \"beforeRender\");\n y && (G.isRequired() ? a.pointer = new G(a, c) : a.pointer = new y(a, c));\n a.render();\n a.pointer.getChartPosition();\n if (!a.renderer.imgCount && !a.hasLoaded) a.onload();\n a.temporaryDisplay(!0);\n }\n };\n\n f.prototype.onload = function () {\n this.callbacks.concat([this.callback]).forEach(function (a) {\n a && \"undefined\" !== typeof this.index && a.apply(this, [this]);\n }, this);\n O(this, \"load\");\n O(this, \"render\");\n U(this.index) && this.setReflow(this.options.chart.reflow);\n this.warnIfA11yModuleNotLoaded();\n this.hasLoaded = !0;\n };\n\n f.prototype.warnIfA11yModuleNotLoaded = function () {\n var a = this.options,\n c = this.title;\n a && !this.accessibility && (this.renderer.boxWrapper.attr({\n role: \"img\",\n \"aria-label\": c && c.element.textContent || \"\"\n }), a.accessibility && !1 === a.accessibility.enabled || H('Highcharts warning: Consider including the \"accessibility.js\" module to make your chart more usable for people with disabilities. Set the \"accessibility.enabled\" option to false to remove this warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.', !1, this));\n };\n\n f.prototype.addSeries = function (a, c, b) {\n var d = this,\n g;\n a && (c = Q(c, !0), O(d, \"addSeries\", {\n options: a\n }, function () {\n g = d.initSeries(a);\n d.isDirtyLegend = !0;\n d.linkSeries();\n g.enabledDataSorting && g.setData(a.data, !1);\n O(d, \"afterAddSeries\", {\n series: g\n });\n c && d.redraw(b);\n }));\n return g;\n };\n\n f.prototype.addAxis = function (a, c, b, d) {\n return this.createAxis(c ? \"xAxis\" : \"yAxis\", {\n axis: a,\n redraw: b,\n animation: d\n });\n };\n\n f.prototype.addColorAxis = function (a, c, b) {\n return this.createAxis(\"colorAxis\", {\n axis: a,\n redraw: c,\n animation: b\n });\n };\n\n f.prototype.createAxis = function (a, c) {\n a = new e(this, W(c.axis, {\n index: this[a].length,\n isX: \"xAxis\" === a\n }));\n Q(c.redraw, !0) && this.redraw(c.animation);\n return a;\n };\n\n f.prototype.showLoading = function (a) {\n var c = this,\n b = c.options,\n d = b.loading,\n g = function () {\n e && M(e, {\n left: c.plotLeft + \"px\",\n top: c.plotTop + \"px\",\n width: c.plotWidth + \"px\",\n height: c.plotHeight + \"px\"\n });\n },\n e = c.loadingDiv,\n f = c.loadingSpan;\n\n e || (c.loadingDiv = e = R(\"div\", {\n className: \"highcharts-loading highcharts-loading-hidden\"\n }, null, c.container));\n f || (c.loadingSpan = f = R(\"span\", {\n className: \"highcharts-loading-inner\"\n }, null, e), u(c, \"redraw\", g));\n e.className = \"highcharts-loading\";\n q.setElementHTML(f, Q(a, b.lang.loading, \"\"));\n c.styledMode || (M(e, K(d.style, {\n zIndex: 10\n })), M(f, d.labelStyle), c.loadingShown || (M(e, {\n opacity: 0,\n display: \"\"\n }), r(e, {\n opacity: d.style.opacity || .5\n }, {\n duration: d.showDuration || 0\n })));\n c.loadingShown = !0;\n g();\n };\n\n f.prototype.hideLoading = function () {\n var a = this.options,\n c = this.loadingDiv;\n c && (c.className = \"highcharts-loading highcharts-loading-hidden\", this.styledMode || r(c, {\n opacity: 0\n }, {\n duration: a.loading.hideDuration || 100,\n complete: function () {\n M(c, {\n display: \"none\"\n });\n }\n }));\n this.loadingShown = !1;\n };\n\n f.prototype.update = function (a, c, d, g) {\n var e = this,\n f = {\n credits: \"addCredits\",\n title: \"setTitle\",\n subtitle: \"setSubtitle\",\n caption: \"setCaption\"\n },\n k = a.isResponsiveOptions,\n h = [],\n m,\n p;\n O(e, \"update\", {\n options: a\n });\n k || e.setResponsive(!1, !0);\n a = S(a, e.options);\n e.userOptions = W(e.userOptions, a);\n var n = a.chart;\n\n if (n) {\n W(!0, e.options.chart, n);\n \"className\" in n && e.setClassName(n.className);\n \"reflow\" in n && e.setReflow(n.reflow);\n\n if (\"inverted\" in n || \"polar\" in n || \"type\" in n) {\n e.propFromSeries();\n var l = !0;\n }\n\n \"alignTicks\" in n && (l = !0);\n \"events\" in n && z(this, n);\n X(n, function (a, c) {\n -1 !== e.propsRequireUpdateSeries.indexOf(\"chart.\" + c) && (m = !0);\n -1 !== e.propsRequireDirtyBox.indexOf(c) && (e.isDirtyBox = !0);\n -1 !== e.propsRequireReflow.indexOf(c) && (k ? e.isDirtyBox = !0 : p = !0);\n });\n !e.styledMode && n.style && e.renderer.setStyle(e.options.chart.style || {});\n }\n\n !e.styledMode && a.colors && (this.options.colors = a.colors);\n a.time && (this.time === D && (this.time = new b(a.time)), W(!0, e.options.time, a.time));\n X(a, function (c, b) {\n if (e[b] && \"function\" === typeof e[b].update) e[b].update(c, !1);else if (\"function\" === typeof e[f[b]]) e[f[b]](c);else \"colors\" !== b && -1 === e.collectionsWithUpdate.indexOf(b) && W(!0, e.options[b], a[b]);\n \"chart\" !== b && -1 !== e.propsRequireUpdateSeries.indexOf(b) && (m = !0);\n });\n this.collectionsWithUpdate.forEach(function (c) {\n if (a[c]) {\n var b = [];\n e[c].forEach(function (a, c) {\n a.options.isInternal || b.push(Q(a.options.index, c));\n });\n fa(a[c]).forEach(function (a, g) {\n var f = U(a.id),\n k;\n f && (k = e.get(a.id));\n !k && e[c] && (k = e[c][b ? b[g] : g]) && f && U(k.options.id) && (k = void 0);\n k && k.coll === c && (k.update(a, !1), d && (k.touched = !0));\n !k && d && e.collectionsWithInit[c] && (e.collectionsWithInit[c][0].apply(e, [a].concat(e.collectionsWithInit[c][1] || []).concat([!1])).touched = !0);\n });\n d && e[c].forEach(function (a) {\n a.touched || a.options.isInternal ? delete a.touched : h.push(a);\n });\n }\n });\n h.forEach(function (a) {\n a.chart && a.remove && a.remove(!1);\n });\n l && e.axes.forEach(function (a) {\n a.update({}, !1);\n });\n m && e.getSeriesOrderByLinks().forEach(function (a) {\n a.chart && a.update({}, !1);\n }, this);\n l = n && n.width;\n n = n && (V(n.height) ? ba(n.height, l || e.chartWidth) : n.height);\n p || T(l) && l !== e.chartWidth || T(n) && n !== e.chartHeight ? e.setSize(l, n, g) : Q(c, !0) && e.redraw(g);\n O(e, \"afterUpdate\", {\n options: a,\n redraw: c,\n animation: g\n });\n };\n\n f.prototype.setSubtitle = function (a, c) {\n this.applyDescription(\"subtitle\", a);\n this.layOutTitles(c);\n };\n\n f.prototype.setCaption = function (a, c) {\n this.applyDescription(\"caption\", a);\n this.layOutTitles(c);\n };\n\n f.prototype.showResetZoom = function () {\n function a() {\n b.zoomOut();\n }\n\n var b = this,\n d = c.lang,\n g = b.options.chart.resetZoomButton,\n e = g.theme,\n f = \"chart\" === g.relativeTo || \"spacingBox\" === g.relativeTo ? null : \"scrollablePlotBox\";\n O(this, \"beforeShowResetZoom\", null, function () {\n b.resetZoomButton = b.renderer.button(d.resetZoom, null, null, a, e).attr({\n align: g.position.align,\n title: d.resetZoomTitle\n }).addClass(\"highcharts-reset-zoom\").add().align(g.position, !1, f);\n });\n O(this, \"afterShowResetZoom\");\n };\n\n f.prototype.zoomOut = function () {\n O(this, \"selection\", {\n resetSelection: !0\n }, this.zoom);\n };\n\n f.prototype.zoom = function (a) {\n var c = this,\n b = c.pointer,\n d = c.inverted ? b.mouseDownX : b.mouseDownY,\n g = !1,\n e;\n !a || a.resetSelection ? (c.axes.forEach(function (a) {\n e = a.zoom();\n }), b.initiated = !1) : a.xAxis.concat(a.yAxis).forEach(function (a) {\n var f = a.axis,\n k = c.inverted ? f.left : f.top,\n h = c.inverted ? k + f.width : k + f.height,\n m = f.isXAxis,\n n = !1;\n if (!m && d >= k && d <= h || m || !U(d)) n = !0;\n b[m ? \"zoomX\" : \"zoomY\"] && n && (e = f.zoom(a.min, a.max), f.displayBtn && (g = !0));\n });\n var f = c.resetZoomButton;\n g && !f ? c.showResetZoom() : !g && N(f) && (c.resetZoomButton = f.destroy());\n e && c.redraw(Q(c.options.chart.animation, a && a.animation, 100 > c.pointCount));\n };\n\n f.prototype.pan = function (a, c) {\n var b = this,\n d = b.hoverPoints;\n c = \"object\" === typeof c ? c : {\n enabled: c,\n type: \"x\"\n };\n var g = b.options.chart;\n g && g.panning && (g.panning = c);\n var e = c.type,\n f;\n O(this, \"pan\", {\n originalEvent: a\n }, function () {\n d && d.forEach(function (a) {\n a.setState();\n });\n var c = b.xAxis;\n \"xy\" === e ? c = c.concat(b.yAxis) : \"y\" === e && (c = b.yAxis);\n var g = {};\n c.forEach(function (c) {\n if (c.options.panningEnabled && !c.options.isInternal) {\n var d = c.horiz,\n k = a[d ? \"chartX\" : \"chartY\"];\n d = d ? \"mouseDownX\" : \"mouseDownY\";\n var h = b[d],\n m = c.minPointOffset || 0,\n n = c.reversed && !b.inverted || !c.reversed && b.inverted ? -1 : 1,\n p = c.getExtremes(),\n l = c.toValue(h - k, !0) + m * n,\n F = c.toValue(h + c.len - k, !0) - (m * n || c.isXAxis && c.pointRangePadding || 0),\n r = F < l;\n n = c.hasVerticalPanning();\n h = r ? F : l;\n l = r ? l : F;\n var q = c.panningState;\n !n || c.isXAxis || q && !q.isDirty || c.series.forEach(function (a) {\n var c = a.getProcessedData(!0);\n c = a.getExtremes(c.yData, !0);\n q || (q = {\n startMin: Number.MAX_VALUE,\n startMax: -Number.MAX_VALUE\n });\n T(c.dataMin) && T(c.dataMax) && (q.startMin = Math.min(Q(a.options.threshold, Infinity), c.dataMin, q.startMin), q.startMax = Math.max(Q(a.options.threshold, -Infinity), c.dataMax, q.startMax));\n });\n n = Math.min(Q(q && q.startMin, p.dataMin), m ? p.min : c.toValue(c.toPixels(p.min) - c.minPixelPadding));\n F = Math.max(Q(q && q.startMax, p.dataMax), m ? p.max : c.toValue(c.toPixels(p.max) + c.minPixelPadding));\n c.panningState = q;\n c.isOrdinal || (m = n - h, 0 < m && (l += m, h = n), m = l - F, 0 < m && (l = F, h -= m), c.series.length && h !== p.min && l !== p.max && h >= n && l <= F && (c.setExtremes(h, l, !1, !1, {\n trigger: \"pan\"\n }), !b.resetZoomButton && h !== n && l !== F && e.match(\"y\") && (b.showResetZoom(), c.displayBtn = !1), f = !0), g[d] = k);\n }\n });\n X(g, function (a, c) {\n b[c] = a;\n });\n f && b.redraw(!1);\n M(b.container, {\n cursor: \"move\"\n });\n });\n };\n\n return f;\n }();\n\n K(f.prototype, {\n callbacks: [],\n collectionsWithInit: {\n xAxis: [f.prototype.addAxis, [!0]],\n yAxis: [f.prototype.addAxis, [!1]],\n series: [f.prototype.addSeries]\n },\n collectionsWithUpdate: [\"xAxis\", \"yAxis\", \"series\"],\n propsRequireDirtyBox: \"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow\".split(\" \"),\n propsRequireReflow: \"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft\".split(\" \"),\n propsRequireUpdateSeries: \"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip\".split(\" \")\n });\n \"\";\n return f;\n });\n K(l, \"Core/Legend/LegendSymbol.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.merge,\n l = f.pick,\n C;\n\n (function (f) {\n f.drawLineMarker = function (f) {\n var v = this.options,\n B = f.symbolWidth,\n y = f.symbolHeight,\n t = y / 2,\n h = this.chart.renderer,\n d = this.legendGroup;\n f = f.baseline - Math.round(.3 * f.fontMetrics.b);\n var b = {},\n p = v.marker;\n this.chart.styledMode || (b = {\n \"stroke-width\": v.lineWidth || 0\n }, v.dashStyle && (b.dashstyle = v.dashStyle));\n this.legendLine = h.path([[\"M\", 0, f], [\"L\", B, f]]).addClass(\"highcharts-graph\").attr(b).add(d);\n p && !1 !== p.enabled && B && (v = Math.min(l(p.radius, t), t), 0 === this.symbol.indexOf(\"url\") && (p = e(p, {\n width: y,\n height: y\n }), v = 0), this.legendSymbol = B = h.symbol(this.symbol, B / 2 - v, f - v, 2 * v, 2 * v, p).addClass(\"highcharts-point\").add(d), B.isMarker = !0);\n };\n\n f.drawRectangle = function (e, f) {\n var v = e.symbolHeight,\n y = e.options.squareSymbol;\n f.legendSymbol = this.chart.renderer.rect(y ? (e.symbolWidth - v) / 2 : 0, e.baseline - v + 1, y ? v : e.symbolWidth, v, l(e.options.symbolRadius, v / 2)).addClass(\"highcharts-point\").attr({\n zIndex: 3\n }).add(f.legendGroup);\n };\n })(C || (C = {}));\n\n return C;\n });\n K(l, \"Core/Series/SeriesDefaults.js\", [], function () {\n return {\n lineWidth: 2,\n allowPointSelect: !1,\n crisp: !0,\n showCheckbox: !1,\n animation: {\n duration: 1E3\n },\n events: {},\n marker: {\n enabledThreshold: 2,\n lineColor: \"#ffffff\",\n lineWidth: 0,\n radius: 4,\n states: {\n normal: {\n animation: !0\n },\n hover: {\n animation: {\n duration: 50\n },\n enabled: !0,\n radiusPlus: 2,\n lineWidthPlus: 1\n },\n select: {\n fillColor: \"#cccccc\",\n lineColor: \"#000000\",\n lineWidth: 2\n }\n }\n },\n point: {\n events: {}\n },\n dataLabels: {\n animation: {},\n align: \"center\",\n defer: !0,\n formatter: function () {\n var f = this.series.chart.numberFormatter;\n return \"number\" !== typeof this.y ? \"\" : f(this.y, -1);\n },\n padding: 5,\n style: {\n fontSize: \"11px\",\n fontWeight: \"bold\",\n color: \"contrast\",\n textOutline: \"1px contrast\"\n },\n verticalAlign: \"bottom\",\n x: 0,\n y: 0\n },\n cropThreshold: 300,\n opacity: 1,\n pointRange: 0,\n softThreshold: !0,\n states: {\n normal: {\n animation: !0\n },\n hover: {\n animation: {\n duration: 50\n },\n lineWidthPlus: 1,\n marker: {},\n halo: {\n size: 10,\n opacity: .25\n }\n },\n select: {\n animation: {\n duration: 0\n }\n },\n inactive: {\n animation: {\n duration: 50\n },\n opacity: .2\n }\n },\n stickyTracking: !0,\n turboThreshold: 1E3,\n findNearestPointBy: \"x\"\n };\n });\n K(l, \"Core/Series/Series.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/Foundation.js\"], l[\"Core/Globals.js\"], l[\"Core/Legend/LegendSymbol.js\"], l[\"Core/Series/Point.js\"], l[\"Core/Series/SeriesDefaults.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G, B, y, t) {\n var h = f.animObject,\n d = f.setAnimation,\n b = e.defaultOptions,\n p = l.registerEventOptions,\n q = C.hasTouch,\n r = C.svg,\n n = C.win,\n J = B.seriesTypes,\n w = t.addEvent,\n z = t.arrayMax,\n x = t.arrayMin,\n m = t.clamp,\n k = t.cleanRecursively,\n a = t.correctFloat,\n g = t.defined,\n c = t.erase,\n D = t.error,\n A = t.extend,\n u = t.find,\n L = t.fireEvent,\n S = t.getNestedProperty,\n R = t.isArray,\n M = t.isNumber,\n U = t.isString,\n P = t.merge,\n I = t.objectEach,\n H = t.pick,\n K = t.removeEvent,\n da = t.splat,\n O = t.syncTimeout;\n\n f = function () {\n function e() {\n this.zones = this.yAxis = this.xAxis = this.userOptions = this.tooltipOptions = this.processedYData = this.processedXData = this.points = this.options = this.linkedSeries = this.index = this.eventsToUnbind = this.eventOptions = this.data = this.chart = this._i = void 0;\n }\n\n e.prototype.init = function (a, c) {\n L(this, \"init\", {\n options: c\n });\n var b = this,\n d = a.series;\n this.eventsToUnbind = [];\n b.chart = a;\n b.options = b.setOptions(c);\n c = b.options;\n b.linkedSeries = [];\n b.bindAxes();\n A(b, {\n name: c.name,\n state: \"\",\n visible: !1 !== c.visible,\n selected: !0 === c.selected\n });\n p(this, c);\n var g = c.events;\n if (g && g.click || c.point && c.point.events && c.point.events.click || c.allowPointSelect) a.runTrackerClick = !0;\n b.getColor();\n b.getSymbol();\n b.parallelArrays.forEach(function (a) {\n b[a + \"Data\"] || (b[a + \"Data\"] = []);\n });\n b.isCartesian && (a.hasCartesianSeries = !0);\n var e;\n d.length && (e = d[d.length - 1]);\n b._i = H(e && e._i, -1) + 1;\n b.opacity = b.options.opacity;\n a.orderSeries(this.insert(d));\n c.dataSorting && c.dataSorting.enabled ? b.setDataSortingOptions() : b.points || b.data || b.setData(c.data, !1);\n L(this, \"afterInit\");\n };\n\n e.prototype.is = function (a) {\n return J[a] && this instanceof J[a];\n };\n\n e.prototype.insert = function (a) {\n var c = this.options.index,\n b;\n\n if (M(c)) {\n for (b = a.length; b--;) if (c >= H(a[b].options.index, a[b]._i)) {\n a.splice(b + 1, 0, this);\n break;\n }\n\n -1 === b && a.unshift(this);\n b += 1;\n } else a.push(this);\n\n return H(b, a.length - 1);\n };\n\n e.prototype.bindAxes = function () {\n var a = this,\n c = a.options,\n b = a.chart,\n d;\n L(this, \"bindAxes\", null, function () {\n (a.axisTypes || []).forEach(function (g) {\n var e = 0;\n b[g].forEach(function (b) {\n d = b.options;\n if (c[g] === e && !d.isInternal || \"undefined\" !== typeof c[g] && c[g] === d.id || \"undefined\" === typeof c[g] && 0 === d.index) a.insert(b.series), a[g] = b, b.isDirty = !0;\n d.isInternal || e++;\n });\n a[g] || a.optionalAxis === g || D(18, !0, b);\n });\n });\n L(this, \"afterBindAxes\");\n };\n\n e.prototype.updateParallelArrays = function (a, c) {\n var b = a.series,\n d = arguments,\n g = M(c) ? function (d) {\n var g = \"y\" === d && b.toYData ? b.toYData(a) : a[d];\n b[d + \"Data\"][c] = g;\n } : function (a) {\n Array.prototype[c].apply(b[a + \"Data\"], Array.prototype.slice.call(d, 2));\n };\n b.parallelArrays.forEach(g);\n };\n\n e.prototype.hasData = function () {\n return this.visible && \"undefined\" !== typeof this.dataMax && \"undefined\" !== typeof this.dataMin || this.visible && this.yData && 0 < this.yData.length;\n };\n\n e.prototype.autoIncrement = function (a) {\n var c = this.options,\n b = c.pointIntervalUnit,\n d = c.relativeXValue,\n g = this.chart.time,\n e = this.xIncrement,\n f;\n e = H(e, c.pointStart, 0);\n this.pointInterval = f = H(this.pointInterval, c.pointInterval, 1);\n d && M(a) && (f *= a);\n b && (c = new g.Date(e), \"day\" === b ? g.set(\"Date\", c, g.get(\"Date\", c) + f) : \"month\" === b ? g.set(\"Month\", c, g.get(\"Month\", c) + f) : \"year\" === b && g.set(\"FullYear\", c, g.get(\"FullYear\", c) + f), f = c.getTime() - e);\n if (d && M(a)) return e + f;\n this.xIncrement = e + f;\n return e;\n };\n\n e.prototype.setDataSortingOptions = function () {\n var a = this.options;\n A(this, {\n requireSorting: !1,\n sorted: !1,\n enabledDataSorting: !0,\n allowDG: !1\n });\n g(a.pointRange) || (a.pointRange = 1);\n };\n\n e.prototype.setOptions = function (a) {\n var c = this.chart,\n d = c.options,\n e = d.plotOptions,\n f = c.userOptions || {};\n a = P(a);\n c = c.styledMode;\n var k = {\n plotOptions: e,\n userOptions: a\n };\n L(this, \"setOptions\", k);\n var h = k.plotOptions[this.type],\n m = f.plotOptions || {};\n this.userOptions = k.userOptions;\n f = P(h, e.series, f.plotOptions && f.plotOptions[this.type], a);\n this.tooltipOptions = P(b.tooltip, b.plotOptions.series && b.plotOptions.series.tooltip, b.plotOptions[this.type].tooltip, d.tooltip.userOptions, e.series && e.series.tooltip, e[this.type].tooltip, a.tooltip);\n this.stickyTracking = H(a.stickyTracking, m[this.type] && m[this.type].stickyTracking, m.series && m.series.stickyTracking, this.tooltipOptions.shared && !this.noSharedTooltip ? !0 : f.stickyTracking);\n null === h.marker && delete f.marker;\n this.zoneAxis = f.zoneAxis;\n e = this.zones = (f.zones || []).slice();\n !f.negativeColor && !f.negativeFillColor || f.zones || (d = {\n value: f[this.zoneAxis + \"Threshold\"] || f.threshold || 0,\n className: \"highcharts-negative\"\n }, c || (d.color = f.negativeColor, d.fillColor = f.negativeFillColor), e.push(d));\n e.length && g(e[e.length - 1].value) && e.push(c ? {} : {\n color: this.color,\n fillColor: this.fillColor\n });\n L(this, \"afterSetOptions\", {\n options: f\n });\n return f;\n };\n\n e.prototype.getName = function () {\n return H(this.options.name, \"Series \" + (this.index + 1));\n };\n\n e.prototype.getCyclic = function (a, c, b) {\n var d = this.chart,\n e = this.userOptions,\n f = a + \"Index\",\n k = a + \"Counter\",\n h = b ? b.length : H(d.options.chart[a + \"Count\"], d[a + \"Count\"]);\n\n if (!c) {\n var m = H(e[f], e[\"_\" + f]);\n g(m) || (d.series.length || (d[k] = 0), e[\"_\" + f] = m = d[k] % h, d[k] += 1);\n b && (c = b[m]);\n }\n\n \"undefined\" !== typeof m && (this[f] = m);\n this[a] = c;\n };\n\n e.prototype.getColor = function () {\n this.chart.styledMode ? this.getCyclic(\"color\") : this.options.colorByPoint ? this.color = \"#cccccc\" : this.getCyclic(\"color\", this.options.color || b.plotOptions[this.type].color, this.chart.options.colors);\n };\n\n e.prototype.getPointsCollection = function () {\n return (this.hasGroupedData ? this.points : this.data) || [];\n };\n\n e.prototype.getSymbol = function () {\n this.getCyclic(\"symbol\", this.options.marker.symbol, this.chart.options.symbols);\n };\n\n e.prototype.findPointIndex = function (a, c) {\n var b = a.id,\n d = a.x,\n g = this.points,\n e = this.options.dataSorting,\n f,\n k;\n if (b) e = this.chart.get(b), e instanceof E && (f = e);else if (this.linkedParent || this.enabledDataSorting || this.options.relativeXValue) if (f = function (c) {\n return !c.touched && c.index === a.index;\n }, e && e.matchByName ? f = function (c) {\n return !c.touched && c.name === a.name;\n } : this.options.relativeXValue && (f = function (c) {\n return !c.touched && c.options.x === a.x;\n }), f = u(g, f), !f) return;\n\n if (f) {\n var h = f && f.index;\n \"undefined\" !== typeof h && (k = !0);\n }\n\n \"undefined\" === typeof h && M(d) && (h = this.xData.indexOf(d, c));\n -1 !== h && \"undefined\" !== typeof h && this.cropped && (h = h >= this.cropStart ? h - this.cropStart : h);\n !k && M(h) && g[h] && g[h].touched && (h = void 0);\n return h;\n };\n\n e.prototype.updateData = function (a, c) {\n var b = this.options,\n d = b.dataSorting,\n e = this.points,\n f = [],\n k = this.requireSorting,\n h = a.length === e.length,\n m,\n n,\n p,\n l = !0;\n this.xIncrement = null;\n a.forEach(function (a, c) {\n var n = g(a) && this.pointClass.prototype.optionsToObject.call({\n series: this\n }, a) || {},\n l = n.x;\n\n if (n.id || M(l)) {\n if (n = this.findPointIndex(n, p), -1 === n || \"undefined\" === typeof n ? f.push(a) : e[n] && a !== b.data[n] ? (e[n].update(a, !1, null, !1), e[n].touched = !0, k && (p = n + 1)) : e[n] && (e[n].touched = !0), !h || c !== n || d && d.enabled || this.hasDerivedData) m = !0;\n } else f.push(a);\n }, this);\n if (m) for (a = e.length; a--;) (n = e[a]) && !n.touched && n.remove && n.remove(!1, c);else !h || d && d.enabled ? l = !1 : (a.forEach(function (a, c) {\n a !== e[c].y && e[c].update && e[c].update(a, !1, null, !1);\n }), f.length = 0);\n e.forEach(function (a) {\n a && (a.touched = !1);\n });\n if (!l) return !1;\n f.forEach(function (a) {\n this.addPoint(a, !1, null, null, !1);\n }, this);\n null === this.xIncrement && this.xData && this.xData.length && (this.xIncrement = z(this.xData), this.autoIncrement());\n return !0;\n };\n\n e.prototype.setData = function (a, c, b, d) {\n var g = this,\n e = g.points,\n f = e && e.length || 0,\n k = g.options,\n h = g.chart,\n m = k.dataSorting,\n n = g.xAxis,\n p = k.turboThreshold,\n l = this.xData,\n r = this.yData,\n q = g.pointArrayMap;\n q = q && q.length;\n var F = k.keys,\n u,\n t = 0,\n z = 1,\n w = null;\n\n if (!h.options.chart.allowMutatingData) {\n k.data && delete g.options.data;\n g.userOptions.data && delete g.userOptions.data;\n var x = P(!0, a);\n }\n\n a = x || a || [];\n x = a.length;\n c = H(c, !0);\n m && m.enabled && (a = this.sortData(a));\n h.options.chart.allowMutatingData && !1 !== d && x && f && !g.cropped && !g.hasGroupedData && g.visible && !g.isSeriesBoosting && (u = this.updateData(a, b));\n\n if (!u) {\n g.xIncrement = null;\n g.colorCounter = 0;\n this.parallelArrays.forEach(function (a) {\n g[a + \"Data\"].length = 0;\n });\n if (p && x > p) {\n if (w = g.getFirstValidPoint(a), M(w)) for (b = 0; b < x; b++) l[b] = this.autoIncrement(), r[b] = a[b];else if (R(w)) {\n if (q) {\n if (w.length === q) for (b = 0; b < x; b++) l[b] = this.autoIncrement(), r[b] = a[b];else for (b = 0; b < x; b++) d = a[b], l[b] = d[0], r[b] = d.slice(1, q + 1);\n } else if (F && (t = F.indexOf(\"x\"), z = F.indexOf(\"y\"), t = 0 <= t ? t : 0, z = 0 <= z ? z : 1), 1 === w.length && (z = 0), t === z) for (b = 0; b < x; b++) l[b] = this.autoIncrement(), r[b] = a[b][z];else for (b = 0; b < x; b++) d = a[b], l[b] = d[t], r[b] = d[z];\n } else D(12, !1, h);\n } else for (b = 0; b < x; b++) \"undefined\" !== typeof a[b] && (d = {\n series: g\n }, g.pointClass.prototype.applyOptions.apply(d, [a[b]]), g.updateParallelArrays(d, b));\n r && U(r[0]) && D(14, !0, h);\n g.data = [];\n g.options.data = g.userOptions.data = a;\n\n for (b = f; b--;) e[b] && e[b].destroy && e[b].destroy();\n\n n && (n.minRange = n.userMinRange);\n g.isDirty = h.isDirtyBox = !0;\n g.isDirtyData = !!e;\n b = !1;\n }\n\n \"point\" === k.legendType && (this.processData(), this.generatePoints());\n c && h.redraw(b);\n };\n\n e.prototype.sortData = function (a) {\n var c = this,\n b = c.options.dataSorting.sortKey || \"y\",\n d = function (a, c) {\n return g(c) && a.pointClass.prototype.optionsToObject.call({\n series: a\n }, c) || {};\n };\n\n a.forEach(function (b, g) {\n a[g] = d(c, b);\n a[g].index = g;\n }, this);\n a.concat().sort(function (a, c) {\n a = S(b, a);\n c = S(b, c);\n return c < a ? -1 : c > a ? 1 : 0;\n }).forEach(function (a, c) {\n a.x = c;\n }, this);\n c.linkedSeries && c.linkedSeries.forEach(function (c) {\n var b = c.options,\n g = b.data;\n b.dataSorting && b.dataSorting.enabled || !g || (g.forEach(function (b, e) {\n g[e] = d(c, b);\n a[e] && (g[e].x = a[e].x, g[e].index = e);\n }), c.setData(g, !1));\n });\n return a;\n };\n\n e.prototype.getProcessedData = function (a) {\n var c = this.xAxis,\n b = this.options,\n d = b.cropThreshold,\n g = a || this.getExtremesFromAll || b.getExtremesFromAll,\n e = this.isCartesian;\n a = c && c.val2lin;\n b = !(!c || !c.logarithmic);\n var f = 0,\n k = this.xData,\n h = this.yData,\n m = this.requireSorting;\n var n = !1;\n var p = k.length;\n\n if (c) {\n n = c.getExtremes();\n var l = n.min;\n var r = n.max;\n n = !(!c.categories || c.names.length);\n }\n\n if (e && this.sorted && !g && (!d || p > d || this.forceCrop)) if (k[p - 1] < l || k[0] > r) k = [], h = [];else if (this.yData && (k[0] < l || k[p - 1] > r)) {\n var q = this.cropData(this.xData, this.yData, l, r);\n k = q.xData;\n h = q.yData;\n f = q.start;\n q = !0;\n }\n\n for (d = k.length || 1; --d;) if (c = b ? a(k[d]) - a(k[d - 1]) : k[d] - k[d - 1], 0 < c && (\"undefined\" === typeof u || c < u)) var u = c;else 0 > c && m && !n && (D(15, !1, this.chart), m = !1);\n\n return {\n xData: k,\n yData: h,\n cropped: q,\n cropStart: f,\n closestPointRange: u\n };\n };\n\n e.prototype.processData = function (a) {\n var c = this.xAxis;\n if (this.isCartesian && !this.isDirty && !c.isDirty && !this.yAxis.isDirty && !a) return !1;\n a = this.getProcessedData();\n this.cropped = a.cropped;\n this.cropStart = a.cropStart;\n this.processedXData = a.xData;\n this.processedYData = a.yData;\n this.closestPointRange = this.basePointRange = a.closestPointRange;\n L(this, \"afterProcessData\");\n };\n\n e.prototype.cropData = function (a, c, b, d, g) {\n var e = a.length,\n f,\n k = 0,\n h = e;\n g = H(g, this.cropShoulder);\n\n for (f = 0; f < e; f++) if (a[f] >= b) {\n k = Math.max(0, f - g);\n break;\n }\n\n for (b = f; b < e; b++) if (a[b] > d) {\n h = b + g;\n break;\n }\n\n return {\n xData: a.slice(k, h),\n yData: c.slice(k, h),\n start: k,\n end: h\n };\n };\n\n e.prototype.generatePoints = function () {\n var a = this.options,\n c = this.processedData || a.data,\n b = this.processedXData,\n d = this.processedYData,\n g = this.pointClass,\n e = b.length,\n f = this.cropStart || 0,\n k = this.hasGroupedData,\n h = a.keys,\n m = [];\n a = a.dataGrouping && a.dataGrouping.groupAll ? f : 0;\n var n,\n p,\n l = this.data;\n\n if (!l && !k) {\n var r = [];\n r.length = c.length;\n l = this.data = r;\n }\n\n h && k && (this.options.keys = !1);\n\n for (p = 0; p < e; p++) {\n r = f + p;\n\n if (k) {\n var q = new g().init(this, [b[p]].concat(da(d[p])));\n q.dataGroup = this.groupMap[a + p];\n q.dataGroup.options && (q.options = q.dataGroup.options, A(q, q.dataGroup.options), delete q.dataLabels);\n } else (q = l[r]) || \"undefined\" === typeof c[r] || (l[r] = q = new g().init(this, c[r], b[p]));\n\n q && (q.index = k ? a + p : r, m[p] = q);\n }\n\n this.options.keys = h;\n if (l && (e !== (n = l.length) || k)) for (p = 0; p < n; p++) p !== f || k || (p += e), l[p] && (l[p].destroyElements(), l[p].plotX = void 0);\n this.data = l;\n this.points = m;\n L(this, \"afterGeneratePoints\");\n };\n\n e.prototype.getXExtremes = function (a) {\n return {\n min: x(a),\n max: z(a)\n };\n };\n\n e.prototype.getExtremes = function (a, c) {\n var b = this.xAxis,\n d = this.yAxis,\n g = this.processedXData || this.xData,\n e = [],\n f = this.requireSorting ? this.cropShoulder : 0;\n d = d ? d.positiveValuesOnly : !1;\n var k,\n h = 0,\n m = 0,\n n = 0;\n a = a || this.stackedYData || this.processedYData || [];\n var p = a.length;\n\n if (b) {\n var l = b.getExtremes();\n h = l.min;\n m = l.max;\n }\n\n for (k = 0; k < p; k++) {\n var q = g[k];\n l = a[k];\n var r = (M(l) || R(l)) && (l.length || 0 < l || !d);\n q = c || this.getExtremesFromAll || this.options.getExtremesFromAll || this.cropped || !b || (g[k + f] || q) >= h && (g[k - f] || q) <= m;\n if (r && q) if (r = l.length) for (; r--;) M(l[r]) && (e[n++] = l[r]);else e[n++] = l;\n }\n\n a = {\n activeYData: e,\n dataMin: x(e),\n dataMax: z(e)\n };\n L(this, \"afterGetExtremes\", {\n dataExtremes: a\n });\n return a;\n };\n\n e.prototype.applyExtremes = function () {\n var a = this.getExtremes();\n this.dataMin = a.dataMin;\n this.dataMax = a.dataMax;\n return a;\n };\n\n e.prototype.getFirstValidPoint = function (a) {\n for (var c = a.length, b = 0, d = null; null === d && b < c;) d = a[b], b++;\n\n return d;\n };\n\n e.prototype.translate = function () {\n this.processedXData || this.processData();\n this.generatePoints();\n var c = this.options,\n b = c.stacking,\n d = this.xAxis,\n e = d.categories,\n f = this.enabledDataSorting,\n k = this.yAxis,\n h = this.points,\n n = h.length,\n p = this.pointPlacementToXValue(),\n l = !!p,\n q = c.threshold,\n r = c.startFromThreshold ? q : 0,\n u = this.zoneAxis || \"y\",\n t,\n z,\n w = Number.MAX_VALUE;\n\n for (t = 0; t < n; t++) {\n var x = h[t],\n A = x.x,\n y = void 0,\n D = void 0,\n v = x.y,\n J = x.low,\n B = b && k.stacking && k.stacking.stacks[(this.negStacks && v < (r ? 0 : q) ? \"-\" : \"\") + this.stackKey];\n if (k.positiveValuesOnly && !k.validatePositiveValue(v) || d.positiveValuesOnly && !d.validatePositiveValue(A)) x.isNull = !0;\n x.plotX = z = a(m(d.translate(A, 0, 0, 0, 1, p, \"flags\" === this.type), -1E5, 1E5));\n\n if (b && this.visible && B && B[A]) {\n var C = this.getStackIndicator(C, A, this.index);\n x.isNull || (y = B[A], D = y.points[C.key]);\n }\n\n R(D) && (J = D[0], v = D[1], J === r && C.key === B[A].base && (J = H(M(q) && q, k.min)), k.positiveValuesOnly && 0 >= J && (J = null), x.total = x.stackTotal = y.total, x.percentage = y.total && x.y / y.total * 100, x.stackY = v, this.irregularWidths || y.setOffset(this.pointXOffset || 0, this.barW || 0));\n x.yBottom = g(J) ? m(k.translate(J, 0, 1, 0, 1), -1E5, 1E5) : null;\n this.dataModify && (v = this.dataModify.modifyValue(v, t));\n x.plotY = void 0;\n M(v) && (y = k.translate(v, !1, !0, !1, !0), \"undefined\" !== typeof y && (x.plotY = m(y, -1E5, 1E5)));\n x.isInside = this.isPointInside(x);\n x.clientX = l ? a(d.translate(A, 0, 0, 0, 1, p)) : z;\n x.negative = x[u] < (c[u + \"Threshold\"] || q || 0);\n x.category = H(e && e[x.x], x.x);\n\n if (!x.isNull && !1 !== x.visible) {\n \"undefined\" !== typeof G && (w = Math.min(w, Math.abs(z - G)));\n var G = z;\n }\n\n x.zone = this.zones.length ? x.getZone() : void 0;\n !x.graphic && this.group && f && (x.isNew = !0);\n }\n\n this.closestPointRangePx = w;\n L(this, \"afterTranslate\");\n };\n\n e.prototype.getValidPoints = function (a, c, b) {\n var d = this.chart;\n return (a || this.points || []).filter(function (a) {\n return c && !d.isInsidePlot(a.plotX, a.plotY, {\n inverted: d.inverted\n }) ? !1 : !1 !== a.visible && (b || !a.isNull);\n });\n };\n\n e.prototype.getClipBox = function () {\n var a = this.chart,\n c = this.xAxis,\n b = this.yAxis,\n d = P(a.clipBox);\n c && c.len !== a.plotSizeX && (d.width = c.len);\n b && b.len !== a.plotSizeY && (d.height = b.len);\n return d;\n };\n\n e.prototype.getSharedClipKey = function () {\n return this.sharedClipKey = (this.options.xAxis || 0) + \",\" + (this.options.yAxis || 0);\n };\n\n e.prototype.setClip = function () {\n var a = this.chart,\n c = this.group,\n b = this.markerGroup,\n d = a.sharedClips;\n a = a.renderer;\n var g = this.getClipBox(),\n e = this.getSharedClipKey(),\n f = d[e];\n f ? f.animate(g) : d[e] = f = a.clipRect(g);\n c && c.clip(!1 === this.options.clip ? void 0 : f);\n b && b.clip();\n };\n\n e.prototype.animate = function (a) {\n var c = this.chart,\n b = this.group,\n d = this.markerGroup,\n g = c.inverted,\n e = h(this.options.animation),\n f = [this.getSharedClipKey(), e.duration, e.easing, e.defer].join(),\n k = c.sharedClips[f],\n m = c.sharedClips[f + \"m\"];\n if (a && b) e = this.getClipBox(), k ? k.attr(\"height\", e.height) : (e.width = 0, g && (e.x = c.plotHeight), k = c.renderer.clipRect(e), c.sharedClips[f] = k, m = c.renderer.clipRect({\n x: g ? (c.plotSizeX || 0) + 99 : -99,\n y: g ? -c.plotLeft : -c.plotTop,\n width: 99,\n height: g ? c.chartWidth : c.chartHeight\n }), c.sharedClips[f + \"m\"] = m), b.clip(k), d && d.clip(m);else if (k && !k.hasClass(\"highcharts-animating\")) {\n c = this.getClipBox();\n var n = e.step;\n d && d.element.childNodes.length && (e.step = function (a, c) {\n n && n.apply(c, arguments);\n m && m.element && m.attr(c.prop, \"width\" === c.prop ? a + 99 : a);\n });\n k.addClass(\"highcharts-animating\").animate(c, e);\n }\n };\n\n e.prototype.afterAnimate = function () {\n var a = this;\n this.setClip();\n I(this.chart.sharedClips, function (c, b, d) {\n c && !a.chart.container.querySelector('[clip-path=\"url(#'.concat(c.id, ')\"]')) && (c.destroy(), delete d[b]);\n });\n this.finishedAnimating = !0;\n L(this, \"afterAnimate\");\n };\n\n e.prototype.drawPoints = function () {\n var a = this.points,\n c = this.chart,\n b = this.options.marker,\n d = this[this.specialGroup] || this.markerGroup,\n g = this.xAxis,\n e = H(b.enabled, !g || g.isRadial ? !0 : null, this.closestPointRangePx >= b.enabledThreshold * b.radius),\n f,\n k;\n if (!1 !== b.enabled || this._hasPointMarkers) for (f = 0; f < a.length; f++) {\n var h = a[f];\n var m = (k = h.graphic) ? \"animate\" : \"attr\";\n var n = h.marker || {};\n var p = !!h.marker;\n\n if ((e && \"undefined\" === typeof n.enabled || n.enabled) && !h.isNull && !1 !== h.visible) {\n var l = H(n.symbol, this.symbol, \"rect\");\n var q = this.markerAttribs(h, h.selected && \"select\");\n this.enabledDataSorting && (h.startXPos = g.reversed ? -(q.width || 0) : g.width);\n var r = !1 !== h.isInside;\n k ? k[r ? \"show\" : \"hide\"](r).animate(q) : r && (0 < (q.width || 0) || h.hasImage) && (h.graphic = k = c.renderer.symbol(l, q.x, q.y, q.width, q.height, p ? n : b).add(d), this.enabledDataSorting && c.hasRendered && (k.attr({\n x: h.startXPos\n }), m = \"animate\"));\n k && \"animate\" === m && k[r ? \"show\" : \"hide\"](r).animate(q);\n if (k && !c.styledMode) k[m](this.pointAttribs(h, h.selected && \"select\"));\n k && k.addClass(h.getClassName(), !0);\n } else k && (h.graphic = k.destroy());\n }\n };\n\n e.prototype.markerAttribs = function (a, c) {\n var b = this.options,\n d = b.marker,\n g = a.marker || {},\n e = g.symbol || d.symbol,\n f = H(g.radius, d && d.radius);\n c && (d = d.states[c], c = g.states && g.states[c], f = H(c && c.radius, d && d.radius, f && f + (d && d.radiusPlus || 0)));\n a.hasImage = e && 0 === e.indexOf(\"url\");\n a.hasImage && (f = 0);\n a = M(f) ? {\n x: b.crisp ? Math.floor(a.plotX - f) : a.plotX - f,\n y: a.plotY - f\n } : {};\n f && (a.width = a.height = 2 * f);\n return a;\n };\n\n e.prototype.pointAttribs = function (a, c) {\n var b = this.options.marker,\n d = a && a.options,\n g = d && d.marker || {},\n e = d && d.color,\n f = a && a.color,\n k = a && a.zone && a.zone.color,\n h = this.color;\n a = H(g.lineWidth, b.lineWidth);\n d = 1;\n h = e || k || f || h;\n e = g.fillColor || b.fillColor || h;\n f = g.lineColor || b.lineColor || h;\n c = c || \"normal\";\n b = b.states[c] || {};\n c = g.states && g.states[c] || {};\n a = H(c.lineWidth, b.lineWidth, a + H(c.lineWidthPlus, b.lineWidthPlus, 0));\n e = c.fillColor || b.fillColor || e;\n f = c.lineColor || b.lineColor || f;\n d = H(c.opacity, b.opacity, d);\n return {\n stroke: f,\n \"stroke-width\": a,\n fill: e,\n opacity: d\n };\n };\n\n e.prototype.destroy = function (a) {\n var b = this,\n d = b.chart,\n g = /AppleWebKit\\/533/.test(n.navigator.userAgent),\n e = b.data || [],\n f,\n k,\n h,\n m;\n L(b, \"destroy\", {\n keepEventsForUpdate: a\n });\n this.removeEvents(a);\n (b.axisTypes || []).forEach(function (a) {\n (m = b[a]) && m.series && (c(m.series, b), m.isDirty = m.forceRedraw = !0);\n });\n b.legendItem && b.chart.legend.destroyItem(b);\n\n for (k = e.length; k--;) (h = e[k]) && h.destroy && h.destroy();\n\n b.clips && b.clips.forEach(function (a) {\n return a.destroy();\n });\n t.clearTimeout(b.animationTimeout);\n I(b, function (a, c) {\n a instanceof y && !a.survive && (f = g && \"group\" === c ? \"hide\" : \"destroy\", a[f]());\n });\n d.hoverSeries === b && (d.hoverSeries = void 0);\n c(d.series, b);\n d.orderSeries();\n I(b, function (c, d) {\n a && \"hcEvents\" === d || delete b[d];\n });\n };\n\n e.prototype.applyZones = function () {\n var a = this,\n c = this.chart,\n b = c.renderer,\n d = this.zones,\n g = this.clips || [],\n e = this.graph,\n f = this.area,\n k = Math.max(c.chartWidth, c.chartHeight),\n h = this[(this.zoneAxis || \"y\") + \"Axis\"],\n n = c.inverted,\n p,\n l,\n q,\n r,\n u,\n t,\n z,\n x,\n w = !1;\n\n if (d.length && (e || f) && h && \"undefined\" !== typeof h.min) {\n var A = h.reversed;\n var y = h.horiz;\n e && !this.showLine && e.hide();\n f && f.hide();\n var D = h.getExtremes();\n d.forEach(function (d, F) {\n p = A ? y ? c.plotWidth : 0 : y ? 0 : h.toPixels(D.min) || 0;\n p = m(H(l, p), 0, k);\n l = m(Math.round(h.toPixels(H(d.value, D.max), !0) || 0), 0, k);\n w && (p = l = h.toPixels(D.max));\n r = Math.abs(p - l);\n u = Math.min(p, l);\n t = Math.max(p, l);\n h.isXAxis ? (q = {\n x: n ? t : u,\n y: 0,\n width: r,\n height: k\n }, y || (q.x = c.plotHeight - q.x)) : (q = {\n x: 0,\n y: n ? t : u,\n width: k,\n height: r\n }, y && (q.y = c.plotWidth - q.y));\n n && b.isVML && (q = h.isXAxis ? {\n x: 0,\n y: A ? u : t,\n height: q.width,\n width: c.chartWidth\n } : {\n x: q.y - c.plotLeft - c.spacingBox.x,\n y: 0,\n width: q.height,\n height: c.chartHeight\n });\n g[F] ? g[F].animate(q) : g[F] = b.clipRect(q);\n z = a[\"zone-area-\" + F];\n x = a[\"zone-graph-\" + F];\n e && x && x.clip(g[F]);\n f && z && z.clip(g[F]);\n w = d.value > D.max;\n a.resetZones && 0 === l && (l = void 0);\n });\n this.clips = g;\n } else a.visible && (e && e.show(), f && f.show());\n };\n\n e.prototype.invertGroups = function (a) {\n function c() {\n [\"group\", \"markerGroup\"].forEach(function (c) {\n b[c] && (d.renderer.isVML && b[c].attr({\n width: b.yAxis.len,\n height: b.xAxis.len\n }), b[c].width = b.yAxis.len, b[c].height = b.xAxis.len, b[c].invert(b.isRadialSeries ? !1 : a));\n });\n }\n\n var b = this,\n d = b.chart;\n b.xAxis && (b.eventsToUnbind.push(w(d, \"resize\", c)), c(), b.invertGroups = c);\n };\n\n e.prototype.plotGroup = function (a, c, b, d, e) {\n var f = this[a],\n k = !f;\n b = {\n visibility: b,\n zIndex: d || .1\n };\n \"undefined\" === typeof this.opacity || this.chart.styledMode || \"inactive\" === this.state || (b.opacity = this.opacity);\n k && (this[a] = f = this.chart.renderer.g().add(e));\n f.addClass(\"highcharts-\" + c + \" highcharts-series-\" + this.index + \" highcharts-\" + this.type + \"-series \" + (g(this.colorIndex) ? \"highcharts-color-\" + this.colorIndex + \" \" : \"\") + (this.options.className || \"\") + (f.hasClass(\"highcharts-tracker\") ? \" highcharts-tracker\" : \"\"), !0);\n f.attr(b)[k ? \"attr\" : \"animate\"](this.getPlotBox());\n return f;\n };\n\n e.prototype.getPlotBox = function () {\n var a = this.chart,\n c = this.xAxis,\n b = this.yAxis;\n a.inverted && (c = b, b = this.xAxis);\n return {\n translateX: c ? c.left : a.plotLeft,\n translateY: b ? b.top : a.plotTop,\n scaleX: 1,\n scaleY: 1\n };\n };\n\n e.prototype.removeEvents = function (a) {\n a || K(this);\n this.eventsToUnbind.length && (this.eventsToUnbind.forEach(function (a) {\n a();\n }), this.eventsToUnbind.length = 0);\n };\n\n e.prototype.render = function () {\n var a = this,\n c = a.chart,\n b = a.options,\n d = h(b.animation),\n g = a.visible ? \"inherit\" : \"hidden\",\n e = b.zIndex,\n f = a.hasRendered,\n k = c.seriesGroup,\n m = c.inverted;\n c = !a.finishedAnimating && c.renderer.isSVG ? d.duration : 0;\n L(this, \"render\");\n var n = a.plotGroup(\"group\", \"series\", g, e, k);\n a.markerGroup = a.plotGroup(\"markerGroup\", \"markers\", g, e, k);\n !1 !== b.clip && a.setClip();\n a.animate && c && a.animate(!0);\n n.inverted = H(a.invertible, a.isCartesian) ? m : !1;\n a.drawGraph && (a.drawGraph(), a.applyZones());\n a.visible && a.drawPoints();\n a.drawDataLabels && a.drawDataLabels();\n a.redrawPoints && a.redrawPoints();\n a.drawTracker && !1 !== a.options.enableMouseTracking && a.drawTracker();\n a.invertGroups(m);\n a.animate && c && a.animate();\n f || (c && d.defer && (c += d.defer), a.animationTimeout = O(function () {\n a.afterAnimate();\n }, c || 0));\n a.isDirty = !1;\n a.hasRendered = !0;\n L(a, \"afterRender\");\n };\n\n e.prototype.redraw = function () {\n var a = this.chart,\n c = this.isDirty || this.isDirtyData,\n b = this.group,\n d = this.xAxis,\n g = this.yAxis;\n b && (a.inverted && b.attr({\n width: a.plotWidth,\n height: a.plotHeight\n }), b.animate({\n translateX: H(d && d.left, a.plotLeft),\n translateY: H(g && g.top, a.plotTop)\n }));\n this.translate();\n this.render();\n c && delete this.kdTree;\n };\n\n e.prototype.searchPoint = function (a, c) {\n var b = this.xAxis,\n d = this.yAxis,\n g = this.chart.inverted;\n return this.searchKDTree({\n clientX: g ? b.len - a.chartY + b.pos : a.chartX - b.pos,\n plotY: g ? d.len - a.chartX + d.pos : a.chartY - d.pos\n }, c, a);\n };\n\n e.prototype.buildKDTree = function (a) {\n function c(a, d, g) {\n var e = a && a.length;\n\n if (e) {\n var f = b.kdAxisArray[d % g];\n a.sort(function (a, c) {\n return a[f] - c[f];\n });\n e = Math.floor(e / 2);\n return {\n point: a[e],\n left: c(a.slice(0, e), d + 1, g),\n right: c(a.slice(e + 1), d + 1, g)\n };\n }\n }\n\n this.buildingKdTree = !0;\n var b = this,\n d = -1 < b.options.findNearestPointBy.indexOf(\"y\") ? 2 : 1;\n delete b.kdTree;\n O(function () {\n b.kdTree = c(b.getValidPoints(null, !b.directTouch), d, d);\n b.buildingKdTree = !1;\n }, b.options.kdNow || a && \"touchstart\" === a.type ? 0 : 1);\n };\n\n e.prototype.searchKDTree = function (a, c, b) {\n function d(a, c, b, m) {\n var n = c.point,\n p = e.kdAxisArray[b % m],\n l = n,\n q = g(a[f]) && g(n[f]) ? Math.pow(a[f] - n[f], 2) : null;\n var r = g(a[k]) && g(n[k]) ? Math.pow(a[k] - n[k], 2) : null;\n r = (q || 0) + (r || 0);\n n.dist = g(r) ? Math.sqrt(r) : Number.MAX_VALUE;\n n.distX = g(q) ? Math.sqrt(q) : Number.MAX_VALUE;\n p = a[p] - n[p];\n r = 0 > p ? \"left\" : \"right\";\n q = 0 > p ? \"right\" : \"left\";\n c[r] && (r = d(a, c[r], b + 1, m), l = r[h] < l[h] ? r : n);\n c[q] && Math.sqrt(p * p) < l[h] && (a = d(a, c[q], b + 1, m), l = a[h] < l[h] ? a : l);\n return l;\n }\n\n var e = this,\n f = this.kdAxisArray[0],\n k = this.kdAxisArray[1],\n h = c ? \"distX\" : \"dist\";\n c = -1 < e.options.findNearestPointBy.indexOf(\"y\") ? 2 : 1;\n this.kdTree || this.buildingKdTree || this.buildKDTree(b);\n if (this.kdTree) return d(a, this.kdTree, c, c);\n };\n\n e.prototype.pointPlacementToXValue = function () {\n var a = this.options,\n c = a.pointRange,\n b = this.xAxis;\n a = a.pointPlacement;\n \"between\" === a && (a = b.reversed ? -.5 : .5);\n return M(a) ? a * (c || b.pointRange) : 0;\n };\n\n e.prototype.isPointInside = function (a) {\n var c = this.chart,\n b = this.xAxis,\n d = this.yAxis;\n return \"undefined\" !== typeof a.plotY && \"undefined\" !== typeof a.plotX && 0 <= a.plotY && a.plotY <= (d ? d.len : c.plotHeight) && 0 <= a.plotX && a.plotX <= (b ? b.len : c.plotWidth);\n };\n\n e.prototype.drawTracker = function () {\n var a = this,\n c = a.options,\n b = c.trackByArea,\n d = [].concat(b ? a.areaPath : a.graphPath),\n g = a.chart,\n e = g.pointer,\n f = g.renderer,\n k = g.options.tooltip.snap,\n h = a.tracker,\n m = function (c) {\n if (g.hoverSeries !== a) a.onMouseOver();\n },\n n = \"rgba(192,192,192,\" + (r ? .0001 : .002) + \")\";\n\n h ? h.attr({\n d: d\n }) : a.graph && (a.tracker = f.path(d).attr({\n visibility: a.visible ? \"inherit\" : \"hidden\",\n zIndex: 2\n }).addClass(b ? \"highcharts-tracker-area\" : \"highcharts-tracker-line\").add(a.group), g.styledMode || a.tracker.attr({\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n stroke: n,\n fill: b ? n : \"none\",\n \"stroke-width\": a.graph.strokeWidth() + (b ? 0 : 2 * k)\n }), [a.tracker, a.markerGroup, a.dataLabelsGroup].forEach(function (a) {\n if (a && (a.addClass(\"highcharts-tracker\").on(\"mouseover\", m).on(\"mouseout\", function (a) {\n e.onTrackerMouseOut(a);\n }), c.cursor && !g.styledMode && a.css({\n cursor: c.cursor\n }), q)) a.on(\"touchstart\", m);\n }));\n L(this, \"afterDrawTracker\");\n };\n\n e.prototype.addPoint = function (a, c, b, d, g) {\n var e = this.options,\n f = this.data,\n k = this.chart,\n h = this.xAxis;\n h = h && h.hasNames && h.names;\n var m = e.data,\n n = this.xData,\n p;\n c = H(c, !0);\n var l = {\n series: this\n };\n this.pointClass.prototype.applyOptions.apply(l, [a]);\n var q = l.x;\n var r = n.length;\n if (this.requireSorting && q < n[r - 1]) for (p = !0; r && n[r - 1] > q;) r--;\n this.updateParallelArrays(l, \"splice\", r, 0, 0);\n this.updateParallelArrays(l, r);\n h && l.name && (h[q] = l.name);\n m.splice(r, 0, a);\n if (p || this.processedData) this.data.splice(r, 0, null), this.processData();\n \"point\" === e.legendType && this.generatePoints();\n b && (f[0] && f[0].remove ? f[0].remove(!1) : (f.shift(), this.updateParallelArrays(l, \"shift\"), m.shift()));\n !1 !== g && L(this, \"addPoint\", {\n point: l\n });\n this.isDirtyData = this.isDirty = !0;\n c && k.redraw(d);\n };\n\n e.prototype.removePoint = function (a, c, b) {\n var g = this,\n e = g.data,\n f = e[a],\n k = g.points,\n h = g.chart,\n m = function () {\n k && k.length === e.length && k.splice(a, 1);\n e.splice(a, 1);\n g.options.data.splice(a, 1);\n g.updateParallelArrays(f || {\n series: g\n }, \"splice\", a, 1);\n f && f.destroy();\n g.isDirty = !0;\n g.isDirtyData = !0;\n c && h.redraw();\n };\n\n d(b, h);\n c = H(c, !0);\n f ? f.firePointEvent(\"remove\", null, m) : m();\n };\n\n e.prototype.remove = function (a, c, b, d) {\n function g() {\n e.destroy(d);\n f.isDirtyLegend = f.isDirtyBox = !0;\n f.linkSeries();\n H(a, !0) && f.redraw(c);\n }\n\n var e = this,\n f = e.chart;\n !1 !== b ? L(e, \"remove\", null, g) : g();\n };\n\n e.prototype.update = function (a, c) {\n a = k(a, this.userOptions);\n L(this, \"update\", {\n options: a\n });\n var b = this,\n d = b.chart,\n g = b.userOptions,\n e = b.initialType || b.type,\n f = d.options.plotOptions,\n h = J[e].prototype,\n m = b.finishedAnimating && {\n animation: !1\n },\n n = {},\n p,\n l = [\"eventOptions\", \"navigatorSeries\", \"baseSeries\"],\n q = a.type || g.type || d.options.chart.type,\n r = !(this.hasDerivedData || q && q !== this.type || \"undefined\" !== typeof a.pointStart || \"undefined\" !== typeof a.pointInterval || \"undefined\" !== typeof a.relativeXValue || a.joinBy || a.mapData || b.hasOptionChanged(\"dataGrouping\") || b.hasOptionChanged(\"pointStart\") || b.hasOptionChanged(\"pointInterval\") || b.hasOptionChanged(\"pointIntervalUnit\") || b.hasOptionChanged(\"keys\"));\n q = q || e;\n r && (l.push(\"data\", \"isDirtyData\", \"points\", \"processedData\", \"processedXData\", \"processedYData\", \"xIncrement\", \"cropped\", \"_hasPointMarkers\", \"_hasPointLabels\", \"clips\", \"nodes\", \"layout\", \"level\", \"mapMap\", \"mapData\", \"minY\", \"maxY\", \"minX\", \"maxX\"), !1 !== a.visible && l.push(\"area\", \"graph\"), b.parallelArrays.forEach(function (a) {\n l.push(a + \"Data\");\n }), a.data && (a.dataSorting && A(b.options.dataSorting, a.dataSorting), this.setData(a.data, !1)));\n a = P(g, m, {\n index: \"undefined\" === typeof g.index ? b.index : g.index,\n pointStart: H(f && f.series && f.series.pointStart, g.pointStart, b.xData[0])\n }, !r && {\n data: b.options.data\n }, a);\n r && a.data && (a.data = b.options.data);\n l = [\"group\", \"markerGroup\", \"dataLabelsGroup\", \"transformGroup\"].concat(l);\n l.forEach(function (a) {\n l[a] = b[a];\n delete b[a];\n });\n f = !1;\n\n if (J[q]) {\n if (f = q !== b.type, b.remove(!1, !1, !1, !0), f) if (Object.setPrototypeOf) Object.setPrototypeOf(b, J[q].prototype);else {\n m = Object.hasOwnProperty.call(b, \"hcEvents\") && b.hcEvents;\n\n for (p in h) b[p] = void 0;\n\n A(b, J[q].prototype);\n m ? b.hcEvents = m : delete b.hcEvents;\n }\n } else D(17, !0, d, {\n missingModuleFor: q\n });\n\n l.forEach(function (a) {\n b[a] = l[a];\n });\n b.init(d, a);\n\n if (r && this.points) {\n var u = b.options;\n !1 === u.visible ? (n.graphic = 1, n.dataLabel = 1) : b._hasPointLabels || (a = u.marker, h = u.dataLabels, !a || !1 !== a.enabled && (g.marker && g.marker.symbol) === a.symbol || (n.graphic = 1), h && !1 === h.enabled && (n.dataLabel = 1));\n this.points.forEach(function (a) {\n a && a.series && (a.resolveColor(), Object.keys(n).length && a.destroyElements(n), !1 === u.showInLegend && a.legendItem && d.legend.destroyItem(a));\n }, this);\n }\n\n b.initialType = e;\n d.linkSeries();\n f && b.linkedSeries.length && (b.isDirtyData = !0);\n L(this, \"afterUpdate\");\n H(c, !0) && d.redraw(r ? void 0 : !1);\n };\n\n e.prototype.setName = function (a) {\n this.name = this.options.name = this.userOptions.name = a;\n this.chart.isDirtyLegend = !0;\n };\n\n e.prototype.hasOptionChanged = function (a) {\n var c = this.options[a],\n b = this.chart.options.plotOptions,\n d = this.userOptions[a];\n return d ? c !== d : c !== H(b && b[this.type] && b[this.type][a], b && b.series && b.series[a], c);\n };\n\n e.prototype.onMouseOver = function () {\n var a = this.chart,\n c = a.hoverSeries;\n a.pointer.setHoverChartIndex();\n if (c && c !== this) c.onMouseOut();\n this.options.events.mouseOver && L(this, \"mouseOver\");\n this.setState(\"hover\");\n a.hoverSeries = this;\n };\n\n e.prototype.onMouseOut = function () {\n var a = this.options,\n c = this.chart,\n b = c.tooltip,\n d = c.hoverPoint;\n c.hoverSeries = null;\n if (d) d.onMouseOut();\n this && a.events.mouseOut && L(this, \"mouseOut\");\n !b || this.stickyTracking || b.shared && !this.noSharedTooltip || b.hide();\n c.series.forEach(function (a) {\n a.setState(\"\", !0);\n });\n };\n\n e.prototype.setState = function (a, c) {\n var b = this,\n d = b.options,\n g = b.graph,\n e = d.inactiveOtherPoints,\n f = d.states,\n k = H(f[a || \"normal\"] && f[a || \"normal\"].animation, b.chart.options.chart.animation),\n h = d.lineWidth,\n m = 0,\n n = d.opacity;\n a = a || \"\";\n\n if (b.state !== a && ([b.group, b.markerGroup, b.dataLabelsGroup].forEach(function (c) {\n c && (b.state && c.removeClass(\"highcharts-series-\" + b.state), a && c.addClass(\"highcharts-series-\" + a));\n }), b.state = a, !b.chart.styledMode)) {\n if (f[a] && !1 === f[a].enabled) return;\n a && (h = f[a].lineWidth || h + (f[a].lineWidthPlus || 0), n = H(f[a].opacity, n));\n if (g && !g.dashstyle) for (d = {\n \"stroke-width\": h\n }, g.animate(d, k); b[\"zone-graph-\" + m];) b[\"zone-graph-\" + m].animate(d, k), m += 1;\n e || [b.group, b.markerGroup, b.dataLabelsGroup, b.labelBySeries].forEach(function (a) {\n a && a.animate({\n opacity: n\n }, k);\n });\n }\n\n c && e && b.points && b.setAllPointsToState(a || void 0);\n };\n\n e.prototype.setAllPointsToState = function (a) {\n this.points.forEach(function (c) {\n c.setState && c.setState(a);\n });\n };\n\n e.prototype.setVisible = function (a, c) {\n var b = this,\n d = b.chart,\n g = b.legendItem,\n e = d.options.chart.ignoreHiddenSeries,\n f = b.visible,\n k = (b.visible = a = b.options.visible = b.userOptions.visible = \"undefined\" === typeof a ? !f : a) ? \"show\" : \"hide\";\n [\"group\", \"dataLabelsGroup\", \"markerGroup\", \"tracker\", \"tt\"].forEach(function (a) {\n if (b[a]) b[a][k]();\n });\n if (d.hoverSeries === b || (d.hoverPoint && d.hoverPoint.series) === b) b.onMouseOut();\n g && d.legend.colorizeItem(b, a);\n b.isDirty = !0;\n b.options.stacking && d.series.forEach(function (a) {\n a.options.stacking && a.visible && (a.isDirty = !0);\n });\n b.linkedSeries.forEach(function (c) {\n c.setVisible(a, !1);\n });\n e && (d.isDirtyBox = !0);\n L(b, k);\n !1 !== c && d.redraw();\n };\n\n e.prototype.show = function () {\n this.setVisible(!0);\n };\n\n e.prototype.hide = function () {\n this.setVisible(!1);\n };\n\n e.prototype.select = function (a) {\n this.selected = a = this.options.selected = \"undefined\" === typeof a ? !this.selected : a;\n this.checkbox && (this.checkbox.checked = a);\n L(this, a ? \"select\" : \"unselect\");\n };\n\n e.prototype.shouldShowTooltip = function (a, c, b) {\n void 0 === b && (b = {});\n b.series = this;\n b.visiblePlotOnly = !0;\n return this.chart.isInsidePlot(a, c, b);\n };\n\n e.defaultOptions = G;\n return e;\n }();\n\n A(f.prototype, {\n axisTypes: [\"xAxis\", \"yAxis\"],\n coll: \"series\",\n colorCounter: 0,\n cropShoulder: 1,\n directTouch: !1,\n drawLegendSymbol: v.drawLineMarker,\n isCartesian: !0,\n kdAxisArray: [\"clientX\", \"plotY\"],\n parallelArrays: [\"x\", \"y\"],\n pointClass: E,\n requireSorting: !0,\n sorted: !0\n });\n B.series = f;\n \"\";\n \"\";\n return f;\n });\n K(l, \"Extensions/ScrollablePlotArea.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Axis/Axis.js\"], l[\"Core/Chart/Chart.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Renderer/RendererRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E) {\n var G = f.stop,\n B = E.addEvent,\n y = E.createElement,\n t = E.defined,\n h = E.merge,\n d = E.pick;\n B(l, \"afterSetChartSize\", function (b) {\n var d = this.options.chart.scrollablePlotArea,\n f = d && d.minWidth;\n d = d && d.minHeight;\n\n if (!this.renderer.forExport) {\n if (f) {\n if (this.scrollablePixelsX = f = Math.max(0, f - this.chartWidth)) {\n this.scrollablePlotBox = this.renderer.scrollablePlotBox = h(this.plotBox);\n this.plotBox.width = this.plotWidth += f;\n this.inverted ? this.clipBox.height += f : this.clipBox.width += f;\n var l = {\n 1: {\n name: \"right\",\n value: f\n }\n };\n }\n } else d && (this.scrollablePixelsY = f = Math.max(0, d - this.chartHeight), t(f) && (this.scrollablePlotBox = this.renderer.scrollablePlotBox = h(this.plotBox), this.plotBox.height = this.plotHeight += f, this.inverted ? this.clipBox.width += f : this.clipBox.height += f, l = {\n 2: {\n name: \"bottom\",\n value: f\n }\n }));\n\n l && !b.skipAxes && this.axes.forEach(function (b) {\n l[b.side] ? b.getPlotLinePath = function () {\n var d = l[b.side].name,\n f = this[d];\n this[d] = f - l[b.side].value;\n var h = e.prototype.getPlotLinePath.apply(this, arguments);\n this[d] = f;\n return h;\n } : (b.setAxisSize(), b.setAxisTranslation());\n });\n }\n });\n B(l, \"render\", function () {\n this.scrollablePixelsX || this.scrollablePixelsY ? (this.setUpScrolling && this.setUpScrolling(), this.applyFixed()) : this.fixedDiv && this.applyFixed();\n });\n\n l.prototype.setUpScrolling = function () {\n var b = this,\n d = {\n WebkitOverflowScrolling: \"touch\",\n overflowX: \"hidden\",\n overflowY: \"hidden\"\n };\n this.scrollablePixelsX && (d.overflowX = \"auto\");\n this.scrollablePixelsY && (d.overflowY = \"auto\");\n this.scrollingParent = y(\"div\", {\n className: \"highcharts-scrolling-parent\"\n }, {\n position: \"relative\"\n }, this.renderTo);\n this.scrollingContainer = y(\"div\", {\n className: \"highcharts-scrolling\"\n }, d, this.scrollingParent);\n B(this.scrollingContainer, \"scroll\", function () {\n b.pointer && delete b.pointer.chartPosition;\n });\n this.innerContainer = y(\"div\", {\n className: \"highcharts-inner-container\"\n }, null, this.scrollingContainer);\n this.innerContainer.appendChild(this.container);\n this.setUpScrolling = null;\n };\n\n l.prototype.moveFixedElements = function () {\n var b = this.container,\n d = this.fixedRenderer,\n e = \".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-drillup-button .highcharts-scrollbar .highcharts-subtitle .highcharts-title\".split(\" \"),\n f;\n this.scrollablePixelsX && !this.inverted ? f = \".highcharts-yaxis\" : this.scrollablePixelsX && this.inverted ? f = \".highcharts-xaxis\" : this.scrollablePixelsY && !this.inverted ? f = \".highcharts-xaxis\" : this.scrollablePixelsY && this.inverted && (f = \".highcharts-yaxis\");\n f && e.push(\"\" + f + \":not(.highcharts-radial-axis)\", \"\" + f + \"-labels:not(.highcharts-radial-axis-labels)\");\n e.forEach(function (e) {\n [].forEach.call(b.querySelectorAll(e), function (b) {\n (b.namespaceURI === d.SVG_NS ? d.box : d.box.parentNode).appendChild(b);\n b.style.pointerEvents = \"auto\";\n });\n });\n };\n\n l.prototype.applyFixed = function () {\n var b = !this.fixedDiv,\n e = this.options.chart,\n f = e.scrollablePlotArea,\n h = v.getRendererType();\n b ? (this.fixedDiv = y(\"div\", {\n className: \"highcharts-fixed\"\n }, {\n position: \"absolute\",\n overflow: \"hidden\",\n pointerEvents: \"none\",\n zIndex: (e.style && e.style.zIndex || 0) + 2,\n top: 0\n }, null, !0), this.scrollingContainer && this.scrollingContainer.parentNode.insertBefore(this.fixedDiv, this.scrollingContainer), this.renderTo.style.overflow = \"visible\", this.fixedRenderer = e = new h(this.fixedDiv, this.chartWidth, this.chartHeight, this.options.chart.style), this.scrollableMask = e.path().attr({\n fill: this.options.chart.backgroundColor || \"#fff\",\n \"fill-opacity\": d(f.opacity, .85),\n zIndex: -1\n }).addClass(\"highcharts-scrollable-mask\").add(), B(this, \"afterShowResetZoom\", this.moveFixedElements), B(this, \"afterApplyDrilldown\", this.moveFixedElements), B(this, \"afterLayOutTitles\", this.moveFixedElements)) : this.fixedRenderer.setSize(this.chartWidth, this.chartHeight);\n if (this.scrollableDirty || b) this.scrollableDirty = !1, this.moveFixedElements();\n e = this.chartWidth + (this.scrollablePixelsX || 0);\n h = this.chartHeight + (this.scrollablePixelsY || 0);\n G(this.container);\n this.container.style.width = e + \"px\";\n this.container.style.height = h + \"px\";\n this.renderer.boxWrapper.attr({\n width: e,\n height: h,\n viewBox: [0, 0, e, h].join(\" \")\n });\n this.chartBackground.attr({\n width: e,\n height: h\n });\n this.scrollingContainer.style.height = this.chartHeight + \"px\";\n b && (f.scrollPositionX && (this.scrollingContainer.scrollLeft = this.scrollablePixelsX * f.scrollPositionX), f.scrollPositionY && (this.scrollingContainer.scrollTop = this.scrollablePixelsY * f.scrollPositionY));\n h = this.axisOffset;\n b = this.plotTop - h[0] - 1;\n f = this.plotLeft - h[3] - 1;\n e = this.plotTop + this.plotHeight + h[2] + 1;\n h = this.plotLeft + this.plotWidth + h[1] + 1;\n var n = this.plotLeft + this.plotWidth - (this.scrollablePixelsX || 0),\n l = this.plotTop + this.plotHeight - (this.scrollablePixelsY || 0);\n b = this.scrollablePixelsX ? [[\"M\", 0, b], [\"L\", this.plotLeft - 1, b], [\"L\", this.plotLeft - 1, e], [\"L\", 0, e], [\"Z\"], [\"M\", n, b], [\"L\", this.chartWidth, b], [\"L\", this.chartWidth, e], [\"L\", n, e], [\"Z\"]] : this.scrollablePixelsY ? [[\"M\", f, 0], [\"L\", f, this.plotTop - 1], [\"L\", h, this.plotTop - 1], [\"L\", h, 0], [\"Z\"], [\"M\", f, l], [\"L\", f, this.chartHeight], [\"L\", h, this.chartHeight], [\"L\", h, l], [\"Z\"]] : [[\"M\", 0, 0]];\n \"adjustHeight\" !== this.redrawTrigger && this.scrollableMask.attr({\n d: b\n });\n };\n\n B(e, \"afterInit\", function () {\n this.chart.scrollableDirty = !0;\n });\n B(C, \"show\", function () {\n this.chart.scrollableDirty = !0;\n });\n \"\";\n });\n K(l, \"Core/Axis/StackingAxis.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Axis/Axis.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = f.getDeferredAnimation,\n v = l.addEvent,\n E = l.destroyObjectProperties,\n G = l.fireEvent,\n B = l.isNumber,\n y = l.objectEach,\n t;\n\n (function (e) {\n function d() {\n var b = this.stacking;\n\n if (b) {\n var d = b.stacks;\n y(d, function (b, e) {\n E(b);\n d[e] = null;\n });\n b && b.stackTotalGroup && b.stackTotalGroup.destroy();\n }\n }\n\n function b() {\n this.stacking || (this.stacking = new h(this));\n }\n\n var f = [];\n\n e.compose = function (e) {\n -1 === f.indexOf(e) && (f.push(e), v(e, \"init\", b), v(e, \"destroy\", d));\n return e;\n };\n\n var h = function () {\n function b(b) {\n this.oldStacks = {};\n this.stacks = {};\n this.stacksTouched = 0;\n this.axis = b;\n }\n\n b.prototype.buildStacks = function () {\n var b = this.axis,\n d = b.series,\n e = b.options.reversedStacks,\n f = d.length,\n h;\n\n if (!b.isXAxis) {\n this.usePercentage = !1;\n\n for (h = f; h--;) {\n var m = d[e ? h : f - h - 1];\n m.setStackedPoints();\n m.setGroupedPoints();\n }\n\n for (h = 0; h < f; h++) d[h].modifyStacks();\n\n G(b, \"afterBuildStacks\");\n }\n };\n\n b.prototype.cleanStacks = function () {\n if (!this.axis.isXAxis) {\n if (this.oldStacks) var b = this.stacks = this.oldStacks;\n y(b, function (b) {\n y(b, function (b) {\n b.cumulative = b.total;\n });\n });\n }\n };\n\n b.prototype.resetStacks = function () {\n var b = this,\n d = b.stacks;\n b.axis.isXAxis || y(d, function (d) {\n y(d, function (e, f) {\n B(e.touched) && e.touched < b.stacksTouched ? (e.destroy(), delete d[f]) : (e.total = null, e.cumulative = null);\n });\n });\n };\n\n b.prototype.renderStackTotals = function () {\n var b = this.axis,\n d = b.chart,\n e = d.renderer,\n f = this.stacks;\n b = C(d, b.options.stackLabels && b.options.stackLabels.animation || !1);\n var h = this.stackTotalGroup = this.stackTotalGroup || e.g(\"stack-labels\").attr({\n zIndex: 6,\n opacity: 0\n }).add();\n h.translate(d.plotLeft, d.plotTop);\n y(f, function (b) {\n y(b, function (b) {\n b.render(h);\n });\n });\n h.animate({\n opacity: 1\n }, b);\n };\n\n return b;\n }();\n\n e.Additions = h;\n })(t || (t = {}));\n\n return t;\n });\n K(l, \"Extensions/Stacking.js\", [l[\"Core/Axis/Axis.js\"], l[\"Core/Chart/Chart.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Globals.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Axis/StackingAxis.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G) {\n var B = l.format,\n y = G.correctFloat,\n t = G.defined,\n h = G.destroyObjectProperties,\n d = G.isArray,\n b = G.isNumber,\n p = G.objectEach,\n q = G.pick,\n r = function () {\n function d(b, d, e, f, h) {\n var k = b.chart.inverted;\n this.axis = b;\n this.isNegative = e;\n this.options = d = d || {};\n this.x = f;\n this.total = null;\n this.points = {};\n this.hasValidPoints = !1;\n this.stack = h;\n this.rightCliff = this.leftCliff = 0;\n this.alignOptions = {\n align: d.align || (k ? e ? \"left\" : \"right\" : \"center\"),\n verticalAlign: d.verticalAlign || (k ? \"middle\" : e ? \"bottom\" : \"top\"),\n y: d.y,\n x: d.x\n };\n this.textAlign = d.textAlign || (k ? e ? \"right\" : \"left\" : \"center\");\n }\n\n d.prototype.destroy = function () {\n h(this, this.axis);\n };\n\n d.prototype.render = function (b) {\n var d = this.axis.chart,\n e = this.options,\n f = e.format;\n f = f ? B(f, this, d) : e.formatter.call(this);\n this.label ? this.label.attr({\n text: f,\n visibility: \"hidden\"\n }) : (this.label = d.renderer.label(f, null, null, e.shape, null, null, e.useHTML, !1, \"stack-labels\"), f = {\n r: e.borderRadius || 0,\n text: f,\n rotation: e.rotation,\n padding: q(e.padding, 5),\n visibility: \"hidden\"\n }, d.styledMode || (f.fill = e.backgroundColor, f.stroke = e.borderColor, f[\"stroke-width\"] = e.borderWidth, this.label.css(e.style)), this.label.attr(f), this.label.added || this.label.add(b));\n this.label.labelrank = d.plotSizeY;\n };\n\n d.prototype.setOffset = function (d, e, f, h, m) {\n var k = this.axis,\n a = k.chart;\n h = k.translate(k.stacking.usePercentage ? 100 : h ? h : this.total, 0, 0, 0, 1);\n f = k.translate(f ? f : 0);\n f = t(h) && Math.abs(h - f);\n d = q(m, a.xAxis[0].translate(this.x)) + d;\n k = t(h) && this.getStackBox(a, this, d, h, e, f, k);\n e = this.label;\n f = this.isNegative;\n d = \"justify\" === q(this.options.overflow, \"justify\");\n var g = this.textAlign;\n e && k && (m = e.getBBox(), h = e.padding, g = \"left\" === g ? a.inverted ? -h : h : \"right\" === g ? m.width : a.inverted && \"center\" === g ? m.width / 2 : a.inverted ? f ? m.width + h : -h : m.width / 2, f = a.inverted ? m.height / 2 : f ? -h : m.height, this.alignOptions.x = q(this.options.x, 0), this.alignOptions.y = q(this.options.y, 0), k.x -= g, k.y -= f, e.align(this.alignOptions, null, k), a.isInsidePlot(e.alignAttr.x + g - this.alignOptions.x, e.alignAttr.y + f - this.alignOptions.y) ? e.show() : (e.hide(), d = !1), d && v.prototype.justifyDataLabel.call(this.axis, e, this.alignOptions, e.alignAttr, m, k), e.attr({\n x: e.alignAttr.x,\n y: e.alignAttr.y\n }), q(!d && this.options.crop, !0) && ((a = b(e.x) && b(e.y) && a.isInsidePlot(e.x - h + e.width, e.y) && a.isInsidePlot(e.x + h, e.y)) || e.hide()));\n };\n\n d.prototype.getStackBox = function (b, d, e, f, h, k, a) {\n var g = d.axis.reversed,\n c = b.inverted,\n m = a.height + a.pos - (c ? b.plotLeft : b.plotTop);\n d = d.isNegative && !g || !d.isNegative && g;\n return {\n x: c ? d ? f - a.right : f - k + a.pos - b.plotLeft : e + b.xAxis[0].transB - b.plotLeft,\n y: c ? a.height - e - h : d ? m - f - k : m - f,\n width: c ? k : h,\n height: c ? h : k\n };\n };\n\n return d;\n }();\n\n e.prototype.getStacks = function () {\n var b = this,\n d = b.inverted;\n b.yAxis.forEach(function (b) {\n b.stacking && b.stacking.stacks && b.hasVisibleSeries && (b.stacking.oldStacks = b.stacking.stacks);\n });\n b.series.forEach(function (e) {\n var f = e.xAxis && e.xAxis.options || {};\n !e.options.stacking || !0 !== e.visible && !1 !== b.options.chart.ignoreHiddenSeries || (e.stackKey = [e.type, q(e.options.stack, \"\"), d ? f.top : f.left, d ? f.height : f.width].join());\n });\n };\n\n E.compose(f);\n\n v.prototype.setGroupedPoints = function () {\n var b = this.yAxis.stacking;\n this.options.centerInCategory && (this.is(\"column\") || this.is(\"columnrange\")) && !this.options.stacking && 1 < this.chart.series.length ? v.prototype.setStackedPoints.call(this, \"group\") : b && p(b.stacks, function (d, e) {\n \"group\" === e.slice(-5) && (p(d, function (b) {\n return b.destroy();\n }), delete b.stacks[e]);\n });\n };\n\n v.prototype.setStackedPoints = function (b) {\n var e = b || this.options.stacking;\n\n if (e && (!0 === this.visible || !1 === this.chart.options.chart.ignoreHiddenSeries)) {\n var f = this.processedXData,\n h = this.processedYData,\n n = [],\n m = h.length,\n k = this.options,\n a = k.threshold,\n g = q(k.startFromThreshold && a, 0);\n k = k.stack;\n b = b ? \"\" + this.type + \",\".concat(e) : this.stackKey;\n var c = \"-\" + b,\n p = this.negStacks,\n l = this.yAxis,\n u = l.stacking.stacks,\n v = l.stacking.oldStacks,\n B,\n C;\n l.stacking.stacksTouched += 1;\n\n for (C = 0; C < m; C++) {\n var M = f[C];\n var G = h[C];\n var E = this.getStackIndicator(E, M, this.index);\n var I = E.key;\n var H = (B = p && G < (g ? 0 : a)) ? c : b;\n u[H] || (u[H] = {});\n u[H][M] || (v[H] && v[H][M] ? (u[H][M] = v[H][M], u[H][M].total = null) : u[H][M] = new r(l, l.options.stackLabels, B, M, k));\n H = u[H][M];\n null !== G ? (H.points[I] = H.points[this.index] = [q(H.cumulative, g)], t(H.cumulative) || (H.base = I), H.touched = l.stacking.stacksTouched, 0 < E.index && !1 === this.singleStacks && (H.points[I][0] = H.points[this.index + \",\" + M + \",0\"][0])) : H.points[I] = H.points[this.index] = null;\n \"percent\" === e ? (B = B ? b : c, p && u[B] && u[B][M] ? (B = u[B][M], H.total = B.total = Math.max(B.total, H.total) + Math.abs(G) || 0) : H.total = y(H.total + (Math.abs(G) || 0))) : \"group\" === e ? (d(G) && (G = G[0]), null !== G && (H.total = (H.total || 0) + 1)) : H.total = y(H.total + (G || 0));\n H.cumulative = \"group\" === e ? (H.total || 1) - 1 : q(H.cumulative, g) + (G || 0);\n null !== G && (H.points[I].push(H.cumulative), n[C] = H.cumulative, H.hasValidPoints = !0);\n }\n\n \"percent\" === e && (l.stacking.usePercentage = !0);\n \"group\" !== e && (this.stackedYData = n);\n l.stacking.oldStacks = {};\n }\n };\n\n v.prototype.modifyStacks = function () {\n var b = this,\n d = b.stackKey,\n e = b.yAxis.stacking.stacks,\n f = b.processedXData,\n h,\n m = b.options.stacking;\n b[m + \"Stacker\"] && [d, \"-\" + d].forEach(function (d) {\n for (var a = f.length, g, c; a--;) if (g = f[a], h = b.getStackIndicator(h, g, b.index, d), c = (g = e[d] && e[d][g]) && g.points[h.key]) b[m + \"Stacker\"](c, g, a);\n });\n };\n\n v.prototype.percentStacker = function (b, d, e) {\n d = d.total ? 100 / d.total : 0;\n b[0] = y(b[0] * d);\n b[1] = y(b[1] * d);\n this.stackedYData[e] = b[1];\n };\n\n v.prototype.getStackIndicator = function (b, d, e, f) {\n !t(b) || b.x !== d || f && b.stackKey !== f ? b = {\n x: d,\n index: 0,\n key: f,\n stackKey: f\n } : b.index++;\n b.key = [e, d, b.index].join();\n return b;\n };\n\n C.StackItem = r;\n \"\";\n return C.StackItem;\n });\n K(l, \"Series/Line/LineSeries.js\", [l[\"Core/Series/Series.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = this && this.__extends || function () {\n var e = function (f, l) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (e, f) {\n e.__proto__ = f;\n } || function (e, f) {\n for (var d in f) f.hasOwnProperty(d) && (e[d] = f[d]);\n };\n\n return e(f, l);\n };\n\n return function (f, l) {\n function t() {\n this.constructor = f;\n }\n\n e(f, l);\n f.prototype = null === l ? Object.create(l) : (t.prototype = l.prototype, new t());\n };\n }(),\n v = l.defined,\n E = l.merge;\n\n l = function (e) {\n function l() {\n var f = null !== e && e.apply(this, arguments) || this;\n f.data = void 0;\n f.options = void 0;\n f.points = void 0;\n return f;\n }\n\n C(l, e);\n\n l.prototype.drawGraph = function () {\n var e = this,\n f = this.options,\n h = (this.gappedPath || this.getGraphPath).call(this),\n d = this.chart.styledMode,\n b = [[\"graph\", \"highcharts-graph\"]];\n d || b[0].push(f.lineColor || this.color || \"#cccccc\", f.dashStyle);\n b = e.getZonesGraphs(b);\n b.forEach(function (b, l) {\n var p = b[0],\n n = e[p],\n q = n ? \"animate\" : \"attr\";\n n ? (n.endX = e.preventGraphAnimation ? null : h.xMap, n.animate({\n d: h\n })) : h.length && (e[p] = n = e.chart.renderer.path(h).addClass(b[1]).attr({\n zIndex: 1\n }).add(e.group));\n n && !d && (p = {\n stroke: b[2],\n \"stroke-width\": f.lineWidth,\n fill: e.fillGraph && e.color || \"none\"\n }, b[3] ? p.dashstyle = b[3] : \"square\" !== f.linecap && (p[\"stroke-linecap\"] = p[\"stroke-linejoin\"] = \"round\"), n[q](p).shadow(2 > l && f.shadow));\n n && (n.startX = h.xMap, n.isArea = h.isArea);\n });\n };\n\n l.prototype.getGraphPath = function (e, f, h) {\n var d = this,\n b = d.options,\n p = [],\n l = [],\n r,\n n = b.step;\n e = e || d.points;\n var t = e.reversed;\n t && e.reverse();\n (n = {\n right: 1,\n center: 2\n }[n] || n && 3) && t && (n = 4 - n);\n e = this.getValidPoints(e, !1, !(b.connectNulls && !f && !h));\n e.forEach(function (q, t) {\n var x = q.plotX,\n m = q.plotY,\n k = e[t - 1];\n (q.leftCliff || k && k.rightCliff) && !h && (r = !0);\n q.isNull && !v(f) && 0 < t ? r = !b.connectNulls : q.isNull && !f ? r = !0 : (0 === t || r ? t = [[\"M\", q.plotX, q.plotY]] : d.getPointSpline ? t = [d.getPointSpline(e, q, t)] : n ? (t = 1 === n ? [[\"L\", k.plotX, m]] : 2 === n ? [[\"L\", (k.plotX + x) / 2, k.plotY], [\"L\", (k.plotX + x) / 2, m]] : [[\"L\", x, k.plotY]], t.push([\"L\", x, m])) : t = [[\"L\", x, m]], l.push(q.x), n && (l.push(q.x), 2 === n && l.push(q.x)), p.push.apply(p, t), r = !1);\n });\n p.xMap = l;\n return d.graphPath = p;\n };\n\n l.prototype.getZonesGraphs = function (e) {\n this.zones.forEach(function (f, h) {\n h = [\"zone-graph-\" + h, \"highcharts-graph highcharts-zone-graph-\" + h + \" \" + (f.className || \"\")];\n this.chart.styledMode || h.push(f.color || this.color, f.dashStyle || this.options.dashStyle);\n e.push(h);\n }, this);\n return e;\n };\n\n l.defaultOptions = E(f.defaultOptions, {});\n return l;\n }(f);\n\n e.registerSeriesType(\"line\", l);\n \"\";\n return l;\n });\n K(l, \"Series/Area/AreaSeries.js\", [l[\"Core/Color/Color.js\"], l[\"Core/Legend/LegendSymbol.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C) {\n var v = this && this.__extends || function () {\n var e = function (d, b) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return e(d, b);\n };\n\n return function (d, b) {\n function f() {\n this.constructor = d;\n }\n\n e(d, b);\n d.prototype = null === b ? Object.create(b) : (f.prototype = b.prototype, new f());\n };\n }(),\n E = f.parse,\n G = l.seriesTypes.line;\n\n f = C.extend;\n var B = C.merge,\n y = C.objectEach,\n t = C.pick;\n\n C = function (e) {\n function d() {\n var b = null !== e && e.apply(this, arguments) || this;\n b.data = void 0;\n b.options = void 0;\n b.points = void 0;\n return b;\n }\n\n v(d, e);\n\n d.prototype.drawGraph = function () {\n this.areaPath = [];\n e.prototype.drawGraph.apply(this);\n var b = this,\n d = this.areaPath,\n f = this.options,\n h = [[\"area\", \"highcharts-area\", this.color, f.fillColor]];\n this.zones.forEach(function (d, e) {\n h.push([\"zone-area-\" + e, \"highcharts-area highcharts-zone-area-\" + e + \" \" + d.className, d.color || b.color, d.fillColor || f.fillColor]);\n });\n h.forEach(function (e) {\n var h = e[0],\n p = {},\n n = b[h],\n l = n ? \"animate\" : \"attr\";\n n ? (n.endX = b.preventGraphAnimation ? null : d.xMap, n.animate({\n d: d\n })) : (p.zIndex = 0, n = b[h] = b.chart.renderer.path(d).addClass(e[1]).add(b.group), n.isArea = !0);\n b.chart.styledMode || (p.fill = t(e[3], E(e[2]).setOpacity(t(f.fillOpacity, .75)).get()));\n n[l](p);\n n.startX = d.xMap;\n n.shiftUnit = f.step ? 2 : 1;\n });\n };\n\n d.prototype.getGraphPath = function (b) {\n var d = G.prototype.getGraphPath,\n e = this.options,\n f = e.stacking,\n h = this.yAxis,\n l = [],\n w = [],\n z = this.index,\n x = h.stacking.stacks[this.stackKey],\n m = e.threshold,\n k = Math.round(h.getThreshold(e.threshold));\n e = t(e.connectNulls, \"percent\" === f);\n\n var a = function (a, c, d) {\n var e = b[a];\n a = f && x[e.x].points[z];\n var g = e[d + \"Null\"] || 0;\n d = e[d + \"Cliff\"] || 0;\n e = !0;\n\n if (d || g) {\n var p = (g ? a[0] : a[1]) + d;\n var n = a[0] + d;\n e = !!g;\n } else !f && b[c] && b[c].isNull && (p = n = m);\n\n \"undefined\" !== typeof p && (w.push({\n plotX: A,\n plotY: null === p ? k : h.getThreshold(p),\n isNull: e,\n isCliff: !0\n }), l.push({\n plotX: A,\n plotY: null === n ? k : h.getThreshold(n),\n doCurve: !1\n }));\n };\n\n b = b || this.points;\n f && (b = this.getStackPoints(b));\n\n for (var g = 0, c = b.length; g < c; ++g) {\n f || (b[g].leftCliff = b[g].rightCliff = b[g].leftNull = b[g].rightNull = void 0);\n var D = b[g].isNull;\n var A = t(b[g].rectPlotX, b[g].plotX);\n var u = f ? t(b[g].yBottom, k) : k;\n if (!D || e) e || a(g, g - 1, \"left\"), D && !f && e || (w.push(b[g]), l.push({\n x: g,\n plotX: A,\n plotY: u\n })), e || a(g, g + 1, \"right\");\n }\n\n a = d.call(this, w, !0, !0);\n l.reversed = !0;\n D = d.call(this, l, !0, !0);\n (u = D[0]) && \"M\" === u[0] && (D[0] = [\"L\", u[1], u[2]]);\n D = a.concat(D);\n D.length && D.push([\"Z\"]);\n d = d.call(this, w, !1, e);\n D.xMap = a.xMap;\n this.areaPath = D;\n return d;\n };\n\n d.prototype.getStackPoints = function (b) {\n var d = this,\n e = [],\n f = [],\n h = this.xAxis,\n l = this.yAxis,\n w = l.stacking.stacks[this.stackKey],\n z = {},\n x = l.series,\n m = x.length,\n k = l.options.reversedStacks ? 1 : -1,\n a = x.indexOf(d);\n b = b || this.points;\n\n if (this.options.stacking) {\n for (var g = 0; g < b.length; g++) b[g].leftNull = b[g].rightNull = void 0, z[b[g].x] = b[g];\n\n y(w, function (a, c) {\n null !== a.total && f.push(c);\n });\n f.sort(function (a, c) {\n return a - c;\n });\n var c = x.map(function (a) {\n return a.visible;\n });\n f.forEach(function (b, g) {\n var p = 0,\n n,\n q;\n if (z[b] && !z[b].isNull) e.push(z[b]), [-1, 1].forEach(function (e) {\n var h = 1 === e ? \"rightNull\" : \"leftNull\",\n p = w[f[g + e]],\n l = 0;\n if (p) for (var r = a; 0 <= r && r < m;) {\n var u = x[r].index;\n n = p.points[u];\n n || (u === d.index ? z[b][h] = !0 : c[r] && (q = w[b].points[u]) && (l -= q[1] - q[0]));\n r += k;\n }\n z[b][1 === e ? \"rightCliff\" : \"leftCliff\"] = l;\n });else {\n for (var r = a; 0 <= r && r < m;) {\n if (n = w[b].points[x[r].index]) {\n p = n[1];\n break;\n }\n\n r += k;\n }\n\n p = t(p, 0);\n p = l.translate(p, 0, 1, 0, 1);\n e.push({\n isNull: !0,\n plotX: h.translate(b, 0, 0, 0, 1),\n x: b,\n plotY: p,\n yBottom: p\n });\n }\n });\n }\n\n return e;\n };\n\n d.defaultOptions = B(G.defaultOptions, {\n threshold: 0\n });\n return d;\n }(G);\n\n f(C.prototype, {\n singleStacks: !1,\n drawLegendSymbol: e.drawRectangle\n });\n l.registerSeriesType(\"area\", C);\n \"\";\n return C;\n });\n K(l, \"Series/Spline/SplineSeries.js\", [l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = this && this.__extends || function () {\n var e = function (f, l) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (e, f) {\n e.__proto__ = f;\n } || function (e, f) {\n for (var d in f) f.hasOwnProperty(d) && (e[d] = f[d]);\n };\n\n return e(f, l);\n };\n\n return function (f, l) {\n function t() {\n this.constructor = f;\n }\n\n e(f, l);\n f.prototype = null === l ? Object.create(l) : (t.prototype = l.prototype, new t());\n };\n }(),\n C = f.seriesTypes.line,\n v = e.merge,\n E = e.pick;\n\n e = function (e) {\n function f() {\n var f = null !== e && e.apply(this, arguments) || this;\n f.data = void 0;\n f.options = void 0;\n f.points = void 0;\n return f;\n }\n\n l(f, e);\n\n f.prototype.getPointSpline = function (e, f, h) {\n var d = f.plotX || 0,\n b = f.plotY || 0,\n p = e[h - 1];\n h = e[h + 1];\n\n if (p && !p.isNull && !1 !== p.doCurve && !f.isCliff && h && !h.isNull && !1 !== h.doCurve && !f.isCliff) {\n e = p.plotY || 0;\n var l = h.plotX || 0;\n h = h.plotY || 0;\n var r = 0;\n var n = (1.5 * d + (p.plotX || 0)) / 2.5;\n var t = (1.5 * b + e) / 2.5;\n l = (1.5 * d + l) / 2.5;\n var w = (1.5 * b + h) / 2.5;\n l !== n && (r = (w - t) * (l - d) / (l - n) + b - w);\n t += r;\n w += r;\n t > e && t > b ? (t = Math.max(e, b), w = 2 * b - t) : t < e && t < b && (t = Math.min(e, b), w = 2 * b - t);\n w > h && w > b ? (w = Math.max(h, b), t = 2 * b - w) : w < h && w < b && (w = Math.min(h, b), t = 2 * b - w);\n f.rightContX = l;\n f.rightContY = w;\n }\n\n f = [\"C\", E(p.rightContX, p.plotX, 0), E(p.rightContY, p.plotY, 0), E(n, d, 0), E(t, b, 0), d, b];\n p.rightContX = p.rightContY = void 0;\n return f;\n };\n\n f.defaultOptions = v(C.defaultOptions);\n return f;\n }(C);\n\n f.registerSeriesType(\"spline\", e);\n \"\";\n return e;\n });\n K(l, \"Series/AreaSpline/AreaSplineSeries.js\", [l[\"Series/Spline/SplineSeries.js\"], l[\"Core/Legend/LegendSymbol.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C) {\n var v = this && this.__extends || function () {\n var e = function (f, d) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return e(f, d);\n };\n\n return function (f, d) {\n function b() {\n this.constructor = f;\n }\n\n e(f, d);\n f.prototype = null === d ? Object.create(d) : (b.prototype = d.prototype, new b());\n };\n }(),\n E = l.seriesTypes,\n G = E.area;\n\n E = E.area.prototype;\n var B = C.extend,\n y = C.merge;\n\n C = function (e) {\n function h() {\n var d = null !== e && e.apply(this, arguments) || this;\n d.data = void 0;\n d.points = void 0;\n d.options = void 0;\n return d;\n }\n\n v(h, e);\n h.defaultOptions = y(f.defaultOptions, G.defaultOptions);\n return h;\n }(f);\n\n B(C.prototype, {\n getGraphPath: E.getGraphPath,\n getStackPoints: E.getStackPoints,\n drawGraph: E.drawGraph,\n drawLegendSymbol: e.drawRectangle\n });\n l.registerSeriesType(\"areaspline\", C);\n \"\";\n return C;\n });\n K(l, \"Series/Column/ColumnSeries.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Color/Color.js\"], l[\"Core/Globals.js\"], l[\"Core/Legend/LegendSymbol.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G) {\n var B = this && this.__extends || function () {\n var b = function (d, a) {\n b = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (a, c) {\n a.__proto__ = c;\n } || function (a, c) {\n for (var b in c) c.hasOwnProperty(b) && (a[b] = c[b]);\n };\n\n return b(d, a);\n };\n\n return function (d, a) {\n function e() {\n this.constructor = d;\n }\n\n b(d, a);\n d.prototype = null === a ? Object.create(a) : (e.prototype = a.prototype, new e());\n };\n }(),\n y = f.animObject,\n t = e.parse,\n h = l.hasTouch;\n\n f = l.noop;\n var d = G.clamp,\n b = G.css,\n p = G.defined,\n q = G.extend,\n r = G.fireEvent,\n n = G.isArray,\n J = G.isNumber,\n w = G.merge,\n z = G.pick,\n x = G.objectEach;\n\n G = function (e) {\n function f() {\n var a = null !== e && e.apply(this, arguments) || this;\n a.borderWidth = void 0;\n a.data = void 0;\n a.group = void 0;\n a.options = void 0;\n a.points = void 0;\n return a;\n }\n\n B(f, e);\n\n f.prototype.animate = function (a) {\n var b = this,\n c = this.yAxis,\n e = b.options,\n f = this.chart.inverted,\n k = {},\n h = f ? \"translateX\" : \"translateY\";\n if (a) k.scaleY = .001, a = d(c.toPixels(e.threshold), c.pos, c.pos + c.len), f ? k.translateX = a - c.len : k.translateY = a, b.clipBox && b.setClip(), b.group.attr(k);else {\n var m = Number(b.group.attr(h));\n b.group.animate({\n scaleY: 1\n }, q(y(b.options.animation), {\n step: function (a, d) {\n b.group && (k[h] = m + d.pos * (c.pos - m), b.group.attr(k));\n }\n }));\n }\n };\n\n f.prototype.init = function (a, b) {\n e.prototype.init.apply(this, arguments);\n var c = this;\n a = c.chart;\n a.hasRendered && a.series.forEach(function (a) {\n a.type === c.type && (a.isDirty = !0);\n });\n };\n\n f.prototype.getColumnMetrics = function () {\n var a = this,\n b = a.options,\n c = a.xAxis,\n d = a.yAxis,\n e = c.options.reversedStacks;\n e = c.reversed && !e || !c.reversed && e;\n var f = {},\n k,\n h = 0;\n !1 === b.grouping ? h = 1 : a.chart.series.forEach(function (b) {\n var c = b.yAxis,\n e = b.options;\n\n if (b.type === a.type && (b.visible || !a.chart.options.chart.ignoreHiddenSeries) && d.len === c.len && d.pos === c.pos) {\n if (e.stacking && \"group\" !== e.stacking) {\n k = b.stackKey;\n \"undefined\" === typeof f[k] && (f[k] = h++);\n var g = f[k];\n } else !1 !== e.grouping && (g = h++);\n\n b.columnIndex = g;\n }\n });\n var m = Math.min(Math.abs(c.transA) * (c.ordinal && c.ordinal.slope || b.pointRange || c.closestPointRange || c.tickInterval || 1), c.len),\n l = m * b.groupPadding,\n p = (m - 2 * l) / (h || 1);\n b = Math.min(b.maxPointWidth || c.len, z(b.pointWidth, p * (1 - 2 * b.pointPadding)));\n a.columnMetrics = {\n width: b,\n offset: (p - b) / 2 + (l + ((a.columnIndex || 0) + (e ? 1 : 0)) * p - m / 2) * (e ? -1 : 1),\n paddedWidth: p,\n columnCount: h\n };\n return a.columnMetrics;\n };\n\n f.prototype.crispCol = function (a, b, c, d) {\n var e = this.chart,\n g = this.borderWidth,\n f = -(g % 2 ? .5 : 0);\n g = g % 2 ? .5 : 1;\n e.inverted && e.renderer.isVML && (g += 1);\n this.options.crisp && (c = Math.round(a + c) + f, a = Math.round(a) + f, c -= a);\n d = Math.round(b + d) + g;\n f = .5 >= Math.abs(b) && .5 < d;\n b = Math.round(b) + g;\n d -= b;\n f && d && (--b, d += 1);\n return {\n x: a,\n y: b,\n width: c,\n height: d\n };\n };\n\n f.prototype.adjustForMissingColumns = function (a, b, c, d) {\n var e = this,\n g = this.options.stacking;\n\n if (!c.isNull && 1 < d.columnCount) {\n var f = this.yAxis.options.reversedStacks,\n k = 0,\n h = f ? 0 : -d.columnCount;\n x(this.yAxis.stacking && this.yAxis.stacking.stacks, function (a) {\n if (\"number\" === typeof c.x && (a = a[c.x.toString()])) {\n var b = a.points[e.index],\n d = a.total;\n g ? (b && (k = h), a.hasValidPoints && (f ? h++ : h--)) : n(b) && (k = b[1], h = d || 0);\n }\n });\n a = (c.plotX || 0) + ((h - 1) * d.paddedWidth + b) / 2 - b - k * d.paddedWidth;\n }\n\n return a;\n };\n\n f.prototype.translate = function () {\n var a = this,\n b = a.chart,\n c = a.options,\n e = a.dense = 2 > a.closestPointRange * a.xAxis.transA;\n e = a.borderWidth = z(c.borderWidth, e ? 0 : 1);\n var f = a.xAxis,\n k = a.yAxis,\n h = c.threshold,\n m = a.translatedThreshold = k.getThreshold(h),\n l = z(c.minPointLength, 5),\n n = a.getColumnMetrics(),\n q = n.width,\n r = a.pointXOffset = n.offset,\n t = a.dataMin,\n x = a.dataMax,\n w = a.barW = Math.max(q, 1 + 2 * e);\n b.inverted && (m -= .5);\n c.pointPadding && (w = Math.ceil(w));\n v.prototype.translate.apply(a);\n a.points.forEach(function (e) {\n var g = z(e.yBottom, m),\n u = 999 + Math.abs(g),\n A = e.plotX || 0;\n u = d(e.plotY, -u, k.len + u);\n var v = Math.min(u, g),\n y = Math.max(u, g) - v,\n D = q,\n B = A + r,\n C = w;\n l && Math.abs(y) < l && (y = l, A = !k.reversed && !e.negative || k.reversed && e.negative, J(h) && J(x) && e.y === h && x <= h && (k.min || 0) < h && (t !== x || (k.max || 0) <= h) && (A = !A), v = Math.abs(v - m) > l ? g - l : m - (A ? l : 0));\n p(e.options.pointWidth) && (D = C = Math.ceil(e.options.pointWidth), B -= Math.round((D - q) / 2));\n c.centerInCategory && (B = a.adjustForMissingColumns(B, D, e, n));\n e.barX = B;\n e.pointWidth = D;\n e.tooltipPos = b.inverted ? [d(k.len + k.pos - b.plotLeft - u, k.pos - b.plotLeft, k.len + k.pos - b.plotLeft), f.len + f.pos - b.plotTop - B - C / 2, y] : [f.left - b.plotLeft + B + C / 2, d(u + k.pos - b.plotTop, k.pos - b.plotTop, k.len + k.pos - b.plotTop), y];\n e.shapeType = a.pointClass.prototype.shapeType || \"rect\";\n e.shapeArgs = a.crispCol.apply(a, e.isNull ? [B, m, C, 0] : [B, v, C, y]);\n });\n };\n\n f.prototype.drawGraph = function () {\n this.group[this.dense ? \"addClass\" : \"removeClass\"](\"highcharts-dense-data\");\n };\n\n f.prototype.pointAttribs = function (a, b) {\n var c = this.options,\n d = this.pointAttrToOptions || {},\n e = d.stroke || \"borderColor\",\n g = d[\"stroke-width\"] || \"borderWidth\",\n f = a && a.color || this.color,\n k = a && a[e] || c[e] || f;\n d = a && a.options.dashStyle || c.dashStyle;\n var h = a && a[g] || c[g] || this[g] || 0,\n m = z(a && a.opacity, c.opacity, 1);\n\n if (a && this.zones.length) {\n var l = a.getZone();\n f = a.options.color || l && (l.color || a.nonZonedColor) || this.color;\n l && (k = l.borderColor || k, d = l.dashStyle || d, h = l.borderWidth || h);\n }\n\n b && a && (a = w(c.states[b], a.options.states && a.options.states[b] || {}), b = a.brightness, f = a.color || \"undefined\" !== typeof b && t(f).brighten(a.brightness).get() || f, k = a[e] || k, h = a[g] || h, d = a.dashStyle || d, m = z(a.opacity, m));\n e = {\n fill: f,\n stroke: k,\n \"stroke-width\": h,\n opacity: m\n };\n d && (e.dashstyle = d);\n return e;\n };\n\n f.prototype.drawPoints = function () {\n var a = this,\n b = this.chart,\n c = a.options,\n d = b.renderer,\n e = c.animationLimit || 250,\n f;\n a.points.forEach(function (g) {\n var k = g.graphic,\n h = !!k,\n m = k && b.pointCount < e ? \"animate\" : \"attr\";\n\n if (J(g.plotY) && null !== g.y) {\n f = g.shapeArgs;\n k && g.hasNewShapeType() && (k = k.destroy());\n a.enabledDataSorting && (g.startXPos = a.xAxis.reversed ? -(f ? f.width || 0 : 0) : a.xAxis.width);\n k || (g.graphic = k = d[g.shapeType](f).add(g.group || a.group)) && a.enabledDataSorting && b.hasRendered && b.pointCount < e && (k.attr({\n x: g.startXPos\n }), h = !0, m = \"animate\");\n if (k && h) k[m](w(f));\n if (c.borderRadius) k[m]({\n r: c.borderRadius\n });\n b.styledMode || k[m](a.pointAttribs(g, g.selected && \"select\")).shadow(!1 !== g.allowShadow && c.shadow, null, c.stacking && !c.borderRadius);\n k && (k.addClass(g.getClassName(), !0), k.attr({\n visibility: g.visible ? \"inherit\" : \"hidden\"\n }));\n } else k && (g.graphic = k.destroy());\n });\n };\n\n f.prototype.drawTracker = function () {\n var a = this,\n d = a.chart,\n c = d.pointer,\n e = function (a) {\n var b = c.getPointFromEvent(a);\n \"undefined\" !== typeof b && (c.isDirectTouch = !0, b.onMouseOver(a));\n },\n f;\n\n a.points.forEach(function (a) {\n f = n(a.dataLabels) ? a.dataLabels : a.dataLabel ? [a.dataLabel] : [];\n a.graphic && (a.graphic.element.point = a);\n f.forEach(function (b) {\n b.div ? b.div.point = a : b.element.point = a;\n });\n });\n a._hasTracking || (a.trackerGroups.forEach(function (g) {\n if (a[g]) {\n a[g].addClass(\"highcharts-tracker\").on(\"mouseover\", e).on(\"mouseout\", function (a) {\n c.onTrackerMouseOut(a);\n });\n if (h) a[g].on(\"touchstart\", e);\n !d.styledMode && a.options.cursor && a[g].css(b).css({\n cursor: a.options.cursor\n });\n }\n }), a._hasTracking = !0);\n r(this, \"afterDrawTracker\");\n };\n\n f.prototype.remove = function () {\n var a = this,\n b = a.chart;\n b.hasRendered && b.series.forEach(function (b) {\n b.type === a.type && (b.isDirty = !0);\n });\n v.prototype.remove.apply(a, arguments);\n };\n\n f.defaultOptions = w(v.defaultOptions, {\n borderRadius: 0,\n centerInCategory: !1,\n groupPadding: .2,\n marker: null,\n pointPadding: .1,\n minPointLength: 0,\n cropThreshold: 50,\n pointRange: null,\n states: {\n hover: {\n halo: !1,\n brightness: .1\n },\n select: {\n color: \"#cccccc\",\n borderColor: \"#000000\"\n }\n },\n dataLabels: {\n align: void 0,\n verticalAlign: void 0,\n y: void 0\n },\n startFromThreshold: !0,\n stickyTracking: !1,\n tooltip: {\n distance: 6\n },\n threshold: 0,\n borderColor: \"#ffffff\"\n });\n return f;\n }(v);\n\n q(G.prototype, {\n cropShoulder: 0,\n directTouch: !0,\n drawLegendSymbol: C.drawRectangle,\n getSymbol: f,\n negStacks: !0,\n trackerGroups: [\"group\", \"dataLabelsGroup\"]\n });\n E.registerSeriesType(\"column\", G);\n \"\";\n \"\";\n return G;\n });\n K(l, \"Core/Series/DataLabel.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = f.getDeferredAnimation,\n v = e.format,\n E = l.defined,\n G = l.extend,\n B = l.fireEvent,\n y = l.isArray,\n t = l.merge,\n h = l.objectEach,\n d = l.pick,\n b = l.splat,\n p;\n\n (function (e) {\n function f(b, a, e, c, f) {\n var g = this,\n k = this.chart,\n h = this.isCartesian && k.inverted,\n m = this.enabledDataSorting,\n l = d(b.dlBox && b.dlBox.centerX, b.plotX),\n p = b.plotY,\n n = e.rotation,\n q = e.align,\n r = E(l) && E(p) && k.isInsidePlot(l, Math.round(p), {\n inverted: h,\n paneCoordinates: !0,\n series: g\n }),\n t = function (c) {\n m && g.xAxis && !x && g.setDataLabelStartPos(b, a, f, r, c);\n },\n x = \"justify\" === d(e.overflow, m ? \"none\" : \"justify\"),\n z = this.visible && !1 !== b.visible && (b.series.forceDL || m && !x || r || d(e.inside, !!this.options.stacking) && c && k.isInsidePlot(l, h ? c.x + 1 : c.y + c.height - 1, {\n inverted: h,\n paneCoordinates: !0,\n series: g\n }));\n\n if (z && E(l) && E(p)) {\n n && a.attr({\n align: q\n });\n q = a.getBBox(!0);\n var w = [0, 0];\n var v = k.renderer.fontMetrics(k.styledMode ? void 0 : e.style.fontSize, a).b;\n c = G({\n x: h ? this.yAxis.len - p : l,\n y: Math.round(h ? this.xAxis.len - l : p),\n width: 0,\n height: 0\n }, c);\n G(e, {\n width: q.width,\n height: q.height\n });\n n ? (x = !1, w = k.renderer.rotCorr(v, n), l = {\n x: c.x + (e.x || 0) + c.width / 2 + w.x,\n y: c.y + (e.y || 0) + {\n top: 0,\n middle: .5,\n bottom: 1\n }[e.verticalAlign] * c.height\n }, w = [q.x - Number(a.attr(\"x\")), q.y - Number(a.attr(\"y\"))], t(l), a[f ? \"attr\" : \"animate\"](l)) : (t(c), a.align(e, void 0, c), l = a.alignAttr);\n x && 0 <= c.height ? this.justifyDataLabel(a, e, l, q, c, f) : d(e.crop, !0) && (c = l.x, t = l.y, c += w[0], t += w[1], z = k.isInsidePlot(c, t, {\n paneCoordinates: !0,\n series: g\n }) && k.isInsidePlot(c + q.width, t + q.height, {\n paneCoordinates: !0,\n series: g\n }));\n if (e.shape && !n) a[f ? \"attr\" : \"animate\"]({\n anchorX: h ? k.plotWidth - b.plotY : b.plotX,\n anchorY: h ? k.plotHeight - b.plotX : b.plotY\n });\n }\n\n f && m && (a.placed = !1);\n z || m && !x ? a.show() : (a.hide(), a.placed = !1);\n }\n\n function l(b, a) {\n var d = a.filter;\n return d ? (a = d.operator, b = b[d.property], d = d.value, \">\" === a && b > d || \"<\" === a && b < d || \">=\" === a && b >= d || \"<=\" === a && b <= d || \"==\" === a && b == d || \"===\" === a && b === d ? !0 : !1) : !0;\n }\n\n function p() {\n var e = this,\n a = e.chart,\n g = e.options,\n c = e.points,\n f = e.hasRendered || 0,\n m = a.renderer,\n p = g.dataLabels,\n n,\n q = p.animation;\n q = p.defer ? C(a, q, e) : {\n defer: 0,\n duration: 0\n };\n p = z(z(a.options.plotOptions && a.options.plotOptions.series && a.options.plotOptions.series.dataLabels, a.options.plotOptions && a.options.plotOptions[e.type] && a.options.plotOptions[e.type].dataLabels), p);\n B(this, \"drawDataLabels\");\n\n if (y(p) || p.enabled || e._hasPointLabels) {\n var r = e.plotGroup(\"dataLabelsGroup\", \"data-labels\", f ? \"inherit\" : \"hidden\", p.zIndex || 6);\n r.attr({\n opacity: +f\n });\n !f && (f = e.dataLabelsGroup) && (e.visible && r.show(), f[g.animation ? \"animate\" : \"attr\"]({\n opacity: 1\n }, q));\n c.forEach(function (c) {\n n = b(z(p, c.dlOptions || c.options && c.options.dataLabels));\n n.forEach(function (b, f) {\n var k = b.enabled && (!c.isNull || c.dataLabelOnNull) && l(c, b),\n p = c.connectors ? c.connectors[f] : c.connector,\n n = c.dataLabels ? c.dataLabels[f] : c.dataLabel,\n q = !n,\n t = d(b.distance, c.labelDistance);\n\n if (k) {\n var u = c.getLabelConfig();\n var x = d(b[c.formatPrefix + \"Format\"], b.format);\n u = E(x) ? v(x, u, a) : (b[c.formatPrefix + \"Formatter\"] || b.formatter).call(u, b);\n x = b.style;\n var z = b.rotation;\n a.styledMode || (x.color = d(b.color, x.color, e.color, \"#000000\"), \"contrast\" === x.color ? (c.contrastColor = m.getContrast(c.color || e.color), x.color = !E(t) && b.inside || 0 > t || g.stacking ? c.contrastColor : \"#000000\") : delete c.contrastColor, g.cursor && (x.cursor = g.cursor));\n var w = {\n r: b.borderRadius || 0,\n rotation: z,\n padding: b.padding,\n zIndex: 1\n };\n a.styledMode || (w.fill = b.backgroundColor, w.stroke = b.borderColor, w[\"stroke-width\"] = b.borderWidth);\n h(w, function (a, b) {\n \"undefined\" === typeof a && delete w[b];\n });\n }\n\n !n || k && E(u) && !!n.div === !!b.useHTML && (n.rotation && b.rotation || n.rotation === b.rotation) || (q = !0, c.dataLabel = n = c.dataLabel && c.dataLabel.destroy(), c.dataLabels && (1 === c.dataLabels.length ? delete c.dataLabels : delete c.dataLabels[f]), f || delete c.dataLabel, p && (c.connector = c.connector.destroy(), c.connectors && (1 === c.connectors.length ? delete c.connectors : delete c.connectors[f])));\n k && E(u) ? (n ? w.text = u : (c.dataLabels = c.dataLabels || [], n = c.dataLabels[f] = z ? m.text(u, 0, 0, b.useHTML).addClass(\"highcharts-data-label\") : m.label(u, 0, 0, b.shape, null, null, b.useHTML, null, \"data-label\"), f || (c.dataLabel = n), n.addClass(\" highcharts-data-label-color-\" + c.colorIndex + \" \" + (b.className || \"\") + (b.useHTML ? \" highcharts-tracker\" : \"\"))), n.options = b, n.attr(w), a.styledMode || n.css(x).shadow(b.shadow), n.added || n.add(r), b.textPath && !b.useHTML && (n.setTextPath(c.getDataLabelPath && c.getDataLabelPath(n) || c.graphic, b.textPath), c.dataLabelPath && !b.textPath.enabled && (c.dataLabelPath = c.dataLabelPath.destroy())), e.alignDataLabel(c, n, b, null, q)) : n && n.hide();\n });\n });\n }\n\n B(this, \"afterDrawDataLabels\");\n }\n\n function q(b, a, d, c, e, f) {\n var g = this.chart,\n k = a.align,\n h = a.verticalAlign,\n m = b.box ? 0 : b.padding || 0,\n l = a.x;\n l = void 0 === l ? 0 : l;\n var n = a.y;\n n = void 0 === n ? 0 : n;\n var p = (d.x || 0) + m;\n\n if (0 > p) {\n \"right\" === k && 0 <= l ? (a.align = \"left\", a.inside = !0) : l -= p;\n var q = !0;\n }\n\n p = (d.x || 0) + c.width - m;\n p > g.plotWidth && (\"left\" === k && 0 >= l ? (a.align = \"right\", a.inside = !0) : l += g.plotWidth - p, q = !0);\n p = d.y + m;\n 0 > p && (\"bottom\" === h && 0 <= n ? (a.verticalAlign = \"top\", a.inside = !0) : n -= p, q = !0);\n p = (d.y || 0) + c.height - m;\n p > g.plotHeight && (\"top\" === h && 0 >= n ? (a.verticalAlign = \"bottom\", a.inside = !0) : n += g.plotHeight - p, q = !0);\n q && (a.x = l, a.y = n, b.placed = !f, b.align(a, void 0, e));\n return q;\n }\n\n function z(b, a) {\n var d = [],\n c;\n if (y(b) && !y(a)) d = b.map(function (b) {\n return t(b, a);\n });else if (y(a) && !y(b)) d = a.map(function (a) {\n return t(b, a);\n });else if (y(b) || y(a)) for (c = Math.max(b.length, a.length); c--;) d[c] = t(b[c], a[c]);else d = t(b, a);\n return d;\n }\n\n function x(b, a, d, c, e) {\n var g = this.chart,\n f = g.inverted,\n h = this.xAxis,\n k = h.reversed,\n m = f ? a.height / 2 : a.width / 2;\n b = (b = b.pointWidth) ? b / 2 : 0;\n a.startXPos = f ? e.x : k ? -m - b : h.width - m + b;\n a.startYPos = f ? k ? this.yAxis.height - m + b : -m - b : e.y;\n c ? \"hidden\" === a.visibility && (a.show(), a.attr({\n opacity: 0\n }).animate({\n opacity: 1\n })) : a.attr({\n opacity: 1\n }).animate({\n opacity: 0\n }, void 0, a.hide);\n g.hasRendered && (d && a.attr({\n x: a.startXPos,\n y: a.startYPos\n }), a.placed = !0);\n }\n\n var m = [];\n\n e.compose = function (b) {\n if (-1 === m.indexOf(b)) {\n var a = b.prototype;\n m.push(b);\n a.alignDataLabel = f;\n a.drawDataLabels = p;\n a.justifyDataLabel = q;\n a.setDataLabelStartPos = x;\n }\n };\n })(p || (p = {}));\n\n \"\";\n return p;\n });\n K(l, \"Series/Column/ColumnDataLabel.js\", [l[\"Core/Series/DataLabel.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = e.series,\n v = l.merge,\n E = l.pick,\n G;\n\n (function (e) {\n function l(e, d, b, f, l) {\n var h = this.chart.inverted,\n n = e.series,\n p = (n.xAxis ? n.xAxis.len : this.chart.plotSizeX) || 0;\n n = (n.yAxis ? n.yAxis.len : this.chart.plotSizeY) || 0;\n var q = e.dlBox || e.shapeArgs,\n t = E(e.below, e.plotY > E(this.translatedThreshold, n)),\n x = E(b.inside, !!this.options.stacking);\n q && (f = v(q), 0 > f.y && (f.height += f.y, f.y = 0), q = f.y + f.height - n, 0 < q && q < f.height && (f.height -= q), h && (f = {\n x: n - f.y - f.height,\n y: p - f.x - f.width,\n width: f.height,\n height: f.width\n }), x || (h ? (f.x += t ? 0 : f.width, f.width = 0) : (f.y += t ? f.height : 0, f.height = 0)));\n b.align = E(b.align, !h || x ? \"center\" : t ? \"right\" : \"left\");\n b.verticalAlign = E(b.verticalAlign, h || x ? \"middle\" : t ? \"top\" : \"bottom\");\n C.prototype.alignDataLabel.call(this, e, d, b, f, l);\n b.inside && e.contrastColor && d.css({\n color: e.contrastColor\n });\n }\n\n var t = [];\n\n e.compose = function (e) {\n f.compose(C);\n -1 === t.indexOf(e) && (t.push(e), e.prototype.alignDataLabel = l);\n };\n })(G || (G = {}));\n\n return G;\n });\n K(l, \"Series/Bar/BarSeries.js\", [l[\"Series/Column/ColumnSeries.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = this && this.__extends || function () {\n var e = function (f, l) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (e, f) {\n e.__proto__ = f;\n } || function (e, f) {\n for (var d in f) f.hasOwnProperty(d) && (e[d] = f[d]);\n };\n\n return e(f, l);\n };\n\n return function (f, l) {\n function t() {\n this.constructor = f;\n }\n\n e(f, l);\n f.prototype = null === l ? Object.create(l) : (t.prototype = l.prototype, new t());\n };\n }(),\n v = l.extend,\n E = l.merge;\n\n l = function (e) {\n function l() {\n var f = null !== e && e.apply(this, arguments) || this;\n f.data = void 0;\n f.options = void 0;\n f.points = void 0;\n return f;\n }\n\n C(l, e);\n l.defaultOptions = E(f.defaultOptions, {});\n return l;\n }(f);\n\n v(l.prototype, {\n inverted: !0\n });\n e.registerSeriesType(\"bar\", l);\n \"\";\n return l;\n });\n K(l, \"Series/Scatter/ScatterSeries.js\", [l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n var l = this && this.__extends || function () {\n var e = function (f, h) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var e in b) b.hasOwnProperty(e) && (d[e] = b[e]);\n };\n\n return e(f, h);\n };\n\n return function (f, h) {\n function d() {\n this.constructor = f;\n }\n\n e(f, h);\n f.prototype = null === h ? Object.create(h) : (d.prototype = h.prototype, new d());\n };\n }(),\n C = f.seriesTypes,\n v = C.column,\n E = C.line;\n\n C = e.addEvent;\n var G = e.extend,\n B = e.merge;\n\n e = function (e) {\n function f() {\n var f = null !== e && e.apply(this, arguments) || this;\n f.data = void 0;\n f.options = void 0;\n f.points = void 0;\n return f;\n }\n\n l(f, e);\n\n f.prototype.applyJitter = function () {\n var e = this,\n d = this.options.jitter,\n b = this.points.length;\n d && this.points.forEach(function (f, h) {\n [\"x\", \"y\"].forEach(function (l, n) {\n var p = \"plot\" + l.toUpperCase();\n\n if (d[l] && !f.isNull) {\n var q = e[l + \"Axis\"];\n var r = d[l] * q.transA;\n\n if (q && !q.isLog) {\n var t = Math.max(0, f[p] - r);\n q = Math.min(q.len, f[p] + r);\n n = 1E4 * Math.sin(h + n * b);\n f[p] = t + (q - t) * (n - Math.floor(n));\n \"x\" === l && (f.clientX = f.plotX);\n }\n }\n });\n });\n };\n\n f.prototype.drawGraph = function () {\n this.options.lineWidth ? e.prototype.drawGraph.call(this) : this.graph && (this.graph = this.graph.destroy());\n };\n\n f.defaultOptions = B(E.defaultOptions, {\n lineWidth: 0,\n findNearestPointBy: \"xy\",\n jitter: {\n x: 0,\n y: 0\n },\n marker: {\n enabled: !0\n },\n tooltip: {\n headerFormat: '\\u25cf {series.name}
',\n pointFormat: \"x: {point.x}
y: {point.y}
\"\n }\n });\n return f;\n }(E);\n\n G(e.prototype, {\n drawTracker: v.prototype.drawTracker,\n sorted: !1,\n requireSorting: !1,\n noSharedTooltip: !0,\n trackerGroups: [\"group\", \"markerGroup\", \"dataLabelsGroup\"],\n takeOrdinalPosition: !1\n });\n C(e, \"afterTranslate\", function () {\n this.applyJitter();\n });\n f.registerSeriesType(\"scatter\", e);\n \"\";\n return e;\n });\n K(l, \"Series/CenteredUtilities.js\", [l[\"Core/Globals.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = f.deg2rad,\n v = l.fireEvent,\n E = l.isNumber,\n G = l.pick,\n B = l.relativeLength,\n y;\n\n (function (f) {\n f.getCenter = function () {\n var f = this.options,\n d = this.chart,\n b = 2 * (f.slicedOffset || 0),\n l = d.plotWidth - 2 * b,\n q = d.plotHeight - 2 * b,\n r = f.center,\n n = Math.min(l, q),\n t = f.thickness,\n w = f.size,\n z = f.innerSize || 0;\n \"string\" === typeof w && (w = parseFloat(w));\n \"string\" === typeof z && (z = parseFloat(z));\n f = [G(r[0], \"50%\"), G(r[1], \"50%\"), G(w && 0 > w ? void 0 : f.size, \"100%\"), G(z && 0 > z ? void 0 : f.innerSize || 0, \"0%\")];\n !d.angular || this instanceof e || (f[3] = 0);\n\n for (r = 0; 4 > r; ++r) w = f[r], d = 2 > r || 2 === r && /%$/.test(w), f[r] = B(w, [l, q, n, f[2]][r]) + (d ? b : 0);\n\n f[3] > f[2] && (f[3] = f[2]);\n E(t) && 2 * t < f[2] && 0 < t && (f[3] = f[2] - 2 * t);\n v(this, \"afterGetCenter\", {\n positions: f\n });\n return f;\n };\n\n f.getStartAndEndRadians = function (e, d) {\n e = E(e) ? e : 0;\n d = E(d) && d > e && 360 > d - e ? d : e + 360;\n return {\n start: C * (e + -90),\n end: C * (d + -90)\n };\n };\n })(y || (y = {}));\n\n \"\";\n return y;\n });\n K(l, \"Series/Pie/PiePoint.js\", [l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Series/Point.js\"], l[\"Core/Utilities.js\"]], function (f, e, l) {\n var C = this && this.__extends || function () {\n var e = function (d, b) {\n e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return e(d, b);\n };\n\n return function (d, b) {\n function f() {\n this.constructor = d;\n }\n\n e(d, b);\n d.prototype = null === b ? Object.create(b) : (f.prototype = b.prototype, new f());\n };\n }(),\n v = f.setAnimation,\n E = l.addEvent,\n G = l.defined;\n\n f = l.extend;\n var B = l.isNumber,\n y = l.pick,\n t = l.relativeLength;\n\n e = function (e) {\n function d() {\n var b = null !== e && e.apply(this, arguments) || this;\n b.labelDistance = void 0;\n b.options = void 0;\n b.series = void 0;\n return b;\n }\n\n C(d, e);\n\n d.prototype.getConnectorPath = function () {\n var b = this.labelPosition,\n d = this.series.options.dataLabels,\n e = this.connectorShapes,\n f = d.connectorShape;\n e[f] && (f = e[f]);\n return f.call(this, {\n x: b.final.x,\n y: b.final.y,\n alignment: b.alignment\n }, b.connectorPosition, d);\n };\n\n d.prototype.getTranslate = function () {\n return this.sliced ? this.slicedTranslation : {\n translateX: 0,\n translateY: 0\n };\n };\n\n d.prototype.haloPath = function (b) {\n var d = this.shapeArgs;\n return this.sliced || !this.visible ? [] : this.series.chart.renderer.symbols.arc(d.x, d.y, d.r + b, d.r + b, {\n innerR: d.r - 1,\n start: d.start,\n end: d.end\n });\n };\n\n d.prototype.init = function () {\n var b = this;\n e.prototype.init.apply(this, arguments);\n this.name = y(this.name, \"Slice\");\n\n var d = function (d) {\n b.slice(\"select\" === d.type);\n };\n\n E(this, \"select\", d);\n E(this, \"unselect\", d);\n return this;\n };\n\n d.prototype.isValid = function () {\n return B(this.y) && 0 <= this.y;\n };\n\n d.prototype.setVisible = function (b, d) {\n var e = this,\n f = this.series,\n h = f.chart,\n l = f.options.ignoreHiddenPoint;\n d = y(d, l);\n b !== this.visible && (this.visible = this.options.visible = b = \"undefined\" === typeof b ? !this.visible : b, f.options.data[f.data.indexOf(this)] = this.options, [\"graphic\", \"dataLabel\", \"connector\", \"shadowGroup\"].forEach(function (d) {\n if (e[d]) e[d][b ? \"show\" : \"hide\"](b);\n }), this.legendItem && h.legend.colorizeItem(this, b), b || \"hover\" !== this.state || this.setState(\"\"), l && (f.isDirty = !0), d && h.redraw());\n };\n\n d.prototype.slice = function (b, d, e) {\n var f = this.series;\n v(e, f.chart);\n y(d, !0);\n this.sliced = this.options.sliced = G(b) ? b : !this.sliced;\n f.options.data[f.data.indexOf(this)] = this.options;\n this.graphic && this.graphic.animate(this.getTranslate());\n this.shadowGroup && this.shadowGroup.animate(this.getTranslate());\n };\n\n return d;\n }(e);\n\n f(e.prototype, {\n connectorShapes: {\n fixedOffset: function (e, d, b) {\n var f = d.breakAt;\n d = d.touchingSliceAt;\n return [[\"M\", e.x, e.y], b.softConnector ? [\"C\", e.x + (\"left\" === e.alignment ? -5 : 5), e.y, 2 * f.x - d.x, 2 * f.y - d.y, f.x, f.y] : [\"L\", f.x, f.y], [\"L\", d.x, d.y]];\n },\n straight: function (e, d) {\n d = d.touchingSliceAt;\n return [[\"M\", e.x, e.y], [\"L\", d.x, d.y]];\n },\n crookedLine: function (e, d, b) {\n d = d.touchingSliceAt;\n var f = this.series,\n h = f.center[0],\n l = f.chart.plotWidth,\n n = f.chart.plotLeft;\n f = e.alignment;\n var v = this.shapeArgs.r;\n b = t(b.crookDistance, 1);\n l = \"left\" === f ? h + v + (l + n - h - v) * (1 - b) : n + (h - v) * b;\n b = [\"L\", l, e.y];\n h = !0;\n if (\"left\" === f ? l > e.x || l < d.x : l < e.x || l > d.x) h = !1;\n e = [[\"M\", e.x, e.y]];\n h && e.push(b);\n e.push([\"L\", d.x, d.y]);\n return e;\n }\n }\n });\n return e;\n });\n K(l, \"Series/Pie/PieSeries.js\", [l[\"Series/CenteredUtilities.js\"], l[\"Series/Column/ColumnSeries.js\"], l[\"Core/Globals.js\"], l[\"Core/Legend/LegendSymbol.js\"], l[\"Series/Pie/PiePoint.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Renderer/SVG/Symbols.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v, E, G, B, y) {\n var t = this && this.__extends || function () {\n var b = function (d, e) {\n b = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (b, d) {\n b.__proto__ = d;\n } || function (b, d) {\n for (var e in d) d.hasOwnProperty(e) && (b[e] = d[e]);\n };\n\n return b(d, e);\n };\n\n return function (d, e) {\n function f() {\n this.constructor = d;\n }\n\n b(d, e);\n d.prototype = null === e ? Object.create(e) : (f.prototype = e.prototype, new f());\n };\n }(),\n h = f.getStartAndEndRadians;\n\n l = l.noop;\n var d = y.clamp,\n b = y.extend,\n p = y.fireEvent,\n q = y.merge,\n r = y.pick,\n n = y.relativeLength;\n\n y = function (b) {\n function e() {\n var d = null !== b && b.apply(this, arguments) || this;\n d.center = void 0;\n d.data = void 0;\n d.maxLabelDistance = void 0;\n d.options = void 0;\n d.points = void 0;\n return d;\n }\n\n t(e, b);\n\n e.prototype.animate = function (b) {\n var d = this,\n e = d.points,\n f = d.startAngleRad;\n b || e.forEach(function (a) {\n var b = a.graphic,\n c = a.shapeArgs;\n b && c && (b.attr({\n r: r(a.startR, d.center && d.center[3] / 2),\n start: f,\n end: f\n }), b.animate({\n r: c.r,\n start: c.start,\n end: c.end\n }, d.options.animation));\n });\n };\n\n e.prototype.drawEmpty = function () {\n var b = this.startAngleRad,\n d = this.endAngleRad,\n e = this.options;\n\n if (0 === this.total && this.center) {\n var f = this.center[0];\n var a = this.center[1];\n this.graph || (this.graph = this.chart.renderer.arc(f, a, this.center[1] / 2, 0, b, d).addClass(\"highcharts-empty-series\").add(this.group));\n this.graph.attr({\n d: B.arc(f, a, this.center[2] / 2, 0, {\n start: b,\n end: d,\n innerR: this.center[3] / 2\n })\n });\n this.chart.styledMode || this.graph.attr({\n \"stroke-width\": e.borderWidth,\n fill: e.fillColor || \"none\",\n stroke: e.color || \"#cccccc\"\n });\n } else this.graph && (this.graph = this.graph.destroy());\n };\n\n e.prototype.drawPoints = function () {\n var b = this.chart.renderer;\n this.points.forEach(function (d) {\n d.graphic && d.hasNewShapeType() && (d.graphic = d.graphic.destroy());\n d.graphic || (d.graphic = b[d.shapeType](d.shapeArgs).add(d.series.group), d.delayedRendering = !0);\n });\n };\n\n e.prototype.generatePoints = function () {\n b.prototype.generatePoints.call(this);\n this.updateTotals();\n };\n\n e.prototype.getX = function (b, e, f) {\n var k = this.center,\n a = this.radii ? this.radii[f.index] || 0 : k[2] / 2;\n b = Math.asin(d((b - k[1]) / (a + f.labelDistance), -1, 1));\n return k[0] + (e ? -1 : 1) * Math.cos(b) * (a + f.labelDistance) + (0 < f.labelDistance ? (e ? -1 : 1) * this.options.dataLabels.padding : 0);\n };\n\n e.prototype.hasData = function () {\n return !!this.processedXData.length;\n };\n\n e.prototype.redrawPoints = function () {\n var b = this,\n d = b.chart,\n e = d.renderer,\n f = b.options.shadow,\n a,\n g,\n c,\n h;\n this.drawEmpty();\n !f || b.shadowGroup || d.styledMode || (b.shadowGroup = e.g(\"shadow\").attr({\n zIndex: -1\n }).add(b.group));\n b.points.forEach(function (k) {\n var l = {};\n g = k.graphic;\n\n if (!k.isNull && g) {\n var m = void 0;\n h = k.shapeArgs;\n a = k.getTranslate();\n d.styledMode || (m = k.shadowGroup, f && !m && (m = k.shadowGroup = e.g(\"shadow\").add(b.shadowGroup)), m && m.attr(a), c = b.pointAttribs(k, k.selected && \"select\"));\n k.delayedRendering ? (g.setRadialReference(b.center).attr(h).attr(a), d.styledMode || g.attr(c).attr({\n \"stroke-linejoin\": \"round\"\n }).shadow(f, m), k.delayedRendering = !1) : (g.setRadialReference(b.center), d.styledMode || q(!0, l, c), q(!0, l, h, a), g.animate(l));\n g.attr({\n visibility: k.visible ? \"inherit\" : \"hidden\"\n });\n g.addClass(k.getClassName(), !0);\n } else g && (k.graphic = g.destroy());\n });\n };\n\n e.prototype.sortByAngle = function (b, d) {\n b.sort(function (b, e) {\n return \"undefined\" !== typeof b.angle && (e.angle - b.angle) * d;\n });\n };\n\n e.prototype.translate = function (b) {\n p(this, \"translate\");\n this.generatePoints();\n var d = this.options,\n e = d.slicedOffset,\n f = e + (d.borderWidth || 0),\n a = h(d.startAngle, d.endAngle),\n g = this.startAngleRad = a.start;\n a = (this.endAngleRad = a.end) - g;\n var c = this.points,\n l = d.dataLabels.distance;\n d = d.ignoreHiddenPoint;\n var q = c.length,\n t,\n v = 0;\n b || (this.center = b = this.getCenter());\n\n for (t = 0; t < q; t++) {\n var w = c[t];\n var z = g + v * a;\n !w.isValid() || d && !w.visible || (v += w.percentage / 100);\n var y = g + v * a;\n var B = {\n x: b[0],\n y: b[1],\n r: b[2] / 2,\n innerR: b[3] / 2,\n start: Math.round(1E3 * z) / 1E3,\n end: Math.round(1E3 * y) / 1E3\n };\n w.shapeType = \"arc\";\n w.shapeArgs = B;\n w.labelDistance = r(w.options.dataLabels && w.options.dataLabels.distance, l);\n w.labelDistance = n(w.labelDistance, B.r);\n this.maxLabelDistance = Math.max(this.maxLabelDistance || 0, w.labelDistance);\n y = (y + z) / 2;\n y > 1.5 * Math.PI ? y -= 2 * Math.PI : y < -Math.PI / 2 && (y += 2 * Math.PI);\n w.slicedTranslation = {\n translateX: Math.round(Math.cos(y) * e),\n translateY: Math.round(Math.sin(y) * e)\n };\n B = Math.cos(y) * b[2] / 2;\n var C = Math.sin(y) * b[2] / 2;\n w.tooltipPos = [b[0] + .7 * B, b[1] + .7 * C];\n w.half = y < -Math.PI / 2 || y > Math.PI / 2 ? 1 : 0;\n w.angle = y;\n z = Math.min(f, w.labelDistance / 5);\n w.labelPosition = {\n natural: {\n x: b[0] + B + Math.cos(y) * w.labelDistance,\n y: b[1] + C + Math.sin(y) * w.labelDistance\n },\n \"final\": {},\n alignment: 0 > w.labelDistance ? \"center\" : w.half ? \"right\" : \"left\",\n connectorPosition: {\n breakAt: {\n x: b[0] + B + Math.cos(y) * z,\n y: b[1] + C + Math.sin(y) * z\n },\n touchingSliceAt: {\n x: b[0] + B,\n y: b[1] + C\n }\n }\n };\n }\n\n p(this, \"afterTranslate\");\n };\n\n e.prototype.updateTotals = function () {\n var b = this.points,\n d = b.length,\n e = this.options.ignoreHiddenPoint,\n f,\n a = 0;\n\n for (f = 0; f < d; f++) {\n var g = b[f];\n !g.isValid() || e && !g.visible || (a += g.y);\n }\n\n this.total = a;\n\n for (f = 0; f < d; f++) g = b[f], g.percentage = 0 < a && (g.visible || !e) ? g.y / a * 100 : 0, g.total = a;\n };\n\n e.defaultOptions = q(E.defaultOptions, {\n center: [null, null],\n clip: !1,\n colorByPoint: !0,\n dataLabels: {\n allowOverlap: !0,\n connectorPadding: 5,\n connectorShape: \"fixedOffset\",\n crookDistance: \"70%\",\n distance: 30,\n enabled: !0,\n formatter: function () {\n return this.point.isNull ? void 0 : this.point.name;\n },\n softConnector: !0,\n x: 0\n },\n fillColor: void 0,\n ignoreHiddenPoint: !0,\n inactiveOtherPoints: !0,\n legendType: \"point\",\n marker: null,\n size: null,\n showInLegend: !1,\n slicedOffset: 10,\n stickyTracking: !1,\n tooltip: {\n followPointer: !0\n },\n borderColor: \"#ffffff\",\n borderWidth: 1,\n lineWidth: void 0,\n states: {\n hover: {\n brightness: .1\n }\n }\n });\n return e;\n }(E);\n\n b(y.prototype, {\n axisTypes: [],\n directTouch: !0,\n drawGraph: void 0,\n drawLegendSymbol: C.drawRectangle,\n drawTracker: e.prototype.drawTracker,\n getCenter: f.getCenter,\n getSymbol: l,\n isCartesian: !1,\n noSharedTooltip: !0,\n pointAttribs: e.prototype.pointAttribs,\n pointClass: v,\n requireSorting: !1,\n searchPoint: l,\n trackerGroups: [\"group\", \"dataLabelsGroup\"]\n });\n G.registerSeriesType(\"pie\", y);\n \"\";\n return y;\n });\n K(l, \"Series/Pie/PieDataLabel.js\", [l[\"Core/Series/DataLabel.js\"], l[\"Core/Globals.js\"], l[\"Core/Renderer/RendererUtilities.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Core/Utilities.js\"]], function (f, e, l, C, v) {\n var E = e.noop,\n G = l.distribute,\n B = C.series,\n y = v.arrayMax,\n t = v.clamp,\n h = v.defined,\n d = v.merge,\n b = v.pick,\n p = v.relativeLength,\n q;\n\n (function (e) {\n function l() {\n var e = this,\n f = e.data,\n a = e.chart,\n g = e.options.dataLabels || {},\n c = g.connectorPadding,\n l = a.plotWidth,\n n = a.plotHeight,\n p = a.plotLeft,\n q = Math.round(a.chartWidth / 3),\n r = e.center,\n t = r[2] / 2,\n x = r[1],\n v = [[], []],\n w = [0, 0, 0, 0],\n z = e.dataLabelPositioners,\n C,\n E,\n J,\n K,\n P,\n F,\n T,\n N,\n V,\n W,\n X,\n Q;\n e.visible && (g.enabled || e._hasPointLabels) && (f.forEach(function (a) {\n a.dataLabel && a.visible && a.dataLabel.shortened && (a.dataLabel.attr({\n width: \"auto\"\n }).css({\n width: \"auto\",\n textOverflow: \"clip\"\n }), a.dataLabel.shortened = !1);\n }), B.prototype.drawDataLabels.apply(e), f.forEach(function (a) {\n a.dataLabel && (a.visible ? (v[a.half].push(a), a.dataLabel._pos = null, !h(g.style.width) && !h(a.options.dataLabels && a.options.dataLabels.style && a.options.dataLabels.style.width) && a.dataLabel.getBBox().width > q && (a.dataLabel.css({\n width: Math.round(.7 * q) + \"px\"\n }), a.dataLabel.shortened = !0)) : (a.dataLabel = a.dataLabel.destroy(), a.dataLabels && 1 === a.dataLabels.length && delete a.dataLabels));\n }), v.forEach(function (d, f) {\n var k = d.length,\n m = [],\n q;\n\n if (k) {\n e.sortByAngle(d, f - .5);\n\n if (0 < e.maxLabelDistance) {\n var u = Math.max(0, x - t - e.maxLabelDistance);\n var v = Math.min(x + t + e.maxLabelDistance, a.plotHeight);\n d.forEach(function (b) {\n 0 < b.labelDistance && b.dataLabel && (b.top = Math.max(0, x - t - b.labelDistance), b.bottom = Math.min(x + t + b.labelDistance, a.plotHeight), q = b.dataLabel.getBBox().height || 21, b.distributeBox = {\n target: b.labelPosition.natural.y - b.top + q / 2,\n size: q,\n rank: b.y\n }, m.push(b.distributeBox));\n });\n u = v + q - u;\n G(m, u, u / 5);\n }\n\n for (X = 0; X < k; X++) {\n C = d[X];\n F = C.labelPosition;\n K = C.dataLabel;\n W = !1 === C.visible ? \"hidden\" : \"inherit\";\n V = u = F.natural.y;\n m && h(C.distributeBox) && (\"undefined\" === typeof C.distributeBox.pos ? W = \"hidden\" : (T = C.distributeBox.size, V = z.radialDistributionY(C)));\n delete C.positionIndex;\n if (g.justify) N = z.justify(C, t, r);else switch (g.alignTo) {\n case \"connectors\":\n N = z.alignToConnectors(d, f, l, p);\n break;\n\n case \"plotEdges\":\n N = z.alignToPlotEdges(K, f, l, p);\n break;\n\n default:\n N = z.radialDistributionX(e, C, V, u);\n }\n K._attr = {\n visibility: W,\n align: F.alignment\n };\n Q = C.options.dataLabels || {};\n K._pos = {\n x: N + b(Q.x, g.x) + ({\n left: c,\n right: -c\n }[F.alignment] || 0),\n y: V + b(Q.y, g.y) - 10\n };\n F.final.x = N;\n F.final.y = V;\n b(g.crop, !0) && (P = K.getBBox().width, u = null, N - P < c && 1 === f ? (u = Math.round(P - N + c), w[3] = Math.max(u, w[3])) : N + P > l - c && 0 === f && (u = Math.round(N + P - l + c), w[1] = Math.max(u, w[1])), 0 > V - T / 2 ? w[0] = Math.max(Math.round(-V + T / 2), w[0]) : V + T / 2 > n && (w[2] = Math.max(Math.round(V + T / 2 - n), w[2])), K.sideOverflow = u);\n }\n }\n }), 0 === y(w) || this.verifyDataLabelOverflow(w)) && (this.placeDataLabels(), this.points.forEach(function (c) {\n Q = d(g, c.options.dataLabels);\n\n if (E = b(Q.connectorWidth, 1)) {\n var f;\n J = c.connector;\n\n if ((K = c.dataLabel) && K._pos && c.visible && 0 < c.labelDistance) {\n W = K._attr.visibility;\n if (f = !J) c.connector = J = a.renderer.path().addClass(\"highcharts-data-label-connector highcharts-color-\" + c.colorIndex + (c.className ? \" \" + c.className : \"\")).add(e.dataLabelsGroup), a.styledMode || J.attr({\n \"stroke-width\": E,\n stroke: Q.connectorColor || c.color || \"#666666\"\n });\n J[f ? \"attr\" : \"animate\"]({\n d: c.getConnectorPath()\n });\n J.attr(\"visibility\", W);\n } else J && (c.connector = J.destroy());\n }\n }));\n }\n\n function q() {\n this.points.forEach(function (b) {\n var d = b.dataLabel,\n a;\n d && b.visible && ((a = d._pos) ? (d.sideOverflow && (d._attr.width = Math.max(d.getBBox().width - d.sideOverflow, 0), d.css({\n width: d._attr.width + \"px\",\n textOverflow: (this.options.dataLabels.style || {}).textOverflow || \"ellipsis\"\n }), d.shortened = !0), d.attr(d._attr), d[d.moved ? \"animate\" : \"attr\"](a), d.moved = !0) : d && d.attr({\n y: -9999\n }));\n delete b.distributeBox;\n }, this);\n }\n\n function r(b) {\n var d = this.center,\n a = this.options,\n e = a.center,\n c = a.minSize || 80,\n f = null !== a.size;\n\n if (!f) {\n if (null !== e[0]) var h = Math.max(d[2] - Math.max(b[1], b[3]), c);else h = Math.max(d[2] - b[1] - b[3], c), d[0] += (b[3] - b[1]) / 2;\n null !== e[1] ? h = t(h, c, d[2] - Math.max(b[0], b[2])) : (h = t(h, c, d[2] - b[0] - b[2]), d[1] += (b[0] - b[2]) / 2);\n h < d[2] ? (d[2] = h, d[3] = Math.min(a.thickness ? Math.max(0, h - 2 * a.thickness) : Math.max(0, p(a.innerSize || 0, h)), h), this.translate(d), this.drawDataLabels && this.drawDataLabels()) : f = !0;\n }\n\n return f;\n }\n\n var v = [],\n x = {\n radialDistributionY: function (b) {\n return b.top + b.distributeBox.pos;\n },\n radialDistributionX: function (b, d, a, e) {\n return b.getX(a < d.top + 2 || a > d.bottom - 2 ? e : a, d.half, d);\n },\n justify: function (b, d, a) {\n return a[0] + (b.half ? -1 : 1) * (d + b.labelDistance);\n },\n alignToPlotEdges: function (b, d, a, e) {\n b = b.getBBox().width;\n return d ? b + e : a - b - e;\n },\n alignToConnectors: function (b, d, a, e) {\n var c = 0,\n f;\n b.forEach(function (a) {\n f = a.dataLabel.getBBox().width;\n f > c && (c = f);\n });\n return d ? c + e : a - c - e;\n }\n };\n\n e.compose = function (b) {\n f.compose(B);\n -1 === v.indexOf(b) && (v.push(b), b = b.prototype, b.dataLabelPositioners = x, b.alignDataLabel = E, b.drawDataLabels = l, b.placeDataLabels = q, b.verifyDataLabelOverflow = r);\n };\n })(q || (q = {}));\n\n return q;\n });\n K(l, \"Extensions/OverlappingDataLabels.js\", [l[\"Core/Chart/Chart.js\"], l[\"Core/Utilities.js\"]], function (f, e) {\n function l(e, f) {\n var d = !1;\n\n if (e) {\n var b = e.newOpacity;\n e.oldOpacity !== b && (e.alignAttr && e.placed ? (e[b ? \"removeClass\" : \"addClass\"](\"highcharts-data-label-hidden\"), d = !0, e.alignAttr.opacity = b, e[e.isOld ? \"animate\" : \"attr\"](e.alignAttr, null, function () {\n f.styledMode || e.css({\n pointerEvents: b ? \"auto\" : \"none\"\n });\n }), v(f, \"afterHideOverlappingLabel\")) : e.attr({\n opacity: b\n }));\n e.isOld = !0;\n }\n\n return d;\n }\n\n var C = e.addEvent,\n v = e.fireEvent,\n E = e.isArray,\n G = e.isNumber,\n B = e.objectEach,\n y = e.pick;\n C(f, \"render\", function () {\n var e = this,\n f = [];\n (this.labelCollectors || []).forEach(function (d) {\n f = f.concat(d());\n });\n (this.yAxis || []).forEach(function (d) {\n d.stacking && d.options.stackLabels && !d.options.stackLabels.allowOverlap && B(d.stacking.stacks, function (b) {\n B(b, function (b) {\n b.label && f.push(b.label);\n });\n });\n });\n (this.series || []).forEach(function (d) {\n var b = d.options.dataLabels;\n d.visible && (!1 !== b.enabled || d._hasPointLabels) && (b = function (b) {\n return b.forEach(function (b) {\n b.visible && (E(b.dataLabels) ? b.dataLabels : b.dataLabel ? [b.dataLabel] : []).forEach(function (d) {\n var h = d.options;\n d.labelrank = y(h.labelrank, b.labelrank, b.shapeArgs && b.shapeArgs.height);\n h.allowOverlap ? (d.oldOpacity = d.opacity, d.newOpacity = 1, l(d, e)) : f.push(d);\n });\n });\n }, b(d.nodes || []), b(d.points));\n });\n this.hideOverlappingLabels(f);\n });\n\n f.prototype.hideOverlappingLabels = function (e) {\n var f = this,\n d = e.length,\n b = f.renderer,\n p,\n q,\n r,\n n = !1;\n\n var t = function (d) {\n var e,\n f = d.box ? 0 : d.padding || 0,\n a = e = 0,\n g;\n\n if (d && (!d.alignAttr || d.placed)) {\n var c = d.alignAttr || {\n x: d.attr(\"x\"),\n y: d.attr(\"y\")\n };\n var h = d.parentGroup;\n d.width || (e = d.getBBox(), d.width = e.width, d.height = e.height, e = b.fontMetrics(null, d.element).h);\n var l = d.width - 2 * f;\n (g = {\n left: \"0\",\n center: \"0.5\",\n right: \"1\"\n }[d.alignValue]) ? a = +g * l : G(d.x) && Math.round(d.x) !== d.translateX && (a = d.x - d.translateX);\n return {\n x: c.x + (h.translateX || 0) + f - (a || 0),\n y: c.y + (h.translateY || 0) + f - e,\n width: d.width - 2 * f,\n height: d.height - 2 * f\n };\n }\n };\n\n for (q = 0; q < d; q++) if (p = e[q]) p.oldOpacity = p.opacity, p.newOpacity = 1, p.absoluteBox = t(p);\n\n e.sort(function (b, d) {\n return (d.labelrank || 0) - (b.labelrank || 0);\n });\n\n for (q = 0; q < d; q++) {\n var w = (t = e[q]) && t.absoluteBox;\n\n for (p = q + 1; p < d; ++p) {\n var z = (r = e[p]) && r.absoluteBox;\n !w || !z || t === r || 0 === t.newOpacity || 0 === r.newOpacity || \"hidden\" === t.visibility || \"hidden\" === r.visibility || z.x >= w.x + w.width || z.x + z.width <= w.x || z.y >= w.y + w.height || z.y + z.height <= w.y || ((t.labelrank < r.labelrank ? t : r).newOpacity = 0);\n }\n }\n\n e.forEach(function (b) {\n l(b, f) && (n = !0);\n });\n n && v(f, \"afterHideAllOverlappingLabels\");\n };\n });\n K(l, \"Core/Responsive.js\", [l[\"Core/Utilities.js\"]], function (f) {\n var e = f.extend,\n l = f.find,\n C = f.isArray,\n v = f.isObject,\n E = f.merge,\n G = f.objectEach,\n B = f.pick,\n y = f.splat,\n t = f.uniqueKey,\n h;\n\n (function (d) {\n var b = [];\n\n d.compose = function (d) {\n -1 === b.indexOf(d) && (b.push(d), e(d.prototype, f.prototype));\n return d;\n };\n\n var f = function () {\n function b() {}\n\n b.prototype.currentOptions = function (b) {\n function d(b, f, h, k) {\n var a;\n G(b, function (b, c) {\n if (!k && -1 < e.collectionsWithUpdate.indexOf(c) && f[c]) for (b = y(b), h[c] = [], a = 0; a < Math.max(b.length, f[c].length); a++) f[c][a] && (void 0 === b[a] ? h[c][a] = f[c][a] : (h[c][a] = {}, d(b[a], f[c][a], h[c][a], k + 1)));else v(b) ? (h[c] = C(b) ? [] : {}, d(b, f[c] || {}, h[c], k + 1)) : h[c] = \"undefined\" === typeof f[c] ? null : f[c];\n });\n }\n\n var e = this,\n f = {};\n d(b, this.options, f, 0);\n return f;\n };\n\n b.prototype.matchResponsiveRule = function (b, d) {\n var e = b.condition;\n (e.callback || function () {\n return this.chartWidth <= B(e.maxWidth, Number.MAX_VALUE) && this.chartHeight <= B(e.maxHeight, Number.MAX_VALUE) && this.chartWidth >= B(e.minWidth, 0) && this.chartHeight >= B(e.minHeight, 0);\n }).call(this) && d.push(b._id);\n };\n\n b.prototype.setResponsive = function (b, d) {\n var e = this,\n f = this.options.responsive,\n h = this.currentResponsive,\n n = [];\n !d && f && f.rules && f.rules.forEach(function (b) {\n \"undefined\" === typeof b._id && (b._id = t());\n e.matchResponsiveRule(b, n);\n }, this);\n d = E.apply(void 0, n.map(function (b) {\n return l((f || {}).rules || [], function (d) {\n return d._id === b;\n });\n }).map(function (b) {\n return b && b.chartOptions;\n }));\n d.isResponsiveOptions = !0;\n n = n.toString() || void 0;\n n !== (h && h.ruleIds) && (h && this.update(h.undoOptions, b, !0), n ? (h = this.currentOptions(d), h.isResponsiveOptions = !0, this.currentResponsive = {\n ruleIds: n,\n mergedOptions: d,\n undoOptions: h\n }, this.update(d, b, !0)) : this.currentResponsive = void 0);\n };\n\n return b;\n }();\n })(h || (h = {}));\n\n \"\";\n \"\";\n return h;\n });\n K(l, \"masters/highcharts.src.js\", [l[\"Core/Globals.js\"], l[\"Core/Utilities.js\"], l[\"Core/DefaultOptions.js\"], l[\"Core/Animation/Fx.js\"], l[\"Core/Animation/AnimationUtilities.js\"], l[\"Core/Renderer/HTML/AST.js\"], l[\"Core/FormatUtilities.js\"], l[\"Core/Renderer/RendererUtilities.js\"], l[\"Core/Renderer/SVG/SVGElement.js\"], l[\"Core/Renderer/SVG/SVGRenderer.js\"], l[\"Core/Renderer/HTML/HTMLElement.js\"], l[\"Core/Renderer/HTML/HTMLRenderer.js\"], l[\"Core/Axis/Axis.js\"], l[\"Core/Axis/DateTimeAxis.js\"], l[\"Core/Axis/LogarithmicAxis.js\"], l[\"Core/Axis/PlotLineOrBand/PlotLineOrBand.js\"], l[\"Core/Axis/Tick.js\"], l[\"Core/Tooltip.js\"], l[\"Core/Series/Point.js\"], l[\"Core/Pointer.js\"], l[\"Core/MSPointer.js\"], l[\"Core/Legend/Legend.js\"], l[\"Core/Chart/Chart.js\"], l[\"Core/Series/Series.js\"], l[\"Core/Series/SeriesRegistry.js\"], l[\"Series/Column/ColumnSeries.js\"], l[\"Series/Column/ColumnDataLabel.js\"], l[\"Series/Pie/PieSeries.js\"], l[\"Series/Pie/PieDataLabel.js\"], l[\"Core/Series/DataLabel.js\"], l[\"Core/Responsive.js\"], l[\"Core/Color/Color.js\"], l[\"Core/Time.js\"]], function (f, e, l, C, v, E, G, B, y, t, h, d, b, p, q, r, n, J, w, z, x, m, k, a, g, c, D, A, u, K, S, R, M) {\n f.animate = v.animate;\n f.animObject = v.animObject;\n f.getDeferredAnimation = v.getDeferredAnimation;\n f.setAnimation = v.setAnimation;\n f.stop = v.stop;\n f.timers = C.timers;\n f.AST = E;\n f.Axis = b;\n f.Chart = k;\n f.chart = k.chart;\n f.Fx = C;\n f.Legend = m;\n f.PlotLineOrBand = r;\n f.Point = w;\n f.Pointer = x.isRequired() ? x : z;\n f.Series = a;\n f.SVGElement = y;\n f.SVGRenderer = t;\n f.Tick = n;\n f.Time = M;\n f.Tooltip = J;\n f.Color = R;\n f.color = R.parse;\n d.compose(t);\n h.compose(y);\n f.defaultOptions = l.defaultOptions;\n f.getOptions = l.getOptions;\n f.time = l.defaultTime;\n f.setOptions = l.setOptions;\n f.dateFormat = G.dateFormat;\n f.format = G.format;\n f.numberFormat = G.numberFormat;\n f.addEvent = e.addEvent;\n f.arrayMax = e.arrayMax;\n f.arrayMin = e.arrayMin;\n f.attr = e.attr;\n f.clearTimeout = e.clearTimeout;\n f.correctFloat = e.correctFloat;\n f.createElement = e.createElement;\n f.css = e.css;\n f.defined = e.defined;\n f.destroyObjectProperties = e.destroyObjectProperties;\n f.discardElement = e.discardElement;\n f.distribute = B.distribute;\n f.erase = e.erase;\n f.error = e.error;\n f.extend = e.extend;\n f.extendClass = e.extendClass;\n f.find = e.find;\n f.fireEvent = e.fireEvent;\n f.getMagnitude = e.getMagnitude;\n f.getStyle = e.getStyle;\n f.inArray = e.inArray;\n f.isArray = e.isArray;\n f.isClass = e.isClass;\n f.isDOMElement = e.isDOMElement;\n f.isFunction = e.isFunction;\n f.isNumber = e.isNumber;\n f.isObject = e.isObject;\n f.isString = e.isString;\n f.keys = e.keys;\n f.merge = e.merge;\n f.normalizeTickInterval = e.normalizeTickInterval;\n f.objectEach = e.objectEach;\n f.offset = e.offset;\n f.pad = e.pad;\n f.pick = e.pick;\n f.pInt = e.pInt;\n f.relativeLength = e.relativeLength;\n f.removeEvent = e.removeEvent;\n f.seriesType = g.seriesType;\n f.splat = e.splat;\n f.stableSort = e.stableSort;\n f.syncTimeout = e.syncTimeout;\n f.timeUnits = e.timeUnits;\n f.uniqueKey = e.uniqueKey;\n f.useSerialIds = e.useSerialIds;\n f.wrap = e.wrap;\n D.compose(c);\n K.compose(a);\n p.compose(b);\n q.compose(b);\n u.compose(A);\n r.compose(b);\n S.compose(k);\n return f;\n });\n l[\"masters/highcharts.src.js\"]._modules = l;\n return l[\"masters/highcharts.src.js\"];\n});","/*\n Highcharts JS v10.2.0 (2022-07-05)\n\n Data module\n\n (c) 2012-2021 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function (a) {\n \"object\" === typeof module && module.exports ? (a[\"default\"] = a, module.exports = a) : \"function\" === typeof define && define.amd ? define(\"highcharts/modules/data\", [\"highcharts\"], function (r) {\n a(r);\n a.Highcharts = r;\n return a;\n }) : a(\"undefined\" !== typeof Highcharts ? Highcharts : void 0);\n})(function (a) {\n function r(a, c, y, r) {\n a.hasOwnProperty(c) || (a[c] = r.apply(null, y), \"function\" === typeof CustomEvent && window.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\", {\n detail: {\n path: c,\n module: a[c]\n }\n })));\n }\n\n a = a ? a._modules : {};\n r(a, \"Core/HttpUtilities.js\", [a[\"Core/Globals.js\"], a[\"Core/Utilities.js\"]], function (a, c) {\n var r = a.doc,\n t = c.createElement,\n D = c.discardElement,\n u = c.merge,\n C = c.objectEach,\n G = {\n ajax: function (a) {\n var c = {\n json: \"application/json\",\n xml: \"application/xml\",\n text: \"text/plain\",\n octet: \"application/octet-stream\"\n },\n m = new XMLHttpRequest();\n if (!a.url) return !1;\n m.open((a.type || \"get\").toUpperCase(), a.url, !0);\n a.headers && a.headers[\"Content-Type\"] || m.setRequestHeader(\"Content-Type\", c[a.dataType || \"json\"] || c.text);\n C(a.headers, function (a, c) {\n m.setRequestHeader(c, a);\n });\n a.responseType && (m.responseType = a.responseType);\n\n m.onreadystatechange = function () {\n if (4 === m.readyState) {\n if (200 === m.status) {\n if (\"blob\" !== a.responseType) {\n var c = m.responseText;\n if (\"json\" === a.dataType) try {\n c = JSON.parse(c);\n } catch (z) {\n if (z instanceof Error) {\n a.error && a.error(m, z);\n return;\n }\n }\n }\n\n return a.success && a.success(c, m);\n }\n\n a.error && a.error(m, m.responseText);\n }\n };\n\n a.data && \"string\" !== typeof a.data && (a.data = JSON.stringify(a.data));\n m.send(a.data);\n },\n getJSON: function (a, c) {\n G.ajax({\n url: a,\n success: c,\n dataType: \"json\",\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n });\n },\n post: function (a, c, m) {\n var y = t(\"form\", u({\n method: \"post\",\n action: a,\n enctype: \"multipart/form-data\"\n }, m), {\n display: \"none\"\n }, r.body);\n C(c, function (a, c) {\n t(\"input\", {\n type: \"hidden\",\n name: c,\n value: a\n }, void 0, y);\n });\n y.submit();\n D(y);\n }\n };\n \"\";\n return G;\n });\n r(a, \"Extensions/Data.js\", [a[\"Core/Chart/Chart.js\"], a[\"Core/Globals.js\"], a[\"Core/HttpUtilities.js\"], a[\"Core/Series/Point.js\"], a[\"Core/Series/SeriesRegistry.js\"], a[\"Core/Utilities.js\"], a[\"Core/DefaultOptions.js\"]], function (a, c, r, K, D, u, C) {\n function t(a) {\n return !(!a || !(a.rowsURL || a.csvURL || a.columnsURL));\n }\n\n var y = c.doc,\n F = r.ajax,\n m = D.seriesTypes,\n L = C.getOptions;\n c = u.addEvent;\n\n var z = u.defined,\n M = u.extend,\n N = u.fireEvent,\n H = u.isNumber,\n B = u.merge,\n O = u.objectEach,\n E = u.pick,\n P = u.splat,\n J = function () {\n function a(b, g, f) {\n void 0 === g && (g = {});\n this.rowsToColumns = a.rowsToColumns;\n this.dateFormats = {\n \"YYYY/mm/dd\": {\n regex: /^([0-9]{4})[\\-\\/\\.]([0-9]{1,2})[\\-\\/\\.]([0-9]{1,2})$/,\n parser: function (b) {\n return b ? Date.UTC(+b[1], b[2] - 1, +b[3]) : NaN;\n }\n },\n \"dd/mm/YYYY\": {\n regex: /^([0-9]{1,2})[\\-\\/\\.]([0-9]{1,2})[\\-\\/\\.]([0-9]{4})$/,\n parser: function (b) {\n return b ? Date.UTC(+b[3], b[2] - 1, +b[1]) : NaN;\n },\n alternative: \"mm/dd/YYYY\"\n },\n \"mm/dd/YYYY\": {\n regex: /^([0-9]{1,2})[\\-\\/\\.]([0-9]{1,2})[\\-\\/\\.]([0-9]{4})$/,\n parser: function (b) {\n return b ? Date.UTC(+b[3], b[1] - 1, +b[2]) : NaN;\n }\n },\n \"dd/mm/YY\": {\n regex: /^([0-9]{1,2})[\\-\\/\\.]([0-9]{1,2})[\\-\\/\\.]([0-9]{2})$/,\n parser: function (b) {\n if (!b) return NaN;\n var d = +b[3];\n d = d > new Date().getFullYear() - 2E3 ? d + 1900 : d + 2E3;\n return Date.UTC(d, b[2] - 1, +b[1]);\n },\n alternative: \"mm/dd/YY\"\n },\n \"mm/dd/YY\": {\n regex: /^([0-9]{1,2})[\\-\\/\\.]([0-9]{1,2})[\\-\\/\\.]([0-9]{2})$/,\n parser: function (b) {\n return b ? Date.UTC(+b[3] + 2E3, b[1] - 1, +b[2]) : NaN;\n }\n }\n };\n this.chart = f;\n this.chartOptions = g;\n this.options = b;\n this.rawColumns = [];\n this.init(b, g, f);\n }\n\n a.data = function (b, g, f) {\n void 0 === g && (g = {});\n return new a(b, g, f);\n };\n\n a.rowsToColumns = function (b) {\n var g, f;\n\n if (b) {\n var a = [];\n var d = b.length;\n\n for (g = 0; g < d; g++) {\n var k = b[g].length;\n\n for (f = 0; f < k; f++) a[f] || (a[f] = []), a[f][g] = b[g][f];\n }\n }\n\n return a;\n };\n\n a.prototype.init = function (b, g, a) {\n var f = b.decimalPoint;\n g && (this.chartOptions = g);\n a && (this.chart = a);\n \".\" !== f && \",\" !== f && (f = void 0);\n this.options = b;\n this.columns = b.columns || this.rowsToColumns(b.rows) || [];\n this.firstRowAsNames = E(b.firstRowAsNames, this.firstRowAsNames, !0);\n this.decimalRegex = f && new RegExp(\"^(-?[0-9]+)\" + f + \"([0-9]+)$\");\n void 0 !== this.liveDataTimeout && clearTimeout(this.liveDataTimeout);\n this.rawColumns = [];\n\n if (this.columns.length) {\n this.dataFound();\n var d = !t(b);\n }\n\n d || (d = this.fetchLiveData());\n d || (d = !!this.parseCSV().length);\n d || (d = !!this.parseTable().length);\n d || (d = this.parseGoogleSpreadsheet());\n !d && b.afterComplete && b.afterComplete();\n };\n\n a.prototype.getColumnDistribution = function () {\n var b = this.chartOptions,\n g = this.options,\n a = [],\n e = function (b) {\n return (m[b || \"line\"].prototype.pointArrayMap || [0]).length;\n },\n d = b && b.chart && b.chart.type,\n k = [],\n h = [];\n\n g = g && g.seriesMapping || b && b.series && b.series.map(function () {\n return {\n x: 0\n };\n }) || [];\n var x = 0,\n p;\n (b && b.series || []).forEach(function (b) {\n k.push(e(b.type || d));\n });\n g.forEach(function (b) {\n a.push(b.x || 0);\n });\n 0 === a.length && a.push(0);\n g.forEach(function (g) {\n var a = new I(),\n f = k[x] || e(d),\n l = (b && b.series || [])[x] || {},\n c = m[l.type || d || \"line\"].prototype.pointArrayMap,\n v = c || [\"y\"];\n (z(g.x) || l.isCartesian || !c) && a.addColumnReader(g.x, \"x\");\n O(g, function (b, g) {\n \"x\" !== g && a.addColumnReader(b, g);\n });\n\n for (p = 0; p < f; p++) a.hasReader(v[p]) || a.addColumnReader(void 0, v[p]);\n\n h.push(a);\n x++;\n });\n g = m[d || \"line\"].prototype.pointArrayMap;\n \"undefined\" === typeof g && (g = [\"y\"]);\n this.valueCount = {\n global: e(d),\n xColumns: a,\n individual: k,\n seriesBuilders: h,\n globalPointArrayMap: g\n };\n };\n\n a.prototype.dataFound = function () {\n this.options.switchRowsAndColumns && (this.columns = this.rowsToColumns(this.columns));\n this.getColumnDistribution();\n this.parseTypes();\n !1 !== this.parsed() && this.complete();\n };\n\n a.prototype.parseCSV = function (b) {\n function g(b, g, a, d) {\n function f(g) {\n h = b[g];\n c = b[g - 1];\n m = b[g + 1];\n }\n\n function e(b) {\n l.length < w + 1 && l.push([b]);\n l[w][l[w].length - 1] !== b && l[w].push(b);\n }\n\n function n() {\n x > t || t > p ? (++t, q = \"\") : (!isNaN(parseFloat(q)) && isFinite(q) ? (q = parseFloat(q), e(\"number\")) : isNaN(Date.parse(q)) ? e(\"string\") : (q = q.replace(/\\//g, \"-\"), e(\"date\")), k.length < w + 1 && k.push([]), a || (k[w][g] = q), q = \"\", ++w, ++t);\n }\n\n var A = 0,\n h = \"\",\n c = \"\",\n m = \"\",\n q = \"\",\n t = 0,\n w = 0;\n\n if (b.trim().length && \"#\" !== b.trim()[0]) {\n for (; A < b.length; A++) if (f(A), '\"' === h) for (f(++A); A < b.length && ('\"' !== h || '\"' === c || '\"' === m);) {\n if ('\"' !== h || '\"' === h && '\"' !== c) q += h;\n f(++A);\n } else d && d[h] ? d[h](h, q) && n() : h === v ? n() : q += h;\n\n n();\n }\n }\n\n function a(b) {\n var g = 0,\n a = 0,\n f = !1;\n b.some(function (b, d) {\n var f = !1,\n e = \"\";\n if (13 < d) return !0;\n\n for (var h = 0; h < b.length; h++) {\n d = b[h];\n var k = b[h + 1];\n var c = b[h - 1];\n if (\"#\" === d) break;\n if ('\"' === d) {\n if (f) {\n if ('\"' !== c && '\"' !== k) {\n for (; \" \" === k && h < b.length;) k = b[++h];\n\n \"undefined\" !== typeof n[k] && n[k]++;\n f = !1;\n }\n } else f = !0;\n } else \"undefined\" !== typeof n[d] ? (e = e.trim(), isNaN(Date.parse(e)) ? !isNaN(e) && isFinite(e) || n[d]++ : n[d]++, e = \"\") : e += d;\n \",\" === d && a++;\n \".\" === d && g++;\n }\n });\n f = n[\";\"] > n[\",\"] ? \";\" : \",\";\n h.decimalPoint || (h.decimalPoint = g > a ? \".\" : \",\", d.decimalRegex = new RegExp(\"^(-?[0-9]+)\" + h.decimalPoint + \"([0-9]+)$\"));\n return f;\n }\n\n function e(b, g) {\n var a = [],\n f = [],\n e = [],\n k = 0,\n n = !1,\n c;\n if (!g || g > b.length) g = b.length;\n\n for (; k < g; k++) if (\"undefined\" !== typeof b[k] && b[k] && b[k].length) {\n var l = b[k].trim().replace(/\\//g, \" \").replace(/\\-/g, \" \").replace(/\\./g, \" \").split(\" \");\n e = [\"\", \"\", \"\"];\n\n for (c = 0; c < l.length; c++) c < e.length && (l[c] = parseInt(l[c], 10), l[c] && (f[c] = !f[c] || f[c] < l[c] ? l[c] : f[c], \"undefined\" !== typeof a[c] ? a[c] !== l[c] && (a[c] = !1) : a[c] = l[c], 31 < l[c] ? e[c] = 100 > l[c] ? \"YY\" : \"YYYY\" : 12 < l[c] && 31 >= l[c] ? (e[c] = \"dd\", n = !0) : e[c].length || (e[c] = \"mm\")));\n }\n\n if (n) {\n for (c = 0; c < a.length; c++) !1 !== a[c] ? 12 < f[c] && \"YY\" !== e[c] && \"YYYY\" !== e[c] && (e[c] = \"YY\") : 12 < f[c] && \"mm\" === e[c] && (e[c] = \"dd\");\n\n 3 === e.length && \"dd\" === e[1] && \"dd\" === e[2] && (e[2] = \"YY\");\n b = e.join(\"/\");\n return (h.dateFormats || d.dateFormats)[b] ? b : (N(\"deduceDateFailed\"), \"YYYY/mm/dd\");\n }\n\n return \"YYYY/mm/dd\";\n }\n\n var d = this,\n k = this.columns = [],\n h = b || this.options,\n x = \"undefined\" !== typeof h.startColumn && h.startColumn ? h.startColumn : 0,\n p = h.endColumn || Number.MAX_VALUE,\n l = [],\n n = {\n \",\": 0,\n \";\": 0,\n \"\\t\": 0\n },\n c = h.csv;\n b = \"undefined\" !== typeof h.startRow && h.startRow ? h.startRow : 0;\n var m = h.endRow || Number.MAX_VALUE,\n q = 0;\n c && h.beforeParse && (c = h.beforeParse.call(this, c));\n\n if (c) {\n c = c.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\").split(h.lineDelimiter || \"\\n\");\n if (!b || 0 > b) b = 0;\n if (!m || m >= c.length) m = c.length - 1;\n if (h.itemDelimiter) var v = h.itemDelimiter;else v = null, v = a(c);\n var t = 0;\n\n for (q = b; q <= m; q++) \"#\" === c[q][0] ? t++ : g(c[q], q - b - t);\n\n h.columnTypes && 0 !== h.columnTypes.length || !l.length || !l[0].length || \"date\" !== l[0][1] || h.dateFormat || (h.dateFormat = e(k[0]));\n this.dataFound();\n }\n\n return k;\n };\n\n a.prototype.parseTable = function () {\n var b = this.options,\n g = this.columns || [],\n a = b.startRow || 0,\n e = b.endRow || Number.MAX_VALUE,\n d = b.startColumn || 0,\n c = b.endColumn || Number.MAX_VALUE;\n b.table && (b = b.table, \"string\" === typeof b && (b = y.getElementById(b)), [].forEach.call(b.getElementsByTagName(\"tr\"), function (b, f) {\n f >= a && f <= e && [].forEach.call(b.children, function (b, e) {\n var k = g[e - d],\n h = 1;\n if ((\"TD\" === b.tagName || \"TH\" === b.tagName) && e >= d && e <= c) for (g[e - d] || (g[e - d] = []), g[e - d][f - a] = b.innerHTML; f - a >= h && void 0 === k[f - a - h];) k[f - a - h] = null, h++;\n });\n }), this.dataFound());\n return g;\n };\n\n a.prototype.fetchLiveData = function () {\n function b(g) {\n function k(c, k, l) {\n function n() {\n d && f.liveDataURL === c && (a.liveDataTimeout = setTimeout(b, x));\n }\n\n if (!c || !/^(http|\\/|\\.\\/|\\.\\.\\/)/.test(c)) return c && e.error && e.error(\"Invalid URL\"), !1;\n g && (clearTimeout(a.liveDataTimeout), f.liveDataURL = c);\n F({\n url: c,\n dataType: l || \"json\",\n success: function (b) {\n f && f.series && k(b);\n n();\n },\n error: function (b, a) {\n 3 > ++h && n();\n return e.error && e.error(a, b);\n }\n });\n return !0;\n }\n\n k(c.csvURL, function (b) {\n f.update({\n data: {\n csv: b\n }\n });\n }, \"text\") || k(c.rowsURL, function (b) {\n f.update({\n data: {\n rows: b\n }\n });\n }) || k(c.columnsURL, function (b) {\n f.update({\n data: {\n columns: b\n }\n });\n });\n }\n\n var a = this,\n f = this.chart,\n e = this.options,\n d = e.enablePolling,\n c = B(e),\n h = 0,\n x = 1E3 * (e.dataRefreshRate || 2);\n if (!t(e)) return !1;\n 1E3 > x && (x = 1E3);\n delete e.csvURL;\n delete e.rowsURL;\n delete e.columnsURL;\n b(!0);\n return t(e);\n };\n\n a.prototype.parseGoogleSpreadsheet = function () {\n function b(g) {\n var d = [\"https://sheets.googleapis.com/v4/spreadsheets\", c, \"values\", h(), \"?alt=json&majorDimension=COLUMNS&valueRenderOption=UNFORMATTED_VALUE&dateTimeRenderOption=FORMATTED_STRING&key=\" + f.googleAPIKey].join(\"/\");\n F({\n url: d,\n dataType: \"json\",\n success: function (d) {\n g(d);\n f.enablePolling && (a.liveDataTimeout = setTimeout(function () {\n b(g);\n }, k));\n },\n error: function (b, a) {\n return f.error && f.error(a, b);\n }\n });\n }\n\n var a = this,\n f = this.options,\n c = f.googleSpreadsheetKey,\n d = this.chart,\n k = Math.max(1E3 * (f.dataRefreshRate || 2), 4E3),\n h = function () {\n if (f.googleSpreadsheetRange) return f.googleSpreadsheetRange;\n var b = (\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\".charAt(f.startColumn || 0) || \"A\") + ((f.startRow || 0) + 1),\n a = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\".charAt(E(f.endColumn, -1)) || \"ZZ\";\n z(f.endRow) && (a += f.endRow + 1);\n return \"\" + b + \":\".concat(a);\n };\n\n c && (delete f.googleSpreadsheetKey, b(function (b) {\n b = b.values;\n if (!b || 0 === b.length) return !1;\n var g = b.reduce(function (b, a) {\n return Math.max(b, a.length);\n }, 0);\n b.forEach(function (b) {\n for (var a = 0; a < g; a++) \"undefined\" === typeof b[a] && (b[a] = null);\n });\n d && d.series ? d.update({\n data: {\n columns: b\n }\n }) : (a.columns = b, a.dataFound());\n }));\n return !1;\n };\n\n a.prototype.trim = function (b, a) {\n \"string\" === typeof b && (b = b.replace(/^\\s+|\\s+$/g, \"\"), a && /^[0-9\\s]+$/.test(b) && (b = b.replace(/\\s/g, \"\")), this.decimalRegex && (b = b.replace(this.decimalRegex, \"$1.$2\")));\n return b;\n };\n\n a.prototype.parseTypes = function () {\n for (var b = this.columns || [], a = b.length; a--;) this.parseColumn(b[a], a);\n };\n\n a.prototype.parseColumn = function (b, a) {\n var f = this.rawColumns,\n c = this.columns,\n d = this.firstRowAsNames,\n g = -1 !== this.valueCount.xColumns.indexOf(a),\n h = [],\n m = this.chartOptions,\n p = (this.options.columnTypes || [])[a];\n m = g && (m && m.xAxis && \"category\" === P(m.xAxis)[0].type || \"string\" === p);\n var l = z(b.name),\n n = b.length,\n t,\n r;\n\n for (f[a] || (f[a] = []); n--;) {\n var q = h[n] || b[n];\n var v = this.trim(q);\n var u = this.trim(q, !0);\n var w = parseFloat(u);\n \"undefined\" === typeof f[a][n] && (f[a][n] = v);\n m || 0 === n && d && !l ? b[n] = \"\" + v : +u === w ? (b[n] = w, 31536E6 < w && \"float\" !== p ? b.isDatetime = !0 : b.isNumeric = !0, \"undefined\" !== typeof b[n + 1] && (r = w > b[n + 1])) : (v && v.length && (t = this.parseDate(q)), g && H(t) && \"float\" !== p ? (h[n] = q, b[n] = t, b.isDatetime = !0, \"undefined\" !== typeof b[n + 1] && (q = t > b[n + 1], q !== r && \"undefined\" !== typeof r && (this.alternativeFormat ? (this.dateFormat = this.alternativeFormat, n = b.length, this.alternativeFormat = this.dateFormats[this.dateFormat].alternative) : b.unsorted = !0), r = q)) : (b[n] = \"\" === v ? null : v, 0 !== n && (b.isDatetime || b.isNumeric) && (b.mixed = !0)));\n }\n\n g && b.mixed && (c[a] = f[a]);\n if (g && r && this.options.sort) for (a = 0; a < c.length; a++) c[a].reverse(), d && c[a].unshift(c[a].pop());\n };\n\n a.prototype.parseDate = function (b) {\n var a = this.options.parseDate,\n c,\n e = this.options.dateFormat || this.dateFormat,\n d;\n if (a) var k = a(b);else if (\"string\" === typeof b) {\n if (e) (a = this.dateFormats[e]) || (a = this.dateFormats[\"YYYY/mm/dd\"]), (d = b.match(a.regex)) && (k = a.parser(d));else for (c in this.dateFormats) if (a = this.dateFormats[c], d = b.match(a.regex)) {\n this.dateFormat = c;\n this.alternativeFormat = a.alternative;\n k = a.parser(d);\n break;\n }\n d || (b.match(/:.+(GMT|UTC|[Z+-])/) && (b = b.replace(/\\s*(?:GMT|UTC)?([+-])(\\d\\d)(\\d\\d)$/, \"$1$2:$3\").replace(/(?:\\s+|GMT|UTC)([+-])/, \"$1\").replace(/(\\d)\\s*(?:GMT|UTC|Z)$/, \"$1+00:00\")), d = Date.parse(b), \"object\" === typeof d && null !== d && d.getTime ? k = d.getTime() - 6E4 * d.getTimezoneOffset() : H(d) && (k = d - 6E4 * new Date(d).getTimezoneOffset()));\n }\n return k;\n };\n\n a.prototype.getData = function () {\n if (this.columns) return this.rowsToColumns(this.columns).slice(1);\n };\n\n a.prototype.parsed = function () {\n if (this.options.parsed) return this.options.parsed.call(this, this.columns);\n };\n\n a.prototype.complete = function () {\n var b = this.columns,\n a = this.options,\n c = [],\n e,\n d,\n k;\n\n if (a.complete || a.afterComplete) {\n if (this.firstRowAsNames) for (d = 0; d < b.length; d++) {\n var h = b[d];\n z(h.name) || (h.name = E(h.shift(), \"\").toString());\n }\n h = [];\n var m = b.length;\n var p = this.valueCount.seriesBuilders;\n d = [];\n var l = [];\n\n for (k = 0; k < m; k += 1) d.push(!0);\n\n for (m = 0; m < p.length; m += 1) {\n var n = p[m].getReferencedColumnIndexes();\n\n for (k = 0; k < n.length; k += 1) d[n[k]] = !1;\n }\n\n for (k = 0; k < d.length; k += 1) d[k] && l.push(k);\n\n for (d = 0; d < this.valueCount.seriesBuilders.length; d++) p = this.valueCount.seriesBuilders[d], p.populateColumns(l) && c.push(p);\n\n for (; 0 < l.length;) {\n p = new I();\n p.addColumnReader(0, \"x\");\n d = l.indexOf(0);\n -1 !== d && l.splice(d, 1);\n\n for (d = 0; d < this.valueCount.global; d++) p.addColumnReader(void 0, this.valueCount.globalPointArrayMap[d]);\n\n p.populateColumns(l) && c.push(p);\n }\n\n 0 < c.length && 0 < c[0].readers.length && (l = b[c[0].readers[0].columnIndex], \"undefined\" !== typeof l && (l.isDatetime ? e = \"datetime\" : l.isNumeric || (e = \"category\")));\n if (\"category\" === e) for (d = 0; d < c.length; d++) for (p = c[d], l = 0; l < p.readers.length; l++) \"x\" === p.readers[l].configName && (p.readers[l].configName = \"name\");\n\n for (d = 0; d < c.length; d++) {\n p = c[d];\n l = [];\n\n for (k = 0; k < b[0].length; k++) l[k] = p.read(b, k);\n\n h[d] = {\n data: l\n };\n p.name && (h[d].name = p.name);\n \"category\" === e && (h[d].turboThreshold = 0);\n }\n\n b = {\n series: h\n };\n e && (b.xAxis = {\n type: e\n }, \"category\" === e && (b.xAxis.uniqueNames = !1));\n a.complete && a.complete(b);\n a.afterComplete && a.afterComplete(b);\n }\n };\n\n a.prototype.update = function (b, a) {\n var c = this.chart,\n e = c.options;\n b && (b.afterComplete = function (b) {\n b && (b.xAxis && c.xAxis[0] && b.xAxis.type === c.xAxis[0].options.type && delete b.xAxis, c.update(b, a, !0));\n }, B(!0, e.data, b), e.data && e.data.googleSpreadsheetKey && !b.columns && delete e.data.columns, this.init(e.data));\n };\n\n return a;\n }();\n\n c(a, \"init\", function (a) {\n var b = this,\n c = a.args[1],\n f = L().data,\n e = a.args[0] || {};\n (f || e && e.data) && !b.hasDataDef && (b.hasDataDef = !0, f = B(f, e.data), b.data = new J(M(f, {\n afterComplete: function (a) {\n var d;\n if (Object.hasOwnProperty.call(e, \"series\")) if (\"object\" === typeof e.series) for (d = Math.max(e.series.length, a && a.series ? a.series.length : 0); d--;) {\n var f = e.series[d] || {};\n e.series[d] = B(f, a && a.series ? a.series[d] : {});\n } else delete e.series;\n e = B(a, e);\n b.init(e, c);\n }\n }), e, b), a.preventDefault());\n });\n\n var I = function () {\n function a() {\n this.readers = [];\n this.pointIsArray = !0;\n }\n\n a.prototype.populateColumns = function (b) {\n var a = !0;\n this.readers.forEach(function (a) {\n \"undefined\" === typeof a.columnIndex && (a.columnIndex = b.shift());\n });\n this.readers.forEach(function (b) {\n \"undefined\" === typeof b.columnIndex && (a = !1);\n });\n return a;\n };\n\n a.prototype.read = function (b, a) {\n var c = this.pointIsArray,\n e = c ? [] : {};\n this.readers.forEach(function (d) {\n var f = b[d.columnIndex][a];\n c ? e.push(f) : 0 < d.configName.indexOf(\".\") ? K.prototype.setNestedProperty(e, f, d.configName) : e[d.configName] = f;\n });\n\n if (\"undefined\" === typeof this.name && 2 <= this.readers.length) {\n var d = this.getReferencedColumnIndexes();\n 2 <= d.length && (d.shift(), d.sort(function (b, a) {\n return b - a;\n }), this.name = b[d.shift()].name);\n }\n\n return e;\n };\n\n a.prototype.addColumnReader = function (b, a) {\n this.readers.push({\n columnIndex: b,\n configName: a\n });\n \"x\" !== a && \"y\" !== a && \"undefined\" !== typeof a && (this.pointIsArray = !1);\n };\n\n a.prototype.getReferencedColumnIndexes = function () {\n var b = [],\n a;\n\n for (a = 0; a < this.readers.length; a += 1) {\n var c = this.readers[a];\n \"undefined\" !== typeof c.columnIndex && b.push(c.columnIndex);\n }\n\n return b;\n };\n\n a.prototype.hasReader = function (b) {\n var a;\n\n for (a = 0; a < this.readers.length; a += 1) {\n var c = this.readers[a];\n if (c.configName === b) return !0;\n }\n };\n\n return a;\n }();\n\n \"\";\n return J;\n });\n r(a, \"masters/modules/data.src.js\", [a[\"Core/Globals.js\"], a[\"Core/HttpUtilities.js\"], a[\"Extensions/Data.js\"]], function (a, c, r) {\n a.ajax = c.ajax;\n a.data = r.data;\n a.getJSON = c.getJSON;\n a.post = c.post;\n a.Data = r;\n a.HttpUtilities = c;\n });\n});","/*\n Highcharts JS v10.2.0 (2022-07-05)\n\n Highcharts Drilldown module\n\n Author: Torstein Honsi\n License: www.highcharts.com/license\n\n*/\n(function (a) {\n \"object\" === typeof module && module.exports ? (a[\"default\"] = a, module.exports = a) : \"function\" === typeof define && define.amd ? define(\"highcharts/modules/drilldown\", [\"highcharts\"], function (x) {\n a(x);\n a.Highcharts = x;\n return a;\n }) : a(\"undefined\" !== typeof Highcharts ? Highcharts : void 0);\n})(function (a) {\n function x(a, w, m, q) {\n a.hasOwnProperty(w) || (a[w] = q.apply(null, m), \"function\" === typeof CustomEvent && window.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\", {\n detail: {\n path: w,\n module: a[w]\n }\n })));\n }\n\n a = a ? a._modules : {};\n x(a, \"Extensions/Breadcrumbs.js\", [a[\"Core/Chart/Chart.js\"], a[\"Core/Globals.js\"], a[\"Core/DefaultOptions.js\"], a[\"Core/Utilities.js\"], a[\"Core/FormatUtilities.js\"]], function (a, w, m, q, p) {\n var x = p.format;\n p = q.addEvent;\n var C = q.objectEach,\n G = q.extend,\n z = q.fireEvent,\n A = q.merge,\n y = q.pick,\n H = q.defined,\n E = q.isString;\n G(m.defaultOptions.lang, {\n mainBreadcrumb: \"Main\"\n });\n\n m = function () {\n function a(b, d) {\n this.group = void 0;\n this.list = [];\n this.elementList = {};\n this.isDirty = !0;\n this.level = 0;\n this.options = void 0;\n d = A(b.options.drilldown && b.options.drilldown.drillUpButton, a.defaultBreadcrumbsOptions, b.options.navigation && b.options.navigation.breadcrumbs, d);\n this.chart = b;\n this.options = d || {};\n }\n\n a.prototype.updateProperties = function (b) {\n this.setList(b);\n this.setLevel();\n this.isDirty = !0;\n };\n\n a.prototype.setList = function (b) {\n this.list = b;\n };\n\n a.prototype.setLevel = function () {\n this.level = this.list.length && this.list.length - 1;\n };\n\n a.prototype.getLevel = function () {\n return this.level;\n };\n\n a.prototype.getButtonText = function (b) {\n var a = this.chart,\n e = this.options,\n h = a.options.lang,\n g = y(e.format, e.showFullPath ? \"{level.name}\" : \"\\u2190 {level.name}\");\n h = h && y(h.drillUpText, h.mainBreadcrumb);\n b = e.formatter && e.formatter(b) || x(g, {\n level: b.levelOptions\n }, a) || \"\";\n (E(b) && !b.length || \"\\u2190 \" === b) && H(h) && (b = e.showFullPath ? h : \"\\u2190 \" + h);\n return b;\n };\n\n a.prototype.redraw = function () {\n this.isDirty && this.render();\n this.group && this.group.align();\n this.isDirty = !1;\n };\n\n a.prototype.render = function () {\n var a = this.chart,\n d = this.options;\n !this.group && d && (this.group = a.renderer.g(\"breadcrumbs-group\").addClass(\"highcharts-no-tooltip highcharts-breadcrumbs\").attr({\n zIndex: d.zIndex\n }).add());\n d.showFullPath ? this.renderFullPathButtons() : this.renderSingleButton();\n this.alignBreadcrumbsGroup();\n };\n\n a.prototype.renderFullPathButtons = function () {\n this.destroySingleButton();\n this.resetElementListState();\n this.updateListElements();\n this.destroyListElements();\n };\n\n a.prototype.renderSingleButton = function () {\n var a = this.chart,\n d = this.list,\n e = this.options.buttonSpacing;\n this.destroyListElements();\n var h = this.group ? this.group.getBBox().width : e;\n d = d[d.length - 2];\n !a.drillUpButton && 0 < this.level ? a.drillUpButton = this.renderButton(d, h, e) : a.drillUpButton && (0 < this.level ? this.updateSingleButton() : this.destroySingleButton());\n };\n\n a.prototype.alignBreadcrumbsGroup = function (a) {\n if (this.group) {\n var b = this.options,\n e = b.buttonTheme,\n h = b.position,\n g = \"chart\" === b.relativeTo || \"spacingBox\" === b.relativeTo ? void 0 : \"scrollablePlotBox\",\n k = this.group.getBBox();\n b = 2 * (e.padding || 0) + b.buttonSpacing;\n h.width = k.width + b;\n h.height = k.height + b;\n k = A(h);\n a && (k.x += a);\n this.options.rtl && (k.x += h.width);\n k.y = y(k.y, this.yOffset, 0);\n this.group.align(k, !0, g);\n }\n };\n\n a.prototype.renderButton = function (a, d, e) {\n var b = this,\n g = this.chart,\n k = b.options,\n u = A(k.buttonTheme);\n d = g.renderer.button(b.getButtonText(a), d, e, function (d) {\n var e = k.events && k.events.click,\n g;\n e && (g = e.call(b, d, a));\n !1 !== g && (d.newLevel = k.showFullPath ? a.level : b.level - 1, z(b, \"up\", d));\n }, u).addClass(\"highcharts-breadcrumbs-button\").add(b.group);\n g.styledMode || d.attr(k.style);\n return d;\n };\n\n a.prototype.renderSeparator = function (a, d) {\n var b = this.chart,\n h = this.options.separator;\n a = b.renderer.label(h.text, a, d, void 0, void 0, void 0, !1).addClass(\"highcharts-breadcrumbs-separator\").add(this.group);\n b.styledMode || a.css(h.style);\n return a;\n };\n\n a.prototype.update = function (a) {\n A(!0, this.options, a);\n this.destroy();\n this.isDirty = !0;\n };\n\n a.prototype.updateSingleButton = function () {\n var a = this.chart,\n d = this.list[this.level - 1];\n a.drillUpButton && a.drillUpButton.attr({\n text: this.getButtonText(d)\n });\n };\n\n a.prototype.destroy = function () {\n this.destroySingleButton();\n this.destroyListElements(!0);\n this.group && this.group.destroy();\n this.group = void 0;\n };\n\n a.prototype.destroyListElements = function (a) {\n var b = this.elementList;\n C(b, function (d, h) {\n if (a || !b[h].updated) d = b[h], d.button && d.button.destroy(), d.separator && d.separator.destroy(), delete d.button, delete d.separator, delete b[h];\n });\n a && (this.elementList = {});\n };\n\n a.prototype.destroySingleButton = function () {\n this.chart.drillUpButton && (this.chart.drillUpButton.destroy(), this.chart.drillUpButton = void 0);\n };\n\n a.prototype.resetElementListState = function () {\n C(this.elementList, function (a) {\n a.updated = !1;\n });\n };\n\n a.prototype.updateListElements = function () {\n var a = this,\n d = a.elementList,\n e = a.options.buttonSpacing,\n h = a.list,\n g = a.options.rtl,\n u = g ? -1 : 1,\n m = function (a, b) {\n return u * a.getBBox().width + u * b;\n },\n r = a.group ? m(a.group, e) : e,\n t;\n\n h.forEach(function (b, k) {\n k = k === h.length - 1;\n\n if (d[b.level]) {\n t = d[b.level];\n var p = t.button;\n if (t.separator || k) t.separator && k && (t.separator.destroy(), delete t.separator);else {\n r += u * e;\n t.separator = a.renderSeparator(r, e);\n\n if (g) {\n var q = t.separator;\n q.translate(r - q.getBBox().width, e);\n }\n\n r += m(t.separator, e);\n }\n d[b.level].updated = !0;\n } else p = a.renderButton(b, r, e), g && p.translate(r - p.getBBox().width, e), r += m(p, e), k || (q = a.renderSeparator(r, e), g && q.translate(r - q.getBBox().width, e), r += m(q, e)), d[b.level] = {\n button: p,\n separator: q,\n updated: !0\n };\n\n p && p.setState(k ? 2 : 0);\n });\n };\n\n a.defaultBreadcrumbsOptions = {\n buttonTheme: {\n fill: \"none\",\n height: 18,\n padding: 2,\n \"stroke-width\": 0,\n zIndex: 7,\n states: {\n select: {\n fill: \"none\"\n }\n },\n style: {\n color: \"#335cad\"\n }\n },\n buttonSpacing: 5,\n floating: !1,\n format: void 0,\n relativeTo: \"plotBox\",\n rtl: !1,\n position: {\n align: \"left\",\n verticalAlign: \"top\",\n x: 0,\n y: void 0\n },\n separator: {\n text: \"/\",\n style: {\n color: \"#666666\"\n }\n },\n showFullPath: !0,\n style: {},\n useHTML: !1,\n zIndex: 7\n };\n return a;\n }();\n\n w.Breadcrumbs || (w.Breadcrumbs = m, p(a, \"getMargins\", function () {\n var a = this.breadcrumbs;\n\n if (a && !a.options.floating && a.level) {\n var b = a.options,\n d = b.buttonTheme;\n d = (d.height || 0) + 2 * (d.padding || 0) + b.buttonSpacing;\n b = b.position.verticalAlign;\n \"bottom\" === b ? (this.marginBottom = (this.marginBottom || 0) + d, a.yOffset = d) : \"middle\" !== b ? (this.plotTop += d, a.yOffset = -d) : a.yOffset = void 0;\n }\n }), p(a, \"redraw\", function () {\n this.breadcrumbs && this.breadcrumbs.redraw();\n }), p(a, \"destroy\", function () {\n this.breadcrumbs && (this.breadcrumbs.destroy(), this.breadcrumbs = void 0);\n }), p(a, \"afterShowResetZoom\", function () {\n if (this.breadcrumbs) {\n var a = this.resetZoomButton && this.resetZoomButton.getBBox(),\n b = this.breadcrumbs.options;\n a && \"right\" === b.position.align && \"plotBox\" === b.relativeTo && this.breadcrumbs.alignBreadcrumbsGroup(-a.width - b.buttonSpacing);\n }\n }), p(a, \"selection\", function (a) {\n !0 === a.resetSelection && this.breadcrumbs && this.breadcrumbs.alignBreadcrumbsGroup();\n }));\n \"\";\n return m;\n });\n x(a, \"Extensions/Drilldown.js\", [a[\"Core/Animation/AnimationUtilities.js\"], a[\"Core/Axis/Axis.js\"], a[\"Core/Chart/Chart.js\"], a[\"Core/Color/Color.js\"], a[\"Series/Column/ColumnSeries.js\"], a[\"Core/FormatUtilities.js\"], a[\"Core/Globals.js\"], a[\"Core/DefaultOptions.js\"], a[\"Core/Series/Point.js\"], a[\"Core/Series/Series.js\"], a[\"Core/Series/SeriesRegistry.js\"], a[\"Core/Renderer/SVG/SVGRenderer.js\"], a[\"Core/Axis/Tick.js\"], a[\"Core/Utilities.js\"], a[\"Extensions/Breadcrumbs.js\"]], function (a, w, m, q, p, x, C, N, z, A, y, H, E, u, b) {\n function d(a) {\n var f = e(this.chart.options.drilldown.animation);\n a && (a.hide(), J(function () {\n a && a.added && a.fadeIn();\n }, Math.max(f.duration - 50, 0)));\n }\n\n var e = a.animObject,\n h = C.noop;\n a = N.defaultOptions;\n var g = u.addEvent,\n k = u.removeEvent,\n B = u.extend,\n r = u.fireEvent,\n t = u.merge,\n G = u.objectEach,\n D = u.pick,\n J = u.syncTimeout;\n y = y.seriesTypes.pie;\n var K = 1;\n B(a.lang, {});\n a.drilldown = {\n activeAxisLabelStyle: {\n cursor: \"pointer\",\n color: \"#003399\",\n fontWeight: \"bold\",\n textDecoration: \"underline\"\n },\n activeDataLabelStyle: {\n cursor: \"pointer\",\n color: \"#003399\",\n fontWeight: \"bold\",\n textDecoration: \"underline\"\n },\n animation: {\n duration: 500\n },\n drillUpButton: {\n position: {\n align: \"right\",\n x: -10,\n y: 10\n }\n }\n };\n\n H.prototype.Element.prototype.fadeIn = function (a) {\n this.attr({\n opacity: .1,\n visibility: \"inherit\"\n }).animate({\n opacity: D(this.newOpacity, 1)\n }, a || {\n duration: 250\n });\n };\n\n m.prototype.addSeriesAsDrilldown = function (a, c) {\n this.addSingleSeriesAsDrilldown(a, c);\n this.applyDrilldown();\n };\n\n m.prototype.addSingleSeriesAsDrilldown = function (a, c) {\n var f = a.series,\n l = f.xAxis,\n b = f.yAxis,\n v = [],\n d = [],\n n;\n var F = this.styledMode ? {\n colorIndex: D(a.colorIndex, f.colorIndex)\n } : {\n color: a.color || f.color\n };\n this.drilldownLevels || (this.drilldownLevels = []);\n var e = f.options._levelNumber || 0;\n (n = this.drilldownLevels[this.drilldownLevels.length - 1]) && n.levelNumber !== e && (n = void 0);\n c = B(B({\n _ddSeriesId: K++\n }, F), c);\n var g = f.points.indexOf(a);\n f.chart.series.forEach(function (a) {\n a.xAxis !== l || a.isDrilling || (a.options._ddSeriesId = a.options._ddSeriesId || K++, a.options._colorIndex = a.userOptions._colorIndex, a.options._levelNumber = a.options._levelNumber || e, n ? (v = n.levelSeries, d = n.levelSeriesOptions) : (v.push(a), a.purgedOptions = t({\n _ddSeriesId: a.options._ddSeriesId,\n _levelNumber: a.options._levelNumber,\n selected: a.options.selected\n }, a.userOptions), d.push(a.purgedOptions)));\n });\n a = B({\n levelNumber: e,\n seriesOptions: f.options,\n seriesPurgedOptions: f.purgedOptions,\n levelSeriesOptions: d,\n levelSeries: v,\n shapeArgs: a.shapeArgs,\n bBox: a.graphic ? a.graphic.getBBox() : {},\n color: a.isNull ? q.parse(F.color).setOpacity(0).get() : F.color,\n lowerSeriesOptions: c,\n pointOptions: f.options.data[g],\n pointIndex: g,\n oldExtremes: {\n xMin: l && l.userMin,\n xMax: l && l.userMax,\n yMin: b && b.userMin,\n yMax: b && b.userMax\n },\n resetZoomButton: this.resetZoomButton\n }, F);\n this.drilldownLevels.push(a);\n l && l.names && (l.names.length = 0);\n c = a.lowerSeries = this.addSeries(c, !1);\n c.options._levelNumber = e + 1;\n l && (l.oldPos = l.pos, l.userMin = l.userMax = null, b.userMin = b.userMax = null);\n f.type === c.type && (c.animate = c.animateDrilldown || h, c.options.animation = !0);\n };\n\n m.prototype.applyDrilldown = function () {\n var a = this.drilldownLevels;\n\n if (a && 0 < a.length) {\n var c = a[a.length - 1].levelNumber;\n this.drilldownLevels.forEach(function (a) {\n a.levelNumber === c && a.levelSeries.forEach(function (a) {\n a.options && a.options._levelNumber === c && a.remove(!1);\n });\n });\n }\n\n this.resetZoomButton && (this.resetZoomButton.hide(), delete this.resetZoomButton);\n this.pointer.reset();\n r(this, \"afterDrilldown\");\n this.redraw();\n r(this, \"afterApplyDrilldown\");\n };\n\n var L = function (a) {\n var c = [];\n (a = a.drilldownLevels) && a.length && (c[0] || c.push({\n level: 0,\n levelOptions: a[0].seriesOptions\n }), a.forEach(function (a, f) {\n a.levelNumber + 1 > c[c.length - 1].level && c.push({\n level: a.levelNumber + 1,\n levelOptions: t({\n name: a.lowerSeries.name\n }, a.pointOptions)\n });\n }));\n return c;\n };\n\n m.prototype.drillUp = function () {\n if (this.drilldownLevels && 0 !== this.drilldownLevels.length) {\n r(this, \"beforeDrillUp\");\n\n for (var a = this, c = a.drilldownLevels, b = c[c.length - 1].levelNumber, l = c.length, d = a.series, v, e, n, g, h = function (c) {\n d.forEach(function (a) {\n a.options._ddSeriesId === c._ddSeriesId && (f = a);\n });\n var f = f || a.addSeries(c, !1);\n f.type === n.type && f.animateDrillupTo && (f.animate = f.animateDrillupTo);\n c === e.seriesPurgedOptions && (g = f);\n }, k = a.drilldownLevels.length; l--;) if (e = c[l], e.levelNumber === b) {\n c.pop();\n n = e.lowerSeries;\n if (!n.chart) for (v = d.length; v--;) if (d[v].options.id === e.lowerSeriesOptions.id && d[v].options._levelNumber === b + 1) {\n n = d[v];\n break;\n }\n n.xData = [];\n n.xAxis && n.xAxis.names && (0 === k || l === k) && (n.xAxis.names.length = 0);\n e.levelSeriesOptions.forEach(h);\n r(a, \"drillup\", {\n seriesOptions: e.seriesPurgedOptions || e.seriesOptions\n });\n g.type === n.type && (g.drilldownLevel = e, g.options.animation = a.options.drilldown.animation, n.animateDrillupFrom && n.chart && n.animateDrillupFrom(e));\n g.options._levelNumber = b;\n n.remove(!1);\n g.xAxis && (v = e.oldExtremes, g.xAxis.setExtremes(v.xMin, v.xMax, !1), g.yAxis.setExtremes(v.yMin, v.yMax, !1));\n e.resetZoomButton && (a.resetZoomButton = e.resetZoomButton);\n }\n\n r(a, \"afterDrillUp\");\n this.redraw();\n this.ddDupes && (this.ddDupes.length = 0);\n r(a, \"drillupall\");\n }\n };\n\n g(m, \"afterInit\", function () {\n var a = this;\n a.drilldown = {\n chart: a,\n fadeInGroup: d,\n update: function (c, f) {\n t(!0, a.options.drilldown, c);\n D(f, !0) && a.redraw();\n }\n };\n });\n g(m, \"render\", function () {\n (this.xAxis || []).forEach(function (a) {\n a.ddPoints = {};\n a.series.forEach(function (c) {\n var f,\n b = c.xData || [],\n d = c.points;\n\n for (f = 0; f < b.length; f++) {\n var e = c.options.data[f];\n \"number\" !== typeof e && (e = c.pointClass.prototype.optionsToObject.call({\n series: c\n }, e), e.drilldown && (a.ddPoints[b[f]] || (a.ddPoints[b[f]] = []), e = f - (c.cropStart || 0), a.ddPoints[b[f]].push(d && 0 <= e && e < d.length ? d[e] : !0)));\n }\n });\n G(a.ticks, E.prototype.drillable);\n });\n });\n g(C.Breadcrumbs, \"up\", function (a) {\n var c = this.chart;\n a = this.getLevel() - a.newLevel;\n\n for (var f = 0; f < a; f++) c.drillUp();\n });\n g(m, \"afterDrilldown\", function () {\n var a = this.options.drilldown;\n a = a && a.breadcrumbs;\n this.breadcrumbs || (this.breadcrumbs = new b(this, a));\n this.breadcrumbs.updateProperties(L(this));\n });\n g(m, \"afterDrillUp\", function () {\n this.breadcrumbs && this.breadcrumbs.updateProperties(L(this));\n });\n g(m, \"update\", function (a) {\n var c = this.breadcrumbs,\n b = a.options.drilldown && a.options.drilldown.breadcrumbs;\n c && b && c.update(a.options.drilldown.breadcrumbs);\n });\n\n p.prototype.animateDrillupTo = function (a) {\n if (!a) {\n var c = this,\n b = c.drilldownLevel;\n this.points.forEach(function (a) {\n var c = a.dataLabel;\n a.graphic && a.graphic.hide();\n c && (c.hidden = \"hidden\" === c.attr(\"visibility\"), c.hidden || (c.hide(), a.connector && a.connector.hide()));\n });\n J(function () {\n if (c.points) {\n var a = [];\n c.data.forEach(function (c) {\n a.push(c);\n });\n c.nodes && (a = a.concat(c.nodes));\n a.forEach(function (a, c) {\n c = c === (b && b.pointIndex) ? \"show\" : \"fadeIn\";\n var f = \"show\" === c ? !0 : void 0,\n d = a.dataLabel;\n if (a.graphic) a.graphic[c](f);\n d && !d.hidden && (d.fadeIn(), a.connector && a.connector.fadeIn());\n });\n }\n }, Math.max(this.chart.options.drilldown.animation.duration - 50, 0));\n delete this.animate;\n }\n };\n\n p.prototype.animateDrilldown = function (a) {\n var c = this,\n b = this.chart,\n f = b.drilldownLevels,\n d,\n g = e(b.options.drilldown.animation),\n h = this.xAxis,\n n = b.styledMode;\n a || (f.forEach(function (a) {\n c.options._ddSeriesId === a.lowerSeriesOptions._ddSeriesId && (d = a.shapeArgs, n || (d.fill = a.color));\n }), d.x += D(h.oldPos, h.pos) - h.pos, this.points.forEach(function (a) {\n var b = a.shapeArgs;\n n || (b.fill = a.color);\n a.graphic && a.graphic.attr(d).animate(B(a.shapeArgs, {\n fill: a.color || c.color\n }), g);\n }), b.drilldown && b.drilldown.fadeInGroup(this.dataLabelsGroup), delete this.animate);\n };\n\n p.prototype.animateDrillupFrom = function (a) {\n var c = e(this.chart.options.drilldown.animation),\n b = this.group,\n d = b !== this.chart.columnGroup,\n f = this;\n f.trackerGroups.forEach(function (a) {\n if (f[a]) f[a].on(\"mouseover\");\n });\n d && delete this.group;\n this.points.forEach(function (e) {\n var g = e.graphic,\n l = a.shapeArgs,\n h = function () {\n g.destroy();\n b && d && (b = b.destroy());\n };\n\n g && l && (delete e.graphic, f.chart.styledMode || (l.fill = a.color), c.duration ? g.animate(l, t(c, {\n complete: h\n })) : (g.attr(l), h()));\n });\n };\n\n y && B(y.prototype, {\n animateDrillupTo: p.prototype.animateDrillupTo,\n animateDrillupFrom: p.prototype.animateDrillupFrom,\n animateDrilldown: function (a) {\n var c = this.chart.drilldownLevels[this.chart.drilldownLevels.length - 1],\n b = this.chart.options.drilldown.animation;\n this.is(\"item\") && (b.duration = 0);\n\n if (this.center) {\n var d = c.shapeArgs,\n f = d.start,\n e = (d.end - f) / this.points.length,\n g = this.chart.styledMode;\n a || (this.points.forEach(function (a, l) {\n var h = a.shapeArgs;\n g || (d.fill = c.color, h.fill = a.color);\n if (a.graphic) a.graphic.attr(t(d, {\n start: f + l * e,\n end: f + (l + 1) * e\n }))[b ? \"animate\" : \"attr\"](h, b);\n }), this.chart.drilldown && this.chart.drilldown.fadeInGroup(this.dataLabelsGroup), delete this.animate);\n }\n }\n });\n\n z.prototype.doDrilldown = function () {\n this.runDrilldown();\n };\n\n z.prototype.runDrilldown = function (a, c, b) {\n var d = this.series.chart,\n f = d.options.drilldown,\n e = (f.series || []).length;\n d.ddDupes || (d.ddDupes = []);\n\n for (; e-- && !g;) if (f.series[e].id === this.drilldown && -1 === d.ddDupes.indexOf(this.drilldown)) {\n var g = f.series[e];\n d.ddDupes.push(this.drilldown);\n }\n\n r(d, \"drilldown\", {\n point: this,\n seriesOptions: g,\n category: c,\n originalEvent: b,\n points: \"undefined\" !== typeof c && this.series.xAxis.getDDPoints(c).slice(0)\n }, function (c) {\n var b = c.point.series && c.point.series.chart,\n d = c.seriesOptions;\n b && d && (a ? b.addSingleSeriesAsDrilldown(c.point, d) : b.addSeriesAsDrilldown(c.point, d));\n });\n };\n\n w.prototype.drilldownCategory = function (a, c) {\n this.getDDPoints(a).forEach(function (b) {\n b && b.series && b.series.visible && b.runDrilldown && b.runDrilldown(!0, a, c);\n });\n this.chart.applyDrilldown();\n };\n\n w.prototype.getDDPoints = function (a) {\n return this.ddPoints && this.ddPoints[a] || [];\n };\n\n E.prototype.drillable = function () {\n var a = this.pos,\n c = this.label,\n b = this.axis,\n d = \"xAxis\" === b.coll && b.getDDPoints,\n e = d && b.getDDPoints(a),\n h = b.chart.styledMode;\n d && (c && e && e.length ? (c.drillable = !0, c.basicStyles || h || (c.basicStyles = t(c.styles)), c.addClass(\"highcharts-drilldown-axis-label\"), c.removeOnDrillableClick && k(c.element, \"click\"), c.removeOnDrillableClick = g(c.element, \"click\", function (c) {\n c.preventDefault();\n b.drilldownCategory(a, c);\n }), h || c.css(b.chart.options.drilldown.activeAxisLabelStyle)) : c && c.drillable && c.removeOnDrillableClick && (h || (c.styles = {}, c.css(c.basicStyles)), c.removeOnDrillableClick(), c.removeClass(\"highcharts-drilldown-axis-label\")));\n };\n\n g(z, \"afterInit\", function () {\n this.drilldown && !this.unbindDrilldownClick && (this.unbindDrilldownClick = g(this, \"click\", M));\n return this;\n });\n g(z, \"update\", function (a) {\n a = a.options || {};\n a.drilldown && !this.unbindDrilldownClick ? this.unbindDrilldownClick = g(this, \"click\", M) : !a.drilldown && void 0 !== a.drilldown && this.unbindDrilldownClick && (this.unbindDrilldownClick = this.unbindDrilldownClick());\n });\n\n var M = function (a) {\n var c = this.series;\n c.xAxis && !1 === c.chart.options.drilldown.allowPointDrilldown ? c.xAxis.drilldownCategory(this.x, a) : this.runDrilldown(void 0, void 0, a);\n };\n\n g(A, \"afterDrawDataLabels\", function () {\n var a = this.chart.options.drilldown.activeDataLabelStyle,\n c = this.chart.renderer,\n b = this.chart.styledMode;\n this.points.forEach(function (d) {\n var e = d.options.dataLabels,\n f = D(d.dlOptions, e && e.style, {});\n d.drilldown && d.dataLabel && (\"contrast\" !== a.color || b || (f.color = c.getContrast(d.color || this.color)), e && e.color && (f.color = e.color), d.dataLabel.addClass(\"highcharts-drilldown-data-label\"), b || d.dataLabel.css(a).css(f));\n }, this);\n });\n\n var I = function (a, b, d, e) {\n a[d ? \"addClass\" : \"removeClass\"](\"highcharts-drilldown-point\");\n e || a.css({\n cursor: b\n });\n };\n\n g(A, \"afterDrawTracker\", function () {\n var a = this.chart.styledMode;\n this.points.forEach(function (b) {\n b.drilldown && b.graphic && I(b.graphic, \"pointer\", !0, a);\n });\n });\n g(z, \"afterSetState\", function () {\n var a = this.series.chart.styledMode;\n this.drilldown && this.series.halo && \"hover\" === this.state ? I(this.series.halo, \"pointer\", !0, a) : this.series.halo && I(this.series.halo, \"auto\", !1, a);\n });\n g(m, \"drillup\", function () {\n this.resetZoomButton && (this.resetZoomButton = this.resetZoomButton.destroy());\n });\n g(m, \"drillupall\", function () {\n this.resetZoomButton && this.showResetZoom();\n });\n });\n x(a, \"masters/modules/drilldown.src.js\", [], function () {});\n});","/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof obj;\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n\n var version = \"3.6.0\",\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function () {\n return slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n // Return all the elements in a clean array\n if (num == null) {\n return slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function (callback) {\n return jQuery.each(this, callback);\n },\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n even: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function () {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function (msg) {\n throw new Error(msg);\n },\n noop: function () {},\n isPlainObject: function (obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function (obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function (code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function (obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function (list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function (escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function () {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function (match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function (match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function (match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function (nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function (className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function (name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function (type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function (pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function (elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function (elem) {\n return elem === docElem;\n },\n \"focus\": function (elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function (elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function (elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function (elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function (elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function (elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function (elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function (elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function (seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function (elem, dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var siblings = function (n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function (selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function (selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function (selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function (selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function (elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function (selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function (selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return siblings(elem.firstChild);\n },\n contents: function (elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to prevent firing\n locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function () {\n // Enforce single-firing\n locked = locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function () {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function () {\n locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function () {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function () {\n locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function () {\n return !!locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (!locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function (func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function (fn) {\n return promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function\n /* fnDone, fnFail, fnProgress */\n () {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function (onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function () {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n promise.promise(deferred); // Call given func if any\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function (singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function (i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n\n return primary.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function (wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function (elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function (owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function (owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function (owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function (owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function (owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function (owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function (elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function (elem, name, data) {\n return dataUser.access(elem, name, data);\n },\n removeData: function (elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function (elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function (elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function (key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (typeof key === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function (key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function (elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function () {\n return showHide(this, true);\n },\n hide: function () {\n return showHide(this);\n },\n toggle: function (state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function (elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function (nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function (event, handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function (name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function (value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function (originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function (event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function (event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function (event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault(); // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n\n return result && result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function () {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function () {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function () {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n // Suppress native focus or blur as it's already being fired\n // in leverageNative.\n _default: function () {\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn);\n },\n one: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function (html) {\n return html;\n },\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function (elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function (selector) {\n return remove(this, selector, true);\n },\n remove: function (selector) {\n return remove(this, selector);\n },\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function () {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function () {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function (elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function (elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function () {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function () {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function () {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function () {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function () {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function () {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\"; // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\"; // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function () {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n\n if (final) {\n return final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function (elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function (elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = typeof value; // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function (elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function (elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function (elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function (value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function (name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function (elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function () {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function (percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function (tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function (tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function (tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function (p) {\n return p;\n },\n swing: function (p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function () {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function (prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function (gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function (props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function (callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function (speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function (prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function () {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function (type, clearQueue, gotoEnd) {\n var stopQueue = function (hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function (type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function (name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function (name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function (elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function (elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function (elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function (name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function (name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function (elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function (value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function (value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function (value, stateVal) {\n var type = typeof value,\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function (selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function (value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function (elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function (elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function (elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function (elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function (e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function (event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function (type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function (event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function () {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function () {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function (key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function () {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function () {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function (target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function (url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function (key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function () {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function (name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n statusCode[code] = [statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script but not if jsonp\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function (url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function (url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function () {}\n },\n dataFilter: function (response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function (html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function (html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function (html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function (selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function (headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n callback = function (type) {\n return function () {\n if (callback) {\n callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = callback();\n errorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n callback = callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (callback) {\n throw e;\n }\n }\n },\n abort: function () {\n if (callback) {\n callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function (text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, callback;\n return {\n send: function (_, complete) {\n script = jQuery(\"