{"version":3,"file":"js/9679-fe1cb49155b0a95a5fe7.js","mappings":"wJAGIA,GAAkB,E,SAAA,GAAS,KACNA,EAAgBC,MACjBD,EAAgBE,I,mICL9BC,KAAKC,KAAK,IACXD,KAAKC,KAAK,IACVD,KAAKC,KAAK,E,sBCFnB,IAAIC,EAAO,CAACC,MAAO,WAAY,GAE/B,SAASC,IACP,IAAK,IAAyCC,EAArCC,EAAI,EAAGC,EAAIC,UAAUC,OAAQC,EAAI,CAAC,EAAMJ,EAAIC,IAAKD,EAAG,CAC3D,KAAMD,EAAIG,UAAUF,GAAK,KAAQD,KAAKK,GAAM,QAAQC,KAAKN,GAAI,MAAM,IAAIO,MAAM,iBAAmBP,GAChGK,EAAEL,GAAK,EACT,CACA,OAAO,IAAIQ,EAASH,EACtB,CAEA,SAASG,EAASH,GAChBI,KAAKJ,EAAIA,CACX,CAEA,SAASK,EAAeC,EAAWC,GACjC,OAAOD,EAAUE,OAAOC,MAAM,SAASC,KAAI,SAASf,GAClD,IAAIgB,EAAO,GAAIf,EAAID,EAAEiB,QAAQ,KAE7B,GADIhB,GAAK,IAAGe,EAAOhB,EAAEkB,MAAMjB,EAAI,GAAID,EAAIA,EAAEkB,MAAM,EAAGjB,IAC9CD,IAAMY,EAAMO,eAAenB,GAAI,MAAM,IAAIO,MAAM,iBAAmBP,GACtE,MAAO,CAACoB,KAAMpB,EAAGgB,KAAMA,EACzB,GACF,CA2CA,SAASK,EAAID,EAAMJ,GACjB,IAAK,IAA4BM,EAAxBrB,EAAI,EAAGC,EAAIkB,EAAKhB,OAAWH,EAAIC,IAAKD,EAC3C,IAAKqB,EAAIF,EAAKnB,IAAIe,OAASA,EACzB,OAAOM,EAAExB,KAGf,CAEA,SAASyB,EAAIH,EAAMJ,EAAMQ,GACvB,IAAK,IAAIvB,EAAI,EAAGC,EAAIkB,EAAKhB,OAAQH,EAAIC,IAAKD,EACxC,GAAImB,EAAKnB,GAAGe,OAASA,EAAM,CACzBI,EAAKnB,GAAKJ,EAAMuB,EAAOA,EAAKF,MAAM,EAAGjB,GAAGwB,OAAOL,EAAKF,MAAMjB,EAAI,IAC9D,KACF,CAGF,OADgB,MAAZuB,GAAkBJ,EAAKM,KAAK,CAACV,KAAMA,EAAMlB,MAAO0B,IAC7CJ,CACT,CA1DAZ,EAASmB,UAAY5B,EAAS4B,UAAY,CACxCC,YAAapB,EACbqB,GAAI,SAASC,EAAUN,GACrB,IAEIxB,EAFAK,EAAII,KAAKJ,EACT0B,EAAIrB,EAAeoB,EAAW,GAAIzB,GAElCJ,GAAK,EACLC,EAAI6B,EAAE3B,OAGV,KAAID,UAAUC,OAAS,GAAvB,CAOA,GAAgB,MAAZoB,GAAwC,oBAAbA,EAAyB,MAAM,IAAIjB,MAAM,qBAAuBiB,GAC/F,OAASvB,EAAIC,GACX,GAAIF,GAAK8B,EAAWC,EAAE9B,IAAImB,KAAMf,EAAEL,GAAKuB,EAAIlB,EAAEL,GAAI8B,EAASd,KAAMQ,QAC3D,GAAgB,MAAZA,EAAkB,IAAKxB,KAAKK,EAAGA,EAAEL,GAAKuB,EAAIlB,EAAEL,GAAI8B,EAASd,KAAM,MAG1E,OAAOP,IAVP,CAFE,OAASR,EAAIC,OAAQF,GAAK8B,EAAWC,EAAE9B,IAAImB,QAAUpB,EAAIqB,EAAIhB,EAAEL,GAAI8B,EAASd,OAAQ,OAAOhB,CAa/F,EACAgC,KAAM,WACJ,IAAIA,EAAO,CAAC,EAAG3B,EAAII,KAAKJ,EACxB,IAAK,IAAIL,KAAKK,EAAG2B,EAAKhC,GAAKK,EAAEL,GAAGkB,QAChC,OAAO,IAAIV,EAASwB,EACtB,EACAC,KAAM,SAASb,EAAMc,GACnB,IAAKhC,EAAIC,UAAUC,OAAS,GAAK,EAAG,IAAK,IAAgCF,EAAGF,EAA/BmC,EAAO,IAAIC,MAAMlC,GAAID,EAAI,EAASA,EAAIC,IAAKD,EAAGkC,EAAKlC,GAAKE,UAAUF,EAAI,GACnH,IAAKQ,KAAKJ,EAAEc,eAAeC,GAAO,MAAM,IAAIb,MAAM,iBAAmBa,GACrE,IAAuBnB,EAAI,EAAGC,GAAzBF,EAAIS,KAAKJ,EAAEe,IAAoBhB,OAAQH,EAAIC,IAAKD,EAAGD,EAAEC,GAAGH,MAAMuC,MAAMH,EAAMC,EACjF,EACAE,MAAO,SAASjB,EAAMc,EAAMC,GAC1B,IAAK1B,KAAKJ,EAAEc,eAAeC,GAAO,MAAM,IAAIb,MAAM,iBAAmBa,GACrE,IAAK,IAAIpB,EAAIS,KAAKJ,EAAEe,GAAOnB,EAAI,EAAGC,EAAIF,EAAEI,OAAQH,EAAIC,IAAKD,EAAGD,EAAEC,GAAGH,MAAMuC,MAAMH,EAAMC,EACrF,GAsBF,K,8HChFe,WAASG,EAAMC,EAASC,GACjCrC,UAAUC,OAAS,IAAGoC,EAAaD,EAASA,GAAU,EAAAE,EAAA,KAAcC,gBAExE,IAAK,IAA6CC,EAAzC1C,EAAI,EAAGC,EAAIqC,EAAUA,EAAQnC,OAAS,EAAUH,EAAIC,IAAKD,EAChE,IAAK0C,EAAQJ,EAAQtC,IAAIuC,aAAeA,EACtC,OAAO,EAAAI,EAAA,GAAMN,EAAMK,GAIvB,OAAO,IACT,CCXO,SAASE,IACd,8BACF,CAEe,aACb,qBACA,8BACF,CCNe,WAASC,GACtB,IAAIC,EAAOD,EAAKE,SAASC,gBACrBC,GAAY,OAAOJ,GAAMjB,GAAG,iBAAkBsB,GAAS,GACvD,kBAAmBJ,EACrBG,EAAUrB,GAAG,mBAAoBsB,GAAS,IAE1CJ,EAAKK,WAAaL,EAAKM,MAAMC,cAC7BP,EAAKM,MAAMC,cAAgB,OAE/B,CCZe,WAASC,GACtB,OAAO,WACL,OAAOA,CACT,CACF,CCJe,SAASC,EAAUC,EAAQrC,EAAMsC,EAASC,EAAIC,EAAQL,EAAGM,EAAGC,EAAIC,EAAIhE,GACjFU,KAAKgD,OAASA,EACdhD,KAAKW,KAAOA,EACZX,KAAKiD,QAAUA,EACfjD,KAAK+B,WAAamB,EAClBlD,KAAKmD,OAASA,EACdnD,KAAK8C,EAAIA,EACT9C,KAAKoD,EAAIA,EACTpD,KAAKqD,GAAKA,EACVrD,KAAKsD,GAAKA,EACVtD,KAAKJ,EAAIN,CACX,CCHA,SAASiE,IACP,OAAQ,cAAkB,UAC5B,CAEA,SAASC,IACP,OAAOxD,KAAKyD,UACd,CAEA,SAASC,EAAeC,GACtB,OAAY,MAALA,EAAY,CAACb,EAAG,MAASM,EAAG,OAAWO,CAChD,CAEA,SAASC,IACP,OAAOC,UAAUC,gBAAmB,iBAAkB9D,IACxD,CAEe,aACb,IAOI+D,EACAC,EACAC,EACAC,EAVAC,EAASZ,EACTa,EAAYZ,EACZP,EAAUS,EACVW,EAAYT,EACZU,EAAW,CAAC,EACZC,GAAY,EAAAjF,EAAA,GAAS,QAAS,OAAQ,OACtC6D,EAAS,EAKTqB,EAAiB,EAErB,SAASC,EAAKhC,GACZA,EACKrB,GAAG,iBAAkBsD,GACvBP,OAAOE,GACLjD,GAAG,kBAAmBuD,GACtBvD,GAAG,iBAAkBwD,GACrBxD,GAAG,iCAAkCyD,GACrCjC,MAAM,eAAgB,QACtBA,MAAM,8BAA+B,gBAC5C,CAEA,SAAS8B,IACP,IAAIR,GAAgBC,EAAOvC,MAAM5B,KAAMN,WAAvC,CACA,IAAIoF,EAAUC,EAAY,QAASX,EAAUxC,MAAM5B,KAAMN,WAAYsF,EAAA,EAAOhF,KAAMN,WAC7EoF,KACL,OAAO,UAAY1D,GAAG,iBAAkB6D,GAAY,GAAM7D,GAAG,eAAgB8D,GAAY,GACzFC,EAAO,UACP/C,IACA6B,GAAc,EACdF,EAAa,YACbC,EAAa,YACbc,EAAQ,SATiD,CAU3D,CAEA,SAASG,IAEP,GADAvC,KACKuB,EAAa,CAChB,IAAIZ,EAAK,YAAgBU,EAAYT,EAAK,YAAgBU,EAC1DC,EAAcZ,EAAKA,EAAKC,EAAKA,EAAKkB,CACpC,CACAF,EAASU,MAAM,OACjB,CAEA,SAASE,IHzDJ,IAAiB7C,EAAM+C,EACxB9C,EACAG,GGwDF,OAAO,UAAYrB,GAAG,8BAA+B,MH1DjCiB,EG2DZ,SH3DkB+C,EG2DNnB,EH1DlB3B,EAAOD,EAAKE,SAASC,gBACrBC,GAAY,OAAOJ,GAAMjB,GAAG,iBAAkB,MAC9CgE,IACF3C,EAAUrB,GAAG,aAAcsB,GAAS,GACpC2C,YAAW,WAAa5C,EAAUrB,GAAG,aAAc,KAAO,GAAG,IAE3D,kBAAmBkB,EACrBG,EAAUrB,GAAG,mBAAoB,OAEjCkB,EAAKM,MAAMC,cAAgBP,EAAKK,kBACzBL,EAAKK,YGiDZD,IACA4B,EAASU,MAAM,MACjB,CAEA,SAASL,IACP,GAAKR,EAAOvC,MAAM5B,KAAMN,WAAxB,CACA,IAEwBF,EAAGsF,EAFvBhD,EAAU,mBACVjB,EAAIuD,EAAUxC,MAAM5B,KAAMN,WAC1BD,EAAIqC,EAAQnC,OAEhB,IAAKH,EAAI,EAAGA,EAAIC,IAAKD,GACfsF,EAAUC,EAAYjD,EAAQtC,GAAGuC,WAAYlB,EAAGqB,EAAOlC,KAAMN,cAC/D0C,IACA0C,EAAQ,SAR8B,CAW5C,CAEA,SAASF,IACP,IACwBpF,EAAGsF,EADvBhD,EAAU,mBACVrC,EAAIqC,EAAQnC,OAEhB,IAAKH,EAAI,EAAGA,EAAIC,IAAKD,GACfsF,EAAUR,EAASxC,EAAQtC,GAAGuC,eAChCW,IACAoC,EAAQ,QAGd,CAEA,SAASD,IACP,IACwBrF,EAAGsF,EADvBhD,EAAU,mBACVrC,EAAIqC,EAAQnC,OAIhB,IAFIuE,GAAaoB,aAAapB,GAC9BA,EAAcmB,YAAW,WAAanB,EAAc,IAAM,GAAG,KACxD1E,EAAI,EAAGA,EAAIC,IAAKD,GACfsF,EAAUR,EAASxC,EAAQtC,GAAGuC,eAChCK,IACA0C,EAAQ,OAGd,CAEA,SAASC,EAAY7B,EAAIkB,EAAWjC,EAAOV,EAAMC,GAC/C,IAA8B6D,EAAGlC,EAAIC,EAAjCkC,EAAIrD,EAAMiC,EAAWlB,GACrBuC,EAAelB,EAAUhD,OAE7B,IAAK,QAAY,IAAIwB,EAAU0B,EAAM,cAAec,EAAGrC,EAAIC,EAAQqC,EAAE,GAAIA,EAAE,GAAI,EAAG,EAAGC,IAAe,WAClG,OAAuD,OAAlD,YAAgBF,EAAItC,EAAQrB,MAAMH,EAAMC,MAC7C2B,EAAKkC,EAAEzC,EAAI0C,EAAE,IAAM,EACnBlC,EAAKiC,EAAEnC,EAAIoC,EAAE,IAAM,GACZ,EACT,IAEA,OAAO,SAASV,EAAQnE,GACtB,IAAYlB,EAARiG,EAAKF,EACT,OAAQ7E,GACN,IAAK,QAAS2D,EAASpB,GAAM4B,EAASrF,EAAI0D,IAAU,MACpD,IAAK,aAAcmB,EAASpB,KAAOC,EACnC,IAAK,OAAQqC,EAAIrD,EAAMiC,EAAWlB,GAAKzD,EAAI0D,GAE7C,QAAY,IAAIJ,EAAU0B,EAAM9D,EAAM4E,EAAGrC,EAAIzD,EAAG+F,EAAE,GAAKnC,EAAImC,EAAE,GAAKlC,EAAIkC,EAAE,GAAKE,EAAG,GAAIF,EAAE,GAAKE,EAAG,GAAID,GAAeA,EAAa7D,MAAO6D,EAAc,CAAC9E,EAAMc,EAAMC,GAClK,CACF,CA2BA,OAzBA+C,EAAKN,OAAS,SAASvE,GACrB,OAAOF,UAAUC,QAAUwE,EAAsB,oBAANvE,EAAmBA,EAAI+F,IAAW/F,GAAI6E,GAAQN,CAC3F,EAEAM,EAAKL,UAAY,SAASxE,GACxB,OAAOF,UAAUC,QAAUyE,EAAyB,oBAANxE,EAAmBA,EAAI+F,EAAS/F,GAAI6E,GAAQL,CAC5F,EAEAK,EAAKxB,QAAU,SAASrD,GACtB,OAAOF,UAAUC,QAAUsD,EAAuB,oBAANrD,EAAmBA,EAAI+F,EAAS/F,GAAI6E,GAAQxB,CAC1F,EAEAwB,EAAKJ,UAAY,SAASzE,GACxB,OAAOF,UAAUC,QAAU0E,EAAyB,oBAANzE,EAAmBA,EAAI+F,IAAW/F,GAAI6E,GAAQJ,CAC9F,EAEAI,EAAKrD,GAAK,WACR,IAAI/B,EAAQkF,EAAUnD,GAAGQ,MAAM2C,EAAW7E,WAC1C,OAAOL,IAAUkF,EAAYE,EAAOpF,CACtC,EAEAoF,EAAKmB,cAAgB,SAAShG,GAC5B,OAAOF,UAAUC,QAAU6E,GAAkB5E,GAAKA,GAAKA,EAAG6E,GAAQvF,KAAKC,KAAKqF,EAC9E,EAEOC,CACT,CDzJA1B,EAAU7B,UAAUE,GAAK,WACvB,IAAI/B,EAAQW,KAAKJ,EAAEwB,GAAGQ,MAAM5B,KAAKJ,EAAGF,WACpC,OAAOL,IAAUW,KAAKJ,EAAII,KAAOX,CACnC,C,wBEhBA,SAASwG,EAAaC,GACpB,IAAKA,EAASC,GAAI,MAAM,IAAIjG,MAAMgG,EAASE,OAAS,IAAMF,EAASG,YACnE,GAAwB,MAApBH,EAASE,QAAsC,MAApBF,EAASE,OACxC,OAAOF,EAASI,MAClB,CAEe,WAASC,EAAOC,GAC7B,OAAOC,MAAMF,EAAOC,GAAME,KAAKT,EACjC,C,sDCRe,WAAS/C,EAAGM,GACzB,IAAImD,EAKJ,SAASC,IACP,IAAIhH,EAEAqC,EADApC,EAAI8G,EAAM5G,OAEV8G,EAAK,EACLC,EAAK,EAET,IAAKlH,EAAI,EAAGA,EAAIC,IAAKD,EACFiH,IAAjB5E,EAAO0E,EAAM/G,IAAesD,EAAG4D,GAAM7E,EAAKuB,EAG5C,IAAKqD,EAAKA,EAAKhH,EAAIqD,EAAG4D,EAAKA,EAAKjH,EAAI2D,EAAG5D,EAAI,EAAGA,EAAIC,IAAKD,GACrDqC,EAAO0E,EAAM/G,IAASsD,GAAK2D,EAAI5E,EAAKuB,GAAKsD,CAE7C,CAcA,OA/BS,MAAL5D,IAAWA,EAAI,GACV,MAALM,IAAWA,EAAI,GAkBnBoD,EAAMG,WAAa,SAAS/G,GAC1B2G,EAAQ3G,CACV,EAEA4G,EAAM1D,EAAI,SAASlD,GACjB,OAAOF,UAAUC,QAAUmD,GAAKlD,EAAG4G,GAAS1D,CAC9C,EAEA0D,EAAMpD,EAAI,SAASxD,GACjB,OAAOF,UAAUC,QAAUyD,GAAKxD,EAAG4G,GAASpD,CAC9C,EAEOoD,CACT,CCnCe,WAAS1D,GACtB,OAAO,WACL,OAAOA,CACT,CACF,CCJe,aACb,OAA+B,MAAvB5D,KAAK0H,SAAW,GAC1B,CCIA,SAAS,EAAIC,EAAM/D,EAAGM,EAAGO,GACvB,GAAImD,MAAMhE,IAAMgE,MAAM1D,GAAI,OAAOyD,EAEjC,IAAIE,EAOAC,EACAC,EACAC,EACAC,EACAnI,EACAoI,EACA5H,EACA6H,EAbAxF,EAAOgF,EAAKS,MACZC,EAAO,CAACC,KAAM7D,GACd8D,EAAKZ,EAAKa,IACVC,EAAKd,EAAKe,IACVC,EAAKhB,EAAKiB,IACVC,EAAKlB,EAAKmB,IAWd,IAAKnG,EAAM,OAAOgF,EAAKS,MAAQC,EAAMV,EAGrC,KAAOhF,EAAKlC,QAGV,IAFIX,EAAQ8D,IAAMkE,GAAMS,EAAKI,GAAM,IAAIJ,EAAKT,EAASa,EAAKb,GACtDI,EAAShE,IAAM6D,GAAMU,EAAKI,GAAM,IAAIJ,EAAKV,EAASc,EAAKd,EACvDF,EAASlF,IAAQA,EAAOA,EAAKrC,EAAI4H,GAAU,EAAIpI,IAAS,OAAO+H,EAAOvH,GAAK+H,EAAMV,EAMvF,GAFAK,GAAML,EAAKoB,GAAGzG,KAAK,KAAMK,EAAK2F,MAC9BL,GAAMN,EAAKqB,GAAG1G,KAAK,KAAMK,EAAK2F,MAC1B1E,IAAMoE,GAAM9D,IAAM+D,EAAI,OAAOI,EAAKY,KAAOtG,EAAMkF,EAASA,EAAOvH,GAAK+H,EAAOV,EAAKS,MAAQC,EAAMV,EAGlG,GACEE,EAASA,EAASA,EAAOvH,GAAK,IAAImC,MAAM,GAAKkF,EAAKS,MAAQ,IAAI3F,MAAM,IAChE3C,EAAQ8D,IAAMkE,GAAMS,EAAKI,GAAM,IAAIJ,EAAKT,EAASa,EAAKb,GACtDI,EAAShE,IAAM6D,GAAMU,EAAKI,GAAM,IAAIJ,EAAKV,EAASc,EAAKd,SACnDzH,EAAI4H,GAAU,EAAIpI,MAAYqI,GAAKF,GAAMF,IAAO,EAAKC,GAAMF,IACrE,OAAOD,EAAOM,GAAKxF,EAAMkF,EAAOvH,GAAK+H,EAAMV,CAC7C,CC/Ce,WAAShF,EAAM4F,EAAIE,EAAIE,EAAIE,GACxC/H,KAAK6B,KAAOA,EACZ7B,KAAKyH,GAAKA,EACVzH,KAAK2H,GAAKA,EACV3H,KAAK6H,GAAKA,EACV7H,KAAK+H,GAAKA,CACZ,CCNO,SAASK,EAASzE,GACvB,OAAOA,EAAE,EACX,CCFO,SAAS0E,EAAS1E,GACvB,OAAOA,EAAE,EACX,CCWe,SAAS2E,EAAS/B,EAAOzD,EAAGM,GACzC,IAAIyD,EAAO,IAAI0B,EAAc,MAALzF,EAAYsF,EAAWtF,EAAQ,MAALM,EAAYiF,EAAWjF,EAAGoF,IAAKA,IAAKA,IAAKA,KAC3F,OAAgB,MAATjC,EAAgBM,EAAOA,EAAK4B,OAAOlC,EAC5C,CAEA,SAASgC,EAASzF,EAAGM,EAAGqE,EAAIE,EAAIE,EAAIE,GAClC/H,KAAKiI,GAAKnF,EACV9C,KAAKkI,GAAK9E,EACVpD,KAAK0H,IAAMD,EACXzH,KAAK4H,IAAMD,EACX3H,KAAK8H,IAAMD,EACX7H,KAAKgI,IAAMD,EACX/H,KAAKsH,WAAQoB,CACf,CAEA,SAASC,EAAUpB,GAEjB,IADA,IAAIhG,EAAO,CAACiG,KAAMD,EAAKC,MAAOW,EAAO5G,EAC9BgG,EAAOA,EAAKY,MAAMA,EAAOA,EAAKA,KAAO,CAACX,KAAMD,EAAKC,MACxD,OAAOjG,CACT,C,iLAEA,IAAIqH,EAAYN,EAASpH,UAAYqH,EAASrH,UC9B9C,SAAS,EAAEyC,GACT,OAAOA,EAAEb,EAAIa,EAAEkF,EACjB,CAEA,SAAS,EAAElF,GACT,OAAOA,EAAEP,EAAIO,EAAEmF,EACjB,CAEe,WAASC,GACtB,IAAIxC,EACAyC,EACAC,EAAW,EACXC,EAAa,EAIjB,SAAS1C,IASP,IARA,IAAIhH,EACAqH,EACAhF,EACAsH,EACAC,EACAC,EACAC,EANG7J,EAAI8G,EAAM5G,OAQR4J,EAAI,EAAGA,EAAIL,IAAcK,EAEhC,IADA1C,EAAOyB,EAAS/B,EAAO,EAAG,GAAGiD,WAAWC,GACnCjK,EAAI,EAAGA,EAAIC,IAAKD,EACnBqC,EAAO0E,EAAM/G,GACb6J,EAAKL,EAAMnH,EAAK6H,OAAQJ,EAAMD,EAAKA,EACnCF,EAAKtH,EAAKiB,EAAIjB,EAAKgH,GACnBO,EAAKvH,EAAKuB,EAAIvB,EAAKiH,GACnBjC,EAAK8C,MAAM/H,GAIf,SAASA,EAAMgI,EAAMnC,EAAIE,EAAIE,EAAIE,GAC/B,IAAIP,EAAOoC,EAAKpC,KAAMqC,EAAKD,EAAKE,EAAGA,EAAIT,EAAKQ,EAC5C,IAAIrC,EAiBJ,OAAOC,EAAK0B,EAAKW,GAAKjC,EAAKsB,EAAKW,GAAKnC,EAAKyB,EAAKU,GAAK/B,EAAKqB,EAAKU,EAhB5D,GAAItC,EAAKkC,MAAQ7H,EAAK6H,MAAO,CAC3B,IAAI5G,EAAIqG,EAAK3B,EAAK1E,EAAI0E,EAAKqB,GACvBzF,EAAIgG,EAAK5B,EAAKpE,EAAIoE,EAAKsB,GACvBiB,EAAIjH,EAAIA,EAAIM,EAAIA,EAChB2G,EAAID,EAAIA,IACA,IAANhH,IAAuBiH,IAAdjH,EAAIkH,KAAmBlH,GAC1B,IAANM,IAAuB2G,IAAd3G,EAAI4G,KAAmB5G,GACpC2G,GAAKD,GAAKC,EAAI7K,KAAKC,KAAK4K,KAAOA,EAAId,EACnCpH,EAAKgH,KAAO/F,GAAKiH,IAAMD,GAAKD,GAAMA,IAAOP,EAAMO,IAC/ChI,EAAKiH,KAAO1F,GAAK2G,GAAKD,EACtBtC,EAAKqB,IAAM/F,GAAKgH,EAAI,EAAIA,GACxBtC,EAAKsB,IAAM1F,EAAI0G,EAEnB,CAIJ,CACF,CAEA,SAASL,EAAQG,GACf,GAAIA,EAAKpC,KAAM,OAAOoC,EAAKE,EAAId,EAAMY,EAAKpC,KAAKkC,OAC/C,IAAK,IAAIlK,EAAIoK,EAAKE,EAAI,EAAGtK,EAAI,IAAKA,EAC5BoK,EAAKpK,IAAMoK,EAAKpK,GAAGsK,EAAIF,EAAKE,IAC9BF,EAAKE,EAAIF,EAAKpK,GAAGsK,EAGvB,CAEA,SAASnD,IACP,GAAKJ,EAAL,CACA,IAAI/G,EAAqBqC,EAAlBpC,EAAI8G,EAAM5G,OAEjB,IADAqJ,EAAQ,IAAIrH,MAAMlC,GACbD,EAAI,EAAGA,EAAIC,IAAKD,EAAGqC,EAAO0E,EAAM/G,GAAIwJ,EAAMnH,EAAK6H,QAAUX,EAAOlH,EAAMrC,EAAG+G,EAH5D,CAIpB,CAmBA,MA9EsB,oBAAXwC,IAAuBA,EAASpD,EAAmB,MAAVoD,EAAiB,GAAKA,IA6D1EvC,EAAMG,WAAa,SAAS/G,GAC1B2G,EAAQ3G,EACR+G,GACF,EAEAH,EAAM0C,WAAa,SAAStJ,GAC1B,OAAOF,UAAUC,QAAUuJ,GAActJ,EAAG4G,GAAS0C,CACvD,EAEA1C,EAAMyC,SAAW,SAASrJ,GACxB,OAAOF,UAAUC,QAAUsJ,GAAYrJ,EAAG4G,GAASyC,CACrD,EAEAzC,EAAMuC,OAAS,SAASnJ,GACtB,OAAOF,UAAUC,QAAUoJ,EAAsB,oBAANnJ,EAAmBA,EAAI+F,GAAU/F,GAAI+G,IAAcH,GAASuC,CACzG,EAEOvC,CACT,CD7DAoC,EAAUrH,KAAO,WACf,IAEIgF,EACA0D,EAHA1I,EAAO,IAAIgH,EAASvI,KAAKiI,GAAIjI,KAAKkI,GAAIlI,KAAK0H,IAAK1H,KAAK4H,IAAK5H,KAAK8H,IAAK9H,KAAKgI,KACzEnG,EAAO7B,KAAKsH,MAIhB,IAAKzF,EAAM,OAAON,EAElB,IAAKM,EAAKlC,OAAQ,OAAO4B,EAAK+F,MAAQqB,EAAU9G,GAAON,EAGvD,IADAgF,EAAQ,CAAC,CAAC2D,OAAQrI,EAAMmB,OAAQzB,EAAK+F,MAAQ,IAAI3F,MAAM,KAChDE,EAAO0E,EAAM4D,OAClB,IAAK,IAAI3K,EAAI,EAAGA,EAAI,IAAKA,GACnByK,EAAQpI,EAAKqI,OAAO1K,MAClByK,EAAMtK,OAAQ4G,EAAMtF,KAAK,CAACiJ,OAAQD,EAAOjH,OAAQnB,EAAKmB,OAAOxD,GAAK,IAAImC,MAAM,KAC3EE,EAAKmB,OAAOxD,GAAKmJ,EAAUsB,IAKtC,OAAO1I,CACT,EAEAqH,EAAUwB,IJ3DK,SAASzG,GACtB,IAAIb,GAAK9C,KAAKiI,GAAGzG,KAAK,KAAMmC,GACxBP,GAAKpD,KAAKkI,GAAG1G,KAAK,KAAMmC,GAC5B,OAAO,EAAI3D,KAAKqK,MAAMvH,EAAGM,GAAIN,EAAGM,EAAGO,EACrC,EIwDAiF,EAAUH,OJXH,SAAgBjB,GACrB,IAAI7D,EAAGnE,EACHsD,EACAM,EAFM3D,EAAI+H,EAAK7H,OAGf2K,EAAK,IAAI3I,MAAMlC,GACf8K,EAAK,IAAI5I,MAAMlC,GACfgI,EAAK+C,IACL7C,EAAK6C,IACL3C,GAAM2C,IACNzC,GAAMyC,IAGV,IAAKhL,EAAI,EAAGA,EAAIC,IAAKD,EACfsH,MAAMhE,GAAK9C,KAAKiI,GAAGzG,KAAK,KAAMmC,EAAI6D,EAAKhI,MAAQsH,MAAM1D,GAAKpD,KAAKkI,GAAG1G,KAAK,KAAMmC,MACjF2G,EAAG9K,GAAKsD,EACRyH,EAAG/K,GAAK4D,EACJN,EAAI2E,IAAIA,EAAK3E,GACbA,EAAI+E,IAAIA,EAAK/E,GACbM,EAAIuE,IAAIA,EAAKvE,GACbA,EAAI2E,IAAIA,EAAK3E,IAInB,GAAIqE,EAAKI,GAAMF,EAAKI,EAAI,OAAO/H,KAM/B,IAHAA,KAAKqK,MAAM5C,EAAIE,GAAI0C,MAAMxC,EAAIE,GAGxBvI,EAAI,EAAGA,EAAIC,IAAKD,EACnB,EAAIQ,KAAMsK,EAAG9K,GAAI+K,EAAG/K,GAAIgI,EAAKhI,IAG/B,OAAOQ,IACT,EItBA4I,EAAUyB,ME7DK,SAASvH,EAAGM,GACzB,GAAI0D,MAAMhE,GAAKA,IAAMgE,MAAM1D,GAAKA,GAAI,OAAOpD,KAE3C,IAAIyH,EAAKzH,KAAK0H,IACVC,EAAK3H,KAAK4H,IACVC,EAAK7H,KAAK8H,IACVC,EAAK/H,KAAKgI,IAKd,GAAIlB,MAAMW,GACRI,GAAMJ,EAAKvI,KAAKuL,MAAM3H,IAAM,EAC5BiF,GAAMJ,EAAKzI,KAAKuL,MAAMrH,IAAM,MAIzB,CAMH,IALA,IAEI2D,EACAvH,EAHAkL,EAAI7C,EAAKJ,EACT5F,EAAO7B,KAAKsH,MAITG,EAAK3E,GAAKA,GAAK+E,GAAMF,EAAKvE,GAAKA,GAAK2E,GAGzC,OAFAvI,GAAK4D,EAAIuE,IAAO,EAAK7E,EAAI2E,GACzBV,EAAS,IAAIpF,MAAM,IAAWnC,GAAKqC,EAAMA,EAAOkF,EAAQ2D,GAAK,EACrDlL,GACN,KAAK,EAAGqI,EAAKJ,EAAKiD,EAAG3C,EAAKJ,EAAK+C,EAAG,MAClC,KAAK,EAAGjD,EAAKI,EAAK6C,EAAG3C,EAAKJ,EAAK+C,EAAG,MAClC,KAAK,EAAG7C,EAAKJ,EAAKiD,EAAG/C,EAAKI,EAAK2C,EAAG,MAClC,KAAK,EAAGjD,EAAKI,EAAK6C,EAAG/C,EAAKI,EAAK2C,EAI/B1K,KAAKsH,OAAStH,KAAKsH,MAAM3H,SAAQK,KAAKsH,MAAQzF,EACpD,CAMA,OAJA7B,KAAK0H,IAAMD,EACXzH,KAAK4H,IAAMD,EACX3H,KAAK8H,IAAMD,EACX7H,KAAKgI,IAAMD,EACJ/H,IACT,EFoBA4I,EAAUpB,KG9DK,WACb,IAAIA,EAAO,GAIX,OAHAxH,KAAK2J,OAAM,SAAS9H,GAClB,IAAKA,EAAKlC,OAAQ,GAAG6H,EAAKvG,KAAKY,EAAK2F,YAAc3F,EAAOA,EAAKsG,KAChE,IACOX,CACT,EHyDAoB,EAAU+B,OI/DK,SAAS/K,GACtB,OAAOF,UAAUC,OACXK,KAAKqK,OAAOzK,EAAE,GAAG,IAAKA,EAAE,GAAG,IAAIyK,OAAOzK,EAAE,GAAG,IAAKA,EAAE,GAAG,IACrDkH,MAAM9G,KAAK0H,UAAOgB,EAAY,CAAC,CAAC1I,KAAK0H,IAAK1H,KAAK4H,KAAM,CAAC5H,KAAK8H,IAAK9H,KAAKgI,KAC7E,EJ4DAY,EAAUgC,KK9DK,SAAS9H,EAAGM,EAAG2F,GAC5B,IAAIvB,EAGAK,EACAE,EACA8C,EACAC,EAKAC,EACAvL,EAXAiI,EAAKzH,KAAK0H,IACVC,EAAK3H,KAAK4H,IAKVoD,EAAKhL,KAAK8H,IACVmD,EAAKjL,KAAKgI,IACVkD,EAAQ,GACRrJ,EAAO7B,KAAKsH,MAYhB,IARIzF,GAAMqJ,EAAMjK,KAAK,IAAI,EAAKY,EAAM4F,EAAIE,EAAIqD,EAAIC,IAClC,MAAVlC,EAAgBA,EAASyB,KAE3B/C,EAAK3E,EAAIiG,EAAQpB,EAAKvE,EAAI2F,EAC1BiC,EAAKlI,EAAIiG,EAAQkC,EAAK7H,EAAI2F,EAC1BA,GAAUA,GAGLgC,EAAIG,EAAMf,OAGf,OAAMtI,EAAOkJ,EAAElJ,QACPgG,EAAKkD,EAAEtD,IAAMuD,IACbjD,EAAKgD,EAAEpD,IAAMsD,IACbJ,EAAKE,EAAElD,IAAMJ,IACbqD,EAAKC,EAAEhD,IAAMJ,GAGrB,GAAI9F,EAAKlC,OAAQ,CACf,IAAIqH,GAAMa,EAAKgD,GAAM,EACjB5D,GAAMc,EAAK+C,GAAM,EAErBI,EAAMjK,KACJ,IAAI,EAAKY,EAAK,GAAImF,EAAIC,EAAI4D,EAAIC,GAC9B,IAAI,EAAKjJ,EAAK,GAAIgG,EAAIZ,EAAID,EAAI8D,GAC9B,IAAI,EAAKjJ,EAAK,GAAImF,EAAIe,EAAI8C,EAAI5D,GAC9B,IAAI,EAAKpF,EAAK,GAAIgG,EAAIE,EAAIf,EAAIC,KAI5BzH,GAAK4D,GAAK6D,IAAO,EAAKnE,GAAKkE,KAC7B+D,EAAIG,EAAMA,EAAMvL,OAAS,GACzBuL,EAAMA,EAAMvL,OAAS,GAAKuL,EAAMA,EAAMvL,OAAS,EAAIH,GACnD0L,EAAMA,EAAMvL,OAAS,EAAIH,GAAKuL,EAElC,KAGK,CACH,IAAI1H,EAAKP,GAAK9C,KAAKiI,GAAGzG,KAAK,KAAMK,EAAK2F,MAClClE,EAAKF,GAAKpD,KAAKkI,GAAG1G,KAAK,KAAMK,EAAK2F,MAClC2D,EAAK9H,EAAKA,EAAKC,EAAKA,EACxB,GAAI6H,EAAKpC,EAAQ,CACf,IAAIpF,EAAIzE,KAAKC,KAAK4J,EAASoC,GAC3B1D,EAAK3E,EAAIa,EAAGgE,EAAKvE,EAAIO,EACrBqH,EAAKlI,EAAIa,EAAGsH,EAAK7H,EAAIO,EACrB6D,EAAO3F,EAAK2F,IACd,CACF,CAGF,OAAOA,CACT,ELJAoB,EAAUwC,OMjEK,SAASzH,GACtB,GAAImD,MAAMhE,GAAK9C,KAAKiI,GAAGzG,KAAK,KAAMmC,KAAOmD,MAAM1D,GAAKpD,KAAKkI,GAAG1G,KAAK,KAAMmC,IAAK,OAAO3D,KAEnF,IAAI+G,EAEAsE,EACAC,EACAnD,EAKArF,EACAM,EACA4D,EACAC,EACAjI,EACAoI,EACA5H,EACA6H,EAfAxF,EAAO7B,KAAKsH,MAIZG,EAAKzH,KAAK0H,IACVC,EAAK3H,KAAK4H,IACVC,EAAK7H,KAAK8H,IACVC,EAAK/H,KAAKgI,IAWd,IAAKnG,EAAM,OAAO7B,KAIlB,GAAI6B,EAAKlC,OAAQ,OAAa,CAG5B,IAFIX,EAAQ8D,IAAMkE,GAAMS,EAAKI,GAAM,IAAIJ,EAAKT,EAASa,EAAKb,GACtDI,EAAShE,IAAM6D,GAAMU,EAAKI,GAAM,IAAIJ,EAAKV,EAASc,EAAKd,EACrDF,EAASlF,IAAMA,EAAOA,EAAKrC,EAAI4H,GAAU,EAAIpI,IAAS,OAAOgB,KACnE,IAAK6B,EAAKlC,OAAQ,OACdoH,EAAQvH,EAAI,EAAK,IAAMuH,EAAQvH,EAAI,EAAK,IAAMuH,EAAQvH,EAAI,EAAK,MAAI6L,EAAWtE,EAAQM,EAAI7H,EAChG,CAGA,KAAOqC,EAAK2F,OAAS7D,MAAS2H,EAAWzJ,IAAMA,EAAOA,EAAKsG,MAAO,OAAOnI,KAIzE,OAHImI,EAAOtG,EAAKsG,cAAatG,EAAKsG,KAG9BmD,GAAkBnD,EAAOmD,EAASnD,KAAOA,SAAcmD,EAASnD,KAAOnI,MAGtE+G,GAGLoB,EAAOpB,EAAOvH,GAAK2I,SAAcpB,EAAOvH,IAGnCqC,EAAOkF,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAMA,EAAO,KACnDlF,KAAUkF,EAAO,IAAMA,EAAO,IAAMA,EAAO,IAAMA,EAAO,MACvDlF,EAAKlC,SACP0L,EAAUA,EAAShE,GAAKxF,EACvB7B,KAAKsH,MAAQzF,GAGb7B,OAbaA,KAAKsH,MAAQa,EAAMnI,KAczC,ENUA4I,EAAU2C,UMRH,SAAmB/D,GACxB,IAAK,IAAIhI,EAAI,EAAGC,EAAI+H,EAAK7H,OAAQH,EAAIC,IAAKD,EAAGQ,KAAKoL,OAAO5D,EAAKhI,IAC9D,OAAOQ,IACT,ENMA4I,EAAUtG,KOnEK,WACb,OAAOtC,KAAKsH,KACd,EPkEAsB,EAAU4C,KQpEK,WACb,IAAIA,EAAO,EAIX,OAHAxL,KAAK2J,OAAM,SAAS9H,GAClB,IAAKA,EAAKlC,OAAQ,KAAK6L,QAAa3J,EAAOA,EAAKsG,KAClD,IACOqD,CACT,ER+DA5C,EAAUe,MSnEK,SAAS5I,GACtB,IAAgBgK,EAAsBd,EAAOxC,EAAIE,EAAIE,EAAIE,EAArDmD,EAAQ,GAAOrJ,EAAO7B,KAAKsH,MAE/B,IADIzF,GAAMqJ,EAAMjK,KAAK,IAAI,EAAKY,EAAM7B,KAAK0H,IAAK1H,KAAK4H,IAAK5H,KAAK8H,IAAK9H,KAAKgI,MAChE+C,EAAIG,EAAMf,OACf,IAAKpJ,EAASc,EAAOkJ,EAAElJ,KAAM4F,EAAKsD,EAAEtD,GAAIE,EAAKoD,EAAEpD,GAAIE,EAAKkD,EAAElD,GAAIE,EAAKgD,EAAEhD,KAAOlG,EAAKlC,OAAQ,CACvF,IAAIqH,GAAMS,EAAKI,GAAM,EAAGZ,GAAMU,EAAKI,GAAM,GACrCkC,EAAQpI,EAAK,KAAIqJ,EAAMjK,KAAK,IAAI,EAAKgJ,EAAOjD,EAAIC,EAAIY,EAAIE,KACxDkC,EAAQpI,EAAK,KAAIqJ,EAAMjK,KAAK,IAAI,EAAKgJ,EAAOxC,EAAIR,EAAID,EAAIe,KACxDkC,EAAQpI,EAAK,KAAIqJ,EAAMjK,KAAK,IAAI,EAAKgJ,EAAOjD,EAAIW,EAAIE,EAAIZ,KACxDgD,EAAQpI,EAAK,KAAIqJ,EAAMjK,KAAK,IAAI,EAAKgJ,EAAOxC,EAAIE,EAAIX,EAAIC,GAC9D,CAEF,OAAOjH,IACT,ETuDA4I,EAAUY,WUpEK,SAASzI,GACtB,IAA2BgK,EAAvBG,EAAQ,GAAI/C,EAAO,GAEvB,IADInI,KAAKsH,OAAO4D,EAAMjK,KAAK,IAAI,EAAKjB,KAAKsH,MAAOtH,KAAK0H,IAAK1H,KAAK4H,IAAK5H,KAAK8H,IAAK9H,KAAKgI,MAC5E+C,EAAIG,EAAMf,OAAO,CACtB,IAAItI,EAAOkJ,EAAElJ,KACb,GAAIA,EAAKlC,OAAQ,CACf,IAAIsK,EAAOxC,EAAKsD,EAAEtD,GAAIE,EAAKoD,EAAEpD,GAAIE,EAAKkD,EAAElD,GAAIE,EAAKgD,EAAEhD,GAAIf,GAAMS,EAAKI,GAAM,EAAGZ,GAAMU,EAAKI,GAAM,GACxFkC,EAAQpI,EAAK,KAAIqJ,EAAMjK,KAAK,IAAI,EAAKgJ,EAAOxC,EAAIE,EAAIX,EAAIC,KACxDgD,EAAQpI,EAAK,KAAIqJ,EAAMjK,KAAK,IAAI,EAAKgJ,EAAOjD,EAAIW,EAAIE,EAAIZ,KACxDgD,EAAQpI,EAAK,KAAIqJ,EAAMjK,KAAK,IAAI,EAAKgJ,EAAOxC,EAAIR,EAAID,EAAIe,KACxDkC,EAAQpI,EAAK,KAAIqJ,EAAMjK,KAAK,IAAI,EAAKgJ,EAAOjD,EAAIC,EAAIY,EAAIE,GAC9D,CACAI,EAAKlH,KAAK8J,EACZ,CACA,KAAOA,EAAI5C,EAAKgC,OACdpJ,EAASgK,EAAElJ,KAAMkJ,EAAEtD,GAAIsD,EAAEpD,GAAIoD,EAAElD,GAAIkD,EAAEhD,IAEvC,OAAO/H,IACT,EVmDA4I,EAAU9F,EFnEK,SAASlD,GACtB,OAAOF,UAAUC,QAAUK,KAAKiI,GAAKrI,EAAGI,MAAQA,KAAKiI,EACvD,EEkEAW,EAAUxF,EDpEK,SAASxD,GACtB,OAAOF,UAAUC,QAAUK,KAAKkI,GAAKtI,EAAGI,MAAQA,KAAKkI,EACvD,E,iCYFA,SAASwB,EAAM/F,GACb,OAAOA,EAAE+F,KACX,CAEA,SAAS,EAAK+B,EAAUC,GACtB,IAAI7J,EAAO4J,EAAS7K,IAAI8K,GACxB,IAAK7J,EAAM,MAAM,IAAI/B,MAAM,YAAc4L,GACzC,OAAO7J,CACT,CAEe,WAAS8J,GACtB,IAEIC,EAEAC,EACAtF,EACAuF,EACAC,EAPA7I,EAAKwG,EACLT,EAWJ,SAAyB+C,GACvB,OAAO,EAAI9M,KAAK+M,IAAIH,EAAME,EAAK9B,OAAOR,OAAQoC,EAAME,EAAKhJ,OAAO0G,OAClE,EAXIwC,EAAWvG,EAAS,IAKpBuD,EAAa,EAQjB,SAAS1C,EAAM2F,GACb,IAAK,IAAI5C,EAAI,EAAG9J,EAAIkM,EAAMhM,OAAQ4J,EAAIL,IAAcK,EAClD,IAAK,IAAWyC,EAAM9B,EAAQlH,EAAQF,EAAGM,EAAG2G,EAAGqC,EAAtC5M,EAAI,EAAqCA,EAAIC,IAAKD,EACxC0K,GAAjB8B,EAAOL,EAAMnM,IAAkB0K,OAC/BpH,GADuCE,EAASgJ,EAAKhJ,QAC1CF,EAAIE,EAAO6F,GAAKqB,EAAOpH,EAAIoH,EAAOrB,IAAMmB,IACnD5G,EAAIJ,EAAOI,EAAIJ,EAAO8F,GAAKoB,EAAO9G,EAAI8G,EAAOpB,IAAMkB,IAGnDlH,GADAiH,IADAA,EAAI7K,KAAKC,KAAK2D,EAAIA,EAAIM,EAAIA,IACjByI,EAAUrM,IAAMuK,EAAIoC,EAAQP,EAAUpM,GACvC4D,GAAK2G,EACb/G,EAAO6F,IAAM/F,GAAKsJ,EAAIL,EAAKvM,IAC3BwD,EAAO8F,IAAM1F,EAAIgJ,EACjBlC,EAAOrB,IAAM/F,GAAKsJ,EAAI,EAAIA,GAC1BlC,EAAOpB,IAAM1F,EAAIgJ,CAGvB,CAEA,SAASzF,IACP,GAAKJ,EAAL,CAEA,IAAI/G,EAIAwM,EAHAvM,EAAI8G,EAAM5G,OACV0M,EAAIV,EAAMhM,OACV8L,GAAW,EAAAnL,EAAA,GAAIiG,EAAOrD,GAG1B,IAAK1D,EAAI,EAAGsM,EAAQ,IAAInK,MAAMlC,GAAID,EAAI6M,IAAK7M,GACzCwM,EAAOL,EAAMnM,IAASkK,MAAQlK,EACH,kBAAhBwM,EAAK9B,SAAqB8B,EAAK9B,OAAS,EAAKuB,EAAUO,EAAK9B,SAC5C,kBAAhB8B,EAAKhJ,SAAqBgJ,EAAKhJ,OAAS,EAAKyI,EAAUO,EAAKhJ,SACvE8I,EAAME,EAAK9B,OAAOR,QAAUoC,EAAME,EAAK9B,OAAOR,QAAU,GAAK,EAC7DoC,EAAME,EAAKhJ,OAAO0G,QAAUoC,EAAME,EAAKhJ,OAAO0G,QAAU,GAAK,EAG/D,IAAKlK,EAAI,EAAGuM,EAAO,IAAIpK,MAAM0K,GAAI7M,EAAI6M,IAAK7M,EACxCwM,EAAOL,EAAMnM,GAAIuM,EAAKvM,GAAKsM,EAAME,EAAK9B,OAAOR,QAAUoC,EAAME,EAAK9B,OAAOR,OAASoC,EAAME,EAAKhJ,OAAO0G,QAGtGkC,EAAY,IAAIjK,MAAM0K,GAAIC,IAC1BT,EAAY,IAAIlK,MAAM0K,GAAIE,GArBR,CAsBpB,CAEA,SAASD,IACP,GAAK/F,EAEL,IAAK,IAAI/G,EAAI,EAAGC,EAAIkM,EAAMhM,OAAQH,EAAIC,IAAKD,EACzCoM,EAAUpM,IAAMyJ,EAAS0C,EAAMnM,GAAIA,EAAGmM,EAE1C,CAEA,SAASY,IACP,GAAKhG,EAEL,IAAK,IAAI/G,EAAI,EAAGC,EAAIkM,EAAMhM,OAAQH,EAAIC,IAAKD,EACzCqM,EAAUrM,IAAM0M,EAASP,EAAMnM,GAAIA,EAAGmM,EAE1C,CA2BA,OAzFa,MAATA,IAAeA,EAAQ,IAgE3BnF,EAAMG,WAAa,SAAS/G,GAC1B2G,EAAQ3G,EACR+G,GACF,EAEAH,EAAMmF,MAAQ,SAAS/L,GACrB,OAAOF,UAAUC,QAAUgM,EAAQ/L,EAAG+G,IAAcH,GAASmF,CAC/D,EAEAnF,EAAMtD,GAAK,SAAStD,GAClB,OAAOF,UAAUC,QAAUuD,EAAKtD,EAAG4G,GAAStD,CAC9C,EAEAsD,EAAM0C,WAAa,SAAStJ,GAC1B,OAAOF,UAAUC,QAAUuJ,GAActJ,EAAG4G,GAAS0C,CACvD,EAEA1C,EAAMyC,SAAW,SAASrJ,GACxB,OAAOF,UAAUC,QAAUsJ,EAAwB,oBAANrJ,EAAmBA,EAAI+F,GAAU/F,GAAI0M,IAAsB9F,GAASyC,CACnH,EAEAzC,EAAM0F,SAAW,SAAStM,GACxB,OAAOF,UAAUC,QAAUuM,EAAwB,oBAANtM,EAAmBA,EAAI+F,GAAU/F,GAAI2M,IAAsB/F,GAAS0F,CACnH,EAEO1F,CACT,C,IC/GIgG,EACAC,E,WALA,EAAQ,EACRC,EAAU,EACVC,EAAW,EAIXC,EAAY,EACZC,EAAW,EACXC,EAAY,EACZC,EAA+B,kBAAhBC,aAA4BA,YAAYC,IAAMD,YAAcE,KAC3EC,EAA6B,kBAAXC,QAAuBA,OAAOC,sBAAwBD,OAAOC,sBAAsBC,KAAKF,QAAU,SAASG,GAAKlI,WAAWkI,EAAG,GAAK,EAElJ,SAASN,IACd,OAAOJ,IAAaM,EAASK,GAAWX,EAAWE,EAAME,MAAQH,EACnE,CAEA,SAASU,IACPX,EAAW,CACb,CAEO,SAASY,IACdzN,KAAK0N,MACL1N,KAAK2N,MACL3N,KAAK4N,MAAQ,IACf,CAyBO,SAASC,EAAM9M,EAAU+M,EAAOC,GACrC,IAAIxO,EAAI,IAAIkO,EAEZ,OADAlO,EAAEyO,QAAQjN,EAAU+M,EAAOC,GACpBxO,CACT,CAaA,SAAS0O,IACPpB,GAAYD,EAAYG,EAAME,OAASH,EACvC,EAAQJ,EAAU,EAClB,KAdK,WACLO,MACE,EAEF,IADA,IAAkBiB,EAAd3O,EAAIiN,EACDjN,IACA2O,EAAIrB,EAAWtN,EAAEoO,QAAU,GAAGpO,EAAEmO,MAAMlM,KAAK,KAAM0M,GACtD3O,EAAIA,EAAEqO,QAEN,CACJ,CAMIO,EAKF,CAJE,QACA,EAAQ,EAWZ,WACE,IAAIC,EAAmBC,EAAfC,EAAK9B,EAAcuB,EAAOvD,IAClC,KAAO8D,GACDA,EAAGZ,OACDK,EAAOO,EAAGX,QAAOI,EAAOO,EAAGX,OAC/BS,EAAKE,EAAIA,EAAKA,EAAGV,QAEjBS,EAAKC,EAAGV,MAAOU,EAAGV,MAAQ,KAC1BU,EAAKF,EAAKA,EAAGR,MAAQS,EAAK7B,EAAW6B,GAGzC5B,EAAW2B,EACXG,EAAMR,EACR,CAvBIS,GACA3B,EAAW,CACb,CACF,CAEA,SAAS4B,IACP,IAAIxB,EAAMF,EAAME,MAAOa,EAAQb,EAAML,EACjCkB,EA7EU,MA6EShB,GAAagB,EAAOlB,EAAYK,EACzD,CAiBA,SAASsB,EAAMR,GACT,IACArB,IAASA,EAAUpH,aAAaoH,IACxBqB,EAAOlB,EACP,IACNkB,EAAOvD,MAAUkC,EAAUrH,WAAW4I,EAAMF,EAAOhB,EAAME,MAAQH,IACjEH,IAAUA,EAAW+B,cAAc/B,MAElCA,IAAUC,EAAYG,EAAME,MAAON,EAAWgC,YAAYF,EAvGnD,MAwGZ,EAAQ,EAAGtB,EAASc,IAExB,CCzGO,SAAS,EAAEtK,GAChB,OAAOA,EAAEb,CACX,CAEO,SAAS,EAAEa,GAChB,OAAOA,EAAEP,CACX,CDgBAqK,EAAMvM,UAAY2M,EAAM3M,UAAY,CAClCC,YAAasM,EACbO,QAAS,SAASjN,EAAU+M,EAAOC,GACjC,GAAwB,oBAAbhN,EAAyB,MAAM,IAAI6N,UAAU,8BACxDb,GAAgB,MAARA,EAAed,KAASc,IAAkB,MAATD,EAAgB,GAAKA,GACzD9N,KAAK4N,OAASnB,IAAazM,OAC1ByM,EAAUA,EAASmB,MAAQ5N,KAC1BwM,EAAWxM,KAChByM,EAAWzM,MAEbA,KAAK0N,MAAQ3M,EACbf,KAAK2N,MAAQI,EACbQ,GACF,EACAM,KAAM,WACA7O,KAAK0N,QACP1N,KAAK0N,MAAQ,KACb1N,KAAK2N,MAAQnD,IACb+D,IAEJ,GClCF,IACIO,EAAe5P,KAAK6P,IAAM,EAAI7P,KAAKC,KAAK,IAE7B,WAASoH,GACtB,IAAIyI,EACA7C,EAAQ,EACR8C,EAAW,KACXC,EAAa,EAAIhQ,KAAKiQ,IAAIF,EAAU,EAAI,KACxCG,EAAc,EACdC,EAAgB,GAChBC,GAAS,EAAAhP,EAAA,KACTiP,EAAU1B,EAAM2B,GAChBC,GAAQ,EAAAnQ,EAAA,GAAS,OAAQ,OAI7B,SAASkQ,IACPE,IACAD,EAAMjO,KAAK,OAAQwN,GACf7C,EAAQ8C,IACVM,EAAQV,OACRY,EAAMjO,KAAK,MAAOwN,GAEtB,CAEA,SAASU,EAAKxG,GACZ,IAAI1J,EAAqBqC,EAAlBpC,EAAI8G,EAAM5G,YAEE+I,IAAfQ,IAA0BA,EAAa,GAE3C,IAAK,IAAIK,EAAI,EAAGA,EAAIL,IAAcK,EAOhC,IANA4C,IAAUiD,EAAcjD,GAAS+C,EAEjCI,EAAOK,MAAK,SAAUnJ,GACpBA,EAAM2F,EACR,IAEK3M,EAAI,EAAGA,EAAIC,IAAKD,EAEJ,OADfqC,EAAO0E,EAAM/G,IACJoQ,GAAY/N,EAAKiB,GAAKjB,EAAKgH,IAAMwG,GACrCxN,EAAKiB,EAAIjB,EAAK+N,GAAI/N,EAAKgH,GAAK,GAClB,MAAXhH,EAAKgO,GAAYhO,EAAKuB,GAAKvB,EAAKiH,IAAMuG,GACrCxN,EAAKuB,EAAIvB,EAAKgO,GAAIhO,EAAKiH,GAAK,GAIrC,OAAOkG,CACT,CAEA,SAASc,IACP,IAAK,IAA6BjO,EAAzBrC,EAAI,EAAGC,EAAI8G,EAAM5G,OAAcH,EAAIC,IAAKD,EAAG,CAIlD,IAHAqC,EAAO0E,EAAM/G,IAASkK,MAAQlK,EACf,MAAXqC,EAAK+N,KAAY/N,EAAKiB,EAAIjB,EAAK+N,IACpB,MAAX/N,EAAKgO,KAAYhO,EAAKuB,EAAIvB,EAAKgO,IAC/B/I,MAAMjF,EAAKiB,IAAMgE,MAAMjF,EAAKuB,GAAI,CAClC,IAAI2F,EAvDQ,GAuDiB7J,KAAKC,KAAKK,GAAIuQ,EAAQvQ,EAAIsP,EACvDjN,EAAKiB,EAAIiG,EAAS7J,KAAK8Q,IAAID,GAC3BlO,EAAKuB,EAAI2F,EAAS7J,KAAK+Q,IAAIF,EAC7B,EACIjJ,MAAMjF,EAAKgH,KAAO/B,MAAMjF,EAAKiH,OAC/BjH,EAAKgH,GAAKhH,EAAKiH,GAAK,EAExB,CACF,CAEA,SAASoH,EAAgB1J,GAEvB,OADIA,EAAMG,YAAYH,EAAMG,WAAWJ,GAChCC,CACT,CAIA,OA1Da,MAATD,IAAeA,EAAQ,IAwD3BuJ,IAEOd,EAAa,CAClBU,KAAMA,EAEN1B,QAAS,WACP,OAAOuB,EAAQvB,QAAQwB,GAAOR,CAChC,EAEAH,KAAM,WACJ,OAAOU,EAAQV,OAAQG,CACzB,EAEAzI,MAAO,SAAS3G,GACd,OAAOF,UAAUC,QAAU4G,EAAQ3G,EAAGkQ,IAAmBR,EAAOK,KAAKO,GAAkBlB,GAAczI,CACvG,EAEA4F,MAAO,SAASvM,GACd,OAAOF,UAAUC,QAAUwM,GAASvM,EAAGoP,GAAc7C,CACvD,EAEA8C,SAAU,SAASrP,GACjB,OAAOF,UAAUC,QAAUsP,GAAYrP,EAAGoP,GAAcC,CAC1D,EAEAC,WAAY,SAAStP,GACnB,OAAOF,UAAUC,QAAUuP,GAActP,EAAGoP,IAAeE,CAC7D,EAEAE,YAAa,SAASxP,GACpB,OAAOF,UAAUC,QAAUyP,GAAexP,EAAGoP,GAAcI,CAC7D,EAEAC,cAAe,SAASzP,GACtB,OAAOF,UAAUC,QAAU0P,EAAgB,EAAIzP,EAAGoP,GAAc,EAAIK,CACtE,EAEA7I,MAAO,SAASjG,EAAMX,GACpB,OAAOF,UAAUC,OAAS,GAAW,MAALC,EAAY0P,EAAOlE,OAAO7K,GAAQ+O,EAAOxO,IAAIP,EAAM2P,EAAgBtQ,IAAMoP,GAAcM,EAAO1O,IAAIL,EACpI,EAEAqK,KAAM,SAAS9H,EAAGM,EAAG2F,GACnB,IAEI1F,EACAC,EACA6H,EACAtJ,EACAsO,EANA3Q,EAAI,EACJC,EAAI8G,EAAM5G,OAUd,IAHc,MAAVoJ,EAAgBA,EAASyB,IACxBzB,GAAUA,EAEVvJ,EAAI,EAAGA,EAAIC,IAAKD,GAInB2L,GAFA9H,EAAKP,GADLjB,EAAO0E,EAAM/G,IACCsD,GAEJO,GADVC,EAAKF,EAAIvB,EAAKuB,GACME,GACXyF,IAAQoH,EAAUtO,EAAMkH,EAASoC,GAG5C,OAAOgF,CACT,EAEA/O,GAAI,SAASb,EAAMX,GACjB,OAAOF,UAAUC,OAAS,GAAK8P,EAAMrO,GAAGb,EAAMX,GAAIoP,GAAcS,EAAMrO,GAAGb,EAC3E,EAEJ,CCjJe,aACb,IAAIgG,EACA1E,EACAsK,EAEAP,EADA3C,EAAWtD,GAAU,IAErByK,EAAe,EACfC,EAAe7F,IACf8F,EAAS,IAEb,SAAS9J,EAAM5G,GACb,IAAIJ,EAAGC,EAAI8G,EAAM5G,OAAQkH,EAAOyB,EAAS/B,EAAO,EAAG,GAAGiD,WAAW+G,GACjE,IAAKpE,EAAQvM,EAAGJ,EAAI,EAAGA,EAAIC,IAAKD,EAAGqC,EAAO0E,EAAM/G,GAAIqH,EAAK8C,MAAM/H,EACjE,CAEA,SAAS+E,IACP,GAAKJ,EAAL,CACA,IAAI/G,EAAqBqC,EAAlBpC,EAAI8G,EAAM5G,OAEjB,IADAiM,EAAY,IAAIjK,MAAMlC,GACjBD,EAAI,EAAGA,EAAIC,IAAKD,EAAGqC,EAAO0E,EAAM/G,GAAIoM,EAAU/J,EAAK6H,QAAUT,EAASpH,EAAMrC,EAAG+G,EAHlE,CAIpB,CAEA,SAASgK,EAAW3G,GAClB,IAAkBmB,EAAGlK,EAAeiC,EAAGM,EAAG5D,EAAtCyJ,EAAW,EAASuH,EAAS,EAGjC,GAAI5G,EAAKjK,OAAQ,CACf,IAAKmD,EAAIM,EAAI5D,EAAI,EAAGA,EAAI,IAAKA,GACtBuL,EAAInB,EAAKpK,MAAQqB,EAAI3B,KAAKuR,IAAI1F,EAAE1L,UACnC4J,GAAY8B,EAAE1L,MAAOmR,GAAU3P,EAAGiC,GAAKjC,EAAIkK,EAAEjI,EAAGM,GAAKvC,EAAIkK,EAAE3H,GAG/DwG,EAAK9G,EAAIA,EAAI0N,EACb5G,EAAKxG,EAAIA,EAAIoN,CACf,KAGK,EACHzF,EAAInB,GACF9G,EAAIiI,EAAEvD,KAAK1E,EACbiI,EAAE3H,EAAI2H,EAAEvD,KAAKpE,EACb,GAAG6F,GAAY2C,EAAUb,EAAEvD,KAAKkC,aACzBqB,EAAIA,EAAE5C,KACf,CAEAyB,EAAKvK,MAAQ4J,CACf,CAEA,SAASrH,EAAMgI,EAAM/B,EAAIjI,EAAGiL,GAC1B,IAAKjB,EAAKvK,MAAO,OAAO,EAExB,IAAIyD,EAAI8G,EAAK9G,EAAIjB,EAAKiB,EAClBM,EAAIwG,EAAKxG,EAAIvB,EAAKuB,EAClBsN,EAAI7F,EAAKhD,EACTkC,EAAIjH,EAAIA,EAAIM,EAAIA,EAIpB,GAAIsN,EAAIA,EAAIJ,EAASvG,EAQnB,OAPIA,EAAIsG,IACI,IAANvN,IAAuBiH,IAAdjH,EAAIkH,KAAmBlH,GAC1B,IAANM,IAAuB2G,IAAd3G,EAAI4G,KAAmB5G,GAChC2G,EAAIqG,IAAcrG,EAAI7K,KAAKC,KAAKiR,EAAerG,IACnDlI,EAAKgH,IAAM/F,EAAI8G,EAAKvK,MAAQ8M,EAAQpC,EACpClI,EAAKiH,IAAM1F,EAAIwG,EAAKvK,MAAQ8M,EAAQpC,IAE/B,EAIJ,KAAIH,EAAKjK,QAAUoK,GAAKsG,GAAxB,EAGDzG,EAAKpC,OAAS3F,GAAQ+H,EAAKzB,QACnB,IAANrF,IAAuBiH,IAAdjH,EAAIkH,KAAmBlH,GAC1B,IAANM,IAAuB2G,IAAd3G,EAAI4G,KAAmB5G,GAChC2G,EAAIqG,IAAcrG,EAAI7K,KAAKC,KAAKiR,EAAerG,KAGrD,GAAOH,EAAKpC,OAAS3F,IACnB6O,EAAI9E,EAAUhC,EAAKpC,KAAKkC,OAASyC,EAAQpC,EACzClI,EAAKgH,IAAM/F,EAAI4N,EACf7O,EAAKiH,IAAM1F,EAAIsN,SACR9G,EAAOA,EAAKzB,KAb4B,CAcnD,CAuBA,OArBA3B,EAAMG,WAAa,SAAS/G,GAC1B2G,EAAQ3G,EACR+G,GACF,EAEAH,EAAMyC,SAAW,SAASrJ,GACxB,OAAOF,UAAUC,QAAUsJ,EAAwB,oBAANrJ,EAAmBA,EAAI+F,GAAU/F,GAAI+G,IAAcH,GAASyC,CAC3G,EAEAzC,EAAMmK,YAAc,SAAS/Q,GAC3B,OAAOF,UAAUC,QAAUyQ,EAAexQ,EAAIA,EAAG4G,GAAStH,KAAKC,KAAKiR,EACtE,EAEA5J,EAAMoK,YAAc,SAAShR,GAC3B,OAAOF,UAAUC,QAAU0Q,EAAezQ,EAAIA,EAAG4G,GAAStH,KAAKC,KAAKkR,EACtE,EAEA7J,EAAMqK,MAAQ,SAASjR,GACrB,OAAOF,UAAUC,QAAU2Q,EAAS1Q,EAAIA,EAAG4G,GAAStH,KAAKC,KAAKmR,EAChE,EAEO9J,CACT,CC/Ge,WAAS1D,GACtB,IACIyD,EACAqF,EACAtB,EAHArB,EAAWtD,EAAS,IAOxB,SAASa,EAAM2F,GACb,IAAK,IAA6BtK,EAAzBrC,EAAI,EAAGC,EAAI8G,EAAM5G,OAAcH,EAAIC,IAAKD,GAC/CqC,EAAO0E,EAAM/G,IAASqJ,KAAOyB,EAAG9K,GAAKqC,EAAKiB,GAAK8I,EAAUpM,GAAK2M,CAElE,CAEA,SAASxF,IACP,GAAKJ,EAAL,CACA,IAAI/G,EAAGC,EAAI8G,EAAM5G,OAGjB,IAFAiM,EAAY,IAAIjK,MAAMlC,GACtB6K,EAAK,IAAI3I,MAAMlC,GACVD,EAAI,EAAGA,EAAIC,IAAKD,EACnBoM,EAAUpM,GAAKsH,MAAMwD,EAAG9K,IAAMsD,EAAEyD,EAAM/G,GAAIA,EAAG+G,IAAU,GAAK0C,EAAS1C,EAAM/G,GAAIA,EAAG+G,EALlE,CAOpB,CAeA,MA/BiB,oBAANzD,IAAkBA,EAAI6C,EAAc,MAAL7C,EAAY,GAAKA,IAkB3D0D,EAAMG,WAAa,SAAS/G,GAC1B2G,EAAQ3G,EACR+G,GACF,EAEAH,EAAMyC,SAAW,SAASrJ,GACxB,OAAOF,UAAUC,QAAUsJ,EAAwB,oBAANrJ,EAAmBA,EAAI+F,GAAU/F,GAAI+G,IAAcH,GAASyC,CAC3G,EAEAzC,EAAM1D,EAAI,SAASlD,GACjB,OAAOF,UAAUC,QAAUmD,EAAiB,oBAANlD,EAAmBA,EAAI+F,GAAU/F,GAAI+G,IAAcH,GAAS1D,CACpG,EAEO0D,CACT,CCtCe,WAASpD,GACtB,IACImD,EACAqF,EACArB,EAHAtB,EAAWtD,EAAS,IAOxB,SAASa,EAAM2F,GACb,IAAK,IAA6BtK,EAAzBrC,EAAI,EAAGC,EAAI8G,EAAM5G,OAAcH,EAAIC,IAAKD,GAC/CqC,EAAO0E,EAAM/G,IAASsJ,KAAOyB,EAAG/K,GAAKqC,EAAKuB,GAAKwI,EAAUpM,GAAK2M,CAElE,CAEA,SAASxF,IACP,GAAKJ,EAAL,CACA,IAAI/G,EAAGC,EAAI8G,EAAM5G,OAGjB,IAFAiM,EAAY,IAAIjK,MAAMlC,GACtB8K,EAAK,IAAI5I,MAAMlC,GACVD,EAAI,EAAGA,EAAIC,IAAKD,EACnBoM,EAAUpM,GAAKsH,MAAMyD,EAAG/K,IAAM4D,EAAEmD,EAAM/G,GAAIA,EAAG+G,IAAU,GAAK0C,EAAS1C,EAAM/G,GAAIA,EAAG+G,EALlE,CAOpB,CAeA,MA/BiB,oBAANnD,IAAkBA,EAAIuC,EAAc,MAALvC,EAAY,GAAKA,IAkB3DoD,EAAMG,WAAa,SAAS/G,GAC1B2G,EAAQ3G,EACR+G,GACF,EAEAH,EAAMyC,SAAW,SAASrJ,GACxB,OAAOF,UAAUC,QAAUsJ,EAAwB,oBAANrJ,EAAmBA,EAAI+F,GAAU/F,GAAI+G,IAAcH,GAASyC,CAC3G,EAEAzC,EAAMpD,EAAI,SAASxD,GACjB,OAAOF,UAAUC,QAAUyD,EAAiB,oBAANxD,EAAmBA,EAAI+F,GAAU/F,GAAI+G,IAAcH,GAASpD,CACpG,EAEOoD,CACT,C,wBCxCA,SAASsF,EAAMjK,GACb,IAAIiP,EAAM,EACNC,EAAWlP,EAAKkP,SAChBvR,EAAIuR,GAAYA,EAASpR,OAC7B,GAAKH,EACA,OAASA,GAAK,GAAGsR,GAAOC,EAASvR,GAAGH,WADjCyR,EAAM,EAEdjP,EAAKxC,MAAQyR,CACf,CCKe,SAASE,EAAUxJ,EAAMuJ,GACtC,IAEIlP,EAEAoI,EACAgH,EACAzR,EACAC,EAPA6C,EAAO,IAAI4O,EAAK1J,GAChB2J,GAAU3J,EAAKnI,QAAUiD,EAAKjD,MAAQmI,EAAKnI,OAE3CkH,EAAQ,CAACjE,GAQb,IAFgB,MAAZyO,IAAkBA,EAAWK,GAE1BvP,EAAO0E,EAAM4D,OAElB,GADIgH,IAAQtP,EAAKxC,OAASwC,EAAK2F,KAAKnI,QAC/B4R,EAASF,EAASlP,EAAK2F,SAAW/H,EAAIwR,EAAOtR,QAEhD,IADAkC,EAAKkP,SAAW,IAAIpP,MAAMlC,GACrBD,EAAIC,EAAI,EAAGD,GAAK,IAAKA,EACxB+G,EAAMtF,KAAKgJ,EAAQpI,EAAKkP,SAASvR,GAAK,IAAI0R,EAAKD,EAAOzR,KACtDyK,EAAMlD,OAASlF,EACfoI,EAAMoH,MAAQxP,EAAKwP,MAAQ,EAKjC,OAAO/O,EAAKgP,WAAWC,EACzB,CAMA,SAASH,EAAgBzN,GACvB,OAAOA,EAAEoN,QACX,CAEA,SAASS,EAAS3P,GAChBA,EAAK2F,KAAO3F,EAAK2F,KAAKA,IACxB,CAEO,SAAS+J,EAAc1P,GAC5B,IAAI4P,EAAS,EACb,GAAG5P,EAAK4P,OAASA,SACT5P,EAAOA,EAAKkF,SAAYlF,EAAK4P,SAAWA,EAClD,CAEO,SAASP,EAAK1J,GACnBxH,KAAKwH,KAAOA,EACZxH,KAAKqR,MACLrR,KAAKyR,OAAS,EACdzR,KAAK+G,OAAS,IAChB,C,iCAEAmK,EAAKhQ,UAAY8P,EAAU9P,UAAY,CACrCC,YAAa+P,EACbpF,MDzDa,WACb,OAAO9L,KAAK0R,UAAU5F,EACxB,ECwDE6D,KCnEa,SAAS5O,GACtB,IAAiB4Q,EAAwBZ,EAAUvR,EAAGC,EAAlDoC,EAAO7B,KAAemI,EAAO,CAACtG,GAClC,GAEE,IADA8P,EAAUxJ,EAAKyJ,UAAWzJ,EAAO,GAC1BtG,EAAO8P,EAAQxH,OAEpB,GADApJ,EAASc,GAAOkP,EAAWlP,EAAKkP,SAClB,IAAKvR,EAAI,EAAGC,EAAIsR,EAASpR,OAAQH,EAAIC,IAAKD,EACtD2I,EAAKlH,KAAK8P,EAASvR,UAGhB2I,EAAKxI,QACd,OAAOK,IACT,EDwDE0R,UEpEa,SAAS3Q,GAEtB,IADA,IAA4CgQ,EAAUvR,EAAGC,EAArDoC,EAAO7B,KAAMuG,EAAQ,CAAC1E,GAAOsG,EAAO,GACjCtG,EAAO0E,EAAM4D,OAElB,GADAhC,EAAKlH,KAAKY,GAAOkP,EAAWlP,EAAKkP,SACnB,IAAKvR,EAAI,EAAGC,EAAIsR,EAASpR,OAAQH,EAAIC,IAAKD,EACtD+G,EAAMtF,KAAK8P,EAASvR,IAGxB,KAAOqC,EAAOsG,EAAKgC,OACjBpJ,EAASc,GAEX,OAAO7B,IACT,EFyDEsR,WGrEa,SAASvQ,GAEtB,IADA,IAAiCgQ,EAAUvR,EAAvCqC,EAAO7B,KAAMuG,EAAQ,CAAC1E,GACnBA,EAAO0E,EAAM4D,OAElB,GADApJ,EAASc,GAAOkP,EAAWlP,EAAKkP,SAClB,IAAKvR,EAAIuR,EAASpR,OAAS,EAAGH,GAAK,IAAKA,EACpD+G,EAAMtF,KAAK8P,EAASvR,IAGxB,OAAOQ,IACT,EH6DE8Q,IItEa,SAASzR,GACtB,OAAOW,KAAK0R,WAAU,SAAS7P,GAI7B,IAHA,IAAIiP,GAAOzR,EAAMwC,EAAK2F,OAAS,EAC3BuJ,EAAWlP,EAAKkP,SAChBvR,EAAIuR,GAAYA,EAASpR,SACpBH,GAAK,GAAGsR,GAAOC,EAASvR,GAAGH,MACpCwC,EAAKxC,MAAQyR,CACf,GACF,EJ+DEe,KKvEa,SAASC,GACtB,OAAO9R,KAAKsR,YAAW,SAASzP,GAC1BA,EAAKkP,UACPlP,EAAKkP,SAASc,KAAKC,EAEvB,GACF,ELkEEC,KMxEa,SAASC,GAItB,IAHA,IAAIC,EAAQjS,KACRkS,EAcN,SAA6BC,EAAG/F,GAC9B,GAAI+F,IAAM/F,EAAG,OAAO+F,EACpB,IAAIC,EAASD,EAAEE,YACXC,EAASlG,EAAEiG,YACXxR,EAAI,KACRsR,EAAIC,EAAOjI,MACXiC,EAAIkG,EAAOnI,MACX,KAAOgI,IAAM/F,GACXvL,EAAIsR,EACJA,EAAIC,EAAOjI,MACXiC,EAAIkG,EAAOnI,MAEb,OAAOtJ,CACT,CA3BiB0R,CAAoBN,EAAOD,GACtCzL,EAAQ,CAAC0L,GACNA,IAAUC,GACfD,EAAQA,EAAMlL,OACdR,EAAMtF,KAAKgR,GAGb,IADA,IAAI1I,EAAIhD,EAAM5G,OACPqS,IAAQE,GACb3L,EAAMiM,OAAOjJ,EAAG,EAAGyI,GACnBA,EAAMA,EAAIjL,OAEZ,OAAOR,CACT,EN2DE8L,UOzEa,WAEb,IADA,IAAIxQ,EAAO7B,KAAMuG,EAAQ,CAAC1E,GACnBA,EAAOA,EAAKkF,QACjBR,EAAMtF,KAAKY,GAEb,OAAO0E,CACT,EPoEEkM,YQ1Ea,WACb,IAAIlM,EAAQ,GAIZ,OAHAvG,KAAK2P,MAAK,SAAS9N,GACjB0E,EAAMtF,KAAKY,EACb,IACO0E,CACT,ERqEEmM,OS3Ea,WACb,IAAIA,EAAS,GAMb,OALA1S,KAAKsR,YAAW,SAASzP,GAClBA,EAAKkP,UACR2B,EAAOzR,KAAKY,EAEhB,IACO6Q,CACT,EToEE/G,MU5Ea,WACb,IAAIrJ,EAAOtC,KAAM2L,EAAQ,GAMzB,OALArJ,EAAKqN,MAAK,SAAS9N,GACbA,IAASS,GACXqJ,EAAM1K,KAAK,CAACiJ,OAAQrI,EAAKkF,OAAQ/D,OAAQnB,GAE7C,IACO8J,CACT,EVqEEpK,KAtCF,WACE,OAAOyP,EAAUhR,MAAMsR,WAAWE,EACpC,E,uEWvCe,WAASmB,GACtB,MAA2B,kBAAbA,EACR,IAAI,KAAU,CAACpQ,SAASqQ,iBAAiBD,IAAY,CAACpQ,SAASC,kBAC/D,IAAI,KAAU,CAAa,MAAZmQ,EAAmB,GAAKA,GAAW,KAC1D,C,wGCNA,IAAIE,EAAe,CAAC,EAETpD,EAAQ,KAEK,qBAAblN,WAEH,iBADQA,SAASC,kBAErBqQ,EAAe,CAACC,WAAY,YAAaC,WAAY,cAIzD,SAASC,EAAsBC,EAAUvJ,EAAOwJ,GAE9C,OADAD,EAAWE,EAAgBF,EAAUvJ,EAAOwJ,GACrC,SAASzD,GACd,IAAI2D,EAAU3D,EAAM4D,cACfD,IAAYA,IAAYpT,MAAkD,EAAxCoT,EAAQE,wBAAwBtT,QACrEiT,EAASzR,KAAKxB,KAAMyP,EAExB,CACF,CAEA,SAAS0D,EAAgBF,EAAUvJ,EAAOwJ,GACxC,OAAO,SAASK,GACd,IAAIC,EAAS/D,EACbA,EAAQ8D,EACR,IACEN,EAASzR,KAAKxB,KAAMA,KAAKyT,SAAU/J,EAAOwJ,EAG5C,CAFE,QACAzD,EAAQ+D,CACV,CACF,CACF,CAEA,SAASvT,EAAeC,GACtB,OAAOA,EAAUE,OAAOC,MAAM,SAASC,KAAI,SAASf,GAClD,IAAIgB,EAAO,GAAIf,EAAID,EAAEiB,QAAQ,KAE7B,OADIhB,GAAK,IAAGe,EAAOhB,EAAEkB,MAAMjB,EAAI,GAAID,EAAIA,EAAEkB,MAAM,EAAGjB,IAC3C,CAACmB,KAAMpB,EAAGgB,KAAMA,EACzB,GACF,CAEA,SAASmT,EAASrS,GAChB,OAAO,WACL,IAAID,EAAKpB,KAAK2T,KACd,GAAKvS,EAAL,CACA,IAAK,IAAkCwS,EAA9BvM,EAAI,EAAG7H,GAAK,EAAG6M,EAAIjL,EAAGzB,OAAW0H,EAAIgF,IAAKhF,EAC7CuM,EAAIxS,EAAGiG,GAAMhG,EAASV,MAAQiT,EAAEjT,OAASU,EAASV,MAASiT,EAAErT,OAASc,EAASd,KAGjFa,IAAK5B,GAAKoU,EAFV5T,KAAK6T,oBAAoBD,EAAEjT,KAAMiT,EAAEX,SAAUW,EAAEE,WAK7CtU,EAAG4B,EAAGzB,OAASH,SACTQ,KAAK2T,IATF,CAUjB,CACF,CAEA,SAASI,EAAM1S,EAAUhC,EAAOyU,GAC9B,IAAIE,EAAOnB,EAAanS,eAAeW,EAASV,MAAQqS,EAAwBG,EAChF,OAAO,SAASxP,EAAGnE,EAAG0T,GACpB,IAAoBU,EAAhBxS,EAAKpB,KAAK2T,KAASV,EAAWe,EAAK3U,EAAOG,EAAG0T,GACjD,GAAI9R,EAAI,IAAK,IAAIiG,EAAI,EAAGgF,EAAIjL,EAAGzB,OAAQ0H,EAAIgF,IAAKhF,EAC9C,IAAKuM,EAAIxS,EAAGiG,IAAI1G,OAASU,EAASV,MAAQiT,EAAErT,OAASc,EAASd,KAI5D,OAHAP,KAAK6T,oBAAoBD,EAAEjT,KAAMiT,EAAEX,SAAUW,EAAEE,SAC/C9T,KAAKiU,iBAAiBL,EAAEjT,KAAMiT,EAAEX,SAAWA,EAAUW,EAAEE,QAAUA,QACjEF,EAAEvU,MAAQA,GAIdW,KAAKiU,iBAAiB5S,EAASV,KAAMsS,EAAUa,GAC/CF,EAAI,CAACjT,KAAMU,EAASV,KAAMJ,KAAMc,EAASd,KAAMlB,MAAOA,EAAO4T,SAAUA,EAAUa,QAASA,GACrF1S,EACAA,EAAGH,KAAK2S,GADJ5T,KAAK2T,KAAO,CAACC,EAExB,CACF,CAEe,WAASvS,EAAUhC,EAAOyU,GACvC,IAA+CtU,EAAyBD,EAApEW,EAAYD,EAAeoB,EAAW,IAAQ5B,EAAIS,EAAUP,OAEhE,KAAID,UAAUC,OAAS,GAAvB,CAcA,IAFAyB,EAAK/B,EAAQ0U,EAAQL,EACN,MAAXI,IAAiBA,GAAU,GAC1BtU,EAAI,EAAGA,EAAIC,IAAKD,EAAGQ,KAAK2P,KAAKvO,EAAGlB,EAAUV,GAAIH,EAAOyU,IAC1D,OAAO9T,IALP,CATE,IAAIoB,EAAKpB,KAAK6B,OAAO8R,KACrB,GAAIvS,EAAI,IAAK,IAA0BwS,EAAtBvM,EAAI,EAAGgF,EAAIjL,EAAGzB,OAAW0H,EAAIgF,IAAKhF,EACjD,IAAK7H,EAAI,EAAGoU,EAAIxS,EAAGiG,GAAI7H,EAAIC,IAAKD,EAC9B,IAAKD,EAAIW,EAAUV,IAAImB,OAASiT,EAAEjT,MAAQpB,EAAEgB,OAASqT,EAAErT,KACrD,OAAOqT,EAAEvU,KAWnB,CAEO,SAAS6U,EAAYX,EAAQN,EAAUxR,EAAMC,GAClD,IAAI8R,EAAS/D,EACb8D,EAAOvR,YAAcyN,EACrBA,EAAQ8D,EACR,IACE,OAAON,EAASrR,MAAMH,EAAMC,EAG9B,CAFE,QACA+N,EAAQ+D,CACV,CACF,C","sources":["webpack://decidim-development-app/./node_modules/d3-array/src/bisect.js","webpack://decidim-development-app/./node_modules/d3-array/src/ticks.js","webpack://decidim-development-app/./node_modules/d3-dispatch/src/dispatch.js","webpack://decidim-development-app/./node_modules/d3-selection/src/touch.js","webpack://decidim-development-app/./node_modules/d3-drag/src/noevent.js","webpack://decidim-development-app/./node_modules/d3-drag/src/nodrag.js","webpack://decidim-development-app/./node_modules/d3-drag/src/constant.js","webpack://decidim-development-app/./node_modules/d3-drag/src/event.js","webpack://decidim-development-app/./node_modules/d3-drag/src/drag.js","webpack://decidim-development-app/./node_modules/d3-fetch/src/json.js","webpack://decidim-development-app/./node_modules/d3-force/src/center.js","webpack://decidim-development-app/./node_modules/d3-force/src/constant.js","webpack://decidim-development-app/./node_modules/d3-force/src/jiggle.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/add.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/quad.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/x.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/y.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/quadtree.js","webpack://decidim-development-app/./node_modules/d3-force/src/collide.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/cover.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/data.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/extent.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/find.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/remove.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/root.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/size.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/visit.js","webpack://decidim-development-app/./node_modules/d3-quadtree/src/visitAfter.js","webpack://decidim-development-app/./node_modules/d3-force/src/link.js","webpack://decidim-development-app/./node_modules/d3-timer/src/timer.js","webpack://decidim-development-app/./node_modules/d3-force/src/simulation.js","webpack://decidim-development-app/./node_modules/d3-force/src/manyBody.js","webpack://decidim-development-app/./node_modules/d3-force/src/x.js","webpack://decidim-development-app/./node_modules/d3-force/src/y.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://decidim-development-app/./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://decidim-development-app/./node_modules/d3-selection/src/selectAll.js","webpack://decidim-development-app/./node_modules/d3-selection/src/selection/on.js"],"sourcesContent":["import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","function responseJson(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n if (response.status === 204 || response.status === 205) return;\n return response.json();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseJson);\n}\n","export default function(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function() {\n return (Math.random() - 0.5) * 1e-6;\n}\n","export default function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {map} from \"d3-collection\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = map(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {map} from \"d3-collection\";\nimport {timer} from \"d3-timer\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\nimport {x, y} from \"./simulation\";\n\nexport default function() {\n var nodes,\n node,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n"],"names":["ascendingBisect","right","left","Math","sqrt","noop","value","dispatch","t","i","n","arguments","length","_","test","Error","Dispatch","this","parseTypenames","typenames","types","trim","split","map","name","indexOf","slice","hasOwnProperty","type","get","c","set","callback","concat","push","prototype","constructor","on","typename","T","copy","call","that","args","Array","apply","node","touches","identifier","sourceEvent","changedTouches","touch","point","nopropagation","view","root","document","documentElement","selection","noevent","__noselect","style","MozUserSelect","x","DragEvent","target","subject","id","active","y","dx","dy","defaultFilter","defaultContainer","parentNode","defaultSubject","d","defaultTouchable","navigator","maxTouchPoints","mousedownx","mousedowny","mousemoving","touchending","filter","container","touchable","gestures","listeners","clickDistance2","drag","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mouse","mousemoved","mouseupped","nodrag","noclick","setTimeout","clearTimeout","s","p","sublisteners","p0","constant","clickDistance","responseJson","response","ok","status","statusText","json","input","init","fetch","then","nodes","force","sx","sy","initialize","random","tree","isNaN","parent","xm","ym","xp","yp","bottom","j","_root","leaf","data","x0","_x0","y0","_y0","x1","_x1","y1","_y1","_x","_y","next","defaultX","defaultY","quadtree","Quadtree","NaN","addAll","undefined","leaf_copy","treeProto","vx","vy","radius","radii","strength","iterations","xi","yi","ri","ri2","k","visitAfter","prepare","index","visit","quad","rj","r","l","jiggle","child","source","pop","add","cover","xz","yz","Infinity","floor","z","extent","find","x2","y2","q","x3","y3","quads","d2","remove","retainer","previous","removeAll","size","nodeById","nodeId","links","strengths","distances","count","bias","link","min","distance","alpha","b","m","initializeStrength","initializeDistance","taskHead","taskTail","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","window","requestAnimationFrame","bind","f","clearNow","Timer","_call","_time","_next","timer","delay","time","restart","wake","e","timerFlush","t0","t2","t1","sleep","nap","poke","clearInterval","setInterval","TypeError","stop","initialAngle","PI","simulation","alphaMin","alphaDecay","pow","alphaTarget","velocityDecay","forces","stepper","step","event","tick","each","fx","fy","initializeNodes","angle","cos","sin","initializeForce","closest","distanceMin2","distanceMax2","theta2","accumulate","weight","abs","w","distanceMin","distanceMax","theta","sum","children","hierarchy","childs","Node","valued","defaultChildren","depth","eachBefore","computeHeight","copyData","height","eachAfter","current","reverse","sort","compare","path","end","start","ancestor","a","aNodes","ancestors","bNodes","leastCommonAncestor","splice","descendants","leaves","selector","querySelectorAll","filterEvents","mouseenter","mouseleave","filterContextListener","listener","group","contextListener","related","relatedTarget","compareDocumentPosition","event1","event0","__data__","onRemove","__on","o","removeEventListener","capture","onAdd","wrap","addEventListener","customEvent"],"sourceRoot":""}